@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap");
h1.page-title {
  font-size: 28px;
  font-weight: 600;
  color: #40499a;
}

/* ============================================================
   QDNA Pro — Design Tokens (central) — compiled from _design-tokens.scss
   ------------------------------------------------------------
   Drop-in CSS for file:// pages (homepage-mockup, tasklist-page,
   prototype previews). Mirrors the canonical _design-tokens.scss
   1:1; if you edit one, edit the other.

   Two layers:
     A. PRIMITIVES — raw Figma values.
     B. SEMANTIC TOKENS — reference primitives via var().

   Generated 2026-05-19 (FLY BABY FLY overnight migration).
   ============================================================ */
:root {
  /* ---------- Greys (Figma Colors/Grey/*) ---------- */
  --c-grey-950: #0b0b0d;
  --c-grey-900: #18181c;
  --c-grey-800: #2e3036;
  --c-grey-700: #40444d;
  --c-grey-600: #565b66;
  --c-grey-500: #6b7280;
  --c-grey-400: #a6aab3;
  --c-grey-300: #c4c7cc;
  --c-grey-200: #d1d5db;
  --c-grey-100: #e7e9ec;
  --c-grey-50: #f0f1f2;
  /* ---------- Action purples (Figma Colors/Purple/*) ---------- */
  --c-purple-700: #2a3268;
  --c-purple-600: #333a7b;
  --c-purple-500: #40499a;
  --c-purple-400: #5a64b8;
  --c-purple-300: #8a92d0;
  --c-purple-200: #a5acff;
  --c-purple-100: #c0c5ff;
  --c-purple-50: #e6e9ff;
  /* ---------- Action highlight (Figma Purple HIGHLIGHT/*) ---------- */
  --c-action-500: #4652f3;
  --c-action-600: #3540d6;
  --c-action-700: #2a36b8;
  /* ---------- Signal colours (semantic-ish primitives) ---------- */
  --c-signal-green-bg: #c5f5e2;
  --c-signal-green-text: #428b6e;
  --c-signal-green-100: #d8f4e3;
  --c-signal-yellow-bg: #feedb8;
  --c-signal-yellow-text: #bf7202;
  --c-signal-blue-bg: #e6eff9;
  --c-signal-blue-text: #6a8ab4;
  --c-signal-red-bg: #fee3e3;
  --c-signal-red-text: #c65a5a;
  --c-signal-red-soft: #fff0f0;
  /* Orange + pink pairs (02.07.2026, calendar): orange = the "in progress" event
     status, pink = personal events. Pink bg deliberately equals the tasklist pink
     pastel so the two systems stay visually related. */
  --c-signal-orange-bg: #fdeadc;
  --c-signal-orange-text: #bc6a1f;
  --c-signal-pink-bg: #f6e1e8;
  --c-signal-pink-text: #b25777;
  /* ---------- Favorite / heart (Kim 22.07.2026) ----------
     Red-pink used for the "favorite" heart. Was hardcoded in the heart-mode
     favorite button; promoted to a token so qdnapro-status-badge and the
     favorite button share one source. */
  --c-favorite-heart: #ff4d6a;
  /* ---------- Bright signal accents (vivid; Kim 24.06.2026) ----------
     The muted --c-signal-* are for soft pill backgrounds; these brights are for
     vivid accents (filled borders, fills, the toast warning). */
  --c-success-bright: #1d9e75; /* vivid success green */
  /* Success-dialog ramp, added 18.08.2026 as the mirror of the warn-red one: the
     tone="success" dialog fills a whole surface with green and puts white text on it.
     --c-success-bright (#1d9e75) is too light for that at 3.39:1. These numbers were
     picked to match the red dialog's proportions almost exactly, so the two dialogs
     feel like one family: 500 carries white at 4.91:1 (red: 4.83), and 900 is the solid
     button, 3.35:1 away from the surface (red: 3.34) with white at 14:1 on it.
     300 is the optional badge circle, decorative only. */
  --c-success-900: #04241c;
  --c-success-700: #0b4d38;
  --c-success-500: #12805e;
  --c-success-300: #7fd8b8;
  --c-warning-bright-bg: #fff3cd; /* vivid warning yellow set (toast reference) */
  --c-warning-bright-text: #9a6a10;
  --c-warning-bright-border: #f0d060;
  /* ---------- Warning / danger ramp ---------- */
  --c-warn-amber-500: #d97706;
  --c-warn-amber-600: #b45309;
  --c-warn-orange-500: #ea580c;
  --c-warn-orange-600: #c2410c;
  /* 900/700/600 added 18.08.2026 for the danger dialog (qdnapro-bottom-sheet /
     -popover tone="danger"). Kim picked red-400 as the surface and red-300 for the
     icon badge on it; the ramp already had both. What it did NOT have is anything
     readable ON that surface: white text scores 2.77:1 for the title and 2.05:1 for
     the body, well under the 3.0 / 4.5 AA floors, so this dialog reads dark-on-light
     instead of the purple dialog's light-on-dark. red-900 is that text colour (5.84
     title / 4.60 body at 85%) and red-700 is the solid confirm button (10.0:1 with
     white on it). red-600 is the mid-step the popover close circle uses.
     The ramp already had a 600 for amber and orange, so those only fill a gap. */
  --c-warn-red-900: #450a0a;
  --c-warn-red-700: #7f1d1d;
  --c-warn-red-600: #991b1b;
  --c-warn-red-500: #dc2626;
  --c-warn-red-400: #f87171;
  --c-warn-red-300: #fca5a5;
  --c-warn-yellow-500: #fbbf24;
  --c-warn-yellow-600: #f59e0b;
  /* ---------- Toned dialog surfaces (qdnapro-bottom-sheet / -popover tone=…) ----------
     Kim's own colour set for the three verdict dialogs (Pulse "Correct!", "Beetje goed,
     beetje fout", "Helaas, niet juist"), 03.09.2026. One surface, one card fill (the
     darker option blocks on the surface), one solid button and one grab-handle colour
     per tone. These replace the earlier red-500/success-500 dialog surfaces so EVERY
     toned dialog in the app reads as one family with the Pulse sheets. The warning
     tone has a second card fill for an option that was WRONG (a touch redder than the
     right one) - a deliberate design choice, not a slip. Contrast was measured and
     accepted by Kim as-is (green surface 2.4:1 for the 28px title, green card 4.1:1
     for body text); do not "fix" these numbers without her. */
  --c-dialog-danger-surface: #ff3a30;
  --c-dialog-danger-card: #b5251e;
  --c-dialog-danger-button: #cc2e26;
  --c-dialog-danger-grab: #cc2e26;
  --c-dialog-success-surface: #58b992;
  --c-dialog-success-card: #428b6e;
  --c-dialog-success-button: #428b6e;
  --c-dialog-success-grab: #2f5d4a;
  --c-dialog-warning-surface: #ef8e02;
  --c-dialog-warning-card: #bf7202;
  --c-dialog-warning-card-wrong: #bf5a02;
  --c-dialog-warning-button: #bf7202;
  --c-dialog-warning-grab: #8f5501;
  /* ---------- White + black alphas ---------- */
  --c-white-04: rgba(255, 255, 255, 0.04);
  --c-white-06: rgba(255, 255, 255, 0.06);
  --c-white-08: rgba(255, 255, 255, 0.08);
  --c-white-10: rgba(255, 255, 255, 0.10);
  --c-white-12: rgba(255, 255, 255, 0.12);
  --c-white-14: rgba(255, 255, 255, 0.14);
  --c-white-22: rgba(255, 255, 255, 0.22);
  --c-white-28: rgba(255, 255, 255, 0.28);
  --c-white-45: rgba(255, 255, 255, 0.45);
  --c-white-55: rgba(255, 255, 255, 0.55);
  --c-white-65: rgba(255, 255, 255, 0.65);
  --c-white-70: rgba(255, 255, 255, 0.70);
  --c-white-85: rgba(255, 255, 255, 0.85);
  --c-white-90: rgba(255, 255, 255, 0.90);
  --c-black-06: rgba(0, 0, 0, 0.06);
  --c-black-08: rgba(0, 0, 0, 0.08);
  --c-black-12: rgba(0, 0, 0, 0.12);
  --c-black-30: rgba(0, 0, 0, 0.30);
  --c-black-40: rgba(0, 0, 0, 0.40);
  --c-black-45: rgba(0, 0, 0, 0.45);
  /* ---------- Brand purple alphas ---------- */
  --c-action-08: rgba(70, 82, 243, 0.08);
  --c-action-12: rgba(70, 82, 243, 0.12);
  --c-action-18: rgba(70, 82, 243, 0.18);
  --c-action-22: rgba(70, 82, 243, 0.22);
  --c-action-25: rgba(70, 82, 243, 0.25);
  --c-action-30: rgba(70, 82, 243, 0.30);
  --c-action-40: rgba(70, 82, 243, 0.40);
  --c-action-50: rgba(70, 82, 243, 0.50);
  --c-action-70: rgba(70, 82, 243, 0.70);
  --c-purple-soft-12: rgba(64, 73, 154, 0.12);
  --c-purple-soft-18: rgba(64, 73, 154, 0.18);
  --c-purple-200-30: rgba(165, 172, 255, 0.30);
  --c-purple-200-50: rgba(165, 172, 255, 0.50);
  /* ============================================================
     LAYER B — Semantic tokens (LIGHT)
     ============================================================ */
  /* Brand */
  --c-brand-purple: var(--c-purple-500);
  --c-brand-purple-hover: var(--c-purple-600);
  --c-brand-purple-press: var(--c-purple-700);
  --c-purple-highlight: var(--c-action-500);
  /* Surfaces */
  /* Was #ebedfb, but html/body shipped #e6e9ff via a SCSS variable, so two
     near-identical page purples lived side by side (52 uses of #e6e9ff
     against 5 of the token). Aligned ON the value everyone already sees, so
     wiring the page onto this token changed nothing visually. The five
     places that already used the token shift by ~2 points and are now in
     step with the rest. [Kim 2026-08-07] */
  --c-bg-page: #e6e9ff;
  /* Eén trap DONKERDER dan de pagina, voor een vlak dat een paneel moet zijn
     zonder wit te worden: de audit trail naast de witte panelen. Halverwege
     --c-purple-50 (de pagina) en --c-purple-100 (#c0c5ff), want die volgende
     trap in de schaal is als groot vlak te verzadigd. Vulde een gat: hiervoor
     was de enige tint hiertussen --c-border-tree-bright, een RAND-token.
     [Kim 10.08.2026] */
  --c-bg-page-sunken: #dde0f7;
  --c-bg-card: #ffffff;
  --c-bg-card-hover: #f7f8fa;
  --c-bg-secondary-purple: var(--c-purple-50);
  --c-bg-subtle-purple: #f3f5ff;
  --c-bg-subtle-hover: var(--c-grey-50);
  /* Overlay frame
     De schil die ELK gecentreerd venster draagt: `qdnapro-modal` en de
     zelfstandige overlays die `.qos-*` gebruiken (zie
     components/v2/overlay-shell/_overlay-shell.scss). Ze lezen dezelfde
     tokens, zodat de frames niet meer los van elkaar kunnen drijven zoals de
     met-de-hand-gekopieerde versies deden: vijf kopieen, vijf verschillende
     scrims en z-indexen. [Kim 19.08.2026] */
  --overlay-z: 9000;
  /* Geopend VANUIT een ander venster (formule-bouwer, opmaakregels): moet
     boven de "altijd bovenop"-laag van de floweditor (9300) uitkomen, anders
     landt hij ACHTER de modal waaruit je hem net opende. Gemeten, niet
     aangenomen; de uitleg staat in _formula-editor.scss. */
  --overlay-z-nested: 9400;
  --overlay-scrim: rgba(11, 11, 13, 0.45);
  --overlay-frame-bg: var(--c-grey-50);
  --overlay-frame-border: #ffffff;
  --overlay-frame-radius: 16px;
  --overlay-frame-shadow: 0 4px 4px rgba(0, 0, 0, 0.30), 0 8px 12px 6px rgba(0, 0, 0, 0.15);
  --overlay-window-bg: var(--c-bg-card);
  --overlay-window-border: var(--c-grey-300);
  --overlay-window-radius: 12px;
  /* Sidebar */
  --c-sidebar-bg: #3a4290;
  --c-sidebar-bg-active: #ffffff;
  --c-sidebar-icon: #c5c9eb;
  --c-sidebar-icon-active: var(--c-brand-purple);
  --c-sidebar-active-bg: #ffffff;
  /* Text */
  --c-text-body: var(--c-grey-950);
  --c-text-muted: #6e7280;
  --c-text-disabled: #898e99;
  --c-text-disabled-pp: #8c92c2;
  --c-text-heading: #1a1f4d;
  --c-text-on-action: #ffffff;
  /* Tag colours */
  --c-tag-handover-bg: #e7defb;
  --c-tag-handover-text: #6b3fb8;
  --c-tag-critical-bg: #ffe1de;
  --c-tag-critical-text: #c33a30;
  --c-tag-deadline-bg: #ffe2dc;
  --c-tag-deadline-text: #c33a30;
  --c-tag-warning-bg: #fff2d6;
  --c-tag-warning-text: #a06400;
  --c-tag-new-bg: var(--c-signal-green-100);
  --c-tag-new-text: #1f7a48;
  /* Chip palette - the 16 colour families of qdnapro-tag.
     These lived as 88 loose hex values inside _tag.scss while label-circle,
     activity-card, number-indicator-badge, grid-tile, list-row and picker-row
     retyped the same values. Promoted to tokens so there is one source.
     Family names are taken verbatim from the component's tag-color-* classes,
     including the inconsistent ones (bright-blue-2, dark-pink, dark-purple).
     [Kim 2026-08-07] */
  --c-chip-grey-bg: var(--c-grey-50);
  --c-chip-grey-hover: var(--c-border-card);
  --c-chip-grey-text: #1e1f20;
  --c-chip-grey-2-bg: var(--c-grey-300);
  --c-chip-grey-2-hover: var(--c-grey-400);
  --c-chip-grey-2-text: #1e1f20;
  --c-chip-red-bg: var(--c-signal-red-bg);
  --c-chip-red-hover: #fcc6c6;
  --c-chip-red-text: #633030;
  --c-chip-red-2-bg: #fbaaaa;
  --c-chip-red-2-hover: #f98d8d;
  --c-chip-red-2-text: #633030;
  --c-chip-yellow-bg: #fef6db;
  --c-chip-yellow-hover: var(--c-signal-yellow-bg);
  --c-chip-yellow-text: #655522;
  --c-chip-yellow-2-bg: #fde594;
  --c-chip-yellow-2-hover: #fddc71;
  --c-chip-yellow-2-text: #655522;
  --c-chip-green-bg: #e2faf1;
  --c-chip-green-hover: #a8f1d4;
  --c-chip-green-text: #2f5d4a;
  --c-chip-green-2-bg: #8becc5;
  --c-chip-green-2-hover: #6ee7b7;
  --c-chip-green-2-text: #2f5d4a;
  --c-chip-blue-bg: var(--c-signal-blue-bg);
  --c-chip-blue-hover: #cedef3;
  --c-chip-blue-text: #37475a;
  --c-chip-blue-2-bg: #b5ceed;
  --c-chip-blue-2-hover: #9dbde7;
  --c-chip-blue-2-text: #37475a;
  --c-chip-bright-blue-bg: #85a1ec;
  --c-chip-bright-blue-hover: #5d82e5;
  --c-chip-bright-blue-text: #192a5a;
  --c-chip-bright-blue-2-bg: #d6e0f9;
  --c-chip-bright-blue-2-hover: #aec1f2;
  --c-chip-bright-blue-2-text: #192a5a;
  --c-chip-pink-bg: var(--c-signal-pink-bg);
  --c-chip-pink-hover: #eec3d0;
  --c-chip-pink-text: #562d3a;
  --c-chip-dark-pink-bg: #e5a6b9;
  --c-chip-dark-pink-hover: #dd88a1;
  --c-chip-dark-pink-text: #562d3a;
  --c-chip-purple-bg: #ebe9fb;
  --c-chip-purple-hover: #d8d2f7;
  --c-chip-purple-text: #413b5e;
  --c-chip-dark-purple-bg: #c4bcf3;
  --c-chip-dark-purple-hover: #b1a5ef;
  --c-chip-dark-purple-text: #413b5e;
  /* ---------- Battle palette (Pulse gamification battles) ----------
     BOARD-pulse-gamification-battles, besluit 27/36c (kaart 13a, a
     repair card off the kaart 17 verification). Team colours are a
     FIXED, contrasting palette assigned by colour_index (0, 1, 2, ...) -
     never user-picked, never reused as a semantic colour elsewhere.
     Podium colours are fixed BY PLACE: amber (1st), teal (2nd), coral
     (3rd); gold is an accent only, not a 4th podium colour.
     No dedicated "battle" primitives exist in Figma, so every token
     below points at the closest EXISTING primitive/chip colour (chip-
     palette rule: never a raw hex). The hex value in each comment is the
     CURRENT resolved value of that primitive, not a new literal here.
     Distances mentioned in the hand-off report are plain RGB Euclidean
     distance, used only to reason about mutual contrast - not a formal
     colour-science pass, so treat the exact picks as a judgement call,
     not a verified designer-supplied hex. */
  --c-battle-team-0: var(--c-purple-300); /* #8a92d0 - lavender/violet; closest existing token to the design's team-A reference (~#7F77DD) */
  --c-battle-team-1: var(--c-success-bright); /* #1d9e75 - teal/green; closest existing token to the design's team-B reference (~#2FA98B) */
  --c-battle-team-2: var(--c-warn-orange-500); /* #ea580c - orange; far from team 0/1 in hue */
  --c-battle-team-3: var(--c-warn-yellow-500); /* #fbbf24 - yellow, deliberately much LIGHTER than team 2 so the pair still reads apart under most colour-vision deficiencies, not just by hue */
  --c-battle-team-4: var(--c-chip-dark-pink-bg); /* #e5a6b9 - pink/rose; also the only team colour with a genuine dark-mode value, inherited for free from the chip palette above */
  --c-battle-team-5: var(--c-grey-600); /* #565b66 - neutral grey; carries no hue at all, so it stays distinguishable from every other team regardless of colour vision */
  --c-battle-podium-1: var(--c-warn-amber-500); /* #d97706 - amber (1st place) */
  --c-battle-podium-1-ink: var(--c-purple-700); /* dark ink on the amber fill; the warning ramp has no dedicated "ink" pair of its own */
  --c-battle-podium-2: var(--c-success-500); /* #12805e - teal (2nd place) */
  --c-battle-podium-2-ink: var(--c-text-on-action); /* white ink; success-500 is dark enough to need it */
  --c-battle-podium-3: var(--c-favorite-heart); /* #ff4d6a - closest existing token to koraal (no coral primitive exists in this file); still the least-bad approximation, not a verified exact match */
  --c-battle-podium-3-ink: var(--c-text-on-action); /* white ink; favorite-heart is dark enough to need it */
  /* Borders */
  --c-border-soft: rgba(0, 0, 0, 0.07);
  --c-border-soft-2: #e6e9ef;
  --c-border-card: #e1e3e6;
  --c-border-tree: #d4d8ec;
  --c-border-tree-bright: #d4d8ee;
  /* Shadows */
  --shadow-card: 0 1px 2px rgba(20, 25, 80, 0.04),
                           0 4px 16px rgba(20, 25, 80, 0.04);
  /* Focus */
  --focus-ring: var(--c-brand-purple);
  --focus-glow: var(--c-action-25);
  /* Radii — 4-based scale (matches the spacing scale). [Kim 24.06.2026] */
  --r-1: 4px;
  --r-2: 8px;
  --r-3: 12px;
  --r-4: 16px;
  --r-5: 20px;
  /* Semantic radius tokens now reference the scale (were off-scale 8/10/14).
     Migration: --r-row 10→12, --r-card 14→16. Affects every component that uses them. */
  --r-btn: var(--r-2);
  --r-button: var(--r-2);
  --r-row: var(--r-3);
  --r-card: var(--r-4);
  --r-pill: 999px;
  /* Spacing scale */
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 20px;
  --s-6: 24px;
  --s-7: 32px;
  --s-8: 40px;
  /* Typography */
  --ff: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semi: 600;
}

/* ============================================================
   LAYER B — Semantic tokens (DARK)
   ------------------------------------------------------------
   Triggered by ANY of:
     [data-theme-dark]              (boolean, used by tasklist on <html>)
     [data-theme="dark"]            (value, used by some components)
     body[data-theme="dark"]        (value, used by homepage)
   ============================================================ */
[data-theme-dark],
[data-theme=dark],
body[data-theme=dark] {
  /* Brand (lifted for dark contrast) */
  --c-brand-purple: var(--c-purple-200);
  --c-brand-purple-hover: var(--c-purple-100);
  --c-brand-purple-press: var(--c-purple-300);
  --c-purple-highlight: var(--c-action-500);
  /* Surfaces */
  --c-bg-page: var(--c-grey-950);
  /* Donker: de paginakleur is al het diepste grijs, dus "verzonken" kan daar
     niet donkerder. Het paneel gaat één trap OMHOOG, wat in het donker
     hetzelfde doet: het vlak los zien van de pagina. */
  --c-bg-page-sunken: var(--c-grey-900);
  --c-bg-card: var(--c-grey-800);
  --c-bg-card-hover: var(--c-grey-700);
  --c-bg-secondary-purple: var(--c-grey-950);
  --c-bg-subtle-purple: var(--c-grey-900);
  --c-bg-subtle-hover: var(--c-grey-600);
  /* Overlay frame (donker) — precies de waarden die in het dark-blok van
     `qdnapro-modal` stonden, nu op een plek. LET OP: `qdnapro-wizard-modal`
     had hier eigen, afwijkende tinten (#1f2229 / #2a2d36); die zijn hierin
     opgegaan, dus een wizard ziet er in het donker nu uit als een modal. */
  --overlay-scrim: rgba(0, 0, 0, 0.65);
  --overlay-frame-bg: #2e3036;
  --overlay-frame-border: rgba(255, 255, 255, 0.08);
  --overlay-frame-shadow: 0 4px 4px rgba(0, 0, 0, 0.50), 0 8px 12px 6px rgba(0, 0, 0, 0.30);
  --overlay-window-bg: #363940;
  --overlay-window-border: #565b66;
  /* Sidebar */
  --c-sidebar-bg: var(--c-grey-800);
  --c-sidebar-bg-active: var(--c-grey-700);
  --c-sidebar-icon: var(--c-grey-300);
  --c-sidebar-icon-active: #ffffff;
  --c-sidebar-active-bg: var(--c-grey-700);
  /* Text */
  --c-text-body: var(--c-grey-50);
  --c-text-muted: var(--c-grey-400);
  --c-text-disabled: var(--c-grey-500);
  --c-text-disabled-pp: var(--c-grey-500);
  --c-text-heading: var(--c-grey-50);
  --c-text-on-action: #ffffff;
  /* Borders */
  --c-border-soft: var(--c-white-08);
  --c-border-soft-2: var(--c-white-08);
  --c-border-card: var(--c-white-10);
  --c-border-tree: var(--c-white-12);
  --c-border-tree-bright: var(--c-white-12);
  /* Shadows */
  --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.40),
                           0 4px 16px rgba(0, 0, 0, 0.40);
  /* Chip palette (dark) - same 16 families, own dark values.
     Most are genuinely new colours that exist nowhere in LAYER A,
     so unlike the rest of this block they are literal hex. */
  --c-chip-grey-bg: var(--c-grey-600);
  --c-chip-grey-hover: #6b7180;
  --c-chip-grey-text: #e1e3e6;
  --c-chip-grey-2-bg: var(--c-grey-700);
  --c-chip-grey-2-hover: #54596b;
  --c-chip-grey-2-text: #e1e3e6;
  --c-chip-red-bg: #5a2b2b;
  --c-chip-red-hover: #7a3838;
  --c-chip-red-text: #fbaaaa;
  --c-chip-red-2-bg: #7a3838;
  --c-chip-red-2-hover: #9a4747;
  --c-chip-red-2-text: var(--c-signal-red-bg);
  --c-chip-yellow-bg: #5a4d1f;
  --c-chip-yellow-hover: #7a6b2d;
  --c-chip-yellow-text: #fde594;
  --c-chip-yellow-2-bg: #7a6b2d;
  --c-chip-yellow-2-hover: #9a8a3b;
  --c-chip-yellow-2-text: #fef6db;
  --c-chip-green-bg: #2a5544;
  --c-chip-green-hover: #3d7a62;
  --c-chip-green-text: #8becc5;
  --c-chip-green-2-bg: #3d7a62;
  --c-chip-green-2-hover: #4d9c7c;
  --c-chip-green-2-text: #e2faf1;
  --c-chip-blue-bg: #2e3e54;
  --c-chip-blue-hover: #445a78;
  --c-chip-blue-text: #b5ceed;
  --c-chip-blue-2-bg: #445a78;
  --c-chip-blue-2-hover: #5a7596;
  --c-chip-blue-2-text: var(--c-signal-blue-bg);
  --c-chip-bright-blue-bg: #3a4a8a;
  --c-chip-bright-blue-hover: #4d5fae;
  --c-chip-bright-blue-text: #d6e0f9;
  --c-chip-bright-blue-2-bg: #2a3560;
  --c-chip-bright-blue-2-hover: #3a4a8a;
  --c-chip-bright-blue-2-text: #85a1ec;
  --c-chip-pink-bg: #4e2a36;
  --c-chip-pink-hover: #6e3d50;
  --c-chip-pink-text: #e5a6b9;
  --c-chip-dark-pink-bg: #6e3d50;
  --c-chip-dark-pink-hover: #8a516a;
  --c-chip-dark-pink-text: var(--c-signal-pink-bg);
  --c-chip-purple-bg: #3a3555;
  --c-chip-purple-hover: #524a7a;
  --c-chip-purple-text: #c4bcf3;
  --c-chip-dark-purple-bg: #524a7a;
  --c-chip-dark-purple-hover: #6c629a;
  --c-chip-dark-purple-text: #ebe9fb;
  /* Battle palette (dark) - no line needed here for most --c-battle-*
     tokens: they point at raw primitives (purple/success/warn/grey ramp),
     and per this file's own convention primitives do NOT get a dark
     override, only semantic and chip tokens do. The one exception,
     --c-battle-team-4, already tracks dark mode for free because it
     points at --c-chip-dark-pink-bg, redefined above with its own dark
     value - no extra declaration required. */
  /* Focus */
  --focus-ring: var(--c-purple-200);
  --focus-glow: var(--c-action-40);
}

/* ============================================================
   Motion utilities (shared)
   ------------------------------------------------------------
   .qdnapro-shake — brief horizontal nudge used to draw attention
   to a field that failed validation. Add the class to trigger it;
   the owning component removes it on `animationend` so it can
   re-fire on a repeated trigger. Standard form-validation cue.
   ============================================================ */
@keyframes qdnapro-shake {
  10%, 90% {
    transform: translateX(-1px);
  }
  20%, 80% {
    transform: translateX(2px);
  }
  30%, 50%, 70% {
    transform: translateX(-4px);
  }
  40%, 60% {
    transform: translateX(4px);
  }
}
.qdnapro-shake {
  animation: qdnapro-shake 400ms cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-shake {
    animation: none;
  }
}
/* ============================================================
   .qdnapro-slide-pages — horizontal page switch (one level deep)
   ------------------------------------------------------------
   The "stap 1 schuift naar links, stap 2 schuift in" motion. It lived in THREE
   hand-written copies before 03.08.2026, all with the same numbers typed out again:
     - qdnapro-event-sheet   (.es-pages / .es-page-main / .es-page-sub / .es-sub-open)
     - the PWA Herhalen-sheet (.ao-repeat-pages / -page-list / -page-preview, plain
       markup inside a qdnapro-bottom-sheet - so NOT in a component at all)
     - the PWA location/department chooser (.lp-pages)
   Kim 03.08.2026, after catching the third copy: make it one vocabulary. It lives here,
   next to .qdnapro-shake, because that is where cross-component motion already lives:
   every v2 component depends on design-tokens, bo2 gets it through style-v1.css and the
   PWA through sync-pwa-components, so no new component, dependency or registry entry.

   It is deliberately CSS-ONLY and shell-agnostic. The three consumers sit in a bottom
   sheet, in a popover and in a plain view, and each already owns its own open/close
   function - what was duplicated is the geometry, not the logic.

   MARKUP
     <div class="qdnapro-slide-pages qdnapro-slide-pages--auto">   (or --frame)
       <div class="qdnapro-slide-page qdnapro-slide-page--first is-current">…</div>
       <div class="qdnapro-slide-page qdnapro-slide-page--second">…</div>
     </div>
   STATE (two class toggles, nothing else)
     - is-second on the viewport while page 2 is showing
     - is-current on exactly ONE page: the one you see
   The two are separate on purpose: is-second says which DIRECTION the first page leaves
   in, is-current says which page is visible. Toggling only is-current would slide page 1
   out to the RIGHT, and then "back" reads as another step forward.

   TWO HEIGHT MODES, and picking the wrong one is the only real trap here:
     --frame  the viewport has a height of its own (a sheet with a fixed detent). Every
              page fills it; page 1 stays in flow. Nothing is ever measured. Use this
              whenever you can - see the fixed-height note in the bottom-sheets skill for
              why measuring a sheet's content height turned into whack-a-mole.
     --auto   the viewport grows with its content (a dialog that must not be taller than
              the list it shows). The page you SEE is in flow and sets the height, the
              other is taken out of flow so it cannot inflate it. The consumer is then
              responsible for the height DURING the slide: while page 2 is taller than
              page 1, the viewport jumps to the new height at once and overflow:hidden
              clips the leaving page. Pin min-height to the taller of the two for the
              length of the transition and release it after (see
              _slideChooserToStep in the PWA's 0-core.js).
   ============================================================ */
.qdnapro-slide-pages {
  position: relative;
  overflow: hidden;
  transition: min-height 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}

.qdnapro-slide-page {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  transform: translateX(105%);
  opacity: 0;
  pointer-events: none;
  transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.32s ease;
}

.qdnapro-slide-page.is-current {
  transform: translateX(0);
  opacity: 1;
  pointer-events: auto;
}

/* Page 1 leaves to the LEFT instead of to the right, and fades FULLY out - any residual
   opacity shows ghost rows through page 2, which is transparent over the panel. */
.qdnapro-slide-pages.is-second .qdnapro-slide-page--first:not(.is-current) {
  transform: translateX(-28%);
}

/* --frame: the viewport brings its own height. */
.qdnapro-slide-pages--frame .qdnapro-slide-page {
  height: 100%;
}

.qdnapro-slide-pages--frame .qdnapro-slide-page--first {
  position: relative;
}

/* --auto: the page you see is in flow, so the viewport is as tall as that page and no
   taller. Specificity 0,3,0, so it beats the out-of-flow base rule. */
.qdnapro-slide-pages--auto .qdnapro-slide-page.is-current {
  position: relative;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-slide-pages,
  .qdnapro-slide-page {
    transition: none;
  }
}
/* ============================================================
   .qdna-pager-* — horizontal PAGER (N pages, dots, swipe)
   ------------------------------------------------------------
   The looks behind window.QdnaPager (web/js/components/v2/pager/qdna-pager.js), used
   by the `slider` attribute of BOTH shells the app swaps between per platform:
   qdnapro-bottom-sheet (phone) and qdnapro-popover (>=1024px). It lives here for the
   same reason .qdnapro-slide-pages does: shell-agnostic, every v2 component already
   depends on design-tokens, so no new dependency and no second copy. [Kim 04.09.2026]

   Where slide-pages is a ONE-LEVEL wizard switch (page 1 leaves, page 2 arrives), this
   is a real pager: any number of pages, a dots strip, a drag gesture, and a height that
   either follows the active page or stays on the tallest one.
   ============================================================ */
.qdna-pager-viewport {
  overflow: hidden;
  flex-shrink: 0;
  /* A floor for the height, so a set with one short page does not open as a cramped
     slit. The JS writes `height` inline; min-height wins over it by definition, so a
     consumer only has to set this variable. Default 0 = no floor. */
  min-height: var(--pager-min-h, 0);
  /* Written by the JS (the active page, or the tallest one in heightMode "max"); the
     transition is what makes a longer page grow into place instead of jumping. */
  transition: height 0.24s ease;
}

.qdna-pager-track {
  display: flex;
  /* Load-bearing, not cosmetic: a flex row stretches its items to the tallest one by
     default, so every page would measure the SAME height and "auto" could never
     animate. */
  align-items: flex-start;
  will-change: transform;
  transition: transform 0.26s cubic-bezier(0.22, 0.9, 0.3, 1);
}

.qdna-pager-page {
  flex: 0 0 100%;
  max-width: 100%;
  /* border-box is load-bearing too: flex-basis:100% resolves against the viewport's
     CONTENT width, so a page with its own horizontal padding rendered WIDER than the
     viewport and every next page drifted a little further out of frame (measured
     04.09.2026: 366px pages in a 358px viewport, so page 3 sat 24px off). */
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.qdna-pager-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 14px 0 4px;
  flex-shrink: 0;
}

.qdna-pager-dot {
  width: 9px;
  height: 9px;
  padding: 0;
  border: none;
  border-radius: var(--r-pill);
  background: var(--c-black-12);
  cursor: pointer;
  /* A 9px dot is far below the 44px touch target, so grow the HIT area without growing
     the dot: a transparent border would change the painted size, a pseudo-element does
     not. */
  position: relative;
}

.qdna-pager-dot::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 40px;
  height: 40px;
  transform: translate(-50%, -50%);
}

.qdna-pager-dot.is-active {
  width: 26px;
  border-radius: 5px;
  background: var(--c-grey-400);
}

/* A page's data-tone colours its dot with the SAME tokens the toned dialogs use, so the
   dots row reads as a summary of the set. Inactive dots keep the colour at a lower
   weight — that is the point of colouring them at all. */
.qdna-pager-dot[data-tone=success] {
  background: var(--c-dialog-success-surface);
}

.qdna-pager-dot[data-tone=danger] {
  background: var(--c-dialog-danger-surface);
}

.qdna-pager-dot[data-tone=warning] {
  background: var(--c-dialog-warning-surface);
}

.qdna-pager-dot[data-tone]:not(.is-active) {
  opacity: 0.45;
}

/* Reduced motion: the pager still WORKS, it just stops sliding and growing. */
@media (prefers-reduced-motion: reduce) {
  .qdna-pager-viewport,
  .qdna-pager-track {
    transition: none;
  }
}
.qos-root {
  position: fixed;
  inset: 0;
  z-index: var(--qos-z, var(--overlay-z));
}

.qos-scrim {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: var(--overlay-scrim);
  animation: qos-scrim-in 160ms ease-out;
}

.qos-scrim *,
.qos-scrim *::before,
.qos-scrim *::after {
  box-sizing: border-box;
}

.qos-dialog {
  display: flex;
  width: 100%;
  min-width: 0;
  max-width: var(--qos-w, 560px);
  max-height: calc(100vh - 48px);
  padding: 8px;
  background: var(--overlay-frame-bg);
  border: 0.5px solid var(--overlay-frame-border);
  border-radius: var(--overlay-frame-radius);
  box-shadow: var(--overlay-frame-shadow);
  animation: qos-dialog-in 200ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.qos-window {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  max-height: 100%;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px 16px 12px;
  background: var(--overlay-window-bg);
  border: 0.5px solid var(--overlay-window-border);
  border-radius: var(--overlay-window-radius);
  overflow: hidden;
}

.qos-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 0 4px;
  flex-shrink: 0;
}

.qos-head-icon {
  display: inline-flex;
  flex-shrink: 0;
  color: var(--c-purple-500);
}

.qos-head-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1 1 auto;
}

.qos-title {
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
  font-family: "Inter", sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
  color: var(--c-purple-500);
  text-transform: none;
  letter-spacing: normal;
}

.qos-subtitle:empty {
  display: none;
}

.qos-subtitle {
  margin: 0;
  font-family: "Inter", sans-serif;
  font-size: 13px;
  line-height: 20px;
  color: var(--c-text-muted);
}

.qos-close {
  flex-shrink: 0;
}

.qos-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 4px;
  scroll-padding-top: 8px;
  font-family: "Inter", sans-serif;
  font-size: 14px;
  line-height: 24px;
  color: var(--c-grey-950);
}

.qos-foot {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  gap: 16px;
  padding: 4px 0 0;
  flex-shrink: 0;
}

.qos-foot-spacer {
  flex: 1 1 auto;
}

.qos-foot[hidden] {
  display: none;
}

.qos-scrim ::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

.qos-scrim ::-webkit-scrollbar-track {
  background: transparent;
}

.qos-scrim ::-webkit-scrollbar-corner {
  background: transparent;
}

.qos-scrim ::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 8px;
  transition: background 160ms ease;
}

.qos-scrim *:hover::-webkit-scrollbar-thumb,
.qos-scrim *:focus-within::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.22);
}

.qos-scrim ::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.34);
}

@keyframes qos-scrim-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes qos-dialog-in {
  from {
    opacity: 0;
    transform: translateY(8px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qos-scrim,
  .qos-dialog {
    animation: none;
  }
}
[data-theme=dark] .qos-title,
[data-theme-dark] .qos-title,
[data-theme=dark] .qos-body,
[data-theme-dark] .qos-body {
  color: #f0f1f2;
}

[data-theme=dark] .qos-subtitle,
[data-theme-dark] .qos-subtitle {
  color: #b8bcc4;
}

.btn {
  display: inline-flex;
  gap: 1rem;
  border-radius: 0.5rem;
  padding: 1rem;
  font-size: 16px;
  border: 0;
  background-color: #40499a;
  color: #FFFFFF;
  font-weight: 400;
  border: 1px solid transparent;
  cursor: pointer;
  font-family: "Inter";
}
.btn.btn-size-sm {
  padding: 0.5rem;
  gap: 0.5rem;
}
.btn:focus {
  outline: 0;
}
.btn:hover, .btn.btn-state-hover {
  background-color: #333A7B;
}
.btn:focus-visible, .btn.btn-state-focus {
  background-color: #40499a;
  outline: 1px solid #40499a;
  outline-offset: 2px;
}
.btn:active, .btn.btn-state-active {
  background-color: #7075a2;
}
.btn:disabled, .btn.btn-state-disabled {
  background-color: #f0f1f2;
  color: #898e99;
  border-color: transparent;
  cursor: not-allowed;
}
.btn.btn-square {
  aspect-ratio: 1/1;
  padding: 0;
  align-items: center;
  justify-content: center;
  display: inline-flex;
  width: 2.5rem;
  height: 2.5rem;
}

/* 
 * Make skins based on the provided colors at the top
 * the skins are placed in .btn-{skin-name}
 */
.btn-color-primary {
  background-color: #40499a;
  color: #FFFFFF;
  border: 1px solid transparent;
}
.btn-color-primary:hover, .btn-color-primary.btn-state-hover {
  background-color: #333A7B;
}
.btn-color-primary:focus-visible, .btn-color-primary.btn-state-focus {
  background-color: #40499a;
  outline-color: #40499a;
}
.btn-color-primary:active, .btn-color-primary.btn-state-active {
  background-color: #7075a2;
}
.btn-color-primary:disabled, .btn-color-primary.btn-state-disabled {
  background-color: #f0f1f2;
  color: #898e99;
  border-color: transparent;
  cursor: not-allowed;
}

.btn-color-orange {
  background-color: #ef8e02;
  color: #FFFFFF;
  border: 1px solid transparent;
}
.btn-color-orange:hover, .btn-color-orange.btn-state-hover {
  background-color: #bf7202;
}
.btn-color-orange:focus-visible, .btn-color-orange.btn-state-focus {
  background-color: #ef8e02;
  outline-color: #ef8e02;
}
.btn-color-orange:active, .btn-color-orange.btn-state-active {
  background-color: #d29c4d;
}
.btn-color-orange:disabled, .btn-color-orange.btn-state-disabled {
  background-color: #f0f1f2;
  color: #898e99;
  border-color: transparent;
  cursor: not-allowed;
}

.btn-color-subtle {
  background-color: transparent;
  color: #0B0B0D;
  border: 1px solid transparent;
}
.btn-color-subtle:hover, .btn-color-subtle.btn-state-hover {
  background-color: #F0F1F2;
}
.btn-color-subtle:focus-visible, .btn-color-subtle.btn-state-focus {
  background-color: #f0f1f2;
  outline-color: #0B0B0D;
}
.btn-color-subtle:active, .btn-color-subtle.btn-state-active {
  background-color: #f4f5f6;
}
.btn-color-subtle:disabled, .btn-color-subtle.btn-state-disabled {
  background-color: transparent;
  color: #898e99;
  border-color: transparent;
  cursor: not-allowed;
}

.btn-color-secondary {
  background-color: #f0f1f2;
  color: #0B0B0D;
  border: 1px solid transparent;
}
.btn-color-secondary:hover, .btn-color-secondary.btn-state-hover {
  background-color: #c4c7cc;
}
.btn-color-secondary:focus-visible, .btn-color-secondary.btn-state-focus {
  background-color: #f0f1f2;
  outline-color: #0B0B0D;
}
.btn-color-secondary:active, .btn-color-secondary.btn-state-active {
  background-color: #d6d8db;
}
.btn-color-secondary:disabled, .btn-color-secondary.btn-state-disabled {
  background-color: #f0f1f2;
  color: #898e99;
  border-color: transparent;
  cursor: not-allowed;
}

.btn-color-secondary-outline {
  background-color: #e6e9ff;
  color: #40499A;
  border: 1px solid #40499A;
}
.btn-color-secondary-outline:hover, .btn-color-secondary-outline.btn-state-hover {
  background-color: #daddf2;
}
.btn-color-secondary-outline:focus-visible, .btn-color-secondary-outline.btn-state-focus {
  background-color: #e6e9ff;
  outline-color: #40499A;
}
.btn-color-secondary-outline:active, .btn-color-secondary-outline.btn-state-active {
  background-color: #e5e7f6;
}
.btn-color-secondary-outline:disabled, .btn-color-secondary-outline.btn-state-disabled {
  background-color: #f0f1f2;
  color: #898e99;
  border-color: transparent;
  cursor: not-allowed;
}

.btn-color-secondary-white {
  background-color: transparent;
  color: #40499A;
  border: 1px solid transparent;
}
.btn-color-secondary-white:hover, .btn-color-secondary-white.btn-state-hover {
  background-color: #daddf2;
}
.btn-color-secondary-white:focus-visible, .btn-color-secondary-white.btn-state-focus {
  background-color: #e6e9ff;
  outline-color: #0B0B0D;
}
.btn-color-secondary-white:active, .btn-color-secondary-white.btn-state-active {
  background-color: #e5e7f6;
}
.btn-color-secondary-white:disabled, .btn-color-secondary-white.btn-state-disabled {
  background-color: transparent;
  color: #898e99;
  border-color: transparent;
  cursor: not-allowed;
}

.btn-color-secondary-purple {
  background-color: #e6e9ff;
  color: #40499A;
  border: 1px solid transparent;
}
.btn-color-secondary-purple:hover, .btn-color-secondary-purple.btn-state-hover {
  background-color: #daddf2;
}
.btn-color-secondary-purple:focus-visible, .btn-color-secondary-purple.btn-state-focus {
  background-color: #e6e9ff;
  outline-color: #0B0B0D;
}
.btn-color-secondary-purple:active, .btn-color-secondary-purple.btn-state-active {
  background-color: #e5e7f6;
}
.btn-color-secondary-purple:disabled, .btn-color-secondary-purple.btn-state-disabled {
  background-color: #f0f1f2;
  color: #898e99;
  border-color: transparent;
  cursor: not-allowed;
}

.btn-color-warning {
  background-color: #f0f1f2;
  color: #C65A5A;
  border: 1px solid transparent;
}
.btn-color-warning:hover, .btn-color-warning.btn-state-hover {
  background-color: #c4c7cc;
}
.btn-color-warning:focus-visible, .btn-color-warning.btn-state-focus {
  background-color: #c4c7cc;
  outline-color: #0B0B0D;
}
.btn-color-warning:active, .btn-color-warning.btn-state-active {
  background-color: #d6d8db;
}
.btn-color-warning:disabled, .btn-color-warning.btn-state-disabled {
  background-color: #f0f1f2;
  color: #898e99;
  border-color: transparent;
  cursor: not-allowed;
}

qdna-input {
  display: inline-block;
  width: 100%;
  position: relative;
}

qdna-input .input-wrapper {
  display: flex;
  align-items: center;
  overflow: hidden;
  padding: 1rem 1.25rem;
  border-radius: 0.5rem;
  background-color: #FFFFFF;
  border: 1px solid #ccc;
  width: 100%;
  line-height: 1rem;
  cursor: pointer;
}
qdna-input .input-wrapper:has(input-prefix) {
  padding: 8px 12px;
}

qdna-input .input-box {
  flex: 1;
  border: none;
  outline: none;
  background: transparent;
  font-size: 0.875rem;
  color: #0B0B0D;
  padding: 0;
  width: 100%;
}

qdna-input .input-box::placeholder {
  color: #a6aab3;
}

qdna-input[size=sm] .input-wrapper {
  padding: 0.625rem 0.75rem;
}
qdna-input[size=sm] .input-wrapper:has(input-prefix) {
  padding: 4px;
}

qdna-input:hover .input-wrapper,
qdna-input[state=hover] .input-wrapper {
  border-color: #40499A;
}

qdna-input[state=focus] .input-wrapper {
  border-color: #40499A;
  box-shadow: 0 0 0 2px rgba(64, 73, 154, 0.1);
}

qdna-input[state=success] .input-wrapper {
  border-color: #428B6E;
}

qdna-input[state=error] .input-wrapper {
  border-color: #C65A5A;
}

qdna-input[disabled] .input-wrapper {
  background-color: #F0F1F2;
  border-color: transparent;
  color: #898E99;
  cursor: not-allowed;
}

qdna-input[disabled] .input-box {
  color: #898E99;
  cursor: not-allowed;
}

qdna-input .input-icon-prefix {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-right: 0.75rem;
  color: #666;
}

qdna-input .input-external-prefix {
  display: flex;
  align-items: center;
  padding-right: 0.75rem;
}

qdna-input .input-clear {
  display: none;
  align-items: center;
  justify-content: center;
  padding: 0.5rem;
  font-size: 0.875;
  color: #777;
  cursor: pointer;
}

qdna-input[filled][clearable] .input-clear,
qdna-input[filled][clearable=true] .input-clear {
  display: flex;
}

qdna-input[disabled] .input-clear {
  display: none;
  cursor: not-allowed;
  color: #ccc;
}

qdna-input.qdna-input-as-text .input-wrapper {
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

qdna-input.qdna-input-as-text .input-box {
  padding: 8px;
  border-radius: 4px;
  border: 1px solid #ccc;
}
qdna-input.qdna-input-as-text .input-box:disabled {
  border: none;
  padding-left: 0px;
  padding-right: 0px;
}

.input-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: #fff;
  border: 1px solid #C4C7CC;
  border-top: none;
  border-radius: 0 0 8px 8px;
  display: none;
  z-index: 1000;
}

.input-dropdown.open {
  display: block;
}

.input-wrapper.dropdown-open {
  border-radius: 8px 8px 0 0;
}

row-item {
  display: flex;
  align-items: center;
  padding: 6px 12px;
  cursor: pointer;
}

row-item:hover {
  background: #F5F6FA;
}

dropdown-row {
  display: block;
  padding: 8px 12px;
  border-bottom: 1px solid #E0E0E0;
}

dropdown-row:last-child {
  border-bottom: none;
}

qdna-input[type=checkbox] .input-wrapper {
  all: unset;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 6px;
  cursor: pointer;
}

qdna-input[type=checkbox] .input-box {
  all: revert;
  width: 16px;
  height: 16px;
  margin: 0;
  padding: 0;
  vertical-align: middle;
  accent-color: #40499A;
  cursor: pointer;
}

qdna-input[type=checkbox] .checkbox-label {
  all: unset;
  font-size: 14px;
  color: #0B0B0D;
  line-height: 1;
}

qdna-input[type=checkbox][disabled] .input-wrapper {
  opacity: 0.6;
  cursor: not-allowed;
}

.image-circle-ratio {
  width: 29px;
  height: 29px;
  aspect-ratio: 1/1;
  border-radius: calc(infinity * 1px);
  margin-right: 12px;
}

.label {
  display: inline-flex;
  align-items: center;
  align-content: center;
  border-radius: 0.25rem;
  padding: 0.25rem 0.5rem;
  font-family: "Inter";
  font-size: 0.875rem;
  gap: 0.25rem;
  line-height: 1.25rem;
  border: 1px solid transparent;
}
.label.label-outline {
  cursor: pointer;
}
.label.label-sm {
  padding: 0rem 0.5rem;
}
.label-icon-prefix {
  font-size: 1.25rem;
}

.label-primary {
  background-color: #F3F7FC;
  color: #4F6887;
}
.label-primary.label-outline {
  background: transparent;
}
.label-primary.label-outline:hover {
  background-color: #F3F7FC;
}
.label-primary.label-border {
  border-color: #4F6887;
}

.label-yellow {
  background-color: #FEEDB8;
  color: #977F2E;
}
.label-yellow.label-outline {
  background: transparent;
}
.label-yellow.label-outline:hover {
  background-color: #FEEDB8;
}
.label-yellow.label-border {
  border-color: #977F2E;
}

.label-red {
  background-color: #fee3e3;
  color: #c65a5a;
}
.label-red.label-outline {
  background: transparent;
}
.label-red.label-outline:hover {
  background-color: #fee3e3;
}
.label-red.label-border {
  border-color: #c65a5a;
}

.label-green {
  background-color: #c5f5e2;
  color: #428b6e;
}
.label-green.label-outline {
  background: transparent;
}
.label-green.label-outline:hover {
  background-color: #c5f5e2;
}
.label-green.label-border {
  border-color: #428b6e;
}

.label-secondary {
  background-color: #f0f1f2;
  color: #6b7280;
}
.label-secondary.label-outline {
  background: transparent;
}
.label-secondary.label-outline:hover {
  background-color: #f0f1f2;
}
.label-secondary.label-border {
  border-color: #6b7280;
}

.label-blue {
  background-color: #ecedf5;
  color: #40499a;
}
.label-blue.label-outline {
  background: transparent;
}
.label-blue.label-outline:hover {
  background-color: #ecedf5;
}
.label-blue.label-border {
  border-color: #40499a;
}

.label-blue-2 {
  background-color: #ffffff;
  color: #40499a;
}
.label-blue-2.label-outline {
  background: transparent;
}
.label-blue-2.label-outline:hover {
  background-color: #ffffff;
}
.label-blue-2.label-border {
  border-color: #40499a;
}

.badge {
  background: #40499A;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  padding: 0.125rem 0.438rem;
  border-radius: 50px;
  color: #FFF;
  text-align: center;
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1.25rem;
  border: 1px solid transparent;
}
.badge.badge-primary {
  background-color: #40499a;
  color: #ffffff;
}
.badge.badge-primary.badge-outline {
  border-color: #40499a;
}
.badge.badge-purple {
  background-color: #e6e9ff;
  color: #40499a;
}
.badge.badge-purple.badge-outline {
  border-color: #40499a;
}
.badge.badge-yellow {
  background-color: #FEEDB8;
  color: #977F2E;
}
.badge.badge-yellow.badge-outline {
  border-color: #977F2E;
}
.badge.badge-grey {
  background-color: #d3d5d9;
  color: #6b7280;
}
.badge.badge-grey.badge-outline {
  border-color: #6b7280;
}
.badge.badge-red {
  background-color: #fef1f1;
  color: #c65a5a;
}
.badge.badge-red.badge-outline {
  border-color: #c65a5a;
}
.badge.badge-transparent {
  background-color: transparent;
  color: #6b7280;
}
.badge.badge-transparent.badge-outline {
  border-color: transparent;
}

.indicator-badge {
  display: flex;
  width: 1.5rem;
  height: 1.5rem;
  justify-content: center;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  background: #ff3a30;
  border-radius: 3.13rem;
  color: #FFF;
  text-align: center;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 20px;
}
.indicator-badge.badge-sm {
  width: 1.25rem;
  height: 1.25rem;
  font-size: 0.625rem;
}
.indicator-badge.badge-xs {
  width: 0.5rem;
  height: 0.5rem;
  font-size: 0rem;
}
.indicator-badge.badge-dot {
  font-size: 0rem;
}

.tag {
  background-color: #f0f1f2;
  color: #1e1f20;
  display: inline-flex;
  align-items: center;
  align-content: center;
  border-radius: 6.25rem;
  padding: 0.125rem 0.875rem;
  gap: 0.475rem;
  font-family: "Inter";
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.25rem;
  border: 1px solid transparent;
}
.tag.tag-filled {
  background-color: #c4c7cc;
  color: #1e1f20;
}
.tag.tag-sm {
  font-size: 0.75rem;
  padding: 0rem 0.5rem;
  gap: 0.25rem;
}

.tag-gray {
  background-color: #f0f1f2;
  color: #1e1f20;
}
.tag-gray.tag-filled {
  background-color: #c4c7cc;
  color: #1e1f20;
}

.tag-red {
  background-color: #fee3e3;
  color: #633030;
}
.tag-red.tag-filled {
  background-color: #fbaaaa;
  color: #633030;
}

.tag-yellow {
  background-color: #fef6db;
  color: #655522;
}
.tag-yellow.tag-filled {
  background-color: #fde594;
  color: #655522;
}

.tag-green {
  background-color: #e2faf1;
  color: #2f5d4a;
}
.tag-green.tag-filled {
  background-color: #8becc5;
  color: #2f5d4a;
}

.tag-blue {
  background-color: #e6eff9;
  color: #37475a;
}
.tag-blue.tag-filled {
  background-color: #b5ceed;
  color: #37475a;
}

.tag-dark-blue {
  background-color: #d6e0f9;
  color: #192a5a;
}
.tag-dark-blue.tag-filled {
  background-color: #85a1ec;
  color: #192a5a;
}

.tag-pink {
  background-color: #f6e1e8;
  color: #562d3a;
}
.tag-pink.tag-filled {
  background-color: #e5a6b9;
  color: #562d3a;
}

.tag-purple {
  background-color: #ebe9fb;
  color: #413b5e;
}
.tag-purple.tag-filled {
  background-color: #c4bcf3;
  color: #413b5e;
}

.tag-circle {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  padding: 2px 14px;
  gap: 8px;
  border-radius: 100px;
  position: relative;
  font-size: 0;
}
.tag-circle:not([class*=tag-]) {
  background: #C4C7CC;
  color: #1e1f20;
}
.tag-circle.tag-sm {
  width: 20px;
  height: 20px;
  padding: 2px 10px;
  gap: 4px;
}
.tag-circle .tag-icon-prefix,
.tag-circle .tag-icon-suffix {
  font-size: 16px;
}
.tag-circle:not(.tag-sm) .tag-icon-prefix {
  position: absolute;
  left: -3px;
  top: -3px;
  width: 50px;
  height: 50px;
  border-radius: 25px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
}
.tag-circle.tag-sm .tag-icon-prefix {
  position: static;
  width: 16px;
  height: 16px;
  border: none;
  font-size: 16px;
}

.qdna-sidebar {
  background: #40499a;
  display: flex;
  width: 120px;
  max-width: 120px;
  flex-direction: column;
  align-items: center;
  padding: 8px;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
}
.qdna-sidebar .sidebar-logo {
  cursor: pointer;
  padding-top: 10px;
}
.qdna-sidebar .sidebar-header {
  padding: 16px;
}
.qdna-sidebar .sidebar-header img {
  height: 60px;
}
.qdna-sidebar .sidebar-items {
  display: flex;
  flex-direction: column;
  margin-top: 1rem;
  border-top: 1px solid #666dae;
}
.qdna-sidebar .sidebar-items .sidebar-item {
  height: 90px;
  aspect-ratio: 1;
  background: transparent;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  cursor: pointer;
  border-radius: 8px;
  position: relative;
  padding: 0px 16px;
  width: 104px;
}
.qdna-sidebar .sidebar-items .sidebar-item .icon {
  width: 24px;
  height: 24px;
  aspect-ratio: 1/1;
  background-color: #fff;
  -webkit-mask: var(--icon) no-repeat center/contain;
  mask: var(--icon) no-repeat center/contain;
}
.qdna-sidebar .sidebar-items .sidebar-item .item-title {
  color: #FFF;
  text-align: center;
  font-size: 12px;
}
.qdna-sidebar .sidebar-items .sidebar-item .sidebar-indicator {
  position: absolute;
  top: 12px;
  right: 16px;
  z-index: 2;
  pointer-events: none;
}
.qdna-sidebar .sidebar-items .sidebar-item:hover {
  background: #333a7b;
}
.qdna-sidebar .sidebar-items .sidebar-item.active {
  background: #e6e9ff;
}
.qdna-sidebar .sidebar-items .sidebar-item.active .item-title {
  color: #40499a;
}
.qdna-sidebar .sidebar-items .sidebar-item.active .icon {
  background-color: #40499a;
}
.qdna-sidebar .sidebar-items .sidebar-item.active:hover {
  background: #e6e9ff;
}
.qdna-sidebar .sidebar-items .sidebar-item.active svg path {
  fill: #333a7b;
}
.qdna-sidebar .sidebar-footer {
  padding: 16px;
}
.qdna-sidebar .sidebar-footer img {
  height: 30px;
}

qdna-dropdown dropdown {
  background: #FFFFFF;
  border-radius: 12px;
  padding: 8px 4px;
  z-index: 3;
  box-shadow: 0 8px 12px 6px rgba(0, 0, 0, 0.15), 0 4px 4px 0 rgba(0, 0, 0, 0.3);
}
qdna-dropdown dropdown .qdna-dropdown-menu .menu-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 16px;
  font-weight: 300;
  position: relative;
  border-radius: 8px;
  font-size: 14px;
  gap: 12px;
  cursor: pointer;
}
qdna-dropdown dropdown .qdna-dropdown-menu .menu-item .menu-content {
  display: flex;
  align-items: center;
  position: relative;
  gap: 12px;
}
qdna-dropdown dropdown .qdna-dropdown-menu .menu-item:hover {
  background-color: #e9e9e9;
}
qdna-dropdown dropdown .qdna-dropdown-menu .menu-item .item-icon {
  font-size: 24px;
}
qdna-dropdown dropdown .qdna-dropdown-menu .menu-item.item-danger {
  color: #C65A5A;
}
qdna-dropdown dropdown .qdna-dropdown-menu .menu-divider {
  position: relative;
  padding: 8px 16px;
  border-radius: 8px;
}
qdna-dropdown dropdown .qdna-dropdown-menu .menu-divider::after {
  display: block;
  content: "";
  position: relative;
  height: 2px;
  width: 100%;
  background: #C4C7CC;
}

qdna-dialog {
  display: none;
}

qdna-dialog[open] {
  display: block;
}

.qdna-dialog-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1000;
}

.qdna-dialog {
  background: #fff;
  padding: 20px;
  border-radius: 8px;
  min-width: 300px;
  max-width: 90%;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
}

.qdna-dialog-title {
  font-size: 1.2em;
  margin-bottom: 10px;
  text-align: center;
  font-weight: bold;
}

qdna-dialog qdna-button {
  margin: 5px;
}

qdna-nav-button {
  display: flex;
  flex-direction: row;
  background-color: #FFF;
  border-radius: 8px;
  width: fit-content;
  box-shadow: 0 2px 8px 2px #E0E0E0;
  overflow: visible;
  position: relative;
  align-items: center;
}

navigation-group {
  display: flex;
  flex-direction: row;
  border-right: 1px solid #CCC;
  padding: 12px 8px;
  gap: 4px;
}
navigation-group:last-child {
  border-right: none;
}

.nav-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.nav-left {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 500;
  pointer-events: none;
}

navigation-group[type=doc-preview] .nav-left {
  display: flex;
  align-items: center;
  padding: 8px 12px;
  border-right: 1px solid #E0E0E0;
}

.nav-right {
  display: flex;
  align-items: center;
  gap: 4px;
}

.nav-avatar {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  object-fit: cover;
}

.nav-username {
  font-size: 14px;
  font-weight: 500;
  color: #333;
}

.nav-page-current {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 32px;
  padding: 0 12px;
  border: 1px solid #999;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
}

.nav-page-separator {
  font-size: 14px;
  color: #999;
}

.nav-page-total {
  font-size: 14px;
  color: #999;
}

navigation-link {
  display: flex !important;
  align-items: center;
  cursor: pointer;
  color: black;
  border-radius: 4px;
  position: relative;
  text-decoration: none;
  transition: color 0.2s, background 0.2s;
  padding: 4px 12px !important;
  white-space: nowrap;
}
navigation-link:hover {
  color: #40499a;
  background: #EFEFEF;
}
navigation-link:hover::after {
  width: 50%;
}
navigation-link[active] {
  background: #e6e9ff;
  color: #40499a;
}
navigation-link[active]::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  height: 2px;
  width: 50%;
  background-color: #40499a;
  transition: width 0.3s ease;
  transform: translateX(-50%);
  transform-origin: center;
}
navigation-link .nav-link__arrow {
  font-size: 1rem;
  margin-left: 8px;
  display: inline-block;
  transition: transform 0.3s;
}
navigation-link .nav-link__arrow.is-open {
  transform: rotate(180deg);
}
navigation-link .nav-link__icon {
  font-size: 1.5rem;
}
navigation-link .nav-link__text {
  font-size: 16px;
  display: flex;
  flex-wrap: nowrap;
}
navigation-link[disabled] {
  cursor: not-allowed;
  pointer-events: none;
  opacity: 0.7;
  color: #9e9e9e;
}
navigation-link[disabled] .nav-link__icon,
navigation-link[disabled] .nav-link__arrow,
navigation-link[disabled] .nav-badge {
  color: #bdbdbd;
}
navigation-link[disabled][active] {
  background: #e6e9ff;
  color: #9e9e9e;
}
navigation-link[disabled][active]::after {
  background-color: #bdbdbd;
}
navigation-link[disabled][active] .nav-link__icon,
navigation-link[disabled][active] .nav-link__arrow {
  color: #bdbdbd;
}
navigation-link[disabled][active] .nav-badge {
  opacity: 0.6;
}
navigation-link .nav-link__icon-wrapper {
  position: relative;
  display: inline-flex;
  align-items: center;
}
navigation-link .nav-badge {
  position: absolute;
  top: 10px;
  right: 10px;
  transform: translate(100%, -50%);
  width: 14px;
  height: 14px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  line-height: 1;
  border-radius: 50%;
  color: #fff;
  overflow: hidden;
}
navigation-link .nav-badge--red {
  background: #ff4d4f;
}
navigation-link .nav-badge--highlight {
  background: #40499a;
}
navigation-link .nav-badge--dot {
  width: 8px;
  height: 8px;
  min-width: 8px;
  padding: 0;
  border-radius: 50%;
}
navigation-link.nav-link--sm .nav-badge {
  top: -2px;
  right: -4px;
  min-width: 14px;
  height: 14px;
  font-size: 9px;
}
navigation-link.nav-link--sm .nav-badge--dot {
  width: 6px;
  height: 6px;
  min-width: 6px;
}
navigation-link[disabled] .nav-badge {
  opacity: 0.6;
}

/* Dropdown: gebruikt door NavigationGroup (class toegevoegd in JS) */
.nav-dropdown {
  display: none;
  position: absolute;
  z-index: 1000;
}
.nav-dropdown.is-open {
  display: flex;
}

/* fallback: als er nog oude markup leeft */
.qdna-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

.qdna-modal-overlay.open {
  display: flex;
}

.qdna-modal {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
  overflow: hidden;
}

/* Sizes */
.modal-sm {
  width: 400px;
}

.modal-md {
  width: 700px;
}

.modal-lg {
  width: 1000px;
}

.modal-xl {
  width: 90%;
  height: 90%;
}

modal-header, modal-body, modal-footer {
  display: block;
  padding: 1rem;
}

modal-header {
  border-bottom: 1px solid #ccc;
  position: relative;
  padding: 1rem;
  font-weight: bold;
}

.close-btn {
  position: absolute;
  top: 10px;
  right: 12px;
  background: none;
  border: none;
  font-size: 22px;
  cursor: pointer;
  line-height: 1;
}

modal-footer {
  border-top: 1px solid #ccc;
  text-align: right;
}

.qdna-card {
  border-radius: 0.5rem;
  background: #ffffff;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-bottom: 1rem;
}
.qdna-card.qdna-card--default {
  background: #ffffff;
}
.qdna-card.qdna-card--purple {
  background: #DADDF2;
}
.qdna-card > card-header.qdna-card__header {
  display: flex;
  padding: 1rem 1.5rem;
  justify-content: space-between;
  align-items: center;
  align-self: stretch;
  color: #40499A;
  border-bottom: 1px solid #D9DBEB;
}
.qdna-card > card-header.qdna-card__header h1, .qdna-card > card-header.qdna-card__header h2, .qdna-card > card-header.qdna-card__header h3, .qdna-card > card-header.qdna-card__header h4, .qdna-card > card-header.qdna-card__header h5, .qdna-card > card-header.qdna-card__header h6 {
  padding: 0;
  margin: 0;
}
.qdna-card > card-header.qdna-card__header > card-actions.qdna-card__actions {
  display: inline-flex;
  gap: 0.5rem;
  align-items: center;
  margin-left: auto;
}
.qdna-card > card-body.qdna-card__body {
  padding: 1rem 1.5rem 2rem 1.5rem;
  align-self: stretch;
}
.qdna-card .card-form-section {
  color: #0B0B0D;
  font-family: Inter;
  font-size: 14px;
  font-weight: 500;
}
.qdna-card .card-form-section .card-form-title {
  color: #0B0B0D;
  padding: 8px 0px 4px 0px;
}
.qdna-card .card-form-section .non_editable_field input:not(:disabled) {
  background-color: #ddd;
}

.ts-card-list-group .form-control:disabled,
.ts-card-list-group .form-control[readonly] {
  background-color: transparent;
  border: none !important;
  box-shadow: none !important;
}

.ts-card-list-group button.form-control:disabled {
  color: #878787 !important;
}
.ts-card-list-group .select2-container--bootstrap4.select2-container--disabled .select2-selection__rendered {
  padding-left: 0;
}
.ts-card-list-group .ts-card-layout-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: stretch;
}
.ts-card-list-group .ts-card-layout-col {
  flex: 1 1 0;
  min-width: 0;
}

.ts-card-list-group .select2-container--bootstrap4.select2-container--disabled .select2-selection--single,
.ts-card-list-group .select2-container--bootstrap4.select2-container--disabled .select2-selection--multiple {
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

@media (max-width: 991px) {
  .ts-card-list-group .ts-card-layout-col {
    flex-basis: 100%;
  }
}
qdna-card-unit-type {
  display: contents;
}

.unit-type {
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  cursor: pointer;
  font-weight: normal;
  text-decoration: none;
  justify-content: space-between;
  min-height: 120px;
}
.unit-type:hover {
  background-color: #f5f6f8;
}
.unit-type__top {
  display: flex;
  flex-direction: row;
  gap: 16px;
  padding: 1.25rem 1.5rem 0.5rem;
  align-items: center;
}
.unit-type__icon {
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 44px;
  align-self: center;
}
.unit-type__icon img {
  width: 48px;
  height: 48px;
  border-radius: 0.5rem;
  object-fit: contain;
  display: block;
}
.unit-type__content {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.unit-type__heading {
  font-family: var(--Type-Font-Family-primary, Inter);
  font-size: var(--Font-size-Body-Inter-medium-14, 14px);
  font-weight: 600;
  line-height: var(--Line-Height-Body-Body-Medium-Caption, 24px);
  color: var(--Text-Body, #0B0B0D);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-decoration: none;
}
.unit-type__subheading {
  font-family: var(--Type-Font-Family-primary, Inter);
  font-size: var(--Font-size-Body-small-12, 12px);
  font-weight: 400;
  line-height: var(--Line-Height-Body-Body-Small, 20px);
  color: var(--Text-Body-Secondary, #6B7280);
  margin-top: 0;
  text-overflow: ellipsis;
}
.unit-type__info {
  display: flex;
  flex-flow: row;
  width: 100%;
  padding: 0.5rem 1.5rem 0.75rem;
  box-sizing: border-box;
}
.unit-type__info[hidden] {
  display: none;
}
.unit-type__pair {
  display: flex;
  gap: 4px;
  align-items: baseline;
  padding-right: 24px;
}
.unit-type__label, .unit-type__value {
  font-family: var(--Type-Font-Family-primary, Inter);
  font-size: var(--Font-size-Body-small-12, 12px);
  font-weight: 400;
  line-height: var(--Line-Height-Body-Body-Small, 20px);
  color: var(--Surface-Signal-Signal-grey-Detail, #6B7280);
}

:host {
  display: block;
  cursor: pointer;
  border-radius: 6px;
  transition: background 0.2s;
  width: 40%;
  max-width: 100%;
  box-sizing: border-box;
  --padding: 6px 10px;
  --font-size: 14px;
  --icon-size: 18px;
  --count-width: 30px;
  --color: #000;
  --opacity: 1;
  --hover-bg: rgba(0,0,0,0.06);
}

.wrapper {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--padding);
  font-size: var(--font-size);
}

.left {
  display: flex;
  align-items: center;
  gap: 0.5em;
  flex: 1;
  min-width: 0;
}

.icon {
  font-family: "Material Design Icons";
  font-style: normal;
  display: inline-block;
  width: var(--icon-size);
  font-size: var(--icon-size);
  text-align: center;
  color: var(--color);
  opacity: var(--opacity);
  flex-shrink: 0;
}

.text {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  color: var(--color);
  opacity: var(--opacity);
}

.count {
  min-width: var(--count-width);
  text-align: right;
  color: var(--color);
  opacity: var(--opacity);
}

:host(:hover) {
  background: var(--hover-bg);
}

@media (max-width: 600px) {
  :host {
    width: 80%;
  }
}
qdna-search-bar {
  display: inline-block;
  width: 100%;
}

qdna-search-bar .qdna-search-container {
  display: flex;
  align-items: center;
  padding: 0 8px;
  height: 40px;
  background: #FFF;
  border: 1px solid #dcdcdc;
  border-radius: 8px;
  transition: all 0.2s ease;
  gap: 6px;
}

qdna-search-bar .input {
  flex: 1;
  border: none;
  outline: none;
  background: transparent;
  font-size: 14px;
  font-family: inherit;
  color: #222;
  width: 100%;
}

qdna-search-bar .input::placeholder {
  color: #999;
}

qdna-search-bar .icon {
  color: #777;
  cursor: pointer;
  display: contents;
}

qdna-search-bar .close {
  display: none;
}

qdna-search-bar .left-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 30px;
  min-width: 30px;
  padding: 0;
  border: none;
  border-radius: 6px;
  background: #E6E9FF;
  color: #40499A;
}

qdna-search-bar .left-btn:focus,
qdna-search-bar .left-btn:focus-visible {
  outline: none;
}

qdna-search-bar .btn-label:empty {
  display: none;
}

qdna-search-bar:not([state=focus]):not([state=filled]):hover .qdna-search-container {
  border-color: #40499A;
  border-radius: 8px;
  border: 1px solid #40499A;
  background: #FFF;
}

qdna-search-bar[state=focus] .qdna-search-container {
  border: 1px solid #40499A;
  box-shadow: 0 0 0 3px #ffffff, 0 0 0 4px #40499A;
}

qdna-search-bar[state=filled] .qdna-search-container {
  border-color: #40499A;
}

qdna-search-bar[disabled] .qdna-search-container {
  background: #f5f5f5;
  border-color: #e0e0e0;
  cursor: not-allowed;
}

qdna-search-bar[disabled] .input {
  cursor: not-allowed;
  color: #aaa;
}

qdna-search-bar[disabled] .icon {
  cursor: not-allowed;
  color: #ccc;
}

qdna-column-item {
  display: block;
  width: 100%;
  margin: 2px;
}

qdna-column-item .qdna-column-component {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px;
  border-radius: 8px;
  border: 1px solid #40499A;
  background: #E6E9FF;
  box-sizing: border-box;
  min-height: 40px;
  line-height: 1;
}

qdna-column-item .qdna-left-section {
  display: flex;
  align-items: center;
  gap: 16px;
  flex: 1;
  min-width: 0;
}

qdna-column-item .qdna-checkbox-wrapper {
  width: 16px;
  height: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  cursor: pointer;
  position: relative;
  vertical-align: middle;
}

qdna-column-item .qdna-checkbox {
  position: absolute;
  inset: 0;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}

qdna-column-item .qdna-checkbox-ui {
  width: 16px;
  height: 16px;
  border-radius: 4px;
  background: #fff;
  border: 1.5px solid #40499A;
  box-sizing: border-box;
  transition: all 0.15s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

qdna-column-item[checkbox-shape=round] .qdna-checkbox-ui {
  border-radius: 50%;
}

qdna-column-item .qdna-checkbox-ui::after {
  content: "";
  width: 4px;
  height: 8px;
  border: solid #ffffff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
  opacity: 0;
}

qdna-column-item[checked] .qdna-checkbox-ui {
  background: #4652F3;
  border-color: #4652F3;
}

qdna-column-item[checked] .qdna-checkbox-ui::after {
  opacity: 1;
}

qdna-column-item:not([checkbox-state=disabled]) .qdna-checkbox-wrapper:hover .qdna-checkbox-ui {
  border-color: #4652F3;
}

qdna-column-item:focus-within .qdna-checkbox-ui {
  outline: 2px solid rgba(70, 82, 243, 0.35);
  outline-offset: 2px;
}

qdna-column-item[checkbox-state=disabled] {
  pointer-events: none;
}

qdna-column-item[checkbox-state=disabled] .qdna-checkbox-ui {
  background: #F2F4F7;
  border-color: #D0D5DD;
}

qdna-column-item[checkbox-state=disabled][checked] .qdna-checkbox-ui::after {
  border-color: #101828;
}

qdna-column-item[checkbox-state=disabled] .qdna-column-component {
  opacity: 0.6;
}

qdna-column-item .qdna-visibility {
  width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Material Design Icons";
  font-size: 18px;
  color: #40499A;
  flex-shrink: 0;
}

qdna-column-item:not([visibility=hidden]) .qdna-visibility::before {
  content: "\f01db";
}

qdna-column-item[visibility=hidden] .qdna-visibility {
  display: none;
}

qdna-column-item .qdna-column-label {
  flex: 1;
  min-width: 0;
  font-size: 16px;
  line-height: 1;
  display: flex;
  align-items: center;
  color: #40499A;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

qdna-column-item .qdna-right-section {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

qdna-column-item .qdna-column-message {
  font-size: 12px;
  color: #40499A;
  display: flex;
  align-items: center;
  white-space: nowrap;
  visibility: hidden;
}

qdna-column-item[message] .qdna-column-message {
  visibility: visible;
}

qdna-column-item .qdna-message-tick {
  width: 16px;
  height: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  visibility: hidden;
  flex-shrink: 0;
}

qdna-column-item[message] .qdna-message-tick {
  visibility: visible;
}

qdna-column-item .qdna-message-tick::before {
  content: "✓";
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  color: #40499A;
}

job-card {
  display: block;
  user-select: none;
  --bg-light: #f2f4f7;
  --bg-dark: #f2f4f7;
}

job-card .job-card {
  background: var(--bg-light);
  border: 1px solid #d0d5dd;
  border-radius: 8px;
  padding: 8px 10px;
  transition: background 0.2s ease;
  cursor: pointer;
}

job-card:hover .job-card {
  background: var(--bg-dark);
}

job-card[status=scheduled] {
  --bg-light: #f2f4f7;
  --bg-dark: #d0d5dd;
}

job-card[status=overdue] {
  --bg-light: #fde2e7;
  --bg-dark: #f7bfc8;
}

job-card[status=in-progress] {
  --bg-light: #fff6d1;
  --bg-dark: #ffe9a6;
}

job-card[status=completed] {
  --bg-light: #e6f7ec;
  --bg-dark: #c6efd9;
}

/* Drag / Active State */
job-card[state=drag] {
  --bg-light: #eef4ff;
  --bg-dark: #dbe4ff;
}

job-card[state=drag] .job-card {
  opacity: 0.6;
  cursor: grabbing;
}

job-card[state=active] {
  --bg-light: #eef4ff;
  --bg-dark: #dbe4ff;
}

job-card .row-time,
job-card .row-user {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

job-card .row-user {
  margin-top: 6px;
}

job-card .avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #e4e7ec;
  flex-shrink: 0;
}

job-card .avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

job-card .username {
  flex: 1;
  font-size: 14px;
  font-weight: 500;
}

job-card .time {
  font-size: 12px;
  white-space: nowrap;
}

job-card[size=sm] .row-time {
  display: none;
}

job-card[size=sm] .row-user {
  margin-top: 0;
}

job-card[size=sm] .username {
  font-size: 13px;
}

qdna-dropdown-menu {
  position: relative;
  display: block;
  font-family: inherit;
  width: 100%;
}

qdna-dropdown-menu.dropdown-disabled {
  opacity: 0.6;
  pointer-events: none;
}

qdna-dropdown-menu dropdown-trigger {
  display: flex;
  align-items: center;
  cursor: pointer;
  width: 100%;
}

qdna-dropdown-menu dropdown-trigger > * {
  width: 100%;
}

qdna-dropdown-menu dropdown {
  position: absolute;
  display: none;
  z-index: 999;
  background: #fff;
  border-radius: 12px;
  border: 1px solid #eee;
  padding: 4px 0;
  left: 0;
  right: 0;
  box-sizing: border-box;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

qdna-dropdown-menu.dropdown-open dropdown {
  display: block;
}

qdna-dropdown-menu.dropdown-size-sm dropdown {
  font-size: 12px;
}

qdna-dropdown-menu.dropdown-size-md dropdown {
  font-size: 14px;
}

qdna-dropdown-menu.dropdown-size-lg dropdown {
  font-size: 16px;
}

dropdown-option {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  user-select: none;
  transition: background 0.2s ease;
}

dropdown-option:hover {
  background: #f5f6fa;
}

dropdown-option.selected {
  background: #eef2ff;
  color: #40499a;
}

dropdown-option.disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

qdna-dropdown-menu dropdown {
  max-height: 260px;
  overflow-y: auto;
}

qdna-dropdown-menu dropdown::-webkit-scrollbar {
  width: 6px;
}

qdna-dropdown-menu dropdown::-webkit-scrollbar-thumb {
  background: #ccc;
  border-radius: 4px;
}

dropdown-divider {
  display: block;
  height: 1px;
  margin: 4px 0;
  background: #eee;
}

dropdown-label {
  display: block;
  font-size: 12px;
  padding: 4px 8px;
  color: #888;
}

qdna-dropdown-menu.dropdown-open dropdown {
  animation: dropdownFade 0.15s ease;
}

@keyframes dropdownFade {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
qdna-toggle {
  display: inline-flex;
  cursor: pointer;
  user-select: none;
}

.qdna-toggle-root {
  --toggle-off: #d0d5dd;
  --toggle-on: #4625f3;
  --toggle-thumb: #ffffff;
  --toggle-focus: rgba(8, 117, 226, .35);
}

.qdna-toggle {
  position: relative;
  background: var(--toggle-off);
  border-radius: 999px;
  transition: background 0.25s ease, box-shadow 0.25s ease;
}

.qdna-toggle-thumb {
  position: absolute;
  background: var(--toggle-thumb);
  border-radius: 50%;
  top: 2px;
  left: 2px;
  transition: transform 0.25s ease;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
}

.toggle-checked .qdna-toggle {
  background: var(--toggle-on);
}

.toggle-checked .qdna-toggle-thumb {
  transform: translateX(100%);
}

.toggle-disabled {
  opacity: 0.5;
  pointer-events: none;
}

.toggle-size-sm .qdna-toggle {
  width: 32px;
  height: 18px;
}

.toggle-size-sm .qdna-toggle-thumb {
  width: 14px;
  height: 14px;
}

.toggle-size-md .qdna-toggle {
  width: 40px;
  height: 22px;
}

.toggle-size-md .qdna-toggle-thumb {
  width: 18px;
  height: 18px;
}

.toggle-size-lg .qdna-toggle {
  width: 52px;
  height: 28px;
}

.toggle-size-lg .qdna-toggle-thumb {
  width: 24px;
  height: 24px;
}

qdna-due-date {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  font-size: 12px;
  font-weight: 400;
  overflow: hidden;
  color: var(--Text-Body, #0B0B0D);
  text-overflow: ellipsis;
  font-style: normal;
  line-height: var(--Line-Height-Body-Body-Small, 20px); /* 166.667% */
}

qdna-due-date.status-complete {
  color: #428B6E;
}

qdna-due-date.status-complete i {
  color: #428B6E;
}

qdna-due-date.status-progress {
  color: #EF8E02;
}

qdna-due-date.status-progress i {
  color: #EF8E02;
}

qdna-due-date.status-open.priority-high,
qdna-due-date.status-deadline.priority-high {
  color: #FF3A30;
}

qdna-due-date.status-open.priority-mid,
qdna-due-date.status-deadline.priority-mid {
  color: #EF8E02;
}

qdna-due-date.status-open.priority-success,
qdna-due-date.status-deadline.priority-success {
  color: #428B6E;
}

qdna-due-date.status-open i,
qdna-due-date.status-deadline i {
  color: inherit;
}

[qdna-tooltip] {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  --tooltip-bg: #40499A;
  --tooltip-text: #ffffff;
  --tooltip-radius: 4px;
  --tooltip-gap: 6px;
  --tooltip-padding: 4px 8px;
  --tooltip-font: 14px;
}

[qdna-tooltip]:not([tooltip-type=arrow])::before {
  content: attr(qdna-tooltip);
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  margin-bottom: var(--tooltip-gap);
  background: var(--tooltip-bg);
  color: var(--tooltip-text);
  padding: var(--tooltip-padding);
  font-size: var(--tooltip-font);
  border-radius: var(--tooltip-radius);
  width: max-content;
  max-width: 220px;
  white-space: normal;
  text-align: center;
  opacity: 0;
  pointer-events: none;
  transition: 0.15s ease;
  z-index: 9999;
}

[qdna-tooltip]:hover:not([tooltip-type=arrow])::before {
  opacity: 1;
}

[tooltip-type=arrow] {
  position: relative;
}

.qdna-tooltip-box {
  position: absolute;
  background: var(--tooltip-bg);
  color: var(--tooltip-text);
  padding: var(--tooltip-padding);
  font-size: var(--tooltip-font);
  border-radius: var(--tooltip-radius);
  text-align: center;
  width: max-content;
  max-width: 220px;
  opacity: 0;
  pointer-events: none;
  transition: 0.15s ease;
  z-index: 9999;
}

.qdna-tooltip-box.show {
  opacity: 1;
}

.qdna-tooltip-title {
  font-weight: 600;
  font-size: 13px;
  margin-bottom: 4px;
}

.qdna-tooltip-body {
  font-size: 12px;
  line-height: 1.4;
}

.qdna-tooltip-arrow {
  position: absolute;
  width: 8px;
  height: 8px;
  background: var(--tooltip-bg);
  transform: rotate(45deg);
}

[tooltip-type=arrow]:not([tooltip-position]) .qdna-tooltip-box,
[tooltip-position=top] .qdna-tooltip-box {
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(calc(-1 * var(--tooltip-gap)));
}

[tooltip-type=arrow]:not([tooltip-position]) .qdna-tooltip-arrow,
[tooltip-position=top] .qdna-tooltip-arrow {
  bottom: -4px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
}

[tooltip-position=bottom] .qdna-tooltip-box {
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(var(--tooltip-gap));
}

[tooltip-position=bottom] .qdna-tooltip-arrow {
  top: -4px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
}

[tooltip-position=left] .qdna-tooltip-box {
  right: 100%;
  top: 50%;
  transform: translateY(-50%) translateX(calc(-1 * var(--tooltip-gap)));
}

[tooltip-position=left] .qdna-tooltip-arrow {
  right: -4px;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
}

[tooltip-position=right] .qdna-tooltip-box {
  left: 100%;
  top: 50%;
  transform: translateY(-50%) translateX(var(--tooltip-gap));
}

[tooltip-position=right] .qdna-tooltip-arrow {
  left: -4px;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
}

[qdna-tooltip]:not([tooltip-type=arrow])[tooltip-color=purple] {
  --tooltip-bg: #40499A;
  --tooltip-text: #ffffff;
}

[qdna-tooltip]:not([tooltip-type=arrow])[tooltip-color=light-purple] {
  --tooltip-bg: #DADDF2;
  --tooltip-text: #40499A;
}

[qdna-tooltip]:not([tooltip-type=arrow])[tooltip-color=grey] {
  --tooltip-bg: #C4C7CC;
  --tooltip-text: #0B0B0D;
}

[qdna-tooltip]:not([tooltip-type=arrow])[tooltip-color=light-grey] {
  --tooltip-bg: #E1E3E6;
  --tooltip-text: #6B7280;
}

[tooltip-type=arrow][tooltip-color=purple] {
  --tooltip-bg: #40499A;
  --tooltip-text: #ffffff;
}

[tooltip-type=arrow][tooltip-color=light-purple] {
  --tooltip-bg: #DADDF2;
  --tooltip-text: #40499A;
}

[tooltip-type=arrow][tooltip-color=white] {
  --tooltip-bg: #ffffff;
  --tooltip-text: #40499A;
}

[qdna-tooltip]:not([tooltip-type=arrow])[tooltip-size=sm] {
  --tooltip-padding: 0px 8px;
  --tooltip-font: 12px;
}

[tooltip-type=arrow][tooltip-size=sm] {
  --tooltip-padding: 2px 8px;
  --tooltip-font: 10px;
}

[tooltip-type=arrow]:not([tooltip-size]),
[tooltip-type=arrow][tooltip-size=lg] {
  --tooltip-padding: 10px 12px;
  --tooltip-font: 13px;
}

[qdna-tooltip][disabled],
[qdna-tooltip].disabled {
  pointer-events: none;
}

[qdna-tooltip][disabled]::before,
[qdna-tooltip].disabled::before {
  display: none !important;
}

[qdna-tooltip][disabled] .qdna-tooltip-box,
[qdna-tooltip].disabled .qdna-tooltip-box {
  display: none !important;
}

.qdna-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  position: relative;
}
.qdna-checkbox input {
  position: absolute;
  opacity: 0;
  width: 16px;
  height: 16px;
  margin: 0;
  cursor: pointer;
}
.qdna-checkbox .checkbox-box {
  width: 16px;
  height: 16px;
  border-radius: 4px;
  background: #FFFFFF;
  border: 1px solid #C4C7CC;
  position: relative;
  box-sizing: border-box;
  transition: all 0.2s ease;
}
.qdna-checkbox .checkbox-box::before {
  display: none !important;
}
.qdna-checkbox[data-shape=round] .checkbox-box {
  border-radius: 50%;
}
.qdna-checkbox:not(.disabled):hover input:not(:checked) + .checkbox-box {
  border-color: #4652F3;
}
.qdna-checkbox:focus-within .checkbox-box::before, .qdna-checkbox[state=focus] .checkbox-box::before {
  opacity: 0;
}
.qdna-checkbox input:checked + .checkbox-box {
  background: #4652F3;
  border-color: #4652F3;
}
.qdna-checkbox input:checked + .checkbox-box::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: #FFFFFF;
  -webkit-mask: url("/img/check.svg") no-repeat center/12px;
  mask: url("/img/check.svg") no-repeat center/12px;
}
.qdna-checkbox.indeterminate-type input:checked + .checkbox-box::after {
  content: "";
  position: absolute;
  top: 6px;
  left: 3px;
  width: 8px;
  height: 2px;
  background: #FFFFFF;
  -webkit-mask: none !important;
  mask: none !important;
}
.qdna-checkbox[data-state=success] input:not(:checked) + .checkbox-box {
  border-color: #428B6E;
}
.qdna-checkbox[data-state=success] input:checked + .checkbox-box {
  background: #6EE7B7;
  border-color: #428B6E;
}
.qdna-checkbox[data-state=error] input:not(:checked) + .checkbox-box {
  border-color: #C65A5A;
}
.qdna-checkbox[data-state=error] input:checked + .checkbox-box {
  background: #F87171;
  border-color: #C65A5A;
}
.qdna-checkbox.disabled {
  pointer-events: none;
  opacity: 0.6;
}
.qdna-checkbox.disabled input + .checkbox-box {
  background: #F0F1F2;
  border-color: #C4C7CC;
}
.qdna-checkbox.disabled input:checked + .checkbox-box {
  background: #FFFFFF;
}
.qdna-checkbox.disabled input:checked + .checkbox-box::after {
  background-color: #898E99;
}
.qdna-checkbox .checkbox-label {
  color: #333;
}

qdna-radio {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.qdna-radio {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  position: relative;
}
.qdna-radio input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.qdna-radio .radio-circle {
  display: flex;
  width: 16px;
  height: 16px;
  padding: 4px;
  align-items: center;
  justify-content: center;
  border: 1px solid #C4C7CC;
  border-radius: 50%;
  background: #FFFFFF;
  box-sizing: border-box;
  position: relative;
  transition: all 0.2s ease;
}
.qdna-radio .radio-circle::after {
  content: "";
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #FFFFFF;
  opacity: 0;
  transition: opacity 0.2s ease;
}
.qdna-radio .radio-circle::before {
  content: "";
  position: absolute;
  inset: -4px;
  border-radius: inherit;
  box-shadow: 0 0 0 2px #4652F3;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
}
.qdna-radio:not(.disabled):hover input:not(:checked) + .radio-circle {
  border-color: #4652F3;
}
.qdna-radio input:checked + .radio-circle {
  background: #4652F3;
  border-color: #4652F3;
}
.qdna-radio input:checked + .radio-circle::after {
  opacity: 1;
}
.qdna-radio[data-state=success] input:not(:checked) + .radio-circle {
  border-color: #428B6E;
}
.qdna-radio[data-state=success] input:checked + .radio-circle {
  background: #428B6E;
  border-color: #428B6E;
}
.qdna-radio[data-state=error] input:not(:checked) + .radio-circle {
  border-color: #C65A5A;
}
.qdna-radio[data-state=error] input:checked + .radio-circle {
  background: #C65A5A;
  border-color: #C65A5A;
}
.qdna-radio.disabled {
  pointer-events: none;
  opacity: 0.6;
}
.qdna-radio.disabled input:not(:checked) + .radio-circle {
  background: #E0E0E0;
  border-color: #C4C7CC;
}
.qdna-radio.disabled input:checked + .radio-circle {
  background: #FFFFFF;
  border-color: #C4C7CC;
}
.qdna-radio.disabled input:checked + .radio-circle::after {
  background: #9E9E9E;
  opacity: 1;
}
.qdna-radio .radio-label {
  color: #333;
}

qdna-menu-item {
  display: block;
}

.menu-item__container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 12px;
  cursor: pointer;
  border-radius: 6px;
  transition: background 0.2s ease;
}

.menu-item__container:hover {
  background: #f5f5f5;
}

.menu-item__left {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 0;
}

.menu-item__control {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.menu-item__prefix {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  flex-shrink: 0;
}

.menu-item__label {
  display: flex;
  align-items: center;
  gap: 6px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.menu-item__suffix {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  flex-shrink: 0;
}

.menu-item__prefix i,
.menu-item__suffix i {
  font-size: 18px;
}

qdna-menu-item[disabled] .menu-item__container {
  opacity: 0.5;
  pointer-events: none;
}

.avatar {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  border: 1px solid;
  aspect-ratio: 1/1;
  overflow: hidden;
  font-weight: 600;
  transition: all 0.2s ease;
  cursor: pointer;
}
.avatar .avatar-content {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}
.avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.avatar-xs {
  width: 20px;
  height: 20px;
  font-size: 12px;
}

.avatar-sm {
  width: 34px;
  height: 34px;
  font-size: 12px;
}

.avatar-md {
  width: 48px;
  height: 48px;
  font-size: 16px;
}

.avatar-lg {
  width: 64px;
  height: 64px;
  font-size: 18px;
}

.avatar--green {
  border-color: #428B6E;
  background: #C5F5E2;
}
.avatar--green:hover {
  background: rgb(175.25, 241.25, 215.125);
  border-color: rgb(57.7902439024, 121.7097560976, 96.3170731707);
}
.avatar--green.is-selected {
  background: rgb(218.75, 248.75, 236.875);
  border-color: rgb(74.2097560976, 156.2902439024, 123.6829268293);
}

.avatar--pink {
  border-color: #C65A5A;
  background: #F87171;
}
.avatar--pink:hover {
  background: rgb(246.8020134228, 88.6979865772, 88.6979865772);
  border-color: rgb(191.4527027027, 71.0472972973, 71.0472972973);
}
.avatar--pink.is-selected {
  background: rgb(249.1979865772, 137.3020134228, 137.3020134228);
  border-color: rgb(204.5472972973, 108.9527027027, 108.9527027027);
}

.avatar--yellow {
  border-color: #B7791F;
  background: #FDE68A;
}
.avatar--yellow:hover {
  background: rgb(252.5714285714, 224.6428571429, 112.9285714286);
  border-color: rgb(161.1939252336, 106.5817757009, 27.3060747664);
}
.avatar--yellow.is-selected {
  background: rgb(253.4285714286, 235.3571428571, 163.0714285714);
  border-color: rgb(204.8060747664, 135.4182242991, 34.6939252336);
}

.avatar--blue {
  border-color: #2B6CB0;
  background: #BFDBFE;
}
.avatar--blue:hover {
  background: rgb(165.8923076923, 204.8769230769, 253.6076923077);
  border-color: rgb(37.9931506849, 95.4246575342, 155.5068493151);
}
.avatar--blue.is-selected {
  background: rgb(216.1076923077, 233.1230769231, 254.3923076923);
  border-color: rgb(48.0068493151, 120.5753424658, 196.4931506849);
}

.avatar--grey {
  border-color: #C4C7CC;
  background: #E5E7EB;
}
.avatar--grey:hover {
  background: rgb(214.5869565217, 217.6956521739, 223.9130434783);
  border-color: rgb(182.3227272727, 186.0181818182, 192.1772727273);
}
.avatar--grey.is-selected {
  background: rgb(243.4130434783, 244.3043478261, 246.0869565217);
  border-color: rgb(209.6772727273, 211.9818181818, 215.8227272727);
}

.avatar--red {
  border-color: #B91C1C;
  background: #FCA5A5;
}
.avatar--red:hover {
  background: rgb(251.1774193548, 140.3225806452, 140.3225806452);
  border-color: rgb(162.8521126761, 24.6478873239, 24.6478873239);
}
.avatar--red.is-selected {
  background: rgb(252.8225806452, 189.6774193548, 189.6774193548);
  border-color: rgb(207.1478873239, 31.3521126761, 31.3521126761);
}

.qdnapro-account-card {
  display: inline-flex;
  flex-direction: column;
  box-sizing: border-box;
  min-width: 280px;
  padding: 8px;
  gap: 4px;
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300);
  border-radius: 8px;
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.15), 0 8px 12px 6px rgba(0, 0, 0, 0.075);
  font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
}

.qdnapro-account-card .account-card-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 4px;
  padding: 16px 16px 12px;
}

.qdnapro-account-card .account-card-header qdnapro-avatar {
  margin-bottom: 8px;
}

.qdnapro-account-card .account-card-name {
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  color: var(--c-grey-950);
}

.qdnapro-account-card .account-card-email {
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  color: var(--c-grey-500);
}

.qdnapro-account-card .account-card-items {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.qdnapro-account-card .account-card-items > qdnapro-menu-item {
  width: 100%;
}

[data-theme=dark] .qdnapro-account-card {
  background: #2e3036;
  border-color: #40444d;
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.3), 0 8px 12px 6px rgba(0, 0, 0, 0.2);
}

[data-theme=dark] .qdnapro-account-card .account-card-name {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-account-card .account-card-email {
  color: #a6aab3;
}

/* compiled from _action-bar.scss */
.qdnapro-action-bar {
  --action-bar-bg: #ffffff;
  --action-bar-border: var(--c-border-tree);
  --action-bar-offset: 16px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 56px;
  padding: 0 16px;
  background: var(--action-bar-bg);
  border: 0.5px solid var(--action-bar-border);
  border-radius: 8px;
  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.3);
  box-sizing: border-box;
  font-family: inherit;
}

.qdnapro-action-bar > * {
  vertical-align: middle;
}

.qdnapro-action-bar.action-bar-floating {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  bottom: var(--action-bar-offset);
  z-index: 9000;
}

/* Een open venster maakt de balk onbereikbaar, dus hij hoort er dan ook niet te
   staan. Zonder deze regel viel hij ER OVERHEEN: .qdnapro-modal staat op
   dezelfde 9000, en base.html zet de balk NA de pagina-inhoud neer, dus won de
   balk altijd op DOM-volgorde. Verhelpen via de z-index was hier de verkeerde
   knop: de flow-editor heeft boven 9000 al een eigen ladder (9200 voor de
   dropdowns van de balk zelf, 9300 voor "altijd bovenop"-vensters), en die zou
   dan mee moeten schuiven.
   Twee klassen, want de backoffice heeft twee soorten vensters: qdnapro-modal
   zet `qdnapro-modal-open` op de body, Bootstrap (nog steeds in v1 geladen) zet
   `modal-open`. [Kim 10.08.2026] */
body.qdnapro-modal-open .qdnapro-action-bar.action-bar-floating,
body.modal-open .qdnapro-action-bar.action-bar-floating {
  display: none;
}

qdnapro-menu.action-bar-menu-floating {
  z-index: 9200;
  animation: action-bar-menu-pop 160ms cubic-bezier(0.22, 1, 0.36, 1);
  transform-origin: bottom left;
}

@keyframes action-bar-menu-pop {
  from {
    opacity: 0;
    transform: translateY(4px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
[data-theme=dark] .qdnapro-action-bar,
[data-theme-dark] .qdnapro-action-bar {
  --action-bar-bg: #2e3036;
  --action-bar-border: rgba(255, 255, 255, 0.10);
  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.45);
}

.qdnapro-activity-card {
  position: relative;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: 48px 1fr;
  grid-template-areas: "tile body";
  align-items: center;
  gap: 12px;
  padding: 8px 12px;
  min-height: 64px;
  background: var(--ac-surface, #ffffff);
  border: 1px solid var(--ac-border, #e1e3e6);
  border-radius: 14px;
  cursor: pointer;
  outline: none;
  user-select: none;
  text-decoration: none;
  transition: box-shadow 150ms ease-out, border-color 150ms ease-out, transform 150ms ease-out, background-color 150ms ease-out;
}

.qdnapro-activity-card.ac-has-actions {
  grid-template-areas: "tile body" "actions actions";
}

.qdnapro-activity-card *,
.qdnapro-activity-card *::before,
.qdnapro-activity-card *::after {
  box-sizing: border-box;
}

.qdnapro-activity-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: rgba(0, 0, 0, 0.05);
  opacity: var(--ac-overlay-o, 0);
  transition: opacity 150ms ease-out;
  pointer-events: none;
}

@media (hover: hover) {
  .qdnapro-activity-card:hover {
    --ac-overlay-o: 0.5;
    border-color: rgba(0, 0, 0, 0.14);
    box-shadow: 0 3px 10px rgba(20, 25, 80, 0.08);
    transform: translateY(-1px);
  }
}
.qdnapro-activity-card:active {
  --ac-overlay-o: 1;
  transform: scale(0.985);
  transition: box-shadow 80ms ease-out, transform 80ms ease-out, background-color 80ms ease-out;
}

.qdnapro-activity-card:focus-visible {
  outline: 2px solid var(--c-purple-500);
  outline-offset: 2px;
}

/* === Selected ring ("you are here", Kim's decision 21.08.2026 - ring only,
   NEVER a filled background) ===
   Split-screen layouts (tablet: activity list on the left, the question
   panel open on the right) need the currently-open activity's card to be
   findable at a glance. This uses `outline`, not `box-shadow`, on purpose:
   box-shadow on this host is already a single-value property fought over
   by :hover / :active / .ac-pulse / the is-force-* classes below, so a
   box-shadow ring would get silently replaced the instant any of those
   fire. `outline` is its own paint layer - independent of box-shadow,
   border-color and the ::after hover-overlay - so it never gets clobbered
   and needs no !important anywhere.
   `outline-offset` opens a gap between the ring and the card's own edge, so
   the ring's legibility never depends on the card's OWN surface colour: it
   always renders over the page/list background behind the card, not over
   the card's fill. That is what keeps it equally readable on the
   completed status's green wash and on the grayscale-filtered disabled
   tile.
   It also cannot collide with the error status's red border: that border
   is a plain 1px border-color change on the card's own edge (see
   .ac-status-error further down) and stays completely untouched here - the
   ring is a second, separate ring further OUT, past the gap. A card that
   is both selected AND error keeps both signals fully legible at once.
   Reuses --focus-ring, the SAME token the :focus-visible rule above uses,
   so light/dark theming (--c-purple-200 in dark) stays in sync
   automatically without a separate dark override. */
/* HERBOUWD 24.08.2026 (Kim: "nog steeds geen active state"). Dit was een
   `outline` met `outline-offset: 2px`, dus een ring 2px BUITEN de kaart. In de
   takenlijst zit elke kaart in een <qdnapro-swipe-row> en die heeft
   `overflow: hidden` (qdna-swipe-row.css, twee plekken - nodig om de
   veeg-actiepanelen naast de rij te verbergen). Alles buiten de kaart wordt
   daar dus weggeknipt: de ring was aanwezig in de DOM en volledig onzichtbaar.
   Niet te vinden met grep, alleen door het op een toestel te missen.
   Nu een ::before BINNEN de kaart: overleeft elke overflow-hidden ouder, volgt
   de ronding altijd (border-radius werkt overal, anders dan een outline op
   oudere WebKit - precies waar de unit-tegel op stuk liep), en botst niet met
   de ::after hover-overlay of met de box-shadow die hover/active/pulse al
   claimen. inset 2px met radius 12px = 14px hostradius minus die 2px, zodat de
   ring concentrisch in de hoek loopt. */
/* ZACHTE GLOED, GEEN HARDE LIJN (Kim 24.08.2026: "zo'n harde select ring is
   echt te lelijk, ik wil zoiets als de units doen"). Dezelfde token als
   qdnapro-unit-card's is-selected gebruikt: --focus-glow (--c-action-25 in
   licht, --c-action-40 in donker), 3px dik.
   Verschil met de unit-tegel, en dat kan niet anders: daar tekent de gloed
   BUITEN de kaart, hier NAAR BINNEN (`inset`). Buitenwaarts is hier niet
   mogelijk - de swipe-row eromheen knipt alles buiten de kaart weg (zie de
   uitleg hieronder). Op een lichte kaart met een doorschijnende gloed is dat
   visueel vrijwel hetzelfde; het is alleen niet letterlijk "eromheen".
   `inset: 0` + `border-radius: inherit` laat de gloed exact de 14px hoekronding
   van de kaart volgen, in plaats van een eigen getal dat bij een wijziging van
   de radius stil uit de bocht loopt. */
.qdnapro-activity-card.ac-selected::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: inset 0 0 0 3px var(--focus-glow);
  pointer-events: none;
  z-index: 1;
}

[data-theme=dark] .qdnapro-activity-card::after {
  background: rgba(255, 255, 255, 0.06);
}

/* === Dark mode - base card chrome === */
[data-theme=dark] .qdnapro-activity-card {
  background: #2e3036;
  border-color: rgba(255, 255, 255, 0.1);
}

[data-theme=dark] .qdnapro-activity-card .ac-label {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-activity-card .ac-description {
  color: #a0a4b8;
}

[data-theme=dark] .qdnapro-activity-card:hover {
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.4);
  border-color: rgba(255, 255, 255, 0.18);
}

/* === Icon tile === */
.qdnapro-activity-card .ac-tile {
  grid-area: tile;
  width: 48px;
  height: 48px;
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: var(--ac-tile-bg, #f0f1f2);
  overflow: hidden;
}

.qdnapro-activity-card .ac-tile-tick svg {
  width: 32px;
  height: 32px;
  display: block;
}

/* === Text column === */
.qdnapro-activity-card .ac-body {
  grid-area: body;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
}

.qdnapro-activity-card .ac-label {
  font-size: 15px;
  font-weight: 600;
  color: var(--ac-text, #0b0b0d);
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-activity-card .ac-description {
  font-size: 12.5px;
  color: var(--ac-text-muted, #898e99);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* === Meta row: repeat tag (first) + completion stamp ===
   Required pill lives OUTSIDE this row now (see the corner-badge block
   below), so the row only exists for the repeat tag and/or the stamp. */
.qdnapro-activity-card .ac-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
}

.qdnapro-activity-card .ac-pill {
  flex: none;
}

/* Icon-only repeat tag (no text content) - the tag's own empty label span
   still carries its 4px icon-label gap, which would add lopsided trailing
   padding around nothing. Neutralised here, scoped to this one usage, same
   fix as qdnapro-activity-row's .row-icon-tag (Kim, 13.07.2026). */
.qdnapro-activity-card .ac-pill-repeat {
  gap: 0;
}

/* === Corner cluster: icon-only repeat tag + required pill side by side in the
   top-right corner (Kim, 13.07.2026). The chevron and its whole glyph
   column are gone, so the cluster owns the right edge against the card's
   own padding. */
.qdnapro-activity-card .ac-corner {
  position: absolute;
  top: 10px;
  right: 12px;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 4px;
}

/* Optional kebab-menu button ("menu" attribute, added 21.08.2026) shares
   this SAME corner row instead of a new right-side layout mechanism -
   flex: none matches the sibling .ac-pill rule above so it never gets
   squeezed by the label column. */
.qdnapro-activity-card .ac-menu-btn {
  flex: none;
}

/* Reserve room so a long title truncates before running under the corner
   cluster instead of behind it - worst case is repeat icon-tag plus
   "Verplicht"/"Required", ~120px covers it. Also reserved for the menu
   button alone (narrower than that worst case, so this stays a safe
   upper bound rather than an exact fit). */
.qdnapro-activity-card.ac-has-corner .ac-label,
.qdnapro-activity-card.ac-has-corner .ac-description {
  padding-right: 120px;
}

/* Menu button ALONE in the corner: the 120px above is the worst-case pill
   reservation and costs a third of the width on a 360px card in the tasklist
   split screen, truncating a title that would otherwise fit. The kebab is a
   32px icon-btn, so 44px (32 + 12 breathing room) is the real reservation.
   Two classes, same specificity as the rule above, so source order decides
   and this one must stay BELOW it. [21.08.2026] */
.qdnapro-activity-card.ac-corner-menu-only .ac-label,
.qdnapro-activity-card.ac-corner-menu-only .ac-description {
  padding-right: 44px;
}

/* === Status-tinted pill ===
   A grey tag on a coloured status surface clashes (Kim, 13.07.2026), so
   every ".ac-pill" (required corner badge, completion stamp, and the
   repeat tag added 13.07.2026) follows the status palette: the "-2" tag
   tone as background with the matching tag text colour. The tag component
   paints itself from the --tag-bg/--tag-text custom properties, so
   overriding those here (three classes, beats the tag's own two-class
   selector) is enough. Open/repeat-done/disabled keep the tag's own
   grey/disabled look (no tint rule exists for ac-status-repeat-done, by
   design - see the repeat-done note further down). */
.qdnapro-activity-card.ac-status-in-progress .ac-pill {
  --tag-bg: var(--c-chip-yellow-2-bg);
  --tag-text: #655522;
}

.qdnapro-activity-card.ac-status-completed .ac-pill {
  --tag-bg: var(--c-chip-green-2-bg);
  --tag-text: #2f5d4a;
}

.qdnapro-activity-card.ac-status-error .ac-pill {
  --tag-bg: var(--c-chip-red-2-bg);
  --tag-text: #633030;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-in-progress .ac-pill {
  --tag-bg: #7a6b2d;
  --tag-text: #fde594;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-completed .ac-pill {
  --tag-bg: #3d7a62;
  --tag-text: #8becc5;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-error .ac-pill {
  --tag-bg: #7a3838;
  --tag-text: #fbaaaa;
}

/* === Bottom action row: briefing / repeat buttons ===
   Full-width row below the tile/text/glyph columns (Kim, 13.07.2026 - the
   old briefing/counter pills were too small as touch targets). Hairline
   divider reuses --ac-border, so it recolours the same way as the card
   border on every status. */
.qdnapro-activity-card .ac-actions {
  grid-area: actions;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding-top: 10px;
  border-top: 1px solid var(--ac-border, #e1e3e6);
}

.qdnapro-activity-card .ac-action-btn {
  flex: none;
}

/* === Status-tinted action buttons ===
   secondary-purple works on the white open card but clashes on the coloured
   status surfaces (Kim, 13.07.2026). On those statuses the buttons take the
   same "-2" tag tone family as the pill: -2 background, status text colour,
   the tag's own -2 hover token on hover/press. qdnapro-button paints from
   fixed class colours (no custom properties), so these five-class overrides
   simply out-specify its three-class rules; icons follow via currentColor. */
.qdnapro-activity-card.ac-status-in-progress .ac-actions .qdnapro-button.button-secondary-purple {
  background: var(--c-chip-yellow-2-bg);
  color: #655522;
}

.qdnapro-activity-card.ac-status-in-progress .ac-actions .qdnapro-button.button-secondary-purple:hover:not(.button-disabled),
.qdnapro-activity-card.ac-status-in-progress .ac-actions .qdnapro-button.button-secondary-purple:active:not(.button-disabled) {
  background: var(--c-chip-yellow-2-hover);
}

.qdnapro-activity-card.ac-status-completed .ac-actions .qdnapro-button.button-secondary-purple {
  background: var(--c-chip-green-2-bg);
  color: #2f5d4a;
}

.qdnapro-activity-card.ac-status-completed .ac-actions .qdnapro-button.button-secondary-purple:hover:not(.button-disabled),
.qdnapro-activity-card.ac-status-completed .ac-actions .qdnapro-button.button-secondary-purple:active:not(.button-disabled) {
  background: var(--c-chip-green-2-hover);
}

.qdnapro-activity-card.ac-status-error .ac-actions .qdnapro-button.button-secondary-purple {
  background: var(--c-chip-red-2-bg);
  color: #633030;
}

.qdnapro-activity-card.ac-status-error .ac-actions .qdnapro-button.button-secondary-purple:hover:not(.button-disabled),
.qdnapro-activity-card.ac-status-error .ac-actions .qdnapro-button.button-secondary-purple:active:not(.button-disabled) {
  background: var(--c-chip-red-2-hover);
}

[data-theme=dark] .qdnapro-activity-card.ac-status-in-progress .ac-actions .qdnapro-button.button-secondary-purple {
  background: #7a6b2d;
  color: #fef6db;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-in-progress .ac-actions .qdnapro-button.button-secondary-purple:hover:not(.button-disabled),
[data-theme=dark] .qdnapro-activity-card.ac-status-in-progress .ac-actions .qdnapro-button.button-secondary-purple:active:not(.button-disabled) {
  background: #9a8a3b;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-completed .ac-actions .qdnapro-button.button-secondary-purple {
  background: #3d7a62;
  color: #e2faf1;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-completed .ac-actions .qdnapro-button.button-secondary-purple:hover:not(.button-disabled),
[data-theme=dark] .qdnapro-activity-card.ac-status-completed .ac-actions .qdnapro-button.button-secondary-purple:active:not(.button-disabled) {
  background: #4d9c7c;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-error .ac-actions .qdnapro-button.button-secondary-purple {
  background: #7a3838;
  color: #fee3e3;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-error .ac-actions .qdnapro-button.button-secondary-purple:hover:not(.button-disabled),
[data-theme=dark] .qdnapro-activity-card.ac-status-error .ac-actions .qdnapro-button.button-secondary-purple:active:not(.button-disabled) {
  background: #9a4747;
}

/* The count badge on the repeat button (qdnapro-button's own badge attr,
   "subtle" pairing = lavender) must follow the same status tint (Kim,
   13.07.2026): the light status surface tone as badge background with the
   status text colour, so it reads as a quiet chip on the "-2" button. */
.qdnapro-activity-card.ac-status-in-progress .ac-actions [data-button-badge] {
  background-color: var(--c-chip-yellow-bg);
  border-color: transparent;
  color: #655522;
}

.qdnapro-activity-card.ac-status-completed .ac-actions [data-button-badge] {
  background-color: var(--c-chip-green-bg);
  border-color: transparent;
  color: #2f5d4a;
}

.qdnapro-activity-card.ac-status-error .ac-actions [data-button-badge] {
  background-color: var(--c-signal-red-bg);
  border-color: transparent;
  color: #633030;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-in-progress .ac-actions [data-button-badge] {
  background-color: #5a4d1f;
  color: #fde594;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-completed .ac-actions [data-button-badge] {
  background-color: #2a5544;
  color: #8becc5;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-error .ac-actions [data-button-badge] {
  background-color: #5a2b2b;
  color: #fbaaaa;
}

@keyframes qdnapro-ac-count-bump {
  0% {
    transform: scale(1);
  }
  35% {
    transform: scale(1.18);
  }
  60% {
    transform: scale(0.95);
  }
  100% {
    transform: scale(1);
  }
}
.qdnapro-activity-card .ac-badge-bump {
  animation: qdnapro-ac-count-bump 380ms ease-out;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-activity-card .ac-badge-bump {
    animation: none;
  }
}
/* === Pulse (status-changed feedback) === */
@keyframes qdnapro-ac-pulse {
  0% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(64, 73, 154, 0.35);
  }
  40% {
    transform: scale(1.015);
    box-shadow: 0 0 0 8px rgba(64, 73, 154, 0);
  }
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(64, 73, 154, 0);
  }
}
.qdnapro-activity-card.ac-pulse {
  animation: qdnapro-ac-pulse 520ms ease-out;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-activity-card.ac-pulse {
    animation: none;
  }
}
/* === Icon-color palette (qdnapro-tag --tag-bg values, light) ===
   Only used by the "open" status - every other status overrides the tile
   colour directly further down. */
.qdnapro-activity-card.ac-color-grey {
  --ac-tile-bg: var(--c-grey-50);
}

.qdnapro-activity-card.ac-color-red {
  --ac-tile-bg: var(--c-signal-red-bg);
}

.qdnapro-activity-card.ac-color-yellow {
  --ac-tile-bg: var(--c-chip-yellow-bg);
}

.qdnapro-activity-card.ac-color-green {
  --ac-tile-bg: var(--c-chip-green-bg);
}

.qdnapro-activity-card.ac-color-blue {
  --ac-tile-bg: var(--c-signal-blue-bg);
}

.qdnapro-activity-card.ac-color-bright-blue {
  --ac-tile-bg: var(--c-chip-bright-blue-2-bg);
}

.qdnapro-activity-card.ac-color-pink {
  --ac-tile-bg: var(--c-signal-pink-bg);
}

.qdnapro-activity-card.ac-color-purple {
  --ac-tile-bg: var(--c-chip-purple-bg);
}

[data-theme=dark] .qdnapro-activity-card.ac-color-grey {
  --ac-tile-bg: #565b66;
}

[data-theme=dark] .qdnapro-activity-card.ac-color-red {
  --ac-tile-bg: #5a2b2b;
}

[data-theme=dark] .qdnapro-activity-card.ac-color-yellow {
  --ac-tile-bg: #5a4d1f;
}

[data-theme=dark] .qdnapro-activity-card.ac-color-green {
  --ac-tile-bg: #2a5544;
}

[data-theme=dark] .qdnapro-activity-card.ac-color-blue {
  --ac-tile-bg: #2e3e54;
}

[data-theme=dark] .qdnapro-activity-card.ac-color-bright-blue {
  --ac-tile-bg: #2a3560;
}

[data-theme=dark] .qdnapro-activity-card.ac-color-pink {
  --ac-tile-bg: #4e2a36;
}

[data-theme=dark] .qdnapro-activity-card.ac-color-purple {
  --ac-tile-bg: #3a3555;
}

/* === Status overrides (always win over the icon-color pastel) ===
   Each status sets the tile background directly (not through --ac-tile-bg)
   with a higher-specificity selector (2 classes + descendant), so it wins
   regardless of source order - same pattern as the tasklist-card [archived]
   override. Border colour reuses the tile's "-2" tone for definition, no
   new palette values invented. */
.qdnapro-activity-card.ac-status-in-progress {
  --ac-surface: var(--c-chip-yellow-bg);
  --ac-border: var(--c-chip-yellow-2-bg);
  --ac-text: #655522;
  --ac-text-muted: #655522;
}

.qdnapro-activity-card.ac-status-in-progress .ac-tile {
  background: var(--c-chip-yellow-2-bg);
}

.qdnapro-activity-card.ac-status-completed {
  --ac-surface: var(--c-chip-green-bg);
  --ac-border: var(--c-chip-green-2-bg);
  --ac-text: #2f5d4a;
  --ac-text-muted: #2f5d4a;
}

.qdnapro-activity-card.ac-status-completed .ac-tile {
  background: var(--c-chip-green-2-bg);
}

/* repeat-done (Kim's compromise, 13.07.2026): a repeat activity never truly
   "completes", but after at least one fill-in it deserves the same
   satisfying green tile + text as completed - WITHOUT the green surface
   wash, so the card still reads as open/tappable for the next fill-in.
   Only --ac-text/--ac-text-muted are overridden (matching completed's
   values); --ac-surface/--ac-border are deliberately left unset so the card
   falls back to the neutral open chrome (#ffffff / var(--c-border-card) via the base
   rule's own fallbacks). No pill/action-button tint rules exist for this
   status (unlike in-progress/completed/error) - deliberately, per spec. */
.qdnapro-activity-card.ac-status-repeat-done {
  --ac-text: #2f5d4a;
  --ac-text-muted: #2f5d4a;
}

.qdnapro-activity-card.ac-status-repeat-done .ac-tile {
  background: var(--c-chip-green-2-bg);
}

.qdnapro-activity-card.ac-status-error {
  --ac-surface: var(--c-signal-red-bg);
  --ac-border: var(--c-chip-red-2-bg);
  --ac-text: #633030;
  --ac-text-muted: #633030;
}

.qdnapro-activity-card.ac-status-error .ac-tile {
  background: var(--c-chip-red-2-bg);
}

.qdnapro-activity-card.ac-status-disabled {
  --ac-surface: var(--c-grey-50);
  --ac-border: var(--c-border-card);
  --ac-text: var(--c-text-disabled);
  --ac-text-muted: var(--c-text-disabled);
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-activity-card.ac-status-disabled .ac-tile {
  background: var(--c-border-card);
  filter: grayscale(1);
}

/* Dark-mode status overrides. Values from the tag dark palette:
   yellow(-2), green(-2), red(-2) pairs; grey base + grey hover for disabled. */
[data-theme=dark] .qdnapro-activity-card.ac-status-in-progress {
  --ac-surface: #5a4d1f;
  --ac-border: #7a6b2d;
  --ac-text: #fde594;
  --ac-text-muted: #fde594;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-in-progress .ac-tile {
  background: #7a6b2d;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-completed {
  --ac-surface: #2a5544;
  --ac-border: #3d7a62;
  --ac-text: #8becc5;
  --ac-text-muted: #8becc5;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-completed .ac-tile {
  background: #3d7a62;
}

/* repeat-done dark tile + text (same split as light: surface/border stay
   the dark base card chrome set by the plain [data-theme=dark]
   .qdnapro-activity-card rule above). */
[data-theme=dark] .qdnapro-activity-card.ac-status-repeat-done {
  --ac-text: #8becc5;
  --ac-text-muted: #8becc5;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-repeat-done .ac-tile {
  background: #3d7a62;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-error {
  --ac-surface: #5a2b2b;
  --ac-border: #7a3838;
  --ac-text: #fbaaaa;
  --ac-text-muted: #fbaaaa;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-error .ac-tile {
  background: #7a3838;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-disabled {
  --ac-surface: #565b66;
  --ac-border: #6b7180;
  --ac-text: #6b7180;
  --ac-text-muted: #6b7180;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-disabled .ac-tile {
  background: #6b7180;
  filter: grayscale(1);
}

/* === Force states (preview-only, mirrors real :hover / :active 1:1) ===
   Used by the "Force states" preview section to make transient states
   screenshottable. Keep in sync with the real hover/active rules above. */
.qdnapro-activity-card.is-force-hover {
  --ac-overlay-o: 0.5;
  border-color: rgba(0, 0, 0, 0.14);
  box-shadow: 0 3px 10px rgba(20, 25, 80, 0.08);
  transform: translateY(-1px);
}

.qdnapro-activity-card.is-force-pressed {
  --ac-overlay-o: 1;
  transform: scale(0.985);
}

[data-theme=dark] .qdnapro-activity-card.is-force-hover {
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.4);
  border-color: rgba(255, 255, 255, 0.18);
}

/* === Smallest screen (320px) === */
@media (max-width: 320px) {
  .qdnapro-activity-card {
    grid-template-columns: 40px 1fr;
    padding: 8px 10px;
    gap: 8px;
  }
  .qdnapro-activity-card .ac-tile {
    width: 40px;
    height: 40px;
  }
  .qdnapro-activity-card .ac-tile-tick svg {
    width: 26px;
    height: 26px;
  }
}
.qdnapro-activity-icon {
  display: inline-block;
  box-sizing: border-box;
  flex-shrink: 0;
  line-height: 0;
  vertical-align: middle;
  user-select: none;
  transition: opacity 140ms ease-out;
}

.qdnapro-activity-icon .activity-icon-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  pointer-events: none;
  background: transparent;
}

.qdnapro-activity-icon.activity-icon-disabled {
  opacity: 0.5;
}

.qdnapro-activity-icon.activity-icon-missing {
  position: relative;
  background: rgba(0, 0, 0, 0.03);
  border: 1px dashed #c4c7cc;
  border-radius: 8px;
}

.qdnapro-activity-icon.activity-icon-missing::after {
  content: "?";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Inter", sans-serif;
  font-size: 14px;
  color: #898e99;
}

[data-theme=dark] .qdnapro-activity-icon.activity-icon-missing {
  background: rgba(255, 255, 255, 0.04);
  border-color: #565b66;
}

[data-theme=dark] .qdnapro-activity-icon.activity-icon-missing::after {
  color: #6b7280;
}

/* ============================================================
 * qdnapro-activity-icon-picker
 * Ported into the components-v2 bundle so the picker is styled on
 * v1 pages that load the bundle (it previously only lived inline in
 * the preview + as a for-Sander SCSS drop-in). [Kim 2026-05-31]
 * ============================================================ */
.qdnapro-activity-icon-picker {
  display: flex;
  flex-direction: column;
  gap: 8px;
  box-sizing: border-box;
}

.qdnapro-activity-icon-picker *,
.qdnapro-activity-icon-picker *::before,
.qdnapro-activity-icon-picker *::after {
  box-sizing: border-box;
}

.qdnapro-activity-icon-picker .aip-grid {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: 4px;
}

@media (max-width: 600px) {
  .qdnapro-activity-icon-picker .aip-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
.qdnapro-activity-icon-picker .aip-tile {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid var(--c-border-card);
  border-radius: 10px;
  background: var(--c-bg-card);
  cursor: pointer;
  outline: none;
  transition: background 120ms ease, border-color 120ms ease, box-shadow 150ms ease, transform 100ms ease;
}

.qdnapro-activity-icon-picker .aip-tile qdnapro-activity-icon {
  pointer-events: none;
  display: inline-flex;
}

.qdnapro-activity-icon-picker .aip-tile:hover {
  background: var(--c-bg-subtle-purple);
  border-color: var(--c-sidebar-icon);
  transform: translateY(-1px);
}

.qdnapro-activity-icon-picker .aip-tile:active {
  transform: translateY(0);
}

.qdnapro-activity-icon-picker .aip-tile:focus-visible {
  border-color: var(--c-purple-500);
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.2);
}

.qdnapro-activity-icon-picker .aip-tile.aip-tile-selected {
  border-color: var(--c-action-500);
  background: rgba(70, 82, 243, 0.06);
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.25);
}

.qdnapro-activity-icon-picker .aip-tile.aip-tile-selected:hover {
  background: rgba(70, 82, 243, 0.1);
}

.qdnapro-activity-icon-picker .aip-actions {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding-top: 2px;
}

/* "View more" (Meer iconen) uses qdnapro-button (subtle-purple, small). */
/* ---- current-only (04.08.2026) ------------------------------------------
   Kim, takenlijst-instellingen: "ik wil gewoon alleen de huidige icon laten
   zien en de meer icon knop naast elkaar, om ruimte te besparen". De host is
   normaal een KOLOM (grid boven, knop eronder); in deze stand wordt hij een
   RIJ, zodat de ene tegel en de knop naast elkaar staan. Dat scheelt op een
   dichte instellingenpagina een hele regel hoogte.
   Zie qdna-activity-icon-picker.js's `current-only` note voor de rest. */
.qdnapro-activity-icon-picker.aip-current-only {
  flex-direction: row;
  align-items: center;
}

/* De grid heeft hier één tegel, dus geen kolommenraster meer nodig. */
.qdnapro-activity-icon-picker.aip-current-only .aip-grid {
  display: flex;
}

/* De 2px die de knop in de kolomstand van de grid afduwt, hoort hier niet:
   naast elkaar moeten tegel en knop op één lijn staan. */
.qdnapro-activity-icon-picker.aip-current-only .aip-actions {
  padding-top: 0;
}

/* Lege tegel: alleen zichtbaar zolang er nog geen icoon gekozen is. Houdt de
   footprint vast zodat de rij niet verspringt, en gestippeld zodat het als
   "hier komt iets" leest en niet als een kapot icoon. */
.qdnapro-activity-icon-picker .aip-tile.aip-tile-empty {
  border-style: dashed;
  cursor: default;
}

.qdnapro-activity-icon-picker.aip-disabled {
  opacity: 0.55;
  pointer-events: none;
}

/* Error state */
.qdnapro-activity-icon-picker.aip-error .aip-grid {
  padding: 8px;
  border: 1px solid var(--c-signal-red-text);
  border-radius: 12px;
  box-shadow: 0 0 0 4px rgba(198, 90, 90, 0.18);
  background: rgba(198, 90, 90, 0.04);
}

.qdnapro-activity-icon-picker .aip-error-message {
  margin: 0;
  font-size: 12px;
  line-height: 16px;
  color: var(--c-signal-red-text);
  font-weight: 500;
}

/* Size: compact - dense grid for the full-set picker overlay */
.qdnapro-activity-icon-picker.aip-size-compact {
  gap: 6px;
}

.qdnapro-activity-icon-picker.aip-size-compact .aip-grid {
  grid-template-columns: repeat(12, 1fr);
  gap: 4px;
}

@media (max-width: 720px) {
  .qdnapro-activity-icon-picker.aip-size-compact .aip-grid {
    grid-template-columns: repeat(8, 1fr);
  }
}
@media (max-width: 480px) {
  .qdnapro-activity-icon-picker.aip-size-compact .aip-grid {
    grid-template-columns: repeat(6, 1fr);
  }
}
.qdnapro-activity-icon-picker.aip-size-compact .aip-tile {
  border-radius: 6px;
}

.qdnapro-activity-icon-picker.aip-size-compact .aip-tile:hover {
  transform: none;
}

.qdnapro-activity-icon-picker.aip-size-compact .aip-tile.aip-tile-selected {
  box-shadow: 0 0 0 2px rgba(70, 82, 243, 0.3);
}

/* ============================================================
 * qdnapro-activity-icon-picker-overlay
 * Anchored search popover for the full activity-icon set. Ported
 * into the components-v2 bundle so it is styled on v1 pages that
 * load the bundle (it previously only lived inline in the preview).
 * The JS sets position (left/top/width) inline and toggles the
 * .aip-overlay-open class; this CSS supplies the box + chrome.
 * z-index 9100 keeps it above qdnapro-modal (z-index 9000).
 * [Kim 2026-05-31]
 * ============================================================ */
.qdnapro-activity-icon-picker-overlay {
  display: contents;
}

.qdnapro-activity-icon-picker-overlay *,
.qdnapro-activity-icon-picker-overlay *::before,
.qdnapro-activity-icon-picker-overlay *::after {
  box-sizing: border-box;
}

.aip-overlay-popover {
  position: fixed;
  z-index: 9100;
  display: none;
  flex-direction: column;
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300);
  border-radius: 12px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.16), 0 2px 6px rgba(0, 0, 0, 0.08);
  max-height: 520px;
  width: 440px;
  overflow: hidden;
  font-family: "Inter", sans-serif;
  color: var(--c-grey-950);
  animation: aip-overlay-in 140ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.aip-overlay-popover.aip-overlay-open {
  display: flex;
}

@keyframes aip-overlay-in {
  from {
    opacity: 0;
    transform: translateY(-4px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
.aip-overlay-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 12px 12px 16px;
  border-bottom: 1px solid var(--c-border-soft-2);
  flex-shrink: 0;
}

.aip-overlay-title {
  margin: 0;
  font-size: 14px;
  line-height: 20px;
  font-weight: 600;
  color: var(--c-purple-500);
}

.aip-overlay-close {
  flex-shrink: 0;
}

.aip-overlay-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 12px 16px 0 16px;
  flex: 1 1 auto;
  min-height: 0;
}

.aip-overlay-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

.aip-overlay-search {
  flex: 1 1 auto;
  min-width: 0;
}

.aip-overlay-count {
  flex: 0 0 auto;
  font-size: 11px;
  color: var(--c-text-muted);
  white-space: nowrap;
}

.aip-overlay-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 12px 4px 12px 0;
  border-top: 1px solid var(--c-border-soft-2);
  margin-top: -4px;
}

.aip-overlay-scroll::-webkit-scrollbar {
  width: 10px;
}

.aip-overlay-scroll::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.18);
  border-radius: 10px;
}

.aip-overlay-scroll::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.28);
}

.aip-overlay-sentinel {
  flex-shrink: 0;
  height: 1px;
  margin-top: 4px;
  pointer-events: none;
}

.aip-overlay-empty {
  text-align: center;
  padding: 40px 8px;
  color: var(--c-text-muted);
}

.aip-overlay-empty-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--c-chip-grey-text);
  margin-bottom: 4px;
}

.aip-overlay-empty-sub {
  font-size: 12px;
  color: var(--c-text-muted);
}

.aip-overlay-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  padding: 12px 16px;
  border-top: 1px solid var(--c-border-soft-2);
  flex-shrink: 0;
}

/* Compact tile grid inside the popover (auto-fill 36px cells). */
.aip-overlay-popover .qdnapro-activity-icon-picker.aip-size-compact .aip-grid {
  grid-template-columns: repeat(auto-fill, 36px);
  gap: 8px;
  justify-content: start;
}

/* ============================================================
 * icon-set="mdi" — own simple tile grid (floweditor appearance modal,
 * 12.07.2026). Parallel to the .aip-grid/.aip-tile recipe above so both
 * modes look identical, WITHOUT touching qdnapro-activity-icon-picker
 * itself (that component is a load-bearing Tasklists dependency — see the
 * JS docblock for why this stays a separate, parallel grid).
 * ============================================================ */
.aip-overlay-mdi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, 36px);
  gap: 8px;
  justify-content: start;
}

.aip-overlay-mdi-tile {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 1px solid var(--c-border-card);
  border-radius: 6px;
  background: var(--c-bg-card);
  color: var(--c-grey-600);
  cursor: pointer;
  outline: none;
  transition: background 120ms ease, border-color 120ms ease, box-shadow 150ms ease;
}

.aip-overlay-mdi-tile qdnapro-icon {
  pointer-events: none;
}

.aip-overlay-mdi-tile:hover {
  background: var(--c-bg-subtle-purple);
  border-color: var(--c-sidebar-icon);
}

.aip-overlay-mdi-tile:focus-visible {
  border-color: var(--c-purple-500);
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.2);
}

.aip-overlay-mdi-tile.aip-overlay-mdi-tile-selected {
  border-color: var(--c-action-500);
  background: rgba(70, 82, 243, 0.06);
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.25);
  color: var(--c-purple-500);
}

[data-theme=dark] .aip-overlay-mdi-tile {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
  color: #d1d5db;
}

[data-theme=dark] .aip-overlay-mdi-tile:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.18);
}

[data-theme=dark] .aip-overlay-mdi-tile.aip-overlay-mdi-tile-selected {
  border-color: #a5acff;
  background: rgba(70, 82, 243, 0.18);
  box-shadow: 0 0 0 2px rgba(70, 82, 243, 0.3);
  color: #a5acff;
}

.aip-overlay-anim-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, 48px);
  gap: 8px;
  justify-content: start;
}

.aip-overlay-anim-tile {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  padding: 4px;
  box-sizing: border-box;
  border: 1px solid var(--c-border-card);
  border-radius: 8px;
  background: var(--c-bg-card);
  cursor: pointer;
  outline: none;
  transition: background 120ms ease, border-color 120ms ease, box-shadow 150ms ease;
}

.aip-overlay-anim-tile qdnapro-lottie {
  --ql-size: 38px;
  pointer-events: none;
}

.aip-overlay-anim-tile:hover {
  background: var(--c-bg-subtle-purple);
  border-color: var(--c-sidebar-icon);
}

.aip-overlay-anim-tile:focus-visible {
  border-color: var(--c-purple-500);
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.2);
}

.aip-overlay-anim-tile.aip-overlay-anim-tile-selected {
  border-color: var(--c-action-500);
  background: rgba(70, 82, 243, 0.06);
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.25);
}

[data-theme=dark] .aip-overlay-anim-tile {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
}

[data-theme=dark] .aip-overlay-anim-tile:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.18);
}

[data-theme=dark] .aip-overlay-anim-tile.aip-overlay-anim-tile-selected {
  border-color: #a5acff;
  background: rgba(70, 82, 243, 0.18);
  box-shadow: 0 0 0 2px rgba(70, 82, 243, 0.3);
}

qdnapro-activity-row {
  display: flex;
  align-items: center;
  gap: 6px;
  position: relative;
  box-sizing: border-box;
  --c-focus-ring: var(--c-purple-500);
  --c-focus-glow: rgba(70, 82, 243, 0.25);
}

@property --row-pulse-beam-angle {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}
.activity-row-inner {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 64px;
  flex: 1;
  padding: 8px 12px 8px 32px;
  border-radius: 10px;
  position: relative;
  box-sizing: border-box;
  user-select: none;
  cursor: grab;
  outline: none;
}
.activity-row-inner.is-checkin, .activity-row-inner.is-checkin:active {
  cursor: pointer;
}
.activity-row-inner {
  background: rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.7);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  transition: background 150ms ease, border-color 150ms ease, box-shadow 150ms ease, transform 100ms ease;
}

.activity-row-inner:focus-visible,
.activity-row-inner.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--c-focus-ring), 0 0 0 6px var(--c-focus-glow);
}

.activity-row-inner.disabled:focus-visible,
.activity-row-inner.disabled.force-focus {
  box-shadow: none;
}

.activity-row-inner.is-pressing:not(.disabled),
.activity-row-inner.force-active:not(.disabled) {
  background: rgba(70, 82, 243, 0.1);
  border-color: rgba(70, 82, 243, 0.28);
  box-shadow: 0 2px 10px rgba(70, 82, 243, 0.12);
  transform: scale(0.975);
  cursor: grabbing;
  transition: background 60ms ease, border-color 60ms ease, transform 60ms ease;
}

.activity-row-inner.disabled {
  opacity: 0.45;
  cursor: not-allowed;
  pointer-events: none;
}

.activity-row-inner.archived {
  opacity: 0.6;
}

.activity-row-inner.archived:hover:not(.disabled) .row-accent-bar {
  opacity: 0;
}

.activity-row-inner.archived.is-pressing:not(.disabled),
.activity-row-inner.archived.force-active:not(.disabled) {
  background: rgba(255, 255, 255, 0.6);
  border-color: rgba(255, 255, 255, 0.7);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  transform: none;
}

.activity-row-inner.is-briefing {
  min-height: 56px;
  background: rgba(230, 239, 249, 0.75);
  border-color: rgba(181, 206, 237, 0.9);
}

.activity-row-inner.is-briefing:hover:not(.disabled),
.activity-row-inner.is-briefing.force-hover:not(.disabled) {
  background: rgba(206, 222, 243, 0.88);
  border-color: rgba(133, 161, 236, 0.9);
}

qdnapro-activity-row[dragging] .activity-row-inner {
  opacity: 0.35;
  cursor: grabbing;
}

qdnapro-activity-row[drop-above] .activity-row-inner {
  box-shadow: 0 -3px 0 0 var(--c-action-500), 0 0 0 2px rgba(70, 82, 243, 0.15);
}

qdnapro-activity-row[drop-below] .activity-row-inner {
  box-shadow: 0 3px 0 0 var(--c-action-500), 0 0 0 2px rgba(70, 82, 243, 0.15);
}

.activity-row-inner:hover:not(.disabled),
.activity-row-inner.force-hover:not(.disabled) {
  background: rgba(255, 255, 255, 0.82);
  border-color: rgba(255, 255, 255, 0.9);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

.activity-row-inner {
  overflow: hidden;
}

.row-accent-bar {
  position: absolute;
  left: 4px;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 40px;
  background: var(--c-action-500);
  border-radius: 2px;
  opacity: 0;
  transition: opacity 150ms ease;
  pointer-events: none;
  z-index: 1;
}

.activity-row-inner:hover:not(.disabled) .row-accent-bar,
.activity-row-inner.force-hover:not(.disabled) .row-accent-bar {
  opacity: 1;
}

.activity-row-inner.is-checkin:hover .row-accent-bar,
.activity-row-inner.is-checkin.force-hover .row-accent-bar {
  opacity: 0;
}

qdnapro-activity-row[locked] .activity-row-inner:hover .row-accent-bar,
qdnapro-activity-row[locked] .activity-row-inner.force-hover .row-accent-bar,
.activity-row-inner.is-readonly:hover .row-accent-bar,
.activity-row-inner.is-readonly.force-hover .row-accent-bar {
  opacity: 0;
}

.row-grip {
  display: none;
}

.row-left {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  min-width: 0;
}

.row-activity-icon {
  flex-shrink: 0;
}

.row-icon-placeholder {
  width: 40px;
  height: 40px;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.06);
  flex-shrink: 0;
}

.row-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.row-name {
  font-size: 14px;
  font-weight: 500;
  color: var(--c-grey-950);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.4;
}

.row-sub {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.row-sub:empty {
  display: none;
}

.row-status {
  display: flex;
  align-items: center;
}

.row-status:empty {
  display: none;
}

.row-meta {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-shrink: 0;
}

.row-meta-id,
.row-meta-version {
  font-size: 11px;
  color: var(--c-grey-400);
  font-weight: 400;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.row-meta-dot {
  width: 2px;
  height: 2px;
  border-radius: 50%;
  background: var(--c-grey-200);
  flex-shrink: 0;
}

.row-meta-desc {
  font-size: 11px;
  color: var(--c-grey-400);
  font-weight: 400;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 0 1 auto;
  min-width: 0;
}

.row-type-tag {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
  pointer-events: none;
  display: flex;
  align-items: center;
  gap: 6px;
}

.row-type-tag .row-icon-tag {
  gap: 0;
}

@media (max-width: 900px) {
  .row-type-tag {
    display: none;
  }
}
.row-divider {
  width: 1px;
  align-self: stretch;
  margin: 10px 4px;
  background: rgba(0, 0, 0, 0.08);
  flex-shrink: 0;
}

.row-right {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}

.row-col-btns {
  display: flex;
  gap: 4px;
}

.row-btn-divider {
  width: 1px;
  align-self: stretch;
  margin: 8px 2px;
  background: rgba(0, 0, 0, 0.08);
  flex-shrink: 0;
}

.row-required {
  display: flex;
  align-items: center;
  gap: 6px;
  padding-left: 8px;
  border-left: 1px solid rgba(0, 0, 0, 0.08);
  margin-left: 4px;
}

.row-required-label {
  font-size: 12px;
  font-weight: 500;
  color: var(--c-grey-500);
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
}

.activity-row-inner.indent {
  margin-left: 44px;
}

.row-warning-slot {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.row-warning-btn {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  padding: 0;
  background: rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  outline: none;
  transition: background 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
}

.row-warning-btn--not-connected {
  border: 1px solid rgba(234, 88, 12, 0.35);
  color: var(--c-warn-orange-500);
}

.row-warning-btn--not-connected:hover {
  background: rgba(255, 255, 255, 0.82);
  border-color: rgba(234, 88, 12, 0.55);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  color: var(--c-warn-orange-600);
}

.row-warning-btn--unpublished {
  border: 1px solid rgba(217, 119, 6, 0.3);
  color: var(--c-warn-amber-500);
}

.row-warning-btn--unpublished:hover {
  background: rgba(255, 255, 255, 0.82);
  border-color: rgba(217, 119, 6, 0.5);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  color: var(--c-warn-amber-600);
}

.row-warning-btn--not-published {
  border: 1px solid rgba(239, 142, 2, 0.32);
  color: var(--c-warn-yellow-600);
}

.row-warning-btn--not-published:hover {
  background: rgba(255, 255, 255, 0.82);
  border-color: rgba(239, 142, 2, 0.52);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  color: var(--c-signal-yellow-text);
}

.row-warning-btn--no-location {
  border: 1px solid rgba(239, 142, 2, 0.32);
  color: var(--c-warn-yellow-600);
}

.row-warning-btn--no-location:hover {
  background: rgba(255, 255, 255, 0.82);
  border-color: rgba(239, 142, 2, 0.52);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  color: var(--c-signal-yellow-text);
}

.row-warning-btn--alert {
  border: 1px solid rgba(239, 142, 2, 0.32);
  color: var(--c-warn-yellow-600);
}

.row-warning-btn--alert:hover {
  background: rgba(255, 255, 255, 0.82);
  border-color: rgba(239, 142, 2, 0.52);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  color: var(--c-signal-yellow-text);
}

.row-warning-btn:focus-visible {
  box-shadow: 0 0 0 2px var(--c-focus-ring), 0 0 0 6px var(--c-focus-glow);
}

.row-warning-btn:active {
  background: rgba(255, 255, 255, 0.7);
  transform: scale(0.97);
}

[data-theme=dark] qdnapro-activity-row {
  --c-focus-ring: #a5acff;
  --c-focus-glow: rgba(70, 82, 243, 0.40);
}

[data-theme=dark] .activity-row-inner {
  background: #2e3036;
  border-color: rgba(255, 255, 255, 0.08);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
}

[data-theme=dark] .activity-row-inner:hover:not(.disabled),
[data-theme=dark] .activity-row-inner.force-hover:not(.disabled) {
  background: #40444d;
  border-color: rgba(255, 255, 255, 0.14);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
}

[data-theme=dark] .activity-row-inner.is-pressing:not(.disabled),
[data-theme=dark] .activity-row-inner.force-active:not(.disabled) {
  background: rgba(70, 82, 243, 0.18);
  border-color: rgba(70, 82, 243, 0.4);
  box-shadow: 0 2px 10px rgba(70, 82, 243, 0.2);
}

[data-theme=dark] .activity-row-inner.is-briefing {
  background: #2e3e54;
  border-color: rgba(181, 206, 237, 0.2);
}

[data-theme=dark] .activity-row-inner.is-briefing:hover:not(.disabled),
[data-theme=dark] .activity-row-inner.is-briefing.force-hover:not(.disabled) {
  background: #445a78;
  border-color: rgba(181, 206, 237, 0.32);
}

[data-theme=dark] .row-name {
  color: #f3f4f6;
}

[data-theme=dark] .row-meta-id,
[data-theme=dark] .row-meta-version {
  color: #4b5563;
}

[data-theme=dark] .row-meta-dot {
  background: #374151;
}

[data-theme=dark] .row-meta-desc {
  color: #6b7280;
}

[data-theme=dark] .activity-row-inner.navigating:not(.disabled) {
  background: rgba(70, 82, 243, 0.15);
  border-color: rgba(70, 82, 243, 0.35);
  box-shadow: 0 2px 12px rgba(70, 82, 243, 0.25);
}

[data-theme=dark] .row-divider {
  background: rgba(255, 255, 255, 0.08);
}

[data-theme=dark] .row-btn-divider {
  background: rgba(255, 255, 255, 0.08);
}

[data-theme=dark] .row-icon-placeholder {
  background: rgba(255, 255, 255, 0.08);
}

[data-theme=dark] .row-required {
  border-left-color: rgba(255, 255, 255, 0.08);
}

[data-theme=dark] .row-required-label {
  color: #9ca3af;
}

[data-theme=dark] .row-warning-btn {
  background: rgba(20, 22, 35, 0.7);
  border-color: rgba(255, 255, 255, 0.08);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
  color: #fbbf24;
}

[data-theme=dark] .row-warning-btn:hover {
  background: rgba(40, 44, 65, 0.85);
  border-color: rgba(255, 255, 255, 0.12);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
  color: #f59e0b;
}

qdnapro-activity-row[variant=pulse] .activity-row-inner {
  padding: 8px 12px 8px 8px;
  gap: 10px;
}

qdnapro-activity-row[variant=pulse] .activity-row-inner.is-readonly {
  cursor: default;
}

.row-pulse-grip,
.row-pulse-lock {
  flex: 0 0 auto;
  width: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.row-pulse-grip {
  color: var(--c-grey-300);
  cursor: grab;
}

.activity-row-inner.is-readonly .row-pulse-grip {
  visibility: hidden;
}

.row-pulse-lock {
  color: var(--c-grey-400);
  cursor: default;
}

.row-pulse-lock qdnapro-icon {
  width: 18px;
  height: 18px;
}

.row-pulse-day {
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  margin: 0;
  font-family: inherit;
  cursor: pointer;
  flex: 0 0 auto;
  min-width: 76px;
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding: 6px 10px;
  border-radius: 9px;
  background: var(--c-purple-50);
  color: var(--c-purple-700);
  text-align: center;
}

.row-pulse-day-label {
  font-size: 13px;
  font-weight: 600;
  line-height: 16px;
}

.row-pulse-day-sub {
  font-size: 10.5px;
  line-height: 13px;
  color: var(--c-grey-500);
}

.row-pulse-thumb {
  width: 40px;
  height: 40px;
  border-radius: 8px;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
}

.row-pulse-thumb--image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.row-pulse-thumb--color {
  background: var(--row-pulse-thumb-swatch, var(--c-grey-50));
}

.row-pulse-thumb-pattern {
  position: absolute;
  inset: 0;
  background-color: var(--row-pulse-thumb-pattern-tint, var(--row-pulse-thumb-swatch));
  mask-image: var(--row-pulse-thumb-pattern-url);
  mask-size: var(--row-pulse-thumb-pattern-size, 40px 40px);
  mask-position: var(--row-pulse-thumb-pattern-position, 0 0);
  mask-repeat: var(--row-pulse-thumb-pattern-repeat, repeat);
  -webkit-mask-image: var(--row-pulse-thumb-pattern-url);
  -webkit-mask-size: var(--row-pulse-thumb-pattern-size, 40px 40px);
  -webkit-mask-position: var(--row-pulse-thumb-pattern-position, 0 0);
  -webkit-mask-repeat: var(--row-pulse-thumb-pattern-repeat, repeat);
}

.row-pulse-thumb-pattern::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: var(--row-pulse-thumb-pattern-tint, var(--row-pulse-thumb-swatch));
  mask-image: var(--row-pulse-thumb-pattern-url);
  mask-size: var(--row-pulse-thumb-pattern-size, 40px 40px);
  mask-position: var(--row-pulse-thumb-pattern-position, 0 0);
  mask-repeat: var(--row-pulse-thumb-pattern-repeat, repeat);
  -webkit-mask-image: var(--row-pulse-thumb-pattern-url);
  -webkit-mask-size: var(--row-pulse-thumb-pattern-size, 40px 40px);
  -webkit-mask-position: var(--row-pulse-thumb-pattern-position, 0 0);
  -webkit-mask-repeat: var(--row-pulse-thumb-pattern-repeat, repeat);
}

/* Kim 24.08: de type-pil van een Pulse-stap staat MIDDEN in de rij, precies
   zoals .row-type-tag dat doet voor een takenlijst-activiteit. Zelfde absolute
   centrering, zodat beide lijsten dezelfde ritmiek houden. */
.row-pulse-type-tag {
  flex: 0 0 190px;
  display: flex;
  align-items: center;
  gap: 6px;
  pointer-events: none;
}

@media (max-width: 900px) {
  .row-pulse-type-tag,
  .row-pulse-badges {
    display: none;
  }
}
.row-pulse-badges {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 6px;
  pointer-events: none;
}

.row-pulse-score {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  flex-shrink: 0;
  padding: 2px 7px;
  border-radius: 9px;
  background: var(--c-chip-yellow-2-bg);
  color: var(--c-chip-yellow-2-text);
  font-size: 11px;
  font-weight: 600;
  line-height: 16px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.row-pulse-score qdnapro-icon {
  flex-shrink: 0;
}

.row-pulse-score-double {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  flex-shrink: 0;
  padding: 2px 7px;
  border-radius: 9px;
  background: var(--c-chip-dark-purple-bg);
  color: var(--c-chip-dark-purple-text);
  font-size: 11px;
  font-weight: 700;
  line-height: 16px;
  white-space: nowrap;
}

.row-pulse-score-double::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  padding: 1px;
  background: conic-gradient(from var(--row-pulse-beam-angle), color-mix(in srgb, currentColor 10%, transparent) 0deg, color-mix(in srgb, currentColor 10%, transparent) 280deg, color-mix(in srgb, currentColor 60%, transparent) 320deg, color-mix(in srgb, currentColor 10%, transparent) 360deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  animation: row-pulse-beam-spin 3.2s linear infinite;
  pointer-events: none;
}

@keyframes row-pulse-beam-spin {
  to {
    --row-pulse-beam-angle: 360deg;
  }
}
.row-pulse-score-double qdnapro-icon {
  flex-shrink: 0;
}

@media (prefers-reduced-motion: reduce) {
  .row-pulse-score-double::after {
    animation: none;
  }
}
.row-pulse-thumb--anim {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--c-grey-50);
}

.row-pulse-thumb--anim qdnapro-lottie {
  width: 28px;
  height: 28px;
}

.row-pulse-thumb--tile-grey {
  background: var(--c-grey-50);
}

.row-pulse-thumb--tile-red {
  background: var(--c-signal-red-bg);
}

.row-pulse-thumb--tile-yellow {
  background: var(--c-chip-yellow-bg);
}

.row-pulse-thumb--tile-green {
  background: var(--c-chip-green-bg);
}

.row-pulse-thumb--tile-blue {
  background: var(--c-signal-blue-bg);
}

.row-pulse-thumb--tile-bright-blue {
  background: var(--c-chip-bright-blue-2-bg);
}

.row-pulse-thumb--tile-pink {
  background: var(--c-signal-pink-bg);
}

.row-pulse-thumb--tile-purple {
  background: var(--c-chip-purple-bg);
}

[data-theme=dark] .row-pulse-thumb--tile-grey {
  background: #40444d;
}

[data-theme=dark] .row-pulse-thumb--tile-red {
  background: #5a2b2b;
}

[data-theme=dark] .row-pulse-thumb--tile-yellow {
  background: #5a4d1f;
}

[data-theme=dark] .row-pulse-thumb--tile-green {
  background: #2a5544;
}

[data-theme=dark] .row-pulse-thumb--tile-blue {
  background: #2e3e54;
}

[data-theme=dark] .row-pulse-thumb--tile-bright-blue {
  background: #3a4a8a;
}

[data-theme=dark] .row-pulse-thumb--tile-pink {
  background: #4e2a36;
}

[data-theme=dark] .row-pulse-thumb--tile-purple {
  background: #3a3555;
}

.row-pulse-thumb--interactive {
  padding: 0;
  border: 0;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}

.row-pulse-thumb--interactive::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background: rgba(0, 0, 0, 0);
  transition: background-color 120ms ease;
  pointer-events: none;
}

.row-pulse-thumb--interactive:hover::before {
  background: rgba(0, 0, 0, 0.08);
}

.row-pulse-thumb--interactive:active::before {
  background: rgba(0, 0, 0, 0.16);
}

[data-theme=dark] .row-pulse-thumb--interactive:hover::before {
  background: rgba(255, 255, 255, 0.1);
}

[data-theme=dark] .row-pulse-thumb--interactive:active::before {
  background: rgba(255, 255, 255, 0.18);
}

.row-pulse-thumb--interactive:focus {
  outline: none;
}

.row-pulse-thumb--interactive:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--focus-ring, #534ab7);
}

.row-pulse-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1 1 auto;
}

.row-pulse-name {
  font-size: 14px;
  font-weight: 500;
  color: var(--c-grey-950);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.4;
}

.row-pulse-desc {
  font-size: 12px;
  line-height: 1.3;
  color: var(--c-grey-500);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.row-pulse-ref {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  max-width: 100%;
  margin-top: 2px;
  padding: 2px 9px;
  border-radius: 9px;
  background: var(--row-pulse-ref-bg, #eef0fb);
  color: var(--row-pulse-ref-fg, #394290);
  font-size: 11.5px;
  line-height: 17px;
}

.row-pulse-ref qdnapro-icon {
  flex-shrink: 0;
}

.row-pulse-ref span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.row-pulse-ref.is-missing {
  background: var(--c-tag-warning-bg, #fff2d6);
  color: var(--row-pulse-ref-missing-fg, #7a5300);
}

.row-pulse-stats {
  flex: 0 0 auto;
  min-width: 140px;
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--c-grey-500);
}

.row-pulse-stat {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  line-height: 16px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.row-pulse-stat qdnapro-icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  color: inherit;
}

.row-pulse-switch {
  flex: 0 0 auto;
  width: 36px;
}

.row-pulse-delete {
  flex-shrink: 0;
}

.row-pulse-menu {
  flex-shrink: 0;
}

@media (max-width: 1100px) {
  qdnapro-activity-row[variant=pulse] .row-pulse-stats {
    gap: 8px;
  }
  qdnapro-activity-row[variant=pulse] .row-pulse-stat {
    font-size: 11px;
  }
}
@media (max-width: 760px) {
  qdnapro-activity-row[variant=pulse] .row-pulse-stats,
  qdnapro-activity-row[variant=pulse] .row-pulse-switch {
    display: none;
  }
}
[data-theme=dark] .row-pulse-grip {
  color: #565b66;
}

[data-theme=dark] .row-pulse-lock {
  color: #6b7280;
}

[data-theme=dark] .row-pulse-day {
  background: #2a2d55;
  color: #a5acff;
}

[data-theme=dark] .row-pulse-day-sub {
  color: #9ca3af;
}

[data-theme=dark] .row-pulse-name {
  color: #f3f4f6;
}

[data-theme=dark] .row-pulse-desc {
  color: #9ca3af;
}

[data-theme=dark] .row-pulse-stats {
  color: #9ca3af;
}

[data-theme=dark] .row-pulse-ref {
  background: var(--row-pulse-ref-bg-dark, rgba(165, 172, 255, 0.16));
  color: var(--row-pulse-ref-fg-dark, #c0c5ff);
}

[data-theme=dark] .row-pulse-ref.is-missing {
  background: var(--row-pulse-ref-missing-bg-dark, rgba(240, 208, 96, 0.16));
  color: var(--row-pulse-ref-missing-fg-dark, #f0d060);
}

.qdnapro-agenda-list {
  display: block;
  box-sizing: border-box;
  width: 100%;
  background: var(--c-bg-card);
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.qdnapro-agenda-list__day {
  display: block;
}

.qdnapro-agenda-list__header {
  position: sticky;
  top: 0;
  z-index: 1;
  padding: 10px 16px 6px;
  background: var(--c-bg-card);
  border-bottom: 1px solid var(--c-border-soft-2, #e6e9ef);
  font-size: 13px;
  font-weight: 600;
  line-height: 16px;
  color: var(--c-grey-600, #565b66);
}

.qdnapro-agenda-list__header.is-today {
  color: var(--c-action-500, #4652f3);
}

.qdnapro-agenda-list__todaypill {
  display: inline-block;
  padding: 1px 8px;
  border-radius: 999px;
  background: var(--c-action-500, #4652f3);
  color: var(--c-text-on-action);
  font-weight: 700;
}

.qdnapro-agenda-list__day.is-past {
  opacity: 0.55;
}

.qdnapro-agenda-list__row {
  display: flex;
  align-items: stretch;
  gap: 8px;
  padding: 4px 8px 4px 12px;
}

.qdnapro-agenda-list__row:first-of-type {
  padding-top: 8px;
}

.qdnapro-agenda-list__time {
  flex: none;
  display: flex;
  flex-direction: column;
  gap: 2px;
  width: 56px;
  padding-top: 4px;
}

.qdnapro-agenda-list__start {
  font-size: 14px;
  font-weight: 600;
  line-height: 18px;
  color: var(--c-grey-950, #0b0b0d);
}

.qdnapro-agenda-list__dur {
  font-size: 12px;
  line-height: 16px;
  color: var(--c-grey-500, #6b7280);
}

.qdnapro-agenda-list__row .qdnapro-event-card {
  flex: 1;
  min-width: 0;
  height: auto;
}

.qdnapro-agenda-list__empty {
  padding: 24px 16px;
  text-align: center;
  font-size: 13px;
  line-height: 18px;
  color: var(--c-grey-500, #6b7280);
}

.qdnapro-alert {
  --alert-bg: var(--c-grey-50, #f0f1f2);
  --alert-text: var(--c-grey-600, #565b66);
  --alert-border: var(--c-grey-200, #d1d5db);
  display: flex;
  align-items: center;
  gap: 10px;
  box-sizing: border-box;
  width: 100%;
  padding: 14px 16px;
  border-radius: var(--r-3, 12px);
  border: 1px solid color-mix(in srgb, var(--alert-border) 45%, transparent);
  background: var(--alert-bg);
  color: var(--alert-text);
  font-family: var(--ff, "Inter", -apple-system, sans-serif);
  text-align: left;
}

.qdnapro-alert--error {
  --alert-bg: var(--c-signal-red-bg, #fee3e3);
  --alert-text: var(--c-signal-red-text, #c65a5a);
  --alert-border: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-alert--warning {
  --alert-bg: var(--c-warning-bright-bg, #fff3cd);
  --alert-text: var(--c-warning-bright-text, #9a6a10);
  --alert-border: var(--c-warning-bright-border, #f0d060);
}

.qdnapro-alert--success {
  --alert-bg: var(--c-signal-green-bg, #c5f5e2);
  --alert-text: var(--c-signal-green-text, #428b6e);
  --alert-border: var(--c-signal-green-text, #428b6e);
}

.qdnapro-alert--info {
  --alert-bg: var(--c-signal-blue-bg, #e6eff9);
  --alert-text: var(--c-signal-blue-text, #6a8ab4);
  --alert-border: var(--c-signal-blue-text, #6a8ab4);
}

.qdnapro-alert__icon {
  flex: none;
  display: inline-flex;
  align-items: center;
  color: var(--alert-text);
}

.qdnapro-alert__icon qdnapro-icon {
  width: 20px;
  height: 20px;
}

.qdnapro-alert__main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 16px;
}

.qdnapro-alert__content {
  flex: 1 1 220px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.qdnapro-alert__title {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--alert-text);
}

.qdnapro-alert__body {
  font-size: 13px;
  font-weight: 400;
  line-height: 1.45;
  color: var(--alert-text);
}

.qdnapro-alert__action {
  flex: none;
  display: flex;
  align-items: center;
}

.qdnapro-alert .qdnapro-alert__action .qdnapro-button {
  background: color-mix(in srgb, var(--alert-text) 12%, transparent);
  color: var(--alert-text);
}

.qdnapro-alert .qdnapro-alert__action .qdnapro-button:hover:not(.button-disabled) {
  background: color-mix(in srgb, var(--alert-text) 20%, transparent);
}

.qdnapro-alert .qdnapro-alert__action .qdnapro-button:active:not(.button-disabled) {
  background: color-mix(in srgb, var(--alert-text) 26%, transparent);
}

.qdnapro-alert__dismiss {
  flex: none;
  margin: 0 -6px 0 0;
}

.qdnapro-alert .qdnapro-alert__dismiss.qdnapro-icon-btn {
  color: var(--alert-text);
}

.qdnapro-alert .qdnapro-alert__dismiss.qdnapro-icon-btn:hover:not(.icon-btn-disabled) {
  background: color-mix(in srgb, var(--alert-text) 15%, transparent);
}

.qdnapro-alert--compact {
  padding: 10px 12px;
  gap: 8px;
  border-radius: var(--r-2, 8px);
}

.qdnapro-alert--compact .qdnapro-alert__icon qdnapro-icon {
  width: 18px;
  height: 18px;
}

.qdnapro-alert--compact .qdnapro-alert__title {
  font-size: 13px;
}

.qdnapro-alert--compact .qdnapro-alert__body {
  font-size: 12px;
}

.qdnapro-alert--compact .qdnapro-alert__main {
  gap: 6px 12px;
}

.qdnapro-answer-option {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 0;
  border-radius: 7px;
  border: 1px solid var(--c-border-soft-2);
  background: var(--c-bg-card-hover);
  overflow: visible;
  min-height: 38px;
  transition: border-color 140ms, box-shadow 140ms, transform 120ms, background 140ms;
  position: relative;
  font-family: "Inter", -apple-system, sans-serif;
}
.qdnapro-answer-option *, .qdnapro-answer-option *::before, .qdnapro-answer-option *::after {
  box-sizing: border-box;
}
.qdnapro-answer-option:hover, .qdnapro-answer-option--show-actions {
  border-color: var(--c-chip-bright-blue-2-hover);
  box-shadow: 0 1px 5px rgba(64, 73, 154, 0.1);
}
.qdnapro-answer-option:hover .qdnapro-answer-option__drag, .qdnapro-answer-option--show-actions .qdnapro-answer-option__drag {
  opacity: 1;
}
.qdnapro-answer-option:hover .qdnapro-answer-option__actions, .qdnapro-answer-option--show-actions .qdnapro-answer-option__actions {
  opacity: 1;
  pointer-events: all;
}
.qdnapro-answer-option:hover .qdnapro-answer-option__act, .qdnapro-answer-option--show-actions .qdnapro-answer-option__act {
  transform: scale(1);
  opacity: 1;
}
.qdnapro-answer-option--draggable .qdnapro-answer-option__label {
  padding-left: 14px;
}
.qdnapro-answer-option--pressed {
  border-color: var(--c-chip-bright-blue-2-hover);
  background: var(--c-bg-subtle-purple);
  box-shadow: inset 0 1px 3px rgba(64, 73, 154, 0.12);
  transform: translateY(1px);
}
.qdnapro-answer-option--dragging {
  border-color: var(--c-purple-500);
  background: var(--c-bg-card);
  box-shadow: 0 10px 26px rgba(20, 24, 60, 0.22);
  transform: scale(1.015);
  z-index: 5;
}
.qdnapro-answer-option--dragging .qdnapro-answer-option__drag {
  opacity: 1;
}
.qdnapro-answer-option--unlinked {
  border-color: var(--c-warning-bright-border);
  background: var(--c-bg-card);
}
.qdnapro-answer-option--confirming {
  border-color: var(--c-chip-red-2-bg);
  background: var(--c-signal-red-soft);
}
.qdnapro-answer-option--confirming-unlink {
  border-color: var(--c-warning-bright-border);
  background: var(--c-bg-card);
}
.qdnapro-answer-option {
  --answer-option-accent-bg: var(--c-purple-50, #e6e9ff);
  --answer-option-accent-text: var(--c-purple-500, #40499a);
}
.qdnapro-answer-option--color-positive {
  --answer-option-accent-bg: var(--c-signal-green-bg, #c5f5e2);
  --answer-option-accent-text: var(--c-signal-green-text, #428b6e);
}
.qdnapro-answer-option--color-warning {
  --answer-option-accent-bg: var(--c-signal-yellow-bg, #feedb8);
  --answer-option-accent-text: var(--c-signal-yellow-text, #bf7202);
}
.qdnapro-answer-option--color-negative {
  --answer-option-accent-bg: var(--c-signal-red-bg, #fee3e3);
  --answer-option-accent-text: var(--c-signal-red-text, #c65a5a);
}
.qdnapro-answer-option--color-neutral_alt {
  --answer-option-accent-bg: var(--c-signal-blue-bg, #e6eff9);
  --answer-option-accent-text: var(--c-signal-blue-text, #6a8ab4);
}
.qdnapro-answer-option--cross-check {
  transition: border-color 200ms, box-shadow 200ms, transform 200ms, background 200ms;
}
.qdnapro-answer-option--marked {
  border-color: var(--c-success-500, #12805e);
  background: var(--c-signal-green-bg, #c5f5e2);
}

.qdnapro-answer-option__drag {
  position: absolute;
  left: 4px;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 22px;
  background: var(--c-action-500);
  border-radius: 2px;
  opacity: 0;
  transition: opacity 150ms ease;
  pointer-events: none;
  z-index: 1;
}

.qdnapro-answer-option__mark {
  position: relative;
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  margin-left: 10px;
  border-radius: 50%;
  border: 1.5px solid var(--c-border-soft-2);
  background: var(--c-bg-card);
  color: var(--c-grey-500, #6b6884);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
  font-family: inherit;
  transition: background 200ms ease, border-color 200ms ease, color 200ms ease;
}
.qdnapro-answer-option__mark:focus {
  outline: none;
}
.qdnapro-answer-option__mark:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 35%, transparent);
}
.qdnapro-answer-option__mark svg {
  width: 12px;
  height: 12px;
}
.qdnapro-answer-option__mark.is-marked {
  border-color: var(--c-success-500, #12805e);
  background: var(--c-signal-green-bg, #c5f5e2);
  color: var(--c-signal-green-text, #428b6e);
}
.qdnapro-answer-option__mark.is-wrong {
  border-color: var(--c-warn-red-500, #dc2626);
  background: var(--c-signal-red-bg, #fee3e3);
  color: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-answer-option--draggable .qdnapro-answer-option__mark {
  margin-left: 14px;
}

.qdnapro-answer-option__mark-icon {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 200ms ease, transform 200ms ease;
}

.qdnapro-answer-option__mark-icon--cross {
  opacity: 1;
  transform: scale(1) rotate(0);
}

.qdnapro-answer-option__mark-icon--check {
  opacity: 0;
  transform: scale(0.5) rotate(-45deg);
}

.qdnapro-answer-option__mark.is-marked .qdnapro-answer-option__mark-icon--cross {
  opacity: 0;
  transform: scale(0.5) rotate(45deg);
}
.qdnapro-answer-option__mark.is-marked .qdnapro-answer-option__mark-icon--check {
  opacity: 1;
  transform: scale(1) rotate(0);
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-answer-option__mark,
  .qdnapro-answer-option__mark-icon,
  .qdnapro-answer-option--cross-check {
    transition: none;
  }
}
.qdnapro-answer-option__correct {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 4px 0 10px;
  font-size: 12px;
  line-height: 1;
  color: var(--c-grey-500, #6b6884);
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
}

.qdnapro-answer-option--correct .qdnapro-answer-option__correct {
  color: var(--c-brand-purple, #534ab7);
}

.qdnapro-answer-option__label {
  flex: 1;
  border: none;
  outline: none;
  background: transparent;
  color: var(--c-purple-700);
  font-family: inherit;
  font-size: 12px;
  padding: 9px 6px;
  line-height: 1.4;
  min-width: 0;
}
.qdnapro-answer-option__label:focus, .qdnapro-answer-option__label.is-editing {
  background: rgba(255, 255, 255, 0.9);
  border-radius: 4px;
  box-shadow: inset 0 0 0 1.5px var(--c-purple-500);
}
.qdnapro-answer-option__label[readonly] {
  color: var(--c-purple-400);
  cursor: default;
}

.qdnapro-answer-option__label--static {
  display: flex;
  align-items: center;
  cursor: default;
}
.qdnapro-answer-option__label--static.is-empty {
  color: var(--c-text-disabled-pp);
  font-style: italic;
}

.qdnapro-answer-option__node-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--answer-option-accent-text, #40499a);
}

.qdnapro-answer-option--single .qdnapro-answer-option__node-icon {
  padding: 0 2px 0 10px;
  font-size: 18px;
}

.qdnapro-answer-option:not(.qdnapro-answer-option--single) .qdnapro-answer-option__node-icon {
  width: 22px;
  height: 22px;
  margin-left: 8px;
  border-radius: 6px;
  background: var(--answer-option-accent-bg, #e6e9ff);
  font-size: 14px;
  flex-shrink: 0;
}

.qdnapro-answer-option--draggable .qdnapro-answer-option__node-icon {
  margin-left: 14px;
}

.qdnapro-answer-option__conn {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 3px 8px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
  flex-shrink: 0;
  margin-right: 4px;
  font-family: inherit;
}
.qdnapro-answer-option__conn svg {
  width: 13px;
  height: 13px;
}
.qdnapro-answer-option__conn--linked {
  background: var(--c-bg-subtle-purple);
  color: var(--c-purple-500);
  border: none;
  cursor: default;
}
.qdnapro-answer-option__conn--linked.qdnapro-answer-option__conn--has-tip {
  transition: background 120ms;
}
.qdnapro-answer-option__conn--linked.qdnapro-answer-option__conn--has-tip:hover {
  background: var(--c-purple-50);
}
.qdnapro-answer-option__conn--empty {
  background: var(--c-warning-bright-bg);
  color: var(--c-warning-bright-text);
  border: 1px dashed var(--c-warning-bright-border);
  cursor: pointer;
  transition: background 120ms;
}
.qdnapro-answer-option__conn--empty:hover {
  background: var(--c-chip-yellow-2-bg);
}
.qdnapro-answer-option__conn--linked.qdnapro-answer-option__conn--warning {
  background: var(--c-warning-bright-bg);
  color: var(--c-warning-bright-text);
  border: 1px solid var(--c-warning-bright-border);
  animation: qdnapro-ao-pill-wiggle 3s ease-in-out infinite;
  transform-origin: center;
}
.qdnapro-answer-option__conn--linked.qdnapro-answer-option__conn--warning:hover {
  background: var(--c-chip-yellow-2-bg);
}

@keyframes qdnapro-ao-pill-wiggle {
  0%, 84%, 100% {
    transform: translateX(0) rotate(0);
  }
  87% {
    transform: translateX(-2px) rotate(-3deg);
  }
  90% {
    transform: translateX(2px) rotate(3deg);
  }
  93% {
    transform: translateX(-2px) rotate(-2deg);
  }
  96% {
    transform: translateX(1px) rotate(1deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-answer-option__conn--warning {
    animation: none;
  }
}
.qdnapro-answer-option__actions {
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 0 5px 0 0;
  flex-shrink: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 140ms;
}

.qdnapro-answer-option__act {
  width: 26px;
  height: 26px;
  border-radius: 5px;
  border: 1px solid transparent;
  background: transparent;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  transition: background 120ms, border-color 120ms, color 120ms;
  flex-shrink: 0;
}
.qdnapro-answer-option__act svg {
  width: 15px;
  height: 15px;
}
.qdnapro-answer-option__act--unlink {
  color: var(--c-warning-bright-text);
  background: var(--c-warning-bright-bg);
  border-color: var(--c-warning-bright-border);
}
.qdnapro-answer-option__act--unlink:hover {
  background: var(--c-chip-yellow-2-bg);
  border-color: var(--c-warn-yellow-500);
}
.qdnapro-answer-option__act--delete {
  color: var(--c-tag-critical-text);
  background: var(--c-signal-red-bg);
  border-color: var(--c-chip-red-2-bg);
}
.qdnapro-answer-option__act--delete:hover {
  background: var(--c-chip-red-hover);
  border-color: var(--c-tag-critical-text);
}

.qdnapro-answer-option__confirm {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  padding: 6px 10px;
}

.qdnapro-answer-option__confirm-icon {
  color: var(--c-tag-critical-text);
  font-size: 15px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
}
.qdnapro-answer-option__confirm-icon svg {
  width: 16px;
  height: 16px;
}

.qdnapro-answer-option__confirm-text {
  flex: 1;
  font-size: 12px;
  font-weight: 600;
  color: var(--c-tag-critical-text);
  font-family: inherit;
}

.qdnapro-answer-option--confirming-unlink .qdnapro-answer-option__confirm-icon,
.qdnapro-answer-option--confirming-unlink .qdnapro-answer-option__confirm-text {
  color: var(--c-warning-bright-text);
}

.qdnapro-answer-button {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  box-sizing: border-box;
  min-height: 56px;
  padding: 12px 16px;
  border: 1.5px solid transparent;
  border-radius: var(--r-3, 12px);
  --qab-idle: var(--theme-btn-idle-color, color-mix(in srgb, var(--theme-btn-color, #40499a) 12%, #fff));
  --qab-hover: var(--theme-btn-idle-hover-color, color-mix(in srgb, var(--qab-idle) 92%, #000));
  background: var(--qab-idle);
  color: var(--theme-btn-idle-text-color, var(--theme-btn-color, #40499a));
  font-family: var(--theme-font-family, "Inter", sans-serif);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.25;
  text-align: left;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.16s ease, border-color 0.16s ease, color 0.16s ease, box-shadow 0.16s ease, transform 0.1s ease;
}

.qdnapro-answer-button:hover:not(.is-disabled):not(.is-active) {
  background: var(--qab-hover);
}

.qdnapro-answer-button.is-pressed:not(.is-disabled) {
  background: color-mix(in srgb, var(--qab-hover) 92%, #000);
  transform: scale(0.98);
}

.qdnapro-answer-button[data-force-state=hover]:not(.is-disabled):not(.is-active) {
  background: var(--qab-hover);
}

.qdnapro-answer-button[data-force-state=pressed]:not(.is-disabled):not(.is-active) {
  background: color-mix(in srgb, var(--qab-hover) 92%, #000);
}

.qdnapro-answer-button.is-active {
  background: var(--theme-btn-selected-color, color-mix(in srgb, var(--theme-btn-color, #40499a) 22%, #fff));
  color: var(--theme-btn-selected-text-color, var(--theme-btn-color, #40499a));
  border-color: transparent;
}

.qdnapro-answer-button.is-disabled {
  background: var(--c-grey-50, #f0f1f2);
  color: var(--c-grey-400, #a6aab3);
  cursor: default;
}

.qdnapro-answer-button__tick {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 7px;
  border: 2px solid currentColor;
  color: inherit;
  background: transparent;
  opacity: 0.5;
  transition: background 0.18s ease, border-color 0.18s ease, opacity 0.18s ease, transform 0.2s cubic-bezier(0.34, 1.6, 0.5, 1);
}

.qdnapro-answer-button__tick svg {
  overflow: visible;
}

.qdnapro-answer-button__check {
  fill: none;
  stroke: currentColor;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 24;
  stroke-dashoffset: 24;
  transition: stroke-dashoffset 0.15s ease;
}

.qdnapro-answer-button.is-active .qdnapro-answer-button__tick {
  opacity: 1;
  background: var(--theme-btn-color, #40499a);
  border-color: var(--theme-btn-color, #40499a);
  color: var(--theme-btn-text-color, #fff);
  animation: qab-tick-pop 0.52s cubic-bezier(0.34, 1.56, 0.5, 1);
}

.qdnapro-answer-button.is-active .qdnapro-answer-button__check {
  animation: qab-draw 0.38s cubic-bezier(0.22, 1, 0.36, 1) 0.04s forwards;
}

.qdnapro-answer-button.is-disabled .qdnapro-answer-button__tick {
  border-color: var(--c-grey-300, #c4c7cc);
  opacity: 1;
}

.qdnapro-answer-button__label {
  flex: 1;
  min-width: 0;
}

.qdnapro-answer-button--multiple-choice .qdnapro-answer-button__tick {
  border-radius: 50%;
}

.qdnapro-answer-button__icon {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  overflow: hidden;
}

.qdnapro-answer-button__icon svg,
.qdnapro-answer-button__icon img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.qdnapro-answer-button.has-icon-mdi .qdnapro-answer-button__icon {
  width: 24px;
  height: 24px;
}

.qdnapro-answer-button.has-icon-mdi .qdnapro-answer-button__icon svg {
  fill: currentColor;
}

@keyframes qab-tick-pop {
  0% {
    transform: scale(0.7) rotate(0deg);
  }
  20% {
    transform: scale(1.22) rotate(-5deg);
  }
  44% {
    transform: scale(0.9) rotate(3deg);
  }
  64% {
    transform: scale(1.08) rotate(-1deg);
  }
  80% {
    transform: scale(0.97) rotate(0deg);
  }
  100% {
    transform: scale(1) rotate(0deg);
  }
}
@keyframes qab-draw {
  0% {
    stroke-dashoffset: 24;
  }
  62% {
    stroke-dashoffset: -1;
  }
  80% {
    stroke-dashoffset: 0.7;
  }
  100% {
    stroke-dashoffset: 0;
  }
}
.qdnapro-answer-button--compact {
  min-height: 48px;
  padding: 10px 14px;
  font-size: 15px;
  gap: 10px;
}

.qdnapro-answer-button--compact .qdnapro-answer-button__tick {
  width: 20px;
  height: 20px;
  border-radius: 6px;
}

.qdnapro-answer-button--compact.qdnapro-answer-button--multiple-choice .qdnapro-answer-button__tick {
  border-radius: 50%;
}

.qdnapro-answer-button--compact .qdnapro-answer-button__tick svg {
  width: 13px;
  height: 13px;
}

.qdnapro-answer-button--compact.has-icon-activity .qdnapro-answer-button__icon {
  width: 26px;
  height: 26px;
}

.qdnapro-answer-button--compact.has-icon-mdi .qdnapro-answer-button__icon {
  width: 20px;
  height: 20px;
}

:where([data-theme=dark], [data-theme-dark=true]) .qdnapro-answer-button {
  background: color-mix(in srgb, var(--theme-btn-color, #40499a) 20%, var(--c-grey-900, #18181c));
  color: color-mix(in srgb, var(--theme-btn-color, #40499a) 70%, #fff);
}

:where([data-theme=dark], [data-theme-dark=true]) .qdnapro-answer-button:hover:not(.is-disabled):not(.is-active) {
  background: color-mix(in srgb, var(--theme-btn-color, #40499a) 30%, var(--c-grey-900, #18181c));
}

:where([data-theme=dark], [data-theme-dark=true]) .qdnapro-answer-button.is-pressed:not(.is-disabled) {
  background: color-mix(in srgb, var(--theme-btn-color, #40499a) 40%, var(--c-grey-900, #18181c));
}

:where([data-theme=dark], [data-theme-dark=true]) .qdnapro-answer-button.is-active {
  background: var(--theme-btn-selected-color, color-mix(in srgb, var(--theme-btn-color, #40499a) 35%, var(--c-grey-900, #18181c)));
  color: var(--theme-btn-selected-text-color, color-mix(in srgb, var(--theme-btn-color, #40499a) 70%, #fff));
}

:where([data-theme=dark], [data-theme-dark=true]) .qdnapro-answer-button.is-disabled {
  background: var(--c-grey-900, #18181c);
  color: var(--c-grey-500, #6b7280);
}

.qdnapro-answer-button--green {
  background: var(--c-signal-green-bg, #c5f5e2);
  color: var(--c-signal-green-text, #428b6e);
}

.qdnapro-answer-button--green:hover:not(.is-disabled):not(.is-active) {
  background: color-mix(in srgb, var(--c-signal-green-bg, #c5f5e2) 85%, #000);
}

.qdnapro-answer-button--green.is-pressed:not(.is-disabled) {
  background: color-mix(in srgb, var(--c-signal-green-bg, #c5f5e2) 75%, #000);
}

.qdnapro-answer-button--green.is-active {
  background: color-mix(in srgb, var(--c-signal-green-bg, #c5f5e2) 80%, #000);
  color: var(--c-signal-green-text, #428b6e);
}

.qdnapro-answer-button--green.is-active .qdnapro-answer-button__tick {
  background: var(--c-success-bright, #1d9e75);
  border-color: var(--c-success-bright, #1d9e75);
}

.qdnapro-answer-button--red {
  background: var(--c-signal-red-bg, #fee3e3);
  color: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-answer-button--red:hover:not(.is-disabled):not(.is-active) {
  background: color-mix(in srgb, var(--c-signal-red-bg, #fee3e3) 85%, #000);
}

.qdnapro-answer-button--red.is-pressed:not(.is-disabled) {
  background: color-mix(in srgb, var(--c-signal-red-bg, #fee3e3) 75%, #000);
}

.qdnapro-answer-button--red.is-active {
  background: color-mix(in srgb, var(--c-signal-red-bg, #fee3e3) 80%, #000);
  color: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-answer-button--red.is-active .qdnapro-answer-button__tick {
  background: var(--c-warn-red-500, #dc2626);
  border-color: var(--c-warn-red-500, #dc2626);
}

.qdnapro-answer-button--positive {
  background: var(--c-signal-green-bg, #c5f5e2);
  color: var(--c-signal-green-text, #428b6e);
}

.qdnapro-answer-button--positive:hover:not(.is-disabled):not(.is-active) {
  background: color-mix(in srgb, var(--c-signal-green-bg, #c5f5e2) 85%, #000);
}

.qdnapro-answer-button--positive.is-pressed:not(.is-disabled) {
  background: color-mix(in srgb, var(--c-signal-green-bg, #c5f5e2) 75%, #000);
}

.qdnapro-answer-button--positive.is-active {
  background: color-mix(in srgb, var(--c-signal-green-bg, #c5f5e2) 80%, #000);
  color: var(--c-signal-green-text, #428b6e);
}

.qdnapro-answer-button--positive.is-active .qdnapro-answer-button__tick {
  background: var(--c-success-bright, #1d9e75);
  border-color: var(--c-success-bright, #1d9e75);
}

.qdnapro-answer-button--warning {
  background: var(--c-signal-yellow-bg, #feedb8);
  color: var(--c-signal-yellow-text, #bf7202);
}

.qdnapro-answer-button--warning:hover:not(.is-disabled):not(.is-active) {
  background: color-mix(in srgb, var(--c-signal-yellow-bg, #feedb8) 85%, #000);
}

.qdnapro-answer-button--warning.is-pressed:not(.is-disabled) {
  background: color-mix(in srgb, var(--c-signal-yellow-bg, #feedb8) 75%, #000);
}

.qdnapro-answer-button--warning.is-active {
  background: color-mix(in srgb, var(--c-signal-yellow-bg, #feedb8) 80%, #000);
  color: var(--c-signal-yellow-text, #bf7202);
}

.qdnapro-answer-button--warning.is-active .qdnapro-answer-button__tick {
  background: var(--c-warn-amber-500, #d97706);
  border-color: var(--c-warn-amber-500, #d97706);
}

.qdnapro-answer-button--negative {
  background: var(--c-signal-red-bg, #fee3e3);
  color: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-answer-button--negative:hover:not(.is-disabled):not(.is-active) {
  background: color-mix(in srgb, var(--c-signal-red-bg, #fee3e3) 85%, #000);
}

.qdnapro-answer-button--negative.is-pressed:not(.is-disabled) {
  background: color-mix(in srgb, var(--c-signal-red-bg, #fee3e3) 75%, #000);
}

.qdnapro-answer-button--negative.is-active {
  background: color-mix(in srgb, var(--c-signal-red-bg, #fee3e3) 80%, #000);
  color: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-answer-button--negative.is-active .qdnapro-answer-button__tick {
  background: var(--c-warn-red-500, #dc2626);
  border-color: var(--c-warn-red-500, #dc2626);
}

.qdnapro-answer-button--neutral_alt {
  background: var(--c-signal-blue-bg, #e6eff9);
  color: var(--c-signal-blue-text, #6a8ab4);
}

.qdnapro-answer-button--neutral_alt:hover:not(.is-disabled):not(.is-active) {
  background: color-mix(in srgb, var(--c-signal-blue-bg, #e6eff9) 85%, #000);
}

.qdnapro-answer-button--neutral_alt.is-pressed:not(.is-disabled) {
  background: color-mix(in srgb, var(--c-signal-blue-bg, #e6eff9) 75%, #000);
}

.qdnapro-answer-button--neutral_alt.is-active {
  background: color-mix(in srgb, var(--c-signal-blue-bg, #e6eff9) 80%, #000);
  color: var(--c-signal-blue-text, #6a8ab4);
}

.qdnapro-answer-button--neutral_alt.is-active .qdnapro-answer-button__tick {
  background: var(--c-signal-blue-text, #6a8ab4);
  border-color: var(--c-signal-blue-text, #6a8ab4);
}

.qdnapro-avatar {
  --av-bg: var(--c-signal-green-bg);
  --av-border: var(--c-signal-green-text);
  --av-size: 48px;
  --av-padding: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: var(--av-size);
  height: var(--av-size);
  flex-shrink: 0;
  padding: var(--av-padding);
  border: 0.5px solid var(--av-border);
  border-radius: 50%;
  background: var(--av-bg);
  overflow: hidden;
  user-select: none;
  transition: opacity 140ms ease-out;
}

.qdnapro-avatar .avatar-animal {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  pointer-events: none;
}

.qdnapro-avatar.avatar-size-72 {
  --av-size: 72px;
  --av-padding: 12px;
}

.qdnapro-avatar.avatar-size-48 {
  --av-size: 48px;
  --av-padding: 8px;
}

.qdnapro-avatar.avatar-size-34 {
  --av-size: 34px;
  --av-padding: 6px;
}

.qdnapro-avatar.avatar-size-28 {
  --av-size: 28px;
  --av-padding: 5px;
}

.qdnapro-avatar.avatar-size-20 {
  --av-size: 20px;
  --av-padding: 4px;
}

.qdnapro-avatar.avatar-color-green {
  --av-bg: var(--c-signal-green-bg);
  --av-border: var(--c-signal-green-text);
  --av-icon: var(--c-signal-green-text);
}

.qdnapro-avatar.avatar-color-yellow {
  --av-bg: var(--c-signal-yellow-bg);
  --av-border: var(--c-signal-yellow-text);
  --av-icon: var(--c-warn-yellow-600);
}

.qdnapro-avatar.avatar-color-blue {
  --av-bg: var(--c-signal-blue-bg);
  --av-border: var(--c-signal-blue-text);
  --av-icon: var(--c-purple-400);
}

.qdnapro-avatar.avatar-color-red {
  --av-bg: var(--c-signal-red-bg);
  --av-border: var(--c-signal-red-text);
  --av-icon: var(--c-signal-red-text);
}

.qdnapro-avatar.avatar-color-neutral {
  --av-bg: var(--c-grey-100, #e7e9ec);
  --av-border: var(--c-grey-500, #6b7280);
  --av-icon: var(--c-grey-600, #565b66);
}

.qdnapro-avatar.avatar-color-purple {
  --av-bg: var(--c-purple-50, #e6e9ff);
  --av-border: var(--c-purple-200, #a5acff);
  --av-icon: var(--c-purple-500, #40499a);
}

.qdnapro-avatar.avatar-mode-photo {
  border: none;
  padding: 0;
  background: var(--c-grey-50);
}

.qdnapro-avatar .avatar-photo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
}

.qdnapro-avatar .avatar-initials {
  font-family: "Inter", sans-serif;
  font-weight: 600;
  color: var(--c-grey-500);
  text-align: center;
  line-height: 1;
  user-select: none;
  white-space: nowrap;
  transform: translateY(0.05em);
}

.qdnapro-avatar.avatar-mode-initials.avatar-size-72 .avatar-initials {
  font-size: 28px;
}

.qdnapro-avatar.avatar-mode-initials.avatar-size-48 .avatar-initials {
  font-size: 18px;
}

.qdnapro-avatar.avatar-mode-initials.avatar-size-34 .avatar-initials {
  font-size: 13px;
}

.qdnapro-avatar.avatar-mode-initials.avatar-size-28 .avatar-initials {
  font-size: 11px;
}

.qdnapro-avatar.avatar-mode-initials.avatar-size-20 .avatar-initials {
  font-size: 9px;
}

.qdnapro-avatar.avatar-mode-icon {
  color: var(--av-icon);
}

.qdnapro-avatar .avatar-icon {
  display: inline-flex;
  color: inherit;
  pointer-events: none;
}

.qdnapro-avatar .avatar-icon svg {
  fill: currentColor;
  width: 100%;
  height: 100%;
}

.qdnapro-avatar.avatar-mode-icon.avatar-size-72 .avatar-icon {
  width: 36px;
  height: 36px;
}

.qdnapro-avatar.avatar-mode-icon.avatar-size-48 .avatar-icon {
  width: 24px;
  height: 24px;
}

.qdnapro-avatar.avatar-mode-icon.avatar-size-34 .avatar-icon {
  width: 18px;
  height: 18px;
}

.qdnapro-avatar.avatar-mode-icon.avatar-size-28 .avatar-icon {
  width: 15px;
  height: 15px;
}

.qdnapro-avatar.avatar-mode-icon.avatar-size-20 .avatar-icon {
  width: 12px;
  height: 12px;
}

.qdnapro-avatar.avatar-mode-mark {
  color: var(--av-icon);
}

.qdnapro-avatar .avatar-mark {
  display: inline-flex;
  color: inherit;
  pointer-events: none;
}

.qdnapro-avatar .avatar-mark svg {
  display: block;
  fill: currentColor;
  width: 100%;
  height: 100%;
}

.qdnapro-avatar.avatar-mode-mark.avatar-size-72 .avatar-mark {
  width: 42px;
  height: 42px;
}

.qdnapro-avatar.avatar-mode-mark.avatar-size-48 .avatar-mark {
  width: 28px;
  height: 28px;
}

.qdnapro-avatar.avatar-mode-mark.avatar-size-34 .avatar-mark {
  width: 20px;
  height: 20px;
}

.qdnapro-avatar.avatar-mode-mark.avatar-size-28 .avatar-mark {
  width: 16px;
  height: 16px;
}

.qdnapro-avatar.avatar-mode-mark.avatar-size-20 .avatar-mark {
  width: 12px;
  height: 12px;
}

.qdnapro-avatar.avatar-disabled {
  opacity: 0.5;
}

.qdnapro-avatar.avatar-missing::after {
  content: "?";
  position: absolute;
  font-family: "Inter", sans-serif;
  font-size: 0.5em;
  color: var(--av-border);
}

.qdnapro-avatar-stack {
  display: inline-flex;
  align-items: center;
  vertical-align: middle;
}

.qdnapro-avatar-stack [data-role=stack-item] {
  flex-shrink: 0;
  position: relative;
}

.qdnapro-avatar-stack [data-stack-hidden] {
  display: none;
}

.qdnapro-avatar-stack [data-role=overflow] {
  margin-left: 4px;
  flex-shrink: 0;
}

.qdnapro-avatar-stack[data-size="20"] [data-role=stack-item] {
  margin-right: -6px;
}

.qdnapro-avatar-stack[data-size="34"] [data-role=stack-item] {
  margin-right: -10px;
}

.qdnapro-avatar-stack[data-size="48"] [data-role=stack-item] {
  margin-right: -14px;
}

.qdnapro-avatar-stack[data-size="72"] [data-role=stack-item] {
  margin-right: -22px;
}

.qdnapro-avatar-stack [data-role=stack-item][data-stack-last] {
  margin-right: 0;
}

/* variant="button": the whole stack acts like a subtle-purple button
   (hover / active / focus), for use on a light-purple surface. [Kim 2026-06-17] */
.qdnapro-avatar-stack[variant=button] {
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 8px;
  background: transparent;
  transition: background-color 120ms ease, box-shadow 120ms ease;
}

.qdnapro-avatar-stack[variant=button]:hover {
  background: var(--c-border-tree-bright);
}

.qdnapro-avatar-stack[variant=button]:active {
  background: var(--c-sidebar-icon);
}

.qdnapro-avatar-stack[variant=button]:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px rgba(64, 73, 154, 0.45);
}

.qdnapro-background-picker {
  display: block;
}

.qdnapro-background-picker *,
.qdnapro-background-picker *::before,
.qdnapro-background-picker *::after {
  box-sizing: border-box;
}

.qbp-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.qbp-tile {
  position: relative;
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: 10px;
  border: 1px solid var(--c-border-card, #e1e3e6);
  background: var(--qbp-swatch, var(--c-grey-50, #f2f3f5));
  color: var(--c-text-muted, #6e7280);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  cursor: pointer;
  transition: transform 120ms ease, box-shadow 120ms ease, border-color 120ms ease;
}

.qbp-tile:hover {
  transform: translateY(-1px);
}

.qbp-tile:active {
  transform: translateY(0) scale(0.96);
}

.qbp-tile:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--focus-ring), 0 0 0 5px var(--focus-glow);
}

.qbp-tile.qbp-tile-selected {
  border-color: var(--focus-ring);
  box-shadow: 0 0 0 2px var(--focus-ring), 0 0 0 5px var(--focus-glow);
}

.qbp-tile-none,
.qbp-tile-upload:not(.qbp-tile-has-image),
.qbp-tile-grid,
.qbp-tile-pattern-none {
  background: var(--c-grey-50, #f2f3f5);
}

.qbp-tile-color {
  background: var(--qbp-swatch);
}

.qbp-tile-pattern {
  background: var(--qbp-swatch);
}

.qbp-tile-pattern-layer,
.qbp-tile-pattern-layer::after {
  position: absolute;
  inset: 0;
  background-color: var(--qbp-pattern-tint);
  mask-image: var(--qbp-pattern-url);
  mask-size: var(--qbp-pattern-mask-size, 40px) var(--qbp-pattern-mask-size, 40px);
  mask-position: var(--qbp-pattern-mask-pos-x, 0) var(--qbp-pattern-mask-pos-y, 0);
  mask-repeat: repeat;
  -webkit-mask-image: var(--qbp-pattern-url);
  -webkit-mask-size: var(--qbp-pattern-mask-size, 40px) var(--qbp-pattern-mask-size, 40px);
  -webkit-mask-position: var(--qbp-pattern-mask-pos-x, 0) var(--qbp-pattern-mask-pos-y, 0);
  -webkit-mask-repeat: repeat;
}

.qbp-tile-pattern-layer::after {
  content: "";
}

.qbp-tile-scene {
  background-image: var(--qbp-scene-url);
  background-size: cover;
  background-position: center;
}

.qbp-tile-wheel {
  background: var(--c-grey-50, #f2f3f5);
}

.qbp-tile-wheel-face {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 1px solid var(--c-border-soft, rgba(0, 0, 0, 0.07));
  background: conic-gradient(from 0deg, var(--c-warn-red-500, #dc2626), var(--c-warn-orange-500, #ea580c), var(--c-warn-yellow-500, #fbbf24), var(--c-success-500, #12805e), var(--c-action-500, #4652f3), var(--c-purple-500, #40499a), var(--c-warn-red-500, #dc2626));
}

.qbp-tile-text-color {
  flex-direction: column;
  gap: 2px;
  background: var(--c-grey-50, #f2f3f5);
}

.qbp-tile-text-bar {
  width: 20px;
  height: 4px;
  border-radius: 2px;
  background: var(--qbp-text-swatch, var(--c-grey-300, #c4c7cc));
}

.qbp-tile-text-color-set .qbp-tile-text-bar {
  box-shadow: 0 0 0 1px var(--c-border-soft, rgba(0, 0, 0, 0.07));
}

.qbp-tile-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.qbp-tile-check {
  position: absolute;
  right: -2px;
  bottom: -2px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--c-bg-card, #ffffff);
  border: 1px solid var(--c-border-card, #e1e3e6);
  opacity: 0;
  transform: scale(0.6);
  transition: opacity 120ms ease, transform 120ms ease;
}

.qbp-tile-selected .qbp-tile-check {
  opacity: 1;
  transform: scale(1);
}

.qbp-tile-check::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 5px;
  width: 6px;
  height: 4px;
  border-left: 2px solid var(--focus-ring);
  border-bottom: 2px solid var(--focus-ring);
  transform: rotate(-45deg);
}

.qbp-grid-panel {
  width: 292px;
  max-height: 360px;
  overflow-y: auto;
  padding: 16px;
  background: var(--c-bg-card, #ffffff);
  border: 1px solid var(--c-border-card, #e1e3e6);
  border-radius: 14px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.16);
}

.qbp-grid-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.qbp-grid-section {
  margin-top: 16px;
}

.qbp-grid-heading {
  margin-bottom: 8px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: var(--c-text-muted, #6e7280);
}

.qbp-color-panel-card {
  width: 248px;
  max-height: none;
  overflow: visible;
}

.qbp-grid-pattern-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

.qdnapro-battle-bar {
  display: block;
  box-sizing: border-box;
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.qdnapro-battle-bar.is-interactive {
  cursor: pointer;
  border-radius: var(--r-2, 8px);
}

.qdnapro-battle-bar.is-interactive:focus {
  outline: none;
}

.qdnapro-battle-bar.is-interactive:focus-visible,
.qdnapro-battle-bar.is-interactive.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--focus-ring), 0 0 0 5px var(--focus-glow);
}

.qdnapro-battle-bar--tug {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.bb-tug-names {
  display: flex;
  justify-content: space-between;
  font: 600 12px/1.2 var(--theme-font-family, "Inter", sans-serif);
}

.bb-tug-name {
  max-width: 48%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bb-tug-name--b {
  text-align: right;
}

.bb-tug-bar {
  display: flex;
  height: 12px;
  border-radius: 6px;
  overflow: hidden;
}

.bb-tug-fill {
  display: block;
  height: 100%;
  transition: width 200ms ease-out;
}

@media (prefers-reduced-motion: reduce) {
  .bb-tug-fill {
    transition: none;
  }
}
.bb-tug-sub {
  display: flex;
  justify-content: space-between;
  gap: var(--s-2, 8px);
  font: 400 11px/1.3 var(--theme-font-family, "Inter", sans-serif);
  color: var(--c-text-muted);
}

.bb-tug-sub span:first-child {
  text-align: left;
}

.bb-tug-sub span:last-child {
  text-align: right;
}

.bb-tug-sub span:nth-child(2) {
  text-align: center;
  flex: 1 1 auto;
}

.qdnapro-battle-bar--rank {
  display: flex;
  align-items: center;
  gap: var(--s-3, 10px);
}

.bb-rank-bars {
  display: flex;
  align-items: flex-end;
  gap: 3px;
  height: 26px;
  flex: 0 0 auto;
}

.bb-rank-mini {
  display: block;
  width: 8px;
  border-radius: 2px;
}

.bb-rank-info {
  flex: 1 1 auto;
  min-width: 0;
}

.bb-rank-line1 {
  font: 600 13px/1.3 var(--theme-font-family, "Inter", sans-serif);
  color: var(--c-text-heading);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bb-rank-value {
  font-weight: 700;
}

.bb-rank-line2 {
  margin-top: 2px;
  font: 400 11px/1.3 var(--theme-font-family, "Inter", sans-serif);
  color: var(--c-text-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bb-rank-chevron {
  flex: 0 0 auto;
  font-size: 18px;
  line-height: 1;
  color: var(--c-text-muted);
}

.qdnapro-battle-bar--chip {
  display: inline-flex;
  align-items: center;
  background: color-mix(in srgb, var(--bb-chip-accent, var(--c-brand-purple)) 14%, var(--c-chip-purple-bg));
  border-radius: var(--r-pill, 999px);
  padding: 3px 10px;
}

.bb-chip-label {
  font: 600 12px/1.2 var(--theme-font-family, "Inter", sans-serif);
  color: var(--bb-chip-text, var(--c-chip-purple-text));
  white-space: nowrap;
}

/* De sheet wordt bij openen naar <body> geportald (zie _show). Container is
   position:fixed (NIET transform — dat zou de fixed kinderen vangen) zodat z-index
   geldt en hij een stacking-context op 1000 maakt; de fixed scrim/paneel blijven
   viewport-relatief. */
.qdnapro-bottom-sheet {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.qdnapro-bottom-sheet.is-visible {
  display: block;
}

/* ÉÉN scrim-object dekt het HELE scherm — inclusief de iOS safe-areas (boven +
   onder), want position:fixed + inset:0 is viewport-relatief met viewport-fit=
   cover. Het paneel ligt erbovenop (later in de DOM) en wordt dus niet gedimd.
   Eén object = één uniforme dim, geen safe-area-trucs, geen timing-race. [Jan 30.06.2026] */
.qdnapro-bottom-sheet .bs-scrim {
  position: fixed;
  inset: 0;
  background: var(--c-black-45);
  /* INSTANT dim — geen opacity-transitie. De scrim is er zodra de sheet zichtbaar
     is (display:block via .is-visible) en verdwijnt ineens bij sluiten. Bewust geen
     animatie: een geanimeerde opacity op een safe-area-kruisend fixed element wordt
     door iOS WKWebView in de safe-area met andere timing gecomposit (lag). Het
     paneel slidet wel. [Jan 30.06.2026] */
}

.qdnapro-bottom-sheet .bs-panel {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1; /* boven de scrim (zelfde stacking-context) */
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  max-height: 86%;
  background: var(--c-bg-card);
  border-radius: 32px 32px 0 0;
  /* Inline padding as a custom property so anything that has to CANCEL it (the
     full-bleed .bs-dialog-image) stays in step with variants that change it — the
     reading variant raises it to 16px. A hardcoded negative margin would silently
     be wrong on those variants. [Kim 31.07.2026] */
  --bs-pad-x: 8px;
  padding: 4px var(--bs-pad-x) 0;
  box-shadow: 0 -10px 34px rgba(0, 0, 0, 0.16);
  transform: translateY(100%);
  /* Same timing as the scrim (no delay) — they start together so the panel sliding
     up and the screen darkening read as one motion. will-change keeps the slide on
     its own GPU layer (smooth on iOS, no jank). */
  transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
  outline: none;
}

.qdnapro-bottom-sheet.is-open .bs-panel {
  transform: translateY(0);
}

.qdnapro-bottom-sheet .bs-handle-zone {
  padding: 10px 0 24px;
  margin: 0 -16px; /* full-width grab target */
  cursor: grab;
  touch-action: none; /* let the pointer-drag own the gesture */
  flex-shrink: 0;
}

.qdnapro-bottom-sheet .bs-grab {
  width: 38px;
  height: 5px;
  border-radius: var(--r-pill);
  background: var(--c-grey-300);
  margin: 0 auto;
}

.qdnapro-bottom-sheet .bs-header {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 4px 0 12px;
  flex-shrink: 0;
}

.qdnapro-bottom-sheet .bs-header-text {
  flex: 1;
  min-width: 0;
}

.qdnapro-bottom-sheet .bs-title {
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
  color: var(--c-text-heading);
}

.qdnapro-bottom-sheet .bs-subtitle {
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  text-align: center;
  color: var(--c-text-muted);
  margin-top: 2px;
}

.qdnapro-bottom-sheet .bs-header:has(.bs-close) .bs-header-text {
  padding-left: 42px;
}

.qdnapro-bottom-sheet .bs-close {
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  border: none;
  border-radius: var(--r-pill);
  background: var(--c-black-06);
  color: var(--c-text-muted);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.qdnapro-bottom-sheet .bs-close:active {
  background: var(--c-black-12);
}

.qdnapro-bottom-sheet .bs-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  display: flex;
  flex-direction: column;
  gap: 8px;
  /* REVERTED 13.07.2026 (Kim): the global padding-bottom 0 made the button
     sheets (edit-exit confirm) sit cramped against the bottom edge, so the
     base keeps its breathing room + iOS safe-area again. ONLY the reading
     variant (further down) keeps the deliberate overflow feel at 0.
     24px fixed breathing room + safe-area for the home indicator. [Kim 15.07.2026] */
  padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px));
  /* A bottom sheet must NEVER show a visible scrollbar — content still scrolls.
     Flat scrollbar-hide (the qdna-scrollbar-hidden mixin can't be used here: this
     partial is copied verbatim to the PWA). */
  scrollbar-width: none; /* Firefox */
  -ms-overflow-style: none; /* old Edge/IE */
}

.qdnapro-bottom-sheet .bs-body::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none; /* Chrome / Safari */
}

/* Segment controls inside the body should size to content and center — not stretch full-width. */
.qdnapro-bottom-sheet .bs-body > qdnapro-segment {
  align-self: center;
}

/* Auto-card: buttons placed directly in the sheet body (not inside a group) always get
   a card frame — first button gets top corners, last gets bottom corners. This enforces
   the design rule that buttons are NEVER shown naked on the sheet surface. */
.qdnapro-bottom-sheet .bs-body > qdnapro-bottom-sheet-button {
  background: var(--c-grey-50);
}

.qdnapro-bottom-sheet.bs-variant-purple .bs-body > qdnapro-bottom-sheet-button {
  background: var(--c-white-14);
}

.qdnapro-bottom-sheet .bs-body > qdnapro-bottom-sheet-button:first-of-type {
  border-radius: 24px 24px 0 0;
}

.qdnapro-bottom-sheet .bs-body > qdnapro-bottom-sheet-button:last-of-type {
  border-radius: 0 0 24px 24px;
}

.qdnapro-bottom-sheet .bs-body > qdnapro-bottom-sheet-button:only-of-type {
  border-radius: 24px;
}

/* Purple variant — for action menus (the PWA's purple bottom sheets). Uses the fixed
   primitive --c-purple-500 (NOT --c-brand-purple, which lifts to light purple in dark
   mode — the sheet must stay purple). */
.qdnapro-bottom-sheet.bs-variant-purple .bs-panel {
  background: var(--c-purple-500);
}

.qdnapro-bottom-sheet.bs-variant-purple .bs-grab {
  background: var(--c-white-45);
}

.qdnapro-bottom-sheet.bs-variant-purple .bs-title {
  color: var(--c-text-on-action);
}

.qdnapro-bottom-sheet.bs-variant-purple .bs-subtitle {
  color: var(--c-white-45);
}

.qdnapro-bottom-sheet.bs-variant-purple .bs-close {
  background: var(--c-white-14);
  color: var(--c-text-on-action);
}

/* Glass variant — a dark, translucent, blurred panel (iOS/WhatsApp emoji-picker
   look). The scrim stays the normal dim; the panel itself is the frosted layer.
   Content on top is white. Consumers that want a glass surface (e.g.
   qdnapro-emoji-sheet) opt in with variant="glass". */
.qdnapro-bottom-sheet.bs-variant-glass .bs-panel {
  background: rgba(38, 38, 44, 0.72);
  backdrop-filter: blur(30px) saturate(160%);
  -webkit-backdrop-filter: blur(30px) saturate(160%);
  color: var(--c-text-on-action);
  box-shadow: 0 -10px 34px rgba(0, 0, 0, 0.28);
}

.qdnapro-bottom-sheet.bs-variant-glass .bs-grab {
  background: var(--c-white-45);
}

.qdnapro-bottom-sheet.bs-variant-glass .bs-title {
  color: #fff;
}

.qdnapro-bottom-sheet.bs-variant-glass .bs-subtitle {
  color: var(--c-white-45);
}

/* Solid fallback where backdrop-filter is unsupported (old WebViews). */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .qdnapro-bottom-sheet.bs-variant-glass .bs-panel {
    background: var(--c-grey-800);
  }
}
/* Reading variant — for text-heavy content (news items, briefings, questionnaire
   previews). Orthogonal to purple/glass: only the panel breathing-room + loose-text
   size change, the surface colours stay the base white card. [Kim 13.07.2026]
   Roomier horizontal panel padding (16px vs the base 8px, which is tuned for
   button-row sheets and stays unchanged). */
.qdnapro-bottom-sheet.bs-variant-reading .bs-panel {
  --bs-pad-x: 16px;
  padding: 4px var(--bs-pad-x) 0;
}

/* Body stays edge-to-edge inside that roomier panel (no horizontal padding) and
   runs to the bottom edge (matches the global base, kept explicit for clarity). */
.qdnapro-bottom-sheet.bs-variant-reading .bs-body {
  padding-left: 0;
  padding-right: 0;
  padding-bottom: 0;
}

/* 16px is the loose-text reading size, applied ONLY to text that opts in with the
   .bs-text wrapper — deliberately NOT to every .bs-body child. WYSIWYG briefing HTML
   brings its own sizes from the editor and must never be forced to 16px, so it is
   left untouched (it carries no .bs-text). [Kim 13.07.2026] */
.qdnapro-bottom-sheet.bs-variant-reading .bs-body .bs-text {
  font-size: 16px;
  line-height: 1.5;
}

/* ── Slider (`slider`) ─────────────────────────────────────────────────────────────
   The body becomes a horizontal pager: `slot="page"` children move into a track and a
   dots strip lands under them. The looks + behaviour are SHARED with qdnapro-popover
   (.qdna-pager-* in _design-tokens.scss + window.QdnaPager), because the app swaps
   between those two shells per platform — phone gets the sheet, >=1024px the popover —
   and a pager that only worked in one of them would be copied into the other within a
   day. Only the two rules below are sheet-specific. [Kim 04.09.2026] */
/* The reading variant deliberately runs its body to the bottom edge (padding-bottom:0),
   so a dots strip would sit on the panel edge / under the iOS home indicator. Give the
   breathing room back HERE rather than in every consumer that combines the two. */
.qdnapro-bottom-sheet.bs-variant-reading .qdna-pager-dots {
  padding-bottom: calc(14px + env(safe-area-inset-bottom, 0px));
}

/* Dialog variant — ALWAYS purple: a purple illustrated dialog (illustration + bold
   white title + white body text + optional consumer body content + a flexible footer).
   Serves both the destructive confirm (reset-units) AND a blocking notice (finish
   audit with mandatory units still open). `variant="confirm"` is an alias → same
   .bs-variant-dialog class. Composed from qdnapro-illustration + qdnapro-button using
   its own on-purple / on-purple-solid TYPES (see _button.scss) — layout only, no
   bespoke colour overrides. [Kim 15.07.2026] */
.qdnapro-bottom-sheet.bs-variant-dialog .bs-panel {
  background: var(--c-purple-500);
}

.qdnapro-bottom-sheet.bs-variant-dialog .bs-grab {
  background: var(--c-white-45);
}

.qdnapro-bottom-sheet .bs-body.bs-dialog {
  align-items: center;
  text-align: center;
  gap: 0;
  padding-top: 8px;
}

/* Gap illustration → title. Target the TAG, not .bs-dialog-illustration:
   qdnapro-illustration wipes its own className on render (this.className = …), so a
   class hook is dead by the time it paints and the gap collapsed to 0 ("cramped").
   [Kim 15.07.2026] */
.qdnapro-bottom-sheet .bs-body.bs-dialog > qdnapro-illustration {
  display: block;
  margin: 0 auto 20px;
}

/* Full-bleed hero image (`image` attr), the alternative to the centered illustration.
   It MUST reach the panel edges: the celebration illustrations have their own purple
   background baked in, matching the dialog surface, so the artwork flows into the panel
   and the edge of its shape is invisible. Any padding turns that edge into a seam.
   The inline margins cancel the panel's own --bs-pad-x (never a hardcoded number:
   the reading variant raises that padding to 16px, and a fixed -8px would then leave
   the image 8px short on each side). The negative top margin eats most of the
   handle-zone's 24px breathing room so the image sits just under the grab handle.
   The panel's 32px top rounding is not clipped away: the artwork's own corners are
   transparent, so nothing pokes out. An opaque image WOULD need clipping here.
   [Kim 31.07.2026] */
.qdnapro-bottom-sheet .bs-body.bs-dialog > .bs-dialog-image {
  display: block;
  align-self: stretch;
  width: calc(100% + 2 * var(--bs-pad-x));
  margin: -24px calc(-1 * var(--bs-pad-x)) 4px;
}

/* `centered` — wide-screen modifier: phone keeps the bottom sheet, tablet gets a
   centered dialog, from the same element. Below 768px this block does not exist, so a
   phone is untouched. 768px is the breakpoint the PWA documents module already uses for
   its tablet layout, not a new number. [Kim 31.07.2026]

   Centering is done with auto inline margins and a `bottom` offset, deliberately NOT
   with transform: the swipe-to-dismiss handler writes `panel.style.transform =
   translateY(...)` during a drag and clears it on release, so anything parked in
   transform would be wiped mid-gesture. This way the open/close slide and the drag keep
   working exactly as they do on a phone — dragging the dialog down still closes it. */
@media (min-width: 768px) {
  .qdnapro-bottom-sheet.bs-centered .bs-panel {
    max-width: 420px;
    margin-inline: auto;
    bottom: 7vh;
    border-radius: 32px;
    /* Shadow points outward on all sides now that it floats, instead of the
       upward-only shadow of a panel glued to the bottom edge. */
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.24);
    max-height: 80%;
  }
}
.qdnapro-bottom-sheet .bs-dialog-title {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--c-text-on-action);
}

.qdnapro-bottom-sheet .bs-dialog-text {
  font-size: 15px;
  line-height: 1.6;
  color: var(--c-white-70);
  margin-top: 12px;
  max-width: 320px;
}

/* TONED DIALOGS (tone="danger" / tone="success") — the same dialog in a different
   meaning. A tone is a MEANING, not a colour picker: "this costs you something you cannot
   get back", or "this went well". Anything else stays the purple dialog.

   Everything below this comment except the two colour blocks is SHARED by both tones, so
   they cannot drift apart: full-white text, a 28px title, stacked buttons.

   COLOURS (03.09.2026): Kim's exact set for the Pulse verdict sheets, as design tokens
   --c-dialog-<tone>-surface / -card / -button / -grab, shared with the popover dialog and
   the on-<tone>-solid button types so every toned dialog is one family. A third tone,
   "warning" (orange), was added for the half-right verdict. Text stays FULL white. Kim
   measured and accepted the contrast as-is (green surface 2.4:1 under the 28px title,
   green card 4.1:1 under body text); do not "improve" these without her. The grab handle
   is now a solid colour from the set, no longer a 45% shade. [Kim 18.08.2026 / 03.09.2026] */
.qdnapro-bottom-sheet.bs-variant-dialog.bs-tone-danger .bs-panel {
  background: var(--c-dialog-danger-surface);
}

.qdnapro-bottom-sheet.bs-variant-dialog.bs-tone-danger .bs-grab {
  background: var(--c-dialog-danger-grab);
}

.qdnapro-bottom-sheet.bs-variant-dialog.bs-tone-success .bs-panel {
  background: var(--c-dialog-success-surface);
}

.qdnapro-bottom-sheet.bs-variant-dialog.bs-tone-success .bs-grab {
  background: var(--c-dialog-success-grab);
}

.qdnapro-bottom-sheet.bs-variant-dialog.bs-tone-warning .bs-panel {
  background: var(--c-dialog-warning-surface);
}

.qdnapro-bottom-sheet.bs-variant-dialog.bs-tone-warning .bs-grab {
  background: var(--c-dialog-warning-grab);
}

.qdnapro-bottom-sheet.bs-tone-danger .bs-dialog-title,
.qdnapro-bottom-sheet.bs-tone-danger .bs-dialog-text,
.qdnapro-bottom-sheet.bs-tone-success .bs-dialog-title,
.qdnapro-bottom-sheet.bs-tone-success .bs-dialog-text,
.qdnapro-bottom-sheet.bs-tone-warning .bs-dialog-title,
.qdnapro-bottom-sheet.bs-tone-warning .bs-dialog-text {
  color: var(--c-text-on-action);
}

/* Bigger than the purple dialog's 22px: a toned dialog has no illustration competing for
   attention, so the title carries the weight. 28px until 03.09.2026; Kim's verdict-sheet
   design has it at 24px next to a 40px icon, and she asked for exactly that. */
.qdnapro-bottom-sheet.bs-tone-danger .bs-dialog-title,
.qdnapro-bottom-sheet.bs-tone-success .bs-dialog-title,
.qdnapro-bottom-sheet.bs-tone-warning .bs-dialog-title {
  font-size: 24px;
}

/* Buttons STACKED, cancel on top, confirm full width below. Side by side gives the two
   answers equal visual weight; stacked puts the consequence under your thumb and makes it
   a deliberate press. The purple dialog keeps its row. Cancel comes first in the DOM, so
   plain `column` already puts it on top. */
.qdnapro-bottom-sheet.bs-tone-danger .bs-dialog-footer,
.qdnapro-bottom-sheet.bs-tone-success .bs-dialog-footer,
.qdnapro-bottom-sheet.bs-tone-warning .bs-dialog-footer {
  flex-direction: column;
  gap: 4px;
}

/* Badge — the alternative to the illustration, for a dialog that has to read as a signal
   rather than a scene. Free-standing by default and large; `badge-circle` puts it in a
   filled disc instead. The circle keeps its own sizing so the art always lands at 55%. */
.qdnapro-bottom-sheet .bs-body.bs-dialog > .bs-dialog-badge {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 4px auto 16px;
}

.qdnapro-bottom-sheet .bs-body.bs-dialog > .bs-dialog-badge-circle {
  --bs-badge-size: 96px;
  width: var(--bs-badge-size);
  height: var(--bs-badge-size);
  margin-bottom: 20px;
  border-radius: 50%;
  background: var(--c-purple-400);
}

/* Same selector SHAPE as the default above, not a shorter one: the default is four
   classes deep and a plain `.bs-tone-danger .bs-dialog-badge-circle` loses the
   specificity race, which left the badge purple on a red sheet the first time. */
.qdnapro-bottom-sheet.bs-tone-danger .bs-body.bs-dialog > .bs-dialog-badge-circle {
  background: var(--c-dialog-danger-card);
}

.qdnapro-bottom-sheet.bs-tone-success .bs-body.bs-dialog > .bs-dialog-badge-circle {
  background: var(--c-dialog-success-card);
}

.qdnapro-bottom-sheet.bs-tone-warning .bs-body.bs-dialog > .bs-dialog-badge-circle {
  background: var(--c-dialog-warning-card);
}

/* Free-standing art is roughly twice the size it is inside a circle. Both the lottie
   element and the icon land on this class; qdnapro-lottie sizes from --ql-size, and the
   icon is capped here too so a wrong size attribute cannot blow the layout open. */
.qdnapro-bottom-sheet .bs-dialog-badge-art {
  --ql-size: 88px;
  display: block;
  width: 88px;
  height: 88px;
  color: var(--c-text-on-action);
}

.qdnapro-bottom-sheet .bs-dialog-badge-circle .bs-dialog-badge-art {
  --ql-size: calc(var(--bs-badge-size) * 0.55);
  width: calc(var(--bs-badge-size) * 0.55);
  height: calc(var(--bs-badge-size) * 0.55);
}

.qdnapro-bottom-sheet.bs-tone-danger .bs-dialog-badge-circle .bs-dialog-badge-art,
.qdnapro-bottom-sheet.bs-tone-success .bs-dialog-badge-circle .bs-dialog-badge-art,
.qdnapro-bottom-sheet.bs-tone-warning .bs-dialog-badge-circle .bs-dialog-badge-art {
  color: var(--c-text-on-action);
}

/* Consumer body content (stat rows, a notice line, etc.) sits below the illustration/
   title/text. The dialog body centers its built-ins; this wrapper stretches full-width
   and left-aligns so custom rows aren't shrink-wrapped or centered. [Kim 15.07.2026] */
.qdnapro-bottom-sheet .bs-body.bs-dialog > .bs-dialog-content {
  align-self: stretch;
  width: 100%;
  text-align: left;
  margin-top: 20px;
}

.qdnapro-bottom-sheet .bs-dialog-footer {
  display: flex;
  gap: 12px;
  flex-shrink: 0;
  /* The footer sits OUTSIDE .bs-body, so it doesn't inherit the body's bottom
     breathing room — give it the same 24px + safe-area so the buttons don't glue
     to the panel edge. [Kim 15.07.2026]

     The horizontal 16px was added 18.08.2026. The panel's own --bs-pad-x is 8px,
     tuned for button-ROW sheets where an option row is supposed to run nearly edge
     to edge. A dialog's footer is not a row of options, it is two buttons, and one
     of them is a solid fill: at 8px it reads as glued to the panel edge. Measured
     identically on the purple dialog, so this is not a danger-tone problem and the
     fix belongs on both. 8 + 16 = 24px, matching the footer's own vertical rhythm. */
  padding: 20px 16px calc(24px + env(safe-area-inset-bottom, 0px));
}

.qdnapro-bottom-sheet .bs-dialog-footer qdnapro-button {
  flex: 1;
}

/* The dialog variant is always-purple; every OTHER variant keeps the base white card.
   Combining dialog with purple/glass/reading is not supported — variant is a single
   value (same limitation the reading variant already has). */
/* ── Top placement (placement="top") ─────────────────────────────────────────────
   The SAME sheet, hinged on the TOP edge: a quick, low-commitment options menu that
   drops down from under the header its trigger sits in (Outlook's calendar view-
   switcher is the reference). A bottom sheet is the intrusive one that takes over the
   screen; this is the light one for a handful of options. [Kim 29.07.2026]

   ONLY geometry + direction flip here — the surface variants (purple / glass /
   reading) are untouched and combine freely. Horizontal padding is deliberately left
   to the base (8px) or the reading variant (16px); only the vertical padding changes,
   because the grab-handle moved out of the top.

   --bs-top is set inline by _applyTopOffset(): the `anchor` element's bottom edge, or
   the literal `offset-top`. Absent → hang just below the notch. */
.qdnapro-bottom-sheet.bs-placement-top .bs-panel {
  top: var(--bs-top, env(safe-area-inset-top, 0px));
  bottom: auto;
  /* Height follows the content; this cap only bites on a long list (and gives back
     whatever the header above already took). */
  max-height: calc(86% - var(--bs-top, 0px));
  /* Square, NOT rounded — the Outlook reference: the top sheet runs the panel
     straight into the header it hangs from, no corner radius at all. This is the
     DEFAULT for the top sheet (not an attribute): it has no other consumers yet
     than the two agenda menus, and flush corners are the intended look. The
     bottom sheet's own rounding (32px 32px 0 0, above) is untouched. [Kim 29.07.2026] */
  border-radius: 0;
  /* Shadow falls DOWNWARD, away from the edge it hangs on. */
  box-shadow: 0 10px 34px rgba(0, 0, 0, 0.16);
  /* Parked behind its own edge while closed (base sheet uses +100%). */
  transform: translateY(-100%);
  padding-top: 16px;
}

.qdnapro-bottom-sheet.bs-placement-top.is-open .bs-panel {
  transform: translateY(0);
}

/* The scrim must start where the panel starts, NOT cover the whole screen (the base
   .bs-scrim above is inset:0 for the bottom sheet, which pins the scrim under the
   full viewport including any header the sheet hangs from). Fix lives HERE, at the
   source, rather than the consumer reaching for a z-index war it can't win: a header
   living inside its own stacking-context ancestor can never out-stack a scrim
   portalled straight onto <body>, no matter what z-index it's given. Starting the
   scrim itself at --bs-top means the header simply falls OUTSIDE the dimmed area —
   no z-index needed anywhere. Same fallback chain as the panel's own `top` above.
   Consequence: a tap on the header no longer closes the sheet (it's outside the
   scrim) — intended for this pattern, the header stays usable; scrim-tap, Esc and
   the handle remain the ways to dismiss. [Kim 29.07.2026] */
.qdnapro-bottom-sheet.bs-placement-top .bs-scrim {
  top: var(--bs-top, env(safe-area-inset-top, 0px));
}

/* Come out from UNDER the header, never OVER it (Kim 29.07.2026: "voelt veel
   natuurlijker"). The panel opens by sliding down from translateY(-100%), which
   parks it one panel-height ABOVE its own top edge — straight on top of the header
   it is supposed to hang under, and it paints there because the sheet sits on
   <body>. Clipping the HOST at --bs-top kills that overlap for good: the host is
   already `position: fixed; inset: 0`, so its box IS the viewport and this clip is
   in viewport coordinates, which means NOTHING about the panel's or scrim's own
   geometry has to change. It also fixes the same overlap while DRAGGING the sheet
   closed by hand, which a reveal-animation on the panel alone would not.
   The scrim rule above stays as a belt-and-braces: if clip-path ever fails, the
   header still is not dimmed. */
.qdnapro-bottom-sheet.bs-placement-top {
  clip-path: inset(var(--bs-top, env(safe-area-inset-top, 0px)) 0 0 0);
}

/* Drop the panel's own compositing hint for top placement. `will-change: transform`
   promotes it to its own GPU layer, and a composited layer is exactly the case where
   iOS WKWebView has historically escaped an ancestor's clip-path — which would bring
   the overlap right back on the one platform that matters most here. The slide is a
   single short transform on a small panel, so it does not need the hint. */
.qdnapro-bottom-sheet.bs-placement-top .bs-panel {
  will-change: auto;
}

/* Grab-handle to the BOTTOM of the panel via flex order ONLY — the DOM stays as
   rendered, so render() and the pointer-drag binding remain shared with the bottom
   sheet. Every other panel child keeps order:0, hence its DOM order (header, body,
   and the dialog footer if there is one). */
.qdnapro-bottom-sheet.bs-placement-top .bs-handle-zone {
  order: 9;
  padding: 16px 0 12px;
}

/* No home-indicator to clear up here — the handle-zone underneath is the breathing
   room, so drop the base's 24px + safe-area-inset-bottom. */
.qdnapro-bottom-sheet.bs-placement-top .bs-body {
  padding-bottom: 0;
}

/* ── no-handle (boolean attr) ─────────────────────────────────────────────────────
   Hides the grab handle entirely — Outlook has none on its calendar quick menus,
   first requested for the agenda top sheets. Kept as a CLASS on the host (same
   pattern as bs-placement-top / bs-variant-purple), and the handle-zone element
   stays in the DOM (display:none only): the pointer-drag listener binds to
   .bs-handle-zone in the JS and would throw on null if it were removed. [Kim 29.07.2026] */
.qdnapro-bottom-sheet.bs-no-handle .bs-handle-zone {
  display: none;
}

/* The handle-zone doubled as this edge's breathing room — hiding it would otherwise
   glue the adjacent content straight to the panel edge, so give the space back:
   - bottom placement: the zone sits ABOVE the header/body (panel's top edge) → pad
     the panel's top.
   - top placement: the zone sits BELOW the body (flex order:9 above, panel's bottom
     edge) → pad the body's bottom, so the last option row keeps its breathing room. */
.qdnapro-bottom-sheet.bs-no-handle:not(.bs-placement-top) .bs-panel {
  padding-top: 16px;
}

.qdnapro-bottom-sheet.bs-placement-top.bs-no-handle .bs-body {
  padding-bottom: 16px;
}

/* Explainer "bullet" row: [icon/badge] + white text, used inside .bs-dialog-content
   for things like "what does this badge mean" (PWA documents badge-info dialog,
   28.07.2026). NOT a new component — just a consumer-side row wrapping whatever icon
   the consumer passes (e.g. <qdnapro-status-badge favorite size="small">) plus a text
   node. SAME class name + rule as the popover's dialog-arrow counterpart (see
   _popover.scss) so a sheet on phone and a popover on tablet render byte-identical
   content. The icon aligns to the TOP of the text block (flex-start) rather than a
   strict typographic baseline — the icon here is a status-badge pill, not a glyph, so
   there is no single baseline to hook into; top-aligning is the closest match to
   "icon next to the first text line" when the text can wrap to 2 lines. */
.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-bullet {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  color: var(--c-white-90, rgba(255, 255, 255, 0.9));
  font-size: 14px;
  line-height: 1.5;
  text-align: left;
}

.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-bullet + .bs-dialog-bullet {
  margin-top: 14px;
}

.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-bullet > qdnapro-status-badge {
  flex-shrink: 0;
}

/* ── Title art (title-lottie / title-lottie-name / title-icon) ─────────────────────────
   A SMALL animated glyph right next to the heading, as on the Pulse verdict sheets
   ("Correct!" + a check). The title row centres text + art together; the art is 40px
   (Kim's design: 24px title, 40x40 icon). The Lottie loops while the sheet is open - a
   single play finished during the slide-in and Kim saw a still icon. [Kim 03.09.2026] */
.qdnapro-bottom-sheet .bs-dialog-title-with-art {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.qdnapro-bottom-sheet .bs-dialog-title-art {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
}

.qdnapro-bottom-sheet .bs-dialog-title-lottie {
  --ql-size: 40px;
  display: block;
  width: 40px;
  height: 40px;
}

.qdnapro-bottom-sheet .bs-dialog-title-icon {
  color: var(--c-text-on-action);
}

/* ── Float slot (slot="float") ─────────────────────────────────────────────────────────
   Children marked slot="float" are parked here, ABOVE the panel's top edge, right-aligned
   and 14px clear of it (Kim's design: the points pill sits in the gap between the card
   photo and the sheet). Absolute inside the fixed panel, so it travels with the slide-in
   and with a swipe-down. pointer-events off: it is a label, not a control, and must not
   block the scrim behind it. The panel has no overflow clipping (only .bs-body scrolls),
   so nothing here is cut off. [Kim 03.09.2026] */
.qdnapro-bottom-sheet .bs-float {
  position: absolute;
  right: 10px;
  bottom: calc(100% + 14px);
  display: flex;
  align-items: center;
  gap: 8px;
  pointer-events: none;
}

/* The pill: the tone's SURFACE colour, so it reads as a piece of the sheet floating free.
   49px tall like the design, full radius, white bold 20px. The purple dialog gets the
   purple surface for the same reason. */
.qdnapro-bottom-sheet .bs-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 49px;
  padding: 0 18px 0 14px;
  border-radius: var(--r-pill, 999px);
  background: var(--c-purple-500);
  color: var(--c-text-on-action);
  font-size: 20px;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}

.qdnapro-bottom-sheet.bs-tone-danger .bs-pill {
  background: var(--c-dialog-danger-surface);
}

.qdnapro-bottom-sheet.bs-tone-success .bs-pill {
  background: var(--c-dialog-success-surface);
}

.qdnapro-bottom-sheet.bs-tone-warning .bs-pill {
  background: var(--c-dialog-warning-surface);
}

/* ── Verdict cards (.bs-dialog-card) ───────────────────────────────────────────────────
   One rounded block per answer option on a toned dialog: a bold head (verdict icon +
   option text) and the explanation under it, white on the tone's CARD colour (the darker
   fill from Kim's set). data-verdict="right|wrong" picks the icon - Kim's own check and
   cross SVGs, inlined so they are there offline - and, on the warning tone only, a
   slightly redder fill for a wrong option (design choice, see the tokens). Lives inside
   .bs-dialog-content like the bullet rows; 8px between cards as in the design. */
.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-card {
  border-radius: 12px;
  padding: 14px 12px 16px;
  background: var(--c-purple-700);
  color: var(--c-text-on-action);
  font-size: 15px;
  line-height: 1.75;
  text-align: left;
}

.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-card + .bs-dialog-card {
  margin-top: 8px;
}

.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-card-head {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
  margin-bottom: 10px;
}

.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-card-icon {
  flex: 0 0 auto;
  width: 21px;
  height: 21px;
  background: no-repeat center/contain;
}

.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-card[data-verdict=right] .bs-dialog-card-icon {
  background-image: url("data:image/svg+xml,%3Csvg width='21' height='21' viewBox='0 0 21 21' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.4413 20.0986C15.7747 20.0986 20.0984 15.775 20.0984 10.4415C20.0984 5.10805 15.7747 0.784424 10.4413 0.784424C5.10781 0.784424 0.78418 5.10805 0.78418 10.4415C0.78418 15.775 5.10781 20.0986 10.4413 20.0986Z' fill='%2358B992'/%3E%3Cpath d='M10.4414 20.8828C4.684 20.8828 0 16.1988 0 10.4414C0 4.684 4.684 0 10.4414 0C16.1988 0 20.8828 4.684 20.8828 10.4414C20.8828 16.1988 16.1988 20.8828 10.4414 20.8828ZM10.4414 1.56863C5.54894 1.56863 1.56863 5.54894 1.56863 10.4414C1.56863 15.3339 5.54894 19.3142 10.4414 19.3142C15.3339 19.3142 19.3142 15.3339 19.3142 10.4414C19.3142 5.54894 15.3339 1.56863 10.4414 1.56863Z' fill='%232F5D4A'/%3E%3Cpath d='M9.26739 14.2197C8.93492 14.2197 8.62237 14.0902 8.38732 13.8551L5.83908 11.3069C5.53281 11.0006 5.53281 10.504 5.83908 10.1976C6.14536 9.89136 6.64198 9.89136 6.94826 10.1976L9.26732 12.5167L13.9342 7.84979C14.2405 7.5436 14.737 7.54352 15.0434 7.84979C15.3497 8.15607 15.3497 8.6527 15.0434 8.95905L10.1473 13.855C9.91241 14.0902 9.59986 14.2197 9.26739 14.2197Z' fill='white'/%3E%3C/svg%3E");
}

.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-card[data-verdict=wrong] .bs-dialog-card-icon {
  background-image: url("data:image/svg+xml,%3Csvg width='21' height='21' viewBox='0 0 21 21' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.1902 19.6146C15.3953 19.6146 19.6149 15.3951 19.6149 10.19C19.6149 4.98492 15.3953 0.765381 10.1902 0.765381C4.98517 0.765381 0.765625 4.98492 0.765625 10.19C0.765625 15.3951 4.98517 19.6146 10.1902 19.6146Z' fill='%23FF3A30'/%3E%3Cpath d='M10.19 20.3801C4.57124 20.3801 0 15.8089 0 10.19C0 4.57124 4.57124 0 10.19 0C15.8089 0 20.3801 4.57124 20.3801 10.19C20.3801 15.8089 15.8089 20.3801 10.19 20.3801ZM10.19 1.53079C5.41536 1.53079 1.53086 5.41528 1.53086 10.19C1.53086 14.9647 5.41536 18.8492 10.19 18.8492C14.9647 18.8492 18.8492 14.9647 18.8492 10.19C18.8492 5.41528 14.9648 1.53079 10.19 1.53079Z' fill='%237C1914'/%3E%3Cpath d='M11.2726 10.19L13.9662 7.49641C14.2651 7.19751 14.2651 6.71284 13.9662 6.41394C13.6672 6.11496 13.1826 6.11512 12.8837 6.41386L10.19 9.1075L7.49641 6.41386C7.19751 6.11496 6.71284 6.11496 6.41386 6.41394C6.11496 6.71284 6.11496 7.19751 6.41394 7.49641L9.10757 10.19L6.41394 12.8835C6.11504 13.1824 6.11496 13.6671 6.41386 13.966C6.56335 14.1155 6.75923 14.1902 6.9551 14.1902C7.15097 14.1902 7.34693 14.1154 7.49634 13.966L10.19 11.2724L12.8836 13.966C13.033 14.1155 13.229 14.1902 13.4248 14.1902C13.6207 14.1902 13.8167 14.1154 13.9661 13.966C14.265 13.6671 14.265 13.1824 13.9661 12.8835L11.2726 10.19Z' fill='white'/%3E%3C/svg%3E");
}

.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-card-text {
  display: block;
}

.qdnapro-bottom-sheet.bs-tone-danger .bs-dialog-content .bs-dialog-card {
  background: var(--c-dialog-danger-card);
}

.qdnapro-bottom-sheet.bs-tone-success .bs-dialog-content .bs-dialog-card {
  background: var(--c-dialog-success-card);
}

.qdnapro-bottom-sheet.bs-tone-warning .bs-dialog-content .bs-dialog-card {
  background: var(--c-dialog-warning-card);
}

.qdnapro-bottom-sheet.bs-tone-warning .bs-dialog-content .bs-dialog-card[data-verdict=wrong] {
  background: var(--c-dialog-warning-card-wrong);
}

/* data-verdict="missed": right, but the reader did NOT pick it. Kim 04.09.2026 - a sheet
   that only lists your own picks cannot explain "partly right" when every card on screen
   is green. Same language the answer rows on the card already use for that state
   (data-pulse-stand="goed-gemist"): NO filled block, a dashed outline and a dashed tick.
   The fill stays the tone's own card colour so the block still belongs to the sheet, and
   the dashed border is what separates "the truth" from "what you chose". */
.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-card[data-verdict=missed] {
  background: transparent;
  border: 2px dashed rgba(255, 255, 255, 0.7);
  padding: 12px 10px 14px;
}

.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-card[data-verdict=missed] .bs-dialog-card-icon {
  background-image: url("data:image/svg+xml,%3Csvg width='21' height='21' viewBox='0 0 21 21' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='10.5' cy='10.5' r='9.3' stroke='white' stroke-width='1.7' stroke-dasharray='3.2 2.8'/%3E%3Cpath d='M9.26739 14.2197C8.93492 14.2197 8.62237 14.0902 8.38732 13.8551L5.83908 11.3069C5.53281 11.0006 5.53281 10.504 5.83908 10.1976C6.14536 9.89136 6.64198 9.89136 6.94826 10.1976L9.26732 12.5167L13.9342 7.84979C14.2405 7.5436 14.737 7.54352 15.0434 7.84979C15.3497 8.15607 15.3497 8.6527 15.0434 8.95905L10.1473 13.855C9.91241 14.0902 9.59986 14.2197 9.26739 14.2197Z' fill='white'/%3E%3C/svg%3E");
}

/* The line above that group of cards ("Deze had je nog moeten kiezen"). Not a heading
   element: the dialog already owns the only h-level in this panel. */
.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-label {
  margin: 16px 0 8px;
  color: var(--c-text-on-action);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  text-align: left;
}

.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-label:first-child {
  margin-top: 0;
}

.qdnapro-bottom-sheet-button {
  display: flex;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
  border: none;
  border-top: none;
  border-radius: var(--r-3);
  padding: 13px 16px;
  font-family: var(--theme-font-family, "Inter", sans-serif);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.2;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.14s ease, transform 0.1s ease;
}

.qdnapro-bottom-sheet-button .bsb-icon {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  margin-right: 14px;
}

.qdnapro-bottom-sheet-button .bsb-label {
  flex: 1;
  min-width: 0;
}

.qdnapro-bottom-sheet-button .bsb-check {
  display: none;
  align-items: center;
  flex-shrink: 0;
  margin-left: 12px;
}

.qdnapro-bottom-sheet-button.bsb-active .bsb-check {
  display: inline-flex;
}

.qdnapro-bottom-sheet-button .bsb-value {
  flex-shrink: 1;
  min-width: 0;
  max-width: 55%;
  margin-left: 12px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 15px;
  color: var(--c-text-muted);
}

.qdnapro-bottom-sheet-button.bsb-on-purple .bsb-value {
  color: var(--c-white-70);
}

.qdnapro-bottom-sheet-button.bsb-disabled .bsb-value {
  color: inherit;
}

.qdnapro-bottom-sheet-button.bsb-tile .bsb-value {
  display: none;
}

.qdnapro-bottom-sheet-button .bsb-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
}

.qdnapro-bottom-sheet-button .bsb-text .bsb-label {
  flex: none;
}

.qdnapro-bottom-sheet-button .bsb-sub {
  font-size: 13px;
  line-height: 1.3;
  color: var(--c-text-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-bottom-sheet-button.bsb-has-sub:not(.bsb-tile) {
  align-items: flex-start;
}

.qdnapro-bottom-sheet-button.bsb-has-sub:not(.bsb-tile) .bsb-icon {
  margin-top: -2px;
}

.qdnapro-bottom-sheet-button.bsb-on-white {
  background: transparent;
  color: var(--c-purple-700);
  border-radius: 0;
}

.qdnapro-bottom-sheet-button.bsb-on-white:hover:not(.bsb-disabled):not(.bsb-active) {
  background: var(--c-grey-50);
  border-radius: var(--r-3);
}

.qdnapro-bottom-sheet-button.bsb-on-white.is-pressed {
  background: var(--c-grey-100);
  border-radius: var(--r-3);
  transform: scale(0.985);
}

.qdnapro-bottom-sheet-button.bsb-on-white.bsb-active {
  background: transparent;
  color: var(--c-purple-700);
}

.qdnapro-bottom-sheet-button.bsb-on-white.bsb-disabled {
  background: transparent;
  color: var(--c-grey-300);
  cursor: default;
}

.qdnapro-bottom-sheet-button.bsb-on-purple {
  background: transparent;
  color: var(--c-text-on-action);
  border-radius: 0;
}

.qdnapro-bottom-sheet-button.bsb-on-purple:hover:not(.bsb-disabled):not(.bsb-active) {
  background: var(--c-white-14);
  border-radius: var(--r-3);
}

.qdnapro-bottom-sheet-button.bsb-on-purple.is-pressed {
  background: var(--c-white-22);
  border-radius: var(--r-3);
  transform: scale(0.985);
}

.qdnapro-bottom-sheet-button.bsb-on-purple.bsb-active {
  background: transparent;
  color: var(--c-text-on-action);
}

.qdnapro-bottom-sheet-button.bsb-on-purple.bsb-disabled {
  background: transparent;
  color: var(--c-white-45);
  cursor: default;
}

.qdnapro-bottom-sheet-button.bsb-tile {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 14px 8px;
  flex: 1;
  border-radius: var(--r-3);
}

.qdnapro-bottom-sheet-button.bsb-tile .bsb-icon {
  margin-right: 0;
}

.qdnapro-bottom-sheet-button.bsb-tile .bsb-label {
  flex: none;
  font-size: 12px;
  text-align: center;
  white-space: nowrap;
}

.qdnapro-bottom-sheet-button.bsb-tile .bsb-text {
  flex: none;
  align-items: center;
  gap: 1px;
  max-width: 100%;
}

.qdnapro-bottom-sheet-button.bsb-tile .bsb-sub {
  font-size: 11px;
  line-height: 1.25;
  max-width: 100%;
  text-align: center;
}

.qdnapro-bottom-sheet-button.bsb-tile .bsb-check,
.qdnapro-bottom-sheet-button.bsb-tile.bsb-active .bsb-check {
  display: none;
}

.qdnapro-bottom-sheet-button-group.bsbg-tiles {
  display: flex;
  flex-direction: row;
  gap: 6px;
}

.qdnapro-bottom-sheet-button-group.bsbg-tiles .qdnapro-bottom-sheet-button {
  border-radius: var(--r-3);
  padding: 14px 8px;
}

.qdnapro-bottom-sheet-button-group.bsbg-tiles.bsbg-on-white .bsb-tile {
  background: var(--c-bg-card);
  color: var(--c-purple-700);
}

.qdnapro-bottom-sheet-button-group.bsbg-tiles.bsbg-on-white .bsb-tile:hover:not(.bsb-disabled) {
  background: var(--c-grey-100);
}

.qdnapro-bottom-sheet-button-group.bsbg-tiles.bsbg-on-white .bsb-tile.is-pressed {
  background: var(--c-grey-100);
  transform: scale(0.97);
}

.qdnapro-bottom-sheet-button-group.bsbg-tiles.bsbg-on-purple .bsb-tile {
  background: var(--c-white-22);
  color: var(--c-text-on-action);
}

.qdnapro-bottom-sheet-button-group.bsbg-tiles.bsbg-on-purple .bsb-tile:hover:not(.bsb-disabled) {
  background: var(--c-white-28);
}

.qdnapro-bottom-sheet-button-group.bsbg-tiles.bsbg-on-purple .bsb-tile.is-pressed {
  background: var(--c-white-28);
  transform: scale(0.97);
}

.qdnapro-bottom-sheet-button.bsb-destructive {
  background: var(--c-signal-red-soft);
  color: var(--c-tag-critical-text);
  margin-top: 8px;
}

.qdnapro-bottom-sheet-button.bsb-destructive:hover:not(.bsb-disabled) {
  background: var(--c-signal-red-bg);
}

.qdnapro-bottom-sheet-button.bsb-destructive.is-pressed {
  background: var(--c-signal-red-bg);
  transform: scale(0.985);
}

.qdnapro-bottom-sheet-button.bsb-destructive.bsb-disabled {
  background: var(--c-grey-50);
  color: var(--c-grey-400);
  cursor: default;
}

.qdnapro-bottom-sheet-button.bsb-warning {
  background: var(--c-warning-bright-bg);
  color: var(--c-warning-bright-text);
  margin-top: 8px;
}

.qdnapro-bottom-sheet-button.bsb-warning:hover:not(.bsb-disabled) {
  background: var(--c-signal-yellow-bg);
}

.qdnapro-bottom-sheet-button.bsb-warning.is-pressed {
  background: var(--c-signal-yellow-bg);
  transform: scale(0.985);
}

.qdnapro-bottom-sheet-button.bsb-warning.bsb-disabled {
  background: var(--c-grey-50);
  color: var(--c-grey-400);
  cursor: default;
}

.qdnapro-bottom-sheet-button.bsb-success {
  background: var(--c-signal-green-100);
  color: var(--c-signal-green-text);
  margin-top: 8px;
}

.qdnapro-bottom-sheet-button.bsb-success:hover:not(.bsb-disabled) {
  background: var(--c-signal-green-bg);
}

.qdnapro-bottom-sheet-button.bsb-success.is-pressed {
  background: var(--c-signal-green-bg);
  transform: scale(0.985);
}

.qdnapro-bottom-sheet-button.bsb-success.bsb-disabled {
  background: var(--c-grey-50);
  color: var(--c-grey-400);
  cursor: default;
}

.qdnapro-bottom-sheet-button-group {
  display: block;
  box-sizing: border-box;
  border-radius: var(--r-3);
  padding: 6px;
}

.qdnapro-bottom-sheet-button-group.bsbg-on-white {
  background: var(--c-grey-50);
}

.qdnapro-bottom-sheet-button-group.bsbg-on-purple {
  background: var(--c-white-14);
}

.qdnapro-bottom-sheet-button-group .qdnapro-bottom-sheet-button {
  border-radius: var(--r-row);
  padding: 11px 16px;
  border-top: none;
}

.qdnapro-bottom-sheet-button-group .qdnapro-bottom-sheet-button + .qdnapro-bottom-sheet-button {
  margin-top: 2px;
  border-top: none;
}

.qdnapro-bottom-sheet-button-group .qdnapro-bottom-sheet-button.bsb-on-white + .qdnapro-bottom-sheet-button.bsb-on-white,
.qdnapro-bottom-sheet-button-group .qdnapro-bottom-sheet-button.bsb-on-purple + .qdnapro-bottom-sheet-button.bsb-on-purple {
  border-top: none;
}

.qdnapro-bottom-sheet-button-group .qdnapro-bottom-sheet-button:not(.is-pressed):not(:hover) {
  background: transparent;
}

.qdnapro-bottom-sheet-button-group.bsbg-on-white .qdnapro-bottom-sheet-button.bsb-on-white:hover:not(.bsb-disabled):not(.bsb-active) {
  background: var(--c-grey-100);
}

.qdnapro-bottom-sheet-button-group.bsbg-on-white .qdnapro-bottom-sheet-button.bsb-on-white.is-pressed {
  background: var(--c-grey-200);
}

.qdnapro-bottom-sheet-button-group.bsbg-on-purple .qdnapro-bottom-sheet-button {
  color: var(--c-text-on-action);
}

.qdnapro-bottom-sheet-button-group.bsbg-on-purple .qdnapro-bottom-sheet-button.bsb-active {
  background: transparent;
  color: var(--c-text-on-action);
}

.qdnapro-bottom-sheet-button-group.bsbg-on-purple .qdnapro-bottom-sheet-button.bsb-disabled {
  color: var(--c-white-45);
  cursor: default;
}

.qdnapro-bottom-sheet-button.bsb-on-purple .bsb-sub,
.qdnapro-bottom-sheet-button-group.bsbg-on-purple .qdnapro-bottom-sheet-button .bsb-sub {
  color: var(--c-white-70);
}

.qdnapro-bottom-sheet-button.bsb-warning .bsb-sub,
.qdnapro-bottom-sheet-button.bsb-destructive .bsb-sub,
.qdnapro-bottom-sheet-button.bsb-success .bsb-sub {
  color: currentColor;
  opacity: 0.78;
}

.qdnapro-bottom-sheet-button.bsb-disabled .bsb-sub {
  color: inherit;
  opacity: 1;
}

.qdnapro-bottom-sheet-button.bsb-on-white.bsb-disabled .bsb-sub {
  color: var(--c-grey-300);
}

.qdnapro-bottom-sheet-button.bsb-on-purple.bsb-disabled .bsb-sub,
.qdnapro-bottom-sheet-button-group.bsbg-on-purple .qdnapro-bottom-sheet-button.bsb-disabled .bsb-sub {
  color: var(--c-white-45);
}

@keyframes bsb-check-pop {
  0% {
    transform: scale(0.6) rotate(0deg);
  }
  20% {
    transform: scale(1.2) rotate(-5deg);
  }
  44% {
    transform: scale(0.92) rotate(3deg);
  }
  64% {
    transform: scale(1.06) rotate(-1deg);
  }
  80% {
    transform: scale(0.97) rotate(0deg);
  }
  100% {
    transform: scale(1) rotate(0deg);
  }
}
@keyframes bsb-check-draw {
  0% {
    stroke-dashoffset: 22;
  }
  62% {
    stroke-dashoffset: -1;
  }
  80% {
    stroke-dashoffset: 0.7;
  }
  100% {
    stroke-dashoffset: 0;
  }
}
.qdnapro-bottom-sheet-button .bsb-check-path {
  stroke-dasharray: 22;
  stroke-dashoffset: 22;
}

.qdnapro-bottom-sheet-button.bsb-active .bsb-check {
  animation: bsb-check-pop 0.52s cubic-bezier(0.34, 1.56, 0.5, 1) forwards;
}

.qdnapro-bottom-sheet-button.bsb-active .bsb-check-path {
  animation: bsb-check-draw 0.38s cubic-bezier(0.22, 1, 0.36, 1) 0.04s forwards;
}

.qdnapro-popover {
  position: fixed;
  z-index: 1001;
  width: 280px;
  padding: 6px;
  box-sizing: border-box;
  border-radius: var(--r-card);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.22);
  font-family: var(--theme-font-family, "Inter", sans-serif);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.15s ease, visibility 0.15s ease;
}

.qdnapro-popover.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.qdnapro-popover.pop-below {
  transform-origin: var(--pop-arrow-x, 50%) 0;
}

.qdnapro-popover.pop-side::before {
  display: none;
}

.qdnapro-popover.pop-side {
  transform-origin: 0 20%;
}

.qdnapro-popover.pop-above {
  transform-origin: var(--pop-arrow-x, 50%) 100%;
}

.qdnapro-popover.is-open:not(.pop-variant-dialog) {
  animation: qdnapro-pop-grow 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes qdnapro-pop-grow {
  from {
    opacity: 0;
    transform: scale(0.72);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
.qdnapro-popover.pop-closing:not(.pop-variant-dialog) {
  visibility: visible;
  animation: qdnapro-pop-shrink 0.12s ease-in;
}

@keyframes qdnapro-pop-shrink {
  from {
    opacity: 1;
    transform: scale(1);
  }
  to {
    opacity: 0;
    transform: scale(0.85);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-popover.is-open:not(.pop-variant-dialog),
  .qdnapro-popover.pop-closing:not(.pop-variant-dialog) {
    animation: none;
  }
  .qdnapro-popover.pop-closing:not(.pop-variant-dialog) {
    visibility: hidden;
  }
}
qdnapro-popover:not(:defined) {
  display: none;
}

.qdnapro-popover::before {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  border: 9px solid transparent;
  left: var(--pop-arrow-x, 50%);
  transform: translateX(-50%);
}

.qdnapro-popover.pop-below::before {
  top: -18px;
}

.qdnapro-popover.pop-above::before {
  bottom: -18px;
}

.qdnapro-popover.pop-variant-white {
  background: var(--c-bg-card);
}

.qdnapro-popover.pop-variant-white::before {
  border-bottom-color: var(--c-bg-card);
}

.qdnapro-popover.pop-variant-white.pop-above::before {
  border-top-color: var(--c-bg-card);
  border-bottom-color: transparent;
}

.qdnapro-popover.pop-variant-purple {
  background: var(--c-purple-500);
}

.qdnapro-popover.pop-variant-purple::before {
  border-bottom-color: var(--c-purple-500);
}

.qdnapro-popover.pop-variant-purple.pop-above::before {
  border-top-color: var(--c-purple-500);
  border-bottom-color: transparent;
}

.qdnapro-popover.pop-bare {
  width: auto;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
}

.qdnapro-popover.pop-bare::before {
  display: none;
}

.qdnapro-popover .pop-body {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.qdnapro-popover .pop-dialog-body {
  align-items: center;
  text-align: center;
  gap: 0;
}

.qdnapro-popover .pop-dialog-body > qdnapro-illustration {
  display: block;
  margin: 0 auto 16px;
  max-width: 100%;
}

.qdnapro-popover .pop-dialog-title {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--c-text-on-action);
}

.qdnapro-popover .pop-dialog-text {
  font-size: 14px;
  line-height: 1.6;
  color: var(--c-white-70);
  margin-top: 10px;
}

.qdnapro-popover .pop-dialog-body > .pop-dialog-content {
  align-self: stretch;
  width: 100%;
  text-align: left;
  margin-top: 16px;
}

.qdnapro-popover .pop-dialog-footer qdnapro-button {
  flex: 1;
}

.qdnapro-popover .pop-dialog-content .bs-dialog-bullet {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  color: var(--c-white-90, rgba(255, 255, 255, 0.9));
  font-size: 14px;
  line-height: 1.5;
  text-align: left;
}

.qdnapro-popover .pop-dialog-content .bs-dialog-bullet + .bs-dialog-bullet {
  margin-top: 14px;
}

.qdnapro-popover .pop-dialog-content .bs-dialog-bullet > qdnapro-status-badge {
  flex-shrink: 0;
}

.qdnapro-popover.pop-variant-dialog {
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: auto;
  height: auto;
  padding: 0;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  display: flex;
  align-items: center;
  justify-content: center;
}

.qdnapro-popover.pop-variant-dialog::before {
  display: none;
}

.qdnapro-popover.pop-variant-dialog .pop-scrim {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 0;
}

.qdnapro-popover.pop-variant-dialog .pop-panel {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  width: min(94vw, 702px);
  max-height: 86vh;
  overflow-y: auto;
  padding: 28px 24px 24px;
  border-radius: var(--r-card);
  background: var(--c-purple-500);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.22);
  transform: scale(0.96);
  transition: transform 0.18s ease;
}

.qdnapro-popover.pop-variant-dialog.is-open .pop-panel {
  transform: scale(1);
}

.qdnapro-popover.pop-variant-dialog .pop-close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 32px;
  height: 32px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: var(--c-purple-700);
  color: var(--c-text-on-action);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

/* Surface colours come from the shared dialog-tone tokens (Kim's exact set for the
   Pulse verdict sheets, 03.09.2026) so a confirm routed to this popover on a wide
   screen is the same colour as the bottom sheet it replaces on a phone. */
.qdnapro-popover.pop-tone-danger .pop-panel {
  background: var(--c-dialog-danger-surface);
}

.qdnapro-popover.pop-tone-danger .pop-close {
  background: var(--c-dialog-danger-grab);
}

.qdnapro-popover.pop-tone-success .pop-panel {
  background: var(--c-dialog-success-surface);
}

.qdnapro-popover.pop-tone-success .pop-close {
  background: var(--c-dialog-success-grab);
}

.qdnapro-popover.pop-tone-warning .pop-panel {
  background: var(--c-dialog-warning-surface);
}

.qdnapro-popover.pop-tone-warning .pop-close {
  background: var(--c-dialog-warning-grab);
}

.qdnapro-popover.pop-tone-danger .pop-dialog-title,
.qdnapro-popover.pop-tone-danger .pop-dialog-text,
.qdnapro-popover.pop-tone-success .pop-dialog-title,
.qdnapro-popover.pop-tone-success .pop-dialog-text,
.qdnapro-popover.pop-tone-warning .pop-dialog-title,
.qdnapro-popover.pop-tone-warning .pop-dialog-text {
  color: var(--c-text-on-action);
}

.qdnapro-popover.pop-tone-danger .pop-dialog-title,
.qdnapro-popover.pop-tone-success .pop-dialog-title,
.qdnapro-popover.pop-tone-warning .pop-dialog-title {
  font-size: 24px;
}

.qdnapro-popover .pop-dialog-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 16px;
}

.qdnapro-popover .pop-dialog-badge-circle {
  --pop-badge-size: 96px;
  width: var(--pop-badge-size);
  height: var(--pop-badge-size);
  margin-bottom: 20px;
  border-radius: 50%;
  background: var(--c-purple-400);
}

.qdnapro-popover.pop-tone-danger .pop-dialog-badge-circle {
  background: var(--c-warn-red-300);
}

.qdnapro-popover.pop-tone-success .pop-dialog-badge-circle {
  background: var(--c-success-300);
}

.qdnapro-popover.pop-tone-warning .pop-dialog-badge-circle {
  background: var(--c-dialog-warning-card);
}

.qdnapro-popover .pop-dialog-badge-art {
  --ql-size: 88px;
  display: block;
  width: 88px;
  height: 88px;
  color: var(--c-text-on-action);
}

.qdnapro-popover .pop-dialog-badge-circle .pop-dialog-badge-art {
  --ql-size: calc(var(--pop-badge-size) * 0.55);
  width: calc(var(--pop-badge-size) * 0.55);
  height: calc(var(--pop-badge-size) * 0.55);
}

.qdnapro-popover.pop-tone-danger .pop-dialog-badge-circle .pop-dialog-badge-art {
  color: var(--c-warn-red-900);
}

.qdnapro-popover.pop-tone-success .pop-dialog-badge-circle .pop-dialog-badge-art {
  color: var(--c-success-900);
}

.qdnapro-popover.pop-variant-dialog .pop-dialog-body {
  padding-top: 4px;
}

.qdnapro-popover.pop-variant-dialog .pop-dialog-illustration {
  margin-bottom: 20px;
}

.qdnapro-popover.pop-variant-dialog .pop-dialog-footer {
  display: flex;
  gap: 12px;
  margin-top: 24px;
}

.qdnapro-popover.pop-dialog-light .pop-panel {
  background: var(--c-bg-card, #ffffff);
}

.qdnapro-popover.pop-dialog-light .pop-dialog-title {
  color: var(--c-text-heading, #1a1f4d);
}

.qdnapro-popover.pop-dialog-light .pop-dialog-text {
  color: var(--c-text-muted, #6e7280);
}

.qdnapro-popover.pop-dialog-light .pop-close {
  background: var(--c-bg-subtle-hover, #f5f6f8);
  color: var(--c-text-heading, #1a1f4d);
}

.qdnapro-popover.pop-variant-dialog .pop-header {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
  margin-bottom: 16px;
}

.qdnapro-popover.pop-variant-dialog .pop-header > *:first-child {
  flex: 1 1 auto;
  min-width: 0;
}

.qdnapro-popover.pop-variant-dialog.pop-has-header .pop-close {
  position: static;
  top: auto;
  right: auto;
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
}

.qdnapro-popover.pop-variant-dialog.pop-has-header .pop-panel {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding-top: 16px;
}

.qdnapro-popover.pop-variant-dialog.pop-has-header .pop-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.qdnapro-popover.pop-variant-dialog.pop-size-medium .pop-panel {
  width: min(92vw, 520px);
}

.qdnapro-popover.pop-variant-dialog-arrow {
  width: 340px;
  background: var(--c-purple-500);
  padding: 20px 20px 18px;
}

.qdnapro-popover.pop-variant-dialog-arrow::before {
  border-bottom-color: var(--c-purple-500);
}

.qdnapro-popover.pop-variant-dialog-arrow.pop-above::before {
  border-top-color: var(--c-purple-500);
  border-bottom-color: transparent;
}

.qdnapro-popover.pop-variant-dialog-arrow .pop-dialog-footer {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 16px;
}

.qdnapro-popover .pop-dialog-title-with-art {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.qdnapro-popover .pop-dialog-title-art {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
}

.qdnapro-popover .pop-dialog-title-lottie {
  --ql-size: 40px;
  display: block;
  width: 40px;
  height: 40px;
}

.qdnapro-popover .pop-dialog-title-icon {
  color: var(--c-text-on-action);
}

/* Een dialoog MET een float-kind mag niet klippen: de pil hangt boven de bovenrand
   van het paneel en `overflow-y: auto` op dat paneel sneed hem compleet weg (gemeten
   op een render, 04.09.2026). Het schuiven verhuist daarom naar de dialoog-body, en
   alleen voor een dialoog die echt een float draagt - een dialoog zonder float houdt
   exact het gedrag dat hij had. De hoogte-cap zit dan op de body: kop, sluit-X en
   voetknop blijven staan en alleen de inhoud schuift, wat voor een dialoog met een
   rij antwoordkaarten ook het betere gedrag is. */
.qdnapro-popover.pop-variant-dialog.pop-has-float .pop-panel {
  overflow: visible;
}

.qdnapro-popover.pop-variant-dialog.pop-has-float .pop-dialog-body {
  max-height: 62vh;
  overflow-y: auto;
}

.qdnapro-popover .pop-float {
  position: absolute;
  right: 10px;
  bottom: calc(100% + 14px);
  display: flex;
  align-items: center;
  gap: 8px;
  pointer-events: none;
}

.qdnapro-popover .bs-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 49px;
  padding: 0 18px 0 14px;
  border-radius: var(--r-pill, 999px);
  background: var(--c-purple-500);
  color: var(--c-text-on-action);
  font-size: 20px;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}

.qdnapro-popover.pop-tone-danger .bs-pill {
  background: var(--c-dialog-danger-surface);
}

.qdnapro-popover.pop-tone-success .bs-pill {
  background: var(--c-dialog-success-surface);
}

.qdnapro-popover.pop-tone-warning .bs-pill {
  background: var(--c-dialog-warning-surface);
}

.qdnapro-popover .pop-dialog-content .bs-dialog-card {
  border-radius: 12px;
  padding: 14px 12px 16px;
  background: var(--c-purple-700);
  color: var(--c-text-on-action);
  font-size: 15px;
  line-height: 1.75;
  text-align: left;
}

.qdnapro-popover .pop-dialog-content .bs-dialog-card + .bs-dialog-card {
  margin-top: 8px;
}

.qdnapro-popover .pop-dialog-content .bs-dialog-card-head {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
  margin-bottom: 10px;
}

.qdnapro-popover .pop-dialog-content .bs-dialog-card-icon {
  flex: 0 0 auto;
  width: 21px;
  height: 21px;
  background: no-repeat center/contain;
}

.qdnapro-popover .pop-dialog-content .bs-dialog-card[data-verdict=right] .bs-dialog-card-icon {
  background-image: url("data:image/svg+xml,%3Csvg width='21' height='21' viewBox='0 0 21 21' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.4413 20.0986C15.7747 20.0986 20.0984 15.775 20.0984 10.4415C20.0984 5.10805 15.7747 0.784424 10.4413 0.784424C5.10781 0.784424 0.78418 5.10805 0.78418 10.4415C0.78418 15.775 5.10781 20.0986 10.4413 20.0986Z' fill='%2358B992'/%3E%3Cpath d='M10.4414 20.8828C4.684 20.8828 0 16.1988 0 10.4414C0 4.684 4.684 0 10.4414 0C16.1988 0 20.8828 4.684 20.8828 10.4414C20.8828 16.1988 16.1988 20.8828 10.4414 20.8828ZM10.4414 1.56863C5.54894 1.56863 1.56863 5.54894 1.56863 10.4414C1.56863 15.3339 5.54894 19.3142 10.4414 19.3142C15.3339 19.3142 19.3142 15.3339 19.3142 10.4414C19.3142 5.54894 15.3339 1.56863 10.4414 1.56863Z' fill='%232F5D4A'/%3E%3Cpath d='M9.26739 14.2197C8.93492 14.2197 8.62237 14.0902 8.38732 13.8551L5.83908 11.3069C5.53281 11.0006 5.53281 10.504 5.83908 10.1976C6.14536 9.89136 6.64198 9.89136 6.94826 10.1976L9.26732 12.5167L13.9342 7.84979C14.2405 7.5436 14.737 7.54352 15.0434 7.84979C15.3497 8.15607 15.3497 8.6527 15.0434 8.95905L10.1473 13.855C9.91241 14.0902 9.59986 14.2197 9.26739 14.2197Z' fill='white'/%3E%3C/svg%3E");
}

.qdnapro-popover .pop-dialog-content .bs-dialog-card[data-verdict=wrong] .bs-dialog-card-icon {
  background-image: url("data:image/svg+xml,%3Csvg width='21' height='21' viewBox='0 0 21 21' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.1902 19.6146C15.3953 19.6146 19.6149 15.3951 19.6149 10.19C19.6149 4.98492 15.3953 0.765381 10.1902 0.765381C4.98517 0.765381 0.765625 4.98492 0.765625 10.19C0.765625 15.3951 4.98517 19.6146 10.1902 19.6146Z' fill='%23FF3A30'/%3E%3Cpath d='M10.19 20.3801C4.57124 20.3801 0 15.8089 0 10.19C0 4.57124 4.57124 0 10.19 0C15.8089 0 20.3801 4.57124 20.3801 10.19C20.3801 15.8089 15.8089 20.3801 10.19 20.3801ZM10.19 1.53079C5.41536 1.53079 1.53086 5.41528 1.53086 10.19C1.53086 14.9647 5.41536 18.8492 10.19 18.8492C14.9647 18.8492 18.8492 14.9647 18.8492 10.19C18.8492 5.41528 14.9648 1.53079 10.19 1.53079Z' fill='%237C1914'/%3E%3Cpath d='M11.2726 10.19L13.9662 7.49641C14.2651 7.19751 14.2651 6.71284 13.9662 6.41394C13.6672 6.11496 13.1826 6.11512 12.8837 6.41386L10.19 9.1075L7.49641 6.41386C7.19751 6.11496 6.71284 6.11496 6.41386 6.41394C6.11496 6.71284 6.11496 7.19751 6.41394 7.49641L9.10757 10.19L6.41394 12.8835C6.11504 13.1824 6.11496 13.6671 6.41386 13.966C6.56335 14.1155 6.75923 14.1902 6.9551 14.1902C7.15097 14.1902 7.34693 14.1154 7.49634 13.966L10.19 11.2724L12.8836 13.966C13.033 14.1155 13.229 14.1902 13.4248 14.1902C13.6207 14.1902 13.8167 14.1154 13.9661 13.966C14.265 13.6671 14.265 13.1824 13.9661 12.8835L11.2726 10.19Z' fill='white'/%3E%3C/svg%3E");
}

.qdnapro-popover .pop-dialog-content .bs-dialog-card-text {
  display: block;
}

.qdnapro-popover.pop-tone-danger .pop-dialog-content .bs-dialog-card {
  background: var(--c-dialog-danger-card);
}

.qdnapro-popover.pop-tone-success .pop-dialog-content .bs-dialog-card {
  background: var(--c-dialog-success-card);
}

.qdnapro-popover.pop-tone-warning .pop-dialog-content .bs-dialog-card {
  background: var(--c-dialog-warning-card);
}

.qdnapro-popover.pop-tone-warning .pop-dialog-content .bs-dialog-card[data-verdict=wrong] {
  background: var(--c-dialog-warning-card-wrong);
}

.qdnapro-popover .pop-dialog-content .bs-dialog-card[data-verdict=missed] {
  background: transparent;
  border: 2px dashed rgba(255, 255, 255, 0.7);
  padding: 12px 10px 14px;
}

.qdnapro-popover .pop-dialog-content .bs-dialog-card[data-verdict=missed] .bs-dialog-card-icon {
  background-image: url("data:image/svg+xml,%3Csvg width='21' height='21' viewBox='0 0 21 21' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='10.5' cy='10.5' r='9.3' stroke='white' stroke-width='1.7' stroke-dasharray='3.2 2.8'/%3E%3Cpath d='M9.26739 14.2197C8.93492 14.2197 8.62237 14.0902 8.38732 13.8551L5.83908 11.3069C5.53281 11.0006 5.53281 10.504 5.83908 10.1976C6.14536 9.89136 6.64198 9.89136 6.94826 10.1976L9.26732 12.5167L13.9342 7.84979C14.2405 7.5436 14.737 7.54352 15.0434 7.84979C15.3497 8.15607 15.3497 8.6527 15.0434 8.95905L10.1473 13.855C9.91241 14.0902 9.59986 14.2197 9.26739 14.2197Z' fill='white'/%3E%3C/svg%3E");
}

.qdnapro-popover .pop-dialog-content .bs-dialog-label {
  margin: 16px 0 8px;
  color: var(--c-text-on-action);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  text-align: left;
}

.qdnapro-popover .pop-dialog-content .bs-dialog-label:first-child {
  margin-top: 0;
}

.qdnapro-breadcrumb {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  color: var(--c-text-muted);
}

.qdnapro-breadcrumb > * {
  font-size: 16px;
  font-weight: 400;
  color: var(--c-text-muted);
  text-decoration: none;
}

.qdnapro-breadcrumb > a:hover {
  color: var(--c-purple-500);
  text-decoration: underline;
}

.qdnapro-breadcrumb .breadcrumb-current {
  color: var(--c-purple-500);
  font-weight: 500;
}

.qdnapro-breadcrumb .breadcrumb-sep {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  color: var(--c-text-muted);
  flex-shrink: 0;
}

.qdnapro-breadcrumb .breadcrumb-sep svg {
  width: 12px;
  height: 12px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

[data-theme=dark] .qdnapro-breadcrumb,
[data-theme=dark] .qdnapro-breadcrumb > * {
  color: #a6aab3;
}

[data-theme=dark] .qdnapro-breadcrumb > a:hover {
  color: #c0c5ff;
}

[data-theme=dark] .qdnapro-breadcrumb .breadcrumb-current {
  color: #c0c5ff;
}

[data-theme=dark] .qdnapro-breadcrumb .breadcrumb-sep {
  color: #a6aab3;
}

.qdnapro-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  box-sizing: border-box;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  --btn-focus-ring: var(--c-purple-500);
  --btn-focus-glow: rgba(70, 82, 243, 0.25);
  font-family: inter, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  text-decoration: none;
  white-space: nowrap;
  user-select: none;
  cursor: pointer;
  transition: background-color 120ms ease-out, border-color 120ms ease-out, color 120ms ease-out;
}

.qdnapro-button > qdnapro-number-indicator-badge[data-button-badge] {
  pointer-events: none;
}

.qdnapro-button.button-size-big {
  min-height: 56px;
  padding: 12px 16px;
}

.qdnapro-button.button-size-big.button-icon-only {
  width: 56px;
  min-width: 56px;
  padding: 0;
}

.qdnapro-button.button-size-small {
  min-height: 40px;
  padding: 8px 12px;
}

.qdnapro-button.button-size-small.button-icon-only {
  width: 40px;
  min-width: 40px;
  padding: 0;
}

.qdnapro-button.button-size-snug {
  min-height: 32px;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 20px;
}

/* An icon in a button otherwise inherits its size from the font (.qdnapro-icon is
   1em wide), so a snug button drew a 13px glyph while the segment beside it in the
   same toolbar draws 16px — visibly smaller for no reason. A size should decide its
   own glyph, so `snug` says 16 out loud. Scoped to this size: nothing else moves.
   [Kim 10.08.2026] */
.qdnapro-button.button-size-snug > qdnapro-icon {
  width: 16px;
  height: 16px;
}

.qdnapro-button.button-size-snug.button-icon-only {
  width: 32px;
  min-width: 32px;
  padding: 0;
}

.qdnapro-button.button-size-compact {
  min-height: 28px;
  padding: 4px 10px;
  gap: 6px;
  font-size: 13px;
  line-height: 18px;
  border-radius: 8px;
}

.qdnapro-button.button-size-compact.button-icon-only {
  width: 28px;
  min-width: 28px;
  padding: 0;
}

.qdnapro-button.button-size-micro {
  min-height: 24px;
  padding: 3px 10px;
  gap: 4px;
  font-size: 11px;
  font-weight: 700;
  line-height: 16px;
  border-radius: 6px;
}

.qdnapro-button.button-size-micro.button-icon-only {
  width: 24px;
  min-width: 24px;
  padding: 0;
}

.qdnapro-button.button-size-touch {
  min-height: 44px;
  padding: 10px 14px;
}

.qdnapro-button.button-size-touch.button-icon-only {
  width: 44px;
  min-width: 44px;
  padding: 0;
}

.qdnapro-button.button-size-touch-lg {
  min-height: 48px;
  padding: 10px 16px;
}

.qdnapro-button.button-size-touch-lg.button-icon-only {
  width: 48px;
  min-width: 48px;
  padding: 0;
}

.qdnapro-button:focus {
  outline: none;
}

.qdnapro-button:focus-visible, .qdnapro-button.force-focus {
  outline: 2px solid var(--btn-focus-ring);
  outline-offset: var(--btn-focus-offset, -2px);
  box-shadow: 0 0 0 4px var(--btn-focus-glow);
}

.qdnapro-button.button-disabled:focus-visible, .qdnapro-button.button-disabled.force-focus {
  outline: none;
  box-shadow: none;
}

.qdnapro-button.button-primary-purple {
  background: var(--c-purple-500);
  color: var(--c-text-on-action);
  --btn-focus-ring: var(--c-purple-700);
  --btn-focus-glow: rgba(70, 82, 243, 0.40);
}

.qdnapro-button.button-primary-purple:focus-visible, .qdnapro-button.button-primary-purple.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--btn-focus-ring), 0 0 0 6px var(--btn-focus-glow);
}

.qdnapro-button.button-primary-purple:hover:not(.button-disabled) {
  background: var(--c-purple-600);
}

.qdnapro-button.button-primary-purple:active:not(.button-disabled) {
  background: var(--c-purple-700);
}

.qdnapro-button.button-primary-orange {
  background: var(--c-warn-yellow-600);
  color: var(--c-text-on-action);
  --btn-focus-ring: var(--c-tag-warning-text);
  --btn-focus-glow: rgba(239, 142, 2, 0.45);
}

.qdnapro-button.button-primary-orange:focus-visible, .qdnapro-button.button-primary-orange.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--btn-focus-ring), 0 0 0 6px var(--btn-focus-glow);
}

.qdnapro-button.button-primary-orange:hover:not(.button-disabled) {
  background: var(--c-signal-yellow-text);
}

.qdnapro-button.button-primary-orange:active:not(.button-disabled) {
  background: var(--c-tag-warning-text);
}

.qdnapro-button.button-subtle {
  background: transparent;
  color: var(--c-grey-950);
}

.qdnapro-button.button-subtle:hover:not(.button-disabled) {
  background: var(--c-grey-50);
}

.qdnapro-button.button-subtle:active:not(.button-disabled) {
  background: var(--c-border-card);
}

.qdnapro-button.button-subtle-muted {
  background: transparent;
  color: var(--c-text-muted, #6a6e9a);
}

.qdnapro-button.button-subtle-muted:hover:not(.button-disabled) {
  background: var(--c-grey-50);
  color: var(--c-grey-950);
}

.qdnapro-button.button-subtle-muted:active:not(.button-disabled) {
  background: var(--c-border-card);
  color: var(--c-grey-950);
}

.qdnapro-button.button-subtle-purple-bg {
  background: transparent;
  color: var(--c-purple-500);
}

.qdnapro-button.button-subtle-purple-bg:hover:not(.button-disabled) {
  background: var(--c-border-tree-bright);
}

.qdnapro-button.button-subtle-purple-bg:active:not(.button-disabled) {
  background: var(--c-sidebar-icon);
}

.qdnapro-button.button-secondary {
  background: var(--c-grey-50);
  color: var(--c-grey-950);
}

.qdnapro-button.button-secondary:hover:not(.button-disabled) {
  background: var(--c-grey-300);
}

.qdnapro-button.button-secondary:active:not(.button-disabled) {
  background: var(--c-grey-400);
}

.qdnapro-button.button-secondary.button-active {
  background: #e6e9ff;
  color: var(--c-purple-500);
}

.qdnapro-button.button-secondary.button-active:hover:not(.button-disabled) {
  background: var(--c-border-tree-bright);
}

.qdnapro-button.button-secondary.button-active:active:not(.button-disabled) {
  background: var(--c-sidebar-icon);
}

.qdnapro-button.button-secondary-outline {
  background: #e6e9ff;
  color: var(--c-purple-500);
  border-color: var(--c-purple-500);
}

.qdnapro-button.button-secondary-outline:hover:not(.button-disabled) {
  background: var(--c-border-tree-bright);
}

.qdnapro-button.button-secondary-outline:active:not(.button-disabled) {
  background: var(--c-sidebar-icon);
}

.qdnapro-button.button-secondary-purple {
  background: #e6e9ff;
  color: var(--c-purple-500);
}

.qdnapro-button.button-secondary-purple:hover:not(.button-disabled) {
  background: var(--c-border-tree-bright);
}

.qdnapro-button.button-secondary-purple:active:not(.button-disabled) {
  background: var(--c-sidebar-icon);
}

.qdnapro-button.button-secondary-white {
  background: var(--c-bg-card);
  color: var(--c-purple-500);
}

.qdnapro-button.button-secondary-white:hover:not(.button-disabled) {
  background: var(--c-border-tree-bright);
}

.qdnapro-button.button-secondary-white:active:not(.button-disabled) {
  background: var(--c-sidebar-icon);
}

.qdnapro-button.button-warning-red {
  background: var(--c-grey-50);
  color: var(--c-signal-red-text);
}

.qdnapro-button.button-warning-red:hover:not(.button-disabled) {
  background: var(--c-grey-300);
}

.qdnapro-button.button-warning-red:active:not(.button-disabled) {
  background: var(--c-grey-400);
}

.qdnapro-button.button-warning-red-white {
  background: var(--c-bg-card);
  color: var(--c-signal-red-text);
}

.qdnapro-button.button-warning-red-white:hover:not(.button-disabled) {
  background: var(--c-signal-red-soft);
}

.qdnapro-button.button-warning-red-white:active:not(.button-disabled) {
  background: var(--c-signal-red-bg);
}

.qdnapro-button.button-warning-red-tint {
  background: var(--c-signal-red-bg);
  color: var(--c-tag-critical-text);
  border-color: var(--c-chip-red-2-bg);
}

.qdnapro-button.button-warning-red-tint:hover:not(.button-disabled) {
  background: var(--c-chip-red-hover);
  border-color: var(--c-tag-critical-text);
}

.qdnapro-button.button-warning-red-tint:active:not(.button-disabled) {
  background: var(--c-chip-red-hover);
}

.qdnapro-button.button-warning-yellow-tint {
  background: var(--c-warning-bright-bg);
  color: var(--c-warning-bright-text);
  border-color: var(--c-warning-bright-border);
}

.qdnapro-button.button-warning-yellow-tint:hover:not(.button-disabled) {
  background: var(--c-chip-yellow-2-bg);
  border-color: var(--c-warn-yellow-500);
}

.qdnapro-button.button-warning-yellow-tint:active:not(.button-disabled) {
  background: var(--c-chip-yellow-2-bg);
}

.qdnapro-button.button-warning-red-subtle {
  background: transparent;
  color: var(--c-grey-950);
}

.qdnapro-button.button-warning-red-subtle:hover:not(.button-disabled) {
  background: var(--c-chip-red-hover);
}

.qdnapro-button.button-warning-red-subtle:active:not(.button-disabled) {
  background: var(--c-chip-red-hover);
}

.qdnapro-button.button-warning-yellow-subtle {
  background: transparent;
  color: var(--c-grey-950);
}

.qdnapro-button.button-warning-yellow-subtle:hover:not(.button-disabled) {
  background: var(--c-chip-yellow-2-bg);
}

.qdnapro-button.button-warning-yellow-subtle:active:not(.button-disabled) {
  background: var(--c-chip-yellow-2-bg);
}

.qdnapro-button.button-glass {
  background: rgba(255, 255, 255, 0.18);
  color: var(--c-text-on-action);
  border-color: rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.qdnapro-button.button-glass:hover:not(.button-disabled) {
  background: rgba(255, 255, 255, 0.3);
  border-color: rgba(255, 255, 255, 0.4);
}

.qdnapro-button.button-glass:active:not(.button-disabled) {
  background: rgba(255, 255, 255, 0.38);
}

/* on-purple / on-purple-solid — for a purple/dark surface (e.g. qdnapro-bottom-sheet's
   confirm variant), where the plain button-subtle's hardcoded dark text would be
   invisible and primary-purple itself would blend into a purple background.
   [Kim 14.07.2026] */
.qdnapro-button.button-on-purple {
  background: transparent;
  color: var(--c-text-on-action);
}

.qdnapro-button.button-on-purple:hover:not(.button-disabled) {
  background: rgba(255, 255, 255, 0.14);
}

.qdnapro-button.button-on-purple:active:not(.button-disabled) {
  background: rgba(255, 255, 255, 0.14);
}

.qdnapro-button.button-on-purple-solid {
  background: var(--c-purple-700);
  color: var(--c-text-on-action);
}

.qdnapro-button.button-on-purple-solid:hover:not(.button-disabled) {
  background: var(--c-purple-600);
}

.qdnapro-button.button-on-purple-solid:active:not(.button-disabled) {
  background: var(--c-purple-700);
}

/* on-danger / on-danger-solid — the pair for the RED dialog surface
   (qdnapro-bottom-sheet / -popover with tone="danger"). Its own type rather than the
   sheet overriding on-purple's colours: the button keeps owning its palette, which is
   the rule the dialog variants were built on.

   The surface carries white text, so the SECONDARY button is white on transparent,
   same as on-purple. The SOLID one takes the dialog's own button colour from the
   design tokens (--c-dialog-<tone>-button): Kim's exact colour set for the Pulse
   verdict sheets, 03.09.2026, shared by every toned dialog so they read as one family.
   Hover/pressed darken that ONE colour with a filter instead of stepping through a
   ramp - the set has exactly one button colour per tone and we do not invent a
   second. [Kim 18.08.2026, recoloured 03.09.2026] */
.qdnapro-button.button-on-danger {
  background: transparent;
  color: var(--c-text-on-action);
}

.qdnapro-button.button-on-danger:hover:not(.button-disabled) {
  background: rgba(255, 255, 255, 0.16);
}

.qdnapro-button.button-on-danger:active:not(.button-disabled) {
  background: rgba(255, 255, 255, 0.16);
}

.qdnapro-button.button-on-danger-solid {
  background: var(--c-dialog-danger-button);
  color: var(--c-text-on-action);
}

.qdnapro-button.button-on-danger-solid:hover:not(.button-disabled) {
  background: var(--c-dialog-danger-button);
  filter: brightness(0.92);
}

.qdnapro-button.button-on-danger-solid:active:not(.button-disabled) {
  background: var(--c-dialog-danger-button);
  filter: brightness(0.84);
}

/* on-success / on-success-solid — the same pair for the GREEN dialog surface
   (tone="success"). Structurally identical to the danger pair, and deliberately so: the
   two dialogs differ in hue and in nothing else. [Kim 18.08.2026] */
.qdnapro-button.button-on-success {
  background: transparent;
  color: var(--c-text-on-action);
}

.qdnapro-button.button-on-success:hover:not(.button-disabled) {
  background: rgba(255, 255, 255, 0.16);
}

.qdnapro-button.button-on-success:active:not(.button-disabled) {
  background: rgba(255, 255, 255, 0.16);
}

.qdnapro-button.button-on-success-solid {
  background: var(--c-dialog-success-button);
  color: var(--c-text-on-action);
}

.qdnapro-button.button-on-success-solid:hover:not(.button-disabled) {
  background: var(--c-dialog-success-button);
  filter: brightness(0.92);
}

.qdnapro-button.button-on-success-solid:active:not(.button-disabled) {
  background: var(--c-dialog-success-button);
  filter: brightness(0.84);
}

/* on-warning / on-warning-solid — the third pair, for the ORANGE dialog surface
   (tone="warning": the Pulse "Beetje goed, beetje fout" verdict). Same structure as the
   other two on purpose. [Kim 03.09.2026] */
.qdnapro-button.button-on-warning {
  background: transparent;
  color: var(--c-text-on-action);
}

.qdnapro-button.button-on-warning:hover:not(.button-disabled) {
  background: rgba(255, 255, 255, 0.16);
}

.qdnapro-button.button-on-warning:active:not(.button-disabled) {
  background: rgba(255, 255, 255, 0.16);
}

.qdnapro-button.button-on-warning-solid {
  background: var(--c-dialog-warning-button);
  color: var(--c-text-on-action);
}

.qdnapro-button.button-on-warning-solid:hover:not(.button-disabled) {
  background: var(--c-dialog-warning-button);
  filter: brightness(0.92);
}

.qdnapro-button.button-on-warning-solid:active:not(.button-disabled) {
  background: var(--c-dialog-warning-button);
  filter: brightness(0.84);
}

.qdnapro-button.button-theme {
  --btn-theme-hover: var(--theme-btn-hover-color, color-mix(in srgb, var(--theme-btn-color, #40499a) 87%, #000));
  background: var(--theme-btn-color, #40499a);
  color: var(--theme-btn-text-color, #ffffff);
}

.qdnapro-button.button-theme:hover:not(.button-disabled) {
  background: var(--btn-theme-hover);
}

.qdnapro-button.button-theme:active:not(.button-disabled) {
  background: color-mix(in srgb, var(--btn-theme-hover) 90%, #000);
}

.qdnapro-button.button-theme-secondary {
  --btn-theme-surface: var(--theme-nav-color, color-mix(in srgb, var(--theme-btn-color, #40499a) 12%, #fff));
  --btn-theme-sec-hover: var(--theme-nav-hover-color, color-mix(in srgb, var(--btn-theme-surface) 92%, #000));
  background: var(--btn-theme-surface);
  color: var(--theme-nav-text-color, var(--theme-btn-color, #40499a));
}

.qdnapro-button.button-theme-secondary:hover:not(.button-disabled) {
  background: var(--btn-theme-sec-hover);
}

.qdnapro-button.button-theme-secondary:active:not(.button-disabled) {
  background: color-mix(in srgb, var(--btn-theme-sec-hover) 92%, #000);
}

.qdnapro-button.button-theme-subtle {
  background: transparent;
  color: var(--theme-nav-arrow-color, var(--theme-nav-text-color, var(--theme-btn-color, #40499a)));
}

.qdnapro-button.button-theme-subtle:hover:not(.button-disabled) {
  background: color-mix(in srgb, var(--theme-nav-color, var(--theme-btn-color, #40499a)) 14%, transparent);
}

.qdnapro-button.button-theme-subtle:active:not(.button-disabled) {
  background: color-mix(in srgb, var(--theme-nav-color, var(--theme-btn-color, #40499a)) 22%, transparent);
}

.qdnapro-button.button-theme-subtle.button-disabled {
  background: transparent !important;
}

.qdnapro-button.button-theme[data-force-state=hover]:not(.button-disabled) {
  background: var(--btn-theme-hover);
}

.qdnapro-button.button-theme[data-force-state=pressed]:not(.button-disabled) {
  background: color-mix(in srgb, var(--btn-theme-hover) 90%, #000);
}

.qdnapro-button.button-theme-secondary[data-force-state=hover]:not(.button-disabled) {
  background: var(--btn-theme-sec-hover);
}

.qdnapro-button.button-theme-secondary[data-force-state=pressed]:not(.button-disabled) {
  background: color-mix(in srgb, var(--btn-theme-sec-hover) 92%, #000);
}

.qdnapro-button.button-theme-subtle[data-force-state=hover]:not(.button-disabled) {
  background: color-mix(in srgb, var(--theme-nav-color, var(--theme-btn-color, #40499a)) 14%, transparent);
}

.qdnapro-button.button-theme-subtle[data-force-state=pressed]:not(.button-disabled) {
  background: color-mix(in srgb, var(--theme-nav-color, var(--theme-btn-color, #40499a)) 22%, transparent);
}

.qdnapro-button.button-disabled {
  background: var(--c-grey-50) !important;
  color: var(--c-text-disabled) !important;
  border-color: transparent !important;
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-button.button-subtle.button-disabled {
  background: transparent !important;
}

.qdnapro-button.button-subtle-purple-bg.button-disabled {
  background: transparent !important;
  color: var(--c-text-disabled-pp) !important;
}

[data-bg-context=purple] .qdnapro-button.button-disabled {
  background: var(--c-border-tree-bright) !important;
}

[data-theme=dark] .qdnapro-button.button-primary-purple {
  background: #3842c2;
  color: #ffffff;
}

[data-theme=dark] .qdnapro-button.button-primary-purple:hover:not(.button-disabled) {
  background: #2a3192;
}

[data-theme=dark] .qdnapro-button.button-primary-orange {
  background: #ef8e02;
  color: #ffffff;
}

[data-theme=dark] .qdnapro-button.button-primary-orange:hover:not(.button-disabled) {
  background: #f2a535;
}

[data-theme=dark] .qdnapro-button.button-subtle {
  background: transparent;
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-button.button-subtle:hover:not(.button-disabled) {
  background: #565b66;
}

[data-theme=dark] .qdnapro-button.button-subtle-purple-bg {
  background: transparent;
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-button.button-subtle-purple-bg:hover:not(.button-disabled) {
  background: #565b66;
}

[data-theme=dark] .qdnapro-button.button-secondary {
  background: #2e3036;
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-button.button-secondary:hover:not(.button-disabled) {
  background: #40444d;
}

[data-theme=dark] .qdnapro-button.button-secondary.button-active {
  background: #3a3555;
  color: #a5acff;
}

[data-theme=dark] .qdnapro-button.button-secondary.button-active:hover:not(.button-disabled) {
  background: #4c4767;
}

[data-theme=dark] .qdnapro-button.button-secondary-outline {
  background: transparent;
  color: #f0f1f2;
  border-color: #565b66;
}

[data-theme=dark] .qdnapro-button.button-secondary-outline:hover:not(.button-disabled) {
  background: #40444d;
  border-color: #666dae;
}

[data-theme=dark] .qdnapro-button.button-secondary-purple {
  background: #3a3555;
  color: #a5acff;
}

[data-theme=dark] .qdnapro-button.button-secondary-purple:hover:not(.button-disabled) {
  background: #4c4767;
}

[data-theme=dark] .qdnapro-button.button-secondary-white {
  background: #2e3036;
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-button.button-secondary-white:hover:not(.button-disabled) {
  background: #40444d;
}

[data-theme=dark] .qdnapro-button.button-warning-red-white {
  background: #2e3036;
  color: #ec8585;
}

[data-theme=dark] .qdnapro-button.button-warning-red-white:hover:not(.button-disabled) {
  background: #40444d;
}

[data-theme=dark] .qdnapro-button.button-disabled {
  background: #40444d !important;
  color: #6b7280 !important;
}

[data-theme=dark] .qdnapro-button.button-subtle.button-disabled, [data-theme=dark] .qdnapro-button.button-subtle-purple-bg.button-disabled {
  background: transparent !important;
  color: #6b7280 !important;
}

.qdnapro-button.button-pill {
  border-radius: 999px;
  padding-left: 24px;
  padding-right: 24px;
}

.qdnapro-button.button-pill.button-icon-only {
  border-radius: 50%;
}

.qdnapro-button.button-pill.button-size-small {
  padding-left: 20px;
  padding-right: 20px;
}

.qdnapro-button.button-pill.button-size-touch {
  padding-left: 20px;
  padding-right: 20px;
}

[data-theme=dark] .qdnapro-button:focus-visible, [data-theme=dark] .qdnapro-button.force-focus {
  outline-color: #a5acff;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.4);
}

qdnapro-calendar-service-button {
  display: block;
  width: 100%;
  box-sizing: border-box;
}

qdnapro-calendar-service-button *,
qdnapro-calendar-service-button *::before,
qdnapro-calendar-service-button *::after {
  box-sizing: border-box;
}

.qdnapro-calendar-service-button .csb-inner {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--c-grey-100);
  border-radius: var(--r-2);
  background: var(--c-bg-card, #ffffff);
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  outline: none;
  transition: background 150ms ease, border-color 150ms ease;
}

.qdnapro-calendar-service-button .csb-icon-tile {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: var(--r-1);
  background: var(--csb-tint, var(--c-grey-50));
  color: var(--csb-accent, var(--c-grey-600));
}

.qdnapro-calendar-service-button .csb-icon-tile qdnapro-icon {
  width: 20px;
  height: 20px;
  color: inherit;
}

.qdnapro-calendar-service-button .csb-label {
  font-size: 13.5px;
  font-weight: 500;
  color: var(--c-grey-950, #0b0b0d);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-calendar-service-button .csb-inner:hover {
  background: var(--c-bg-subtle-hover, #f0f1f2);
  border-color: var(--c-grey-200, #d1d5db);
}

.qdnapro-calendar-service-button .csb-inner:active {
  background: var(--c-action-08, rgba(70, 82, 243, 0.08));
}

.qdnapro-calendar-service-button .csb-inner:focus-visible {
  box-shadow: 0 0 0 2px var(--c-purple-500, #40499a), 0 0 0 4px var(--c-action-25, rgba(70, 82, 243, 0.25));
}

.qdnapro-calendar-service-button--google .csb-icon-tile {
  --csb-accent: #4285f4;
  --csb-tint: rgba(66, 133, 244, 0.12);
}

.qdnapro-calendar-service-button--outlook .csb-icon-tile {
  --csb-accent: #0072c6;
  --csb-tint: rgba(0, 114, 198, 0.12);
}

.qdnapro-calendar-service-button--apple .csb-icon-tile {
  --csb-accent: #1c1b29;
  --csb-tint: rgba(28, 27, 41, 0.08);
}

[data-theme=dark] .qdnapro-calendar-service-button .csb-inner {
  background: var(--c-grey-800, #2e3036);
  border-color: var(--c-grey-700, #40444d);
}

[data-theme=dark] .qdnapro-calendar-service-button .csb-label {
  color: var(--c-grey-100, #e7e9ec);
}

[data-theme=dark] .qdnapro-calendar-service-button .csb-inner:hover {
  background: var(--c-grey-700, #40444d);
  border-color: var(--c-grey-600, #565b66);
}

.qdnapro-celebration {
  display: block;
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.qdnapro-celebration .qdnapro-celebration-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.qdnapro-party-scene {
  display: block;
}

.qdnapro-party-scene .ps-scene {
  position: relative;
  width: 100%;
  border-radius: 22px;
  overflow: hidden;
  background: radial-gradient(70% 80% at 50% 62%, var(--c-purple-500) 0%, var(--c-sidebar-bg) 55%, var(--c-purple-600) 100%);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}

.qdnapro-party-scene .ps-layer {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
}

.qdnapro-party-scene .ps-guest {
  opacity: 0;
  transform: translateY(2.2%) scale(0.975);
  transform-origin: 50% 90%;
  transition: opacity 0.5s ease, transform 0.55s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.qdnapro-party-scene .ps-guest.is-here {
  opacity: 1;
  transform: none;
}

.qdnapro-party-scene .ps-controls {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 14px;
}

.qdnapro-party-scene .ps-btn {
  position: relative;
  overflow: hidden;
  appearance: none;
  cursor: pointer;
  font-family: inherit;
  border: none;
  border-radius: 16px;
  padding: 16px 32px;
  min-width: 240px;
  background: var(--c-text-heading);
  color: var(--c-text-on-action);
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -0.01em;
  box-shadow: 0 10px 26px -10px rgba(0, 0, 0, 0.5), inset 0 0 0 1px rgba(255, 255, 255, 0.1);
  transition: transform 0.1s ease;
}

.qdnapro-party-scene .ps-btn:active {
  transform: scale(0.97);
}

.qdnapro-party-scene .ps-fill {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 0%;
  background: linear-gradient(90deg, var(--c-purple-500) 0%, var(--c-purple-400) 55%, var(--c-warn-yellow-600) 100%);
  z-index: 0;
}

.qdnapro-party-scene .ps-lbl {
  position: relative;
  z-index: 1;
  display: inline-block;
  white-space: nowrap;
}

.qdnapro-party-scene .ps-reset {
  appearance: none;
  cursor: pointer;
  font-family: inherit;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 14px;
  padding: 14px 20px;
  background: transparent;
  color: var(--c-bg-subtle-purple);
  font-size: 14px;
  font-weight: 600;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, border-color 0.16s;
}

.qdnapro-party-scene .ps-reset.is-shown {
  opacity: 1;
  pointer-events: auto;
}

.qdnapro-party-scene .ps-reset:hover {
  border-color: var(--c-warn-red-400);
  color: var(--c-warn-red-300);
}

.qdnapro-party-scene .ps-count {
  width: 100%;
  text-align: center;
  font-size: 13px;
  color: var(--c-text-disabled-pp);
  font-variant-numeric: tabular-nums;
}

.qdnapro-party-scene .ps-count b {
  color: var(--c-bg-subtle-purple);
  font-weight: 700;
}

.qdnapro-score-count {
  display: block;
  text-align: center;
}

.qdnapro-score-count .sc-num {
  font-size: 56px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--c-text-on-action);
  font-variant-numeric: tabular-nums;
  display: inline-block;
}

.qdnapro-score-count .sc-num.is-pop {
  animation: qdnapro-score-pop 0.42s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.qdnapro-score-count .sc-label {
  margin-top: 6px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0;
  color: rgba(255, 255, 255, 0.72);
}

@keyframes qdnapro-score-pop {
  0% {
    transform: scale(1);
  }
  45% {
    transform: scale(1.16);
  }
  100% {
    transform: scale(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-score-count .sc-num.is-pop {
    animation: none;
  }
}
.qdnapro-checkbox {
  --cb-size: 16px;
  --cb-border: var(--c-grey-300);
  --cb-bg: #ffffff;
  --cb-bg-hover: var(--c-grey-50);
  --cb-filled-bg: var(--c-action-500);
  --cb-filled-border: var(--c-action-500);
  --cb-mark: #ffffff;
  --cb-focus-ring: var(--c-purple-500);
  --cb-focus-glow: rgba(70, 82, 243, 0.25);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: var(--cb-size);
  height: var(--cb-size);
  flex-shrink: 0;
  border: 1px solid var(--cb-border);
  border-radius: 4px;
  background: var(--cb-bg);
  cursor: pointer;
  user-select: none;
  transition: background-color 120ms ease-out, border-color 120ms ease-out;
}

.qdnapro-checkbox .checkbox-mark {
  position: absolute;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 12px;
  height: 12px;
  color: var(--cb-mark);
  pointer-events: none;
  transform: scale(0);
  opacity: 0;
  transition: transform 220ms cubic-bezier(0.34, 1.35, 0.64, 1), opacity 140ms ease-out;
}

.qdnapro-checkbox .checkbox-mark svg {
  fill: currentColor;
  width: 100%;
  height: 100%;
}

.qdnapro-checkbox .checkbox-mark-dash {
  width: 8px;
  height: 2px;
  background: var(--cb-mark);
  border-radius: 1px;
}

.qdnapro-checkbox {
  position: relative;
}

.qdnapro-checkbox.checkbox-checked .checkbox-mark-check {
  transform: scale(1);
  opacity: 1;
}

.qdnapro-checkbox.checkbox-indeterminate .checkbox-mark-dash {
  transform: scale(1);
  opacity: 1;
}

.qdnapro-checkbox.checkbox-shape-square {
  border-radius: 4px;
}

.qdnapro-checkbox.checkbox-shape-round {
  border-radius: 50%;
}

.qdnapro-checkbox.checkbox-size-touch {
  --cb-size: 44px;
  border-width: 2px;
}

.qdnapro-checkbox.checkbox-size-touch.checkbox-shape-square {
  border-radius: 8px;
}

.qdnapro-checkbox.checkbox-size-touch .checkbox-mark {
  width: 32px;
  height: 32px;
}

.qdnapro-checkbox.checkbox-size-touch .checkbox-mark-dash {
  width: 22px;
  height: 5px;
  border-radius: 2px;
}

.qdnapro-checkbox.checkbox-size-touch-sm {
  --cb-size: 28px;
}

.qdnapro-checkbox.checkbox-size-touch-sm.checkbox-shape-square {
  border-radius: 6px;
}

.qdnapro-checkbox.checkbox-size-touch-sm .checkbox-mark {
  width: 20px;
  height: 20px;
}

.qdnapro-checkbox.checkbox-size-touch-sm .checkbox-mark-dash {
  width: 14px;
  height: 3px;
  border-radius: 1.5px;
}

.qdnapro-checkbox.checkbox-checked, .qdnapro-checkbox.checkbox-indeterminate {
  background: var(--cb-filled-bg);
  border-color: var(--cb-filled-border);
}

.qdnapro-checkbox:hover:not(.checkbox-disabled):not(.checkbox-checked):not(.checkbox-indeterminate) {
  background: var(--cb-bg-hover);
}

.qdnapro-checkbox:active:not(.checkbox-disabled) {
  background-image: linear-gradient(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.15));
}

.qdnapro-checkbox:focus {
  outline: none;
}

.qdnapro-checkbox:focus-visible, .qdnapro-checkbox.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--cb-focus-ring), 0 0 0 6px var(--cb-focus-glow);
}

.qdnapro-checkbox.force-hover:not(.checkbox-disabled):not(.checkbox-checked):not(.checkbox-indeterminate) {
  background: var(--cb-bg-hover);
}

.qdnapro-checkbox.force-pressed:not(.checkbox-disabled) {
  background-image: linear-gradient(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.15));
}

.qdnapro-checkbox.checkbox-state-error {
  --cb-border: var(--c-signal-red-text);
  --cb-filled-bg: var(--c-warn-red-400);
  --cb-filled-border: var(--c-signal-red-text);
  --cb-focus-ring: var(--c-signal-red-text);
  --cb-focus-glow: rgba(198, 90, 90, 0.25);
}

.qdnapro-checkbox.checkbox-state-success {
  --cb-border: var(--c-signal-green-text);
  --cb-filled-bg: var(--c-chip-green-2-hover);
  --cb-filled-border: var(--c-signal-green-text);
  --cb-focus-ring: var(--c-signal-green-text);
  --cb-focus-glow: rgba(66, 139, 110, 0.25);
}

.qdnapro-checkbox.checkbox-disabled {
  --cb-border: var(--c-grey-300);
  --cb-bg: var(--c-grey-50);
  --cb-filled-bg: var(--c-grey-50);
  --cb-filled-border: var(--c-grey-300);
  --cb-mark: var(--c-text-disabled);
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

[data-theme=dark] .qdnapro-checkbox {
  --cb-border: #565b66;
  --cb-bg: #2e3036;
  --cb-bg-hover: #40444d;
  --cb-filled-bg: #4652f3;
  --cb-filled-border: #4652f3;
  --cb-mark: #ffffff;
  --cb-focus-ring: #a5acff;
  --cb-focus-glow: rgba(70, 82, 243, 0.4);
}

[data-theme=dark] .qdnapro-checkbox.checkbox-state-error {
  --cb-border: #c65a5a;
  --cb-filled-bg: #c65a5a;
  --cb-filled-border: #c65a5a;
  --cb-focus-ring: #e89090;
}

[data-theme=dark] .qdnapro-checkbox.checkbox-state-success {
  --cb-border: #428b6e;
  --cb-filled-bg: #428b6e;
  --cb-filled-border: #428b6e;
  --cb-focus-ring: #7ccfa8;
}

[data-theme=dark] .qdnapro-checkbox.checkbox-disabled {
  --cb-border: #565b66;
  --cb-bg: #40444d;
  --cb-filled-bg: #40444d;
  --cb-filled-border: #565b66;
  --cb-mark: #6b7280;
}

/* === theme: glass — added 2026-06-08 ===
   Translucent checkbox for a dark / coloured surface (login). Activate via
   data-theme="glass" on an ancestor; lila focus ring to match the inputs. */
[data-theme=glass] .qdnapro-checkbox {
  --cb-border: rgba(255, 255, 255, 0.45);
  --cb-bg: rgba(255, 255, 255, 0.15);
  --cb-bg-hover: rgba(255, 255, 255, 0.25);
  /* Checked = solid white box with a dark check, so it stands out on the
     dark surface (a tinted fill blends into the indigo - too low contrast). */
  --cb-filled-bg: #ffffff;
  --cb-filled-border: #ffffff;
  --cb-mark: #26215c;
  --cb-focus-ring: #9a8fff;
  --cb-focus-glow: rgba(154, 143, 255, 0.35);
}

[data-theme=glass] .qdnapro-checkbox.checkbox-disabled {
  --cb-border: rgba(255, 255, 255, 0.25);
  --cb-bg: rgba(255, 255, 255, 0.08);
  --cb-filled-bg: rgba(255, 255, 255, 0.08);
  --cb-filled-border: rgba(255, 255, 255, 0.25);
  --cb-mark: rgba(255, 255, 255, 0.4);
}

/* ============================================================
 * qdnapro-color-picker
 * Pastel swatch picker. Palette matches the tasklist-card
 * .tlc-color-* tints exactly so the swatch == the card tint.
 * ============================================================ */
.qdnapro-color-picker {
  display: block;
  box-sizing: border-box;
}

.qdnapro-color-picker *,
.qdnapro-color-picker *::before,
.qdnapro-color-picker *::after {
  box-sizing: border-box;
}

.qdnapro-color-picker .qcp-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.qdnapro-color-picker .qcp-swatch {
  position: relative;
  width: 36px;
  height: 36px;
  padding: 0;
  border-radius: 10px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: var(--qcp-bg, #eef0f2);
  cursor: pointer;
  transition: transform 120ms ease, box-shadow 120ms ease, border-color 120ms ease;
}

.qdnapro-color-picker .qcp-swatch:hover {
  transform: translateY(-1px);
}

.qdnapro-color-picker .qcp-swatch:active {
  transform: translateY(0);
}

.qdnapro-color-picker .qcp-swatch:focus-visible {
  outline: none;
  border-color: var(--c-purple-500);
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.2);
}

.qdnapro-color-picker .qcp-swatch.qcp-swatch-selected {
  border-color: var(--c-purple-500);
  box-shadow: 0 0 0 2px var(--c-purple-500), 0 0 0 5px rgba(70, 82, 243, 0.18);
}

/* Variant "soft": LIGHT-purple selection ring (same hue as the focus glow)
   instead of the heavy dark var(--c-purple-500) ring. The checkmark still marks the pick.
   Looks much better on dark / saturated swatches. [Kim 2026-06-22] */
.qdnapro-color-picker.qcp-variant-soft .qcp-swatch.qcp-swatch-selected {
  border-color: rgba(70, 82, 243, 0.45);
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.22);
}

/* Check mark - visible only on the selected swatch. */
.qdnapro-color-picker .qcp-check {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
}

.qdnapro-color-picker .qcp-swatch-selected .qcp-check {
  opacity: 1;
}

.qdnapro-color-picker .qcp-check::after {
  content: "";
  width: 10px;
  height: 6px;
  /* --qcp-check is set per swatch by the JS contrast detector:
     white on dark swatches, brand indigo on light ones. */
  border-left: 2px solid var(--qcp-check, #40499a);
  border-bottom: 2px solid var(--qcp-check, #40499a);
  transform: rotate(-45deg) translateY(-1px);
}

/* Palette - matches the .tlc-color-* tasklist-card tints exactly. */
.qdnapro-color-picker .qcp-swatch--grey {
  --qcp-bg: var(--c-grey-50);
}

.qdnapro-color-picker .qcp-swatch--red {
  --qcp-bg: var(--c-signal-red-bg);
}

.qdnapro-color-picker .qcp-swatch--yellow {
  --qcp-bg: var(--c-chip-yellow-bg);
}

.qdnapro-color-picker .qcp-swatch--green {
  --qcp-bg: var(--c-chip-green-bg);
}

.qdnapro-color-picker .qcp-swatch--blue {
  --qcp-bg: var(--c-signal-blue-bg);
}

.qdnapro-color-picker .qcp-swatch--bright-blue {
  --qcp-bg: var(--c-chip-bright-blue-2-bg);
}

.qdnapro-color-picker .qcp-swatch--pink {
  --qcp-bg: var(--c-signal-pink-bg);
}

.qdnapro-color-picker .qcp-swatch--purple {
  --qcp-bg: var(--c-chip-purple-bg);
}

.qdnapro-color-picker.qcp-disabled {
  opacity: 0.55;
  pointer-events: none;
}

/* Semantic palette (floweditor per-option appearance modal, 12.07.2026):
   standaard / positive / warning / negative / neutral_alt — the closed
   5-value set the OptionAppearanceOverlay.vue datamodel uses. Tints come
   from the shared signal design tokens (same tokens qdnapro-answer-button's
   --positive/--warning/--negative/--neutral_alt variants already use) so a
   picked colour reads identically in the picker and in the live preview.
   "standaard" has no signal token (it maps to '' in the datamodel) — a
   light brand-purple neutral (--c-purple-50) fits the "neutraal
   purper/grijs" ask better than plain grey in this purple-branded product. */
.qdnapro-color-picker .qcp-swatch--standaard {
  --qcp-bg: var(--c-purple-50, #e6e9ff);
}

.qdnapro-color-picker .qcp-swatch--positive {
  --qcp-bg: var(--c-signal-green-bg, #c5f5e2);
}

.qdnapro-color-picker .qcp-swatch--warning {
  --qcp-bg: var(--c-signal-yellow-bg, #feedb8);
}

.qdnapro-color-picker .qcp-swatch--negative {
  --qcp-bg: var(--c-signal-red-bg, #fee3e3);
}

.qdnapro-color-picker .qcp-swatch--neutral_alt {
  --qcp-bg: var(--c-signal-blue-bg, #e6eff9);
}

.qdnapro-color-panel {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.qdnapro-color-panel *,
.qdnapro-color-panel *::before,
.qdnapro-color-panel *::after {
  box-sizing: border-box;
}

.qcp2-auto {
  display: block;
  width: 100%;
  padding: 10px 14px;
  border-radius: 8px;
  border: 1px solid var(--c-border-card, #e1e3e6);
  background: var(--c-bg-card, #ffffff);
  color: var(--c-text-heading, #1a1f4d);
  font: inherit;
  font-weight: 600;
  text-align: center;
  cursor: pointer;
  transition: border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
}

.qcp2-auto:hover {
  background: var(--c-bg-card-hover, #f7f8fa);
}

.qcp2-auto:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--focus-ring), 0 0 0 5px var(--focus-glow);
}

.qcp2-auto.qcp2-auto-selected {
  border-color: var(--c-purple-500, #40499a);
  background: var(--c-purple-50, #e6e9ff);
  box-shadow: 0 0 0 1px var(--c-purple-500, #40499a);
  color: var(--c-purple-700, #2a3268);
}

.qcp2-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
}

.qcp2-swatch {
  position: relative;
  width: 100%;
  aspect-ratio: 1/1;
  padding: 0;
  border-radius: 8px;
  border: 1px solid var(--c-border-soft, rgba(0, 0, 0, 0.07));
  background: var(--qcp2-bg, #eef0f2);
  cursor: pointer;
  transition: transform 120ms ease, box-shadow 120ms ease, border-color 120ms ease;
}

.qcp2-swatch:hover {
  transform: translateY(-1px);
}

.qcp2-swatch:active {
  transform: translateY(0);
}

.qcp2-swatch:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--focus-ring), 0 0 0 5px var(--focus-glow);
}

.qcp2-swatch.qcp2-swatch-selected {
  border-color: var(--c-purple-500, #40499a);
  box-shadow: 0 0 0 2px var(--c-purple-500, #40499a);
}

.qcp2-check {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
}

.qcp2-swatch-selected .qcp2-check {
  opacity: 1;
}

.qcp2-check::after {
  content: "";
  width: 9px;
  height: 5px;
  border-left: 2px solid var(--qcp2-check, var(--c-purple-500, #40499a));
  border-bottom: 2px solid var(--qcp2-check, var(--c-purple-500, #40499a));
  transform: rotate(-45deg) translateY(-1px);
}

.qcp2-more {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--c-text-body, #0b0b0d);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: background 120ms ease, border-color 120ms ease;
}

.qcp2-more:hover {
  background: var(--c-bg-subtle-hover, var(--c-grey-50, #f0f1f2));
}

.qcp2-more:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--focus-ring), 0 0 0 5px var(--focus-glow);
}

.qcp2-more.qcp2-more-selected {
  border-color: var(--c-purple-500, #40499a);
}

.qcp2-more-swatch {
  flex: none;
  width: 22px;
  height: 22px;
  border-radius: 6px;
  border: 1px solid var(--c-border-soft, rgba(0, 0, 0, 0.07));
  background: var(--qcp2-more-bg, transparent);
}

.qcp2-more:not(.qcp2-more-selected) .qcp2-more-swatch {
  background: conic-gradient(from 0deg, var(--c-warn-red-500, #dc2626), var(--c-warn-orange-500, #ea580c), var(--c-warn-yellow-500, #fbbf24), var(--c-success-500, #12805e), var(--c-action-500, #4652f3), var(--c-purple-500, #40499a), var(--c-warn-red-500, #dc2626));
}

.qcp2-more-label {
  flex: auto;
}

.qcp2-wheel-panel {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.qcp2-wheel-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--c-text-heading, #1a1f4d);
}

.qcp2-wheel-input {
  width: 100%;
  height: 44px;
  padding: 0;
  border: 1px solid var(--c-border-card, #e1e3e6);
  border-radius: 8px;
  background: none;
  cursor: pointer;
}

.qcp2-wheel-input:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--focus-ring), 0 0 0 5px var(--focus-glow);
}

.qcp2-wheel-input::-webkit-color-swatch-wrapper {
  padding: 0;
  border-radius: 7px;
}

.qcp2-wheel-input::-webkit-color-swatch {
  border: none;
  border-radius: 7px;
}

.qcp2-wheel-input::-moz-color-swatch {
  border: none;
  border-radius: 7px;
}

.qdnapro-color-panel.qcp2-disabled {
  opacity: 0.55;
  pointer-events: none;
}

.qdnapro-date-picker {
  --date-picker-day: 32px;
  display: block;
  box-sizing: border-box;
  min-width: 232px;
  background: transparent;
  font-family: var(--theme-font-family, "Inter", sans-serif);
  user-select: none;
}

.qdnapro-date-picker.qdnapro-date-picker--panel {
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300);
  border-radius: 8px;
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.15), 0 8px 12px 6px rgba(0, 0, 0, 0.075);
  padding: 10px 12px;
}

.qdnapro-date-picker__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  margin-bottom: 6px;
}

.qdnapro-date-picker__nav {
  display: flex;
  align-items: center;
  gap: 2px;
  flex: none;
}

.qdnapro-date-picker__label {
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: var(--c-text-heading, #1a1f4d);
}

.qdnapro-date-picker__weekdays,
.qdnapro-date-picker__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  justify-items: center;
  gap: 2px;
}

.qdnapro-date-picker__weekdays span {
  font-size: 11px;
  line-height: 16px;
  text-align: center;
  color: var(--c-grey-500, #6b7280);
  padding: 2px 0 4px;
}

.qdnapro-date-picker__day {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--date-picker-day);
  height: var(--date-picker-day);
  border: 0;
  border-radius: 50%;
  padding: 0;
  background: transparent;
  font: inherit;
  font-size: 13px;
  line-height: 1;
  color: var(--c-text-body, #0b0b0d);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 0.1s ease;
}

.qdnapro-date-picker__day:not(.is-disabled):not(.is-selected):hover,
.qdnapro-date-picker__day.force-hover {
  background: var(--c-grey-50, #f0f1f2);
}

.qdnapro-date-picker__day:not(.is-disabled):not(.is-selected):active,
.qdnapro-date-picker__day.force-pressed {
  background: var(--c-grey-100, #e7e9ec);
}

.qdnapro-date-picker__day.is-today {
  font-weight: 700;
  color: var(--c-brand-purple, #40499a);
}

.qdnapro-date-picker__day.is-selected {
  background: var(--c-purple-highlight, #4652f3);
  color: var(--c-text-on-action, #ffffff);
  font-weight: 600;
}

.qdnapro-date-picker__day.is-selected:not(.is-disabled):hover,
.qdnapro-date-picker__day.is-selected.force-hover {
  background: var(--c-action-600, #3540d6);
}

.qdnapro-date-picker__day.is-selected:not(.is-disabled):active,
.qdnapro-date-picker__day.is-selected.force-pressed {
  background: var(--c-action-700, #2a36b8);
}

.qdnapro-date-picker__day.is-muted {
  color: var(--c-grey-400, #a6aab3);
}

.qdnapro-date-picker__day.is-disabled {
  color: var(--c-text-disabled, #898e99);
  cursor: default;
}

.qdnapro-date-picker__day:focus {
  outline: none;
}

.qdnapro-date-picker__day:focus-visible,
.qdnapro-date-picker__day.force-focus {
  outline: 2px solid var(--focus-ring, #40499a);
  outline-offset: 1px;
  box-shadow: 0 0 0 5px var(--focus-glow, rgba(70, 82, 243, 0.25));
}

.qdnapro-date-picker__cell {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  justify-self: stretch;
  height: var(--date-picker-day);
}

.qdnapro-date-picker__cell.is-band::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 0;
  pointer-events: none;
}

.qdnapro-date-picker__cell.is-band-ghost::before {
  background: var(--c-grey-50, #f0f1f2);
}

.qdnapro-date-picker__cell.is-band-fill::before {
  background: var(--c-action-12, rgba(70, 82, 243, 0.12));
}

.qdnapro-date-picker__cell.is-band-round-start::before {
  border-top-left-radius: calc(var(--date-picker-day) / 2);
  border-bottom-left-radius: calc(var(--date-picker-day) / 2);
}

.qdnapro-date-picker__cell.is-band-round-end::before {
  border-top-right-radius: calc(var(--date-picker-day) / 2);
  border-bottom-right-radius: calc(var(--date-picker-day) / 2);
}

.qdnapro-date-picker__cell.is-band-bleed-start::before {
  left: -1px;
}

.qdnapro-date-picker__cell.is-band-bleed-end::before {
  right: -1px;
}

.qdnapro-date-picker__cell.is-band-fill .qdnapro-date-picker__day:not(.is-selected):not(.is-disabled) {
  color: var(--c-brand-purple, #40499a);
  font-weight: 600;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-date-picker__day {
    transition: none;
  }
}
.qdnapro-date-picker[touch] {
  --date-picker-day: 44px;
}

.qdnapro-date-picker[touch] .qdnapro-date-picker__weekdays span {
  font-size: 12px;
}

.qdnapro-date-picker[touch] .qdnapro-date-picker__day {
  font-size: 15px;
}

/* compiled from _divider.scss */
.qdnapro-divider {
  display: block;
  flex-shrink: 0;
  pointer-events: none;
  background: var(--c-border-tree);
  border: 0;
  margin: 0;
  padding: 0;
}

.qdnapro-divider.divider-horizontal {
  width: 100%;
  height: 1px;
}

.qdnapro-divider.divider-vertical {
  width: 1px;
  height: 100%;
  align-self: stretch;
}

.qdnapro-divider.divider-vertical.divider-fixed-length {
  align-self: center;
}

.qdnapro-divider.divider-color-neutral {
  background: var(--c-border-tree);
}

.qdnapro-divider.divider-color-subtle {
  background: rgba(0, 0, 0, 0.1);
}

[data-theme=dark] .qdnapro-divider.divider-color-neutral,
[data-theme-dark] .qdnapro-divider.divider-color-neutral {
  background: rgba(255, 255, 255, 0.12);
}

[data-theme=dark] .qdnapro-divider.divider-color-subtle,
[data-theme-dark] .qdnapro-divider.divider-color-subtle {
  background: rgba(255, 255, 255, 0.08);
}

.qdnapro-document-viewer {
  position: fixed;
  inset: 0;
  z-index: 9500;
  display: flex;
  flex-direction: column;
  background: var(--c-grey-900);
  color: var(--c-bg-subtle-purple);
  -webkit-tap-highlight-color: transparent;
  user-select: none;
  font-family: var(--ff, "Inter", system-ui, -apple-system, sans-serif);
  transition: transform 180ms ease, opacity 180ms ease;
}
.qdnapro-document-viewer[hidden] {
  display: none;
}
.qdnapro-document-viewer .qdv-topbar {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 56px;
  padding: 8px 10px;
  padding-top: calc(8px + env(safe-area-inset-top, 0px));
  padding-left: calc(10px + env(safe-area-inset-left, 0px));
  padding-right: calc(10px + env(safe-area-inset-right, 0px));
  background: var(--c-text-heading);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  transition: opacity 200ms ease, transform 200ms ease;
}
.qdnapro-document-viewer .qdv-fname {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.95rem;
  font-weight: 600;
}
.qdnapro-document-viewer .qdv-fname qdnapro-file-icon {
  flex: 0 0 auto;
}
.qdnapro-document-viewer .qdv-fname-text {
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.qdnapro-document-viewer .qdv-tools {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 2px;
}
.qdnapro-document-viewer .qdv-tools qdnapro-icon-btn {
  color: var(--c-border-tree-bright);
}
.qdnapro-document-viewer .qdv-tools qdnapro-icon-btn[hidden] {
  display: none;
}
.qdnapro-document-viewer .qdv-close {
  color: var(--c-border-tree-bright);
}
.qdnapro-document-viewer .qdv-stage {
  flex: 1 1 auto;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.qdnapro-document-viewer .qdv-imgwrap {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 180ms ease;
  touch-action: none;
}
.qdnapro-document-viewer .qdv-imgwrap.is-loaded {
  opacity: 1;
}
.qdnapro-document-viewer .qdv-img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  transform-origin: center center;
  will-change: transform;
  -webkit-user-drag: none;
}
.qdnapro-document-viewer .qdv-idoc {
  position: absolute;
  inset: 0;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
  padding: 12px 0 calc(24px + env(safe-area-inset-bottom, 0px));
  box-sizing: border-box;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.28) transparent;
}
.qdnapro-document-viewer .qdv-idoc::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
.qdnapro-document-viewer .qdv-idoc::-webkit-scrollbar-track {
  background: transparent;
}
.qdnapro-document-viewer .qdv-idoc::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.22);
  border-radius: 8px;
}
@media (max-width: 640px) {
  .qdnapro-document-viewer .qdv-idoc {
    padding-top: 0;
  }
}
.qdnapro-document-viewer .qdv-pdf {
  position: absolute;
  inset: 0;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
  display: flex;
  justify-content: center;
  overflow-anchor: none;
}
.qdnapro-document-viewer .qdv-pdf.is-zoomed {
  touch-action: pan-x pan-y;
}
.qdnapro-document-viewer .qdv-pdf-pages {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 12px 0 calc(12px + env(safe-area-inset-bottom, 0px));
  transform-origin: top center;
  will-change: transform;
}
.qdnapro-document-viewer .qdv-page {
  position: relative;
  background: var(--c-bg-card);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
  max-width: 100%;
  flex: 0 0 auto;
}
.qdnapro-document-viewer .qdv-page canvas {
  display: block;
  width: 100%;
  height: 100%;
}
.qdnapro-document-viewer .qdv-page:not(.is-rendered)::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, var(--c-bg-card-hover) 30%, var(--c-border-soft-2) 50%, var(--c-bg-card-hover) 70%);
  background-size: 200% 100%;
  animation: qdv-shimmer 1.2s ease-in-out infinite;
}
.qdnapro-document-viewer .qdv-pagepill {
  position: absolute;
  left: 50%;
  bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  transform: translateX(-50%);
  background: rgba(20, 22, 40, 0.82);
  color: var(--c-bg-subtle-purple);
  font-size: 0.8rem;
  font-weight: 600;
  padding: 5px 12px;
  border-radius: 999px;
  pointer-events: none;
  opacity: 0;
  transition: opacity 220ms ease;
  z-index: 3;
}
.qdnapro-document-viewer .qdv-pagepill.is-visible {
  opacity: 1;
}
.qdnapro-document-viewer.qdv-chrome-hidden .qdv-pagepill {
  bottom: 16px;
}
.qdnapro-document-viewer .qdv-textlayer {
  position: absolute;
  inset: 0;
  overflow: hidden;
  line-height: 1;
  text-align: initial;
  opacity: 1;
  forced-color-adjust: none;
}
.qdnapro-document-viewer .qdv-textlayer span,
.qdnapro-document-viewer .qdv-textlayer br {
  color: transparent;
  position: absolute;
  white-space: pre;
  cursor: text;
  transform-origin: 0 0;
}
.qdnapro-document-viewer .qdv-textlayer ::selection {
  background: rgba(64, 73, 154, 0.35);
}
.qdnapro-document-viewer .qdv-textlayer .qdv-hl {
  background: rgba(255, 213, 0, 0.45);
  border-radius: 2px;
}
.qdnapro-document-viewer .qdv-textlayer .qdv-hl-current {
  background: rgba(255, 145, 0, 0.7);
}
.qdnapro-document-viewer .qdv-searchbar {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: calc(8px + env(safe-area-inset-top, 0px));
  z-index: 4;
  display: none;
  align-items: center;
  gap: 6px;
  max-width: calc(100% - 24px);
  padding: 6px 8px 6px 12px;
  background: var(--c-chip-bright-blue-text);
  color: var(--c-bg-subtle-purple);
  border-radius: 999px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
}
.qdnapro-document-viewer.qdv-searching .qdv-searchbar {
  display: flex;
}
.qdnapro-document-viewer.qdv-searching .qdv-topbar {
  opacity: 0;
  pointer-events: none;
}
.qdnapro-document-viewer .qdv-search-input {
  flex: 1 1 auto;
  min-width: 80px;
  background: transparent;
  border: 0;
  outline: none;
  color: var(--c-bg-subtle-purple);
  font: inherit;
  font-size: 0.9rem;
}
.qdnapro-document-viewer .qdv-search-input::placeholder {
  color: var(--c-text-disabled-pp);
}
.qdnapro-document-viewer .qdv-search-count {
  flex: 0 0 auto;
  font-size: 0.78rem;
  color: var(--c-sidebar-icon);
  min-width: 38px;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.qdnapro-document-viewer .qdv-searchbar qdnapro-icon-btn {
  color: var(--c-border-tree-bright);
  flex: 0 0 auto;
}
.qdnapro-document-viewer .qdv-media {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.qdnapro-document-viewer .qdv-video {
  max-width: 100%;
  max-height: 100%;
  outline: none;
  background: var(--c-grey-950);
}
.qdnapro-document-viewer .qdv-audio {
  width: 100%;
  max-width: 320px;
  margin-top: 8px;
}
.qdnapro-document-viewer .qdv-loading {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.qdnapro-document-viewer .qdv-thumb {
  position: absolute;
  max-width: 90%;
  max-height: 90%;
  object-fit: contain;
  filter: blur(14px);
  opacity: 0.5;
  transform: scale(1.02);
}
.qdnapro-document-viewer .qdv-spinner {
  position: relative;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 3px solid rgba(255, 255, 255, 0.22);
  border-top-color: var(--c-bg-subtle-purple);
  animation: qdv-spin 0.8s linear infinite;
}
.qdnapro-document-viewer .qdv-card {
  max-width: 320px;
  margin: 0 auto;
  padding: 24px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.qdnapro-document-viewer .qdv-card-icon {
  --qdnapro-icon-size: 44px;
  width: 44px;
  height: 44px;
  color: var(--c-text-disabled-pp);
}
.qdnapro-document-viewer .qdv-card-fileicon {
  margin-bottom: 4px;
}
.qdnapro-document-viewer .qdv-card-title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--c-bg-subtle-purple);
}
.qdnapro-document-viewer .qdv-card-text {
  font-size: 0.875rem;
  line-height: 1.4;
  color: var(--c-sidebar-icon);
}
.qdnapro-document-viewer .qdv-card qdnapro-button {
  margin-top: 6px;
}
.qdnapro-document-viewer .qdv-fb {
  position: absolute;
  left: calc(16px + env(safe-area-inset-left, 0px));
  bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  z-index: 4;
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 4px 6px 4px 14px;
  background: rgba(29, 32, 56, 0.94);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.38), 0 1px 2px rgba(0, 0, 0, 0.4);
  transition: opacity 200ms ease, transform 200ms ease;
}
.qdnapro-document-viewer .qdv-fb[hidden] {
  display: none;
}
.qdnapro-document-viewer .qdv-fb-label {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--c-border-tree-bright);
  white-space: nowrap;
  padding-right: 4px;
}
.qdnapro-document-viewer .qdv-fb-label[hidden] {
  display: none;
}
.qdnapro-document-viewer .qdv-fb qdnapro-icon-btn {
  color: var(--c-border-tree-bright);
  border-radius: 50%;
}
.qdnapro-document-viewer .qdv-fb qdnapro-icon-btn.is-active {
  background: rgba(255, 255, 255, 0.16);
  color: var(--c-text-on-action);
}
.qdnapro-document-viewer .qdv-fb-note {
  position: absolute;
  left: calc(16px + env(safe-area-inset-left, 0px));
  bottom: calc(72px + env(safe-area-inset-bottom, 0px));
  right: calc(16px + env(safe-area-inset-right, 0px));
  max-width: 380px;
  z-index: 5;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px 14px 12px;
  background: var(--c-text-heading);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45);
}
.qdnapro-document-viewer .qdv-fb-note[hidden] {
  display: none;
}
.qdnapro-document-viewer .qdv-fb-note-head {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--c-bg-subtle-purple);
  line-height: 1.35;
}
.qdnapro-document-viewer .qdv-fb-note-head qdnapro-icon {
  flex: 0 0 auto;
  color: var(--c-text-disabled-pp);
  margin-top: 1px;
}
.qdnapro-document-viewer .qdv-fb-note-sub {
  margin: -4px 0 0;
  font-size: 0.78rem;
  color: var(--c-text-disabled-pp);
  line-height: 1.4;
}
.qdnapro-document-viewer .qdv-fb-note-input {
  width: 100%;
  box-sizing: border-box;
  resize: none;
  background: var(--c-chip-bright-blue-text);
  color: var(--c-bg-subtle-purple);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 8px;
  padding: 8px 10px;
  font: inherit;
  font-size: 0.85rem;
  line-height: 1.4;
  outline: none;
}
.qdnapro-document-viewer .qdv-fb-note-input::placeholder {
  color: var(--c-text-disabled-pp);
}
.qdnapro-document-viewer .qdv-fb-note-input:focus {
  border-color: rgba(255, 255, 255, 0.32);
}
.qdnapro-document-viewer .qdv-fb-note-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}
.qdnapro-document-viewer .qdv-fb-note-actions qdnapro-button.button-subtle {
  color: var(--c-border-tree-bright);
}
.qdnapro-document-viewer.qdv-chrome-hidden .qdv-topbar {
  opacity: 0;
  transform: translateY(-100%);
  pointer-events: none;
}
.qdnapro-document-viewer.qdv-chrome-hidden .qdv-fb {
  opacity: 0;
  transform: translateY(8px);
  pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-document-viewer {
    transition: none;
  }
  .qdnapro-document-viewer .qdv-topbar, .qdnapro-document-viewer .qdv-fb {
    transition: none;
  }
  .qdnapro-document-viewer .qdv-spinner {
    animation-duration: 1.6s;
  }
}

@keyframes qdv-spin {
  to {
    transform: rotate(360deg);
  }
}
@keyframes qdv-shimmer {
  from {
    background-position: 200% 0;
  }
  to {
    background-position: -200% 0;
  }
}
:root.qdv-open,
:root.qdv-open body {
  overflow: hidden;
}

.text-h1 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 60px;
  line-height: 72px;
}

.text-h2 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 40px;
  line-height: 56px;
}

.text-h3 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 32px;
  line-height: 48px;
}

.text-h4 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 28px;
  line-height: 44px;
}

.text-h5 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 24px;
  line-height: 36px;
}

.text-h6 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 20px;
  line-height: 24px;
}

.text-body-xs {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 10px;
  line-height: 20px;
}

.text-body-sm {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 12px;
  line-height: 20px;
}

.text-body-md {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 14px;
  line-height: 24px;
}

.text-body-lg {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
}

.text-body-xl {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 20px;
  line-height: 32px;
}

.qdnapro-drop-zone {
  --dz-c-border: var(--c-purple-500);
  --dz-c-border-highlight: var(--c-action-500);
  --dz-c-bg-tint: rgba(70, 82, 243, 0.08);
  --dz-c-bg-tint-full: rgba(70, 82, 243, 0.14);
  --dz-c-overlay-text: var(--c-purple-500);
  --dz-c-overlay-text-highlight: var(--c-action-500);
  --dz-c-reject-border: var(--c-signal-red-text);
  --dz-c-reject-bg: rgba(198, 90, 90, 0.10);
  --dz-c-reject-bg-full: rgba(198, 90, 90, 0.16);
  --dz-c-reject-text: var(--c-chip-red-text);
  position: relative;
  display: block;
  box-sizing: border-box;
  border-radius: 12px;
  border: 2px solid transparent;
  transition: border-color 180ms ease, background 180ms ease;
}

.qdnapro-drop-zone .drop-zone-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  opacity: 0;
  transition: opacity 180ms ease;
  z-index: 2;
}

.qdnapro-drop-zone .drop-zone-march-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  color: transparent;
  pointer-events: none;
}

.qdnapro-drop-zone .drop-zone-march-rect {
  width: calc(100% - 2px);
  height: calc(100% - 2px);
  animation: drop-zone-march 1.6s linear infinite;
}

.qdnapro-drop-zone.drop-zone-active .drop-zone-march-svg, .qdnapro-drop-zone.force-active .drop-zone-march-svg {
  color: var(--dz-march-color);
}

.qdnapro-drop-zone .drop-zone-overlay-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 16px 24px;
  text-align: center;
}

.qdnapro-drop-zone .drop-zone-overlay-icon {
  width: 32px;
  height: 32px;
  color: var(--dz-c-overlay-text);
}

.qdnapro-drop-zone.drop-zone-active .drop-zone-overlay-icon, .qdnapro-drop-zone.force-active .drop-zone-overlay-icon {
  animation: drop-zone-icon-figure8 6s ease-in-out infinite;
}

.qdnapro-drop-zone .drop-zone-overlay-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

.qdnapro-drop-zone .drop-zone-overlay-text {
  font-family: "Inter", sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--dz-c-overlay-text);
  line-height: 1.3;
}

.qdnapro-drop-zone .drop-zone-overlay-hint {
  font-family: "Inter", sans-serif;
  font-size: 13px;
  font-weight: 400;
  color: var(--dz-c-overlay-text);
  opacity: 0.7;
  line-height: 1.3;
}

.qdnapro-drop-zone > :not(.drop-zone-overlay):not(.drop-zone-input) {
  transition: opacity 180ms ease, filter 180ms ease, width 320ms ease-in-out;
}

.qdnapro-drop-zone.drop-zone-active > :not(.drop-zone-overlay):not(.drop-zone-input) {
  opacity: 0.45;
  filter: blur(6px);
}

.qdnapro-drop-zone.drop-zone-style-dashed.drop-zone-active:not(.drop-zone-reject) {
  border: 2px solid transparent;
  background: radial-gradient(ellipse at top left, var(--dz-c-bg-tint), transparent 55%), radial-gradient(ellipse at bottom right, var(--dz-c-bg-tint), transparent 55%);
  --dz-march-color: var(--dz-c-border);
}

.qdnapro-drop-zone.drop-zone-style-solid.drop-zone-active:not(.drop-zone-reject) {
  border: 2px solid var(--dz-c-border);
  background: radial-gradient(ellipse at top left, var(--dz-c-bg-tint), transparent 55%), radial-gradient(ellipse at bottom right, var(--dz-c-bg-tint), transparent 55%);
}

.qdnapro-drop-zone.drop-zone-style-highlight.drop-zone-active:not(.drop-zone-reject) {
  border: 2px solid transparent;
  background: var(--dz-c-bg-tint-full);
  --dz-c-overlay-text: var(--dz-c-overlay-text-highlight);
  --dz-march-color: var(--dz-c-border-highlight);
}

.qdnapro-drop-zone.drop-zone-style-dashed.drop-zone-active.drop-zone-reject {
  border: 2px dashed var(--dz-c-reject-border);
  background: radial-gradient(ellipse at top left, var(--dz-c-reject-bg), transparent 55%), radial-gradient(ellipse at bottom right, var(--dz-c-reject-bg), transparent 55%);
  --dz-c-overlay-text: var(--dz-c-reject-text);
}

.qdnapro-drop-zone.drop-zone-style-solid.drop-zone-active.drop-zone-reject {
  border: 2px solid var(--dz-c-reject-border);
  background: radial-gradient(ellipse at top left, var(--dz-c-reject-bg), transparent 55%), radial-gradient(ellipse at bottom right, var(--dz-c-reject-bg), transparent 55%);
  --dz-c-overlay-text: var(--dz-c-reject-text);
}

.qdnapro-drop-zone.drop-zone-style-highlight.drop-zone-active.drop-zone-reject {
  border: 2px dashed var(--dz-c-reject-border);
  background: var(--dz-c-reject-bg-full);
  --dz-c-overlay-text: var(--dz-c-reject-text);
}

.qdnapro-drop-zone.drop-zone-active .drop-zone-overlay {
  opacity: 1;
}

.qdnapro-drop-zone.drop-zone-clickable {
  cursor: pointer;
}

.qdnapro-drop-zone.drop-zone-clickable:not(.drop-zone-active):hover {
  border-color: var(--dz-c-border);
  opacity: 1;
}

.qdnapro-drop-zone.drop-zone-disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

[data-theme=dark] .qdnapro-drop-zone {
  --dz-c-border: #a5acff;
  --dz-c-border-highlight: #c4caff;
  --dz-c-bg-tint: rgba(165, 172, 255, 0.10);
  --dz-c-bg-tint-full: rgba(165, 172, 255, 0.18);
  --dz-c-overlay-text: #c4caff;
  --dz-c-overlay-text-highlight: #d6daff;
  --dz-c-reject-border: #fbaaaa;
  --dz-c-reject-bg: rgba(251, 170, 170, 0.10);
  --dz-c-reject-bg-full: rgba(251, 170, 170, 0.18);
  --dz-c-reject-text: #fee3e3;
}

@keyframes drop-zone-march {
  to {
    stroke-dashoffset: -12;
  }
}
@keyframes drop-zone-icon-figure8 {
  0% {
    transform: translate(0, 0);
  }
  12.5% {
    transform: translate(4px, 3px);
  }
  25% {
    transform: translate(5px, 0);
  }
  37.5% {
    transform: translate(4px, -3px);
  }
  50% {
    transform: translate(0, 0);
  }
  62.5% {
    transform: translate(-4px, 3px);
  }
  75% {
    transform: translate(-5px, 0);
  }
  87.5% {
    transform: translate(-4px, -3px);
  }
  100% {
    transform: translate(0, 0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-drop-zone .drop-zone-overlay-icon {
    animation: none;
  }
  .qdnapro-drop-zone::before {
    animation: none;
  }
}
.qdnapro-edit-frame {
  border-radius: var(--r-card);
  background-color: var(--c-purple-50);
  background-image: radial-gradient(circle, #9d94e8 1px, transparent 1px);
  background-size: 20px 20px;
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(70, 82, 243, 0.15);
  box-shadow: inset 0 4px 32px rgba(70, 82, 243, 0.06), inset 0 1px 8px rgba(70, 82, 243, 0.04);
}

[data-theme=dark] .qdnapro-edit-frame,
[data-theme-dark] .qdnapro-edit-frame {
  background-color: var(--c-grey-900);
  background-image: radial-gradient(circle, rgba(165, 172, 255, 0.22) 1px, transparent 1px);
  border-color: var(--c-white-06);
  box-shadow: inset 0 4px 32px rgba(0, 0, 0, 0.45), inset 0 1px 8px rgba(0, 0, 0, 0.3);
}

.qdnapro-emoji-sheet {
  display: contents;
}

.qdnapro-bottom-sheet.es-sheet {
  z-index: 21000;
}

.qdnapro-bottom-sheet.es-sheet .bs-panel {
  height: 82%;
  max-height: 82%;
  padding: 4px 6px 0;
}

.qdnapro-bottom-sheet.es-sheet .bs-handle-zone {
  padding: 8px 0 4px;
}

.qdnapro-bottom-sheet.es-sheet .bs-body {
  overflow: hidden;
  gap: 0;
  padding-bottom: 0;
}

.es-root {
  position: relative;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.es-root .es-emoji,
.es-root .es-tone,
.esp-root .es-emoji,
.esp-root .es-tone {
  font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif;
}

.es-root .es-icon {
  width: 24px;
  height: 24px;
  display: block;
  flex-shrink: 0;
}

.es-root .es-tab .es-icon {
  width: 22px;
  height: 22px;
}

.es-root .es-search {
  flex-shrink: 0;
  padding: 6px 6px 10px;
}

.es-root .es-search-trigger,
.es-root .es-search-field {
  width: 100%;
  height: 40px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 12px;
  border: none;
  border-radius: 12px;
  background: var(--c-white-08);
  color: var(--c-white-55);
  font-size: 15px;
}

.es-root .es-search-trigger {
  cursor: text;
  text-align: left;
}

.es-root .es-search-placeholder {
  color: var(--c-white-45);
}

.es-root .es-search-field {
  display: none;
}

.es-root.es-searching .es-search-trigger {
  display: none;
}

.es-root.es-searching .es-search-field {
  display: flex;
}

.es-root .es-search-field-icon {
  color: var(--c-white-45);
}

.es-root .es-search-input {
  flex: 1;
  min-width: 0;
  border: none;
  background: none;
  outline: none;
  color: var(--c-text-on-action);
  font-size: 15px;
  font-family: inherit;
}

.es-root .es-search-input::placeholder {
  color: var(--c-white-45);
}

.es-root .es-search-cancel {
  flex-shrink: 0;
  border: none;
  background: none;
  color: var(--c-text-on-action);
  font-size: 15px;
  font-family: inherit;
  cursor: pointer;
  padding: 0 2px;
}

.es-root .es-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.es-root .es-scroll::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.es-root .es-section-title {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 8px 8px 4px;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--c-white-45);
  background: rgba(38, 38, 44, 0.86);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.es-root .es-grid {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  padding: 2px 4px 6px;
}

.es-root .es-emoji {
  aspect-ratio: 1/1;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: none;
  border-radius: 10px;
  padding: 0;
  font-size: 27px;
  line-height: 1;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}

.es-root .es-emoji:active {
  background: var(--c-white-14);
}

.es-root.es-has-query .es-section {
  display: none;
}

.es-root .es-results {
  padding-top: 8px;
}

.es-root .es-empty {
  padding: 44px 16px;
  text-align: center;
  font-size: 14px;
  color: var(--c-white-45);
}

.es-root .es-catnav {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 6px 6px calc(6px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid var(--c-white-08);
}

.es-root .es-tab {
  flex: 1;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: none;
  border-radius: 10px;
  color: var(--c-white-45);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.es-root .es-tab:active {
  background: var(--c-white-08);
}

.es-root .es-tab.is-active {
  color: #fff;
  background: var(--c-white-12);
}

.es-root .es-tone-popover,
.esp-root .es-tone-popover {
  position: absolute;
  z-index: 5;
  display: flex;
  gap: 2px;
  padding: 6px;
  background: var(--c-bg-card);
  border-radius: 18px;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.28);
}

.es-root .es-tone-popover[hidden],
.esp-root .es-tone-popover[hidden] {
  display: none;
}

.es-root .es-tone-popover::after,
.esp-root .es-tone-popover::after {
  content: "";
  position: absolute;
  bottom: -9px;
  left: var(--es-tail-x, 50%);
  transform: translateX(-50%);
  border: 9px solid transparent;
  border-top-color: #fff;
  border-bottom: 0;
}

.es-root .es-tone,
.esp-root .es-tone {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: none;
  border-radius: 10px;
  padding: 0;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
}

.es-root .es-tone:active,
.esp-root .es-tone:active {
  background: rgba(0, 0, 0, 0.06);
}

qdnapro-popover[data-emoji-sheet] {
  width: min(92vw, 380px);
  padding: 8px;
  box-sizing: border-box;
}

qdnapro-popover[data-emoji-sheet] .esp-root {
  flex: none;
  height: 460px;
}

.esp-root {
  position: relative;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.esp-root .esp-search {
  flex-shrink: 0;
  padding: 4px 0 8px;
}

.esp-root .esp-cats {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 0 10px;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.esp-root .esp-cats::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.esp-root .esp-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.esp-root .esp-scroll::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.esp-root .esp-count {
  padding: 0 0 6px;
  font-size: 12px;
  color: var(--c-text-muted);
}

.esp-root .esp-grid {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  padding: 0 0 8px;
}

.esp-root .esp-grid[hidden] {
  display: none;
}

.esp-root .es-emoji {
  aspect-ratio: 1/1;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: none;
  border-radius: 10px;
  padding: 0;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}

.esp-root .es-emoji:active {
  background: var(--c-bg-card-hover);
}

.esp-root .esp-empty {
  padding: 44px 24px;
  text-align: center;
  font-size: 14px;
  color: var(--c-text-muted);
}

.esp-root .esp-empty[hidden] {
  display: none;
}

.qdnapro-empty-state[hidden] {
  display: none;
}

.qdnapro-empty-state {
  box-sizing: border-box;
  display: block;
  max-width: 620px;
  margin: 32px auto 0;
  padding: 44px 48px 48px;
  text-align: center;
  background: rgba(255, 255, 255, 0.55);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: 16px;
  box-shadow: 0 1px 2px rgba(20, 25, 80, 0.04), 0 8px 24px rgba(20, 25, 80, 0.06);
}

.qdnapro-empty-state * {
  box-sizing: border-box;
}

/* Solid variant (surface="solid"): a light-purple card instead of the
   frosted-glass panel, so the empty state reads well on a plain white
   background (the default glass only works over a tinted/purple backdrop). */
.qdnapro-empty-state.empty-state-solid {
  background: var(--c-bg-subtle-purple);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  border: 1px solid var(--c-purple-50);
  box-shadow: none;
}

.qdnapro-empty-state.empty-state-solid .empty-state-title {
  color: var(--c-sidebar-bg);
}

/* On the light-purple solid surface a plain `subtle` button's neutral grey
   hover (var(--c-grey-50)) all but disappears against the card (var(--c-bg-subtle-purple)). Re-tint any
   subtle action to the subtle-on-purple treatment so a default `subtle` CTA
   reads correctly here without the consumer having to reach for a surface-
   specific button type. The solid card is light-purple in both themes, so
   these values apply in light and dark alike. Values mirror
   .qdnapro-button.button-subtle-purple-bg. [Kim 2026-07-09] */
.qdnapro-empty-state.empty-state-solid .empty-state-actions .qdnapro-button.button-subtle {
  color: var(--c-purple-500);
}

.qdnapro-empty-state.empty-state-solid .empty-state-actions .qdnapro-button.button-subtle:hover:not(.button-disabled) {
  background: var(--c-border-tree-bright);
}

.qdnapro-empty-state.empty-state-solid .empty-state-actions .qdnapro-button.button-subtle:active:not(.button-disabled) {
  background: var(--c-sidebar-icon);
}

/* Page variant (surface="page"): Kim's PWA empty-state design, 21.07.2026.
   Neutral background, no card/surface/shadow -- sits directly on the
   page/app background. Always a single vertical column (title, subtext,
   actions, illustration): the "extended" two-column grid never applies
   here, because the JS keeps `empty-state-extended` off whenever
   `empty-state-page` is on (see qdna-empty-state.js _render()). With
   `empty-state-extended` absent, the host stays plain `display: block`
   (the base .qdnapro-empty-state rule above), so the copy column and the
   illustration column -- both already siblings appended in that order --
   simply stack top to bottom with no extra layout rule needed for that.

   Title and subtext use the semantic --c-brand-purple / --c-text-heading
   custom properties (design-tokens/_design-tokens.scss) instead of
   hardcoded hex, so both automatically read correctly in
   [data-theme=dark] with no separate dark-mode override required here. */
.qdnapro-empty-state.empty-state-page {
  max-width: 480px;
  padding: 8px 24px 32px;
  background: transparent;
  border: none;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.qdnapro-empty-state.empty-state-page .empty-state-title {
  color: var(--c-brand-purple, #40499a);
  font-weight: 700;
}

.qdnapro-empty-state.empty-state-page .empty-state-wink {
  color: var(--c-text-heading, #1a1f4d);
  font-style: normal;
}

/* On-purple variant (surface="on-purple"): the page variant's layout, recoloured for
   a purple surface. The JS gives this variant BOTH empty-state-page and
   empty-state-on-purple, so everything above still applies and only the copy colours
   change here -- one layout, two colour sets, so a spacing fix can never land on one
   and miss the other. Used by the PWA tasklist chooser, which paints its own
   --c-purple-500 background; without this the page variant's brand-purple title and
   dark-grey subtext sit unreadable on that purple. [Kim 30.07.2026] */
.qdnapro-empty-state.empty-state-page.empty-state-on-purple .empty-state-title {
  color: var(--c-text-on-action, #ffffff);
}

.qdnapro-empty-state.empty-state-page.empty-state-on-purple .empty-state-wink {
  color: var(--c-white-70, rgba(255, 255, 255, 0.7));
}

/* Actions row: 0, 1 or 2 qdnapro-button children (see the actions-slot
   contract in qdna-empty-state.js). Every button gets flex: 1 1 0, so a
   single button fills the whole row (soft full-width CTA) and two
   buttons split it evenly with equal height (align-items: stretch) --
   no :only-child / :has() selector needed for that. Radius is bumped to
   the --r-3 (12px) token, scoped to this variant's actions row only, so
   qdnapro-button's normal 8px radius everywhere else is untouched. */
.qdnapro-empty-state.empty-state-page .empty-state-actions {
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
  align-items: stretch;
  flex-wrap: nowrap;
  gap: 12px;
}

.qdnapro-empty-state.empty-state-page .empty-state-actions .qdnapro-button {
  flex: 1 1 0;
  min-width: 0;
  border-radius: var(--r-3, 12px);
}

@media (max-width: 480px) {
  .qdnapro-empty-state.empty-state-page .empty-state-actions {
    flex-wrap: wrap;
  }
  .qdnapro-empty-state.empty-state-page .empty-state-actions .qdnapro-button {
    flex: 1 1 100%;
  }
}
/* Illustration: large, and always faded to 60% opacity -- this is a
   decorative choice, not a "disabled" state, so it is done here rather
   than via qdnapro-illustration's own `disabled` attribute (which
   carries different semantics/styling). The generic 260px cap below is
   removed so the illustration's own `size` attribute fully controls its
   width, same as any other qdnapro-illustration usage. */
.qdnapro-empty-state.empty-state-page .empty-state-illustration {
  margin-top: 32px;
  opacity: 0.6;
}

.qdnapro-empty-state.empty-state-page .empty-state-illustration img,
.qdnapro-empty-state.empty-state-page .empty-state-illustration svg {
  max-width: none;
}

/* Extended layout: two-column grid when preview or illustration is present. */
.qdnapro-empty-state.empty-state-extended {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, auto);
  align-items: center;
  text-align: left;
  max-width: 1020px;
  padding: 36px 40px 40px;
  gap: 28px;
}

.qdnapro-empty-state.empty-state-extended .empty-state-copy {
  align-items: flex-start;
}

.qdnapro-empty-state.empty-state-extended .empty-state-actions {
  justify-content: flex-start;
}

.qdnapro-empty-state .empty-state-copy {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.qdnapro-empty-state .empty-state-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 10px;
  border-radius: 999px;
  background: #e6e9ff;
  color: var(--c-purple-500);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.3px;
  text-transform: uppercase;
  margin-bottom: 16px;
}

.qdnapro-empty-state .empty-state-title {
  font-size: 28px;
  line-height: 36px;
  font-weight: 600;
  color: var(--c-grey-950);
  margin: 0 0 12px;
}

.qdnapro-empty-state .empty-state-wink {
  font-size: 16px;
  line-height: 24px;
  color: var(--c-grey-700);
  margin: 0 0 24px;
  font-style: italic;
}

.qdnapro-empty-state .empty-state-body {
  font-size: 15px;
  line-height: 24px;
  color: var(--c-text-muted);
  margin: 0 0 28px;
  max-width: 480px;
}

.qdnapro-empty-state .empty-state-body p {
  margin: 0 0 12px;
}

.qdnapro-empty-state .empty-state-body p:last-child {
  margin-bottom: 0;
}

.qdnapro-empty-state .empty-state-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
}

.qdnapro-empty-state .empty-state-preview,
.qdnapro-empty-state .empty-state-illustration {
  display: flex;
  align-items: center;
  justify-content: center;
}

.qdnapro-empty-state .empty-state-preview img,
.qdnapro-empty-state .empty-state-illustration img,
.qdnapro-empty-state .empty-state-preview svg,
.qdnapro-empty-state .empty-state-illustration svg {
  width: 100%;
  max-width: 260px;
  height: auto;
  display: block;
}

.qdnapro-empty-state .empty-state-preview img {
  border-radius: 10px;
  box-shadow: 0 1px 2px rgba(20, 25, 80, 0.05), 0 8px 22px rgba(20, 25, 80, 0.1);
}

@media (max-width: 960px) {
  .qdnapro-empty-state.empty-state-extended {
    grid-template-columns: 1fr;
  }
  .qdnapro-empty-state.empty-state-extended .empty-state-illustration {
    display: none;
  }
}
[data-theme=dark] .qdnapro-empty-state {
  background: rgba(46, 48, 54, 0.55);
  border-color: rgba(255, 255, 255, 0.08);
}

[data-theme=dark] .qdnapro-empty-state .empty-state-eyebrow {
  background: #3a3555;
  color: #c0c5ff;
}

[data-theme=dark] .qdnapro-empty-state .empty-state-title {
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-empty-state .empty-state-wink {
  color: #a6aab3;
}

[data-theme=dark] .qdnapro-empty-state .empty-state-body {
  color: #898e99;
}

.qdnapro-event-card {
  --event-card-bg: var(--c-purple-50, #e6e9ff);
  --event-card-text: var(--c-purple-500, #40499a);
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 2px;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  padding: 4px 6px;
  overflow: hidden;
  border-radius: var(--r-2, 8px);
  background: var(--event-card-bg);
  color: var(--event-card-text);
  font-family: var(--theme-font-family, "Inter", sans-serif);
  text-align: left;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: filter 0.16s ease, transform 0.1s ease, box-shadow 0.16s ease;
}

.qdnapro-event-card--complete {
  --event-card-bg: var(--c-signal-green-100, #d8f4e3);
  --event-card-text: var(--c-signal-green-text, #428b6e);
}

.qdnapro-event-card--overdue {
  --event-card-bg: var(--c-signal-red-bg, #fee3e3);
  --event-card-text: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-event-card--blocked {
  --event-card-bg: var(--c-grey-50, #f0f1f2);
  --event-card-text: var(--c-grey-600, #565b66);
}

.qdnapro-event-card--inprogress {
  --event-card-bg: var(--c-signal-orange-bg, #fdeadc);
  --event-card-text: var(--c-signal-orange-text, #bc6a1f);
}

.qdnapro-event-card--personal {
  --event-card-bg: var(--c-signal-pink-bg, #f6e1e8);
  --event-card-text: var(--c-signal-pink-text, #b25777);
}

.qdnapro-event-card.is-draft {
  border: 1.5px dashed var(--event-card-text);
  background: color-mix(in srgb, var(--event-card-bg) 55%, transparent);
}

.qdnapro-event-card--size-small {
  padding: 2px 5px;
  gap: 1px;
}

.qdnapro-event-card--size-small .qdnapro-event-card__title {
  font-size: 12px;
  font-weight: 500;
  line-height: 16px;
}

.qdnapro-event-card--size-small .qdnapro-event-card__meta-text {
  font-size: 11px;
  line-height: 14px;
}

.qdnapro-event-card--size-small .qdnapro-event-card__meta .qdnapro-icon,
.qdnapro-event-card--size-small .qdnapro-event-card__meta qdnapro-icon {
  width: 12px;
  height: 12px;
}

.qdnapro-event-card.is-pressed {
  filter: brightness(0.94);
  transform: scale(0.98);
}

.qdnapro-event-card:focus {
  outline: none;
}

.qdnapro-event-card:focus-visible,
.qdnapro-event-card.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--c-purple-500, #40499a), 0 0 0 6px var(--c-purple-soft-18, rgba(64, 73, 154, 0.18));
}

.qdnapro-event-card__title {
  flex: none;
  min-width: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: break-word;
}

.qdnapro-event-card__row {
  flex: none;
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
}

.qdnapro-event-card__row .qdnapro-event-card__title {
  flex: 1;
  min-width: 0;
}

.qdnapro-event-card__avatar {
  flex: none;
}

.qdnapro-event-card__meta {
  flex: none;
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
}

.qdnapro-event-card__meta .qdnapro-icon,
.qdnapro-event-card__meta qdnapro-icon {
  flex: none;
  width: 16px;
  height: 16px;
  color: inherit;
}

.qdnapro-event-card__meta-text {
  min-width: 0;
  font-size: 12px;
  font-weight: 400;
  line-height: 16px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-event-card__conflict {
  position: absolute;
  top: 2px;
  right: 2px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  box-shadow: 0 0 0 1.5px #fff;
  pointer-events: none;
}

.qdnapro-event-card__conflict--overlap {
  background: var(--c-warn-yellow-600);
}

.qdnapro-event-card__conflict--unavailable {
  background: var(--c-warn-red-500);
}

.qdnapro-event-card__conflict--accepted {
  background: transparent;
}

.qdnapro-event-card__conflict--overlap.qdnapro-event-card__conflict--accepted {
  box-shadow: 0 0 0 1.5px #fff, inset 0 0 0 1.5px var(--c-warn-yellow-600);
}

.qdnapro-event-card__conflict--unavailable.qdnapro-event-card__conflict--accepted {
  box-shadow: 0 0 0 1.5px #fff, inset 0 0 0 1.5px var(--c-warn-red-500);
}

qdnapro-export-modal {
  display: none;
}
qdnapro-export-modal[open] {
  display: block;
  position: fixed;
  inset: 0;
  z-index: var(--overlay-z);
}
qdnapro-export-modal .qos-dialog {
  --qos-w: 760px;
  height: min(720px, 100vh - 48px);
}
qdnapro-export-modal .qos-body {
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
qdnapro-export-modal h2.qos-title {
  margin: 0 !important;
  line-height: 24px !important;
}
qdnapro-export-modal .qos-head {
  align-items: center;
}
qdnapro-export-modal .qpem-info {
  flex-shrink: 0;
}
qdnapro-export-modal .qpem-presets {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  flex-shrink: 0;
}
qdnapro-export-modal .qpem-presets-label {
  font-size: 13px;
  font-weight: 700;
  color: var(--c-purple-500, #40499a);
  white-space: nowrap;
}
qdnapro-export-modal .qpem-presets-field {
  flex: 0 1 280px;
  min-width: 0;
}
qdnapro-export-modal .qpem-presets-empty {
  font-size: 13px;
  color: var(--c-text-muted);
}
qdnapro-export-modal .qpem-presets-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  flex: 1;
}
qdnapro-export-modal .qpem-presets-dirty {
  font-size: 13px;
  font-style: italic;
  color: var(--c-text-muted);
  white-space: nowrap;
}
qdnapro-export-modal .qpem-presets qdnapro-icon-btn[hidden] {
  display: none;
}
qdnapro-export-modal .qpem-preset-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: -8px 0 16px;
  padding: 0 12px;
}
qdnapro-export-modal .qpem-preset-row[hidden] {
  display: none;
}
qdnapro-export-modal .qpem-preset-row qdnapro-input {
  flex: 1;
  min-width: 0;
}
qdnapro-export-modal .qpem-preset-confirm {
  flex: 1;
  min-width: 0;
  font-size: 13px;
  color: var(--c-grey-600);
}
qdnapro-export-modal .qpem-panels {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 16px;
  align-items: stretch;
  flex: 1;
  min-height: 0;
}
qdnapro-export-modal .qpem-panel {
  border: 1px solid var(--c-border-soft-2);
  border-radius: 12px;
  padding: 12px;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
qdnapro-export-modal .qpem-panel-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  padding-left: 13px;
  color: var(--c-purple-500, #40499a);
}
qdnapro-export-modal .qpem-empty {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 16px;
  font-size: 13px;
  color: var(--c-text-muted);
}
qdnapro-export-modal .qpem-list {
  display: flex;
  flex-direction: column;
  gap: 5px;
  overflow-y: auto;
  flex: 1;
  min-height: 80px;
}
qdnapro-export-modal .qpem-chip {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 8px 5px 12px;
  border-radius: 8px;
  border: 1px solid var(--c-border-soft-2);
  background: var(--c-bg-card-hover);
  cursor: grab;
  user-select: none;
  position: relative;
  flex-shrink: 0;
}
qdnapro-export-modal .qpem-chip::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 18px;
  background: var(--c-action-500, #4652f3);
  border-radius: 2px;
  opacity: 0;
  transition: opacity 150ms ease;
  pointer-events: none;
}
qdnapro-export-modal .qpem-chip:hover::before {
  opacity: 1;
}
qdnapro-export-modal .qpem-chip--lifted {
  display: none;
}
qdnapro-export-modal .qpem-chip--active {
  background: var(--c-bg-secondary-purple, #e6e9ff);
  border-color: rgba(64, 73, 154, 0.18);
}
qdnapro-export-modal .qpem-chip qdnapro-checkbox,
qdnapro-export-modal .qpem-panel-head qdnapro-checkbox {
  position: relative;
  cursor: pointer;
}
qdnapro-export-modal .qpem-chip qdnapro-checkbox::after,
qdnapro-export-modal .qpem-panel-head qdnapro-checkbox::after {
  content: "";
  position: absolute;
  inset: -8px;
}
qdnapro-export-modal .qpem-chip-label {
  flex: 1;
  font-size: 14px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
qdnapro-export-modal .qpem-chip qdnapro-icon-btn[data-sort=none] {
  color: var(--c-grey-400);
}
qdnapro-export-modal qdnapro-popover[data-qpem-save] {
  width: min(92vw, 320px);
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
qdnapro-export-modal .qpem-pop-text {
  margin: 0;
  font-size: 14px;
  line-height: 20px;
  color: var(--c-grey-950);
}
qdnapro-export-modal .qpem-pop-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}
qdnapro-export-modal .qpem-gap {
  flex-shrink: 0;
  box-sizing: border-box;
  border: 1.5px dashed rgba(70, 82, 243, 0.45);
  border-radius: 8px;
  background: rgba(70, 82, 243, 0.06);
  transition: height 130ms ease;
}
qdnapro-export-modal .qpem-movers {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 12px;
}
@media (max-width: 640px) {
  qdnapro-export-modal .qpem-panels {
    grid-template-columns: 1fr;
  }
  qdnapro-export-modal .qpem-movers {
    flex-direction: row;
    justify-content: center;
  }
}

.qdnapro-month-grid {
  --month-grid-cell: 64px;
  display: block;
  box-sizing: border-box;
  width: 100%;
  background: var(--c-bg-card, #fff);
  font-family: var(--theme-font-family, "Inter", sans-serif);
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}

.qdnapro-month-grid__header {
  display: flex;
  align-items: center;
  gap: 2px;
  border-bottom: 1px solid var(--c-border-soft-2, #e6e9ef);
}

.qdnapro-month-grid__header-title {
  flex: 1 1 auto;
  min-width: 0;
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  color: var(--c-grey-800, #1c1b29);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-month-grid__nav-btn {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--c-grey-600, #565b66);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.qdnapro-month-grid__nav-btn qdnapro-icon {
  display: block;
  width: 18px;
  height: 18px;
}

.qdnapro-month-grid__nav-btn:hover {
  color: var(--c-grey-800, #1c1b29);
}

.qdnapro-month-grid__nav-btn:disabled {
  color: var(--c-grey-300, #cdd1d6);
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-month-grid__nav-btn:disabled:hover {
  color: var(--c-grey-300, #cdd1d6);
}

.qdnapro-month-grid__weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  border-bottom: 1px solid var(--c-border-soft-2, #e6e9ef);
}

.qdnapro-month-grid__weekday {
  padding: 6px 0 4px;
  text-align: center;
  font-size: 11px;
  font-weight: 600;
  line-height: 16px;
  color: var(--c-grey-500, #6b7280);
  text-transform: lowercase;
}

.qdnapro-month-grid__weeks {
  display: block;
}

.qdnapro-month-grid__week {
  position: relative;
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  border-bottom: 1px solid var(--c-border-soft-2, #e6e9ef);
}

.qdnapro-month-grid[fill] {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.qdnapro-month-grid[fill] .qdnapro-month-grid__weeks {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}

.qdnapro-month-grid[fill] .qdnapro-month-grid__week {
  flex: 1 1 0;
  min-height: var(--month-grid-cell);
}

.qdnapro-month-grid__cell {
  box-sizing: border-box;
  min-height: var(--month-grid-cell);
  min-width: 0;
  padding: 2px 2px 3px;
  border-right: 1px solid var(--c-border-soft-2, #e6e9ef);
  cursor: pointer;
}

.qdnapro-month-grid__cell:last-child {
  border-right: 0;
}

.qdnapro-month-grid__daynum {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  margin: 0 auto 2px;
  border-radius: 50%;
  font-size: 13px;
  font-weight: 500;
  line-height: 16px;
  color: var(--c-grey-800, #1c1b29);
}

.qdnapro-month-grid__cell--outside .qdnapro-month-grid__daynum {
  color: var(--c-grey-400, #9ca3af);
}

.qdnapro-month-grid__cell--blocked {
  cursor: not-allowed;
  opacity: 0.45;
}

.qdnapro-month-grid__cell.is-selected:not(.is-today) .qdnapro-month-grid__daynum {
  background: var(--c-bg-secondary-purple, #e6e9ff);
  color: var(--c-action-500, #4652f3);
  font-weight: 700;
}

.qdnapro-month-grid__cell.is-today .qdnapro-month-grid__daynum {
  background: var(--c-action-500, #4652f3);
  color: var(--c-bg-card, #fff);
  font-weight: 700;
}

.qdnapro-month-grid__bars {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
  margin-bottom: 1px;
}

.qdnapro-month-grid__bar,
.qdnapro-month-grid__bar-spacer {
  display: block;
  box-sizing: border-box;
  height: 13px;
  min-width: 0;
}

.qdnapro-month-grid__bar-spacer {
  visibility: hidden;
}

.qdnapro-month-grid__bar {
  --month-grid-chip-bg: var(--c-purple-50, #e6e9ff);
  --month-grid-chip-text: var(--c-purple-500, #40499a);
  padding: 0 3px;
  background: var(--month-grid-chip-bg);
  color: var(--month-grid-chip-text);
  font-size: 10px;
  font-weight: 600;
  line-height: 13px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  pointer-events: none;
  border-radius: 0;
}

.qdnapro-month-grid__bar-overlay {
  position: absolute;
  z-index: 1;
  top: calc(28px + var(--bar-lane, 0) * 14px);
  left: calc(14.2857142857% * var(--bar-start-col, 0) + var(--bar-inset-l, 0px));
  width: calc(14.2857142857% * var(--bar-span-cols, 1) - var(--bar-inset-l, 0px) - var(--bar-inset-r, 0px));
  pointer-events: none;
}

.qdnapro-month-grid__bar--dimmed {
  opacity: 0.45;
}

.qdnapro-month-grid__bar--round-start {
  border-top-left-radius: 3px;
  border-bottom-left-radius: 3px;
}

.qdnapro-month-grid__bar--round-end {
  border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
}

.qdnapro-month-grid__bar-label {
  pointer-events: none;
}

.qdnapro-month-grid__bar--inprogress {
  --month-grid-chip-bg: var(--c-signal-orange-bg, #fdeadc);
  --month-grid-chip-text: var(--c-signal-orange-text, #bc6a1f);
}

.qdnapro-month-grid__bar--complete {
  --month-grid-chip-bg: var(--c-signal-green-100, #d8f4e3);
  --month-grid-chip-text: var(--c-signal-green-text, #428b6e);
}

.qdnapro-month-grid__bar--overdue {
  --month-grid-chip-bg: var(--c-signal-red-bg, #fee3e3);
  --month-grid-chip-text: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-month-grid__bar--blocked {
  --month-grid-chip-bg: var(--c-grey-50, #f0f1f2);
  --month-grid-chip-text: var(--c-grey-600, #565b66);
}

.qdnapro-month-grid__bar--personal {
  --month-grid-chip-bg: var(--c-signal-pink-bg, #f6e1e8);
  --month-grid-chip-text: var(--c-signal-pink-text, #b25777);
}

.qdnapro-month-grid__chips {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.qdnapro-month-grid__chip {
  --month-grid-chip-bg: var(--c-purple-50, #e6e9ff);
  --month-grid-chip-text: var(--c-purple-500, #40499a);
  display: block;
  min-width: 0;
  padding: 1px 3px;
  border-radius: 3px;
  background: var(--month-grid-chip-bg);
  color: var(--month-grid-chip-text);
  font-size: 10px;
  font-weight: 600;
  line-height: 13px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  pointer-events: none;
}

.qdnapro-month-grid__chip--inprogress {
  --month-grid-chip-bg: var(--c-signal-orange-bg, #fdeadc);
  --month-grid-chip-text: var(--c-signal-orange-text, #bc6a1f);
}

.qdnapro-month-grid__chip--complete {
  --month-grid-chip-bg: var(--c-signal-green-100, #d8f4e3);
  --month-grid-chip-text: var(--c-signal-green-text, #428b6e);
}

.qdnapro-month-grid__chip--overdue {
  --month-grid-chip-bg: var(--c-signal-red-bg, #fee3e3);
  --month-grid-chip-text: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-month-grid__chip--blocked {
  --month-grid-chip-bg: var(--c-grey-50, #f0f1f2);
  --month-grid-chip-text: var(--c-grey-600, #565b66);
}

.qdnapro-month-grid__chip--personal {
  --month-grid-chip-bg: var(--c-signal-pink-bg, #f6e1e8);
  --month-grid-chip-text: var(--c-signal-pink-text, #b25777);
}

.qdnapro-month-grid__more {
  padding: 1px 3px;
  font-size: 10px;
  font-weight: 600;
  line-height: 13px;
  color: var(--c-grey-500, #6b7280);
  pointer-events: none;
}

.qdnapro-month-grid__cell--outside .qdnapro-month-grid__chip,
.qdnapro-month-grid__cell--outside .qdnapro-month-grid__more {
  opacity: 0.45;
}

.qdnapro-month-strip {
  display: block;
  box-sizing: border-box;
  width: 100%;
  background: var(--c-bg-card);
  font-family: var(--theme-font-family, "Inter", sans-serif);
  user-select: none;
  touch-action: pan-y;
  overflow-x: clip;
}

.qdnapro-month-strip__month {
  padding: 2px 0 2px;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  text-align: center;
  color: var(--c-grey-500, #6b7280);
}

.qdnapro-month-strip__weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  padding: 0 4px 2px;
}

.qdnapro-month-strip__weekdays span {
  font-size: 12px;
  line-height: 16px;
  text-align: center;
  color: var(--c-grey-500, #6b7280);
}

.qdnapro-month-strip__body {
  overflow: hidden;
  transition: height 0.25s ease;
}

.qdnapro-month-strip__rows {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  grid-auto-rows: 48px;
  padding: 0 4px;
  transition: transform 0.25s ease;
  will-change: transform;
}

.qdnapro-month-strip__body.is-dragging,
.qdnapro-month-strip__body.is-dragging .qdnapro-month-strip__rows {
  transition: none;
}

.qdnapro-month-strip__rows.is-enter-next {
  animation: qms-slide-next 0.24s cubic-bezier(0.2, 0.7, 0.3, 1);
}

.qdnapro-month-strip__rows.is-enter-prev {
  animation: qms-slide-prev 0.24s cubic-bezier(0.2, 0.7, 0.3, 1);
}

@keyframes qms-slide-next {
  from {
    translate: 28px 0;
    opacity: 0.35;
  }
  to {
    translate: 0 0;
    opacity: 1;
  }
}
@keyframes qms-slide-prev {
  from {
    translate: -28px 0;
    opacity: 0.35;
  }
  to {
    translate: 0 0;
    opacity: 1;
  }
}
.qdnapro-month-strip__day {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  border: 0;
  padding: 0;
  background: transparent;
  font: inherit;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.qdnapro-month-strip__num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  font-size: 14px;
  line-height: 1;
  color: var(--c-grey-950, #0b0b0d);
  background: var(--day-tint, transparent);
  transition: background 0.18s ease, color 0.18s ease;
}

@keyframes qdnapro-month-strip-pop {
  0% {
    transform: scale(0.55);
  }
  70% {
    transform: scale(1.12);
  }
  100% {
    transform: scale(1);
  }
}
.qdnapro-month-strip__day.is-pop .qdnapro-month-strip__num {
  animation: qdnapro-month-strip-pop 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.qdnapro-month-strip__dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--c-purple-500, #40499a);
}

.qdnapro-month-strip__day.is-selected:not(.is-today):not(.is-disabled) .qdnapro-month-strip__num {
  background: var(--c-bg-secondary-purple, #e6e9ff);
  color: var(--c-purple-500, #40499a);
  font-weight: 600;
}

.qdnapro-month-strip__day.is-today:not(.is-disabled) .qdnapro-month-strip__num {
  background: var(--c-purple-500, #40499a);
  color: var(--c-text-on-action);
  font-weight: 600;
}

.qdnapro-month-strip__day.is-muted .qdnapro-month-strip__num {
  color: var(--c-grey-400, #a6aab3);
}

.qdnapro-month-strip__day.is-muted .qdnapro-month-strip__dot {
  background: var(--c-grey-400, #a6aab3);
}

.qdnapro-month-strip__day.is-disabled {
  cursor: default;
}

.qdnapro-month-strip__day.is-disabled .qdnapro-month-strip__num {
  color: var(--c-grey-400, #a6aab3);
  background: transparent;
}

.qdnapro-month-strip__day.is-disabled .qdnapro-month-strip__dot {
  background: var(--c-grey-400, #a6aab3);
}

.qdnapro-month-strip__day:focus {
  outline: none;
}

.qdnapro-month-strip__day:focus-visible .qdnapro-month-strip__num {
  box-shadow: 0 0 0 2px var(--c-purple-500, #40499a), 0 0 0 6px var(--c-purple-soft-18, rgba(64, 73, 154, 0.18));
}

.qdnapro-month-strip__months {
  display: none;
  gap: 8px;
  padding: 8px 12px 2px;
  overflow-x: auto;
  scrollbar-width: none;
  overscroll-behavior-x: none;
  touch-action: pan-x;
}

.qdnapro-month-strip__months::-webkit-scrollbar {
  display: none;
}

.qdnapro-month-strip[expanded] .qdnapro-month-strip__months {
  display: flex;
}

.qdnapro-month-strip__months .qdnapro-button {
  flex: none;
  position: relative;
}

.qdnapro-month-strip__months .qdnapro-button::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -8px;
  bottom: -8px;
}

.qdnapro-month-strip__months .qdnapro-button.button-size-compact {
  min-height: 34px;
  padding: 6px 14px;
  font-size: 14px;
  line-height: 20px;
}

.qdnapro-month-strip__year-label {
  display: flex;
  align-items: center;
  flex: none;
  padding: 0 2px;
  font-size: 12px;
  font-weight: 700;
  line-height: 20px;
  color: var(--c-grey-500, #6b7280);
  white-space: nowrap;
}

.qdnapro-month-strip__grabber {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 0 12px;
  cursor: grab;
  touch-action: none;
}

.qdnapro-month-strip__grabber span {
  width: 36px;
  height: 4px;
  border-radius: 999px;
  background: var(--c-grey-300, #c4c7cc);
}

.qdnapro-month-strip__grabber:focus {
  outline: none;
}

.qdnapro-month-strip__grabber:focus-visible span {
  box-shadow: 0 0 0 2px var(--c-purple-500, #40499a), 0 0 0 6px var(--c-purple-soft-18, rgba(64, 73, 154, 0.18));
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-month-strip__body {
    transition: none;
  }
  .qdnapro-month-strip__rows {
    transition: none;
  }
  .qdnapro-month-strip__num {
    transition: none;
  }
  .qdnapro-month-strip__day.is-pop .qdnapro-month-strip__num {
    animation: none;
  }
  .qdnapro-month-strip__rows.is-enter-next,
  .qdnapro-month-strip__rows.is-enter-prev {
    animation: none;
  }
}
.qdnapro-time-grid {
  --time-grid-hour: 52px;
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  min-height: 0;
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.qdnapro-time-grid__scroll-y {
  position: relative;
  width: 100%;
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  touch-action: pan-y;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  scrollbar-width: none;
}

.qdnapro-time-grid__scroll-y::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.qdnapro-time-grid__dayheader {
  position: sticky;
  top: 0;
  z-index: 7;
  display: flex;
  align-items: stretch;
  height: var(--time-grid-dayheader-h, 40px);
  background: var(--c-bg-card, #fff);
  border-bottom: 1px solid var(--c-border-soft-2, #e6e9ef);
}

.qdnapro-time-grid__dayheader-corner {
  flex: none;
  width: 56px;
  background: var(--c-bg-card, #fff);
}

.qdnapro-time-grid__dayheader-vp {
  flex: 1;
  min-width: 0;
  overflow: hidden;
}

.qdnapro-time-grid__dayheader-grid {
  display: flex;
  align-items: stretch;
  height: 100%;
  width: max-content;
}

.qdnapro-time-grid__daycell {
  appearance: none;
  -webkit-appearance: none;
  border: none;
  margin: 0;
  font: inherit;
  text-align: inherit;
  color: inherit;
  flex: none;
  width: var(--time-grid-colw, 120px);
  box-sizing: border-box;
  border-right: 1px solid var(--c-border-soft-2, #e6e9ef);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  padding: 2px 4px;
  background: var(--c-bg-card, #fff);
  cursor: pointer;
}

.qdnapro-time-grid__daycell:hover {
  background: var(--c-grey-50, #f0f1f2);
}

.qdnapro-time-grid__daycell:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 2px var(--c-purple-500, #40499a);
}

.qdnapro-time-grid__daycell-weekday {
  font-size: 10px;
  font-weight: 600;
  line-height: 13px;
  color: var(--c-grey-500, #6b7280);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

.qdnapro-time-grid__daycell-daynum {
  font-size: 13px;
  font-weight: 600;
  line-height: 16px;
  color: var(--c-grey-800, #1c1b29);
  white-space: nowrap;
}

.qdnapro-time-grid__daycell.is-today .qdnapro-time-grid__daycell-weekday {
  color: var(--c-action-500, #4652f3);
}

.qdnapro-time-grid__daycell.is-today .qdnapro-time-grid__daycell-daynum {
  color: var(--c-text-on-action);
  background: var(--c-action-500, #4652f3);
  padding: 1px 8px;
  border-radius: 999px;
}

.qdnapro-time-grid--has-day-header .qdnapro-time-grid__allday {
  top: var(--time-grid-dayheader-h, 40px);
}

.qdnapro-time-grid__allday {
  position: sticky;
  top: 0;
  z-index: 6;
  display: flex;
  align-items: stretch;
  background: var(--c-bg-card, #fff);
  border-bottom: 1px solid var(--c-border-soft-2, #e6e9ef);
  overflow: hidden;
  transition: height 0.2s ease;
}

.qdnapro-time-grid__allday.is-empty {
  border-bottom-width: 0;
}

.qdnapro-time-grid__allday-corner {
  flex: none;
  width: 56px;
  z-index: 1;
  background: var(--c-bg-card, #fff);
}

.qdnapro-time-grid__allday-vp {
  flex: 1;
  min-width: 0;
  overflow: hidden;
}

.qdnapro-time-grid__allday-grid {
  display: grid;
  row-gap: 2px;
  column-gap: 0;
  grid-auto-rows: 26px;
  align-items: stretch;
  padding: 4px 2px 4px 0;
  width: max-content;
}

.qdnapro-time-grid__allday-grid.is-scrollable {
  max-height: 112px;
  overflow-y: auto;
}

.qdnapro-time-grid__allday-grid .qdnapro-event-card {
  height: 26px;
  min-height: 0;
  padding: 3px 8px;
  margin: 0 1px;
}

.qdnapro-time-grid__allday-toggle {
  appearance: none;
  border: 0;
  background: transparent;
  text-align: left;
  padding: 3px 8px;
  margin: 0 1px;
  font-family: inherit;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
  color: var(--c-grey-500, #6b7280);
  border-radius: var(--r-2, 8px);
  cursor: pointer;
}

.qdnapro-time-grid__allday-toggle:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--c-purple-500, #40499a), 0 0 0 6px var(--c-purple-soft-18, rgba(64, 73, 154, 0.18));
}

.qdnapro-time-grid__hours {
  display: flex;
  align-items: stretch;
}

.qdnapro-time-grid__gutter {
  position: relative;
  flex: none;
  width: 56px;
  height: calc(var(--time-grid-hours, 24) * var(--time-grid-hour));
  z-index: 5;
  background: var(--c-bg-card, #fff);
}

.qdnapro-time-grid__time {
  position: absolute;
  right: 8px;
  transform: translateY(-50%);
  font-size: 12px;
  line-height: 16px;
  color: var(--c-grey-500, #6b7280);
  white-space: nowrap;
  user-select: none;
}

.qdnapro-time-grid__scroll-x {
  flex: 1;
  min-width: 0;
  height: calc(var(--time-grid-hours, 24) * var(--time-grid-hour));
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  touch-action: pan-x pan-y;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
}

.qdnapro-time-grid__scroll-x::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.qdnapro-time-grid__strip {
  display: flex;
  align-items: stretch;
  height: 100%;
}

.qdnapro-time-grid__day {
  position: relative;
  flex: none;
  width: var(--time-grid-colw, 120px);
  box-sizing: border-box;
  height: 100%;
  border-right: 1px solid var(--c-border-soft-2, #e6e9ef);
  scroll-snap-align: start;
  background-image: repeating-linear-gradient(to bottom, var(--c-border-soft-2, #e6e9ef) 0, var(--c-border-soft-2, #e6e9ef) 1px, transparent 1px, transparent var(--time-grid-hour, 52px));
}

.qdnapro-time-grid--week .qdnapro-time-grid__day {
  scroll-snap-align: none;
}

.qdnapro-time-grid--week .qdnapro-time-grid__day.is-weekstart {
  scroll-snap-align: start;
}

.qdnapro-time-grid__states {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.qdnapro-time-grid__state {
  position: absolute;
  left: 0;
  right: 0;
}

.qdnapro-time-grid__state--disabled {
  background: var(--c-grey-50, #f0f1f2);
}

.qdnapro-time-grid__events {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.qdnapro-time-grid__events .qdnapro-event-card {
  position: absolute;
  pointer-events: auto;
}

.qdnapro-time-grid__events .qdnapro-event-card[data-qtg-draggable] {
  cursor: grab;
}

.qdnapro-time-grid__events .qdnapro-event-card[data-qtg-draggable]:active,
.qdnapro-time-grid__events .qdnapro-event-card.is-dragging {
  cursor: grabbing;
}

.qdnapro-time-grid__events .qdnapro-event-card.is-dragging {
  transition: none;
  z-index: 5;
  box-shadow: 0 6px 18px rgba(28, 27, 41, 0.22), 0 2px 6px rgba(28, 27, 41, 0.14);
  opacity: 0.92;
}

.qdnapro-time-grid__events .qdnapro-event-card.is-drag-return {
  transition: transform 0.2s cubic-bezier(0.34, 1.3, 0.64, 1);
}

@media (hover: hover) and (pointer: fine) {
  .qdnapro-time-grid__events .qdnapro-event-card[data-qtg-resizable]::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 10px;
    cursor: ns-resize;
    z-index: 1;
  }
  .qdnapro-time-grid__events .qdnapro-event-card[data-qtg-resizable]:hover::after {
    border-bottom: 2px solid var(--c-purple-500, #40499a);
    border-bottom-left-radius: var(--r-2, 8px);
    border-bottom-right-radius: var(--r-2, 8px);
    opacity: 0.55;
  }
}
.qdnapro-time-grid__events .qdnapro-event-card.is-resizing {
  transition: none;
  z-index: 5;
  cursor: ns-resize;
  box-shadow: 0 6px 18px rgba(28, 27, 41, 0.22), 0 2px 6px rgba(28, 27, 41, 0.14);
  opacity: 0.92;
}

.qdnapro-time-grid__events .qdnapro-event-card.is-drag-return.is-resizing {
  transition: height 0.2s cubic-bezier(0.34, 1.3, 0.64, 1);
}

.qdnapro-time-grid__drop {
  position: absolute;
  left: 2px;
  right: 2px;
  border: 2px dashed var(--c-purple-500, #40499a);
  border-radius: var(--r-2, 8px);
  background: var(--c-purple-soft-12, rgba(64, 73, 154, 0.12));
  z-index: 2;
  pointer-events: none;
  box-sizing: border-box;
}

.qdnapro-time-grid__drop-label {
  position: absolute;
  top: 2px;
  left: 6px;
  font-size: 11px;
  font-weight: 600;
  line-height: 16px;
  color: var(--c-purple-500, #40499a);
  white-space: nowrap;
}

.qdnapro-time-grid__drop.is-reject {
  border-color: var(--c-signal-red-text, #c65a5a);
  background: var(--c-signal-red-bg, #fee3e3);
}

.qdnapro-time-grid__drop.is-reject .qdnapro-time-grid__drop-label {
  color: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-time-grid__drop--resize .qdnapro-time-grid__drop-label {
  top: 100%;
  margin-top: 2px;
}

.qdnapro-time-grid__drop.is-over-estimate,
.qdnapro-time-grid__drop.is-under-estimate {
  border-color: var(--c-signal-orange-text, #bc6a1f);
  background: var(--c-signal-orange-bg, #fdeadc);
}

.qdnapro-time-grid__drop.is-over-estimate .qdnapro-time-grid__drop-label,
.qdnapro-time-grid__drop.is-under-estimate .qdnapro-time-grid__drop-label {
  color: var(--c-signal-orange-text, #bc6a1f);
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-time-grid__events .qdnapro-event-card.is-drag-return {
    transition: none;
  }
  .qdnapro-time-grid__allday {
    transition: none;
  }
}
.qdnapro-time-grid__now {
  position: absolute;
  left: 0;
  right: 0;
  height: 0;
  border-top: 2px solid var(--c-tag-critical-text);
  z-index: 3;
  pointer-events: none;
}

/* The "now" dot sits fully INSIDE today's column (fixed 29.07.2026, Kim: "valt
   altijd weg onder het linker paneel"). It used to be `left: -5px`, straddling the
   column's left edge, so half of it landed under the times gutter — and the gutter
   is opaque with z-index 5 against this line's z-index 3, so that half was simply
   painted over. In the day view today's column is ALWAYS the leftmost one, which is
   why it was always broken there rather than only sometimes. Raising the line above
   the gutter instead would be wrong: the line is supposed to slide under the gutter
   when you scroll horizontally, that is what makes the gutter read as a fixed panel.
   So the dot moves in, and the gutter keeps winning. */
.qdnapro-time-grid__now::before {
  content: "";
  position: absolute;
  left: 0;
  top: -5px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--c-tag-critical-text);
}

.qdnapro-time-picker {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-family: var(--theme-font-family, "Inter", sans-serif);
  user-select: none;
}

.qdnapro-time-picker__highlight {
  position: absolute;
  left: 4px;
  right: 4px;
  top: 50%;
  height: 40px;
  transform: translateY(-50%);
  border-radius: 10px;
  background: var(--c-purple-soft-08, rgba(64, 73, 154, 0.08));
  pointer-events: none;
}

.qdnapro-time-picker__col {
  position: relative;
  width: 72px;
  height: 200px;
  overflow-y: auto;
  scroll-snap-type: y mandatory;
  overscroll-behavior: contain;
  touch-action: pan-y;
  scrollbar-width: none;
  border-radius: 10px;
  -webkit-mask-image: linear-gradient(to bottom, transparent, var(--c-grey-950) 28%, var(--c-grey-950) 72%, transparent);
  mask-image: linear-gradient(to bottom, transparent, var(--c-grey-950) 28%, var(--c-grey-950) 72%, transparent);
}

.qdnapro-time-picker__col::-webkit-scrollbar {
  display: none;
}

.qdnapro-time-picker__list {
  padding: 80px 0;
}

.qdnapro-time-picker__item {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 40px;
  border: 0;
  padding: 0;
  background: transparent;
  font: inherit;
  font-size: 20px;
  font-variant-numeric: tabular-nums;
  color: var(--c-grey-400, #a6aab3);
  cursor: pointer;
  scroll-snap-align: center;
  -webkit-tap-highlight-color: transparent;
  transition: color 0.12s ease, font-weight 0.12s ease;
}

.qdnapro-time-picker__item.is-selected {
  color: var(--c-purple-500, #40499a);
  font-weight: 600;
}

.qdnapro-time-picker__colon {
  font-size: 20px;
  font-weight: 600;
  line-height: 40px;
  color: var(--c-grey-500, #6b7280);
}

.qdnapro-time-picker__col:focus {
  outline: none;
}

.qdnapro-time-picker__col:focus-visible {
  box-shadow: 0 0 0 2px var(--c-purple-500, #40499a), 0 0 0 6px var(--c-purple-soft-18, rgba(64, 73, 154, 0.18));
}

.qdnapro-time-picker[disabled] {
  opacity: 0.45;
}

.qdnapro-time-picker[disabled] .qdnapro-time-picker__col {
  pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-time-picker__item {
    transition: none;
  }
}
.qdnapro-time-select {
  display: block;
  width: 100%;
  box-sizing: border-box;
  font-family: var(--theme-font-family, "Inter", sans-serif);
  font-size: 14px;
  line-height: 24px;
}

.qdnapro-time-select * {
  box-sizing: border-box;
}

.qdnapro-time-select .ts-label {
  display: flex;
  align-items: baseline;
  margin-bottom: 4px;
  font-weight: 500;
  color: var(--c-grey-950, #0b0b0d);
}

.qdnapro-time-select .ts-label .ts-required {
  color: var(--c-signal-red-text, #c65a5a);
  margin-right: 2px;
  font-weight: 500;
}

.qdnapro-time-select .ts-field {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300, #c4c7cc);
  border-radius: 8px;
  padding: 0 12px;
  cursor: text;
  transition: border-color 120ms ease-out, box-shadow 120ms ease-out;
}

.qdnapro-time-select.ts-size-default .ts-field {
  min-height: 52px;
}

.qdnapro-time-select.ts-size-small .ts-field {
  min-height: 40px;
}

.qdnapro-time-select .ts-icon {
  display: inline-flex;
  width: 16px;
  height: 16px;
  color: var(--c-grey-400, #a6aab3);
  flex-shrink: 0;
}

.qdnapro-time-select .ts-chevron {
  display: inline-flex;
  width: 14px;
  height: 14px;
  color: var(--c-grey-400, #a6aab3);
  flex-shrink: 0;
  transition: transform 150ms ease;
}

.qdnapro-time-select.ts-open .ts-chevron {
  transform: rotate(180deg);
}

.qdnapro-time-select .ts-input {
  flex: 1;
  min-width: 0;
  width: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  font: inherit;
  color: var(--c-grey-950, #0b0b0d);
}

.qdnapro-time-select .ts-input::placeholder {
  color: var(--c-grey-400, #a6aab3);
  font-weight: 500;
}

.qdnapro-time-select .ts-input:disabled {
  color: var(--c-grey-400, #a6aab3);
  cursor: not-allowed;
}

.qdnapro-time-select .ts-field:focus-within {
  border-color: var(--c-purple-400);
  box-shadow: 0 0 0 3px var(--c-action-40, rgba(70, 82, 243, 0.4));
}

.qdnapro-time-select.ts-error .ts-field {
  border-color: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-time-select.ts-error .ts-field:focus-within {
  border-color: var(--c-signal-red-text, #c65a5a);
  box-shadow: 0 0 0 3px rgba(248, 113, 113, 0.4);
}

.qdnapro-time-select.ts-disabled .ts-field {
  background: var(--c-grey-50, #f0f1f2);
  border-color: transparent;
  cursor: not-allowed;
}

.qdnapro-time-select.ts-disabled .ts-field:focus-within {
  box-shadow: none;
}

.qdnapro-time-select .ts-message {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
  font-size: 13px;
  line-height: 20px;
}

.qdnapro-time-select .ts-message qdnapro-icon {
  display: inline-flex;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.qdnapro-time-select .ts-message-error {
  color: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-time-select-panel {
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300, #c4c7cc);
  border-radius: 8px;
  padding: 4px;
  overflow-y: auto;
  overflow-x: hidden;
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.15), 0 8px 12px 6px rgba(0, 0, 0, 0.075);
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.qdnapro-time-select-panel::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

.qdnapro-time-select-panel::-webkit-scrollbar-track {
  background: transparent;
}

.qdnapro-time-select-panel::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 4px;
}

.qdnapro-time-select-panel:hover::-webkit-scrollbar-thumb,
.qdnapro-time-select-panel:focus-within::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.22);
}

.qdnapro-time-select-panel::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.34);
}

.qdnapro-time-select-panel .ts-panel-list {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.qdnapro-time-select-option {
  display: flex;
  align-items: center;
  width: 100%;
  border: 0;
  border-radius: 6px;
  padding: 8px 12px;
  background: transparent;
  font: inherit;
  font-size: 14px;
  line-height: 20px;
  font-variant-numeric: tabular-nums;
  color: var(--c-grey-950, #0b0b0d);
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.qdnapro-time-select-option:hover {
  background: var(--c-grey-50, #f0f1f2);
}

.qdnapro-time-select-option:active {
  background: var(--c-grey-100, #e7e9ec);
}

.qdnapro-time-select-option.is-active {
  background: var(--c-grey-50, #f0f1f2);
}

.qdnapro-time-select-option.is-selected {
  background: var(--c-action-500, #4652f3);
  color: var(--c-text-on-action);
  font-weight: 600;
}

.qdnapro-time-select-option.is-selected:hover {
  background: var(--c-action-600, #3540d6);
}

.qdnapro-time-select-option.is-off-grid::after {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--c-purple-500, #40499a);
  margin-left: 8px;
}

.qdnapro-time-select-option.is-off-grid.is-selected::after {
  background: var(--c-bg-card);
}

[data-theme=dark] .qdnapro-time-select .ts-label {
  color: var(--c-grey-50, #f0f1f2);
}

[data-theme=dark] .qdnapro-time-select .ts-field {
  background: var(--c-grey-900, #18181c);
  border-color: var(--c-grey-600, #565b66);
}

[data-theme=dark] .qdnapro-time-select .ts-input {
  color: var(--c-grey-50, #f0f1f2);
}

[data-theme=dark] .qdnapro-time-select-panel {
  background: var(--c-grey-900, #18181c);
  border-color: var(--c-grey-600, #565b66);
}

[data-theme=dark] .qdnapro-time-select-option {
  color: var(--c-grey-50, #f0f1f2);
}

[data-theme=dark] .qdnapro-time-select-option:hover,
[data-theme=dark] .qdnapro-time-select-option.is-active {
  background: var(--c-grey-800, #2e3036);
}

.qdnapro-quick-event {
  display: block;
  box-sizing: border-box;
  min-width: 320px;
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.qdnapro-quick-event__top > *,
.qdnapro-quick-event__rest > * {
  display: block;
  margin-bottom: 10px;
}

.qdnapro-quick-event__when {
  margin-bottom: 10px;
}

.qdnapro-quick-event__summary {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 40px;
  margin: 0;
  padding: 8px 12px;
  border: 1px solid var(--c-grey-200, #d7dae0);
  border-radius: 8px;
  background: var(--c-bg-card, #fff);
  font: inherit;
  font-size: 14px;
  line-height: 20px;
  color: var(--c-text-heading, #1a1f4d);
  text-align: left;
  cursor: pointer;
}

.qdnapro-quick-event__summary[hidden] {
  display: none;
}

.qdnapro-quick-event__summary:hover {
  border-color: var(--c-grey-300, #cdd1d6);
}

.qdnapro-quick-event__summary:focus-visible {
  outline: 2px solid var(--c-action-500, #4652f3);
  outline-offset: 1px;
}

.qdnapro-quick-event__detail {
  padding: 4px 0 2px;
}

.qdnapro-quick-event__detail[hidden] {
  display: none;
}

.qdnapro-quick-event__when-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 10px;
}

.qdnapro-quick-event__datefield {
  flex: 2 1 0;
  min-width: 0;
}

.qdnapro-quick-event__time {
  flex: 1 1 0;
  min-width: 0;
}

.qdnapro-quick-event__dash {
  flex: none;
  color: var(--c-text-muted, #6b7280);
}

.qdnapro-quick-event__allday {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

.qdnapro-quick-event__toggle-label {
  font-size: 13px;
  color: var(--c-text-heading, #1a1f4d);
  cursor: pointer;
  user-select: none;
}

.qdnapro-quick-event__repeat {
  margin-bottom: 2px;
}

.qdnapro-quick-event__footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding-top: 12px;
  border-top: 1px solid var(--c-grey-100, #e7e9ec);
}

.qdnapro-quick-event__spacer {
  flex: 1 1 auto;
}

qdnapro-event-sheet {
  display: contents;
}

.qdnapro-bottom-sheet[data-es-sheet] .bs-panel {
  background: var(--c-grey-50);
  height: 86%;
}

.qdnapro-bottom-sheet[data-es-sheet] .bs-body {
  overflow: hidden;
}

.qdnapro-event-sheet-body {
  font-family: var(--theme-font-family, "Inter", sans-serif);
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.qdnapro-event-sheet-body .es-pages {
  flex: 1;
  min-height: 0;
}

.qdnapro-event-sheet-body .es-page {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.qdnapro-event-sheet-body .es-page-main {
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.qdnapro-event-sheet-body .es-page-main::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.qdnapro-event-sheet-body .es-sub-head {
  display: flex;
  align-items: center;
  padding: 2px 0;
}

.qdnapro-event-sheet-body .es-back {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border: none;
  background: transparent;
  border-radius: var(--r-row);
  padding: 10px 14px 10px 8px;
  font-family: var(--theme-font-family, "Inter", sans-serif);
  font-size: 16px;
  color: var(--c-purple-700);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.14s ease;
}

.qdnapro-event-sheet-body .es-back:hover {
  background: var(--c-grey-100);
}

.qdnapro-event-sheet-body .es-back:active {
  background: var(--c-grey-200);
}

.qdnapro-event-sheet-body .es-tl-list {
  background: var(--c-bg-card);
  border-radius: var(--r-3);
  padding: 6px;
  flex: 0 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.qdnapro-event-sheet-body .es-tl-row {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  border: none;
  background: transparent;
  border-radius: var(--r-row);
  padding: 9px 12px;
  font-family: var(--theme-font-family, "Inter", sans-serif);
  font-size: 16px;
  line-height: 1.2;
  text-align: left;
  color: var(--c-purple-700);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.14s ease;
}

.qdnapro-event-sheet-body .es-tl-row:hover {
  background: var(--c-grey-50);
}

.qdnapro-event-sheet-body .es-tl-row:active {
  background: var(--c-grey-100);
}

.qdnapro-event-sheet-body .es-tl-row[hidden] {
  display: none;
}

.qdnapro-event-sheet-body .es-tl-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 38px;
  height: 38px;
  border-radius: 12px;
}

.qdnapro-event-sheet-body .es-tl-ico .es-tl-img {
  width: 24px;
  height: 24px;
  object-fit: contain;
  display: block;
}

.qdnapro-event-sheet-body .es-tl-name {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-event-sheet-body .es-tl-check {
  display: none;
  flex-shrink: 0;
  color: var(--c-purple-700);
}

.qdnapro-event-sheet-body .es-tl-row.is-active .es-tl-check {
  display: inline-flex;
}

.qdnapro-event-sheet-body .es-type-empty {
  padding: 12px 16px;
  font-size: 14px;
  color: var(--c-text-muted);
}

.qdnapro-event-sheet-body .es-page-sub .qdnapro-bottom-sheet-button-group {
  background: var(--c-bg-card);
}

.qdnapro-event-sheet-body .es-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 2px 2px 4px;
}

.qdnapro-event-sheet-body .es-card {
  background: var(--c-bg-card);
  border-radius: var(--r-3);
  padding: 6px;
}

.qdnapro-event-sheet-body .es-card > qdnapro-bottom-sheet-button {
  border-radius: var(--r-row);
}

.qdnapro-event-sheet-body .es-panel {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}

.qdnapro-event-sheet-body .es-panel > .es-panel-inner {
  overflow: hidden;
  min-height: 0;
}

.qdnapro-event-sheet-body .es-panel.is-open {
  grid-template-rows: 1fr;
}

.qdnapro-event-sheet-body .es-panel-inner > qdnapro-month-strip,
.qdnapro-event-sheet-body .es-panel-inner > qdnapro-time-picker {
  margin: 4px 6px 8px;
}

.qdnapro-event-sheet-body [data-es-panel=start-time] .es-panel-inner,
.qdnapro-event-sheet-body [data-es-panel=end-time] .es-panel-inner {
  text-align: center;
}

.qdnapro-event-sheet-body .es-allday-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 7px 12px 7px 16px;
}

.qdnapro-event-sheet-body .es-allday-lead {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 16px;
  color: var(--c-purple-700);
}

.qdnapro-event-sheet-body .es-divider {
  height: 1px;
  margin: 4px 6px;
  background: var(--c-grey-100);
}

.qdnapro-event-sheet-body .es-dt-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 2px 4px;
}

.qdnapro-event-sheet-body .es-dt-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: none;
  background: transparent;
  border-radius: var(--r-row);
  padding: 10px 12px;
  font-family: var(--theme-font-family, "Inter", sans-serif);
  font-size: 16px;
  line-height: 1.2;
  color: var(--c-purple-700);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.14s ease, color 0.14s ease;
}

.qdnapro-event-sheet-body .es-dt-btn:hover {
  background: var(--c-grey-50);
}

.qdnapro-event-sheet-body .es-dt-btn:active {
  background: var(--c-grey-100);
}

.qdnapro-event-sheet-body .es-dt-btn.is-active {
  background: var(--c-grey-50);
  color: var(--c-purple-500);
}

.qdnapro-event-sheet-body .es-card-when.es-allday-on .es-dt-time {
  display: none;
}

.qdnapro-event-sheet-body .es-card-desc {
  padding: 10px 12px 12px;
}

.qdnapro-event-sheet-body .es-card-title {
  padding: 10px 12px 12px;
}

.qdnapro-event-sheet-body .es-card-delete {
  padding: 8px 12px;
  background: transparent;
  border: 0;
}

.qdnapro-event-sheet-body .es-card-delete > qdnapro-button {
  width: 100%;
}

@keyframes es-wiggle {
  0%, 100% {
    transform: translateX(0);
  }
  20% {
    transform: translateX(-6px);
  }
  40% {
    transform: translateX(5px);
  }
  60% {
    transform: translateX(-3px);
  }
  80% {
    transform: translateX(2px);
  }
}
.qdnapro-event-sheet-body .es-wiggle {
  animation: es-wiggle 0.4s ease;
}

/* Recurring personal events (Planner F6 fase 1, 20.07.2026) — the
 * repeat-interval/until fields inside the repeat sub-page, and the
 * edit/delete edit-scope chooser sub-page. Back-ported here (bo2 is the
 * canonical event-sheet source; the PWA copy is generated by
 * sync-v2-components) so a sync no longer wipes the PWA-side rules. */
.qdnapro-event-sheet-body .es-repeat-extra {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.qdnapro-event-sheet-body .es-scope-title {
  padding: 4px 12px 0;
  font-size: 12px;
  line-height: 1.4;
  color: var(--c-text-muted);
}

.qdnapro-event-sheet-body .es-scope-confirm-btn {
  width: calc(100% - 24px);
  margin: 4px 12px 0;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-event-sheet-body .es-panel {
    transition: none;
  }
  .qdnapro-event-sheet-body .es-pages,
  .qdnapro-event-sheet-body .es-page-main,
  .qdnapro-event-sheet-body .es-page-sub {
    transition: none;
  }
  .qdnapro-event-sheet-body .es-wiggle {
    animation: none;
  }
}
.qdnapro-favorite-button {
  --c-focus-ring: var(--c-purple-500);
  --c-focus-glow: rgba(70, 82, 243, 0.25);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 32px;
  height: 32px;
  padding: 4px;
  border: none;
  border-radius: 4px;
  background: transparent;
  color: var(--c-text-disabled);
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: transform 200ms cubic-bezier(0.34, 1.56, 0.64, 1), background-color 120ms ease, color 300ms ease-in-out, box-shadow 120ms ease;
}

.qdnapro-favorite-button:hover:not(.favorite-button-disabled) {
  background-color: var(--c-grey-50);
  color: var(--c-grey-950);
  transform: scale(1.1);
}

.qdnapro-favorite-button:active:not(.favorite-button-disabled) {
  transform: scale(0.9);
  transition: transform 80ms ease-out, background-color 120ms ease, color 300ms ease-in-out;
}

.qdnapro-favorite-button:focus {
  outline: none;
}

.qdnapro-favorite-button:focus-visible, .qdnapro-favorite-button.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--c-focus-ring), 0 0 0 6px var(--c-focus-glow);
}

.qdnapro-favorite-button .favorite-button-icons {
  position: relative;
  display: inline-block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.qdnapro-favorite-button.favorite-button-size-big {
  width: 40px;
  height: 40px;
  border-radius: 8px;
}

.qdnapro-favorite-button.favorite-button-size-big .favorite-button-icons {
  width: 20px;
  height: 20px;
}

.qdnapro-favorite-button .favorite-icon {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  fill: currentColor;
  pointer-events: none;
  transition: opacity 300ms ease-in-out;
}

.qdnapro-favorite-button .favorite-icon-outline {
  opacity: 1;
}

.qdnapro-favorite-button .favorite-icon-filled {
  opacity: 0;
  fill: var(--c-purple-500);
}

.qdnapro-favorite-button .favorite-icon-pulse {
  opacity: 0;
  fill: var(--c-purple-500);
}

.qdnapro-favorite-button.favorite-button-favorited {
  color: var(--c-purple-500);
}

.qdnapro-favorite-button.favorite-button-favorited .favorite-icon-outline {
  opacity: 0;
}

.qdnapro-favorite-button.favorite-button-favorited .favorite-icon-filled {
  opacity: 1;
}

.qdnapro-favorite-button.favorite-button-pulsing .favorite-icon-pulse {
  animation: qdnapro-favorite-pulse 600ms ease-out;
}

.qdnapro-favorite-button.favorite-button-disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

/* Heart mode (Kim 2026-06-30): red/pink fill, no ripple pulse, and a
   pop animation on the filled heart when favorited. Particles are spawned
   in JS and appended to <body>. */
.qdnapro-favorite-button.favorite-button-mode-heart.favorite-button-favorited {
  color: var(--c-favorite-heart);
}

.qdnapro-favorite-button.favorite-button-mode-heart .favorite-icon-filled {
  fill: var(--c-favorite-heart);
}

.qdnapro-favorite-button.favorite-button-mode-heart .favorite-icon-pulse {
  display: none;
}

.qdnapro-favorite-button.favorite-button-mode-heart.favorite-button-popping .favorite-icon-filled {
  transform-origin: center;
  animation: qdnapro-heart-pop 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes qdnapro-heart-pop {
  0% {
    transform: scale(1);
  }
  20% {
    transform: scale(0.8);
  }
  50% {
    transform: scale(1.45);
  }
  70% {
    transform: scale(0.95);
  }
  85% {
    transform: scale(1.1);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes qdnapro-favorite-pulse {
  0% {
    opacity: 0.5;
    transform: scale(1);
  }
  100% {
    opacity: 0;
    transform: scale(2);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-favorite-button,
  .qdnapro-favorite-button .favorite-icon {
    transition: opacity 120ms ease, color 120ms ease, background-color 120ms ease;
  }
  .qdnapro-favorite-button:hover:not(.favorite-button-disabled),
  .qdnapro-favorite-button:active:not(.favorite-button-disabled) {
    transform: none;
  }
  .qdnapro-favorite-button.favorite-button-pulsing .favorite-icon-pulse {
    animation: none;
  }
  .qdnapro-favorite-button.favorite-button-popping .favorite-icon-filled {
    animation: none;
  }
}
[data-theme=dark] .qdnapro-favorite-button {
  --c-focus-ring: #a5acff;
  --c-focus-glow: rgba(165, 172, 255, 0.40);
  color: #898e99;
}

[data-theme=dark] .qdnapro-favorite-button:hover:not(.favorite-button-disabled) {
  background-color: rgba(255, 255, 255, 0.08);
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-favorite-button.favorite-button-favorited {
  color: #a5acff;
}

[data-theme=dark] .qdnapro-favorite-button.favorite-button-favorited .favorite-icon-filled {
  fill: #a5acff;
}

[data-theme=dark] .qdnapro-favorite-button.favorite-button-favorited .favorite-icon-pulse {
  fill: #a5acff;
}

/* White variant: white star for use over photos / imagery. Placed
   last so it wins over the favorited + dark-theme colour rules. */
.qdnapro-favorite-button.favorite-button-variant-white,
.qdnapro-favorite-button.favorite-button-variant-white.favorite-button-favorited,
.qdnapro-favorite-button.favorite-button-variant-white:hover:not(.favorite-button-disabled) {
  color: var(--c-text-on-action);
}

.qdnapro-favorite-button.favorite-button-variant-white .favorite-icon-filled,
.qdnapro-favorite-button.favorite-button-variant-white .favorite-icon-pulse {
  fill: #ffffff;
}


/* ============================================================
 *  qdnapro-file-icon — compiled from _file-icon.scss
 * ============================================================ */
.qdnapro-file-icon {
  display: inline-flex;
  flex-shrink: 0;
  user-select: none;
  line-height: 1;
  /* Anchor for the absolutely-positioned fallback badge.
     Without this, the badge escapes to the nearest positioned
     ancestor and renders ABOVE the icon instead of overlaying it.
     [Kim 2026-05-06] */
  position: relative;
}

.qdnapro-file-icon.file-icon-24 {
  width: 24px;
  height: 30px;
}

.qdnapro-file-icon.file-icon-32 {
  width: 32px;
  height: 40px;
}

.qdnapro-file-icon.file-icon-40 {
  width: 40px;
  height: 50px;
}

.qdnapro-file-icon.file-icon-48 {
  width: 48px;
  height: 60px;
}

/* Ext-text fallback badge — HIDDEN by default. The component's JS
   adds `qdnapro-file-icon-no-asset` to the host only when BOTH the
   ext-specific AND the generic SVG fail to load. The display:none
   keeps the badge from bleeding through anti-aliased / transparent
   pixels of a successful SVG load. */
.qdnapro-file-icon .qdnapro-file-icon-badge {
  display: none;
}

.qdnapro-file-icon.qdnapro-file-icon-no-asset .qdnapro-file-icon-badge {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300);
  border-radius: 3px;
  color: var(--c-grey-500);
  font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  z-index: 0;
}

[data-theme=dark] .qdnapro-file-icon.qdnapro-file-icon-no-asset .qdnapro-file-icon-badge {
  background: #2e3036;
  border-color: #565b66;
  color: #a6aab3;
}

/* Dark-mode polish — subtle outer glow on the SVG body so the
   white paper-on-screen icon stays visible against dark canvas. */
[data-theme=dark] .qdnapro-file-icon svg {
  filter: drop-shadow(0 0 1px rgba(255, 255, 255, 0.1));
}

/* ============================================================
 *  qdnapro-folder-icon — compiled from _folder-icon.scss
 * ============================================================ */
.qdnapro-folder-icon {
  display: inline-flex;
  flex-shrink: 0;
  user-select: none;
  line-height: 1;
  /* Anchor for the absolutely-positioned fallback badge. Without this,
     the badge escapes to the nearest positioned ancestor instead of
     overlaying the icon — same reasoning as qdnapro-file-icon. */
  position: relative;
}

/* Ext-text fallback badge — HIDDEN by default. The component's JS adds
   `qdnapro-folder-icon-no-asset` to the host only when BOTH the
   variant-specific AND the "closed" fallback SVG fail to load. */
.qdnapro-folder-icon .qdnapro-folder-icon-badge {
  display: none;
}

.qdnapro-folder-icon.qdnapro-folder-icon-no-asset .qdnapro-folder-icon-badge {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300);
  border-radius: 3px;
  color: var(--c-grey-500);
  font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  z-index: 0;
}

[data-theme=dark] .qdnapro-folder-icon.qdnapro-folder-icon-no-asset .qdnapro-folder-icon-badge {
  background: #2e3036;
  border-color: #565b66;
  color: #a6aab3;
}

.qdnapro-status-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box; /* keeps the 1px border "inside" (Figma stroke: Inside) */
  gap: 8px;
  padding: 4px;
  border: 1px solid var(--c-purple-50, #e6e9ff);
  border-radius: 24px;
  background: var(--c-bg-card);
  overflow: hidden; /* Figma "Clip content" */
}

/* Hidden when no status is set — collapse out of flow. */
.qdnapro-status-badge[hidden] {
  display: none;
}

/* Icon colours. qdnapro-icon renders MDI SVG with fill: currentColor,
   so setting `color` on the nested element tints the glyph. */
.qdnapro-status-badge .status-badge-heart {
  color: var(--c-favorite-heart, #ff4d6a);
}

.qdnapro-status-badge .status-badge-offline {
  color: var(--c-action-500, #4652f3);
}

.qdnapro-status-badge .status-badge-unread {
  color: var(--c-purple-500, #40499a);
}

/* ------------------------------------------------------------------ */
/* interactive variant (28.07.2026, PWA documents badge-info dialog)  */
/* Opt-in: role="button" + tabindex is set by the JS. Purely visual   */
/* additions here — hover/active feedback + the invisible hit-area.   */
/* WITHOUT [interactive] none of this applies, so the default pill    */
/* stays pixel-for-pixel what it was before this variant existed.     */
/* ------------------------------------------------------------------ */
.qdnapro-status-badge.status-badge-interactive {
  position: relative; /* containing block for the ::after hit-area */
  cursor: pointer;
  transition: background-color 120ms ease, border-color 120ms ease, transform 80ms ease-out;
}

.qdnapro-status-badge.status-badge-interactive:hover {
  /* Subtle — reuse the same soft purple wash the rest of the library
     uses for hover-on-white (qdnapro-grid-tile's --qgt-bg-hover token). */
  background: var(--c-bg-card-hover, #f7f8fa);
  border-color: var(--c-purple-100, #c0c5ff);
}

.qdnapro-status-badge.status-badge-interactive:active {
  transform: scale(0.94);
  transition: transform 70ms ease-out;
}

.qdnapro-status-badge.status-badge-interactive:focus {
  outline: none;
}

.qdnapro-status-badge.status-badge-interactive:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--focus-ring), 0 0 0 6px var(--focus-glow);
}

/* Invisible hit-area, NOT a bigger pill. The pill itself keeps the Figma
   size (28px tall at size="small") because it sits right next to other
   controls — a 3-dot menu button in a list row, or the corner of a grid
   tile — and a large hit-area would eat into those neighbours. A flat
   6px-per-side inset lands size="small" (28px tall) on a ~40px tappable
   square (the minimum touch target) without reaching far enough to
   overlap anything beside it; size="large" (32/36px tall) clears 40px
   with the same 6px, kept for one consistent rule. */
.qdnapro-status-badge.status-badge-interactive::after {
  content: "";
  position: absolute;
  inset: -6px;
}

.qdnapro-status-track {
  --st-fill: var(--c-brand-purple, #5b4dd1);
  --st-text: var(--c-text-muted, #6e7280);
  --st-empty: var(--c-border-soft, #e3e2f0);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: none;
  white-space: nowrap;
}
.qdnapro-status-track__bar {
  display: inline-flex;
  align-items: center;
  gap: 3px;
}
.qdnapro-status-track__seg {
  display: block;
  width: 12px;
  height: 4px;
  border-radius: 2px;
  background: var(--st-empty);
  transition: background-color 180ms ease, opacity 180ms ease;
}
.qdnapro-status-track__seg.is-filled {
  background: var(--st-fill);
  opacity: calc(0.42 + 0.58 * var(--st-i, 1));
}
.qdnapro-status-track__label {
  font-size: 12px;
  font-weight: 600;
  line-height: 1.2;
  color: var(--st-text);
}
.qdnapro-status-track[data-tone=done] {
  --st-fill: var(--c-signal-green-text, #2c7a5b);
  --st-text: var(--c-signal-green-text, #2c7a5b);
}
.qdnapro-status-track[data-tone=warn] {
  --st-fill: var(--c-warn-yellow-600, #f59e0b);
  --st-text: var(--c-warn-amber-600, #b45309);
}
.qdnapro-status-track[data-tone=late] {
  --st-fill: var(--c-signal-red-text, #b8353a);
  --st-text: var(--c-signal-red-text, #b8353a);
}
.qdnapro-status-track[data-tone=off] {
  --st-fill: var(--c-text-disabled, #9a9ab0);
  --st-text: var(--c-text-disabled, #9a9ab0);
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-status-track .qdnapro-status-track__seg {
    transition: none;
  }
}

.qdnapro-file-upload {
  display: block;
}

.qdnapro-file-upload__note {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  padding: 10px 12px;
  margin-bottom: 16px;
  background: var(--c-bg-subtle-purple);
  border: 1px solid var(--c-purple-soft-12);
  border-radius: 10px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--c-brand-purple);
}
.qdnapro-file-upload__note[hidden] {
  display: none;
}

.qdnapro-file-upload__note-icon {
  flex-shrink: 0;
  margin-top: 1px;
  color: var(--c-brand-purple);
}

.qdnapro-file-upload__note-text strong {
  color: var(--c-brand-purple);
}

.qdnapro-file-upload__zone {
  --fu-c-border: var(--c-purple-500);
  --fu-c-bg-tint: rgba(70, 82, 243, 0.08);
  --fu-c-reject: var(--c-signal-red-text);
  --fu-c-reject-tint: rgba(198, 90, 90, 0.10);
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 28px 16px;
  border: 2px dashed var(--c-border-tree);
  border-radius: 14px;
  background: var(--c-bg-card-hover);
  text-align: center;
  cursor: pointer;
  transition: border-color 140ms ease, background 140ms ease;
}
.qdnapro-file-upload__zone:hover, .qdnapro-file-upload__zone:focus-visible {
  border-color: var(--c-purple-300);
  background: var(--c-bg-subtle-purple);
  outline: none;
}
.qdnapro-file-upload__zone.is-dragover {
  border-color: transparent;
  background: radial-gradient(ellipse at top left, var(--fu-c-bg-tint), transparent 55%), radial-gradient(ellipse at bottom right, var(--fu-c-bg-tint), transparent 55%);
  --fu-march-color: var(--fu-c-border);
}
.qdnapro-file-upload__zone.is-dragover.is-reject {
  background: radial-gradient(ellipse at top left, var(--fu-c-reject-tint), transparent 55%), radial-gradient(ellipse at bottom right, var(--fu-c-reject-tint), transparent 55%);
  --fu-march-color: var(--fu-c-reject);
}

.qdnapro-file-upload__zone-icon {
  color: var(--c-text-disabled-pp);
  line-height: 0;
}

.qdnapro-file-upload__ants {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  color: transparent;
  pointer-events: none;
}

.qdnapro-file-upload__ants-rect {
  width: calc(100% - 2px);
  height: calc(100% - 2px);
  animation: qdna-fu-march 1.6s linear infinite;
}

.qdnapro-file-upload__zone.is-dragover .qdnapro-file-upload__ants {
  color: var(--fu-march-color);
}

@keyframes qdna-fu-march {
  to {
    stroke-dashoffset: -12;
  }
}
.qdnapro-file-upload__title {
  margin: 4px 0 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--c-chip-purple-text);
}

.qdnapro-file-upload__or {
  margin: 0;
  font-size: 12px;
  color: var(--c-grey-400);
}

.qdnapro-file-upload__hint {
  margin: 6px 0 0;
  font-size: 12px;
  color: var(--c-grey-400);
}

.qdnapro-file-upload__pick {
  flex: 0 0 auto;
}

.qdnapro-file-upload__chosen {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  padding: 10px 12px;
  border: 1px solid var(--c-border-soft-2);
  border-radius: 10px;
  background: var(--c-bg-card);
}
.qdnapro-file-upload__chosen[hidden] {
  display: none;
}

.qdnapro-file-upload__file-icon {
  flex-shrink: 0;
  color: var(--c-brand-purple);
  line-height: 0;
}

.qdnapro-file-upload__file-name {
  flex: 1 1 auto;
  font-size: 13px;
  color: var(--c-chip-purple-text);
  word-break: break-all;
}

.qdnapro-file-upload__remove {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--c-grey-400);
  cursor: pointer;
  transition: background 120ms ease, color 120ms ease;
}
.qdnapro-file-upload__remove:hover {
  background: var(--c-bg-card-hover);
  color: #c33a30;
}

.qdnapro-file-upload__error {
  margin: 12px 0 0;
  padding: 9px 12px;
  background: var(--c-signal-red-soft);
  border: 1px solid var(--c-chip-red-hover);
  border-radius: 10px;
  font-size: 13px;
  color: var(--c-tag-critical-text);
}
.qdnapro-file-upload__error[hidden] {
  display: none;
}

.qdnapro-file-upload.is-disabled {
  opacity: 0.6;
  pointer-events: none;
}

[data-theme=dark] .qdnapro-file-upload__zone {
  --fu-c-border: #a5acff;
  --fu-c-bg-tint: rgba(165, 172, 255, 0.10);
  --fu-c-reject: #fbaaaa;
  --fu-c-reject-tint: rgba(251, 170, 170, 0.10);
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-file-upload__ants-rect {
    animation: none;
  }
}
.qdnapro-filter-sheet-body {
  display: flex;
  flex-direction: column;
  gap: var(--s-6);
}

.qdnapro-filter-sheet-body .fs-section {
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
}

.qdnapro-filter-sheet-body .fs-section-title {
  font-size: 12px;
  font-weight: var(--fw-medium);
  line-height: 1.3;
  color: var(--c-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0 var(--s-1);
}

.fs-section-note {
  margin: 2px 0 8px;
  font-size: 12px;
  line-height: 1.4;
  color: var(--c-text-muted, #6e7280);
}

.qdnapro-filter-sheet-body .fs-footer {
  position: sticky;
  bottom: 0;
  z-index: 1;
  padding: var(--s-4) 0;
  background: var(--c-bg-card, #ffffff);
  border-top: 1px solid var(--c-border-soft-2, #e6e9ef);
}

.qdnapro-filter-sheet-body .fs-footer qdnapro-button {
  width: 100%;
}

.qdnapro-popover[data-fs-pop] {
  width: 340px;
  max-width: 92vw;
}

.qdnapro-popover[data-fs-pop] .qdnapro-filter-sheet-body {
  max-height: 72vh;
  overflow-y: auto;
}

.qdnapro-composition-bar {
  display: inline-block;
  flex: none;
  width: var(--cb-w, 120px);
  line-height: 0;
}
.qdnapro-composition-bar__track {
  display: flex;
  width: 100%;
  height: var(--cb-h, 6px);
  border-radius: 999px;
  overflow: hidden;
  background: var(--c-border-soft, #e3e2f0);
}
.qdnapro-composition-bar__part {
  display: block;
  height: 100%;
  width: var(--cb-part, 0%);
  transition: width 220ms cubic-bezier(0.22, 1, 0.36, 1);
}
.qdnapro-composition-bar__part[data-tone=done] {
  background: var(--c-signal-green-text, #428b6e);
}
.qdnapro-composition-bar__part[data-tone=warn] {
  background: var(--c-warn-yellow-600, #f59e0b);
}
.qdnapro-composition-bar__part[data-tone=late] {
  background: var(--c-signal-red-text, #c65a5a);
}
.qdnapro-composition-bar__part[data-tone=info] {
  background: var(--c-signal-blue-text, #6a8ab4);
}
.qdnapro-composition-bar__part[data-tone=muted] {
  background: var(--c-grey-300, #cfd0dd);
}
.qdnapro-composition-bar__part[data-tone=default] {
  background: var(--c-brand-purple, #5b4dd1);
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-composition-bar .qdnapro-composition-bar__part {
    transition: none;
  }
}

.qdnapro-context-menu {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1002;
  display: none;
  box-sizing: border-box;
}

.qdnapro-context-menu.is-open {
  display: block;
}

.qdnapro-form-card {
  --form-card-header-bg: var(--theme-btn-color, var(--c-sidebar-bg, #3a4290));
  --form-card-header-text: #ffffff;
  --form-card-subtitle: rgba(255, 255, 255, 0.75);
  --form-card-body-bg: var(--c-bg-card, #ffffff);
  --form-card-border: var(--c-border-card, #e1e3e6);
  --form-card-radius: var(--r-card, 16px);
  --form-card-max-height: none;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
  overflow: hidden;
  border-radius: var(--form-card-radius);
  background: var(--form-card-body-bg);
  box-shadow: var(--shadow-card, 0 1px 2px rgba(20, 25, 80, 0.04), 0 4px 16px rgba(20, 25, 80, 0.08));
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.qdnapro-form-card__header {
  display: flex;
  flex-direction: column;
  gap: 6px;
  box-sizing: border-box;
  padding: 20px 20px 18px;
  background: var(--form-card-header-bg);
  color: var(--form-card-header-text);
}

.qdnapro-form-card--celebratory .qdnapro-form-card__header {
  padding: 32px 24px 26px;
  align-items: center;
  text-align: center;
}

.qdnapro-form-card__image {
  width: 100%;
  border-radius: 12px;
  overflow: hidden;
  line-height: 0;
  margin-bottom: 4px;
}

.qdnapro-form-card__image[hidden] {
  display: none;
}

.qdnapro-form-card__image-img {
  display: block;
  width: 100%;
  max-height: 160px;
  object-fit: cover;
}

.qdnapro-form-card__title {
  font-size: 19px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--form-card-header-text);
  overflow-wrap: anywhere;
}

.qdnapro-form-card--celebratory .qdnapro-form-card__title {
  font-size: 22px;
}

.qdnapro-form-card__subtitle {
  font-size: 13px;
  line-height: 1.4;
  color: var(--form-card-subtitle);
  overflow-wrap: anywhere;
}

.qdnapro-form-card__subtitle[hidden] {
  display: none;
}

.qdnapro-form-card__progress {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 2px;
}

.qdnapro-form-card__progress[hidden] {
  display: none;
}

.qdnapro-form-card__progress-pill {
  flex: 0 0 auto;
  padding: 2px 9px;
  border-radius: var(--r-pill, 999px);
  background: rgba(255, 255, 255, 0.18);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--form-card-header-text);
}

.qdnapro-form-card__progress-track {
  flex: 1 1 auto;
  height: 4px;
  border-radius: var(--r-pill, 999px);
  background: rgba(255, 255, 255, 0.2);
  overflow: hidden;
}

.qdnapro-form-card__progress-fill {
  display: block;
  height: 100%;
  width: 0%;
  border-radius: var(--r-pill, 999px);
  background: var(--c-bg-card);
  transition: width 220ms ease;
}

.qdnapro-form-card__body {
  flex: 1 1 auto;
  box-sizing: border-box;
  min-width: 0;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-height: var(--form-card-max-height);
  overflow-y: auto;
}

.qdnapro-form-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  box-sizing: border-box;
  padding: 14px 20px 18px;
  border-top: 1px solid var(--form-card-border);
}

.qdnapro-form-card__footer[hidden] {
  display: none;
}

.qdnapro-form-card__footer [data-fc=prev][hidden] ~ [data-fc=next] {
  margin-left: auto;
}

.qdnapro-form-card__footer qdnapro-button {
  flex: 0 0 auto;
}

.qdnapro-form-card__footer qdnapro-button[hidden] {
  display: none;
}

qdnapro-format-rules {
  display: none;
}
qdnapro-format-rules[open] {
  display: block;
  position: fixed;
  inset: 0;
  z-index: var(--overlay-z-nested);
}
qdnapro-format-rules .qos-dialog {
  --qos-w: 820px;
}
qdnapro-format-rules .qfr-firstmatch {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  margin: 0;
  padding: 9px 11px;
  border-radius: 8px;
  background: var(--c-bg-subtle-purple, #f3f5ff);
  font-size: 12.5px;
  color: var(--c-text-body, #24262c);
}
qdnapro-format-rules .qfr-firstmatch qdnapro-icon {
  flex: 0 0 auto;
  color: var(--c-brand-purple, #40499a);
  margin-top: 1px;
}
qdnapro-format-rules .qfr-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  overflow-y: auto;
  min-height: 0;
  padding: 2px;
}
qdnapro-format-rules .qfr-empty {
  margin: 0;
  padding: 14px 2px;
  font-size: 12.5px;
  color: var(--c-text-muted, #6e7280);
}
qdnapro-format-rules .qfr-rule {
  border: 1px solid var(--c-purple-300, #8a92d0);
  border-radius: 8px;
  background: var(--c-bg-subtle-purple, #f3f5ff);
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
qdnapro-format-rules .qfr-rule-fout {
  border-color: var(--c-tag-critical-text, #c33a30);
}
qdnapro-format-rules .qfr-cond {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
qdnapro-format-rules .qfr-nr {
  flex: 0 0 auto;
  font-size: 11px;
  font-weight: 650;
  color: var(--c-text-muted, #6e7280);
  background: var(--c-bg-card, #fff);
  border: 1px solid var(--c-border-tree, #d4d8ec);
  border-radius: 10px;
  padding: 1px 7px;
}
qdnapro-format-rules .qfr-op {
  flex: 0 0 168px;
}
qdnapro-format-rules .qfr-num {
  flex: 0 0 96px;
}
qdnapro-format-rules .qfr-and {
  font-size: 12.5px;
  color: var(--c-text-muted, #6e7280);
}
qdnapro-format-rules .qfr-del {
  margin-left: auto;
  flex: 0 0 auto;
}
qdnapro-format-rules .qfr-fmt {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
qdnapro-format-rules .qfr-flag {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  cursor: pointer;
  white-space: nowrap;
}
qdnapro-format-rules .qfr-color {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}
qdnapro-format-rules .qfr-swatch {
  position: relative;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  border-radius: 8px;
  cursor: pointer;
  outline: 2px solid rgba(64, 73, 154, 0.18);
  outline-offset: 1px;
  transition: outline-color 150ms;
}
qdnapro-format-rules .qfr-swatch:hover {
  outline-color: var(--c-brand-purple, #40499a);
}
qdnapro-format-rules .qfr-swatch-leeg {
  background-image: linear-gradient(to top right, transparent calc(50% - 1px), var(--c-grey-300, #c4c7cc) 50%, transparent calc(50% + 1px));
  background-color: var(--c-bg-card, #fff);
}
qdnapro-format-rules .qfr-swatch-input {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  opacity: 0 !important;
  cursor: pointer !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
qdnapro-format-rules .qfr-clear {
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: 15px;
  line-height: 1;
  padding: 2px 3px;
  border-radius: 4px;
  color: var(--c-text-muted, #6e7280);
}
qdnapro-format-rules .qfr-clear:hover {
  background: var(--c-bg-subtle-hover, #f0f1f2);
  color: var(--c-text-body, #24262c);
}
qdnapro-format-rules .qfr-clear:focus-visible {
  outline: 2px solid var(--focus-ring, #40499a);
  outline-offset: 1px;
}
qdnapro-format-rules .qfr-preview {
  margin-left: auto;
  min-width: 84px;
  text-align: right;
  padding: 4px 8px;
  border-radius: 6px;
  border: 1px solid var(--c-border-tree, #d4d8ec);
  background: var(--c-bg-card, #fff);
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  color: var(--c-text-body, #24262c);
}
qdnapro-format-rules .qfr-contrast {
  margin: 0;
  font-size: 12px;
  color: var(--c-tag-warning-text, #a06400);
}
qdnapro-format-rules .qfr-contrast[hidden] {
  display: none;
}
qdnapro-format-rules .qfr-addbar {
  display: flex;
  align-items: center;
  gap: 10px;
}
qdnapro-format-rules .qfr-max {
  font-size: 12px;
  color: var(--c-text-muted, #6e7280);
}
qdnapro-format-rules .qfr-status-fout {
  color: var(--c-tag-critical-text, #c33a30);
}
qdnapro-format-rules .qfr-list::-webkit-scrollbar {
  width: 6px;
}
qdnapro-format-rules .qfr-list::-webkit-scrollbar-track {
  background: transparent;
}
qdnapro-format-rules .qfr-list::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.18);
  border-radius: 3px;
}
qdnapro-format-rules .qfr-list {
  scrollbar-width: thin;
  scrollbar-color: rgba(0, 0, 0, 0.18) transparent;
}
@media (max-width: 720px) {
  qdnapro-format-rules .qfr-op, qdnapro-format-rules .qfr-num {
    flex: 1 1 100px;
  }
  qdnapro-format-rules .qfr-preview {
    margin-left: 0;
  }
}

qdnapro-formula-editor {
  display: none;
}
qdnapro-formula-editor[open] {
  display: block;
  position: fixed;
  inset: 0;
  z-index: var(--overlay-z-nested);
}
qdnapro-formula-editor .qos-dialog {
  --qos-w: 880px;
}
qdnapro-formula-editor .qfe-cols {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 104px minmax(0, 1.1fr);
  gap: 14px;
  align-items: start;
  min-height: 0;
}
qdnapro-formula-editor .qfe-col {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
qdnapro-formula-editor .qfe-col-label {
  font-size: 11px;
  font-weight: 650;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--c-text-muted, #6e7280);
}
qdnapro-formula-editor .qfe-list {
  border: 1px solid var(--c-border-tree, #d4d8ec);
  border-radius: 10px;
  background: var(--c-bg-card, #fff);
  padding: 4px;
  max-height: 232px;
  overflow-y: auto;
  min-height: 0;
}
qdnapro-formula-editor .qfe-group {
  padding: 8px 10px 3px;
  font-size: 10.5px;
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--c-text-muted, #6e7280);
}
qdnapro-formula-editor .qfe-group-fail {
  text-transform: none;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 12.5px;
  padding: 10px;
}
qdnapro-formula-editor .qfe-item .menu-item-label {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 12.5px;
  color: var(--c-brand-purple, #40499a);
}
qdnapro-formula-editor .qfe-ops {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}
qdnapro-formula-editor .qfe-ops qdnapro-button {
  width: 100%;
}
qdnapro-formula-editor .qfe-fieldwrap {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
qdnapro-formula-editor .qfe-field {
  box-sizing: border-box;
  width: 100%;
  min-height: 84px;
  resize: vertical;
  padding: 12px 14px;
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 15px;
  line-height: 1.6;
  color: var(--c-text-body, #24262c);
  background: var(--c-bg-card, #fff);
  border: 1.5px solid var(--c-brand-purple, #40499a);
  border-radius: 10px;
}
qdnapro-formula-editor .qfe-field:focus {
  outline: none;
  box-shadow: 0 0 0 3px var(--c-bg-secondary-purple, #e6e9ff);
}
qdnapro-formula-editor .qfe-field::selection {
  background: var(--c-brand-purple, #40499a);
  color: var(--c-text-on-action);
}
qdnapro-formula-editor .qfe-hint {
  margin: 0;
  font-size: 12.5px;
  color: var(--c-text-muted, #6e7280);
}
qdnapro-formula-editor .qfe-status {
  margin: 0;
  min-height: 1.2em;
  font-size: 12.5px;
}
qdnapro-formula-editor .qfe-status-goed {
  color: var(--c-tag-new-text, #1f7a48);
}
qdnapro-formula-editor .qfe-status-fout {
  color: var(--c-tag-critical-text, #c33a30);
}
qdnapro-formula-editor .qfe-status-waarschuwing {
  color: var(--c-tag-warning-text, #a06400);
}
qdnapro-formula-editor .qfe-list::-webkit-scrollbar {
  width: 6px;
}
qdnapro-formula-editor .qfe-list::-webkit-scrollbar-track {
  background: transparent;
}
qdnapro-formula-editor .qfe-list::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.18);
  border-radius: 3px;
}
qdnapro-formula-editor .qfe-list {
  scrollbar-width: thin;
  scrollbar-color: rgba(0, 0, 0, 0.18) transparent;
}
@media (max-width: 720px) {
  qdnapro-formula-editor .qfe-cols {
    grid-template-columns: 1fr;
  }
  qdnapro-formula-editor .qfe-ops {
    grid-template-columns: repeat(4, 1fr);
  }
  qdnapro-formula-editor .qfe-list {
    max-height: 168px;
  }
}

.qdnapro-gif-sheet {
  display: contents;
}

.qdnapro-bottom-sheet[data-gif-sheet] .bs-panel {
  height: 80%;
  max-height: 80%;
}

.qdnapro-bottom-sheet[data-gif-sheet] .bs-body {
  overflow: hidden;
  gap: 0;
  padding: 0;
}

qdnapro-popover[data-gif-sheet] {
  width: min(92vw, 380px);
  padding: 8px;
  box-sizing: border-box;
}

qdnapro-popover[data-gif-sheet] .gs-root {
  flex: none;
  height: 460px;
}

qdnapro-popover[data-gif-sheet] .gs-header {
  padding: 0 0 8px;
}

qdnapro-popover[data-gif-sheet] .gs-scroll {
  padding: 0 0 8px;
}

.gs-root {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.gs-header {
  flex-shrink: 0;
  padding: 4px 12px 8px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.gs-search-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.gs-search-field {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
}

.gs-completions {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  max-height: 260px;
  overflow-y: auto;
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300);
  border-radius: 8px;
  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.08), 0 1px 2px 0 rgba(0, 0, 0, 0.14);
  padding: 6px;
  z-index: 5;
}

.gs-completions[hidden] {
  display: none;
}

.gs-completion-item {
  display: flex;
  align-items: center;
  width: 100%;
  height: 36px;
  padding: 0 10px;
  margin: 0;
  border: none;
  background: none;
  border-radius: 4px;
  font-family: inherit;
  font-size: 14px;
  line-height: 20px;
  font-weight: 500;
  color: var(--c-grey-950);
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.gs-completion-item + .gs-completion-item {
  margin-top: 2px;
}

.gs-completion-item:hover {
  background: var(--c-grey-50);
}

.gs-categories {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding: 0 12px 10px;
}

.gs-categories::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.gs-suggestions {
  margin-top: 14px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.gs-suggestions-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--c-text-muted);
}

.gs-suggestions-chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}

.gs-badge-wrap {
  flex-shrink: 0;
  display: flex;
  align-items: center;
}

.gs-badge {
  height: 16px;
  width: auto;
  display: block;
}

.gs-badge-dark {
  display: none;
}

[data-theme=dark] .gs-badge-light {
  display: none;
}

[data-theme=dark] .gs-badge-dark {
  display: block;
}

.gs-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
  container: qdnapro-gif-sheet/inline-size;
}

.gs-scroll::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.gs-grid {
  column-count: 2;
  column-gap: 8px;
  padding: 0 12px 12px;
}

.gs-grid[hidden] {
  display: none;
}

@container qdnapro-gif-sheet (min-width: 560px) {
  .gs-grid, .gs-skeleton {
    column-count: 3;
  }
}
@container qdnapro-gif-sheet (min-width: 820px) {
  .gs-grid, .gs-skeleton {
    column-count: 4;
  }
}
.gs-cell {
  display: block;
  width: 100%;
  margin: 0 0 8px;
  border: none;
  background: none;
  padding: 0;
  border-radius: 12px;
  overflow: hidden;
  cursor: pointer;
  break-inside: avoid;
  -webkit-tap-highlight-color: transparent;
}

.gs-cell:active {
  opacity: 0.85;
}

.gs-img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 12px;
  background: var(--c-bg-card-hover);
}

.gs-skeleton {
  column-count: 2;
  column-gap: 8px;
  padding: 0 12px 12px;
}

.gs-skeleton[hidden] {
  display: none;
}

.gs-skel-cell {
  margin: 0 0 8px;
  break-inside: avoid;
}

.gs-skeleton qdnapro-skeleton-bone {
  border-radius: 12px;
}

.gs-empty[hidden] {
  display: none;
}

.gs-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 56px 24px;
  text-align: center;
  color: var(--c-text-muted);
}

.gs-empty-icon {
  width: 28px;
  height: 28px;
}

.gs-empty-text {
  font-size: 14px;
  max-width: 260px;
}

.gs-sentinel {
  height: 1px;
}

.qdnapro-grid-tile {
  --qgt-bg: var(--c-bg-card, #ffffff);
  --qgt-bg-hover: var(--c-bg-card-hover, #f7f8fa);
  --qgt-bg-pressed: var(--c-purple-soft-12, rgba(64, 73, 154, 0.12));
  --qgt-title-color: var(--c-text-heading, #1a1f4d);
  --qgt-meta-color: var(--c-text-muted, #6e7280);
  --qgt-focus-ring: var(--c-brand-purple, #40499a);
  --qgt-focus-glow: var(--c-purple-soft-18, rgba(64, 73, 154, 0.18));
  --qgt-selected-ring: var(--c-brand-purple, #40499a);
  --qgt-selected-glow: var(--c-action-18, rgba(70, 82, 243, 0.18));
  --qgt-pill-strong-bg: var(--c-warn-red-500, #dc2626);
  --qgt-pill-strong-fg: #ffffff;
  --qgt-pill-soft-bg: var(--c-grey-50, #f0f1f2);
  --qgt-pill-soft-icon-fg: var(--c-action-500, #4652f3);
  --qgt-pill-soft-count-fg: var(--qgt-title-color);
  display: flex;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box;
  position: relative;
  background: var(--qgt-bg);
  border-radius: var(--r-3, 12px);
  padding: 10px;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  font-family: var(--ff, "Inter", system-ui, -apple-system, sans-serif);
  color: var(--qgt-title-color);
  transition: box-shadow 150ms ease, transform 150ms ease, background-color 100ms ease-out;
}
.qdnapro-grid-tile:hover:not(.qgt-disabled):not(.qgt-static) {
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.07), 0 1px 3px rgba(0, 0, 0, 0.06);
  transform: translateY(-1px);
}
.qdnapro-grid-tile.qgt-static {
  cursor: default;
}
.qdnapro-grid-tile.is-pressed:not(.qgt-disabled) {
  background: var(--qgt-bg-pressed);
  transform: scale(0.96);
  transition: transform 70ms ease-out;
}
.qdnapro-grid-tile:focus {
  outline: none;
}
.qdnapro-grid-tile:focus-visible, .qdnapro-grid-tile.force-focus {
  outline: none;
  box-shadow: inset 0 0 0 2px var(--qgt-focus-ring), inset 0 0 0 5px var(--qgt-focus-glow);
}
.qdnapro-grid-tile.qgt-selected {
  box-shadow: 0 0 0 3px var(--qgt-selected-glow);
  background: var(--c-bg-subtle-purple, #f3f5ff);
}
.qdnapro-grid-tile.qgt-selected .qgt-title {
  color: var(--qgt-selected-ring);
}
.qdnapro-grid-tile.qgt-selected:hover:not(.qgt-disabled) {
  box-shadow: 0 0 0 3px var(--qgt-selected-glow), 0 4px 10px rgba(0, 0, 0, 0.07);
}
.qdnapro-grid-tile.qgt-disabled {
  opacity: 0.5;
  cursor: default;
  pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-grid-tile {
    transition: none;
  }
  .qdnapro-grid-tile:hover:not(.qgt-disabled) {
    transform: none;
  }
  .qdnapro-grid-tile.is-pressed:not(.qgt-disabled) {
    transform: none;
    transition: none;
  }
}
.qdnapro-grid-tile.force-hover {
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.07), 0 1px 3px rgba(0, 0, 0, 0.06);
  transform: translateY(-1px);
}
.qdnapro-grid-tile.force-pressed {
  background: var(--qgt-bg-pressed);
  transform: scale(0.96);
}

.qdnapro-grid-tile.qgt-size-s {
  width: 96px;
}
.qdnapro-grid-tile.qgt-size-s .qgt-artwork {
  width: 60px;
  height: 60px;
}
.qdnapro-grid-tile.qgt-size-s .qgt-artwork-icon {
  width: 30px;
  height: 30px;
}
.qdnapro-grid-tile.qgt-size-s .qgt-title {
  font-size: 12px;
}
.qdnapro-grid-tile.qgt-size-s .qgt-meta {
  font-size: 10px;
}

.qdnapro-grid-tile.qgt-size-m {
  width: 120px;
}
.qdnapro-grid-tile.qgt-size-m .qgt-artwork {
  width: 76px;
  height: 76px;
}
.qdnapro-grid-tile.qgt-size-m .qgt-artwork-icon {
  width: 38px;
  height: 38px;
}
.qdnapro-grid-tile.qgt-size-m .qgt-title {
  font-size: 13px;
}
.qdnapro-grid-tile.qgt-size-m .qgt-meta {
  font-size: 11px;
}

.qdnapro-grid-tile.qgt-size-l {
  width: 148px;
}
.qdnapro-grid-tile.qgt-size-l .qgt-artwork {
  width: 92px;
  height: 92px;
}
.qdnapro-grid-tile.qgt-size-l .qgt-artwork-icon {
  width: 46px;
  height: 46px;
}
.qdnapro-grid-tile.qgt-size-l .qgt-title {
  font-size: 14px;
}
.qdnapro-grid-tile.qgt-size-l .qgt-meta {
  font-size: 12px;
}

.qgt-artwork {
  position: relative;
  flex: 0 0 auto;
  border-radius: var(--r-3, 12px);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--qgt-artwork-bg, var(--c-purple-soft-12, rgba(64, 73, 154, 0.12)));
  color: var(--qgt-artwork-fg, var(--c-brand-purple, #40499a));
  overflow: hidden;
}

.qgt-artwork-activity {
  display: flex;
  align-items: center;
  justify-content: center;
}

.qgt-artwork-activity img,
.qgt-artwork-activity .activity-icon-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.qgt-tint-purple {
  --qgt-artwork-bg: var(--c-chip-purple-bg);
  --qgt-artwork-fg: var(--c-brand-purple, #40499a);
}

.qgt-tint-grey {
  --qgt-artwork-bg: var(--c-grey-50);
  --qgt-artwork-fg: var(--c-grey-600, #565b66);
}

.qgt-tint-red {
  --qgt-artwork-bg: var(--c-signal-red-bg);
  --qgt-artwork-fg: var(--c-signal-red-text, #c65a5a);
}

.qgt-tint-yellow {
  --qgt-artwork-bg: var(--c-chip-yellow-bg);
  --qgt-artwork-fg: var(--c-signal-yellow-text, #bf7202);
}

.qgt-tint-green {
  --qgt-artwork-bg: var(--c-chip-green-bg);
  --qgt-artwork-fg: var(--c-signal-green-text, #428b6e);
}

.qgt-tint-blue {
  --qgt-artwork-bg: var(--c-signal-blue-bg);
  --qgt-artwork-fg: var(--c-signal-blue-text, #6a8ab4);
}

.qgt-tint-bright-blue {
  --qgt-artwork-bg: var(--c-chip-bright-blue-2-bg);
  --qgt-artwork-fg: var(--c-purple-400);
}

.qgt-tint-pink {
  --qgt-artwork-bg: var(--c-signal-pink-bg);
  --qgt-artwork-fg: var(--c-signal-pink-text, #b25777);
}

[data-theme=dark] .qgt-tint-purple {
  --qgt-artwork-bg: #3a3555;
  --qgt-artwork-fg: var(--c-purple-200, #a5acff);
}

[data-theme=dark] .qgt-tint-grey {
  --qgt-artwork-bg: #40444d;
  --qgt-artwork-fg: var(--c-grey-300, #c4c7cc);
}

[data-theme=dark] .qgt-tint-red {
  --qgt-artwork-bg: #5a2b2b;
  --qgt-artwork-fg: var(--c-warn-red-400, #f87171);
}

[data-theme=dark] .qgt-tint-yellow {
  --qgt-artwork-bg: #5a4d1f;
  --qgt-artwork-fg: var(--c-warn-yellow-500, #fbbf24);
}

[data-theme=dark] .qgt-tint-green {
  --qgt-artwork-bg: #2a5544;
  --qgt-artwork-fg: #7fe0bc;
}

[data-theme=dark] .qgt-tint-blue {
  --qgt-artwork-bg: #2e3e54;
  --qgt-artwork-fg: #8fb4e0;
}

[data-theme=dark] .qgt-tint-bright-blue {
  --qgt-artwork-bg: #3a4a8a;
  --qgt-artwork-fg: #b9c8f5;
}

[data-theme=dark] .qgt-tint-pink {
  --qgt-artwork-bg: #4e2a36;
  --qgt-artwork-fg: #e4a0b8;
}

.qgt-slot-wrap {
  display: contents;
}

.qgt-badge {
  position: absolute;
  top: 0;
  right: -8px;
  transform: translateY(-30%);
  z-index: 2;
}
.qgt-badge:empty {
  display: none;
}

.qgt-pills {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}

.qgt-pill {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  height: 16px;
  padding: 0 5px;
  border-radius: 999px;
  line-height: 1;
  font-weight: 600;
  font-size: 10px;
  font-family: var(--ff, "Inter", system-ui, -apple-system, sans-serif);
  white-space: nowrap;
}

.qgt-pill-icon {
  width: 10px;
  height: 10px;
  flex-shrink: 0;
}

.qgt-pill-count {
  line-height: 1;
}

.qgt-pill-strong {
  background: var(--qgt-pill-strong-bg);
  color: var(--qgt-pill-strong-fg);
}
.qgt-pill-strong .qgt-pill-icon {
  color: var(--qgt-pill-strong-fg);
}

.qgt-pill-soft {
  background: var(--qgt-pill-soft-bg);
  color: var(--qgt-pill-soft-count-fg);
}
.qgt-pill-soft .qgt-pill-icon {
  color: var(--qgt-pill-soft-icon-fg);
}

[data-theme=dark] .qgt-pill-soft {
  --qgt-pill-soft-bg: #40444d;
  --qgt-pill-soft-count-fg: var(--c-grey-100, #e7e9ec);
}

.qgt-body {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  margin-top: 8px;
  text-align: center;
}

.qgt-title {
  font-weight: 500;
  line-height: 1.3;
  color: var(--qgt-title-color);
  width: 100%;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  word-break: break-word;
}

.qgt-meta {
  font-weight: 400;
  line-height: 1.3;
  color: var(--qgt-meta-color);
  width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qgt-meta-rich {
  display: flex;
  align-items: center;
  gap: 6px;
  overflow: visible;
  white-space: normal;
  margin-top: 2px;
}

.qgt-layout-tile .qgt-meta-rich {
  justify-content: center;
}

.qgt-artwork-img {
  width: 100%;
  height: 100%;
  display: block;
}
.qgt-artwork-img.qgt-fit-cover {
  object-fit: cover;
}
.qgt-artwork-img.qgt-fit-contain {
  object-fit: contain;
}
.qgt-artwork-img.qgt-pos-top {
  object-position: top left;
}
.qgt-artwork-img.qgt-pos-center {
  object-position: center;
}

.qgt-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  width: 100%;
  margin-top: 9px;
}
.qgt-stats:empty {
  display: none;
}

.qdnapro-grid-tile-stat {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.qgts-label {
  font-size: 10.5px;
  line-height: 1.3;
  color: var(--c-grey-400);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.qgts-value {
  font-size: 13px;
  line-height: 1.3;
  font-weight: 500;
  color: var(--c-chip-blue-text);
}

.qdnapro-grid-tile.qgt-layout-card {
  width: 100%;
  align-items: stretch;
  padding: 0;
  border: 1px solid var(--c-grey-100);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
  overflow: visible;
}
.qdnapro-grid-tile.qgt-layout-card .qgt-artwork {
  width: 100%;
  border-radius: var(--r-3, 12px) var(--r-3, 12px) 0 0;
}
.qdnapro-grid-tile.qgt-layout-card .qgt-artwork:empty {
  display: none;
}
.qdnapro-grid-tile.qgt-layout-card .qgt-body {
  align-items: flex-start;
  text-align: left;
  margin-top: 0;
  padding: 14px 15px;
  gap: 3px;
}
.qdnapro-grid-tile.qgt-layout-card .qgt-title {
  line-height: 1.35;
}
.qdnapro-grid-tile.qgt-layout-card .qgt-artwork qdnapro-avatar {
  flex-shrink: 0;
}

.qdnapro-grid-tile.qgt-layout-card.qgt-size-s .qgt-artwork {
  height: 96px;
}
.qdnapro-grid-tile.qgt-layout-card.qgt-size-s .qgt-artwork-icon {
  width: 34px;
  height: 34px;
}
.qdnapro-grid-tile.qgt-layout-card.qgt-size-s .qgt-artwork qdnapro-avatar {
  width: 48px;
  height: 48px;
}
.qdnapro-grid-tile.qgt-layout-card.qgt-size-s .qgt-title {
  font-size: 13px;
}
.qdnapro-grid-tile.qgt-layout-card.qgt-size-s .qgt-meta {
  font-size: 11.5px;
}

.qdnapro-grid-tile.qgt-layout-card.qgt-size-m .qgt-artwork {
  height: 136px;
}
.qdnapro-grid-tile.qgt-layout-card.qgt-size-m .qgt-artwork-icon {
  width: 44px;
  height: 44px;
}
.qdnapro-grid-tile.qgt-layout-card.qgt-size-m .qgt-artwork qdnapro-avatar {
  width: 64px;
  height: 64px;
}
.qdnapro-grid-tile.qgt-layout-card.qgt-size-m .qgt-title {
  font-size: 14px;
}
.qdnapro-grid-tile.qgt-layout-card.qgt-size-m .qgt-meta {
  font-size: 12.5px;
}

.qdnapro-grid-tile.qgt-layout-card.qgt-size-l .qgt-artwork {
  height: 168px;
}
.qdnapro-grid-tile.qgt-layout-card.qgt-size-l .qgt-artwork-icon {
  width: 54px;
  height: 54px;
}
.qdnapro-grid-tile.qgt-layout-card.qgt-size-l .qgt-artwork qdnapro-avatar {
  width: 78px;
  height: 78px;
}
.qdnapro-grid-tile.qgt-layout-card.qgt-size-l .qgt-title {
  font-size: 15px;
}
.qdnapro-grid-tile.qgt-layout-card.qgt-size-l .qgt-meta {
  font-size: 13px;
}

.qdnapro-hub-tile {
  --qht-bg: var(--c-bg-card, #ffffff);
  --qht-border: var(--c-grey-100, #e6e6f2);
  --qht-border-hover: var(--c-purple-100, #c9c4f5);
  --qht-title-color: var(--c-text-heading, #1a1f4d);
  --qht-sub-color: var(--c-text-muted, #6e7280);
  --qht-divider: var(--c-grey-50, #f0f0f8);
  --qht-focus-ring: var(--c-brand-purple, #40499a);
  --qht-focus-glow: var(--c-purple-soft-18, rgba(64, 73, 154, 0.18));
  --qht-art-size: 72px;
  --qht-visual-size: 64px;
  --qht-min-height: 170px;
  --qht-title-size: 14px;
  --qht-pad-y: 20px;
  --qht-pad-x: 16px;
  --qht-gap: 10px;
  --qht-stats-gap: 18px;
  --qht-stats-space: 10px;
  --qht-stat-value-size: 16px;
  --qht-stat-label-size: 11px;
  display: block;
  box-sizing: border-box;
  font-family: var(--ff, "Inter", system-ui, -apple-system, sans-serif);
  height: 100%;
}
.qdnapro-hub-tile[data-size=s] {
  --qht-art-size: 56px;
  --qht-visual-size: 50px;
  --qht-min-height: 132px;
  --qht-title-size: 13px;
  --qht-pad-y: 14px;
  --qht-pad-x: 12px;
  --qht-gap: 8px;
  --qht-stats-gap: 14px;
  --qht-stats-space: 8px;
  --qht-stat-value-size: 13px;
  --qht-stat-label-size: 11px;
}
.qdnapro-hub-tile[data-size=l] {
  --qht-art-size: 88px;
  --qht-visual-size: 80px;
  --qht-min-height: 196px;
  --qht-title-size: 15px;
}

.qht-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--qht-gap);
  width: 100%;
  height: 100%;
  min-height: var(--qht-min-height);
  box-sizing: border-box;
  padding: var(--qht-pad-y) var(--qht-pad-x);
  background: var(--qht-bg);
  border: 1px solid var(--qht-border);
  border-radius: var(--r-3, 14px);
  color: var(--qht-title-color);
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  font-family: inherit;
  -webkit-tap-highlight-color: transparent;
  transition: box-shadow 180ms ease, transform 180ms ease, border-color 180ms ease;
}
.qht-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(60, 50, 140, 0.14);
  border-color: var(--qht-border-hover);
  text-decoration: none;
  color: var(--qht-title-color);
}
.qht-card:focus {
  outline: none;
}
.qht-card:focus-visible {
  outline: none;
  border-color: var(--qht-focus-ring);
  box-shadow: 0 0 0 3px var(--qht-focus-glow);
}

.qht-card-with-stats {
  justify-content: flex-start;
}
.qht-card-with-stats .qht-stats {
  margin-top: auto;
}

.qht-art {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: var(--qht-art-size);
  height: var(--qht-art-size);
  border-radius: var(--r-2, 16px);
  background: var(--qht-art-bg);
  color: var(--qht-art-fg);
  overflow: hidden;
}
.qht-art > .qht-art-anim,
.qht-art > .qht-art-activity,
.qht-art > .qht-art-icon,
.qht-art > .qht-art-slotted,
.qht-art > * {
  width: var(--qht-visual-size);
  height: var(--qht-visual-size);
  display: block;
}
.qht-art > img,
.qht-art .qht-art-slotted img {
  object-fit: contain;
}

.qht-art .qht-art-anim {
  --ql-size: var(--qht-visual-size);
}

.qht-art-icon {
  font-size: var(--qht-visual-size);
  line-height: 1;
  color: var(--qht-art-fg);
}

.qht-title {
  font-size: var(--qht-title-size);
  font-weight: 600;
  line-height: 1.3;
  color: var(--qht-title-color);
}

.qht-sub {
  margin-top: -4px;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.35;
  color: var(--qht-sub-color);
}

.qht-stats {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 1fr;
  align-self: stretch;
  width: auto;
  margin-top: calc(var(--qht-stats-space) - 4px);
  margin-left: calc(var(--qht-pad-x) * -1);
  margin-right: calc(var(--qht-pad-x) * -1);
  padding: var(--qht-stats-space) var(--qht-pad-x) 0;
  border-top: 1px solid var(--qht-divider);
}

.qht-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  min-width: 0;
  text-align: center;
  line-height: 1.2;
  font-size: var(--qht-stat-label-size);
  color: var(--qht-sub-color);
}
.qht-stat b {
  font-size: var(--qht-stat-value-size);
  font-weight: 600;
  color: var(--qht-title-color);
}

.qdnapro-hub-tile[data-size=s] .qht-stat {
  flex-direction: row;
  align-items: baseline;
  justify-content: center;
  gap: 5px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.qdnapro-hub-tile[data-size=s] .qht-stat b {
  flex: 0 0 auto;
}
.qdnapro-hub-tile[data-size=s] .qht-stat span {
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-hub-tile.qht-disabled {
  opacity: 0.5;
}
.qdnapro-hub-tile.qht-disabled .qht-card {
  pointer-events: none;
  cursor: default;
}

.qht-tint-purple {
  --qht-art-bg: var(--c-chip-purple-bg);
  --qht-art-fg: var(--c-brand-purple, #40499a);
}

.qht-tint-grey {
  --qht-art-bg: var(--c-grey-50);
  --qht-art-fg: var(--c-grey-600, #565b66);
}

.qht-tint-red {
  --qht-art-bg: var(--c-signal-red-bg);
  --qht-art-fg: var(--c-signal-red-text, #c65a5a);
}

.qht-tint-yellow {
  --qht-art-bg: var(--c-chip-yellow-bg);
  --qht-art-fg: var(--c-signal-yellow-text, #bf7202);
}

.qht-tint-green {
  --qht-art-bg: var(--c-chip-green-bg);
  --qht-art-fg: var(--c-signal-green-text, #428b6e);
}

.qht-tint-blue {
  --qht-art-bg: var(--c-signal-blue-bg);
  --qht-art-fg: var(--c-signal-blue-text, #6a8ab4);
}

.qht-tint-bright-blue {
  --qht-art-bg: var(--c-chip-bright-blue-2-bg);
  --qht-art-fg: var(--c-purple-400);
}

.qht-tint-pink {
  --qht-art-bg: var(--c-signal-pink-bg);
  --qht-art-fg: var(--c-signal-pink-text, #b25777);
}

[data-theme=dark] .qht-tint-purple {
  --qht-art-bg: #3a3555;
  --qht-art-fg: var(--c-purple-200, #a5acff);
}

[data-theme=dark] .qht-tint-grey {
  --qht-art-bg: #40444d;
  --qht-art-fg: var(--c-grey-300, #c4c7cc);
}

[data-theme=dark] .qht-tint-red {
  --qht-art-bg: #5a2b2b;
  --qht-art-fg: var(--c-warn-red-400, #f87171);
}

[data-theme=dark] .qht-tint-yellow {
  --qht-art-bg: #5a4d1f;
  --qht-art-fg: var(--c-warn-yellow-500, #fbbf24);
}

[data-theme=dark] .qht-tint-green {
  --qht-art-bg: #2a5544;
  --qht-art-fg: #7fe0bc;
}

[data-theme=dark] .qht-tint-blue {
  --qht-art-bg: #2e3e54;
  --qht-art-fg: #8fb4e0;
}

[data-theme=dark] .qht-tint-bright-blue {
  --qht-art-bg: #3a4a8a;
  --qht-art-fg: #b9c8f5;
}

[data-theme=dark] .qht-tint-pink {
  --qht-art-bg: #4e2a36;
  --qht-art-fg: #e4a0b8;
}

[data-theme=dark] .qdnapro-hub-tile {
  --qht-bg: var(--c-bg-card, #2e3036);
  --qht-border: var(--c-grey-700, #40444d);
  --qht-border-hover: var(--c-purple-400, #7b83e8);
  --qht-title-color: var(--c-text-heading, #e1e3e6);
  --qht-sub-color: var(--c-text-muted, #898e99);
  --qht-divider: var(--c-grey-700, #40444d);
}

.qht-slot-wrap {
  display: contents;
}

@media (prefers-reduced-motion: reduce) {
  .qht-card {
    transition: box-shadow 180ms ease, border-color 180ms ease;
  }
  .qht-card:hover {
    transform: none;
  }
}
.qdna-icon-field {
  display: flex;
  align-items: center;
  gap: 24px;
}
.qdna-icon-field__preview-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  max-width: 120px;
}
.qdna-icon-field__preview {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: var(--c-grey-50, #f0f1f2);
}
.qdna-icon-field__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.qdna-icon-field__sub {
  color: var(--c-grey-500, #6b7280);
}
.qdna-icon-field__btn {
  align-self: flex-start;
}

.qdnapro-history-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 12px;
  border-radius: 8px;
  background: var(--c-bg-card);
  color: var(--c-grey-950);
  box-sizing: border-box;
  cursor: pointer;
  user-select: none;
  border: 0.5px solid transparent;
  transition: background-color 120ms ease;
}

.qdnapro-history-item:focus {
  outline: none;
}

.qdnapro-history-item:focus-visible, .qdnapro-history-item.force-focus {
  outline: 2px solid var(--c-purple-500);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.25);
}

.qdnapro-history-item .history-item-row {
  display: flex;
  align-items: center;
  width: 100%;
  min-width: 0;
}

.qdnapro-history-item .history-item-row-top {
  gap: 4px;
}

.qdnapro-history-item .history-item-row-bottom {
  gap: 8px;
}

.qdnapro-history-item .history-item-subject {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: "Inter", sans-serif;
  font-size: 14px;
  line-height: 24px;
  font-weight: 500;
}

.qdnapro-history-item .history-item-preview {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: "Inter", sans-serif;
  font-size: 12px;
  line-height: 20px;
  font-weight: 400;
}

.qdnapro-history-item .history-item-time {
  flex-shrink: 0;
  font-family: "Inter", sans-serif;
  font-size: 12px;
  line-height: 20px;
  font-weight: 400;
  white-space: nowrap;
}

.qdnapro-history-item .history-item-actions {
  display: flex;
  gap: 0;
  flex-shrink: 0;
}

.qdnapro-history-item .history-item-actions > .qdnapro-icon-btn {
  width: 0;
  min-width: 0;
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transition: max-width 200ms cubic-bezier(0.4, 0, 0.2, 1), width 200ms cubic-bezier(0.4, 0, 0.2, 1), min-width 200ms cubic-bezier(0.4, 0, 0.2, 1), margin-left 200ms cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms ease, background-color 120ms ease-out;
}

.qdnapro-history-item .history-item-actions > .history-item-more-btn {
  margin-left: 0;
}

.qdnapro-history-item:hover .history-item-actions > .qdnapro-icon-btn, .qdnapro-history-item:focus-within .history-item-actions > .qdnapro-icon-btn, .qdnapro-history-item.force-hover .history-item-actions > .qdnapro-icon-btn {
  width: 24px;
  min-width: 24px;
  max-width: 24px;
  opacity: 1;
  pointer-events: auto;
}

.qdnapro-history-item:hover .history-item-actions > .history-item-more-btn, .qdnapro-history-item:focus-within .history-item-actions > .history-item-more-btn, .qdnapro-history-item.force-hover .history-item-actions > .history-item-more-btn {
  margin-left: 4px;
}

.qdnapro-history-item .qdnapro-icon-btn.icon-btn-subtle:hover:not(.icon-btn-disabled) {
  background-color: var(--c-grey-300);
}

.qdnapro-history-item .qdnapro-icon-btn.icon-btn-subtle:active:not(.icon-btn-disabled) {
  background-color: var(--c-grey-400);
}

.qdnapro-history-item:not(.history-item-disabled):hover {
  background: var(--c-grey-50);
}

.qdnapro-history-item:not(.history-item-disabled):active {
  background: var(--c-border-card);
}

.qdnapro-history-item.force-hover:not(.history-item-disabled) {
  background: var(--c-grey-50);
}

.qdnapro-history-item.force-pressed:not(.history-item-disabled) {
  background: var(--c-border-card);
}

.qdnapro-history-item.history-item-pinned .history-item-actions > .history-item-pin-btn {
  width: 24px;
  min-width: 24px;
  max-width: 24px;
  opacity: 1;
  pointer-events: auto;
}

.qdnapro-history-item.history-item-disabled, .qdnapro-history-item.history-item-disabled:hover, .qdnapro-history-item.history-item-disabled:active {
  color: var(--c-text-disabled);
  background: transparent;
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-history-item.history-item-disabled:focus-visible, .qdnapro-history-item.history-item-disabled.force-focus {
  outline: none;
  box-shadow: none;
}

[data-theme=dark] .qdnapro-history-item {
  background: #1f2024;
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-history-item:not(.history-item-disabled):hover, [data-theme=dark] .qdnapro-history-item.force-hover:not(.history-item-disabled) {
  background: #2a2c33;
}

[data-theme=dark] .qdnapro-history-item:not(.history-item-disabled):active, [data-theme=dark] .qdnapro-history-item.force-pressed:not(.history-item-disabled) {
  background: #353841;
}

[data-theme=dark] .qdnapro-history-item .qdnapro-icon-btn.icon-btn-subtle:hover:not(.icon-btn-disabled) {
  background-color: #565b66;
}

[data-theme=dark] .qdnapro-history-item .qdnapro-icon-btn.icon-btn-subtle:active:not(.icon-btn-disabled) {
  background-color: #6b7280;
}

[data-theme=dark] .qdnapro-history-item.history-item-disabled, [data-theme=dark] .qdnapro-history-item.history-item-disabled:hover, [data-theme=dark] .qdnapro-history-item.history-item-disabled:active {
  color: #6b7280;
  background: transparent;
}

.qdnapro-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  line-height: 1;
  width: 1em;
  height: 1em;
}

.qdnapro-icon > svg {
  width: 100%;
  height: 100%;
  display: block;
  fill: currentColor;
}

.qdnapro-icon.icon-16 {
  width: 16px;
  height: 16px;
}

.qdnapro-icon.icon-20 {
  width: 20px;
  height: 20px;
}

.qdnapro-icon.icon-24 {
  width: 24px;
  height: 24px;
}

/* qdnapro-icon-btn compiled CSS -- generated from _icon-btn.scss 2026-05-13-danger */
.qdnapro-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 24px;
  height: 24px;
  min-width: 24px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 4px;
  background: transparent;
  --ib-focus-ring: var(--c-purple-500);
  --ib-focus-glow: rgba(70, 82, 243, 0.25);
  cursor: pointer;
  user-select: none;
  transition: background-color 120ms ease-out, color 120ms ease-out;
}

.qdnapro-icon-btn qdnapro-icon {
  display: inline-flex;
  width: 16px;
  height: 16px;
}

.qdnapro-icon-btn.icon-btn-size-big {
  width: 28px;
  height: 28px;
  min-width: 28px;
}

.qdnapro-icon-btn.icon-btn-size-big qdnapro-icon {
  width: 20px;
  height: 20px;
}

.qdnapro-icon-btn:focus {
  outline: none;
}

.qdnapro-icon-btn:focus-visible, .qdnapro-icon-btn.force-focus {
  outline: 2px solid var(--ib-focus-ring);
  outline-offset: var(--ib-focus-offset, -2px);
  box-shadow: 0 0 0 4px var(--ib-focus-glow);
}

.qdnapro-icon-btn.icon-btn-disabled:focus-visible, .qdnapro-icon-btn.icon-btn-disabled.force-focus {
  outline: none;
  box-shadow: none;
}

.qdnapro-icon-btn:active:not(.icon-btn-disabled) {
  background-image: linear-gradient(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.15));
}

/* TYPE: primary-purple */
.qdnapro-icon-btn.icon-btn-primary-purple {
  background-color: var(--c-purple-500);
  color: var(--c-text-on-action);
  --ib-focus-ring: var(--c-purple-700);
  --ib-focus-glow: rgba(70, 82, 243, 0.40);
}

.qdnapro-icon-btn.icon-btn-primary-purple:focus-visible, .qdnapro-icon-btn.icon-btn-primary-purple.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--ib-focus-ring), 0 0 0 6px var(--ib-focus-glow);
}

.qdnapro-icon-btn.icon-btn-primary-purple:hover:not(.icon-btn-disabled) {
  background-color: var(--c-purple-600);
}

/* TYPE: secondary */
.qdnapro-icon-btn.icon-btn-secondary {
  background-color: var(--c-grey-50);
  color: var(--c-grey-950);
}

.qdnapro-icon-btn.icon-btn-secondary:hover:not(.icon-btn-disabled) {
  background-color: var(--c-grey-300);
}

/* TYPE: dropdown-search */
.qdnapro-icon-btn.icon-btn-dropdown-search {
  background-color: var(--c-border-tree);
  color: var(--c-purple-500);
}

.qdnapro-icon-btn.icon-btn-dropdown-search:hover:not(.icon-btn-disabled) {
  background-color: var(--c-sidebar-icon);
}

/* TYPE: dropdown-input */
.qdnapro-icon-btn.icon-btn-dropdown-input {
  background-color: transparent;
  color: var(--c-grey-950);
}

.qdnapro-icon-btn.icon-btn-dropdown-input:hover:not(.icon-btn-disabled) {
  background-color: var(--c-grey-50);
}

/* TYPE: bulk-select */
.qdnapro-icon-btn.icon-btn-bulk-select {
  background-color: #e6e9ff;
  color: var(--c-purple-500);
}

.qdnapro-icon-btn.icon-btn-bulk-select:hover:not(.icon-btn-disabled) {
  background-color: var(--c-border-tree-bright);
}

/* TYPE: input-icon */
.qdnapro-icon-btn.icon-btn-input-icon {
  background-color: transparent;
  color: var(--c-grey-400);
}

.qdnapro-icon-btn.icon-btn-input-icon:hover:not(.icon-btn-disabled) {
  background-color: var(--c-grey-50);
  color: var(--c-grey-950);
}

.qdnapro-icon-btn.icon-btn-input-icon:active:not(.icon-btn-disabled) {
  color: var(--c-grey-950);
}

/* TYPE: subtle */
.qdnapro-icon-btn.icon-btn-subtle {
  background-color: transparent;
  color: var(--c-grey-950);
}

.qdnapro-icon-btn.icon-btn-subtle:hover:not(.icon-btn-disabled) {
  background-color: var(--c-grey-50);
}

.qdnapro-icon-btn.icon-btn-subtle:active:not(.icon-btn-disabled) {
  background-color: var(--c-border-card);
}

/* TYPE: subtle-purple -- mirrors the button component's subtle-purple-bg specs
   (transparent bg, purple icon, light-purple hover/active). [Kim 2026-06-17] */
.qdnapro-icon-btn.icon-btn-subtle-purple {
  background-color: transparent;
  color: var(--c-purple-500);
}

.qdnapro-icon-btn.icon-btn-subtle-purple:hover:not(.icon-btn-disabled) {
  background-color: var(--c-border-tree-bright);
}

.qdnapro-icon-btn.icon-btn-subtle-purple:active:not(.icon-btn-disabled) {
  background-color: var(--c-sidebar-icon);
}

/* TYPE: subtle-error */
.qdnapro-icon-btn.icon-btn-subtle-error {
  background-color: transparent;
  color: var(--c-signal-red-text);
}

.qdnapro-icon-btn.icon-btn-subtle-error:hover:not(.icon-btn-disabled) {
  background-color: rgba(198, 90, 90, 0.1);
}

.qdnapro-icon-btn.icon-btn-subtle-error:active:not(.icon-btn-disabled) {
  background-color: rgba(198, 90, 90, 0.18);
}

/* === type: outline-purple -- purple border + purple icon [2026-08-05] ===
   The purple counterpart of `danger` below: same shape, brand colour. Built for
   the plus buttons on the rule editor's rail, where a filled circle was too heavy
   and `subtle-purple` (no border at all) too quiet. */
.qdnapro-icon-btn.icon-btn-outline-purple {
  background-color: transparent;
  border-color: var(--c-sidebar-icon);
  color: var(--c-purple-500);
  --ib-focus-ring: var(--c-purple-500);
  --ib-focus-glow: rgba(70, 82, 243, 0.20);
}

.qdnapro-icon-btn.icon-btn-outline-purple:hover:not(.icon-btn-disabled) {
  background-color: var(--c-bg-subtle-purple);
  border-color: var(--c-purple-200);
  color: var(--c-purple-600);
}

.qdnapro-icon-btn.icon-btn-outline-purple:active:not(.icon-btn-disabled) {
  background-color: var(--c-border-tree-bright);
  border-color: var(--c-purple-500);
  color: var(--c-purple-700);
}

.qdnapro-icon-btn.icon-btn-outline-purple.icon-btn-disabled {
  background-color: transparent !important;
  border-color: var(--c-grey-100) !important;
  color: var(--c-grey-400) !important;
}

/* TYPE: danger -- red border + red icon + light red hover bg */
.qdnapro-icon-btn.icon-btn-danger {
  background-color: transparent;
  border-color: var(--c-chip-red-hover);
  color: var(--c-warn-red-500);
  --ib-focus-ring: var(--c-warn-red-500);
  --ib-focus-glow: rgba(239, 68, 68, 0.20);
}

.qdnapro-icon-btn.icon-btn-danger:hover:not(.icon-btn-disabled) {
  background-color: var(--c-signal-red-soft);
  border-color: var(--c-warn-red-400);
  color: var(--c-warn-red-500);
}

.qdnapro-icon-btn.icon-btn-danger:active:not(.icon-btn-disabled) {
  background-color: var(--c-signal-red-bg);
  border-color: var(--c-warn-red-500);
  color: var(--c-tag-critical-text);
}

/* TYPE: purple-active */
.qdnapro-icon-btn.icon-btn-purple-active {
  background-color: var(--c-border-tree-bright);
  color: var(--c-purple-500);
}

.qdnapro-icon-btn.icon-btn-purple-active:hover:not(.icon-btn-disabled) {
  background-color: var(--c-sidebar-icon);
}

.qdnapro-icon-btn.icon-btn-purple-active:active:not(.icon-btn-disabled) {
  background-color: var(--c-sidebar-icon);
}

/* STATE: disabled */
.qdnapro-icon-btn.icon-btn-disabled {
  background-color: var(--c-grey-50) !important;
  background-image: none !important;
  color: var(--c-text-disabled) !important;
  border-color: transparent !important;
  cursor: not-allowed;
  pointer-events: none;
}

[data-bg-context=purple] .qdnapro-icon-btn.icon-btn-disabled {
  background-color: var(--c-border-tree-bright) !important;
}

/* Dark mode */
[data-theme=dark] .qdnapro-icon-btn.icon-btn-primary-purple {
  background-color: #3842c2;
  color: #ffffff;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-primary-purple:hover:not(.icon-btn-disabled) {
  background-color: #2a3192;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-secondary {
  background-color: #2e3036;
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-secondary:hover:not(.icon-btn-disabled) {
  background-color: #40444d;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-dropdown-search {
  background-color: #40444d;
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-dropdown-search:hover:not(.icon-btn-disabled) {
  background-color: #565b66;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-dropdown-search.icon-btn-disabled {
  background-color: #2e3036 !important;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-dropdown-input {
  background-color: transparent;
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-dropdown-input:hover:not(.icon-btn-disabled) {
  background-color: #565b66;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-bulk-select {
  background-color: #0b0b0d;
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-bulk-select:hover:not(.icon-btn-disabled) {
  background-color: #40444d;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-input-icon {
  background-color: transparent;
  color: #898e99;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-input-icon:hover:not(.icon-btn-disabled) {
  background-color: #565b66;
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-input-icon:active:not(.icon-btn-disabled) {
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-subtle {
  background-color: transparent;
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-subtle:hover:not(.icon-btn-disabled) {
  background-color: #565b66;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-subtle:active:not(.icon-btn-disabled) {
  background-color: #6b7280;
}

/* subtle-purple dark: --c-purple-500 (#40499a) and --c-sidebar-icon (light grey
   in dark) have no usable dark values, so mirror purple-active's dark palette
   one step lighter: hover = purple-active's resting bg, active = its hover bg.
   Icon #a5acff matches the dark focus ring and purple-active's dark icon. [21.08.2026] */
[data-theme=dark] .qdnapro-icon-btn.icon-btn-subtle-purple {
  background-color: transparent;
  color: #a5acff;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-subtle-purple:hover:not(.icon-btn-disabled) {
  background-color: rgba(70, 82, 243, 0.2);
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-subtle-purple:active:not(.icon-btn-disabled) {
  background-color: rgba(70, 82, 243, 0.3);
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-subtle-error {
  background-color: transparent;
  color: #fbaaaa;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-subtle-error:hover:not(.icon-btn-disabled) {
  background-color: rgba(251, 170, 170, 0.12);
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-subtle-error:active:not(.icon-btn-disabled) {
  background-color: rgba(251, 170, 170, 0.2);
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-danger {
  background-color: transparent;
  border-color: rgba(252, 165, 165, 0.45);
  color: #fca5a5;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-danger:hover:not(.icon-btn-disabled) {
  background-color: rgba(239, 68, 68, 0.15);
  border-color: #fca5a5;
  color: #ffffff;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-danger:active:not(.icon-btn-disabled) {
  background-color: rgba(239, 68, 68, 0.25);
  border-color: #f87171;
  color: #ffffff;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-purple-active {
  background-color: rgba(70, 82, 243, 0.2);
  color: #a5acff;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-purple-active:hover:not(.icon-btn-disabled) {
  background-color: rgba(70, 82, 243, 0.3);
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-purple-active:active:not(.icon-btn-disabled) {
  background-color: rgba(70, 82, 243, 0.42);
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-disabled {
  background-color: #40444d !important;
  color: #6b7280 !important;
}

[data-theme=dark] .qdnapro-icon-btn:focus-visible, [data-theme=dark] .qdnapro-icon-btn.force-focus {
  outline-color: #a5acff;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.4);
}

/* === size: touch — 44×44 minimum tap target [2026-06-30] === */
.qdnapro-icon-btn.icon-btn-size-touch {
  width: 44px;
  height: 44px;
  min-width: 44px;
}

/* === variant: round — full circle [2026-06-30] === */
.qdnapro-icon-btn.icon-btn-round {
  border-radius: 50%;
}

/* === type: on-dark-purple — icon on var(--c-purple-700) surface [2026-06-30] === */
.qdnapro-icon-btn.icon-btn-on-dark-purple {
  background-color: transparent;
  color: var(--c-purple-50);
}

.qdnapro-icon-btn.icon-btn-on-dark-purple:hover:not(.icon-btn-disabled) {
  background-color: var(--c-purple-500);
  color: var(--c-purple-50);
}

.qdnapro-icon-btn.icon-btn-on-dark-purple.icon-btn-disabled {
  background-color: transparent !important;
  color: var(--c-purple-300) !important;
}

/* === type: filled-dark-purple — own var(--c-purple-700) surface [2026-06-30] === */
.qdnapro-icon-btn.icon-btn-filled-dark-purple {
  background-color: var(--c-purple-700);
  color: var(--c-purple-50);
}

.qdnapro-icon-btn.icon-btn-filled-dark-purple:hover:not(.icon-btn-disabled) {
  background-color: var(--c-purple-600);
  color: var(--c-purple-50);
}

.qdnapro-icon-btn.icon-btn-filled-dark-purple.icon-btn-disabled {
  background-color: transparent !important;
  color: var(--c-purple-300) !important;
}

/* === type: filled-error — solid error-red surface, white icon [2026-08-04] ===
   The filled counterpart to subtle-error (transparent) and danger (bordered).
   Uses the same red as subtle-error (var(--c-signal-red-text)), not the danger palette's var(--c-warn-red-500):
   as a full fill that brighter red shouts, and the QDNA red is var(--c-signal-red-text).
   Made for the remove-circle on the rule editor's IF/THEN rail, which used to be
   a hand-rolled filled circle. Combine with `round`. */
.qdnapro-icon-btn.icon-btn-filled-error {
  background-color: var(--c-signal-red-text);
  color: var(--c-text-on-action);
  --ib-focus-ring: var(--c-chip-red-text);
  --ib-focus-glow: rgba(198, 90, 90, 0.40);
}

.qdnapro-icon-btn.icon-btn-filled-error:hover:not(.icon-btn-disabled) {
  background-color: var(--c-signal-red-text);
  color: var(--c-text-on-action);
}

.qdnapro-icon-btn.icon-btn-filled-error:active:not(.icon-btn-disabled) {
  background-color: var(--c-chip-red-text);
}

.qdnapro-icon-btn.icon-btn-filled-error.icon-btn-disabled {
  background-color: var(--c-chip-pink-hover) !important;
  color: var(--c-text-on-action) !important;
}

/* === type: filled-action — solid action-blue surface, white icon [16.08.2026] ===
   The send button at the end of a compose bar. primary-purple (--c-purple-500,
   #40499a) was the closest existing type and it is visibly darker and heavier:
   next to a text field it reads as chrome, while this one reads as "press me".
   Uses the ACTION scale, the same colour the primary buttons use.
   Built for the Pulse reactie-sheet. Combine with `round`. */
.qdnapro-icon-btn.icon-btn-filled-action {
  background-color: var(--c-action-500);
  color: var(--c-text-on-action);
  --ib-focus-ring: var(--c-action-700);
  --ib-focus-glow: var(--c-action-40);
}

.qdnapro-icon-btn.icon-btn-filled-action:focus-visible,
.qdnapro-icon-btn.icon-btn-filled-action.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--ib-focus-ring), 0 0 0 6px var(--ib-focus-glow);
}

.qdnapro-icon-btn.icon-btn-filled-action:hover:not(.icon-btn-disabled) {
  background-color: var(--c-action-600);
}

.qdnapro-icon-btn.icon-btn-filled-action:active:not(.icon-btn-disabled) {
  background-color: var(--c-action-700);
}

.qdnapro-icon-btn.icon-btn-filled-action.icon-btn-disabled {
  background-color: var(--c-action-30) !important;
  color: var(--c-text-on-action) !important;
}

/* ============================================================
 *  qdnapro-illustration — compiled from _illustration.scss
 * ============================================================ */
.qdnapro-illustration {
  display: inline-block;
  box-sizing: border-box;
  flex-shrink: 0;
  line-height: 0;
  vertical-align: middle;
  user-select: none;
  transition: opacity 140ms ease-out;
  height: auto;
}

.qdnapro-illustration .illustration-img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  object-fit: contain;
  pointer-events: none;
  background: transparent;
}

.qdnapro-illustration.illustration-disabled {
  opacity: 0.5;
}

.qdnapro-illustration.illustration-emphasis-soft {
  opacity: 0.6;
}

.qdnapro-illustration.illustration-emphasis-faint {
  opacity: 0.35;
}

.qdnapro-illustration.illustration-missing {
  position: relative;
  background: rgba(0, 0, 0, 0.03);
  border: 1px dashed #c4c7cc;
  border-radius: 12px;
  aspect-ratio: 4/3;
  height: auto;
}

.qdnapro-illustration.illustration-missing::after {
  content: "?";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Inter", sans-serif;
  font-size: 24px;
  color: #898e99;
}

[data-theme=dark] .qdnapro-illustration.illustration-missing {
  background: rgba(255, 255, 255, 0.04);
  border-color: #565b66;
}

[data-theme=dark] .qdnapro-illustration.illustration-missing::after {
  color: #6b7280;
}

.qdnapro-info-card {
  --info-card-title: var(--c-text-heading, #1a1d3a);
  --info-card-meta: var(--c-text-muted, #6a6e9a);
  --info-card-frame: var(--c-border, #e7e9ec);
  --info-card-fill: transparent;
  --info-card-icon-bg: var(--c-grey-50);
  display: flex;
  align-items: flex-start;
  gap: 14px;
  box-sizing: border-box;
  padding: 16px;
  border: 1px solid var(--info-card-frame);
  border-radius: 18px;
  background: var(--info-card-fill);
  font-family: var(--theme-font-family, "Inter", sans-serif);
  text-align: left;
}

.qdnapro-info-card--on-purple {
  --info-card-title: #ffffff;
  --info-card-meta: rgba(255, 255, 255, 0.82);
  --info-card-frame: rgba(255, 255, 255, 0.20);
  --info-card-fill: rgba(255, 255, 255, 0.09);
}

.qdnapro-info-card--grey {
  --info-card-icon-bg: var(--c-grey-50);
}

.qdnapro-info-card--red {
  --info-card-icon-bg: var(--c-signal-red-bg);
}

.qdnapro-info-card--yellow {
  --info-card-icon-bg: var(--c-chip-yellow-bg);
}

.qdnapro-info-card--green {
  --info-card-icon-bg: var(--c-chip-green-bg);
}

.qdnapro-info-card--blue {
  --info-card-icon-bg: var(--c-signal-blue-bg);
}

.qdnapro-info-card--bright-blue {
  --info-card-icon-bg: var(--c-chip-bright-blue-2-bg);
}

.qdnapro-info-card--pink {
  --info-card-icon-bg: var(--c-signal-pink-bg);
}

.qdnapro-info-card--purple {
  --info-card-icon-bg: var(--c-chip-purple-bg);
}

.qdnapro-info-card__icon {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px;
  border-radius: 12px;
  background: var(--info-card-icon-bg);
  line-height: 0;
}

.qdnapro-info-card__icon-img {
  display: block;
  width: 40px;
  height: 40px;
  object-fit: contain;
}

.qdnapro-info-card__body {
  flex: 1 1 auto;
  min-width: 0;
}

.qdnapro-info-card__title {
  color: var(--info-card-title);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.qdnapro-info-card__row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 7px;
  color: var(--info-card-meta);
  font-size: 13px;
  line-height: 1.4;
}

.qdnapro-info-card__row .qdnapro-icon,
.qdnapro-info-card__row qdnapro-icon {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  color: inherit;
}

.qdnapro-info-card__row-text {
  min-width: 0;
  overflow-wrap: anywhere;
}

.qdnapro-ic {
  --ic-purple: var(--c-brand-purple, #40499a);
  --ic-purple-soft: var(--c-bg-secondary-purple, #e6e9ff);
  --ic-text: var(--c-text-body, #0b0b0d);
  --ic-muted: var(--c-text-muted, #6e7280);
  --ic-heading: var(--c-text-heading, #1a1f4d);
  --ic-border: var(--c-border-card, #e1e3e6);
  --ic-card: var(--c-bg-card, #ffffff);
  --ic-stage-bg: var(--c-grey-900);
  --ic-dim: rgba(16, 20, 45, 0.62);
  --ic-warn-bg: var(--c-tag-warning-bg, #fff2d6);
  --ic-warn-text: var(--c-tag-warning-text, #a06400);
  --ic-radius: var(--r-card, 14px);
  --ic-radius-sm: var(--r-btn, 8px);
  --ic-ff: var(--ff, "Inter", system-ui, -apple-system, "Segoe UI", sans-serif);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  font-family: var(--ic-ff);
  color: var(--ic-text);
}
.qdnapro-ic *, .qdnapro-ic *::before, .qdnapro-ic *::after {
  box-sizing: border-box;
}
.qdnapro-ic .qdnapro-ic-main {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  gap: var(--s-5, 20px);
  align-items: stretch;
}
.qdnapro-ic .qdnapro-ic-stagewrap {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--s-3, 12px);
}
.qdnapro-ic .qdnapro-ic-stage {
  flex: 1 1 auto;
  min-height: 280px;
  position: relative;
  border-radius: var(--ic-radius);
  overflow: hidden;
  background: var(--ic-stage-bg);
}
.qdnapro-ic .qdnapro-ic-img {
  display: block;
  max-width: 100%;
}
.qdnapro-ic .qdnapro-ic-toolbar {
  flex: 0 0 auto;
  display: flex;
  gap: var(--s-2, 8px);
  align-items: center;
}
.qdnapro-ic .qdnapro-ic-side {
  flex: 0 0 230px;
  max-width: 230px;
  display: flex;
  flex-direction: column;
  gap: var(--s-3, 12px);
  padding-left: var(--s-5, 20px);
  border-left: 1px solid var(--ic-border);
  overflow-y: auto;
}
.qdnapro-ic .qdnapro-ic-side-heading {
  font-size: 13px;
  font-weight: var(--fw-semi, 600);
  color: var(--ic-heading);
  letter-spacing: 0.01em;
}
.qdnapro-ic .qdnapro-ic-previews {
  display: flex;
  flex-direction: column;
  gap: var(--s-5, 20px);
}
.qdnapro-ic .qdnapro-ic-preview-target {
  overflow: hidden;
  background: var(--ic-purple-soft);
}
.qdnapro-ic .qdnapro-ic-surface {
  display: flex;
  align-items: center;
  gap: var(--s-3, 12px);
}
.qdnapro-ic .qdnapro-ic-surface-target {
  flex: 0 0 auto;
  box-shadow: 0 0 0 1px var(--ic-border);
}
.qdnapro-ic .qdnapro-ic-surface-label {
  font-size: 12px;
  color: var(--ic-muted);
}
.qdnapro-ic .qdnapro-ic-device {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--s-2, 8px);
}
.qdnapro-ic .qdnapro-ic-device-label {
  font-size: 11px;
  color: var(--ic-muted);
}
.qdnapro-ic .qdnapro-ic-device-frame {
  background: var(--c-border-tree);
  border-radius: 10px;
  padding: 8px;
  width: 100%;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.06);
}
.qdnapro-ic .qdnapro-ic-device-target {
  width: 100%;
  aspect-ratio: 16/9;
  border-radius: 4px;
}
.qdnapro-ic .qdnapro-ic-device-phone .qdnapro-ic-device-frame {
  width: 96px;
  border-radius: 16px;
  padding: 10px 6px;
  position: relative;
}
.qdnapro-ic .qdnapro-ic-device-phone .qdnapro-ic-device-frame::before {
  content: "";
  position: absolute;
  top: 5px;
  left: 50%;
  transform: translateX(-50%);
  width: 26px;
  height: 3px;
  border-radius: 2px;
  background: rgba(0, 0, 0, 0.18);
}
.qdnapro-ic .qdnapro-ic-device-phone .qdnapro-ic-device-target {
  border-radius: 6px;
}
.qdnapro-ic .qdnapro-ic-device-tablet .qdnapro-ic-device-frame {
  width: 150px;
  border-radius: 12px;
}
.qdnapro-ic .qdnapro-ic-device-desktop .qdnapro-ic-device-frame {
  width: 100%;
  padding: 0;
  overflow: hidden;
}
.qdnapro-ic .qdnapro-ic-device-desktop .qdnapro-ic-device-frame::before {
  content: "";
  display: block;
  height: 16px;
  background: radial-gradient(circle 2px at 9px 8px, var(--c-grey-300) 50%, transparent 51%), radial-gradient(circle 2px at 18px 8px, var(--c-grey-300) 50%, transparent 51%), radial-gradient(circle 2px at 27px 8px, var(--c-grey-300) 50%, transparent 51%), var(--c-border-soft-2);
}
.qdnapro-ic .qdnapro-ic-device-desktop .qdnapro-ic-device-target {
  border-radius: 0;
}
.qdnapro-ic .qdnapro-ic-footer {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: var(--s-4, 16px);
  margin-top: var(--s-4, 16px);
  padding-top: var(--s-4, 16px);
  border-top: 1px solid var(--ic-border);
}
.qdnapro-ic .qdnapro-ic-warning {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 12px;
  line-height: 1.35;
  color: var(--ic-warn-text);
  background: var(--ic-warn-bg);
  border-radius: var(--ic-radius-sm);
  padding: 8px 12px;
}
.qdnapro-ic .qdnapro-ic-warning[hidden] {
  display: none;
}
.qdnapro-ic .qdnapro-ic-actions {
  flex: 0 0 auto;
  margin-left: auto;
  display: flex;
  gap: var(--s-2, 8px);
}
.qdnapro-ic.is-shape-circle .cropper-view-box,
.qdnapro-ic.is-shape-circle .cropper-face {
  border-radius: 50%;
}
.qdnapro-ic.is-shape-circle .qdnapro-ic-preview-target {
  border-radius: 50%;
}
.qdnapro-ic.is-shape-rounded .cropper-view-box,
.qdnapro-ic.is-shape-rounded .cropper-face {
  border-radius: 12px;
}
.qdnapro-ic.is-shape-rounded .qdnapro-ic-surface-target {
  border-radius: 8px;
}
.qdnapro-ic .cropper-view-box {
  outline: 1px solid var(--ic-purple);
}
.qdnapro-ic .cropper-line,
.qdnapro-ic .cropper-point {
  background-color: var(--ic-purple);
}
.qdnapro-ic .cropper-point.point-se::before {
  background-color: var(--ic-purple);
}
.qdnapro-ic .cropper-modal {
  background-color: var(--ic-dim);
  opacity: 1;
}
.qdnapro-ic .cropper-bg {
  background-image: none;
}

@media (max-width: 720px) {
  .qdnapro-ic .qdnapro-ic-main {
    flex-direction: column;
  }
  .qdnapro-ic .qdnapro-ic-side {
    flex: 0 0 auto;
    max-width: none;
    padding-left: 0;
    border-left: 0;
    border-top: 1px solid var(--ic-border);
    padding-top: var(--s-4, 16px);
  }
  .qdnapro-ic .qdnapro-ic-previews {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
  }
}
.qdnapro-image-crop-trigger {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2, 8px);
  cursor: pointer;
  font-family: var(--ff, "Inter", sans-serif);
  color: var(--c-brand-purple, #40499a);
  font-size: 13px;
  font-weight: var(--fw-medium, 500);
}
.qdnapro-image-crop-trigger .qdnapro-image-crop-thumb {
  width: 40px;
  height: 40px;
  border-radius: 8px;
  background: var(--c-bg-secondary-purple, #e6e9ff);
  background-size: cover;
  background-position: center;
  box-shadow: inset 0 0 0 1px var(--c-border-card, #e1e3e6);
}

[data-theme-dark] .qdnapro-ic,
[data-theme=dark] .qdnapro-ic,
body[data-theme=dark] .qdnapro-ic {
  --ic-card: var(--c-grey-800, #2e3036);
  --ic-border: var(--c-white-10, rgba(255, 255, 255, 0.10));
  --ic-stage-bg: #0c0e16;
  --ic-purple-soft: var(--c-grey-700, #40444d);
}
[data-theme-dark] .qdnapro-ic .qdnapro-ic-device-frame,
[data-theme=dark] .qdnapro-ic .qdnapro-ic-device-frame,
body[data-theme=dark] .qdnapro-ic .qdnapro-ic-device-frame {
  background: #3a3f4d;
}
[data-theme-dark] .qdnapro-ic .qdnapro-ic-device-desktop .qdnapro-ic-device-frame::before,
[data-theme=dark] .qdnapro-ic .qdnapro-ic-device-desktop .qdnapro-ic-device-frame::before,
body[data-theme=dark] .qdnapro-ic .qdnapro-ic-device-desktop .qdnapro-ic-device-frame::before {
  background: #2b2f3a;
}

.text-h1 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 60px;
  line-height: 72px;
}

.text-h2 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 40px;
  line-height: 56px;
}

.text-h3 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 32px;
  line-height: 48px;
}

.text-h4 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 28px;
  line-height: 44px;
}

.text-h5 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 24px;
  line-height: 36px;
}

.text-h6 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 20px;
  line-height: 24px;
}

.text-body-xs {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 10px;
  line-height: 20px;
}

.text-body-sm {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 12px;
  line-height: 20px;
}

.text-body-md {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 14px;
  line-height: 24px;
}

.text-body-lg {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
}

.text-body-xl {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 20px;
  line-height: 32px;
}

.qdnapro-inbox-message {
  --msg-bg: #ffffff;
  --msg-bg-hover: var(--c-grey-50);
  --msg-text: var(--c-grey-950);
  --msg-text-muted: var(--c-grey-500);
  --msg-accent: var(--c-action-500);
  box-sizing: border-box;
}
.qdnapro-inbox-message *, .qdnapro-inbox-message *::before, .qdnapro-inbox-message *::after {
  box-sizing: border-box;
}
.qdnapro-inbox-message {
  display: flex;
  align-items: stretch;
  gap: 8px;
  padding: 4px 8px 4px 4px;
  border-radius: 8px;
  background: var(--msg-bg);
  color: var(--msg-text);
  cursor: pointer;
  text-decoration: none;
  user-select: none;
  transition: background-color 120ms ease-out;
}
.qdnapro-inbox-message:hover:not(.inbox-message-swiping) {
  background: var(--msg-bg-hover);
}
.qdnapro-inbox-message.inbox-message-selected {
  --msg-bg: #e6e9ff;
  --msg-bg-hover: var(--c-border-tree-bright);
}
.qdnapro-inbox-message.inbox-message-active {
  --msg-bg: #e6e9ff;
  --msg-bg-hover: var(--c-border-tree-bright);
  box-shadow: inset 3px 0 0 0 var(--msg-accent);
}
.qdnapro-inbox-message:focus {
  outline: none;
}
.qdnapro-inbox-message:focus-visible, .qdnapro-inbox-message.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--c-purple-500), 0 0 0 6px rgba(70, 82, 243, 0.25);
}
.qdnapro-inbox-message.inbox-message-active:focus-visible, .qdnapro-inbox-message.inbox-message-active.force-focus {
  box-shadow: inset 3px 0 0 0 var(--msg-accent), 0 0 0 2px var(--c-purple-500), 0 0 0 6px rgba(70, 82, 243, 0.25);
}
.qdnapro-inbox-message .inbox-message-lead {
  flex-shrink: 0;
  display: flex;
  align-items: flex-start;
  gap: 4px;
  padding-top: 4px;
  width: 46px;
  justify-content: flex-end;
}
.qdnapro-inbox-message .inbox-message-unread-dot {
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  margin-top: 13px;
  border-radius: 50%;
  background: var(--msg-accent);
}
.qdnapro-inbox-message .inbox-message-avatar-wrap {
  position: relative;
  display: inline-flex;
  flex-shrink: 0;
}
.qdnapro-inbox-message .inbox-message-avatar-status {
  position: absolute;
  right: -3px;
  bottom: -3px;
  box-sizing: border-box;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.qdnapro-inbox-message .inbox-message-avatar-status.is-in-progress {
  width: 17px;
  height: 21px;
  background-image: url(/img/inbox-status/hourglass.svg);
}
.qdnapro-inbox-message .inbox-message-avatar-status.is-completed {
  width: 21px;
  height: 20px;
  background-image: url(/img/inbox-status/check.svg);
}
.qdnapro-inbox-message .inbox-message-avatar-status.is-overdue {
  width: 22px;
  height: 19px;
  background-image: url(/img/inbox-status/warning-red.svg);
}
.qdnapro-inbox-message .inbox-message-avatar-status.is-due-soon {
  width: 22px;
  height: 19px;
  background-image: url(/img/inbox-status/warning-yellow.svg);
}
.qdnapro-inbox-message .inbox-message-avatar-status.is-reminder {
  width: 18px;
  height: 21px;
  background-image: url(/img/inbox-status/bell.svg);
}
.qdnapro-inbox-message .inbox-message-avatar-status.is-scheduled {
  width: 21px;
  height: 20px;
  background-image: url(/img/inbox-status/timer.svg);
}
.qdnapro-inbox-message .inbox-message-main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 4px 0;
}
.qdnapro-inbox-message .inbox-message-row-1 {
  display: flex;
  align-items: center;
  gap: 4px;
}
.qdnapro-inbox-message .inbox-message-sender {
  flex: 1 1 auto;
  min-width: 0;
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 700;
  font-size: 14px;
  line-height: 24px;
  color: var(--msg-text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.qdnapro-inbox-message:not(.inbox-message-unread) .inbox-message-sender {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 500;
  font-size: 14px;
  line-height: 24px;
}
.qdnapro-inbox-message .inbox-message-actions {
  flex-shrink: 0;
  height: 24px;
  display: flex;
  align-items: center;
  gap: 0;
}
.qdnapro-inbox-message .inbox-message-paperclip {
  flex-shrink: 0;
  width: 20px;
  max-width: 20px;
  height: 20px;
  opacity: 1;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--msg-text-muted);
  pointer-events: none;
  transition: max-width 200ms cubic-bezier(0.4, 0, 0.2, 1), width 200ms cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms ease;
}
.qdnapro-inbox-message .inbox-message-forwarded {
  flex-shrink: 0;
  width: 20px;
  max-width: 20px;
  height: 20px;
  opacity: 1;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--msg-text-muted);
  pointer-events: auto;
  transition: max-width 200ms cubic-bezier(0.4, 0, 0.2, 1), width 200ms cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms ease;
}
.qdnapro-inbox-message .inbox-message-bookmark,
.qdnapro-inbox-message .inbox-message-delete {
  width: 0;
  min-width: 0;
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transition: max-width 200ms cubic-bezier(0.4, 0, 0.2, 1), width 200ms cubic-bezier(0.4, 0, 0.2, 1), min-width 200ms cubic-bezier(0.4, 0, 0.2, 1), margin-left 200ms cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms ease, color 120ms ease-out;
}
.qdnapro-inbox-message .inbox-message-delete {
  margin-left: 0;
}
.qdnapro-inbox-message:hover:not(.inbox-message-swiping) .inbox-message-paperclip, .qdnapro-inbox-message:focus-within:not(.inbox-message-swiping) .inbox-message-paperclip {
  width: 0;
  max-width: 0;
  opacity: 0;
}
.qdnapro-inbox-message:hover:not(.inbox-message-swiping) .inbox-message-bookmark, .qdnapro-inbox-message:hover:not(.inbox-message-swiping) .inbox-message-delete, .qdnapro-inbox-message:focus-within:not(.inbox-message-swiping) .inbox-message-bookmark, .qdnapro-inbox-message:focus-within:not(.inbox-message-swiping) .inbox-message-delete {
  width: 24px;
  min-width: 24px;
  max-width: 24px;
  opacity: 1;
  pointer-events: auto;
}
.qdnapro-inbox-message:hover:not(.inbox-message-swiping) .inbox-message-delete, .qdnapro-inbox-message:focus-within:not(.inbox-message-swiping) .inbox-message-delete {
  margin-left: 4px;
}
.qdnapro-inbox-message.inbox-message-bookmarked .inbox-message-paperclip {
  width: 0;
  max-width: 0;
  opacity: 0;
}
.qdnapro-inbox-message.inbox-message-bookmarked .inbox-message-bookmark {
  width: 24px;
  min-width: 24px;
  max-width: 24px;
  opacity: 1;
  pointer-events: auto;
  color: var(--msg-accent);
}
.qdnapro-inbox-message.inbox-message-navigate {
  position: relative;
}
.qdnapro-inbox-message.inbox-message-navigate .inbox-message-nav {
  position: absolute;
  top: 50%;
  right: 8px;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 200ms cubic-bezier(0.4, 0, 0.2, 1);
}
.qdnapro-inbox-message.inbox-message-navigate .inbox-message-timestamp,
.qdnapro-inbox-message.inbox-message-navigate .inbox-message-due {
  transition: opacity 150ms ease;
}
.qdnapro-inbox-message.inbox-message-navigate:hover:not(.inbox-message-swiping) .inbox-message-nav, .qdnapro-inbox-message.inbox-message-navigate:focus-within:not(.inbox-message-swiping) .inbox-message-nav {
  opacity: 1;
  pointer-events: auto;
}
.qdnapro-inbox-message.inbox-message-navigate:hover:not(.inbox-message-swiping) .inbox-message-timestamp, .qdnapro-inbox-message.inbox-message-navigate:hover:not(.inbox-message-swiping) .inbox-message-due, .qdnapro-inbox-message.inbox-message-navigate:focus-within:not(.inbox-message-swiping) .inbox-message-timestamp, .qdnapro-inbox-message.inbox-message-navigate:focus-within:not(.inbox-message-swiping) .inbox-message-due {
  opacity: 0;
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-inbox-message .inbox-message-paperclip,
  .qdnapro-inbox-message .inbox-message-bookmark,
  .qdnapro-inbox-message .inbox-message-delete,
  .qdnapro-inbox-message .inbox-message-nav,
  .qdnapro-inbox-message .inbox-message-timestamp,
  .qdnapro-inbox-message .inbox-message-due {
    transition: none;
  }
}
.qdnapro-inbox-message .inbox-message-row-2 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: -2px;
}
.qdnapro-inbox-message .inbox-message-subject {
  flex: 1 1 auto;
  min-width: 0;
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 500;
  font-size: 14px;
  line-height: 24px;
  color: var(--msg-text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.qdnapro-inbox-message.inbox-message-unread .inbox-message-subject {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 700;
  font-size: 14px;
  line-height: 24px;
  color: var(--msg-accent);
}
.qdnapro-inbox-message .inbox-message-timestamp {
  flex-shrink: 0;
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 500;
  font-size: 12px;
  line-height: 20px;
  color: var(--msg-text);
}
.qdnapro-inbox-message.inbox-message-unread .inbox-message-timestamp {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 700;
  font-size: 12px;
  line-height: 20px;
  color: var(--msg-accent);
}
.qdnapro-inbox-message .inbox-message-row-3 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: -2px;
}
.qdnapro-inbox-message .inbox-message-preview {
  flex: 1 1 auto;
  min-width: 0;
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 12px;
  line-height: 20px;
  color: var(--msg-text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.qdnapro-inbox-message .inbox-message-due {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 12px;
  line-height: 20px;
  color: var(--msg-text);
}
.qdnapro-inbox-message .inbox-message-due qdnapro-icon {
  width: 16px;
  height: 16px;
  color: var(--msg-text-muted);
}
.qdnapro-inbox-message .inbox-message-tags {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 4px;
}
.qdnapro-inbox-message.inbox-message-deadline-overdue .inbox-message-due, .qdnapro-inbox-message.inbox-message-deadline-overdue .inbox-message-due qdnapro-icon {
  color: #d93025;
}
.qdnapro-inbox-message.inbox-message-deadline-due-soon .inbox-message-due, .qdnapro-inbox-message.inbox-message-deadline-due-soon .inbox-message-due qdnapro-icon {
  color: #e8810a;
}
.qdnapro-inbox-message.inbox-message-deadline-overdue .inbox-message-due-standalone {
  background: rgba(217, 48, 37, 0.1);
  border-radius: 999px;
  padding: 2px 8px 2px 6px;
  margin-top: 2px;
}
.qdnapro-inbox-message.inbox-message-deadline-due-soon .inbox-message-due-standalone {
  background: rgba(232, 129, 10, 0.1);
  border-radius: 999px;
  padding: 2px 8px 2px 6px;
  margin-top: 2px;
}
.qdnapro-inbox-message .inbox-message-avatar-slot {
  position: relative;
  width: 34px;
  height: 34px;
  flex-shrink: 0;
}
.qdnapro-inbox-message .inbox-message-avatar-slot > qdnapro-avatar,
.qdnapro-inbox-message .inbox-message-avatar-slot > .inbox-message-avatar-wrap {
  position: absolute;
  inset: 0;
  transition: opacity 120ms ease;
}
.qdnapro-inbox-message .inbox-message-select-checkbox {
  position: absolute;
  inset: 0;
  margin: auto;
  width: 16px;
  height: 16px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 120ms ease;
}
.qdnapro-inbox-message.inbox-message-selection-mode .inbox-message-avatar-slot > qdnapro-avatar,
.qdnapro-inbox-message.inbox-message-selection-mode .inbox-message-avatar-slot > .inbox-message-avatar-wrap {
  opacity: 0;
  pointer-events: none;
}
.qdnapro-inbox-message.inbox-message-selection-mode .inbox-message-select-checkbox {
  opacity: 1;
  pointer-events: auto;
}
@media (hover: hover) {
  .qdnapro-inbox-message.inbox-message-selectable:not(.inbox-message-selection-mode):hover .inbox-message-avatar-slot > qdnapro-avatar,
  .qdnapro-inbox-message.inbox-message-selectable:not(.inbox-message-selection-mode):hover .inbox-message-avatar-slot > .inbox-message-avatar-wrap {
    opacity: 0;
    pointer-events: none;
  }
  .qdnapro-inbox-message.inbox-message-selectable:not(.inbox-message-selection-mode):hover .inbox-message-select-checkbox {
    opacity: 1;
    pointer-events: auto;
  }
}
.qdnapro-inbox-message.inbox-message-swiping {
  background: var(--c-bg-card, #ffffff);
}
.qdnapro-inbox-message.inbox-message-disabled {
  opacity: 0.55;
  cursor: not-allowed;
  pointer-events: none;
}
.qdnapro-inbox-message.inbox-message-disabled:focus-visible, .qdnapro-inbox-message.inbox-message-disabled.force-focus {
  box-shadow: none;
}

[data-bg-context=purple] .qdnapro-inbox-message {
  --msg-bg-hover: var(--c-border-tree-bright);
}

[data-theme=dark] .qdnapro-inbox-message {
  --msg-bg: transparent;
  --msg-bg-hover: #565b66;
  --msg-text: #e1e3e6;
  --msg-text-muted: #a6aab3;
  --msg-accent: #a5acff;
}
[data-theme=dark] .qdnapro-inbox-message.inbox-message-selected {
  --msg-bg: rgba(165, 172, 255, 0.18);
  --msg-bg-hover: rgba(165, 172, 255, 0.28);
}
[data-theme=dark] .qdnapro-inbox-message.inbox-message-active {
  --msg-bg: rgba(165, 172, 255, 0.18);
  --msg-bg-hover: rgba(165, 172, 255, 0.28);
  box-shadow: inset 3px 0 0 0 var(--msg-accent);
}
[data-theme=dark] .qdnapro-inbox-message:focus-visible, [data-theme=dark] .qdnapro-inbox-message.force-focus {
  box-shadow: 0 0 0 2px #a5acff, 0 0 0 6px rgba(70, 82, 243, 0.4);
}
[data-theme=dark] .qdnapro-inbox-message.inbox-message-active:focus-visible, [data-theme=dark] .qdnapro-inbox-message.inbox-message-active.force-focus {
  box-shadow: inset 3px 0 0 0 var(--msg-accent), 0 0 0 2px #a5acff, 0 0 0 6px rgba(70, 82, 243, 0.4);
}

.qdnapro-input {
  display: block;
  font-family: inter, sans-serif;
  font-size: 14px;
  line-height: 24px;
}

.qdnapro-input.input-size-touch {
  font-size: 20px;
  line-height: 30px;
}

.qdnapro-input.input-size-tiny {
  font-size: 13px;
  line-height: 20px;
}

.qdnapro-input .input-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}

.qdnapro-input .input-header .input-label {
  font-weight: 500;
  color: var(--c-grey-950);
  display: inline-flex;
  align-items: baseline;
}

.qdnapro-input .input-header .input-label .input-required {
  color: var(--c-signal-red-text);
  margin-right: 2px;
  font-weight: 500;
}

.qdnapro-input .input-header .input-label .input-optional {
  color: var(--c-grey-500);
  font-weight: 400;
  margin-left: 2px;
}

.qdnapro-input .input-header .input-info-btn {
  flex-shrink: 0;
}

.qdnapro-input .input-hint {
  color: var(--c-grey-500);
  font-size: 13px;
  line-height: 20px;
  margin-bottom: 8px;
}

.qdnapro-input .input-field-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.qdnapro-input.input-size-big .input-external-btn {
  width: 52px;
  min-width: 52px;
  min-height: 52px;
}

.qdnapro-input.input-size-small .input-external-btn {
  width: 40px;
  min-width: 40px;
  min-height: 40px;
}

.qdnapro-input.input-size-tiny .input-external-btn {
  width: 32px;
  min-width: 32px;
  min-height: 32px;
}

.qdnapro-input.input-size-touch .input-external-btn {
  width: 56px;
  min-width: 56px;
  min-height: 56px;
}

.qdnapro-input .input-field {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300);
  border-radius: 8px;
  padding: 0 12px;
  box-sizing: border-box;
  transition: border-color 120ms ease-out, background-color 120ms ease-out;
}

/* Kleur van het LEADING-ICOON in de basis (besluit 78, vervolg 31.07.2026): stond
   op var(--c-grey-400) en haalde daarmee dezelfde contrast-inversie als de placeholder had,
   namelijk een LAGERE verhouding dan de uitgeschakelde stand (var(--c-text-disabled)), waardoor
   een gewoon veld leest als een veld dat je niet mag gebruiken. Gemeten met de
   WCAG-formule, niet op het oog:
     oud  var(--c-grey-400)  op wit #ffffff              -> 2.33:1
     oud  var(--c-grey-400)  op --c-grey-100 var(--c-grey-100)     -> 1.91:1
     oud  var(--c-grey-400)  op het uitgeschakelde vlak var(--c-grey-50) -> 2.06:1
     disabled-icoon var(--c-text-disabled) op var(--c-grey-50) (zijn eigen vlak) -> 2.90:1
     nieuw var(--c-text-muted) var(--c-text-muted) op wit  -> 4.79:1
     nieuw op var(--c-grey-100)                          -> 3.94:1
     nieuw op var(--c-grey-50)                          -> 4.24:1
   De rangorde is daarmee weer gewoon-donkerder-dan-disabled. Het disabled-icoon
   zelf blijft var(--c-text-disabled): dat zat niet fout, het werd ingehaald door een basis die te
   licht stond. De grijze variant had dit icoon al eerder op --c-text-muted gezet;
   die regel blijft staan als zelfstandige garantie voor die variant.
   Met fallback var(--c-text-muted) erin, want `color` zonder fallback valt bij een niet
   resolvende var terug op erven, en dat is hier de bijna-zwarte veldtekst.
   Dark theme, glass en dark-purple zijn niet geraakt: die hebben elk hun eigen
   regel voor dit icoon, verderop in dit bestand. */
.qdnapro-input .input-field .input-leading-icon {
  display: inline-flex;
  width: 16px;
  height: 16px;
  color: var(--c-text-muted, #6e7280);
  flex-shrink: 0;
}

/* Leading avatar (dropdown trigger showing the selected user's photo). Sits in
   the same slot as the leading icon; slightly tighter right margin so the value
   text hugs it. [Kim 2026-07-20] */
.qdnapro-input .input-field .input-leading-avatar {
  display: inline-flex;
  flex-shrink: 0;
  margin-left: -2px;
}

.qdnapro-input .input-field .input-leading-btn {
  flex-shrink: 0;
  margin-left: -4px;
}

.qdnapro-input .input-field .input-pretab,
.qdnapro-input .input-field .input-posttab {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 12px;
  background: var(--c-grey-50);
  color: var(--c-text-disabled);
  font-weight: 500;
  flex-shrink: 0;
  align-self: stretch;
}

.qdnapro-input .input-field .input-pretab qdnapro-icon,
.qdnapro-input .input-field .input-posttab qdnapro-icon {
  display: inline-flex;
  width: 16px;
  height: 16px;
  color: var(--c-text-disabled);
  flex-shrink: 0;
}

.qdnapro-input .input-field .input-pretab .input-pretab-text,
.qdnapro-input .input-field .input-pretab .input-posttab-text,
.qdnapro-input .input-field .input-posttab .input-pretab-text,
.qdnapro-input .input-field .input-posttab .input-posttab-text {
  white-space: nowrap;
}

.qdnapro-input .input-field .input-pretab {
  border-right: 1px solid var(--c-grey-300);
}

.qdnapro-input .input-field .input-posttab {
  border-left: 1px solid var(--c-grey-300);
}

.qdnapro-input .input-field .input-field-inner {
  display: flex;
  align-items: center;
  flex: 1;
  min-width: 0;
  padding: 0 12px;
  background: var(--c-bg-card);
}

.qdnapro-input .input-field .input-field-inner .input-native {
  width: 100%;
}

.qdnapro-input .input-field .input-native {
  flex: 1;
  border: 0;
  outline: 0;
  background: transparent;
  font: inherit;
  color: var(--c-grey-950);
  padding: 0;
  min-width: 0;
}

/* Placeholder-kleur van de BASIS (besluit 78, klus 4b, Kim 31.07.2026): stond op
   var(--c-grey-400) en haalde daarmee EEN LAGERE contrastverhouding dan de uitgeschakelde
   stand (var(--c-text-disabled)), waardoor een leeg veld leek alsof je het niet mocht gebruiken.
   Gemeten met de WCAG-formule:
     oude basis-placeholder  var(--c-grey-400) op wit       -> 2.33:1
     oude basis-placeholder  var(--c-grey-400) op var(--c-grey-100)   -> 1.91:1
     disabled-placeholder    var(--c-text-disabled) op var(--c-grey-100)   -> 2.70:1
   var(--c-text-muted) is dezelfde token die de grijze variant hieronder al
   gebruikt (zie die toelichting bij .input-grey verderop in dit bestand): op wit
   geeft dat 4.79:1, op var(--c-grey-100) 3.94:1. Beide ruim boven de disabled-stand, dus de
   rangorde is weer gewoon-donkerder-dan-disabled. De disabled-placeholder zelf is
   niet aangepast: die zat niet fout, hij werd alleen ingehaald door een basis die
   te licht stond. */
.qdnapro-input .input-field .input-native::placeholder {
  color: var(--c-text-muted);
  font-weight: 500;
}

.qdnapro-input .input-field .input-native:disabled {
  color: var(--c-text-disabled);
  cursor: not-allowed;
}

.qdnapro-input .input-field .input-trailing {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}

.qdnapro-input .input-field .input-trailing .input-suffix-text {
  font-size: 14px;
  font-weight: 600;
  color: var(--c-text-muted);
  white-space: nowrap;
  padding-right: 2px;
}

.qdnapro-input .input-field .input-trailing .input-state-icon {
  display: inline-flex;
  width: 16px;
  height: 16px;
}

.qdnapro-input .input-field .input-trailing .input-state-success {
  color: var(--c-signal-green-text);
}

.qdnapro-input .input-field .input-trailing .input-state-error {
  color: var(--c-signal-red-text);
}

.qdnapro-input .input-field .input-trailing .input-state-warning {
  color: var(--c-warn-yellow-600);
}

.qdnapro-input .input-field .input-trailing .input-trailing-icon {
  display: inline-flex;
  width: 16px;
  height: 16px;
  color: var(--c-grey-400);
}

.qdnapro-input .input-field .input-trailing .input-chevron {
  margin-right: -4px;
}

.qdnapro-input .input-field .input-trailing .input-mic-btn,
.qdnapro-input .input-field .input-trailing .input-nova-btn,
.qdnapro-input .input-field .input-trailing .input-action-btn,
.qdnapro-input .input-field .input-trailing .input-action-btn-2 {
  flex-shrink: 0;
}

.qdnapro-input.input-size-big .input-field {
  min-height: 52px;
}

.qdnapro-input.input-size-small .input-field {
  min-height: 40px;
}

.qdnapro-input.input-size-tiny .input-field {
  min-height: 32px;
  padding: 0 10px;
  gap: 6px;
}

.qdnapro-input.input-size-touch .input-field {
  min-height: 56px;
}

.qdnapro-input.input-type-defined-field .input-field {
  padding: 0;
  overflow: hidden;
  gap: 0;
}

/* [Kim 2026-05-01] Trailing positioned absolute so the textarea fills full
   width — native scrollbar lands flush on the right border. Clear-x floats
   over the top-right corner just left of the scrollbar. */
.qdnapro-input.input-type-expanding .input-field {
  align-items: stretch;
  position: relative;
  padding-top: 0;
  padding-bottom: 0;
  padding-left: 0;
  padding-right: 0;
  overflow: hidden;
}

.qdnapro-input.input-type-expanding .input-field .input-leading-icon {
  align-self: flex-start;
  margin-top: 16px;
  margin-left: 12px;
}

.qdnapro-input.input-type-expanding .input-field .input-trailing {
  position: absolute;
  top: 8px;
  right: 20px;
  margin: 0;
  background: transparent;
  z-index: 1;
}

.qdnapro-input.input-type-expanding .input-field textarea.input-native {
  resize: none;
  overflow-y: hidden;
  line-height: 24px;
  min-height: 52px;
  padding: 14px 52px 14px 12px;
  font-family: inherit;
  display: block;
  box-sizing: border-box;
  width: 100%;
}

.qdnapro-input.input-type-expanding.input-size-small .input-field .input-leading-icon {
  margin-top: 10px;
}

.qdnapro-input.input-type-expanding.input-size-small .input-field .input-trailing {
  top: 4px;
}

.qdnapro-input.input-type-expanding.input-size-small .input-field textarea.input-native {
  min-height: 40px;
  padding: 8px 52px 8px 12px;
}

.qdnapro-input.input-type-expanding.input-size-tiny .input-field .input-leading-icon {
  margin-top: 8px;
  margin-left: 10px;
}

.qdnapro-input.input-type-expanding.input-size-tiny .input-field .input-trailing {
  top: 4px;
}

.qdnapro-input.input-type-expanding.input-size-tiny .input-field textarea.input-native {
  min-height: 32px;
  line-height: 20px;
  padding: 6px 44px 6px 10px;
}

/* De action-knop in een EXPANDING veld hoort ONDERAAN, niet bovenaan.
   Een expanding veld pint zijn trailing-zone bewust tegen de rechterBOVENhoek:
   bij een veld van vier regels moet het wis-kruisje bovenin blijven staan. Voor
   een action-knop klopt precies het omgekeerde — dat is de knop bij de regel
   waar je op typt (een chat-invoerbalk, waarvoor `action-btn` gemaakt is). Bij
   één regel valt "onderaan" samen met "gecentreerd", en groeit het veld uit,
   dan zakt de knop mee.
   Deze regel staat met OPZET na de size-varianten hierboven: hij heeft evenveel
   klassen als die (vijf), dus alleen de volgorde in dit bestand beslist. Eerder
   stond dit als losse regel in de PWA-CSS en dan is het een specificiteitsgevecht
   met een component dat je niet ziet aankomen — het ging daar twee keer mis
   voordat het hier terechtkwam. [Kim 16.08.2026] */
.qdnapro-input.input-type-expanding.input-has-action .input-field .input-trailing {
  /* MIDDEN, en zonder te rekenen. Hier stond eerst `bottom: 8px`, en daarvoor
     `bottom: 10px`, en daarvoor een regel in de app-CSS: elke variant hing af
     van de hoogte van de knop, de hoogte van het veld en de laadvolgorde van
     twee CSS-bestanden, en elke variant was ergens anders weer een paar pixels
     scheef. Vier pogingen, vier keer bijna goed. Dit centreert de trailing-zone
     ongeacht hoe hoog hij is en ongeacht de maat van het veld. */
  top: 50%;
  bottom: auto;
  transform: translateY(-50%);
  /* Dichter naar de hoek dan de standaard 20px van een expanding veld. Die 20px
     houdt daar ruimte vrij voor de systeem-scrollbalk naast het wis-kruisje; een
     veld met een action-knop heeft die ruimte niet nodig (`no-clear` hoort bij
     dit patroon) en de knop hoort dan gewoon in de hoek. [Kim 16.08.2026] */
  right: 8px;
}

/* Geen aparte maat-regel meer nodig: de centrering hierboven klopt bij elke
   maat. */
/* no-clear: no trailing clear-x, so the textarea reclaims the reserved right
   space and uses the full width. [Kim 2026-06-16] */
.qdnapro-input.input-type-expanding[no-clear] .input-field textarea.input-native {
  padding-right: 12px;
}

.qdnapro-input:not(.input-filled) [data-role=clear] {
  display: none;
}

.qdnapro-input.input-type-number .input-number-steppers {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  margin-right: -4px;
}

.qdnapro-input.input-type-number .input-number-steppers > qdnapro-icon-btn {
  width: 16px;
  height: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.qdnapro-input.input-type-number .input-number-steppers > qdnapro-icon-btn qdnapro-icon {
  width: 14px;
  height: 14px;
}

.qdnapro-input.input-type-autocomplete .input-field-row, .qdnapro-input.input-type-phone .input-field-row {
  position: relative;
}

.qdnapro-input .input-ac-dropdown {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  max-height: 320px;
  overflow-y: auto;
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300);
  border-radius: 8px;
  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.08), 0 1px 2px 0 rgba(0, 0, 0, 0.14);
  padding: 8px;
  z-index: 1000;
}

.input-external-btn + .qdnapro-input .input-ac-dropdown {
  right: 60px;
}

.qdnapro-input .input-ac-item {
  display: flex;
  align-items: center;
  height: 40px;
  padding: 0 12px;
  border-radius: 4px;
  font-family: inter, -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 14px;
  line-height: 24px;
  font-weight: 500;
  color: var(--c-grey-950);
  cursor: pointer;
  user-select: none;
}

.qdnapro-input .input-ac-item + .qdnapro-input .input-ac-item {
  margin-top: 4px;
}

.qdnapro-input .input-ac-item strong {
  font-weight: 700;
}

.qdnapro-input .input-ac-item:hover, .qdnapro-input .input-ac-item.input-ac-item-active {
  background: var(--c-grey-50);
}

.qdnapro-input .input-ac-item.input-ac-item-disabled {
  color: var(--c-text-disabled);
  cursor: default;
}

.qdnapro-input .input-ac-empty {
  padding: 12px;
  font-size: 14px;
  line-height: 24px;
  font-weight: 500;
  color: var(--c-text-disabled);
  text-align: center;
}

.qdnapro-input .input-ac-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px;
  font-size: 14px;
  line-height: 24px;
  font-weight: 500;
  color: var(--c-grey-600);
}

.qdnapro-input .input-ac-spinner {
  display: inline-block;
  width: 14px;
  height: 14px;
  border: 2px solid var(--c-grey-300);
  border-top-color: var(--c-purple-500);
  border-radius: 50%;
  animation: qdnapro-ac-spin 0.7s linear infinite;
}

@keyframes qdnapro-ac-spin {
  to {
    transform: rotate(360deg);
  }
}
.qdnapro-input .input-ac-error {
  padding: 12px;
  font-size: 14px;
  line-height: 24px;
  font-weight: 500;
  color: var(--c-signal-red-text);
  text-align: center;
}

.qdnapro-input.input-ac-open .input-field {
  border-color: var(--c-purple-400);
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.4);
}

/* Kleur van de CURRENCY-PREFIX (het euroteken) in de basis, dus bij een leeg of nog
   onveranderd veld (besluit 78, vervolg 31.07.2026). Zelfde contrast-inversie als de
   placeholder en het leading-icoon: stond op var(--c-grey-400) en dat is LICHTER dan de
   uitgeschakelde stand var(--c-text-disabled), waardoor een gewoon bedragveld leest als een veld dat
   je niet mag gebruiken. Gemeten met de WCAG-formule:
     oud  var(--c-grey-400)  op wit #ffffff              -> 2.33:1
     oud  var(--c-grey-400)  op --c-grey-100 var(--c-grey-100)     -> 1.91:1
     oud  var(--c-grey-400)  op het uitgeschakelde vlak var(--c-grey-50) -> 2.06:1
     disabled-prefix var(--c-text-disabled) op var(--c-grey-50) (zijn eigen vlak) -> 2.90:1
     nieuw var(--c-text-muted) var(--c-text-muted) op wit  -> 4.79:1
     nieuw op var(--c-grey-100)                          -> 3.94:1
     nieuw op var(--c-grey-50)                          -> 4.24:1
   De prefix volgde bewust de placeholder-kleur (het is dezelfde "nog niets ingevuld"
   stand), dus hij moest mee met de placeholder-fix. De twee regels hieronder blijven
   ongemoeid: gevuld gaat naar bijna-zwart, uitgeschakeld blijft var(--c-text-disabled).
   Fallback var(--c-text-muted) om dezelfde reden als bij het leading-icoon hierboven. */
.qdnapro-input.input-type-currency .input-currency-prefix {
  color: var(--c-text-muted, #6e7280);
  font-weight: 500;
  flex-shrink: 0;
  user-select: none;
}

.qdnapro-input.input-type-currency.input-filled .input-currency-prefix {
  color: var(--c-grey-950);
}

.qdnapro-input.input-type-currency.input-disabled .input-currency-prefix {
  color: var(--c-text-disabled);
}

.qdnapro-input.input-type-currency .input-native {
  text-align: left;
}

/* === number / currency +/- spinner horizontal layout ===
   Ported to the build source 2026-06-19 (was only in for-sander/_input.scss,
   so the live counter never got its button nudges). Layout: [ - ] value [ + ].
   The minus button is the first child of .input-field; the plus lives in
   .input-trailing. */
.qdnapro-input.input-type-number.input-number-horizontal .input-native {
  text-align: center;
}

.qdnapro-input.input-number-horizontal .input-field > qdnapro-icon-btn[data-role=step-down] {
  flex-shrink: 0;
  margin-left: -4px;
  margin-right: 4px;
}

.qdnapro-input.input-number-horizontal .input-trailing > qdnapro-icon-btn[data-role=step-up] {
  flex-shrink: 0;
  margin-right: -4px;
}

/* Currency + counter: place the minus button before the currency prefix via
   flex order, giving [ - ] [ € value ] [ + ]. The € stays next to the amount. */
.qdnapro-input.input-type-currency.input-number-horizontal .input-field > qdnapro-icon-btn[data-role=step-down] {
  order: -1;
}

.qdnapro-input.input-type-phone .input-country-picker {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  margin: 0 9px 0 4px;
  position: relative;
  background: transparent;
  border: none;
  cursor: pointer;
  font: inherit;
  color: var(--c-grey-900);
  flex-shrink: 0;
}

.qdnapro-input.input-type-phone .input-country-picker::after {
  content: "";
  position: absolute;
  right: -9px;
  top: 8px;
  bottom: 8px;
  width: 1px;
  background: var(--c-border-card);
}

.qdnapro-input.input-type-phone .input-country-picker:hover {
  background: var(--c-grey-50);
  border-radius: 8px;
}

.qdnapro-input.input-type-phone .input-country-picker[disabled] {
  cursor: not-allowed;
  opacity: 0.6;
}

.qdnapro-input.input-type-phone .input-country-picker.input-country-picker-static {
  cursor: default;
}

.qdnapro-input.input-type-phone .input-country-picker.input-country-picker-static:hover {
  background: transparent;
  border-radius: 0;
}

.qdnapro-input.input-type-phone .input-country-picker .input-country-flag {
  font-size: 18px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
}

.qdnapro-input.input-type-phone .input-country-picker .input-country-dial {
  font-weight: 500;
  color: var(--c-grey-600);
  font-size: 14px;
  line-height: 1;
}

.qdnapro-input.input-type-phone .input-country-picker .input-country-chev {
  color: var(--c-text-disabled);
  margin-left: 2px;
  width: 14px;
  height: 14px;
}

.qdnapro-input .input-country-dropdown {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  min-width: 220px;
  max-height: 280px;
  overflow-y: auto;
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300);
  border-radius: 8px;
  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.08), 0 1px 2px 0 rgba(0, 0, 0, 0.14);
  padding: 8px;
  z-index: 1000;
}

.qdnapro-input .input-country-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  height: 40px;
  padding: 0 12px;
  border-radius: 4px;
  background: transparent;
  border: none;
  cursor: pointer;
  font: inherit;
  color: var(--c-grey-950);
  text-align: left;
}

.qdnapro-input .input-country-item + .qdnapro-input .input-country-item {
  margin-top: 4px;
}

.qdnapro-input .input-country-item:hover, .qdnapro-input .input-country-item.input-country-item-active {
  background: var(--c-grey-50);
}

.qdnapro-input .input-country-item .input-country-flag {
  font-size: 18px;
  line-height: 1;
  flex-shrink: 0;
}

.qdnapro-input .input-country-item .input-country-name {
  flex: 1;
  font-weight: 500;
}

.qdnapro-input .input-country-item .input-country-dial {
  color: var(--c-grey-600);
  font-weight: 500;
  flex-shrink: 0;
}

.qdnapro-input.input-type-number.input-number-right .input-native {
  text-align: right;
}

.qdnapro-input.input-filled .input-field .input-native {
  color: var(--c-grey-950);
  font-weight: 500;
}

.qdnapro-input.input-success .input-field {
  border-color: var(--c-signal-green-text);
}

.qdnapro-input.input-error .input-field {
  border-color: var(--c-signal-red-text);
}

.qdnapro-input.input-warning .input-field {
  border-color: var(--c-warn-yellow-600);
}

.qdnapro-input .input-field:hover {
  border-color: var(--c-purple-500);
}

.qdnapro-input .input-field:focus-within {
  border-color: var(--c-purple-400);
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.4);
}

.qdnapro-input .input-field:focus-within .input-native::placeholder {
  font-weight: 400;
}

.qdnapro-input.input-success .input-field:focus-within {
  border-color: var(--c-signal-green-text);
  box-shadow: 0 0 0 3px rgba(110, 231, 183, 0.4);
}

.qdnapro-input.input-error .input-field:focus-within {
  border-color: var(--c-signal-red-text);
  box-shadow: 0 0 0 3px rgba(248, 113, 113, 0.4);
}

.qdnapro-input.input-warning .input-field:focus-within {
  border-color: var(--c-warn-yellow-600);
  box-shadow: 0 0 0 3px rgba(251, 191, 92, 0.4);
}

.qdnapro-input.input-select .input-field {
  border-color: var(--c-purple-400);
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.4);
}

.qdnapro-input.input-select.input-success .input-field {
  border-color: var(--c-signal-green-text);
  box-shadow: 0 0 0 3px rgba(110, 231, 183, 0.4);
}

.qdnapro-input.input-select.input-error .input-field {
  border-color: var(--c-signal-red-text);
  box-shadow: 0 0 0 3px rgba(248, 113, 113, 0.4);
}

.qdnapro-input.input-select.input-warning .input-field {
  border-color: var(--c-warn-yellow-600);
  box-shadow: 0 0 0 3px rgba(251, 191, 92, 0.4);
}

.qdnapro-input.input-disabled .input-field, .qdnapro-input.input-disabled .input-field:hover, .qdnapro-input.input-disabled .input-field:focus-within {
  background: var(--c-grey-50);
  border-color: transparent; /* [Kim 2026-05-01] no outer border for softer look */
  box-shadow: none;
}

.qdnapro-input.input-disabled .input-field .input-native, .qdnapro-input.input-disabled .input-field:hover .input-native, .qdnapro-input.input-disabled .input-field:focus-within .input-native {
  color: var(--c-text-disabled);
  cursor: not-allowed;
}

.qdnapro-input.input-disabled .input-field .input-native::placeholder, .qdnapro-input.input-disabled .input-field:hover .input-native::placeholder, .qdnapro-input.input-disabled .input-field:focus-within .input-native::placeholder {
  color: var(--c-text-disabled);
}

.qdnapro-input.input-disabled .input-field .input-leading-icon,
.qdnapro-input.input-disabled .input-field .input-trailing-icon, .qdnapro-input.input-disabled .input-field:hover .input-leading-icon,
.qdnapro-input.input-disabled .input-field:hover .input-trailing-icon, .qdnapro-input.input-disabled .input-field:focus-within .input-leading-icon,
.qdnapro-input.input-disabled .input-field:focus-within .input-trailing-icon {
  color: var(--c-text-disabled);
}

.qdnapro-input.input-disabled .input-field .input-pretab,
.qdnapro-input.input-disabled .input-field .input-posttab, .qdnapro-input.input-disabled .input-field:hover .input-pretab,
.qdnapro-input.input-disabled .input-field:hover .input-posttab, .qdnapro-input.input-disabled .input-field:focus-within .input-pretab,
.qdnapro-input.input-disabled .input-field:focus-within .input-posttab {
  background: var(--c-border-card);
  border-color: var(--c-grey-300);
  color: var(--c-text-disabled);
}

.qdnapro-input.input-disabled .input-field .input-pretab qdnapro-icon,
.qdnapro-input.input-disabled .input-field .input-posttab qdnapro-icon, .qdnapro-input.input-disabled .input-field:hover .input-pretab qdnapro-icon,
.qdnapro-input.input-disabled .input-field:hover .input-posttab qdnapro-icon, .qdnapro-input.input-disabled .input-field:focus-within .input-pretab qdnapro-icon,
.qdnapro-input.input-disabled .input-field:focus-within .input-posttab qdnapro-icon {
  color: var(--c-text-disabled);
}

.qdnapro-input.input-disabled .input-field .input-field-inner, .qdnapro-input.input-disabled .input-field:hover .input-field-inner, .qdnapro-input.input-disabled .input-field:focus-within .input-field-inner {
  background: transparent;
}

.qdnapro-input.input-readonly .input-field, .qdnapro-input.input-readonly .input-field:hover, .qdnapro-input.input-readonly .input-field:focus-within {
  background: transparent;
  border-color: transparent;
  box-shadow: none;
  padding-left: 0;
}

.qdnapro-input.input-readonly .input-field .input-native, .qdnapro-input.input-readonly .input-field:hover .input-native, .qdnapro-input.input-readonly .input-field:focus-within .input-native {
  color: var(--c-grey-500);
}

.qdnapro-input.input-readonly .input-field .input-field-inner, .qdnapro-input.input-readonly .input-field:hover .input-field-inner, .qdnapro-input.input-readonly .input-field:focus-within .input-field-inner {
  background: transparent;
}

.qdnapro-input.input-readonly .input-field .input-pretab,
.qdnapro-input.input-readonly .input-field .input-posttab, .qdnapro-input.input-readonly .input-field:hover .input-pretab,
.qdnapro-input.input-readonly .input-field:hover .input-posttab, .qdnapro-input.input-readonly .input-field:focus-within .input-pretab,
.qdnapro-input.input-readonly .input-field:focus-within .input-posttab {
  background: transparent;
  border-color: transparent;
  color: var(--c-grey-500);
  padding-left: 0;
}

.qdnapro-input.input-readonly .input-field .input-pretab qdnapro-icon,
.qdnapro-input.input-readonly .input-field .input-posttab qdnapro-icon, .qdnapro-input.input-readonly .input-field:hover .input-pretab qdnapro-icon,
.qdnapro-input.input-readonly .input-field:hover .input-posttab qdnapro-icon, .qdnapro-input.input-readonly .input-field:focus-within .input-pretab qdnapro-icon,
.qdnapro-input.input-readonly .input-field:focus-within .input-posttab qdnapro-icon {
  color: var(--c-grey-500);
}

.qdnapro-input .input-message {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
  font-size: 13px;
  line-height: 20px;
}

.qdnapro-input .input-message qdnapro-icon {
  display: inline-flex;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.qdnapro-input .input-message-error {
  color: var(--c-signal-red-text);
}

.qdnapro-input .input-message-warning {
  color: var(--c-warn-yellow-600);
}

[data-theme=dark] .qdnapro-input .input-label {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-input .input-optional {
  color: #a6aab3;
}

[data-theme=dark] .qdnapro-input .input-hint {
  color: #a6aab3;
}

[data-theme=dark] .qdnapro-input .input-required {
  color: #f87171;
}

[data-theme=dark] .qdnapro-input .input-field {
  background: #0b0b0d;
  border-color: #565b66;
}

[data-theme=dark] .qdnapro-input .input-native {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-input.input-filled .input-field .input-native {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-input .input-native::placeholder {
  color: #898e99;
}

[data-theme=dark] .qdnapro-input .input-leading-icon,
[data-theme=dark] .qdnapro-input .input-trailing-icon {
  color: #898e99;
}

[data-theme=dark] .qdnapro-input.input-filled .input-leading-icon, [data-theme=dark] .qdnapro-input.input-filled .input-trailing-icon {
  color: #e1e3e6;
}

/* Currency-prefix in de donkere stand: EXPLICIET op de kleur die hij hier vandaag ook
   al heeft, zodat de basis-fix hierboven (var(--c-grey-400) -> var(--c-text-muted)) het donkere
   thema niet meesleept. Dit is geen nieuwe keuze: in het donkere thema resolveert
   --c-text-muted naar --c-grey-400 en dat IS var(--c-grey-400), dus de donkere stand verandert
   niet. De regel staat er omdat de basis nu een token gebruikt dat per thema iets
   anders betekent, en omdat de preview de tokens zelf niet definieert (daar zou de
   fallback var(--c-text-muted) anders op de bijna-zwarte donkere vulling belanden).
   Anders dan de placeholder en het leading-icoon had de prefix nog geen eigen donkere
   regel voor de lege stand, alleen voor gevuld/uitgeschakeld/alleen-lezen. */
[data-theme=dark] .qdnapro-input.input-type-currency .input-currency-prefix {
  color: #a6aab3;
}

[data-theme=dark] .qdnapro-input .input-field:hover {
  border-color: #666dae;
}

[data-theme=dark] .qdnapro-input.input-focus .input-field,
[data-theme=dark] .qdnapro-input .input-field:focus-within {
  border-color: #535ba4;
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.4);
}

[data-theme=dark] .qdnapro-input.input-select .input-field {
  border-color: #535ba4;
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.4);
}

[data-theme=dark] .qdnapro-input.input-success .input-field {
  border-color: #58b992;
  box-shadow: 0 0 0 3px rgba(139, 236, 197, 0.4);
}

[data-theme=dark] .qdnapro-input .input-state-success {
  color: #58b992;
}

[data-theme=dark] .qdnapro-input.input-error .input-field {
  border-color: #f98d8d;
  box-shadow: 0 0 0 3px rgba(249, 141, 141, 0.4);
}

[data-theme=dark] .qdnapro-input .input-state-error {
  color: #f87171;
}

[data-theme=dark] .qdnapro-input .input-message-error {
  color: #f87171;
}

[data-theme=dark] .qdnapro-input.input-warning .input-field {
  border-color: #ef8e02;
  box-shadow: 0 0 0 3px rgba(251, 191, 92, 0.4);
}

[data-theme=dark] .qdnapro-input .input-state-warning {
  color: #ef8e02;
}

[data-theme=dark] .qdnapro-input .input-message-warning {
  color: #ef8e02;
}

[data-theme=dark] .qdnapro-input.input-disabled .input-field {
  background: #40444d;
  border-color: transparent;
}

[data-theme=dark] .qdnapro-input.input-disabled .input-native {
  color: #6b7280;
}

[data-theme=dark] .qdnapro-input.input-disabled .input-leading-icon, [data-theme=dark] .qdnapro-input.input-disabled .input-trailing-icon {
  color: #6b7280;
}

[data-theme=dark] .qdnapro-input.input-readonly .input-field {
  background: transparent;
  border-color: #565b66;
}

[data-theme=dark] .qdnapro-input .input-pretab,
[data-theme=dark] .qdnapro-input .input-posttab {
  background: #40444d;
  color: #a6aab3;
}

[data-theme=dark] .qdnapro-input .input-pretab qdnapro-icon,
[data-theme=dark] .qdnapro-input .input-posttab qdnapro-icon {
  color: #a6aab3;
}

[data-theme=dark] .qdnapro-input .input-pretab {
  border-right-color: #565b66;
}

[data-theme=dark] .qdnapro-input .input-posttab {
  border-left-color: #565b66;
}

[data-theme=dark] .qdnapro-input .input-field-inner {
  background: #0b0b0d;
}

[data-theme=dark] .qdnapro-input.input-type-search .qdnapro-icon-btn.icon-btn-dropdown-search,
[data-theme=dark] .qdnapro-input .qdnapro-icon-btn.icon-btn-dropdown-search {
  background: #40444d;
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-input.input-type-search .qdnapro-icon-btn.icon-btn-dropdown-search:hover:not(.icon-btn-disabled),
[data-theme=dark] .qdnapro-input .qdnapro-icon-btn.icon-btn-dropdown-search:hover:not(.icon-btn-disabled) {
  background: #565b66;
}

[data-theme=dark] .qdnapro-input.input-type-phone .input-country-picker::after {
  background: #565b66;
}

[data-theme=dark] .qdnapro-input .input-ac-dropdown {
  background: #1f2028;
  border-color: #565b66;
}

[data-theme=dark] .qdnapro-input .input-ac-item {
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-input .input-ac-item:hover, [data-theme=dark] .qdnapro-input .input-ac-item.input-ac-item-active {
  background: #565b66;
}

[data-theme=dark] .qdnapro-input .input-ac-item strong {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-input .input-ac-empty,
[data-theme=dark] .qdnapro-input .input-ac-loading {
  color: #a6aab3;
}

[data-theme=dark] .qdnapro-input .input-ac-error {
  color: #f87171;
}

[data-theme=dark] .qdnapro-input .input-ac-spinner {
  border-color: #565b66;
  border-top-color: #4652f3;
}

/* === theme: glass — added 2026-06-08 ===
   Translucent fields for use on a dark / coloured surface (e.g. the login
   stage). Same structure and behaviour as the default input; only the colours
   change. Activate by setting data-theme="glass" on an ancestor (the login
   form does this). Focus ring uses the login lila accent. */
[data-theme=glass] .qdnapro-input .input-field {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.28);
}

[data-theme=glass] .qdnapro-input .input-field .input-native {
  color: #ffffff;
}

[data-theme=glass] .qdnapro-input .input-field .input-native::placeholder {
  color: rgba(255, 255, 255, 0.7);
}

[data-theme=glass] .qdnapro-input .input-leading-icon,
[data-theme=glass] .qdnapro-input .input-trailing-icon {
  color: rgba(255, 255, 255, 0.75);
}

[data-theme=glass] .qdnapro-input.input-filled .input-leading-icon,
[data-theme=glass] .qdnapro-input.input-filled .input-trailing-icon {
  color: #ffffff;
}

/* Currency-prefix op glas: net als bij het donkere thema hierboven expliciet op de
   kleur die hij vandaag ook al heeft, zodat de basis-fix de doorschijnende vulling op
   de donkere loginachtergrond niet meesleept (daar zou var(--c-text-muted) juist SLECHTER worden).
   Puur behoud, geen nieuwe kleurkeuze. Openstaand puntje voor later: glas zet zijn
   placeholder op rgba(255,255,255,0.7) en zijn iconen op 0.75, dus strikt genomen
   hoort de prefix daar ook in die reeks mee en niet op een grijs uit het lichte
   palet. Dat is een aparte designkeuze en is hier niet gemaakt. */
[data-theme=glass] .qdnapro-input.input-type-currency .input-currency-prefix {
  color: #a6aab3;
}

[data-theme=glass] .qdnapro-input .input-field:hover {
  border-color: rgba(255, 255, 255, 0.45);
}

[data-theme=glass] .qdnapro-input.input-focus .input-field,
[data-theme=glass] .qdnapro-input .input-field:focus-within {
  border-color: #9a8fff;
  background: rgba(255, 255, 255, 0.2);
  box-shadow: 0 0 0 3px rgba(154, 143, 255, 0.35);
}

/* Trailing icon buttons (password eye-toggle, clear-x) on glass. */
[data-theme=glass] .qdnapro-input .input-trailing .qdnapro-icon-btn.icon-btn-input-icon {
  color: rgba(255, 255, 255, 0.75);
}

[data-theme=glass] .qdnapro-input .input-trailing .qdnapro-icon-btn.icon-btn-input-icon:hover:not(.icon-btn-disabled) {
  background-color: rgba(255, 255, 255, 0.12);
  color: #ffffff;
}

/* State accents kept legible on the dark surface. */
[data-theme=glass] .qdnapro-input.input-error .input-field {
  border-color: #f98d8d;
  box-shadow: 0 0 0 3px rgba(249, 141, 141, 0.4);
}

[data-theme=glass] .qdnapro-input .input-state-error,
[data-theme=glass] .qdnapro-input .input-message-error {
  color: #f98d8d;
}

[data-theme=glass] .qdnapro-input.input-success .input-field {
  border-color: #58b992;
}

[data-theme=glass] .qdnapro-input .input-state-success {
  color: #8becc5;
}

/* === type: date — added 2026-05-11 (compiled from _input.scss) === */
.qdnapro-input.input-type-date .input-native::-webkit-calendar-picker-indicator {
  display: none;
}

.qdnapro-input.input-type-date .input-native {
  text-align: left;
  min-width: 0;
}

[data-theme=dark] .qdnapro-input.input-type-date .input-native::-webkit-calendar-picker-indicator {
  display: none;
}

/* === type: time — added 2026-06-19 (native <input type="time">, mirrors date) === */
.qdnapro-input.input-type-time .input-native::-webkit-calendar-picker-indicator {
  display: none;
}

.qdnapro-input.input-type-time .input-native {
  text-align: left;
  min-width: 0;
}

[data-theme=dark] .qdnapro-input.input-type-time .input-native::-webkit-calendar-picker-indicator {
  display: none;
}

/* === date/time empty-state placeholder (added 2026-06-19) ===
   When nothing is entered, show the dd/mm/yyyy (and HH:mm) format text in the same
   light-grey placeholder colour as other inputs (like the currency "0,00"); the
   value turns dark once filled (.input-filled). [Kim]
   Meegetrokken met de basis-placeholder-fix (besluit 78, klus 4b, 31.07.2026): deze
   regel gebruikte bewust dezelfde kleur als de basis-placeholder ("in the same
   light-grey placeholder colour as other inputs"), dus zonder deze mee te nemen
   zou alleen dit type de oude, te lichte 1.91:1-kleur houden. */
.qdnapro-input.input-type-date:not(.input-filled) .input-native,
.qdnapro-input.input-type-time:not(.input-filled) .input-native {
  color: var(--c-text-muted);
}

[data-theme=dark] .qdnapro-input.input-type-date:not(.input-filled) .input-native,
[data-theme=dark] .qdnapro-input.input-type-time:not(.input-filled) .input-native {
  color: #898e99;
}

/* === variant: round (pill-shape) — PWA only [2026-06-30] ===
   Boolean attribute `round`. Rounds the field to a pill shape with
   slightly wider horizontal padding so the content breathes at the
   curved edges. Internal icon-btns already use border-radius: 50%
   so their hover circles stay round. The right trailing edge gets
   a small negative margin to keep the last icon optically centred. */
.qdnapro-input.input-round .input-field {
  border-radius: 9999px;
  padding-left: 20px;
  padding-right: 12px;
}

.qdnapro-input.input-round .input-field .input-trailing {
  margin-right: 4px;
}

/* === variant: dark-purple [2026-06-30] ===
   Boolean attribute `dark-purple`. Deep-purple surface for use on
   purple-background pages (PWA list_page search, login, etc.).
   Tokens: surface=--c-purple-700, text=--c-purple-50,
   placeholder/icons=--c-purple-300, label=--c-white-04, hint=--c-purple-300.
   Focus ring unchanged (brand purple border). */
.qdnapro-input.input-dark-purple .input-field {
  background: var(--c-purple-700);
  border-color: transparent;
  transition: background-color 120ms ease-out, border-color 120ms ease-out;
}

.qdnapro-input.input-dark-purple .input-field:hover {
  background: var(--c-purple-600);
  border-color: transparent;
}

.qdnapro-input.input-dark-purple .input-field:focus-within {
  border-color: var(--c-brand);
  background: var(--c-purple-700);
}

.qdnapro-input.input-dark-purple .input-field .input-native {
  color: var(--c-purple-50);
}

.qdnapro-input.input-dark-purple .input-field .input-native::placeholder {
  color: var(--c-purple-300);
  font-weight: 500;
}

.qdnapro-input.input-dark-purple .input-field .input-leading-icon {
  color: var(--c-purple-300);
}

.qdnapro-input.input-dark-purple .input-label {
  color: var(--c-white-04);
}

.qdnapro-input.input-dark-purple .input-hint {
  color: var(--c-purple-300);
}

/* Clear-x, spinner ±, and eye-toggle icon-btns inside dark-purple */
.qdnapro-input.input-dark-purple .input-trailing .qdnapro-icon-btn.icon-btn-input-icon {
  color: var(--c-purple-50);
}

.qdnapro-input.input-dark-purple .input-trailing .qdnapro-icon-btn.icon-btn-input-icon:hover:not(.icon-btn-disabled) {
  background-color: var(--c-purple-600);
  color: var(--c-purple-50);
}

/* === variant: grey [2026-07-31] ===
   Boolean attribute `grey`. Light-grey surface (--c-grey-100) so the field
   stands out against a white background instead of blending into it - built
   for the app-header search field (qdnapro-app-header slot="search"), but
   usable anywhere a field sits directly on white/near-white.
   No border of its own: the grey fill IS the shape (per Kim), same idea as
   dark-purple's border-color: transparent on its own surface.
   Placeholder/icon colours are left at their normal (non-grey) values on
   purpose: grey-100 (var(--c-grey-100)) is close enough to white in luminance that
   the default grey-400 placeholder/icon colour still reads fine on it - a
   dedicated darker placeholder token was not needed the way dark-purple
   needed one for its much-lower-contrast dark surface.
   Combining with dark-purple is a no-op: see qdna-input.js render(), grey
   is ignored whenever dark-purple is also set. */
.qdnapro-input.input-grey .input-field {
  background: var(--c-grey-100, #e7e9ec);
  border-color: transparent;
}

.qdnapro-input.input-grey .input-field:hover {
  border-color: transparent;
}

/* Placeholder DONKERDER op de grijze vulling (Kim, 31.07.2026: "nu lijkt het veld
   ook disabled omdat de placeholder tekst te licht is, die moet echt donkerder").
   Gemeten met de WCAG-formule, niet op het oog:
     de standaard-placeholder var(--c-grey-400) op var(--c-grey-100)  -> 1.91:1
     de DISABLED-placeholder  var(--c-text-disabled) op var(--c-grey-100)  -> 2.70:1
   De gewone placeholder was dus LICHTER dan de uitgeschakelde stand, en daarom las
   een leeg veld als een veld dat je niet mag gebruiken. Dat was een fout in de BASIS
   van dit component en niet alleen in deze variant; toen dit hier gebouwd werd, was
   de fix nog gescoped tot de grijze variant en geflagd voor Kim (de basis raakt elke
   input in de backoffice en de app, dat niemand gevraagd had). Besluit 78 / klus 4b
   (31.07.2026) heeft de basis zelf ook op var(--c-text-muted) gezet (zie de
   basis-regel bovenin dit bestand), dus deze regel hier is nu strikt genomen
   overbodig geworden (de basis levert al dezelfde kleur) maar blijft staan als
   expliciete, zelfstandige garantie voor deze variant.
   var(--c-text-muted) geeft 3.94:1, ruim boven de disabled-stand en boven de 3:1 die
   WCAG voor grote/secundaire tekst aanhoudt. */
.qdnapro-input.input-grey .input-field .input-native::placeholder {
  color: var(--c-text-muted);
}

/* En het loep-icoontje ervoor mee, anders blijft dat als enige licht achter en leest
   de rij nog steeds als uitgeschakeld. */
.qdnapro-input.input-grey .input-field .input-leading-icon {
  color: var(--c-text-muted);
}

/* Focus ring: restated here (not inherited from the base :focus-within
   rule) for the same reason dark-purple restates its own - the plain
   border-color: transparent rule above has equal selector specificity to
   the base ".qdnapro-input .input-field:focus-within" rule and comes later
   in the file, so without this override it would win on focus too and the
   ring would silently disappear.
   Token: var(--c-brand-purple) rather than dark-purple's var(--c-brand) -
   that token is not defined anywhere in this codebase (checked: absent from
   design-tokens/_design-tokens.scss and the compiled style-v1.css), so
   dark-purple's focus-within border-color is very likely a pre-existing,
   silently-broken rule. Not fixed here (out of scope for this task, and
   _input.scss for dark-purple is being read, not rewritten) - flagging it
   in the handoff instead of copying the same undefined token forward. */
.qdnapro-input.input-grey .input-field:focus-within {
  border-color: var(--c-brand-purple);
  background: var(--c-grey-100, #e7e9ec);
}

.qdnapro-label-circle {
  --lc-size: 44px;
  --lc-icon-size: 16px;
  --lc-bg: var(--c-grey-50);
  --lc-icon: #1e1f20;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: var(--lc-size);
  height: var(--lc-size);
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--lc-bg);
  color: var(--lc-icon);
  user-select: none;
}

.qdnapro-label-circle .label-circle-icon {
  display: inline-flex;
  width: var(--lc-icon-size);
  height: var(--lc-icon-size);
  color: inherit;
  pointer-events: none;
}

.qdnapro-label-circle .label-circle-icon svg {
  fill: currentColor;
  width: 100%;
  height: 100%;
}

.qdnapro-label-circle.label-circle-size-big {
  --lc-size: 44px;
  --lc-icon-size: 16px;
}

.qdnapro-label-circle.label-circle-size-small {
  --lc-size: 20px;
  --lc-icon-size: 12px;
  outline: 1px solid color-mix(in srgb, currentColor 22%, transparent);
  outline-offset: -1px;
}

.qdnapro-label-circle.label-circle-color-grey {
  --lc-bg: var(--c-grey-50);
  --lc-icon: #1e1f20;
}

.qdnapro-label-circle.label-circle-color-grey-2 {
  --lc-bg: var(--c-grey-300);
  --lc-icon: #1e1f20;
}

.qdnapro-label-circle.label-circle-color-red {
  --lc-bg: var(--c-signal-red-bg);
  --lc-icon: #633030;
}

.qdnapro-label-circle.label-circle-color-red-2 {
  --lc-bg: var(--c-chip-red-2-bg);
  --lc-icon: #633030;
}

.qdnapro-label-circle.label-circle-color-yellow {
  --lc-bg: var(--c-chip-yellow-bg);
  --lc-icon: #655522;
}

.qdnapro-label-circle.label-circle-color-yellow-2 {
  --lc-bg: var(--c-chip-yellow-2-bg);
  --lc-icon: #655522;
}

.qdnapro-label-circle.label-circle-color-green {
  --lc-bg: var(--c-chip-green-bg);
  --lc-icon: #2f5d4a;
}

.qdnapro-label-circle.label-circle-color-green-2 {
  --lc-bg: var(--c-chip-green-2-bg);
  --lc-icon: #2f5d4a;
}

.qdnapro-label-circle.label-circle-color-blue {
  --lc-bg: var(--c-signal-blue-bg);
  --lc-icon: #37475a;
}

.qdnapro-label-circle.label-circle-color-blue-2 {
  --lc-bg: var(--c-chip-blue-2-bg);
  --lc-icon: #37475a;
}

.qdnapro-label-circle.label-circle-color-bright-blue {
  --lc-bg: var(--c-chip-bright-blue-bg);
  --lc-icon: #192a5a;
}

.qdnapro-label-circle.label-circle-color-bright-blue-2 {
  --lc-bg: var(--c-chip-bright-blue-2-bg);
  --lc-icon: #192a5a;
}

.qdnapro-label-circle.label-circle-color-pink {
  --lc-bg: var(--c-signal-pink-bg);
  --lc-icon: #562d3a;
}

.qdnapro-label-circle.label-circle-color-dark-pink {
  --lc-bg: var(--c-chip-dark-pink-bg);
  --lc-icon: #562d3a;
}

.qdnapro-label-circle.label-circle-color-purple {
  --lc-bg: var(--c-chip-purple-bg);
  --lc-icon: #413b5e;
}

.qdnapro-label-circle.label-circle-color-dark-purple {
  --lc-bg: var(--c-chip-dark-purple-bg);
  --lc-icon: #413b5e;
}

.qdnapro-label-circle.label-circle-disabled {
  opacity: 0.6;
}

/* Additive status-* colors (16.07.2026 — planner status filter). Solid dots
   (bg == icon color, no light-tint pairing like the 16 colors above) mapped
   1:1 to qdnapro-event-card's own status tokens (see _event-card.scss:
   --c-purple-500, --c-signal-red/-orange/-green-text) — these are used
   icon-less (a pure color indicator, see qdna-menu-item.js), so only --lc-bg
   is ever visible; --lc-icon is set to the same value for consistency should
   an icon ever be added. No dark-theme override: event-card itself has none
   for these tokens either (raw signal primitives, not re-themed). First-
   class here (not a menu-item-scoped override) because this component's own
   render() unconditionally rewrites className on every re-render, which
   silently discarded any externally-added class-based override before this
   fix (Kim's live test, 16.07.2026 — filter dots rendered grey/empty). */
.qdnapro-label-circle.label-circle-color-status-planned {
  --lc-bg: var(--c-purple-500, #40499a);
  --lc-icon: var(--c-purple-500, #40499a);
}

.qdnapro-label-circle.label-circle-color-status-overdue {
  --lc-bg: var(--c-signal-red-text, #c65a5a);
  --lc-icon: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-label-circle.label-circle-color-status-inprogress {
  --lc-bg: var(--c-signal-orange-text, #bc6a1f);
  --lc-icon: var(--c-signal-orange-text, #bc6a1f);
}

.qdnapro-label-circle.label-circle-color-status-complete {
  --lc-bg: var(--c-signal-green-text, #428b6e);
  --lc-icon: var(--c-signal-green-text, #428b6e);
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-grey {
  --lc-bg: #565b66;
  --lc-icon: #e1e3e6;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-grey-2 {
  --lc-bg: #40444d;
  --lc-icon: #e1e3e6;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-red {
  --lc-bg: #5a2b2b;
  --lc-icon: #fbaaaa;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-red-2 {
  --lc-bg: #7a3838;
  --lc-icon: #fee3e3;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-yellow {
  --lc-bg: #5a4d1f;
  --lc-icon: #fde594;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-yellow-2 {
  --lc-bg: #7a6b2d;
  --lc-icon: #fef6db;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-green {
  --lc-bg: #2a5544;
  --lc-icon: #8becc5;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-green-2 {
  --lc-bg: #3d7a62;
  --lc-icon: #e2faf1;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-blue {
  --lc-bg: #2e3e54;
  --lc-icon: #b5ceed;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-blue-2 {
  --lc-bg: #445a78;
  --lc-icon: #e6eff9;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-bright-blue {
  --lc-bg: #3a4a8a;
  --lc-icon: #d6e0f9;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-bright-blue-2 {
  --lc-bg: #2a3560;
  --lc-icon: #85a1ec;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-pink {
  --lc-bg: #4e2a36;
  --lc-icon: #e5a6b9;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-dark-pink {
  --lc-bg: #6e3d50;
  --lc-icon: #f6e1e8;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-purple {
  --lc-bg: #3a3555;
  --lc-icon: #c4bcf3;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-dark-purple {
  --lc-bg: #524a7a;
  --lc-icon: #ebe9fb;
}

/* === BEGIN QDNA-LOGO CSS === */
.qdnapro-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  color: inherit;
  line-height: 1;
  user-select: none;
  flex-shrink: 0;
}

.qdnapro-logo svg {
  display: block;
  height: 100%;
  width: auto;
  fill: currentColor;
}

/* === END QDNA-LOGO CSS === */
.qdnapro-members {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 8px 4px 4px;
  border-radius: 999px;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 150ms ease;
}

.qdnapro-members:focus {
  outline: none;
}

.qdnapro-members:focus-visible {
  outline: 2px solid var(--c-purple-500);
  outline-offset: 2px;
}

.qdnapro-members.members-disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

/* Trailing "+" circle. Same height as a 34px avatar so it visually
   lines up. Stroke-only SVG so it renders white over photos and
   purple on light surfaces via currentColor. */
.qdnapro-members .members-add {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid transparent;
  transition: background-color 150ms ease, border-color 150ms ease;
}

.qdnapro-members .members-add svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
}

/* --- Tone: on-photo (default) - glass over imagery. --- */
.qdnapro-members.members-tone-on-photo {
  color: var(--c-text-on-action);
}

.qdnapro-members.members-tone-on-photo:hover:not(.members-disabled) {
  background: rgba(255, 255, 255, 0.12);
}

.qdnapro-members.members-tone-on-photo .members-add {
  background: rgba(255, 255, 255, 0.18);
  border-color: rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: var(--c-text-on-action);
}

.qdnapro-members.members-tone-on-photo:hover:not(.members-disabled) .members-add {
  background: rgba(255, 255, 255, 0.3);
  border-color: rgba(255, 255, 255, 0.42);
}

/* --- Tone: light - on a light surface (cards, panels). --- */
.qdnapro-members.members-tone-light {
  color: var(--c-purple-500);
}

.qdnapro-members.members-tone-light:hover:not(.members-disabled) {
  background: rgba(70, 82, 243, 0.06);
}

.qdnapro-members.members-tone-light .members-add {
  background: var(--c-bg-card);
  border-color: var(--c-grey-300);
  color: var(--c-purple-500);
}

.qdnapro-members.members-tone-light:hover:not(.members-disabled) .members-add {
  background: var(--c-grey-50);
  border-color: var(--c-text-disabled);
}

[data-theme=dark] .qdnapro-members.members-tone-light {
  color: #a5acff;
}

[data-theme=dark] .qdnapro-members.members-tone-light:hover:not(.members-disabled) {
  background: rgba(165, 172, 255, 0.1);
}

[data-theme=dark] .qdnapro-members.members-tone-light .members-add {
  background: #2e3036;
  border-color: #40444d;
  color: #a5acff;
}

[data-theme=dark] .qdnapro-members.members-tone-light:hover:not(.members-disabled) .members-add {
  background: #40444d;
}

.qdnapro-menu {
  display: inline-flex;
  flex-direction: column;
  box-sizing: border-box;
  min-width: 160px;
  padding: 8px;
  border-radius: 8px;
  gap: 4px;
}

.qdnapro-menu > qdnapro-menu-item,
.qdnapro-menu > qdnapro-menu-separator,
.qdnapro-menu > qdnapro-menu-section-heading,
.qdnapro-menu > qdnapro-menu-header {
  width: 100%;
}

.qdnapro-menu.menu-color-neutral {
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300);
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.15), 0 8px 12px 6px rgba(0, 0, 0, 0.075);
}

.qdnapro-menu.menu-color-action {
  background: var(--c-purple-500);
  border: 0.5px solid var(--c-purple-600);
  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.075), 0 1px 2px 0 rgba(0, 0, 0, 0.15);
}

.qdnapro-menu.menu-embedded {
  min-width: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
  border: none;
  box-shadow: none;
}

.qdnapro-menu-header {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 8px 16px;
  box-sizing: border-box;
}

.qdnapro-menu-header .menu-header-heading {
  font-family: "Inter", sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
}

.qdnapro-menu-header .menu-header-subheading {
  font-family: "Inter", sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 20px;
}

.qdnapro-menu-header.menu-header-color-neutral .menu-header-heading {
  color: var(--c-grey-950);
}

.qdnapro-menu-header.menu-header-color-neutral .menu-header-subheading {
  color: var(--c-grey-500);
}

.qdnapro-menu-header.menu-header-color-action .menu-header-heading {
  color: var(--c-text-on-action);
}

.qdnapro-menu-header.menu-header-color-action .menu-header-subheading {
  color: rgba(255, 255, 255, 0.7);
}

.qdnapro-menu-separator {
  display: block;
  height: 1px;
  margin: 8px 0;
  border: none;
  box-sizing: content-box;
  /* qdnapro-menu is a flex column, so the separator is a flex ITEM — and a flex
     item shrinks by default. With no content its min-content height is 0, so the
     moment the menu is height-constrained and has to scroll, this 1px line gets
     compressed to exactly 0px and the keyline silently disappears while its
     class and background colour are still perfectly correct. Measured in the
     capped select popover, 05.08.2026: offsetHeight 0, and 1 again with
     flex-shrink: 0. Menu-items survive because their text gives them a
     min-content height. */
  flex-shrink: 0;
}

.qdnapro-menu-separator.menu-separator-color-neutral {
  background: var(--c-grey-100);
}

.qdnapro-menu-separator.menu-separator-color-action {
  background: rgba(255, 255, 255, 0.16);
}

.qdnapro-menu-section-heading {
  display: block;
  box-sizing: border-box;
  padding: 0 4px;
  margin-top: 4px;
  font-family: "Inter", sans-serif;
  font-size: 10px;
  font-weight: 400;
  line-height: 20px;
  letter-spacing: 0;
  user-select: none;
}

.qdnapro-menu-section-heading.menu-section-heading-color-neutral {
  color: var(--c-grey-500);
}

.qdnapro-menu-section-heading.menu-section-heading-color-action {
  color: rgba(255, 255, 255, 0.7);
}

[data-theme=dark] .qdnapro-menu.menu-color-neutral {
  background: #2e3036;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.3), 0 8px 12px 6px rgba(0, 0, 0, 0.2);
}

[data-theme=dark] .qdnapro-menu.menu-color-action {
  background: #333a7b;
  border: 0.5px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.2), 0 1px 2px 0 rgba(0, 0, 0, 0.3);
}

[data-theme=dark] .qdnapro-menu .qdnapro-menu-header.menu-header-color-neutral .menu-header-heading {
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-menu .qdnapro-menu-header.menu-header-color-neutral .menu-header-subheading {
  color: rgba(225, 227, 230, 0.65);
}

[data-theme=dark] .qdnapro-menu .qdnapro-menu-separator.menu-separator-color-neutral {
  background: rgba(255, 255, 255, 0.12);
}

[data-theme=dark] .qdnapro-menu .qdnapro-menu-separator.menu-separator-color-action {
  background: rgba(255, 255, 255, 0.2);
}

[data-theme=dark] .qdnapro-menu .qdnapro-menu-section-heading.menu-section-heading-color-neutral {
  color: rgba(225, 227, 230, 0.6);
}

.qdnapro-menu-item {
  --mi-text: var(--c-grey-950);
  --mi-text-muted: rgba(11, 11, 13, 0.55);
  --mi-icon: var(--c-grey-950);
  --mi-bg: transparent;
  --mi-bg-hover: var(--c-bg-card-hover);
  --mi-bg-pressed: var(--c-border-card);
  --mi-bg-selected: var(--c-grey-50);
  --mi-disabled-text: var(--c-text-disabled);
  --mi-destructive-text: var(--c-tag-critical-text);
  --mi-destructive-bg-hover: var(--c-signal-red-soft);
  --mi-focus-ring: var(--c-purple-500);
  --mi-focus-glow: rgba(70, 82, 243, 0.25);
  display: flex;
  align-items: center;
  box-sizing: border-box;
  width: 100%;
  background: var(--mi-bg);
  color: var(--mi-text);
  cursor: pointer;
  user-select: none;
  font-family: inherit;
  border: 0 solid transparent;
  transition: background-color 100ms ease-out;
}

.qdnapro-menu-item .menu-item-icon,
.qdnapro-menu-item .menu-item-chevron,
.qdnapro-menu-item .menu-item-check {
  display: inline-flex;
  flex-shrink: 0;
  color: var(--mi-icon);
  pointer-events: none;
}

.qdnapro-menu-item .menu-item-icon svg,
.qdnapro-menu-item .menu-item-chevron svg,
.qdnapro-menu-item .menu-item-check svg {
  fill: currentColor;
  width: 100%;
  height: 100%;
}

.qdnapro-menu-item .menu-item-chevron,
.qdnapro-menu-item .menu-item-check {
  opacity: 0.85;
}

.qdnapro-menu-item .menu-item-label {
  flex: 1 0 0;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-menu-item .menu-item-shortcut {
  flex-shrink: 0;
  color: var(--mi-text-muted);
  font-family: "Menlo", "Monaco", monospace;
  letter-spacing: 0.3px;
}

/* Trailing area — a count pill (always visible) and/or hover-revealed action
   buttons (open + remove), grouped at the end of the row. The pill stays put;
   the actions fade in on hover/focus so the row is clean at rest. [Kim 2026-06-15] */
.qdnapro-menu-item .menu-item-trailing {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  margin-left: 6px;
}

.qdnapro-menu-item .menu-item-pill {
  flex-shrink: 0;
}

/* Tag — a real qdnapro-tag on the trailing edge (status label:
   "Nieuw" / "Pro" / "Beta"). The label's flex:1 pushes it right; it sits
   BEFORE the trailing slot so it coexists with a chevron/check/pill.
   flex-shrink:0 so it never squashes (the label truncates first). Disabled
   row fades the tag (opacity 0.4, same treatment as the avatar). [Kim 2026-07-20] */
.qdnapro-menu-item .menu-item-tag {
  flex-shrink: 0;
}

.qdnapro-menu-item.menu-item-disabled .menu-item-tag {
  opacity: 0.4;
}

/* Tag-as-label mode — the tag IS the row content (left after the leading
   slot), for checkbox + coloured-tag category pickers. The wrapper takes the
   flex:1 label slot so the tag hugs its content on the left and the row keeps
   a consistent height; long tag text clips at the wrapper edge. [Kim 2026-07-20] */
.qdnapro-menu-item .menu-item-tag-label {
  flex: 1 0 0;
  min-width: 0;
  display: flex;
  align-items: center;
  overflow: hidden;
}

.qdnapro-menu-item .menu-item-tag-label .menu-item-tag {
  max-width: 100%;
}

.qdnapro-menu-item .menu-item-actions {
  display: flex;
  align-items: center;
  gap: 2px;
  flex-shrink: 0;
  opacity: 0;
  transition: opacity 0.15s ease;
}

.qdnapro-menu-item.menu-item-with-actions:hover .menu-item-actions,
.qdnapro-menu-item.menu-item-with-actions:focus-within .menu-item-actions {
  opacity: 1;
}

.qdnapro-menu-item .menu-item-badge {
  flex-shrink: 0;
  background: rgba(0, 0, 0, 0.1);
  color: var(--mi-text);
  font-weight: 600;
  text-align: center;
}

.qdnapro-menu-item.menu-item-size-default {
  gap: 12px;
  min-height: 40px;
  padding: 8px 16px;
  border-radius: 8px;
  font-size: 14px;
  line-height: 24px;
}

.qdnapro-menu-item.menu-item-size-default .menu-item-icon {
  width: 24px;
  height: 24px;
}

.qdnapro-menu-item.menu-item-size-default .menu-item-chevron {
  width: 24px;
  height: 24px;
}

.qdnapro-menu-item.menu-item-size-default .menu-item-check {
  width: 16px;
  height: 16px;
}

.qdnapro-menu-item.menu-item-size-default .menu-item-shortcut {
  font-size: 12px;
}

.qdnapro-menu-item.menu-item-size-default .menu-item-badge {
  min-width: 18px;
  height: 18px;
  padding: 0 6px;
  border-radius: 9px;
  font-size: 11px;
  line-height: 18px;
}

.qdnapro-menu-item.menu-item-size-small {
  gap: 12px;
  min-height: 28px;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 12px;
  line-height: 20px;
}

.qdnapro-menu-item.menu-item-size-small .menu-item-icon {
  width: 16px;
  height: 16px;
}

.qdnapro-menu-item.menu-item-size-small .menu-item-chevron {
  width: 16px;
  height: 16px;
}

.qdnapro-menu-item.menu-item-size-small .menu-item-check {
  width: 16px;
  height: 16px;
}

.qdnapro-menu-item.menu-item-size-small .menu-item-shortcut {
  font-size: 11px;
}

.qdnapro-menu-item.menu-item-size-small .menu-item-badge {
  min-width: 16px;
  height: 16px;
  padding: 0 5px;
  border-radius: 8px;
  font-size: 10px;
  line-height: 16px;
}

.qdnapro-menu-item:hover:not(.menu-item-disabled):not(.menu-item-active) {
  background: var(--mi-bg-hover);
}

.qdnapro-menu-item:active:not(.menu-item-disabled) {
  background: var(--mi-bg-pressed);
  background-image: none;
}

.qdnapro-menu-item:focus {
  outline: none;
}

.qdnapro-menu-item:focus-visible, .qdnapro-menu-item.force-focus {
  outline: 2px solid var(--mi-focus-ring);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px var(--mi-focus-glow);
}

.qdnapro-menu-item.menu-item-active {
  background: var(--mi-bg-selected);
}

.qdnapro-menu-item.force-hover:not(.menu-item-disabled):not(.menu-item-active) {
  background: var(--mi-bg-hover);
}

.qdnapro-menu-item.force-pressed:not(.menu-item-disabled) {
  background: var(--mi-bg-pressed);
  background-image: none;
}

.qdnapro-menu-item.menu-item-disabled {
  color: var(--mi-disabled-text) !important;
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-menu-item.menu-item-disabled .menu-item-icon,
.qdnapro-menu-item.menu-item-disabled .menu-item-chevron,
.qdnapro-menu-item.menu-item-disabled .menu-item-check {
  color: var(--mi-disabled-text);
}

/* Fade illustrative leading visuals (coloured activity-icon, avatar, file-icon)
   when the row is disabled — they don't pick up the text colour, so without this
   they stay vivid and the row doesn't read as disabled. NB: target the element
   TAGS, not the menu-item-* classes — qdnapro-activity-icon / qdnapro-file-icon
   overwrite their own className on render, so the class selectors never match.
   [Kim 2026-06-15] */
.qdnapro-menu-item.menu-item-disabled qdnapro-activity-icon,
.qdnapro-menu-item.menu-item-disabled .menu-item-avatar-wrap,
.qdnapro-menu-item.menu-item-disabled qdnapro-file-icon {
  opacity: 0.5;
}

.qdnapro-menu-item.menu-item-variant-destructive:not(.menu-item-disabled) {
  --mi-bg-hover: var(--mi-destructive-bg-hover);
  color: var(--mi-destructive-text);
}

.qdnapro-menu-item.menu-item-variant-destructive:not(.menu-item-disabled) .menu-item-icon,
.qdnapro-menu-item.menu-item-variant-destructive:not(.menu-item-disabled) .menu-item-chevron,
.qdnapro-menu-item.menu-item-variant-destructive:not(.menu-item-disabled) .menu-item-check {
  color: var(--mi-destructive-text);
}

.qdnapro-menu-item .menu-item-activity-icon {
  flex-shrink: 0;
  margin-right: -8px;
}

.qdnapro-menu-item.menu-item-disabled .menu-item-activity-icon {
  opacity: 0.3;
}

.qdnapro-menu-item .menu-item-circle {
  flex-shrink: 0;
  margin-right: -4px;
}

.qdnapro-menu-item.menu-item-with-circle .menu-item-label {
  margin-left: 0;
}

.qdnapro-menu-item.menu-item-with-checkbox.menu-item-size-default {
  padding: 8px 4px;
}

.qdnapro-menu-item.menu-item-with-checkbox.menu-item-size-small {
  padding: 4px;
}

.qdnapro-menu-item.menu-item-with-checkbox .menu-item-checkbox-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 0 4px;
  pointer-events: none;
}

.qdnapro-menu-item.menu-item-with-checkbox .menu-item-checkbox {
  pointer-events: none;
}

.qdnapro-menu-item.menu-item-with-avatar.menu-item-size-default {
  padding: 8px 4px;
}

.qdnapro-menu-item.menu-item-with-avatar.menu-item-size-small {
  padding: 4px;
  /* Small + avatar (e.g. a user-picker qdnapro-select): the default 12px row
     gap plus the avatar-wrap side padding left the radio, avatar and label too
     far apart. Tighten so avatar + label read as one unit. [Kim 2026-07-20] */
  gap: 6px;
}

.qdnapro-menu-item.menu-item-with-avatar.menu-item-size-small .menu-item-avatar-wrap {
  padding: 0 1px;
}

.qdnapro-menu-item.menu-item-with-avatar .menu-item-avatar-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 0 4px;
  pointer-events: none;
}

.qdnapro-menu-item.menu-item-with-avatar .menu-item-avatar {
  pointer-events: none;
}

.qdnapro-menu-item.menu-item-with-avatar.menu-item-disabled .menu-item-avatar-wrap {
  opacity: 0.4;
}

.qdnapro-menu-item.menu-item-with-radio.menu-item-size-default {
  padding: 8px 4px;
}

.qdnapro-menu-item.menu-item-with-radio.menu-item-size-small {
  padding: 4px;
}

.qdnapro-menu-item.menu-item-with-radio .menu-item-radio-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 0 4px;
  pointer-events: none;
}

.qdnapro-menu-item.menu-item-with-radio .menu-item-radio {
  pointer-events: none;
}

.qdnapro-menu-item.menu-item-color-action {
  --mi-text: #ffffff;
  --mi-text-muted: rgba(255, 255, 255, 0.7);
  --mi-icon: #ffffff;
  --mi-bg-hover: rgba(255, 255, 255, 0.08);
  --mi-bg-pressed: rgba(255, 255, 255, 0.22);
  --mi-bg-selected: rgba(255, 255, 255, 0.16);
  --mi-disabled-text: var(--c-text-disabled-pp);
  --mi-destructive-text: var(--c-warn-red-300);
  --mi-destructive-bg-hover: rgba(255, 155, 155, 0.18);
  --mi-focus-ring: #ffffff;
  --mi-focus-glow: rgba(255, 255, 255, 0.25);
}

.qdnapro-menu-item.menu-item-color-action .menu-item-badge {
  background: rgba(255, 255, 255, 0.22);
  color: var(--c-text-on-action);
}

[data-theme=dark] .qdnapro-menu-item {
  --mi-text: #e1e3e6;
  --mi-text-muted: rgba(225, 227, 230, 0.6);
  --mi-icon: #e1e3e6;
  --mi-bg-hover: rgba(255, 255, 255, 0.06);
  --mi-bg-pressed: rgba(255, 255, 255, 0.14);
  --mi-bg-selected: rgba(255, 255, 255, 0.10);
  --mi-disabled-text: #6b7280;
  --mi-destructive-text: #ff9b9b;
  --mi-destructive-bg-hover: rgba(255, 155, 155, 0.14);
  --mi-focus-ring: #a5acff;
  --mi-focus-glow: rgba(70, 82, 243, 0.4);
}

[data-theme=dark] .qdnapro-menu-item .menu-item-badge {
  background: rgba(255, 255, 255, 0.14);
  color: var(--mi-text);
}

[data-theme=dark] .qdnapro-menu-item.menu-item-color-action {
  --mi-bg-hover: rgba(255, 255, 255, 0.10);
  --mi-bg-pressed: rgba(255, 255, 255, 0.24);
  --mi-bg-selected: rgba(255, 255, 255, 0.18);
}

/* === description variant — label + sub-text (Figma 9794:243715) === */
.qdnapro-menu-item {
  --mi-description-text: var(--c-grey-500);
}

[data-theme=dark] .qdnapro-menu-item {
  --mi-description-text: #898e99;
}

.qdnapro-menu-item.menu-item-color-action {
  --mi-description-text: rgba(255, 255, 255, 0.7);
}

.qdnapro-menu-item .menu-item-label-group {
  flex: 1 0 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.qdnapro-menu-item .menu-item-label-group .menu-item-label {
  flex: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-menu-item .menu-item-description {
  font-size: 10px;
  line-height: 14px;
  color: var(--mi-description-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 400;
}

.qdnapro-menu-item.menu-item-disabled .menu-item-description {
  color: var(--mi-disabled-text);
}

/* === END description variant CSS === */
/* === Mandatory marker (red asterisk before the label) — matches the unit-card
   mandatory convention (var(--c-favorite-heart)). Prefixed inside .menu-item-label so it stays
   glued to the name and clips together with it. [Kim 2026-07-15] === */
.qdnapro-menu-item .menu-item-label .menu-item-mandatory-mark {
  color: var(--c-favorite-heart);
  font-weight: 700;
  margin-right: 3px;
}

/* Status circle-color values (planner status filter, 16.07.2026) used to be
   painted here via a menu-item-scoped override class (.menu-item-circle-
   status-*) instead of label-circle's own `color` attribute, because those
   4 names didn't exist in qdnapro-label-circle's VALID_COLORS. That override
   never actually worked: label-circle's own render() unconditionally
   rewrites its className on every re-render (see qdna-label-circle.js), so
   the override class was wiped the instant the circle connected to the DOM
   — every status dot rendered grey/empty (Kim's live test, 16.07.2026).
   Fixed at the real cause: the 4 status-* names are now first-class colors
   on qdnapro-label-circle itself (see _label-circle.scss) and passed
   through as a normal `color` attribute from qdna-menu-item.js — nothing
   menu-item-scoped left to override here. */
qdnapro-modal:not(:defined) {
  display: none;
}

/* ============================================================
   qdnapro-modal compiled CSS
   Extracted from qdna-modal-preview.html so the bundle can ship
   modal styling to any v1/v2 page (Kim 2026-05-29).
   Two-layer card: outer GREY frame around inner WHITE window.
   ============================================================ */
.qdnapro-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9000;
  pointer-events: none;
}

.qdnapro-modal.modal-open {
  display: flex;
  pointer-events: auto;
}

/* Bootstrap (globally loaded in v1) defines .modal-dialog with
   `pointer-events: none` (and .modal-content with `auto` to re-enable
   inside). Our v2 modal reuses the .modal-dialog / .modal-window
   class names, so Bootstrap's rule makes clicks fall through to the
   backdrop = modal closes on every interaction.
   Re-enable interaction explicitly when the v2 modal is open. */
.qdnapro-modal.modal-open .modal-dialog,
.qdnapro-modal.modal-open .modal-window {
  pointer-events: auto;
}

/* Bootstrap also adds visual borders on .modal-header (border-bottom)
   and .modal-footer (border-top). Our v2 design uses padding-based
   separation, not border-keylines. Zero them out so the cascade
   from Bootstrap can't draw stray lines. */
.qdnapro-modal .modal-header {
  border-bottom: 0 !important;
}

.qdnapro-modal .modal-footer {
  border-top: 0 !important;
}

/* Bootstrap also injects sibling-margins on modal-footer children
   (.modal-footer > :not(:first-child) { margin-left: 0.25rem }, and
   :not(:last-child) { margin-right: 0.25rem }). On a 2-button footer
   that adds 8px extra to our `gap: 16px` → visual gap becomes 24px
   (= 48 device-px on retina). Zero the sibling-margins so the
   declared gap is the actual gap. */
.qdnapro-modal .modal-footer > * {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* ── GEEN counter-zoom (meer) — verwijderd 2026-08-03, en dit is de uitleg ──────────────────
   Hier stond `.qdnapro-modal, .qdnapro-select-popover { zoom: 1.25 }`, om de legacy
   `body { zoom: 0.8 }` van de oude backoffice te compenseren: 0.8 × 1.25 = 1.0, zodat een
   position-fixed kind (de modal en de select-popover hangen beide aan <body>) op de juiste plek
   landde in plaats van op 0.8 × de plek.

   Die 0.8 bereikt een v1-pagina niet meer. Hij staat alleen nog in `web/css/style.css` (als
   `body { zoom: 72% }`), en die stylesheet wordt uitsluitend geladen door de LEGACY headers
   (`View/components/header.html`, `View/NewDesign/components/header.html`) — en die laden géén
   `style-v1.css` en géén `components.js`, dus daar bestaat geen v2-modal om te schalen. Gemeten
   op een v1-pagina: `getComputedStyle(document.body).zoom` = 1.

   Het gevolg was een knoop: de 1.25 had niets te compenseren, dus élke moderne pagina zette hem
   weer uit — en één van die neutralisaties (in `partials/_inbox.scss`) was NIET pagina-gescoopt
   en deed het dus app-breed. Netto stond alles op 1, maar via twee regels die elkaar opheffen.
   ⚠️ Zet hem niet terug "voor de zekerheid": dan wordt élk venster 25% te groot op elke pagina
      die geen eigen neutralisatie heeft. Komt de legacy body-zoom ooit terug op een pagina die
      wél v2-componenten laadt, dan hoort de correctie PAGINA-gescoopt bij die pagina te staan.
   ⓘ Er staat nog een dode `zoom: 1` in `projects-v2.html`, `home-v2.html` en `floweditor.html`.
     Die doen niets meer (1 op iets dat al 1 is) en mogen weg zodra iemand die pagina's aanraakt. */
.qdnapro-modal .modal-backdrop {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(11, 11, 13, 0.45);
  animation: qdnapro-modal-backdrop-in 160ms ease-out;
}

/* OUTER GREY CARD */
.qdnapro-modal .modal-dialog {
  background: var(--c-grey-50);
  border: 0.5px solid #ffffff;
  border-radius: 16px;
  padding: 8px;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.3), 0 8px 12px 6px rgba(0, 0, 0, 0.15);
  display: flex;
  width: 100%;
  max-width: 560px;
  max-height: calc(100vh - 48px);
  animation: qdnapro-modal-dialog-in 200ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.qdnapro-modal.modal-size-small .modal-dialog {
  max-width: 400px;
}

.qdnapro-modal.modal-size-medium .modal-dialog {
  max-width: 560px;
}

.qdnapro-modal.modal-size-large .modal-dialog {
  max-width: 800px;
}

.qdnapro-modal.modal-size-xlarge .modal-dialog {
  max-width: 1000px;
}

.qdnapro-modal.modal-size-xxlarge .modal-dialog {
  max-width: 1100px;
}

/* Layout: with-info - left side info-panel */
.qdnapro-modal.modal-layout-with-info .modal-dialog {
  gap: 8px;
}

.qdnapro-modal .modal-info {
  /* 280px blijft de default; `info-width="N"` op de modal zet --modal-info-w en
     maakt het paneel smaller zonder deze regel te overschrijven. [Kim 05.08.2026] */
  flex: 0 0 var(--modal-info-w, 280px);
  min-width: 0;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  font-family: "Inter", sans-serif;
  font-size: 14px;
  line-height: 22px;
  color: var(--c-grey-950);
  position: relative;
  overflow: visible;
  z-index: 0;
}

.qdnapro-modal .modal-info qdnapro-icon,
.qdnapro-modal .modal-info > .modal-info-icon {
  color: var(--c-purple-500);
  width: 24px;
  height: 24px;
}

.qdnapro-modal .qdnapro-modal-info-title {
  margin: 0;
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
  color: var(--c-purple-500);
}

.qdnapro-modal .qdnapro-modal-info-illustration {
  margin-top: auto;
  margin-left: -16px;
  margin-right: -16px;
  align-self: stretch;
  pointer-events: none;
  min-height: 160px;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
}

.qdnapro-modal .qdnapro-modal-info-illustration qdnapro-illustration,
.qdnapro-modal .qdnapro-modal-info-illustration img,
.qdnapro-modal .qdnapro-modal-info-illustration svg {
  display: block;
  max-width: 100%;
  height: auto;
}

/* The illustration must never draw OVER its own info text. [Jan 27.07.2026]
   Why it could: the info column is a fixed-height flex column, and the artwork is
   sized by aspect-ratio from a fixed 240px WIDTH — several illustrations are portrait
   (share = 884px tall at width 240, idea 610, tool 556, hands-check 509), so as soon as
   the icon+title+text no longer left that much room the flex algorithm shrank this BOX
   while the artwork inside kept its height, and `align-items: flex-end` then pushed the
   overflow UPWARDS across the text. It is viewport-height dependent (the dialog is
   `min(800px, 100vh - 48px)`), so the same modal was fine on a big screen and unreadable
   on a laptop — measured on a 720px-tall viewport: hands-check covered 55px of text at
   221 characters, share covered 430px (title included).
   Fix: let the artwork scale down into whatever height the box gets, staying bottom-left
   anchored, and clip as a last resort. `object-fit: contain` keeps the aspect ratio, so
   when there IS room the painted pixels are byte-identical to before (verified by
   pixel-diff over 9 fitting cases). */
.qdnapro-modal .qdnapro-modal-info-illustration {
  overflow: hidden;
}

.qdnapro-modal .qdnapro-modal-info-illustration qdnapro-illustration {
  align-self: stretch; /* host height := the (possibly shrunk) box height */
  min-height: 0; /* ...and let it shrink at all */
}

.qdnapro-modal .qdnapro-modal-info-illustration qdnapro-illustration img,
.qdnapro-modal .qdnapro-modal-info-illustration qdnapro-illustration svg {
  height: 100%;
  object-fit: contain;
  object-position: left bottom;
}

/* Horizontaal gecentreerde tekening (04.08.2026, Kim — de modal "Gekoppelde
   documenten"). Linksonder blijft de standaard: de meeste illustraties hier zijn
   breed en lopen bewust de hoek in. Een KLEINERE tekening (size 160 i.p.v. 240)
   staat daar juist scheef in het paneel, en dan is midden beter. Aparte modifier
   en geen paginaregel, zodat elke modal dezelfde keuze kan maken.
   Twee dingen nodig: de flexbox-uitlijning van de doos, en de object-position van
   het plaatje zelf (dat wordt door de regel hierboven linksonder gezet, en die
   heeft dezelfde specificiteit, dus hij moet expliciet mee). Verticaal blijft
   alles onderaan hangen. */
.qdnapro-modal .qdnapro-modal-info-illustration--center {
  justify-content: center;
}

.qdnapro-modal .qdnapro-modal-info-illustration--center qdnapro-illustration img,
.qdnapro-modal .qdnapro-modal-info-illustration--center qdnapro-illustration svg {
  object-position: center bottom;
}

/* Body utility classes */
.qdnapro-modal .qdnapro-modal-section-title {
  margin: 0;
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
  color: var(--c-purple-500);
}

.qdnapro-modal .qdnapro-modal-section-sub {
  margin: 0 0 8px;
  font-size: 14px;
  line-height: 22px;
  color: var(--c-purple-500);
  font-weight: 500;
}

.qdnapro-modal .qdnapro-modal-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.qdnapro-modal .qdnapro-modal-error-banner {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
  font-size: 13px;
  line-height: 20px;
  font-weight: 500;
  color: var(--c-signal-red-text);
}

.qdnapro-modal .qdnapro-modal-error-banner qdnapro-icon {
  color: inherit;
  flex-shrink: 0;
}

.qdnapro-modal .qdnapro-modal-info-head {
  display: flex;
  align-items: center;
  gap: 8px;
}

.qdnapro-modal .qdnapro-modal-info-head .qdnapro-modal-info-title {
  margin: 0;
}

.qdnapro-modal .qdnapro-modal-toggle-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 4px 0;
}

.qdnapro-modal .qdnapro-modal-toggle-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.qdnapro-modal .qdnapro-modal-toggle-label {
  font-size: 14px;
  line-height: 20px;
  font-weight: 600;
  color: var(--c-grey-950);
}

.qdnapro-modal .qdnapro-modal-toggle-sub {
  font-size: 12px;
  line-height: 16px;
  color: var(--c-grey-500);
  font-weight: 400;
}

.qdnapro-modal .qdnapro-modal-toggle-warn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  line-height: 16px;
  font-weight: 500;
  color: var(--c-signal-red-text);
  margin-top: 2px;
}

.qdnapro-modal .qdnapro-modal-divider {
  border: none;
  border-top: 1px solid var(--c-border-card);
  margin: 16px 0 12px;
}

/* INNER WHITE CARD */
.qdnapro-modal .modal-window {
  background: var(--c-bg-card);
  border: 0.5px solid var(--c-grey-300);
  border-radius: 12px;
  padding: 16px 16px 12px;
  flex: 1 1 auto;
  min-width: 0;
  max-height: 100%;
  display: flex;
  flex-direction: column;
  gap: 10px;
  overflow: visible;
  position: relative;
  z-index: 1;
}

/* Fixed height + internal scroll for big modals */
.qdnapro-modal.modal-layout-with-info .modal-dialog,
.qdnapro-modal.modal-size-large .modal-dialog,
.qdnapro-modal.modal-size-xlarge .modal-dialog,
.qdnapro-modal.modal-size-xxlarge .modal-dialog {
  height: min(800px, 100vh - 48px);
}

.qdnapro-modal.modal-layout-with-info .modal-window,
.qdnapro-modal.modal-size-large .modal-window,
.qdnapro-modal.modal-size-xlarge .modal-window,
.qdnapro-modal.modal-size-xxlarge .modal-window {
  height: 100%;
}

.qdnapro-modal.modal-layout-with-info .modal-header,
.qdnapro-modal.modal-layout-with-info .modal-footer,
.qdnapro-modal.modal-size-large .modal-header,
.qdnapro-modal.modal-size-large .modal-footer,
.qdnapro-modal.modal-size-xlarge .modal-header,
.qdnapro-modal.modal-size-xlarge .modal-footer,
.qdnapro-modal.modal-size-xxlarge .modal-header,
.qdnapro-modal.modal-size-xxlarge .modal-footer {
  flex-shrink: 0;
}

.qdnapro-modal.modal-layout-with-info .modal-body,
.qdnapro-modal.modal-size-large .modal-body,
.qdnapro-modal.modal-size-xlarge .modal-body,
.qdnapro-modal.modal-size-xxlarge .modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  /* The scroll container clips focus rings (overflow-y:auto coerces overflow-x to
     clip), so a field flush against the top edge loses its ring "under the header".
     4px breathing room clears the 3px focus box-shadow on all sides; scroll-padding
     keeps a tabbed-to field from tucking under the top edge. [Kim 22.06.2026] */
  padding: 4px;
  scroll-padding-top: 8px;
}

/* Scrollable modifier — any size modal with tall content.
   NOTE: the class is `qdnapro-modal-scrollable`, NOT `modal-scrollable`.
   qdna-modal.js connectedCallback strips every class starting with
   `modal-` from _originalClasses, so a `modal-*` modifier would not
   survive _render(). The `qdnapro-` prefix passes that filter. */
.qdnapro-modal.qdnapro-modal-scrollable .modal-dialog {
  overflow: hidden;
}

.qdnapro-modal.qdnapro-modal-scrollable .modal-window {
  overflow: hidden;
}

.qdnapro-modal.qdnapro-modal-scrollable .modal-header,
.qdnapro-modal.qdnapro-modal-scrollable .modal-footer {
  flex-shrink: 0;
}

.qdnapro-modal.qdnapro-modal-scrollable .modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}

/* Import-options modal: fit content instead of the fixed 800px the large/with-info
   frame forces (it was absurdly tall for a short paste box / upload card). Caps +
   scrolls only if content ever exceeds it. [Kim 22.06.2026] */
.qdnapro-modal.fe-import-modal.modal-size-large .modal-dialog,
.qdnapro-modal.fe-import-modal.modal-layout-with-info .modal-dialog {
  height: auto;
  max-height: min(800px, 100vh - 48px);
}

.qdnapro-modal.fe-import-modal.modal-size-large .modal-window,
.qdnapro-modal.fe-import-modal.modal-layout-with-info .modal-window {
  height: auto;
}

/* Center the (portrait) illustration in the info panel instead of the default
   bottom-LEFT corner-anchor. Scoped so corner-anchored illustrations in other
   modals keep their layout. [Kim 22.06.2026] */
.qdnapro-modal.fe-import-modal .qdnapro-modal-info-illustration {
  justify-content: center;
}

/* Floweditor confirm dialog (plugins/confirm/Box.vue, PLAN-alert-component.md
   TRACK 2, Kim 09.07.2026): needs to stack above BOTH the floweditor's own
   NodeOptions wizard modal (~9000-9100) and its dropdown/popover layer
   (.fe-add-datapoint-dropdown etc., 9200) — 9300 is the floweditor's
   established "always on top" tier (see .fe-conn-tip). Scoped to this class
   only so every other qdnapro-modal keeps the default 9000. */
.qdnapro-modal.fe-confirm-modal {
  z-index: 9300;
}

/* "Vraag toevoegen" type-picker (FormCardQuestions.vue, PLAN-form-card-
   redesign.md fase 4 delivery 4): opened FROM WITHIN the same NodeOptions
   wizard modal (~9000-9100) this tab lives in, so it needs the exact same
   "always on top" tier as .fe-confirm-modal above, for the exact same
   reason. Scoped to this class only. */
.qdnapro-modal.fe-typepicker-modal {
  z-index: 9300;
}

/* Briefing bij een vraag (View/v1/modals/briefing-editor.html, gedeeld met de
   activiteitenpagina). Op de flow editor gaat hij open vanuit het NodeOptions-
   wizardmodal (~9000-9100) en soms vanaf het canvas eronder, dus dezelfde
   "altijd bovenop"-laag als de twee hierboven. Alleen op deze klasse, die de
   flow editor via de include meegeeft: op de activiteitenpagina staat er niks
   boven en houdt het modal de standaard 9000. [Kim 03.08.2026] */
.qdnapro-modal.fe-briefing-modal {
  z-index: 9300;
}

.qdnapro-modal ::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

.qdnapro-modal ::-webkit-scrollbar-track {
  background: transparent;
}

.qdnapro-modal ::-webkit-scrollbar-corner {
  background: transparent;
}

.qdnapro-modal ::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 6px;
  transition: background 160ms ease;
}

.qdnapro-modal *:hover::-webkit-scrollbar-thumb,
.qdnapro-modal *:focus-within::-webkit-scrollbar-thumb {
  background: rgba(64, 73, 154, 0.22);
}

.qdnapro-modal ::-webkit-scrollbar-thumb:hover {
  background: rgba(64, 73, 154, 0.38);
}

.qdnapro-modal {
  scrollbar-width: thin;
}

.qdnapro-modal *:hover, .qdnapro-modal *:focus-within {
  scrollbar-color: rgba(64, 73, 154, 0.3) transparent;
}

.qdnapro-modal .modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 0 0 12px;
}

.qdnapro-modal .modal-title {
  margin: 0;
  flex: 1 1 auto;
  font-family: "Inter", sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
  color: var(--c-purple-500);
}

.qdnapro-modal .modal-close {
  flex-shrink: 0;
}

.qdnapro-modal .modal-body {
  padding: 0 4px 8px 4px;
  overflow: visible;
  font-family: "Inter", sans-serif;
  font-size: 14px;
  line-height: 24px;
  color: var(--c-grey-950);
}

.qdnapro-modal .modal-body > * + * {
  margin-top: 8px;
}

.qdnapro-modal .qdnapro-modal-label {
  display: block;
  font-weight: 500;
  font-size: 14px;
  line-height: 24px;
  color: var(--c-grey-950);
}

.qdnapro-modal .modal-footer {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  gap: 16px;
  padding: 0;
}

/* secondary-label (e.g. "Delete") pins a button to the footer's LEFT
   edge — Kim 17.07.2026: destructive actions in planner dialogs belong
   in the footer, not floating in the body. space-between pushes it away
   from the cancel/confirm cluster; the cluster itself keeps its own
   `gap: 16px` via .modal-footer-right so cancel/confirm stay together
   regardless of how much room space-between opens up on a wide modal. */
.qdnapro-modal .modal-footer.modal-footer-has-secondary {
  justify-content: space-between;
}

.qdnapro-modal .modal-footer-right {
  display: flex;
  align-items: flex-end;
  gap: 16px;
}

/* Dark theme */
[data-theme=dark] .qdnapro-modal .modal-backdrop {
  background: rgba(0, 0, 0, 0.65);
}

[data-theme=dark] .qdnapro-modal .modal-dialog {
  background: #2e3036;
  border-color: rgba(255, 255, 255, 0.08);
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.5), 0 8px 12px 6px rgba(0, 0, 0, 0.3);
}

[data-theme=dark] .qdnapro-modal .modal-window {
  background: #363940;
  border-color: #565b66;
}

[data-theme=dark] .qdnapro-modal .modal-title {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-modal .modal-body {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-modal .qdnapro-modal-label {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-modal .modal-info {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-modal .modal-info qdnapro-icon,
[data-theme=dark] .qdnapro-modal .modal-info > .modal-info-icon {
  color: #a5acff;
}

[data-theme=dark] .qdnapro-modal .qdnapro-modal-info-title {
  color: #a5acff;
}

[data-theme=dark] .qdnapro-modal .qdnapro-modal-section-title {
  color: #a5acff;
}

[data-theme=dark] .qdnapro-modal .qdnapro-modal-section-sub {
  color: #a5acff;
}

[data-theme=dark] .qdnapro-modal .qdnapro-modal-error-banner {
  color: #ef6b6b;
}

[data-theme=dark] .qdnapro-modal .qdnapro-modal-toggle-label {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-modal .qdnapro-modal-toggle-sub {
  color: #b8bcc4;
}

[data-theme=dark] .qdnapro-modal .qdnapro-modal-toggle-warn {
  color: #ef6b6b;
}

[data-theme=dark] .qdnapro-modal .qdnapro-modal-divider {
  border-top-color: #40444d;
}

@keyframes qdnapro-modal-backdrop-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes qdnapro-modal-dialog-in {
  from {
    opacity: 0;
    transform: translateY(8px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-modal .modal-backdrop, .qdnapro-modal .modal-dialog {
    animation: none;
  }
}
/* === BEGIN QDNA-NAV-ITEM CSS === */
.qdnapro-nav-item {
  box-sizing: border-box;
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 40px;
  padding: 8px 12px 8px 8px;
  border-radius: 8px;
  background: transparent;
  color: var(--c-nav-icon);
  text-decoration: none;
  cursor: pointer;
  user-select: none;
  font-family: "Inter", sans-serif;
  transition: background-color 120ms ease-out, color 120ms ease-out, transform 80ms ease-out, width 450ms cubic-bezier(0.22, 1, 0.36, 1), padding 450ms cubic-bezier(0.22, 1, 0.36, 1), gap 450ms cubic-bezier(0.22, 1, 0.36, 1);
}

.qdnapro-nav-item *,
.qdnapro-nav-item *::before,
.qdnapro-nav-item *::after {
  box-sizing: border-box;
}

.qdnapro-nav-item .nav-item-icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: inherit;
  position: relative;
  z-index: 1;
}

.qdnapro-nav-item .nav-item-icon svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.qdnapro-nav-item .nav-item-label {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  color: var(--c-nav-label);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  opacity: 1;
  transform: translateX(0);
  max-width: 200px;
  transition: color 120ms ease-out, font-weight 120ms ease-out, opacity 280ms cubic-bezier(0.22, 1, 0.36, 1), max-width 450ms cubic-bezier(0.22, 1, 0.36, 1), transform 280ms cubic-bezier(0.22, 1, 0.36, 1);
}

.qdnapro-nav-item .nav-item-badge {
  position: absolute;
  z-index: 2;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 9px;
  background: var(--c-nav-badge-bg);
  color: var(--c-nav-badge-text);
  font-size: 11px;
  font-weight: 600;
  line-height: 18px;
  text-align: center;
  font-variant-numeric: tabular-nums;
  pointer-events: none;
  transition: right 450ms cubic-bezier(0.22, 1, 0.36, 1), top 450ms cubic-bezier(0.22, 1, 0.36, 1), transform 450ms cubic-bezier(0.22, 1, 0.36, 1);
}

.qdnapro-nav-item .nav-item-badge--dot {
  min-width: 8px;
  width: 8px;
  height: 8px;
  padding: 0;
  border-radius: 50%;
}

.qdnapro-nav-item:hover:not(.nav-item-disabled):not(.nav-item-active) {
  background: var(--c-nav-hover-bg);
  color: var(--c-nav-icon-hover);
}

.qdnapro-nav-item:hover:not(.nav-item-disabled):not(.nav-item-active) .nav-item-label {
  color: var(--c-nav-label-hover);
}

.qdnapro-nav-item.nav-item-active {
  background: var(--c-nav-active-bg);
  color: var(--c-nav-icon-active);
}

.qdnapro-nav-item.nav-item-active .nav-item-label {
  color: var(--c-nav-label-active);
  font-weight: 600;
}

.qdnapro-nav-item.nav-item-active:hover:not(.nav-item-disabled)::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: rgba(0, 0, 0, 0.06);
  pointer-events: none;
}

.qdnapro-nav-item:active:not(.nav-item-disabled) {
  transform: scale(0.97);
}

.qdnapro-nav-item:focus {
  outline: none;
}

.qdnapro-nav-item:focus-visible,
.qdnapro-nav-item.force-focus {
  box-shadow: inset 0 0 0 2px var(--focus-ring);
}

.qdnapro-nav-item.nav-item-disabled {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-nav-item[data-nav-mode=collapsed] {
  gap: 0;
  padding: 8px;
  width: 40px;
  height: 40px;
  min-height: 40px;
  align-self: flex-start;
  justify-content: flex-start;
}

.qdnapro-nav-item[data-nav-mode=collapsed] .nav-item-label {
  opacity: 0;
  transform: translateX(-16px);
  max-width: 0;
}

.qdnapro-nav-item[data-nav-mode=collapsed] .nav-item-badge {
  top: 3px;
  right: 4px;
  transform: translateY(0) scale(0.85);
  transform-origin: top right;
}

/* === END QDNA-NAV-ITEM CSS === */
/* === BEGIN QDNA-NAV-RAIL CSS === */
.qdnapro-nav-rail {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  background: var(--c-nav-bg);
  color: var(--c-nav-icon);
  font-family: "Inter", sans-serif;
  user-select: none;
  transition: width 450ms cubic-bezier(0.22, 1, 0.36, 1);
}

.qdnapro-nav-rail *,
.qdnapro-nav-rail *::before,
.qdnapro-nav-rail *::after {
  box-sizing: border-box;
}

.qdnapro-nav-rail[data-mode=expanded] {
  width: 208px;
}

.qdnapro-nav-rail[data-mode=collapsed] {
  width: 84px;
}

.qdnapro-nav-rail .nav-rail-header {
  flex-shrink: 0;
  height: 56px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 16px;
  position: relative;
}

.qdnapro-nav-rail[data-mode=collapsed] .nav-rail-header {
  padding: 0 6px 0 16px;
}

/* Split logo (Jan 2026-06-17): Q = anchor (never moves/re-renders); DNA = the
   letters, which slide down + fade on collapse and reverse on expand.
   Both .nav-rail-logo-q and .nav-rail-logo-dna are inline SVGs that share the
   ORIGINAL wordmark viewBox (180 180 980 420) and are overlaid at the same size
   (70×30 = 30·980/420), so the Q and DNA sit in the exact relative position +
   scale of the real combined logo — no guessed offsets. The container clips to
   the Q's width when collapsed; the DNA group additionally fades + drops. */
.qdnapro-nav-rail .nav-rail-logo {
  position: relative;
  height: 30px;
  overflow: hidden;
  flex-shrink: 0;
  color: var(--c-nav-icon);
  text-decoration: none;
  transition: width 450ms cubic-bezier(0.22, 1, 0.36, 1);
}

.qdnapro-nav-rail .nav-rail-logo-q,
.qdnapro-nav-rail .nav-rail-logo-dna {
  position: absolute;
  left: 0;
  top: 0;
  width: 70px;
  height: 30px;
  pointer-events: none;
}

.qdnapro-nav-rail .nav-rail-logo-q svg,
.qdnapro-nav-rail .nav-rail-logo-dna svg {
  width: 70px;
  height: 30px;
  fill: currentColor;
  display: block;
}

.qdnapro-nav-rail .nav-rail-logo-q {
  z-index: 1;
}

.qdnapro-nav-rail .nav-rail-logo-dna {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 280ms cubic-bezier(0.22, 1, 0.36, 1), transform 450ms cubic-bezier(0.22, 1, 0.36, 1);
}

.qdnapro-nav-rail[data-mode=expanded] .nav-rail-logo {
  width: 70px;
}

.qdnapro-nav-rail[data-mode=collapsed] .nav-rail-logo {
  width: 34px;
}

.qdnapro-nav-rail[data-mode=collapsed] .nav-rail-logo-dna {
  opacity: 0;
  transform: translateX(-20px);
}

.qdnapro-nav-rail .nav-rail-toggle {
  margin-left: auto;
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: transparent;
  color: var(--c-nav-icon);
  border-radius: 6px;
  cursor: pointer;
  flex-shrink: 0;
  transition: background-color 120ms ease-out, color 120ms ease-out;
}

.qdnapro-nav-rail .nav-rail-toggle:hover {
  background: var(--c-nav-hover-bg);
  color: var(--c-nav-icon-hover);
}

.qdnapro-nav-rail .nav-rail-toggle:focus {
  outline: none;
}

.qdnapro-nav-rail .nav-rail-toggle:focus-visible {
  box-shadow: 0 0 0 2px var(--focus-ring), 0 0 0 5px var(--focus-glow);
}

.qdnapro-nav-rail .nav-rail-toggle svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 620ms cubic-bezier(0.22, 1, 0.36, 1);
}

.qdnapro-nav-rail[data-mode=collapsed] .nav-rail-toggle svg {
  transform: rotate(180deg);
}

.qdnapro-nav-rail .nav-rail-header-divider {
  flex-shrink: 0;
  height: 1px;
  background: var(--c-nav-divider);
  margin: 0 16px;
}

.qdnapro-nav-rail[data-mode=collapsed] .nav-rail-header-divider {
  margin: 0 12px;
}

.qdnapro-nav-rail .nav-rail-items {
  flex: 1 1 auto;
  min-height: 0;
  overflow: visible;
  padding: 12px 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.qdnapro-nav-rail[data-mode=collapsed] .nav-rail-items {
  padding: 12px 12px;
  align-items: flex-start;
}

.qdnapro-nav-rail .nav-rail-bottom {
  flex-shrink: 0;
  padding: 8px 12px 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  border-top: 1px solid var(--c-nav-divider);
}

.qdnapro-nav-rail[data-mode=collapsed] .nav-rail-bottom {
  align-items: flex-start;
}

/* The version + build footer (.nav-rail-version, a slot="bottom" button that
   opened the About QDNA Pro splash) is REMOVED per 2026-07-31: that entry now
   lives in the profile dropdown as "Over QDNA Pro" (View/v1/base.html). The
   .nav-rail-bottom rules above stay — they are generic for any slot="bottom"
   child, not tied to the version block. */
/* Default surface tokens (navy palette) */
.qdnapro-nav-rail {
  --c-nav-bg: var(--c-sidebar-bg);
  --c-nav-divider: rgba(255, 255, 255, 0.10);
  --c-nav-hover-bg: rgba(255, 255, 255, 0.08);
  --c-nav-active-bg: rgba(255, 255, 255, 0.16);
  --c-nav-icon: var(--c-sidebar-icon);
  --c-nav-icon-hover: #ffffff;
  --c-nav-icon-active: #ffffff;
  --c-nav-label: var(--c-sidebar-icon);
  --c-nav-label-hover: #ffffff;
  --c-nav-label-active: #ffffff;
  --c-nav-badge-bg: var(--c-warn-red-500);
  --c-nav-badge-text: #ffffff;
}

/* Page-level dark mode: rail becomes Grey/800.
   Active state mirrors activity row-btn active (saturated brand-purple
   tint with light-purple icon/label) for visual continuity.
   [Kim 2026-05-19] */
[data-theme-dark] .qdnapro-nav-rail,
[data-theme=dark] .qdnapro-nav-rail,
body[data-theme=dark] .qdnapro-nav-rail {
  --c-nav-bg: var(--c-grey-800);
  --c-nav-divider: rgba(255, 255, 255, 0.08);
  --c-nav-hover-bg: rgba(255, 255, 255, 0.06);
  --c-nav-active-bg: rgba(70, 82, 243, 0.20);
  --c-nav-icon: var(--c-grey-300);
  --c-nav-icon-hover: #ffffff;
  --c-nav-icon-active: #a5acff;
  --c-nav-label: var(--c-grey-300);
  --c-nav-label-hover: #ffffff;
  --c-nav-label-active: #a5acff;
}

/* Forced light theme via attribute on the rail itself. */
.qdnapro-nav-rail[data-theme=light] {
  --c-nav-bg: #ffffff;
  --c-nav-divider: rgba(0, 0, 0, 0.08);
  --c-nav-hover-bg: var(--c-purple-50);
  --c-nav-active-bg: var(--c-bg-secondary-purple);
  --c-nav-icon: var(--c-text-muted);
  --c-nav-icon-hover: var(--c-brand-purple);
  --c-nav-icon-active: var(--c-brand-purple);
  --c-nav-label: var(--c-text-body);
  --c-nav-label-hover: var(--c-brand-purple);
  --c-nav-label-active: var(--c-brand-purple);
}

/* === END QDNA-NAV-RAIL CSS === */
@property --qnp-beam-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}
.qdnapro-node-picker {
  --np-rail-bg: var(--c-sidebar-bg);
  --np-rail-icon: var(--c-sidebar-icon);
  --np-rail-icon-hover: #ffffff;
  --np-rail-active-bg: rgba(255, 255, 255, 0.16);
  --np-rail-hover-bg: rgba(255, 255, 255, 0.08);
  --np-rail-label: var(--c-sidebar-icon);
  --np-rail-label-hover: #ffffff;
  --np-panel-bg: #ffffff;
  --np-panel-border: var(--c-border-soft-2);
  --np-panel-shadow: 0 18px 40px rgba(38, 42, 92, 0.16);
  --np-subhead: var(--c-text-disabled-pp);
  --np-node-text: var(--c-sidebar-bg);
  --np-node-hover-bg: var(--c-bg-subtle-purple);
  --np-node-icon: var(--c-purple-400);
  --np-rail-w: 56px;
  --np-panel-w: 208px;
  --np-cat-size: 36px;
  display: flex;
  align-items: stretch;
  height: 100%;
  min-height: 0;
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  position: relative;
}

.qdnapro-node-picker *,
.qdnapro-node-picker *::before,
.qdnapro-node-picker *::after {
  box-sizing: border-box;
}

.qdnapro-node-picker__rail {
  flex: 0 0 auto;
  width: var(--np-rail-w);
  background: var(--np-rail-bg);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 8px 0 10px;
  overflow-y: auto;
  z-index: 2;
  position: relative;
}

.qdnapro-node-picker__rail-pill {
  position: absolute;
  top: 0;
  left: 50%;
  width: var(--np-cat-size);
  height: var(--np-cat-size);
  margin-left: calc(var(--np-cat-size) / -2);
  border-radius: 8px;
  background: var(--np-rail-active-bg);
  opacity: 0;
  transform: translateY(0);
  transition: transform 420ms cubic-bezier(0.34, 1.56, 0.64, 1), opacity 160ms ease-out;
  pointer-events: none;
  z-index: 0;
}

.qdnapro-node-picker__cat {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--np-rail-icon);
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--np-cat-size);
  height: var(--np-cat-size);
  border-radius: 8px;
  cursor: pointer;
  position: relative;
  z-index: 1;
  transition: background-color 120ms ease-out, color 120ms ease-out;
}
.qdnapro-node-picker__cat:hover {
  background: var(--np-rail-hover-bg);
  color: var(--np-rail-icon-hover);
}
.qdnapro-node-picker__cat.is-active {
  color: #ffffff;
}
.qdnapro-node-picker__cat:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--np-rail-bg), 0 0 0 4px rgba(255, 255, 255, 0.7);
}

.qdnapro-node-picker__cat-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  color: inherit;
}
.qdnapro-node-picker__cat-icon i {
  font-size: 18px;
  line-height: 1;
}

.qdnapro-node-picker__card {
  background: var(--c-bg-card);
  color: var(--np-node-icon);
  box-shadow: 0 2px 6px rgba(38, 42, 92, 0.2);
}
.qdnapro-node-picker__card:hover {
  background: #ffffff;
  color: var(--np-node-icon);
}
.qdnapro-node-picker__card.is-active {
  color: var(--np-node-icon);
}
.qdnapro-node-picker__card:hover .qdnapro-node-picker__cat-icon, .qdnapro-node-picker__card.is-active .qdnapro-node-picker__cat-icon {
  color: var(--np-node-icon);
}

@keyframes qdnapro-node-picker-card-pulse {
  0% {
    box-shadow: 0 2px 6px rgba(38, 42, 92, 0.2), 0 0 0 0 rgba(255, 255, 255, 0.75);
    transform: scale(1);
  }
  70% {
    box-shadow: 0 2px 6px rgba(38, 42, 92, 0.2), 0 0 0 9px rgba(255, 255, 255, 0);
    transform: scale(1.06);
  }
  100% {
    box-shadow: 0 2px 6px rgba(38, 42, 92, 0.2), 0 0 0 0 rgba(255, 255, 255, 0);
    transform: scale(1);
  }
}
.qdnapro-node-picker[card-pulse] .qdnapro-node-picker__card {
  animation: qdnapro-node-picker-card-pulse 1.8s ease-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-node-picker[card-pulse] .qdnapro-node-picker__card {
    animation: none;
  }
}
.qdnapro-node-picker[node-pulse] .qdnapro-node-picker__cat[data-cat=questions] {
  animation: qdnapro-node-picker-card-pulse 1.8s ease-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-node-picker[node-pulse] .qdnapro-node-picker__cat[data-cat=questions] {
    animation: none;
  }
}
.qdnapro-node-picker__panel {
  flex: 0 0 auto;
  width: 0;
  overflow: hidden;
  background-color: var(--np-panel-bg);
  background-image: url("/assets/illustrations/node-picker-flow.svg");
  background-repeat: no-repeat;
  background-position: bottom center;
  background-size: contain;
  border-right: 1px solid var(--np-panel-border);
  box-shadow: var(--np-panel-shadow);
  border-radius: 0 10px 10px 0;
  transition: width 200ms cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  flex-direction: column;
  z-index: 1;
}

.qdnapro-node-picker[data-open] .qdnapro-node-picker__panel {
  width: var(--np-panel-w);
  overflow-y: auto;
  padding: 8px 8px 10px;
}

.qdnapro-node-picker__panel-head {
  font-size: 15px;
  font-weight: 700;
  color: var(--np-node-text);
  padding: 0 4px 8px;
  white-space: normal;
  line-height: 1.3;
}

.qdnapro-node-picker__panel-sub {
  font-size: 12px;
  line-height: 1.4;
  color: var(--np-subhead);
  padding: 0 4px 12px;
}

.qdnapro-node-picker__form-card {
  position: relative;
  margin: 2px 2px 4px 14px;
  padding: 10px 10px 12px;
  background: var(--c-bg-card);
  border: 1.5px solid var(--np-panel-border);
  border-radius: 10px;
  box-shadow: 0 2px 8px rgba(38, 42, 92, 0.1);
  cursor: grab;
  user-select: none;
  transition: border-color 120ms ease, box-shadow 120ms ease;
}
.qdnapro-node-picker__form-card::before {
  content: "";
  position: absolute;
  left: -10px;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 30px;
  background: var(--c-action-500);
  border-radius: 2px;
  opacity: 0;
  transition: opacity 150ms ease;
  pointer-events: none;
}
.qdnapro-node-picker__form-card:hover {
  border-color: var(--c-purple-100);
  box-shadow: 0 4px 12px rgba(38, 42, 92, 0.16);
}
.qdnapro-node-picker__form-card:hover::before {
  opacity: 1;
}
.qdnapro-node-picker__form-card:active {
  cursor: grabbing;
}
.qdnapro-node-picker__form-card:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px rgba(81, 89, 164, 0.45);
}
.qdnapro-node-picker__form-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 2px;
  background: conic-gradient(from var(--qnp-beam-angle), transparent 0deg, transparent 250deg, rgba(70, 82, 243, 0.9) 300deg, var(--c-purple-100) 330deg, transparent 360deg);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask-composite: exclude;
  pointer-events: none;
  animation: qdnapro-node-picker-beam 3s linear infinite;
}

@keyframes qdnapro-node-picker-beam {
  to {
    --qnp-beam-angle: 360deg;
  }
}
.qdnapro-node-picker__form-card-header {
  background: var(--c-bg-subtle-purple);
  color: var(--np-node-text);
  font-size: 12px;
  font-weight: 700;
  padding: 6px 8px;
  border-radius: 6px;
  margin-bottom: 10px;
}

.qdnapro-node-picker__form-card-field {
  height: 22px;
  border: 1.5px solid var(--np-panel-border);
  border-radius: 6px;
  background: var(--c-bg-card-hover);
}
.qdnapro-node-picker__form-card-field + .qdnapro-node-picker__form-card-field {
  margin-top: 8px;
}

.qdnapro-node-picker__subhead {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--np-subhead);
  padding: 8px 4px 3px;
  white-space: nowrap;
}
.qdnapro-node-picker__subhead:first-of-type {
  padding-top: 0;
}

.qdnapro-node-picker__empty {
  font-size: 13px;
  color: var(--np-subhead);
  padding: 8px;
}

.qdnapro-node-picker__node {
  position: relative;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 6px 8px 6px 18px;
  margin-bottom: 12px;
  border-radius: 8px;
  cursor: grab;
  color: var(--np-node-text);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.2;
  user-select: none;
  transition: background-color 110ms ease-out;
}
.qdnapro-node-picker__node::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 22px;
  background: var(--c-action-500);
  border-radius: 2px;
  opacity: 0;
  transition: opacity 150ms ease;
  pointer-events: none;
}
.qdnapro-node-picker__node:last-child {
  margin-bottom: 0;
}
.qdnapro-node-picker__node:hover {
  background: var(--np-node-hover-bg);
}
.qdnapro-node-picker__node:hover::before {
  opacity: 1;
}
.qdnapro-node-picker__node:active {
  cursor: grabbing;
}
.qdnapro-node-picker__node:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px rgba(81, 89, 164, 0.45);
}

.qdnapro-node-picker__node-icon {
  flex: 0 0 auto;
  width: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--np-node-icon);
}
.qdnapro-node-picker__node-icon i {
  font-size: 19px;
  line-height: 1;
}

.qdnapro-node-picker__node-label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-node-picker__panel {
    transition: none;
  }
  .qdnapro-node-picker__form-card::after {
    animation: none;
  }
}
.qdnapro-nova {
  --nova-primary: var(--c-purple-500);
  --nova-primary-hover: var(--c-purple-600);
  --nova-primary-pressed: var(--c-purple-700);
  --nova-primary-glow: rgba(70, 82, 243, 0.40);
  --nova-panel-bg: #ffffff;
  --nova-user-bubble: var(--c-grey-50);
  --nova-text: var(--c-grey-950);
  --nova-text-secondary: var(--c-grey-500);
  --nova-link: var(--c-action-500);
  --nova-border: var(--c-grey-300);
  --nova-input-bg: #ffffff;
  --nova-placeholder: var(--c-grey-400);
  --nova-divider: var(--c-border-card);
  --nova-quick-hover: #e6e9ff;
  --nova-pinned-bg: #e6e9ff;
  --nova-menu-hover: var(--c-grey-50);
  --nova-error-bg: var(--c-signal-red-soft);
  --nova-error-text: var(--c-signal-red-text);
  --nova-success: var(--c-signal-green-text);
  --nova-sparkle-grad-start: var(--c-action-500);
  --nova-sparkle-grad-end: var(--c-purple-500);
  position: relative;
  height: 100%;
  max-height: 100%;
  width: 0;
  min-width: 0;
  flex-shrink: 0;
  z-index: 10;
  display: flex;
  flex-direction: column;
  background: var(--nova-panel-bg);
  font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 14px;
  line-height: 24px;
  color: var(--nova-text);
  box-shadow: -4px 0 20px rgba(0, 0, 0, 0.06);
  box-sizing: border-box;
  overflow: hidden;
  transition: width 320ms ease-in-out;
}

.qdnapro-nova.nova-open {
  width: 390px;
}

.qdnapro-nova.nova-open.nova-expanded {
  width: min(720px, 100vw);
}

.qdnapro-nova > * {
  min-width: 390px;
  box-sizing: border-box;
}

.qdnapro-nova.nova-expanded > * {
  min-width: min(720px, 100vw);
}

.qdnapro-nova[floating] {
  position: fixed;
  top: 0;
  right: 0;
  height: 100vh;
  height: 100dvh;
  max-height: 100vh;
  max-height: 100dvh;
  width: 0;
  z-index: 1040;
  transition: width 320ms ease-in-out;
}

.qdnapro-nova[floating].nova-open {
  width: 390px;
}

.qdnapro-nova[floating].nova-open.nova-expanded {
  width: min(720px, 100vw);
}

.qdnapro-nova.nova-theme-orange {
  --nova-primary: var(--c-warn-yellow-600);
  --nova-primary-hover: var(--c-warn-amber-500);
  --nova-primary-pressed: var(--c-tag-warning-text);
  --nova-primary-glow: rgba(239, 142, 2, 0.45);
  --nova-quick-hover: var(--c-tag-warning-bg);
  --nova-pinned-bg: var(--c-tag-warning-bg);
  --nova-sparkle-grad-start: var(--c-warn-yellow-600);
  --nova-sparkle-grad-end: var(--c-warn-yellow-500);
}

.qdnapro-nova[pwa] .nova-header {
  padding-top: calc(8px + var(--qdna-inset-top, env(safe-area-inset-top, 0px)));
}

.qdnapro-nova .nova-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 16px 4px;
  border-bottom: 1px solid transparent;
  flex-shrink: 0;
}

.qdnapro-nova .nova-title {
  margin: 0;
  font-size: 24px;
  line-height: 36px;
  font-weight: 600;
  color: var(--nova-primary);
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.qdnapro-nova .nova-title-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 0;
  background: transparent;
  color: var(--nova-primary);
  border-radius: 4px;
  cursor: pointer;
  flex-shrink: 0;
}

.qdnapro-nova .nova-title-back:hover {
  background: var(--nova-quick-hover);
}

.qdnapro-nova .nova-header-actions {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}

.qdnapro-nova .nova-header-divider {
  width: 1px;
  height: 20px;
  background: var(--nova-divider);
  margin: 0 4px;
  flex-shrink: 0;
}

.qdnapro-nova .nova-header-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 0;
  background: transparent;
  color: var(--nova-text);
  border-radius: 8px;
  cursor: pointer;
  transition: background-color 120ms ease-out;
}

.qdnapro-nova .nova-header-btn:hover {
  background: var(--nova-quick-hover);
}

.qdnapro-nova .nova-header-btn svg {
  width: 20px;
  height: 20px;
}

.qdnapro-nova .nova-context-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0 12px 8px;
  padding: 4px 8px 4px 10px;
  background: var(--nova-pinned-bg);
  border-radius: 16px;
  font-size: 12px;
  line-height: 20px;
  font-weight: 500;
  color: var(--nova-primary);
  max-width: calc(100% - 24px);
  width: fit-content;
  box-sizing: border-box;
}

.qdnapro-nova .nova-context-pill svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.qdnapro-nova .nova-context-pill-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-nova .nova-context-pill-clear {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border: 0;
  background: transparent;
  color: var(--nova-primary);
  border-radius: 50%;
  cursor: pointer;
  padding: 0;
  margin-left: 2px;
}

.qdnapro-nova .nova-context-pill-clear:hover {
  background: rgba(0, 0, 0, 0.08);
}

.qdnapro-nova .nova-quick-actions {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 0 8px 8px;
  border-bottom: 1px solid var(--nova-divider);
  flex-shrink: 0;
}

.qdnapro-nova .nova-quick-action {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 6px 8px;
  border: 0;
  background: transparent;
  border-radius: 4px;
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  line-height: 20px;
  color: var(--nova-text);
  text-align: left;
  width: 100%;
}

.qdnapro-nova .nova-quick-action:hover {
  background: var(--nova-quick-hover);
}

.qdnapro-nova .nova-quick-action svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  color: var(--nova-primary);
}

.qdnapro-nova .nova-messages {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px;
  position: relative;
}

.qdnapro-nova.nova-expanded .nova-messages {
  padding: 16px 24px;
}

.qdnapro-nova .nova-messages {
  scrollbar-width: thin;
  scrollbar-color: var(--nova-border) transparent;
}

.qdnapro-nova .nova-messages::-webkit-scrollbar {
  width: 6px;
}

.qdnapro-nova .nova-messages::-webkit-scrollbar-thumb {
  background: var(--nova-border);
  border-radius: 3px;
}

.qdnapro-nova .nova-msg-user-wrap {
  align-self: flex-end;
  max-width: 85%;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
}

.qdnapro-nova .nova-msg-user {
  max-width: 100%;
  padding: 8px 12px;
  background: var(--nova-user-bubble);
  color: var(--nova-text);
  border-radius: 12px;
  font-size: 14px;
  line-height: 24px;
  font-weight: 500;
  word-wrap: break-word;
  white-space: pre-wrap;
}

.qdnapro-nova .nova-msg-user-actions {
  display: flex;
  gap: 0;
  opacity: 0;
  transition: opacity 120ms ease;
  pointer-events: none;
}

.qdnapro-nova .nova-msg-user-wrap:hover .nova-msg-user-actions,
.qdnapro-nova .nova-msg-user-wrap:focus-within .nova-msg-user-actions {
  opacity: 1;
  pointer-events: auto;
}

.qdnapro-nova .nova-msg-ai {
  align-self: flex-start;
  width: 100%;
  padding: 8px 0;
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.qdnapro-nova .nova-msg-ai-heading {
  display: flex;
  align-items: baseline;
  gap: 4px;
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
  color: var(--nova-text);
}

.qdnapro-nova .nova-msg-ai-heading-emoji {
  font-size: 14px;
  line-height: 24px;
  flex-shrink: 0;
}

.qdnapro-nova .nova-msg-ai-body {
  font-size: 14px;
  line-height: 24px;
  color: var(--nova-text);
  word-wrap: break-word;
}

.qdnapro-nova .nova-msg-ai-body p {
  margin: 0 0 8px;
}

.qdnapro-nova .nova-msg-ai-body p:last-child {
  margin-bottom: 0;
}

.qdnapro-nova .nova-msg-ai-body strong {
  font-weight: 600;
}

.qdnapro-nova .nova-msg-ai-body a {
  color: var(--nova-link);
  text-decoration: underline;
  text-decoration-style: solid;
}

.qdnapro-nova .nova-msg-ai-body ul, .qdnapro-nova .nova-msg-ai-body ol {
  margin: 0 0 8px;
  padding-left: 20px;
}

.qdnapro-nova .nova-msg-ai-body li + li {
  margin-top: 4px;
}

.qdnapro-nova .nova-msg-ai-body code {
  background: var(--nova-user-bubble);
  padding: 1px 4px;
  border-radius: 3px;
  font-family: Menlo, Monaco, "Courier New", monospace;
  font-size: 12px;
}

.qdnapro-nova .nova-msg-ai-ref {
  display: flex;
  gap: 4px;
  font-size: 12px;
  line-height: 20px;
}

.qdnapro-nova .nova-msg-ai-ref-label {
  font-weight: 600;
  color: var(--nova-text);
}

.qdnapro-nova .nova-msg-ai-ref-value a {
  color: var(--nova-link);
  text-decoration: underline;
}

.qdnapro-nova .nova-streaming-cursor {
  display: inline-block;
  width: 8px;
  height: 16px;
  margin-left: 2px;
  background: currentColor;
  vertical-align: text-bottom;
  animation: nova-cursor-pulse 1s steps(2, end) infinite;
}

@keyframes nova-cursor-pulse {
  0%, 50% {
    opacity: 1;
  }
  51%, 100% {
    opacity: 0;
  }
}
.qdnapro-nova .nova-thinking {
  display: flex;
  align-items: center;
  gap: 12px;
  height: 28px;
  padding: 0 12px;
  color: var(--nova-text-secondary);
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
}

.qdnapro-nova .nova-thinking-icon {
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.qdnapro-nova .nova-thinking-sparkle {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 14px;
  margin: -7px 0 0 -7px;
  color: var(--nova-primary);
  animation: nova-sparkle-orbit 2.7s ease-in-out infinite;
  will-change: transform, opacity, filter;
}

.qdnapro-nova .nova-thinking-sparkle:nth-child(2) {
  animation-delay: -0.9s;
}

.qdnapro-nova .nova-thinking-sparkle:nth-child(3) {
  animation-delay: -1.8s;
}

.qdnapro-nova .nova-thinking-sparkle svg {
  width: 100%;
  height: 100%;
  display: block;
}

@keyframes nova-sparkle-orbit {
  0% {
    transform: translate(0, -13px) scale(0.25);
    opacity: 0.18;
    filter: blur(0.6px);
  }
  25% {
    transform: translate(13px, 0) scale(0.75);
    opacity: 0.7;
    filter: blur(0);
  }
  50% {
    transform: translate(0, 13px) scale(1.5);
    opacity: 1;
    filter: blur(0);
  }
  75% {
    transform: translate(-13px, 0) scale(0.75);
    opacity: 0.7;
    filter: blur(0);
  }
  100% {
    transform: translate(0, -13px) scale(0.25);
    opacity: 0.18;
    filter: blur(0.6px);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-nova .nova-thinking-sparkle {
    animation-duration: 0s;
    transform: scale(1);
    opacity: 1;
  }
  .qdnapro-nova .nova-empty-hero svg path {
    animation: none;
  }
}
@keyframes nova-sparkle-big {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.15);
  }
}
@keyframes nova-sparkle-small {
  0%, 100% {
    transform: scale(0.7);
  }
  50% {
    transform: scale(1.25);
  }
}
@keyframes nova-pop-in {
  0% {
    opacity: 0;
    transform: scale(0.85);
  }
  55% {
    opacity: 1;
    transform: scale(1.05);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
.qdnapro-nova .nova-empty-hero {
  animation: nova-pop-in 240ms ease-out both;
}

.qdnapro-nova .nova-quick-action {
  animation: nova-pop-in 240ms ease-out both;
}

.qdnapro-nova .nova-quick-action:nth-child(1) {
  animation-delay: 80ms;
}

.qdnapro-nova .nova-quick-action:nth-child(2) {
  animation-delay: 140ms;
}

.qdnapro-nova .nova-quick-action:nth-child(3) {
  animation-delay: 200ms;
}

.qdnapro-nova .nova-quick-action:nth-child(4) {
  animation-delay: 260ms;
}

.qdnapro-nova .nova-quick-action:nth-child(5) {
  animation-delay: 320ms;
}

.qdnapro-nova .nova-input-wrapper.nova-empty-mode {
  animation: nova-pop-in 240ms ease-out 280ms both;
}

@keyframes nova-history-enter {
  0% {
    opacity: 0;
    transform: translateY(12px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
.qdnapro-nova .nova-history {
  animation: nova-history-enter 220ms cubic-bezier(0.4, 0, 0.2, 1) both;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-nova .nova-empty-hero,
  .qdnapro-nova .nova-quick-action,
  .qdnapro-nova .nova-input-wrapper.nova-empty-mode,
  .qdnapro-nova .nova-history {
    animation: none;
  }
}
.qdnapro-nova .nova-msg-actions {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-left: -4px;
  padding: 0;
  flex-wrap: wrap;
}

.qdnapro-nova .nova-action-btn {
  color: var(--nova-text-secondary);
}

.qdnapro-nova .nova-action-btn:hover {
  color: var(--nova-text);
}

.qdnapro-nova .nova-action-btn.nova-action-thumb {
  display: none;
}

.qdnapro-nova .nova-action-btn.nova-action-active {
  color: var(--nova-primary);
  background: var(--nova-pinned-bg);
}

/* Bronnen-chips onder een antwoord (echte qdnapro-source-pill's) + het
   bronnenpaneel dat van rechts over de chat schuift. De oude .nova-source-pill/
   .nova-source-stack placeholder-stijlen zijn hier vervangen — de placeholder-div
   in de JS bestaat niet meer. [Jan 2026-08-05, afgestemd met Kim] */
.qdnapro-nova .nova-sources {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 2px 0 4px;
}

.qdnapro-nova .nova-sources qdnapro-source-pill {
  cursor: pointer;
}

.qdnapro-nova .nova-source-panel {
  position: absolute;
  inset: 0;
  z-index: 30;
  display: flex;
  flex-direction: column;
  background: var(--nova-panel-bg);
  transform: translateX(100%);
  transition: transform 0.25s ease;
  box-shadow: -8px 0 24px rgba(0, 0, 0, 0.12);
}

.qdnapro-nova[pwa] .nova-source-panel {
  padding-top: var(--qdna-inset-top, env(safe-area-inset-top, 0px));
}

.qdnapro-nova .nova-source-panel.nova-source-panel-in {
  transform: translateX(0);
}

.qdnapro-nova .nova-source-panel-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px;
  border-bottom: 1px solid var(--nova-divider);
}

.qdnapro-nova .nova-source-panel-open-btn {
  flex: 1 1 auto;
}

.qdnapro-nova .nova-source-panel-open-btn button {
  width: 100%;
}

.qdnapro-nova .nova-source-panel-kicker {
  padding: 12px 12px 0;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--nova-text-secondary);
}

.qdnapro-nova .nova-source-panel-title {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 12px 8px;
  font-size: 14px;
  font-weight: 600;
  color: var(--nova-text);
}

.qdnapro-nova .nova-source-panel-title svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: var(--nova-text-secondary);
}

.qdnapro-nova .nova-source-panel-body {
  flex: 1 1 auto;
  min-height: 0; /* flex-kind mag krimpen, anders klipt de passage-lijst stil */
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 4px 12px 16px;
  scrollbar-width: thin;
  scrollbar-color: var(--nova-border) transparent;
}

.qdnapro-nova .nova-source-panel-body::-webkit-scrollbar {
  width: 6px;
}

.qdnapro-nova .nova-source-panel-body::-webkit-scrollbar-thumb {
  background: var(--nova-border);
  border-radius: 3px;
}

.qdnapro-nova .nova-source-passage {
  background: var(--nova-user-bubble);
  border-radius: 8px;
  padding: 10px 12px;
}

.qdnapro-nova .nova-source-passage-where {
  margin-bottom: 6px;
  font-size: 12px;
  font-weight: 600;
  color: var(--nova-text-secondary);
}

.qdnapro-nova .nova-source-passage-text {
  font-size: 13px;
  line-height: 20px;
  color: var(--nova-text);
  white-space: pre-wrap;
}

.qdnapro-nova .nova-source-passage-none {
  font-size: 13px;
  color: var(--nova-text-secondary);
}

.qdnapro-nova .nova-followups {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 0 12px 4px;
}

.qdnapro-nova .nova-followup-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  background: transparent;
  border: 1px solid var(--nova-border);
  border-radius: 16px;
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  line-height: 16px;
  color: var(--nova-text);
  transition: background-color 120ms ease-out, border-color 120ms ease-out;
}

.qdnapro-nova .nova-followup-chip:hover {
  background: var(--nova-quick-hover);
  border-color: var(--c-chip-bright-blue-2-hover);
  color: var(--nova-primary);
}

.qdnapro-nova .nova-followup-chip:active {
  background: var(--c-sidebar-icon);
  border-color: var(--nova-primary);
  color: var(--nova-primary);
}

.qdnapro-nova .nova-followup-chip svg {
  width: 12px;
  height: 12px;
}

.qdnapro-nova .nova-msg-error {
  align-self: stretch;
  padding: 12px;
  background: var(--nova-error-bg);
  border-radius: 12px;
  color: var(--nova-error-text);
  font-size: 13px;
  line-height: 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.qdnapro-nova .nova-msg-error-retry {
  align-self: flex-start;
  padding: 4px 10px;
  background: var(--nova-error-text);
  color: var(--c-text-on-action);
  border: 0;
  border-radius: 4px;
  font: inherit;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
}

.qdnapro-nova .nova-msg-error-retry:hover {
  opacity: 0.9;
}

.qdnapro-nova .nova-offline-banner {
  padding: 8px 12px;
  background: var(--nova-error-bg);
  color: var(--nova-error-text);
  font-size: 13px;
  line-height: 20px;
  text-align: center;
  flex-shrink: 0;
}

.qdnapro-nova .nova-scroll-bottom {
  position: absolute;
  bottom: 12px;
  left: 50%;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  background: var(--nova-panel-bg);
  border: 1px solid var(--nova-border);
  border-radius: 50%;
  color: var(--nova-text-secondary);
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity 120ms ease-out, transform 200ms ease-out;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.qdnapro-nova.nova-show-scroll-bottom .nova-scroll-bottom {
  opacity: 1;
  pointer-events: auto;
}

.qdnapro-nova .nova-scroll-bottom:hover {
  color: var(--nova-primary);
  border-color: var(--nova-primary);
}

.qdnapro-nova .nova-scroll-bottom svg {
  width: 16px;
  height: 16px;
}

.qdnapro-nova .nova-empty-hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 24px 16px;
  color: var(--nova-text-secondary);
  text-align: center;
  flex: 1;
}

.qdnapro-nova .nova-empty-hero svg {
  width: 48px;
  height: 48px;
  color: var(--nova-primary);
}

.qdnapro-nova .nova-empty-hero svg path {
  transform-box: fill-box;
  transform-origin: center;
}

.qdnapro-nova .nova-empty-hero .sparkle-big {
  animation: nova-sparkle-big 2.2s ease-in-out infinite;
}

.qdnapro-nova .nova-empty-hero .sparkle-small {
  animation: nova-sparkle-small 1.5s ease-in-out -0.4s infinite;
}

.qdnapro-nova .nova-empty-hero-title {
  font-size: 16px;
  font-weight: 600;
  color: var(--nova-text);
}

.qdnapro-nova .nova-empty-hero-sub {
  font-size: 13px;
  line-height: 20px;
}

.qdnapro-nova .nova-welcome {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 16px;
  flex: 1;
}

.qdnapro-nova .nova-welcome-card {
  position: relative;
  background: #e6e9ff;
  border: 0.5px solid rgba(64, 73, 154, 0.12);
  border-radius: 16px;
  padding: 24px 20px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
  animation: nova-pop-in 240ms ease-out both;
}

.qdnapro-nova .nova-welcome-close {
  position: absolute;
  top: 8px;
  right: 8px;
}

.qdnapro-nova .nova-welcome-hero {
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 4px;
}

.qdnapro-nova .nova-welcome-hero svg {
  width: 56px;
  height: 56px;
  color: var(--nova-primary);
}

.qdnapro-nova .nova-welcome-hero svg path {
  transform-box: fill-box;
  transform-origin: center;
}

.qdnapro-nova .nova-welcome-hero .sparkle-big {
  animation: nova-sparkle-big 2.2s ease-in-out infinite;
}

.qdnapro-nova .nova-welcome-hero .sparkle-small {
  animation: nova-sparkle-small 1.5s ease-in-out -0.4s infinite;
}

.qdnapro-nova .nova-welcome-title {
  font-size: 18px;
  line-height: 24px;
  font-weight: 600;
  color: var(--c-purple-500);
}

.qdnapro-nova .nova-welcome-sub {
  font-size: 13px;
  line-height: 20px;
  color: var(--nova-text);
  max-width: 320px;
}

.qdnapro-nova .nova-welcome-privacy {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.55);
  font-size: 12px;
  line-height: 16px;
  font-weight: 500;
  color: var(--c-purple-500);
}

.qdnapro-nova .nova-welcome-privacy-icon {
  flex-shrink: 0;
  color: var(--c-purple-500);
}

.qdnapro-nova .nova-welcome-prompts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
}

.qdnapro-nova .nova-welcome-prompts qdnapro-suggestion-chip {
  animation: nova-pop-in 240ms ease-out both;
}

.qdnapro-nova .nova-welcome-prompts qdnapro-suggestion-chip:nth-child(1) {
  animation-delay: 120ms;
}

.qdnapro-nova .nova-welcome-prompts qdnapro-suggestion-chip:nth-child(2) {
  animation-delay: 180ms;
}

.qdnapro-nova .nova-welcome-prompts qdnapro-suggestion-chip:nth-child(3) {
  animation-delay: 240ms;
}

.qdnapro-nova .nova-welcome-prompts qdnapro-suggestion-chip:nth-child(4) {
  animation-delay: 300ms;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-nova .nova-welcome-card,
  .qdnapro-nova .nova-welcome-prompts qdnapro-suggestion-chip {
    animation: none;
  }
}
.qdnapro-nova.nova-theme-orange .nova-welcome-card {
  background: var(--c-tag-warning-bg);
  border-color: rgba(245, 143, 6, 0.18);
}

.qdnapro-nova.nova-theme-orange .nova-welcome-title, .qdnapro-nova.nova-theme-orange .nova-welcome-privacy, .qdnapro-nova.nova-theme-orange .nova-welcome-privacy-icon {
  color: var(--c-warn-amber-600);
}

.qdnapro-nova .nova-input-wrapper {
  padding: 12px 16px 16px;
  flex-shrink: 0;
}

.qdnapro-nova .nova-input-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px;
  background: var(--nova-input-bg);
  border: 1px solid var(--nova-border);
  border-radius: 8px;
  min-height: 80px;
  transition: border-color 120ms ease-out, box-shadow 120ms ease-out;
}

.qdnapro-nova .nova-input-field:focus-within {
  border-color: var(--nova-primary);
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.2);
}

.qdnapro-nova.nova-theme-orange .nova-input-field:focus-within {
  box-shadow: 0 0 0 3px rgba(245, 143, 6, 0.25);
}

.qdnapro-nova .nova-input-attachments {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 6px;
}

.qdnapro-nova .nova-input-attachment-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 4px 4px 8px;
  background: var(--nova-panel-bg);
  border: 1px solid var(--nova-border);
  border-radius: 999px;
  max-width: 220px;
  font-size: 12px;
  line-height: 1.2;
  color: var(--nova-text);
}

.qdnapro-nova .nova-input-attachment-pill qdnapro-file-icon {
  flex-shrink: 0;
}

.qdnapro-nova .nova-input-attachment-name {
  max-width: 140px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-nova .nova-input-attachment-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border: 0;
  background: transparent;
  color: var(--nova-placeholder);
  cursor: pointer;
  border-radius: 50%;
  padding: 0;
  flex-shrink: 0;
}

.qdnapro-nova .nova-input-attachment-remove:hover {
  background: rgba(0, 0, 0, 0.06);
  color: var(--nova-text);
}

.qdnapro-nova .nova-input-top {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  flex: 1;
}

.qdnapro-nova .nova-input-top-icon {
  width: 16px;
  height: 16px;
  margin-top: 4px;
  color: var(--nova-placeholder);
  flex-shrink: 0;
}

.qdnapro-nova .nova-input-textarea {
  flex: 1;
  border: 0;
  outline: 0;
  background: transparent;
  resize: none;
  font: inherit;
  font-family: inherit;
  font-size: 14px;
  line-height: 24px;
  color: var(--nova-text);
  max-height: 200px;
  min-height: 24px;
  padding: 0;
  width: 100%;
}

.qdnapro-nova .nova-input-textarea::placeholder {
  color: var(--nova-placeholder);
}

.qdnapro-nova .nova-input-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 4px;
}

.qdnapro-nova .nova-input-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  min-width: 40px;
  border: 0;
  background: transparent;
  color: var(--nova-text);
  border-radius: 4px;
  cursor: pointer;
  padding: 8px;
  transition: background-color 120ms ease-out, color 120ms ease-out;
}

.qdnapro-nova .nova-input-btn svg {
  width: 20px;
  height: 20px;
}

.qdnapro-nova .nova-input-btn:hover {
  background: var(--nova-user-bubble);
}

.qdnapro-nova .nova-input-btn[disabled] {
  color: var(--nova-placeholder);
  cursor: not-allowed;
}

.qdnapro-nova .nova-input-btn[disabled]:hover {
  background: transparent;
}

.qdnapro-nova .nova-input-action {
  margin-left: auto;
  transition: background-color 200ms cubic-bezier(0.4, 0, 0.2, 1), color 200ms cubic-bezier(0.4, 0, 0.2, 1);
}

.qdnapro-nova .nova-input-action.nova-action-send {
  background: var(--nova-primary);
  color: var(--c-text-on-action);
}

.qdnapro-nova .nova-input-action.nova-action-send:hover {
  background: var(--nova-primary-hover);
}

.qdnapro-nova .nova-input-action.nova-action-send:active {
  background: var(--nova-primary-pressed);
}

.qdnapro-nova .nova-input-action.nova-action-stop {
  background: transparent;
  color: var(--nova-error-text);
}

.qdnapro-nova .nova-input-action.nova-action-stop:hover {
  background: rgba(198, 90, 90, 0.1);
}

.qdnapro-nova .nova-input-action.nova-action-stop:active {
  background: rgba(198, 90, 90, 0.18);
}

.qdnapro-nova .nova-input-action.nova-action-mic {
  background: transparent;
  color: var(--nova-text);
}

.qdnapro-nova .nova-input-action.nova-action-mic:hover {
  background: rgba(0, 0, 0, 0.06);
}

.qdnapro-nova .nova-action-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  transform-origin: center;
  transition: transform 240ms cubic-bezier(0.4, 0, 0.2, 1), opacity 140ms ease;
  will-change: transform, opacity;
}

.qdnapro-nova .nova-action-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-nova .nova-action-icon {
    transition: opacity 80ms ease;
    transform: none !important;
  }
}
.qdnapro-nova .nova-input-hint {
  padding: 4px 12px 0;
  font-size: 11px;
  line-height: 16px;
  color: var(--nova-placeholder);
  text-align: center;
}

.qdnapro-nova .nova-history {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.qdnapro-nova .nova-history-section-label {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 8px 4px;
  font-size: 11px;
  line-height: 16px;
  font-weight: 600;
  color: var(--nova-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.qdnapro-nova .nova-history-section-label svg {
  width: 12px;
  height: 12px;
}

.qdnapro-nova .nova-history-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 8px;
  border-radius: 8px;
  cursor: pointer;
  position: relative;
  transition: background-color 120ms ease-out;
}

.qdnapro-nova .nova-history-item:hover {
  background: var(--nova-menu-hover);
}

.qdnapro-nova .nova-history-item.nova-history-active {
  background: var(--nova-pinned-bg);
}

.qdnapro-nova .nova-history-item-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.qdnapro-nova .nova-history-item-title {
  font-size: 14px;
  line-height: 20px;
  font-weight: 500;
  color: var(--nova-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-nova .nova-history-item-snippet {
  font-size: 12px;
  line-height: 16px;
  color: var(--nova-text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-nova .nova-history-item-meta {
  font-size: 11px;
  line-height: 14px;
  color: var(--nova-text-secondary);
}

.qdnapro-nova .nova-history-item-pin {
  color: var(--nova-primary);
  width: 12px;
  height: 12px;
  flex-shrink: 0;
  margin-top: 4px;
}

.qdnapro-nova .nova-history-item-menu-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border: 0;
  background: transparent;
  color: var(--nova-text-secondary);
  border-radius: 4px;
  cursor: pointer;
  flex-shrink: 0;
  opacity: 0;
  transition: opacity 120ms ease-out, background-color 120ms ease-out;
}

.qdnapro-nova .nova-history-item:hover .nova-history-item-menu-btn,
.qdnapro-nova .nova-history-item-menu-btn:focus-visible,
.qdnapro-nova .nova-history-item.nova-menu-open .nova-history-item-menu-btn {
  opacity: 1;
}

.qdnapro-nova .nova-history-item-menu-btn:hover {
  background: rgba(0, 0, 0, 0.08);
}

.qdnapro-nova .nova-history-item-menu-btn svg {
  width: 16px;
  height: 16px;
}

.qdnapro-nova .nova-menu {
  position: absolute;
  top: 36px;
  right: 8px;
  z-index: 10;
  min-width: 140px;
  padding: 4px;
  background: var(--nova-panel-bg);
  border: 1px solid var(--nova-border);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.qdnapro-nova .nova-menu-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  border: 0;
  background: transparent;
  color: var(--nova-text);
  border-radius: 4px;
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  line-height: 20px;
  text-align: left;
  width: 100%;
}

.qdnapro-nova .nova-menu-item:hover {
  background: var(--nova-menu-hover);
}

.qdnapro-nova .nova-menu-item svg {
  width: 14px;
  height: 14px;
  color: var(--nova-text-secondary);
  flex-shrink: 0;
}

.qdnapro-nova .nova-menu-item.nova-menu-item-danger {
  color: var(--nova-error-text);
}

.qdnapro-nova .nova-menu-item.nova-menu-item-danger svg {
  color: var(--nova-error-text);
}

.qdnapro-nova .nova-menu-item.nova-menu-item-danger:hover {
  background: var(--nova-error-bg);
}

.qdnapro-nova .nova-history-empty {
  padding: 32px 16px;
  text-align: center;
  color: var(--nova-text-secondary);
  font-size: 13px;
  line-height: 20px;
}

.qdnapro-nova.nova-mic-recording .nova-input-field {
  border-color: var(--c-signal-red-text);
  box-shadow: 0 0 0 3px rgba(198, 90, 90, 0.2);
  animation: nova-mic-border-pulse 1.4s ease-in-out infinite;
}

@keyframes nova-mic-border-pulse {
  0%, 100% {
    box-shadow: 0 0 0 3px rgba(198, 90, 90, 0.2);
  }
  50% {
    box-shadow: 0 0 0 5px rgba(198, 90, 90, 0.08);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-nova.nova-mic-recording .nova-input-field {
    animation: none;
    border-color: var(--c-signal-red-text);
    box-shadow: 0 0 0 3px rgba(198, 90, 90, 0.2);
  }
}
.qdnapro-nova .nova-mic-autosend {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 8px 4px 0;
  padding: 7px 10px;
  border-radius: 8px;
  background: var(--nova-quick-hover);
  color: var(--nova-primary);
  font-size: 12px;
  line-height: 16px;
}

.qdnapro-nova .nova-mic-autosend-label {
  font-weight: 600;
  flex-shrink: 0;
}

.qdnapro-nova .nova-mic-autosend-bar {
  flex: 1;
  height: 3px;
  border-radius: 2px;
  background: rgba(64, 73, 154, 0.18);
  overflow: hidden;
  position: relative;
}

.qdnapro-nova .nova-mic-autosend-bar::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--nova-primary);
  transform-origin: left center;
  animation: nova-autosend-countdown linear forwards;
}

@keyframes nova-autosend-countdown {
  from {
    transform: scaleX(1);
  }
  to {
    transform: scaleX(0);
  }
}
.qdnapro-nova .nova-mic-autosend-cancel {
  flex-shrink: 0;
  border: 0;
  background: transparent;
  color: var(--nova-primary);
  font: inherit;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  padding: 2px 4px;
  border-radius: 4px;
  text-decoration: underline;
}

.qdnapro-nova .nova-mic-autosend-cancel:hover {
  background: rgba(64, 73, 154, 0.1);
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-nova .nova-mic-autosend-bar::after {
    animation: none;
    transform: scaleX(0.5);
  }
}
[data-theme=dark] .qdnapro-nova {
  --nova-panel-bg: #1f2028;
  --nova-user-bubble: #2e3036;
  --nova-text: #f0f1f2;
  --nova-text-secondary: #a6aab3;
  --nova-link: #8b93ff;
  --nova-border: #565b66;
  --nova-input-bg: #0b0b0d;
  --nova-placeholder: #898e99;
  --nova-divider: #3a3b42;
  --nova-quick-hover: rgba(70, 82, 243, 0.20);
  --nova-pinned-bg: #2a2d52;
  --nova-menu-hover: #2e3036;
  --nova-error-bg: #3a1e1e;
  --nova-error-text: #f87171;
  box-shadow: -4px 0 20px rgba(0, 0, 0, 0.35);
}

[data-theme=dark] .qdnapro-nova.nova-theme-orange {
  --nova-pinned-bg: #3a2a12;
  --nova-quick-hover: #2e3036;
}

[data-theme=dark] .qdnapro-nova {
  --nova-primary: #8b93ff;
  --nova-primary-hover: #6e78ff;
  --nova-primary-pressed: #5560e8;
  --nova-primary-glow: rgba(139, 147, 255, 0.45);
}

[data-theme=dark] .qdnapro-nova.nova-theme-orange {
  --nova-primary: #F58F06;
  --nova-primary-hover: #f2a535;
  --nova-primary-pressed: #d97c00;
  --nova-primary-glow: rgba(245, 143, 6, 0.45);
}

[data-theme=dark] .qdnapro-nova .nova-welcome-card {
  background: #2a2c4d;
  border-color: rgba(165, 172, 255, 0.18);
}

[data-theme=dark] .qdnapro-nova .nova-welcome-title,
[data-theme=dark] .qdnapro-nova .nova-welcome-privacy,
[data-theme=dark] .qdnapro-nova .nova-welcome-privacy-icon {
  color: #a5acff;
}

[data-theme=dark] .qdnapro-nova .nova-welcome-privacy {
  background: rgba(255, 255, 255, 0.08);
}

[data-theme=dark] .qdnapro-nova.nova-theme-orange .nova-welcome-card {
  background: #3d2e1a;
  border-color: rgba(251, 191, 92, 0.22);
}

[data-theme=dark] .qdnapro-nova.nova-theme-orange .nova-welcome-title, [data-theme=dark] .qdnapro-nova.nova-theme-orange .nova-welcome-privacy, [data-theme=dark] .qdnapro-nova.nova-theme-orange .nova-welcome-privacy-icon {
  color: #fbbf24;
}

/* ══════════════════════════════════════════════════════════════════════════
   PWA-VARIANT: gesprekkenlijst NAAST de chat  [Jan 04.08.2026]

   Alleen actief met het `pwa`-attribuut, dus het backoffice-zijpaneel merkt
   hier niets van: daar komt de geschiedenis nog steeds IN PLAATS VAN de chat.

   Onder 768px (telefoon) is er één kolom en gedraagt de variant zich exact als
   voorheen: de rechterkolom staat er in de DOM maar wordt niet getoond, en de
   geschiedenis-knop in de kop brengt je naar de volledige lijst.
   Vanaf 768px — dezelfde tabletgrens die de app in documenten, postvak en
   startscherm gebruikt — staat de lijst rechts en is die knop overbodig.
   ══════════════════════════════════════════════════════════════════════════ */
.qdnapro-nova[pwa] .nova-split {
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.qdnapro-nova[pwa] .nova-split-chat {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  /* ⚠️ min-width 0 is hier geen opsmuk: zonder deze regel weigert een flex-kind
     te krimpen onder zijn inhoud en duwt een lange regel in een chatbel de
     rechterkolom van het scherm af. */
  min-width: 0;
}

/* Telefoon: de lijst staat in de DOM maar hoort niet in beeld. */
.qdnapro-nova[pwa] .nova-split-history {
  display: none;
}

@media (min-width: 768px) {
  .qdnapro-nova[pwa] .nova-split-history {
    display: flex;
    flex-direction: column;
    /* 320px: breed genoeg voor een gesprekstitel op twee regels, smal genoeg om
       de chat de hoofdrol te laten. Krimpt niet mee (flex 0 0 auto), want een
       gespreklijst van 120px is onleesbaar. */
    flex: 0 0 320px;
    min-width: 0;
    overflow-y: auto;
    border-left: 1px solid var(--nova-divider);
  }
  /* De geschiedenis-knop in de kop wijst naar een lijst die al zichtbaar is. */
  .qdnapro-nova[pwa] .nova-header-actions .nova-header-btn[data-role=history-btn] {
    display: none;
  }
}
/* ============================================================
 *  qdnapro-nova-launcher — compiled from _nova-launcher.scss
 * ============================================================ */
.qdnapro-nova-launcher {
  position: fixed;
  z-index: 9000;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  background: linear-gradient(135deg, var(--c-action-500) 0%, var(--c-purple-500) 50%, var(--c-action-500) 100%);
  background-size: 200% 200%;
  background-position: 0% 0%;
  animation: nova-launcher-glide 8s ease-in-out infinite alternate;
  color: var(--c-text-on-action);
  box-shadow: 0 4px 8px 0 rgba(64, 73, 154, 0.25), 0 8px 16px 4px rgba(0, 0, 0, 0.16), 0 2px 4px 0 rgba(0, 0, 0, 0.12);
  transition: transform 200ms cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 200ms ease-out, background 160ms ease-out;
}

.qdnapro-nova-launcher .launcher-sparkle {
  width: 56%;
  height: 56%;
  display: block;
  pointer-events: none;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.18));
}

.qdnapro-nova-launcher .launcher-sparkle path {
  transform-box: fill-box;
  transform-origin: center;
}

.qdnapro-nova-launcher .launcher-sparkle .sparkle-big {
  animation: nova-launcher-sparkle-big 2.2s ease-in-out infinite;
}

.qdnapro-nova-launcher .launcher-sparkle .sparkle-small {
  animation: nova-launcher-sparkle-small 1.5s ease-in-out -0.4s infinite;
}

.qdnapro-nova-launcher:hover,
.qdnapro-nova-launcher.force-hover {
  transform: translateY(-2px) scale(1.04);
  box-shadow: 0 6px 12px 0 rgba(64, 73, 154, 0.32), 0 12px 22px 6px rgba(0, 0, 0, 0.18), 0 4px 6px 0 rgba(0, 0, 0, 0.14);
}

.qdnapro-nova-launcher:hover::before,
.qdnapro-nova-launcher.force-hover::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: rgba(70, 82, 243, 0.55);
  z-index: -1;
  animation: nova-launcher-pulse 1.8s ease-out infinite;
}

.qdnapro-nova-launcher:active,
.qdnapro-nova-launcher.force-pressed {
  transform: translateY(0) scale(0.97);
  box-shadow: 0 2px 4px 0 rgba(64, 73, 154, 0.22), 0 4px 8px 2px rgba(0, 0, 0, 0.18), 0 1px 2px 0 rgba(0, 0, 0, 0.14);
  transition-duration: 90ms;
}

.qdnapro-nova-launcher:focus {
  outline: none;
}

.qdnapro-nova-launcher:focus-visible,
.qdnapro-nova-launcher.force-focus {
  outline: 3px solid #ffffff;
  outline-offset: -3px;
  box-shadow: 0 0 0 3px var(--c-action-500), 0 0 0 7px rgba(70, 82, 243, 0.3), 0 8px 16px 4px rgba(0, 0, 0, 0.18), 0 2px 4px 0 rgba(0, 0, 0, 0.12);
}

.qdnapro-nova-launcher.launcher-theme-orange {
  background: linear-gradient(135deg, var(--c-warn-yellow-500) 0%, var(--c-warn-yellow-600) 50%, var(--c-warn-yellow-500) 100%);
  background-size: 200% 200%;
  background-position: 0% 0%;
  animation: nova-launcher-glide 8s ease-in-out infinite alternate;
  color: var(--c-text-on-action);
  box-shadow: 0 4px 8px 0 rgba(245, 143, 6, 0.3), 0 8px 16px 4px rgba(0, 0, 0, 0.16), 0 2px 4px 0 rgba(0, 0, 0, 0.12);
}

.qdnapro-nova-launcher.launcher-theme-orange:hover,
.qdnapro-nova-launcher.launcher-theme-orange.force-hover {
  box-shadow: 0 6px 12px 0 rgba(245, 143, 6, 0.38), 0 12px 22px 6px rgba(0, 0, 0, 0.18), 0 4px 6px 0 rgba(0, 0, 0, 0.14);
}

.qdnapro-nova-launcher.launcher-theme-orange:hover::before,
.qdnapro-nova-launcher.launcher-theme-orange.force-hover::before {
  background: rgba(245, 143, 6, 0.55);
}

.qdnapro-nova-launcher.launcher-theme-orange:active,
.qdnapro-nova-launcher.launcher-theme-orange.force-pressed {
  box-shadow: 0 2px 4px 0 rgba(245, 143, 6, 0.28), 0 4px 8px 2px rgba(0, 0, 0, 0.18), 0 1px 2px 0 rgba(0, 0, 0, 0.14);
}

.qdnapro-nova-launcher.launcher-theme-orange:focus-visible,
.qdnapro-nova-launcher.launcher-theme-orange.force-focus {
  box-shadow: 0 0 0 3px var(--c-warn-yellow-600), 0 0 0 7px rgba(245, 143, 6, 0.32), 0 8px 16px 4px rgba(0, 0, 0, 0.18), 0 2px 4px 0 rgba(0, 0, 0, 0.12);
}

[data-theme=dark] .qdnapro-nova-launcher {
  background: linear-gradient(135deg, #5560e8 0%, #3842c2 50%, #5560e8 100%);
  background-size: 200% 200%;
  box-shadow: 0 4px 8px 0 rgba(70, 82, 243, 0.3), 0 8px 16px 4px rgba(0, 0, 0, 0.3), 0 2px 4px 0 rgba(0, 0, 0, 0.2);
}

[data-theme=dark] .qdnapro-nova-launcher:hover,
[data-theme=dark] .qdnapro-nova-launcher.force-hover {
  box-shadow: 0 6px 12px 0 rgba(70, 82, 243, 0.4), 0 12px 22px 6px rgba(0, 0, 0, 0.32), 0 4px 6px 0 rgba(0, 0, 0, 0.22);
}

[data-theme=dark] .qdnapro-nova-launcher.launcher-theme-orange {
  background: linear-gradient(135deg, #FBBF24 0%, #d97c00 50%, #FBBF24 100%);
  background-size: 200% 200%;
  box-shadow: 0 4px 8px 0 rgba(251, 191, 36, 0.3), 0 8px 16px 4px rgba(0, 0, 0, 0.3), 0 2px 4px 0 rgba(0, 0, 0, 0.2);
}

@keyframes nova-launcher-sparkle-big {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.15);
  }
}
@keyframes nova-launcher-sparkle-small {
  0%, 100% {
    transform: scale(0.7);
  }
  50% {
    transform: scale(1.25);
  }
}
@keyframes nova-launcher-pulse {
  0% {
    transform: scale(1);
    opacity: 0.55;
  }
  70% {
    transform: scale(1.5);
    opacity: 0;
  }
  100% {
    transform: scale(1.5);
    opacity: 0;
  }
}
@keyframes nova-launcher-glide {
  0% {
    background-position: 0% 0%;
  }
  100% {
    background-position: 100% 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-nova-launcher,
  .qdnapro-nova-launcher .launcher-sparkle .sparkle-big,
  .qdnapro-nova-launcher .launcher-sparkle .sparkle-small,
  .qdnapro-nova-launcher:hover::before {
    animation: none;
  }
}
.qdnapro-nova-message {
  --msg-text: var(--nova-text, #1a1c20);
  --msg-text-secondary: var(--nova-text-secondary, #6b7280);
  --msg-user-bubble: var(--nova-user-bubble, #f0f1f2);
  --msg-primary: var(--nova-primary, #40499a);
  --msg-error-bg: var(--nova-error-bg, #fee3e3);
  --msg-error-text: var(--nova-error-text, #c65a5a);
  --msg-pinned-bg: var(--nova-pinned-bg, #e6e9ff);
  --msg-border: var(--nova-border, #c4c7cc);
  --msg-link: var(--nova-link, #40499a);
  --msg-quick-hover: var(--nova-quick-hover, #f0f1f2);
  --msg-divider: var(--nova-divider, rgba(0, 0, 0, 0.1));
  display: flex;
  flex-direction: column;
}

.qdnapro-nova-message.nova-msg-user {
  align-self: flex-end;
  max-width: 85%;
  padding: 8px 12px;
  background: var(--msg-user-bubble);
  color: var(--msg-text);
  border-radius: 20px;
  font-size: 14px;
  line-height: 24px;
  font-weight: 500;
  word-wrap: break-word;
  white-space: pre-wrap;
}

.qdnapro-nova-message.nova-msg-ai {
  align-self: flex-start;
  width: 100%;
  padding: 8px 12px;
  border-radius: 20px;
  gap: 12px;
}

.qdnapro-nova-message.nova-msg-ai .nova-msg-ai-body {
  font-size: 14px;
  line-height: 24px;
  color: var(--msg-text);
  word-wrap: break-word;
}

.qdnapro-nova-message.nova-msg-ai .nova-msg-ai-body p {
  margin: 0 0 8px;
}

.qdnapro-nova-message.nova-msg-ai .nova-msg-ai-body p:last-child {
  margin-bottom: 0;
}

.qdnapro-nova-message.nova-msg-ai .nova-msg-ai-body strong {
  font-weight: 600;
}

.qdnapro-nova-message.nova-msg-ai .nova-msg-ai-body a {
  color: var(--msg-link);
  text-decoration: underline;
}

.qdnapro-nova-message.nova-msg-ai .nova-msg-ai-body ul, .qdnapro-nova-message.nova-msg-ai .nova-msg-ai-body ol {
  margin: 0 0 8px;
  padding-left: 20px;
}

.qdnapro-nova-message.nova-msg-ai .nova-msg-ai-body li + li {
  margin-top: 4px;
}

.qdnapro-nova-message.nova-msg-ai .nova-msg-ai-body code {
  background: var(--msg-user-bubble);
  padding: 1px 4px;
  border-radius: 3px;
  font-family: Menlo, Monaco, "Courier New", monospace;
  font-size: 12px;
}

.qdnapro-nova-message.nova-msg-ai .nova-source-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 8px 4px 4px;
  background: var(--msg-user-bubble);
  border: 0;
  border-radius: 4px;
  font-size: 12px;
  line-height: 20px;
  font-weight: 500;
  color: var(--msg-text-secondary);
  width: fit-content;
  cursor: pointer;
  transition: background-color 120ms ease-out;
}

.qdnapro-nova-message.nova-msg-ai .nova-source-pill:hover {
  background: var(--msg-quick-hover);
}

.qdnapro-nova-message.nova-msg-ai .nova-source-pill qdnapro-icon,
.qdnapro-nova-message.nova-msg-ai .nova-source-pill .nova-source-icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.qdnapro-nova-message.nova-msg-ai .nova-source-stack {
  display: inline-flex;
  align-items: center;
  padding-right: 6px;
}

.qdnapro-nova-message.nova-msg-ai .nova-source-stack-item {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--msg-user-bubble);
  border: 0.5px solid var(--msg-divider);
  margin-right: -6px;
}

.qdnapro-nova-message.nova-msg-ai .nova-followups {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 0 0 4px;
}

.qdnapro-nova-message.nova-msg-ai .nova-followup-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  background: transparent;
  border: 1px solid var(--msg-border);
  border-radius: 16px;
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  line-height: 16px;
  color: var(--msg-text);
  transition: background-color 120ms ease-out, border-color 120ms ease-out;
}

.qdnapro-nova-message.nova-msg-ai .nova-followup-chip:hover {
  background: var(--msg-quick-hover);
  border-color: var(--msg-primary);
  color: var(--msg-primary);
}

.qdnapro-nova-message.nova-msg-ai .nova-msg-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.qdnapro-nova-message.nova-msg-ai .nova-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border: 0;
  background: transparent;
  color: var(--msg-text-secondary);
  border-radius: 4px;
  cursor: pointer;
  padding: 4px;
  transition: background-color 120ms ease-out, color 120ms ease-out;
}

.qdnapro-nova-message.nova-msg-ai .nova-action-btn:hover {
  background: var(--msg-user-bubble);
  color: var(--msg-text);
}

.qdnapro-nova-message.nova-msg-ai .nova-action-btn qdnapro-icon {
  width: 16px;
  height: 16px;
}

.qdnapro-nova-message.nova-msg-ai .nova-action-btn.nova-action-active {
  color: var(--msg-primary);
  background: var(--msg-pinned-bg);
}

.qdnapro-nova-message.nova-msg-ai .nova-action-btn:focus {
  outline: none;
}

.qdnapro-nova-message.nova-msg-ai .nova-action-btn:focus-visible,
.qdnapro-nova-message.nova-msg-ai .nova-action-btn.force-focus,
.qdnapro-nova-message.nova-msg-ai .nova-followup-chip:focus-visible,
.qdnapro-nova-message.nova-msg-ai .nova-followup-chip.force-focus,
.qdnapro-nova-message.nova-msg-ai .nova-source-pill:focus-visible,
.qdnapro-nova-message.nova-msg-ai .nova-source-pill.force-focus {
  outline: 2px solid var(--msg-primary);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.25);
}

.qdnapro-nova-message.nova-msg-error {
  align-self: stretch;
  padding: 12px;
  background: var(--msg-error-bg);
  border-radius: 12px;
  color: var(--msg-error-text);
  font-size: 13px;
  line-height: 20px;
  gap: 8px;
}

.qdnapro-nova-message.nova-msg-error .nova-msg-error-retry {
  align-self: flex-start;
  padding: 4px 10px;
  background: var(--msg-error-text);
  color: var(--c-text-on-action);
  border: 0;
  border-radius: 4px;
  font: inherit;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
}

.qdnapro-nova-message.nova-msg-error .nova-msg-error-retry:hover {
  opacity: 0.9;
}

.qdnapro-nova-message.nova-msg-error .nova-msg-error-retry:focus {
  outline: none;
}

.qdnapro-nova-message.nova-msg-error .nova-msg-error-retry:focus-visible,
.qdnapro-nova-message.nova-msg-error .nova-msg-error-retry.force-focus {
  outline: 2px solid var(--msg-primary);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.25);
}

.qdnapro-nova-message.nova-msg-thinking {
  align-self: flex-start;
  flex-direction: row;
  align-items: center;
  gap: 12px;
  height: 36px;
  padding: 0;
  color: var(--msg-text-secondary);
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
}

.qdnapro-nova-message.nova-msg-thinking .nova-thinking-icon {
  position: relative;
  width: 36px;
  height: 36px;
  flex-shrink: 0;
}

.qdnapro-nova-message.nova-msg-thinking .nova-thinking-sparkle {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 14px;
  margin: -7px 0 0 -7px;
  color: var(--msg-primary);
  animation: nova-msg-sparkle-orbit 2.7s ease-in-out infinite;
  will-change: transform, opacity;
}

.qdnapro-nova-message.nova-msg-thinking .nova-thinking-sparkle:nth-child(2) {
  animation-delay: -0.9s;
}

.qdnapro-nova-message.nova-msg-thinking .nova-thinking-sparkle:nth-child(3) {
  animation-delay: -1.8s;
}

.qdnapro-nova-message.nova-msg-thinking .nova-thinking-sparkle svg {
  width: 100%;
  height: 100%;
  display: block;
}

[data-theme=dark] .qdnapro-nova-message.nova-msg-thinking .nova-thinking-sparkle {
  color: #f0f1ff;
}

@keyframes nova-msg-sparkle-orbit {
  0% {
    transform: translate(0, -11px) scale(0.45);
    opacity: 0.35;
  }
  25% {
    transform: translate(11px, 0) scale(0.85);
    opacity: 0.75;
  }
  50% {
    transform: translate(0, 11px) scale(1.2);
    opacity: 1;
  }
  75% {
    transform: translate(-11px, 0) scale(0.85);
    opacity: 0.75;
  }
  100% {
    transform: translate(0, -11px) scale(0.45);
    opacity: 0.35;
  }
}
.qdnapro-nova-message.nova-msg-file {
  align-self: stretch;
  flex-direction: row;
  align-items: center;
  gap: 16px;
  padding: 12px 16px;
  background: #e6e9ff;
  border-radius: 8px;
  cursor: pointer;
  transition: background-color 120ms ease-out;
}

.qdnapro-nova-message.nova-msg-file:hover {
  background: var(--c-border-tree-bright);
}

.qdnapro-nova-message.nova-msg-file:active {
  background: var(--c-sidebar-icon);
}

.qdnapro-nova-message.nova-msg-file:focus {
  outline: none;
}

.qdnapro-nova-message.nova-msg-file:focus-visible, .qdnapro-nova-message.nova-msg-file.force-focus {
  outline: 2px solid var(--msg-primary);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.25);
}

.qdnapro-nova-message.nova-msg-file .nova-msg-file-icon-wrap {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.qdnapro-nova-message.nova-msg-file .nova-msg-file-meta {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1;
  gap: 2px;
}

.qdnapro-nova-message.nova-msg-file .nova-msg-file-name {
  font-size: 14px;
  line-height: 20px;
  font-weight: 500;
  color: var(--msg-text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-nova-message.nova-msg-file .nova-msg-file-info {
  font-size: 12px;
  line-height: 16px;
  color: var(--msg-text-secondary);
}

.qdnapro-nova-message.nova-msg-file .nova-msg-file-open {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: transparent;
  color: var(--c-purple-500);
  border: 1px solid var(--c-purple-500);
  border-radius: 8px;
  font: inherit;
  font-size: 13px;
  font-weight: 500;
  line-height: 20px;
  pointer-events: none;
}

.qdnapro-nova-message.nova-msg-file .nova-msg-file-open qdnapro-icon {
  width: 16px;
  height: 16px;
  color: var(--c-purple-500);
}

.qdnapro-nova-message.nova-msg-file .nova-msg-file-download {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  color: var(--c-purple-500);
  pointer-events: none;
}

.qdnapro-nova-message.nova-msg-file .nova-msg-file-download qdnapro-icon {
  width: 20px;
  height: 20px;
  color: inherit;
}

.qdnapro-nova-message.nova-msg-file .nova-msg-file-download qdnapro-icon svg {
  fill: var(--c-purple-500) !important;
}

[data-theme=dark] .qdnapro-nova-message.nova-msg-file {
  background: #2a2c5a;
  border-color: #6b75d6;
}

[data-theme=dark] .qdnapro-nova-message.nova-msg-file:hover {
  background: #333a7b;
}

[data-theme=dark] .qdnapro-nova-message.nova-msg-file:active {
  background: #252b5e;
}

[data-theme=dark] .qdnapro-nova-message.nova-msg-file .nova-msg-file-open,
[data-theme=dark] .qdnapro-nova-message.nova-msg-file .nova-msg-file-open qdnapro-icon {
  color: #b3bbf2;
  border-color: #6b75d6;
}

.qdnapro-number-indicator-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  border-radius: 50px;
  border: 1px solid transparent;
  padding: 0 4px;
  font-family: "Inter", sans-serif;
  text-align: center;
  white-space: nowrap;
  line-height: 1;
}
.qdnapro-number-indicator-badge:focus-visible {
  outline: 1px solid var(--c-purple-500);
  outline-offset: 2px;
}
.qdnapro-number-indicator-badge.number-indicator-badge-size-xs {
  min-width: 20px;
  height: 20px;
  font-size: 10px;
  line-height: 20px;
  opacity: 0.9;
}
.qdnapro-number-indicator-badge.number-indicator-badge-size-sm {
  min-width: 24px;
  height: 24px;
  font-size: 12px;
  line-height: 20px;
}
.qdnapro-number-indicator-badge.number-indicator-badge-size-md {
  min-width: 24px;
  height: 24px;
  font-size: 14px;
  line-height: 24px;
}
.qdnapro-number-indicator-badge.number-indicator-badge-size-lg {
  min-width: 24px;
  height: 24px;
  font-size: 16px;
  line-height: 24px;
}
.qdnapro-number-indicator-badge.number-indicator-badge-weight-regular {
  font-weight: 400;
}
.qdnapro-number-indicator-badge.number-indicator-badge-weight-medium {
  font-weight: 500;
}
.qdnapro-number-indicator-badge.number-indicator-badge-weight-bold {
  font-weight: 700;
}
.qdnapro-number-indicator-badge.number-indicator-badge-primary {
  background-color: var(--c-purple-500);
  color: var(--c-text-on-action);
}
.qdnapro-number-indicator-badge.number-indicator-badge-outlined {
  background-color: #e6e9ff;
  border-color: var(--c-purple-500);
  color: var(--c-purple-500);
}
.qdnapro-number-indicator-badge.number-indicator-badge-subtle {
  background-color: #e6e9ff;
  color: var(--c-purple-500);
}
.qdnapro-number-indicator-badge.number-indicator-badge-muted {
  background-color: rgba(107, 114, 128, 0.3019607843);
  color: var(--c-grey-500);
}
.qdnapro-number-indicator-badge.number-indicator-badge-ghost {
  background-color: transparent;
  color: var(--c-grey-500);
}
.qdnapro-number-indicator-badge.number-indicator-badge-ghost-purple {
  background-color: transparent;
  color: var(--c-purple-500);
}
.qdnapro-number-indicator-badge.number-indicator-badge-alert {
  background-color: var(--c-warn-red-500);
  color: var(--c-text-on-action);
}
.qdnapro-number-indicator-badge.number-indicator-badge-on-primary {
  background-color: var(--c-purple-700);
  color: var(--c-text-on-action);
}
.qdnapro-number-indicator-badge.number-indicator-badge-green {
  background-color: var(--c-chip-green-bg);
  border-color: var(--c-chip-green-2-bg);
  color: #2f5d4a;
}
.qdnapro-number-indicator-badge.number-indicator-badge-yellow {
  background-color: var(--c-chip-yellow-bg);
  border-color: var(--c-chip-yellow-2-bg);
  color: #655522;
}
.qdnapro-number-indicator-badge.number-indicator-badge-red {
  background-color: var(--c-signal-red-bg);
  border-color: var(--c-chip-red-2-bg);
  color: #633030;
}
.qdnapro-number-indicator-badge.number-indicator-badge-borderless {
  border-color: transparent;
}

.qdnapro-number-indicator-badge.number-indicator-badge-dot {
  padding: 0;
  font-size: 0;
  line-height: 0;
  border-width: 0;
}
.qdnapro-number-indicator-badge.number-indicator-badge-dot.number-indicator-badge-size-xs {
  width: 6px;
  height: 6px;
  min-width: 6px;
}
.qdnapro-number-indicator-badge.number-indicator-badge-dot.number-indicator-badge-size-sm {
  width: 8px;
  height: 8px;
  min-width: 8px;
}
.qdnapro-number-indicator-badge.number-indicator-badge-dot.number-indicator-badge-size-md {
  width: 10px;
  height: 10px;
  min-width: 10px;
}
.qdnapro-number-indicator-badge.number-indicator-badge-dot.number-indicator-badge-size-lg {
  width: 12px;
  height: 12px;
  min-width: 12px;
}

[data-theme=dark] .qdnapro-number-indicator-badge.number-indicator-badge-primary {
  background-color: #c4c7cc;
  color: #ffffff;
}
[data-theme=dark] .qdnapro-number-indicator-badge.number-indicator-badge-outlined {
  background-color: #0b0b0d;
  border-color: #565b66;
  color: #f0f1f2;
}
[data-theme=dark] .qdnapro-number-indicator-badge.number-indicator-badge-subtle {
  background-color: #0b0b0d;
  color: #f0f1f2;
}
[data-theme=dark] .qdnapro-number-indicator-badge.number-indicator-badge-muted {
  background-color: rgba(107, 114, 128, 0.2);
  color: #a6aab3;
}
[data-theme=dark] .qdnapro-number-indicator-badge.number-indicator-badge-ghost {
  background-color: transparent;
  color: #a6aab3;
}
[data-theme=dark] .qdnapro-number-indicator-badge.number-indicator-badge-ghost-purple {
  background-color: transparent;
  color: #f0f1f2;
}
[data-theme=dark] .qdnapro-number-indicator-badge.number-indicator-badge-alert {
  background-color: #ef4444;
  color: #ffffff;
}
[data-theme=dark] .qdnapro-number-indicator-badge.number-indicator-badge-green {
  background-color: rgba(66, 139, 110, 0.2);
  border-color: rgba(139, 236, 197, 0.4);
  color: #a7e8cd;
}
[data-theme=dark] .qdnapro-number-indicator-badge.number-indicator-badge-yellow {
  background-color: rgba(151, 127, 46, 0.2);
  border-color: rgba(253, 229, 148, 0.4);
  color: #f0dc95;
}
[data-theme=dark] .qdnapro-number-indicator-badge.number-indicator-badge-red {
  background-color: rgba(198, 90, 90, 0.2);
  border-color: rgba(251, 170, 170, 0.4);
  color: #f6c0c0;
}
[data-theme=dark] .qdnapro-number-indicator-badge.number-indicator-badge-borderless {
  border-color: transparent;
}

qdnapro-photo-gallery {
  display: block;
  width: 100%;
  --pg-cell-size: 170px;
}
qdnapro-photo-gallery * {
  box-sizing: border-box;
}
qdnapro-photo-gallery .pg-grid {
  display: grid;
  /* auto-FILL + minmax(<size>, 1fr): the KEY is auto-FILL (not auto-fit).
     auto-fill KEEPS the empty phantom tracks, so a small result set does
     NOT over-stretch (each item stays one track ≈ <size>) — that was the
     original bug with auto-fit, which collapses empty tracks and blows the
     few items up. The 1fr lets the real columns absorb the leftover width
     so the grid fills the card edge-to-edge (no empty column pooling on the
     right). Net: tile size depends only on CONTAINER WIDTH (responsive),
     never on filters or photo count. [Jan 2026-07-06] */
  grid-template-columns: repeat(auto-fill, minmax(var(--pg-cell-size, 170px), 1fr));
  gap: var(--s-3, 12px);
  justify-content: start;
}
qdnapro-photo-gallery .pg-cell {
  position: relative;
  aspect-ratio: 1/1;
  border-radius: var(--r-3, 12px);
  overflow: hidden;
  background: var(--c-bg-subtle-hover, #f0f1f2);
}
qdnapro-photo-gallery .pg-cell-thumb-btn {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
  border: none;
  background: transparent;
  cursor: pointer;
}
qdnapro-photo-gallery .pg-cell-thumb {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 220ms cubic-bezier(0.2, 0.6, 0.2, 1);
}
qdnapro-photo-gallery .pg-cell-thumb-btn:hover .pg-cell-thumb {
  transform: scale(1.05);
}
qdnapro-photo-gallery .pg-cell-thumb-btn:focus-visible {
  outline: 2px solid var(--c-brand-purple, #40499a);
  outline-offset: -2px;
}
qdnapro-photo-gallery .pg-cell.pg-cell-selected {
  box-shadow: 0 0 0 3px var(--c-brand-purple, #40499a);
}
qdnapro-photo-gallery .pg-grid.pg-selecting .pg-cell-thumb-btn {
  cursor: pointer;
}
qdnapro-photo-gallery .pg-grid.pg-selecting .pg-cell-thumb-btn:hover .pg-cell-thumb {
  transform: none;
}
qdnapro-photo-gallery .pg-cell.pg-cell-hidden .pg-cell-thumb {
  filter: grayscale(0.7);
  opacity: 0.55;
}
qdnapro-photo-gallery .pg-cell.pg-cell-hidden .pg-cell-thumb-btn:hover .pg-cell-thumb {
  opacity: 0.8;
}
qdnapro-photo-gallery .pg-cell-hidden-badge {
  position: absolute;
  bottom: var(--s-2, 8px);
  right: var(--s-2, 8px);
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 2px 6px;
  border-radius: var(--r-1, 4px);
  background: rgba(0, 0, 0, 0.62);
  color: #fff;
  font-size: 10px;
  line-height: 1.4;
  pointer-events: none;
}
qdnapro-photo-gallery .pg-cell-check {
  position: absolute;
  top: var(--s-2, 8px);
  left: var(--s-2, 8px);
  z-index: 3;
  background: rgba(255, 255, 255, 0.85);
  border-radius: var(--r-1, 4px);
  padding: 2px;
}
qdnapro-photo-gallery .pg-cell-flag {
  position: absolute;
  top: var(--s-2, 8px);
  right: var(--s-2, 8px);
  z-index: 3;
  color: var(--c-signal-red-text, #b3261e);
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.35));
  pointer-events: none;
}
qdnapro-photo-gallery .pg-cell:has(.pg-cell-id) .pg-cell-flag {
  top: 22px;
}
qdnapro-photo-gallery .pg-cell-id {
  position: absolute;
  top: 4px;
  right: 6px;
  z-index: 3;
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.2px;
  font-variant-numeric: tabular-nums;
  pointer-events: none;
  color: rgba(255, 255, 255, 0.92);
  text-shadow: 0 1px 1.5px rgba(0, 0, 0, 0.55);
}
qdnapro-photo-gallery .pg-cell-id.pg-id-dark {
  color: rgba(17, 17, 17, 0.9);
  text-shadow: 0 1px 1.5px rgba(255, 255, 255, 0.6);
}
qdnapro-photo-gallery .pg-cell-fav {
  position: absolute;
  bottom: var(--s-2, 8px);
  left: var(--s-2, 8px);
  z-index: 3;
  color: var(--c-warning-bright-border);
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.45));
  pointer-events: none;
}
qdnapro-photo-gallery .pg-cell-comments {
  position: absolute;
  bottom: var(--s-2, 8px);
  right: var(--s-2, 8px);
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 7px;
  border-radius: var(--r-pill, 999px);
  background: rgba(0, 0, 0, 0.55);
  color: var(--c-text-on-action);
  font-size: 11px;
  font-weight: 600;
  line-height: 14px;
  pointer-events: none;
}
qdnapro-photo-gallery .pg-state[hidden] {
  display: none;
}
qdnapro-photo-gallery .pg-skel-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(var(--pg-cell-size, 170px), 1fr));
  gap: var(--s-3, 12px);
  justify-content: start;
}
qdnapro-photo-gallery .pg-skel-cell {
  aspect-ratio: 1/1;
  border-radius: var(--r-3, 12px);
  background: linear-gradient(100deg, var(--c-grey-100, #f0f1f2) 30%, var(--c-grey-50, #f7f8f9) 50%, var(--c-grey-100, #f0f1f2) 70%);
  background-size: 200% 100%;
  animation: pg-skel-shimmer 1.4s ease-in-out infinite;
}
@keyframes pg-skel-shimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
qdnapro-photo-gallery .pg-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--s-2, 8px);
  padding: var(--s-8, 40px) var(--s-4, 16px);
  color: var(--c-text-muted, #6b7280);
  text-align: center;
}
qdnapro-photo-gallery .pg-empty h4 {
  margin: 0;
  color: var(--c-text-heading, #1a1f4d);
}
qdnapro-photo-gallery .pg-empty p {
  margin: 0;
  font-size: 13px;
}
qdnapro-photo-gallery .pg-sentinel {
  height: 1px;
}

qdnapro-modal.pg-lightbox.modal-size-xxlarge .modal-dialog {
  max-width: min(1400px, 95vw);
  width: 95vw;
  height: min(900px, 100vh - 48px);
}
qdnapro-modal.pg-lightbox .modal-body {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-height: 0;
  gap: 0;
}
qdnapro-modal.pg-lightbox .pg-lb-stage {
  position: relative;
  display: flex;
  align-items: stretch;
  gap: var(--s-3, 12px);
  flex: 1 1 auto;
  min-height: 0;
}
qdnapro-modal.pg-lightbox .pg-lb-hero {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
}
qdnapro-modal.pg-lightbox .pg-lb-viewport {
  position: absolute;
  inset: 0;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--r-3, 12px);
  background: var(--c-bg-subtle-hover, #f4f5fb);
}
qdnapro-modal.pg-lightbox .pg-lb-viewport.pg-zoomed {
  cursor: grab;
}
qdnapro-modal.pg-lightbox .pg-lb-viewport.pg-panning {
  cursor: grabbing;
}
qdnapro-modal.pg-lightbox .pg-lb-img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  transform-origin: center center;
  transition: transform 120ms ease-out;
  will-change: transform;
  user-select: none;
  -webkit-user-drag: none;
}
qdnapro-modal.pg-lightbox .pg-lb-viewport.pg-panning .pg-lb-img {
  transition: none;
}
qdnapro-modal.pg-lightbox .pg-lb-overlay {
  position: absolute;
  inset: 0;
  margin: auto;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  opacity: 0;
  pointer-events: none;
  transition: opacity 260ms ease;
  will-change: opacity;
  user-select: none;
  -webkit-user-drag: none;
}
qdnapro-modal.pg-lightbox .pg-lb-overlay.pg-overlay-show {
  opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
  qdnapro-modal.pg-lightbox .pg-lb-overlay {
    transition: none;
  }
}
qdnapro-modal.pg-lightbox .pg-lb-hero-tools {
  position: absolute;
  top: var(--s-2, 8px);
  right: var(--s-2, 8px);
  z-index: 4;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 3px;
  border-radius: var(--r-pill, 999px);
  background: rgba(11, 11, 13, 0.55);
  backdrop-filter: blur(6px);
}
qdnapro-modal.pg-lightbox .pg-lb-hero-tools qdnapro-icon-btn {
  color: #ffffff;
}
qdnapro-modal.pg-lightbox .pg-lb-hero-tools qdnapro-icon-btn:hover {
  background: rgba(255, 255, 255, 0.16);
}
qdnapro-modal.pg-lightbox .pg-lb-hero-tools .pg-btn-dim {
  opacity: 0.4;
  pointer-events: none;
}
qdnapro-modal.pg-lightbox .pg-lb-zoom-level {
  min-width: 44px;
  padding: 4px 6px;
  border: none;
  background: transparent;
  color: var(--c-text-on-action);
  font-size: 12px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  cursor: pointer;
  border-radius: var(--r-2, 8px);
}
qdnapro-modal.pg-lightbox .pg-lb-zoom-level:hover {
  background: rgba(255, 255, 255, 0.16);
}
qdnapro-modal.pg-lightbox .pg-lb-arrow {
  width: 40px;
  height: 40px;
  border: none;
  border-radius: 50%;
  background: var(--c-bg-subtle-purple, rgba(64, 73, 154, 0.1));
  color: var(--c-brand-purple, #40499a);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  align-self: center;
  transition: background-color 180ms ease, transform 180ms ease;
}
qdnapro-modal.pg-lightbox .pg-lb-arrow:hover {
  background: var(--c-purple-100, rgba(64, 73, 154, 0.2));
  transform: scale(1.05);
}
qdnapro-modal.pg-lightbox .pg-lb-meta {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: var(--s-3, 12px);
  margin-top: var(--s-3, 12px);
  padding-top: var(--s-3, 12px);
  border-top: 1px solid var(--c-border-soft, #e6e9ef);
  font-size: 13px;
  color: var(--c-text-muted, #6b7280);
  flex-shrink: 0;
}
qdnapro-modal.pg-lightbox .pg-lb-meta-text {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--s-3, 12px);
  flex: 1 1 auto;
  min-width: 0;
}
qdnapro-modal.pg-lightbox .pg-lb-position {
  font-weight: 600;
  color: var(--c-text-heading, #1a1f4d);
  white-space: nowrap;
}
qdnapro-modal.pg-lightbox .pg-lb-user:empty, qdnapro-modal.pg-lightbox .pg-lb-date:empty, qdnapro-modal.pg-lightbox .pg-lb-node:empty, qdnapro-modal.pg-lightbox .pg-lb-location:empty {
  display: none;
}
qdnapro-modal.pg-lightbox .pg-lb-hidden-info {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  padding: 2px 8px;
  border-radius: var(--r-1, 4px);
  background: var(--c-bg-subtle-hover, #f0f1f2);
  color: var(--c-text-subtle, #5b6070);
  font-size: 12px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
qdnapro-modal.pg-lightbox .pg-lb-hidden-info:empty {
  display: none;
}
qdnapro-modal.pg-lightbox .pg-lb-fase2-slot {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2, 8px);
  padding-left: var(--s-3, 12px);
  margin-left: auto;
  flex-shrink: 0;
  border-left: 1px solid var(--c-border-soft, #e6e9ef);
}
qdnapro-modal.pg-lightbox .pg-lb-rating {
  margin: 0 2px;
}
qdnapro-modal.pg-lightbox .pg-lb-classify-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--s-2, 8px);
  margin-top: var(--s-3, 12px);
  flex-shrink: 0;
}
qdnapro-modal.pg-lightbox .pg-lb-classify-btn.qdnapro-icon-btn {
  background: var(--c-bg-subtle-purple);
  color: var(--c-purple-500);
  flex: 0 0 auto;
}
qdnapro-modal.pg-lightbox .pg-lb-classify-btn.qdnapro-icon-btn:hover:not(.icon-btn-disabled) {
  background: var(--c-purple-50);
}
qdnapro-modal.pg-lightbox .pg-lb-classify-pills {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
}
qdnapro-modal.pg-lightbox .pg-lb-classify-none {
  color: var(--c-text-muted, #8890b8);
  font-size: 12.5px;
}
qdnapro-modal.pg-lightbox .pg-lb-actions {
  margin-top: var(--s-3, 12px);
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: var(--s-2, 8px);
  flex-shrink: 0;
}
qdnapro-modal.pg-lightbox .pg-lb-download {
  display: inline-flex;
}
qdnapro-modal.pg-lightbox .pg-lb-comments-toggle {
  position: relative;
}
qdnapro-modal.pg-lightbox .pg-lb-comments-toggle[data-count]:not([data-count=""])::after {
  content: attr(data-count);
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 15px;
  height: 15px;
  padding: 0 3px;
  border-radius: var(--r-pill, 999px);
  background: var(--c-brand-purple, #40499a);
  color: var(--c-text-on-action);
  font-size: 10px;
  font-weight: 700;
  line-height: 15px;
  text-align: center;
  pointer-events: none;
}
qdnapro-modal.pg-lightbox .pg-lb-comments-panel {
  margin-top: var(--s-3, 12px);
  padding-top: var(--s-3, 12px);
  border-top: 1px solid var(--c-border-soft, #e6e9ef);
  flex-shrink: 0;
}
qdnapro-modal.pg-lightbox .pg-lb-comments-panel[hidden] {
  display: none;
}
qdnapro-modal.pg-lightbox .pg-lb-comments-list {
  display: flex;
  flex-direction: column;
  gap: var(--s-3, 12px);
  max-height: 220px;
  overflow-y: auto;
  margin-bottom: var(--s-3, 12px);
}
qdnapro-modal.pg-lightbox .pg-comments-empty, qdnapro-modal.pg-lightbox .pg-comments-loading {
  margin: 0;
  color: var(--c-text-muted, #6b7280);
  font-size: 13px;
}
qdnapro-modal.pg-lightbox .pg-comment {
  display: flex;
  align-items: flex-start;
  gap: var(--s-2, 8px);
}
qdnapro-modal.pg-lightbox .pg-comment-avatar {
  flex-shrink: 0;
  margin-top: 2px;
}
qdnapro-modal.pg-lightbox .pg-comment-body {
  flex: 1 1 auto;
  min-width: 0;
}
qdnapro-modal.pg-lightbox .pg-comment-head {
  display: flex;
  align-items: baseline;
  gap: var(--s-2, 8px);
}
qdnapro-modal.pg-lightbox .pg-comment-author {
  font-weight: 600;
  font-size: 13px;
  color: var(--c-text-heading, #1a1f4d);
}
qdnapro-modal.pg-lightbox .pg-comment-date {
  font-size: 11px;
  color: var(--c-text-muted, #6b7280);
}
qdnapro-modal.pg-lightbox .pg-lb-comment-delete {
  margin-left: auto;
}
qdnapro-modal.pg-lightbox .pg-comment-message {
  font-size: 13px;
  color: var(--c-text-body, #333a4d);
  white-space: pre-wrap;
  word-break: break-word;
}
qdnapro-modal.pg-lightbox .pg-lb-comments-compose {
  display: flex;
  align-items: flex-end;
  gap: var(--s-2, 8px);
}
qdnapro-modal.pg-lightbox .pg-lb-comment-input {
  flex: 1 1 auto;
  min-width: 0;
}
qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .modal-backdrop {
  padding: 0;
  background: var(--c-grey-950);
}
qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .modal-dialog {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  border-radius: 0;
  border: none;
  padding: 0;
  background: var(--c-grey-950);
  box-shadow: none;
}
qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .modal-window {
  border-radius: 0;
  border: none;
  background: var(--c-grey-950);
  box-shadow: none;
}
qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .pg-lb-viewport {
  background: var(--c-grey-950);
}
qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .modal-title {
  color: var(--c-grey-50);
}
qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .pg-lb-meta, qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .pg-lb-position {
  color: var(--c-grey-50);
}
qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .pg-lb-meta, qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .pg-lb-classify-row, qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .pg-lb-comments-panel {
  border-top-color: rgba(255, 255, 255, 0.14);
}
qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .pg-lb-fase2-slot {
  border-left-color: rgba(255, 255, 255, 0.14);
}
qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .pg-lb-actions qdnapro-icon-btn {
  color: #ffffff;
}
qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .pg-lb-actions qdnapro-icon-btn:hover {
  background: rgba(255, 255, 255, 0.16);
}

qdnapro-modal.pg-classify-picker .pg-classify-list {
  display: flex;
  flex-direction: column;
  max-height: 44vh;
  overflow-y: auto;
}
qdnapro-modal.pg-classify-picker .pg-classify-check-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 4px;
  border-bottom: 1px solid var(--c-bg-subtle-purple);
  cursor: pointer;
}
qdnapro-modal.pg-classify-picker .pg-classify-check-row:last-child {
  border-bottom: none;
}
qdnapro-modal.pg-classify-picker .pg-classify-check-row input[type=checkbox] {
  width: 16px;
  height: 16px;
  cursor: pointer;
  accent-color: var(--c-brand-purple, #40499a);
}
qdnapro-modal.pg-classify-picker .pg-classify-empty {
  margin: 0;
  color: var(--c-text-muted, #6b7280);
  font-size: 13px;
}

/* ============================================================
   qdnapro-photo-tile compiled CSS
   Extracted from qdna-modal-preview.html (Kim 2026-05-29) so the
   bundle ships photo-tile styling. Keep in lockstep with the
   inline copy in qdna-photo-tile-preview.html / qdna-modal-preview.html.
   ============================================================ */
.qdnapro-photo-tile {
  --c-tile-radius: 8px;
  --c-tile-ring-radius: 12px;
  --c-tile-ring: var(--c-action-500);
  --c-tile-overlay: rgba(107, 114, 128, 0.30);
  --c-focus-ring: var(--c-purple-500);
  --c-focus-glow: rgba(70, 82, 243, 0.25);
  position: relative;
  display: inline-block;
  box-sizing: border-box;
  border: 0;
  padding: 0;
  margin: 0;
  background: transparent;
  border-radius: var(--c-tile-radius);
  overflow: visible;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: transform 120ms cubic-bezier(0.4, 0, 0.2, 1);
}

.qdnapro-photo-tile .photo-tile-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--c-tile-radius);
  -webkit-user-drag: none;
  pointer-events: none;
  /* Same desaturate treatment as .project-card-photo so tiles
     match the rest of the UI's photo aesthetic (Kim 2026-05-29). */
  filter: saturate(0.45) brightness(0.9);
}

/* Dark gradient overlay along the bottom of the tile — matches the
   `.project-card-photo::after` rule so tile + card share one visual
   language. Painted as an empty <span> sibling so it doesn't conflict
   with the tile's own ::before (hover overlay) and ::after (ring).
   (Kim 2026-05-29) */
.qdnapro-photo-tile .photo-tile-gradient {
  position: absolute;
  inset: 0;
  border-radius: var(--c-tile-radius);
  background: linear-gradient(to bottom, rgba(22, 25, 75, 0) 0%, rgba(22, 25, 75, 0.25) 50%, rgba(22, 25, 75, 0.78) 100%);
  pointer-events: none;
}

.qdnapro-photo-tile::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: var(--c-tile-radius);
  background: var(--c-tile-overlay);
  opacity: 0;
  pointer-events: none;
  transition: opacity 140ms ease;
}

.qdnapro-photo-tile:hover:not(.photo-tile-disabled)::before {
  opacity: 1;
}

.qdnapro-photo-tile::after {
  content: "";
  position: absolute;
  inset: -3px;
  border: 1px solid transparent;
  border-radius: var(--c-tile-ring-radius);
  pointer-events: none;
  transition: border-color 160ms ease;
}

.qdnapro-photo-tile.photo-tile-selected::after {
  border-color: var(--c-tile-ring);
}

/* Selected tiles also get the focus-glow box-shadow so the selection
   is visually unmistakable — without the glow the 1px ring is easy
   to miss against busy photos. (Kim 2026-05-29) */
.qdnapro-photo-tile.photo-tile-selected {
  box-shadow: 0 0 0 2px var(--c-focus-ring), 0 0 0 6px var(--c-focus-glow);
}

.qdnapro-photo-tile:active:not(.photo-tile-disabled) {
  transform: scale(0.97);
}

.qdnapro-photo-tile:active:not(.photo-tile-disabled)::before {
  opacity: 1;
  background: linear-gradient(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.15)), var(--c-tile-overlay);
}

.qdnapro-photo-tile:focus {
  outline: none;
}

.qdnapro-photo-tile:focus-visible,
.qdnapro-photo-tile.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--c-focus-ring), 0 0 0 6px var(--c-focus-glow);
}

.qdnapro-photo-tile.photo-tile-disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-photo-tile.photo-tile-small {
  width: 87px;
  height: 65px;
}

[data-theme=dark] .qdnapro-photo-tile {
  --c-tile-ring: #a5acff;
  --c-tile-overlay: rgba(0, 0, 0, 0.40);
  --c-focus-ring: #a5acff;
  --c-focus-glow: rgba(70, 82, 243, 0.40);
}

.qdnapro-picker-tile {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  text-align: left;
  padding: 0;
  border: 1px solid var(--c-border-soft-2);
  border-radius: 12px;
  background: var(--c-bg-card);
  cursor: pointer;
  font-family: inherit;
  color: var(--c-grey-950);
  overflow: hidden;
  transition: border-color 120ms ease, box-shadow 200ms ease, transform 200ms cubic-bezier(0.4, 0, 0.2, 1), background-color 120ms ease;
}

.qdnapro-picker-tile:hover {
  border-color: var(--c-purple-500);
  box-shadow: 0 1px 2px rgba(20, 25, 80, 0.04), 0 8px 18px rgba(20, 25, 80, 0.08);
  transform: translateY(-2px);
}

.qdnapro-picker-tile:focus {
  outline: none;
}

.qdnapro-picker-tile:focus-visible {
  border-color: var(--c-purple-500);
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.25);
}

.qdnapro-picker-tile.picker-tile-selected {
  border-color: var(--c-purple-500);
  background: var(--c-bg-subtle-purple);
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.18), 0 4px 14px rgba(20, 25, 80, 0.1);
}

.qdnapro-picker-tile.picker-tile-selected .picker-tile-title {
  color: var(--c-purple-500);
}

.qdnapro-picker-tile.picker-tile-disabled {
  opacity: 0.5;
  pointer-events: none;
  cursor: not-allowed;
}

.qdnapro-picker-tile .picker-tile-thumb {
  height: 110px;
  background: linear-gradient(135deg, var(--c-bg-card-hover) 0%, var(--c-bg-subtle-purple) 100%);
  display: flex;
  align-items: stretch;
  justify-content: stretch;
  padding: 12px;
  position: relative;
  overflow: hidden;
}

.qdnapro-picker-tile .picker-tile-body {
  padding: 12px 14px 14px;
}

.qdnapro-picker-tile .picker-tile-title {
  font-size: 14px;
  line-height: 20px;
  font-weight: 600;
  color: var(--c-text-heading);
  margin: 0 0 2px;
}

.qdnapro-picker-tile .picker-tile-desc {
  font-size: 12px;
  line-height: 18px;
  color: var(--c-grey-500);
  margin: 0;
}

.qdnapro-picker-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

@media (max-width: 720px) {
  .qdnapro-picker-grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 480px) {
  .qdnapro-picker-grid {
    grid-template-columns: 1fr;
  }
}
[data-theme=dark] .qdnapro-picker-tile {
  background: #2a2d36;
  border-color: rgba(255, 255, 255, 0.08);
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-picker-tile:hover {
  border-color: #a5acff;
}

[data-theme=dark] .qdnapro-picker-tile.picker-tile-selected {
  background: rgba(165, 172, 255, 0.1);
  border-color: #a5acff;
}

[data-theme=dark] .qdnapro-picker-tile.picker-tile-selected .picker-tile-title {
  color: #a5acff;
}

[data-theme=dark] .qdnapro-picker-tile .picker-tile-thumb {
  background: linear-gradient(135deg, #2e323d 0%, #2a2d36 100%);
}

[data-theme=dark] .qdnapro-picker-tile .picker-tile-title {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-picker-tile .picker-tile-desc {
  color: #a6aab3;
}

qdnapro-picker-row {
  display: flex;
  align-items: center;
  gap: 8px;
  position: relative;
  box-sizing: border-box;
  overflow: hidden;
  padding: 6px 8px 6px 10px;
  border-radius: 8px;
  border: 1px solid transparent;
  background: transparent;
  cursor: pointer;
  user-select: none;
  outline: none;
  min-height: 40px;
  transition: background 150ms ease, border-color 150ms ease;
  --pr-focus-ring: var(--c-purple-500);
  --pr-focus-glow: rgba(70, 82, 243, 0.25);
}

qdnapro-picker-row *,
qdnapro-picker-row *::before,
qdnapro-picker-row *::after {
  box-sizing: border-box;
}

qdnapro-picker-row.pr-has-meta {
  min-height: 48px;
}

qdnapro-picker-row:hover,
qdnapro-picker-row.force-hover {
  background: var(--c-bg-card-hover);
}

qdnapro-picker-row:focus-within {
  background: var(--c-bg-card-hover);
}

qdnapro-picker-row:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--pr-focus-ring), 0 0 0 5px var(--pr-focus-glow);
}

qdnapro-picker-row[draggable=true] {
  cursor: grab;
}

qdnapro-picker-row.is-dragging {
  opacity: 0.5;
  cursor: grabbing;
}

.pr-accent-bar {
  position: absolute;
  left: 4px;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 24px;
  background: var(--c-action-500);
  border-radius: 2px;
  opacity: 0;
  transition: opacity 150ms ease;
  pointer-events: none;
  z-index: 1;
}

qdnapro-picker-row:hover .pr-accent-bar,
qdnapro-picker-row:focus-within .pr-accent-bar,
qdnapro-picker-row.force-hover .pr-accent-bar {
  opacity: 1;
}

.pr-leading {
  position: relative;
  width: 28px;
  height: 28px;
  flex: none;
}

.pr-visual {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 1;
  transition: opacity 150ms ease;
}

.pr-visual qdnapro-avatar {
  flex: none;
}

.pr-options-btn {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 150ms ease;
}

qdnapro-picker-row:hover .pr-visual,
qdnapro-picker-row:focus-within .pr-visual,
qdnapro-picker-row.force-hover .pr-visual {
  opacity: 0;
}

qdnapro-picker-row:hover .pr-options-btn,
qdnapro-picker-row:focus-within .pr-options-btn,
qdnapro-picker-row.force-hover .pr-options-btn {
  opacity: 1;
  pointer-events: auto;
}

.pr-tile {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--pr-tile-bg, #eef0f2);
}

.pr-tile-color-grey {
  --pr-tile-bg: var(--c-grey-50);
}

.pr-tile-color-red {
  --pr-tile-bg: var(--c-signal-red-bg);
}

.pr-tile-color-yellow {
  --pr-tile-bg: var(--c-chip-yellow-bg);
}

.pr-tile-color-green {
  --pr-tile-bg: var(--c-chip-green-bg);
}

.pr-tile-color-blue {
  --pr-tile-bg: var(--c-signal-blue-bg);
}

.pr-tile-color-bright-blue {
  --pr-tile-bg: var(--c-chip-bright-blue-2-bg);
}

.pr-tile-color-pink {
  --pr-tile-bg: var(--c-signal-pink-bg);
}

.pr-tile-color-purple {
  --pr-tile-bg: var(--c-chip-purple-bg);
}

[data-theme=dark] .pr-tile-color-grey {
  --pr-tile-bg: #40444d;
}

[data-theme=dark] .pr-tile-color-red {
  --pr-tile-bg: #5a2b2b;
}

[data-theme=dark] .pr-tile-color-yellow {
  --pr-tile-bg: #5a4d1f;
}

[data-theme=dark] .pr-tile-color-green {
  --pr-tile-bg: #2a5544;
}

[data-theme=dark] .pr-tile-color-blue {
  --pr-tile-bg: #2e3e54;
}

[data-theme=dark] .pr-tile-color-bright-blue {
  --pr-tile-bg: #3a4a8a;
}

[data-theme=dark] .pr-tile-color-pink {
  --pr-tile-bg: #4e2a36;
}

[data-theme=dark] .pr-tile-color-purple {
  --pr-tile-bg: #3a3555;
}

.pr-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1px;
}

.pr-label {
  font-size: 13.5px;
  font-weight: 500;
  color: var(--c-text-heading);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.3;
}

.pr-meta {
  font-size: 11.5px;
  color: var(--c-text-disabled);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.3;
}

@media (prefers-reduced-motion: reduce) {
  .pr-accent-bar,
  .pr-visual,
  .pr-options-btn,
  qdnapro-picker-row {
    transition: none !important;
  }
}
[data-theme=dark] qdnapro-picker-row {
  --pr-focus-ring: #a5acff;
  --pr-focus-glow: rgba(70, 82, 243, 0.40);
}

[data-theme=dark] qdnapro-picker-row:hover,
[data-theme=dark] qdnapro-picker-row:focus-within,
[data-theme=dark] qdnapro-picker-row.force-hover {
  background: rgba(255, 255, 255, 0.06);
}

[data-theme=dark] .pr-label {
  color: #f0f1f2;
}

[data-theme=dark] .pr-meta {
  color: #a0a4b8;
}

/* qdnapro-placeholder-image — host + img styling.
   Mirrors the qdnapro-illustration approach: width-driven with auto height,
   plus an optional cover mode and a soft missing-asset fallback. */
.qdnapro-placeholder-image {
  display: inline-block;
  line-height: 0;
  border-radius: 12px;
  overflow: hidden;
  background: var(--c-grey-50);
}

.qdnapro-placeholder-image .placeholder-image-img {
  display: block;
  width: 100%;
  height: auto;
}

/* Cover mode: consumer sets width + height on the host, image fills it. */
.qdnapro-placeholder-image.placeholder-image-cover {
  line-height: 0;
}

.qdnapro-placeholder-image.placeholder-image-cover .placeholder-image-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Missing asset: soft dashed placeholder instead of a broken-image icon. */
.qdnapro-placeholder-image.placeholder-image-missing {
  position: relative;
  min-height: 80px;
  border: 1px dashed var(--c-grey-300);
  background: repeating-linear-gradient(45deg, var(--c-bg-card-hover), var(--c-bg-card-hover) 8px, var(--c-border-soft-2) 8px, var(--c-border-soft-2) 16px);
}

.qdnapro-progress {
  display: block;
  box-sizing: border-box;
  width: 100%;
  font-family: var(--theme-font-family, "Inter", sans-serif);
  --pg-fill: var(--c-success-bright);
  --pg-track: var(--c-black-12);
}

.qdnapro-progress.progress-tone-purple {
  --pg-fill: var(--c-brand-purple);
}

.qdnapro-progress.progress-tone-neutral {
  --pg-fill: var(--c-grey-500);
}

.qdnapro-progress.progress-tone-highlight {
  --pg-fill: var(--c-purple-highlight);
}

.qdnapro-progress .progress-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 6px;
}

.qdnapro-progress .progress-label {
  font-size: 13px;
  color: var(--c-text-muted);
}

.qdnapro-progress .progress-pct {
  font-size: 13px;
  font-weight: 600;
  color: var(--c-text-body);
}

.qdnapro-progress .progress-track {
  height: 6px;
  background: var(--pg-track);
  border-radius: var(--r-pill);
  overflow: hidden;
}

.qdnapro-progress .progress-fill {
  height: 100%;
  background: var(--pg-fill);
  border-radius: var(--r-pill);
  transition: width 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
  position: relative;
  overflow: hidden;
}
.qdnapro-progress .progress-fill::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.38) 50%, transparent 100%);
  animation: progress-shimmer 2.4s ease-in-out infinite;
}

@keyframes progress-shimmer {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(100%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-progress .progress-fill {
    transition: none;
  }
  .qdnapro-progress .progress-fill::after {
    animation: none;
  }
}
.qdnapro-progress.progress-indeterminate .progress-fill {
  width: 40% !important;
  transition: none;
  animation: progress-indeterminate-slide 1.2s ease-in-out infinite;
}

@keyframes progress-indeterminate-slide {
  0% {
    transform: translateX(-120%);
  }
  100% {
    transform: translateX(320%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-progress.progress-indeterminate .progress-fill {
    animation: none;
    transform: none;
    width: 50% !important;
    opacity: 0.5;
  }
  .qdnapro-progress.progress-indeterminate .progress-fill::after {
    animation: none;
  }
}
.qdnapro-progress.progress-variant-highlight {
  padding: 12px 14px;
  border-radius: var(--r-card);
  background: var(--c-black-06);
}

.qdnapro-progress.progress-variant-highlight.progress-tone-success {
  background: var(--c-signal-green-bg);
}

.qdnapro-progress.progress-variant-highlight.progress-tone-purple {
  background: var(--c-bg-secondary-purple);
}

.qdnapro-progress.progress-variant-highlight.progress-tone-neutral {
  background: var(--c-black-06);
}

.qdnapro-progress.progress-variant-highlight.progress-tone-highlight {
  background: var(--c-action-08);
}

.qdnapro-progress.progress-variant-highlight .progress-track {
  height: 8px;
}

.qdnapro-progress.progress-variant-highlight .progress-label {
  font-weight: 600;
  color: var(--c-text-body);
}

.qdnapro-progress.progress-variant-highlight .progress-pct {
  font-size: 15px;
}

.qdnapro-project-card {
  --c-card-bg: #ffffff;
  --c-card-border: var(--c-border-soft-2);
  --c-card-divider: var(--c-grey-300);
  --c-text-body: var(--c-grey-950);
  --c-text-secondary: var(--c-grey-500);
  --c-photo-fallback: linear-gradient(135deg, var(--c-border-tree-bright) 0%, var(--c-chip-purple-bg) 100%);
  /* Density scale knob: 1 = default; [density=compact] sets 0.8 so the
     whole absolute-positioned layout (sizes, positions, fonts) scales
     uniformly to the 80% look WITHOUT the zoom property. [Kim 2026-06-03] */
  --pc-scale: 1;
  display: block;
  box-sizing: border-box;
  width: 100%;
  background: var(--c-card-bg);
  border: calc(1px * var(--pc-scale)) solid var(--c-card-border);
  border-radius: calc(12px * var(--pc-scale));
  overflow: hidden;
  box-shadow: 0 calc(1px * var(--pc-scale)) calc(2px * var(--pc-scale)) rgba(20, 25, 80, 0.04), 0 calc(6px * var(--pc-scale)) calc(16px * var(--pc-scale)) rgba(20, 25, 80, 0.05);
  color: var(--c-text-body);
  font-family: "Inter", system-ui, sans-serif;
  transition: transform 140ms cubic-bezier(0.4, 0, 0.2, 1), box-shadow 140ms cubic-bezier(0.4, 0, 0.2, 1);
}

.qdnapro-project-card[data-mode=animated]:active {
  transform: scale(0.99);
  box-shadow: 0 calc(1px * var(--pc-scale)) calc(1px * var(--pc-scale)) rgba(20, 25, 80, 0.04), 0 calc(2px * var(--pc-scale)) calc(6px * var(--pc-scale)) rgba(20, 25, 80, 0.04);
}

/* ⚠️ `.project-card-menu[open]` MOET in deze uitzondering staan.
   Een open kaartmenu wordt uit de kaart getild met `position: fixed` (de kaart
   knipt zichzelf af met `overflow: hidden` hierboven). Een `transform` op een
   voorouder maakt die voorouder echter het referentiekader voor een `fixed`
   kind — dus zodra de kaart bij het INDRUKKEN van de muisknop `scale(0.99)`
   kreeg, sprong het open menu weg van onder de cursor (gemeten 10.08.2026:
   919px naar links, buiten het venster) en werd het ook nog geknipt. De
   `mouseup` landde daardoor op de kaartfoto in plaats van op het menu-item, de
   browser vuurde de klik op de KAART, en pagina's die de hele kaart klikbaar
   maken (Pulse) navigeerden weg in plaats van het menu-item uit te voeren.
   Effect: elk menu-item was met een echte muis onbruikbaar, terwijl een
   geautomatiseerde klik (indrukken+loslaten in één frame) wél werkte.
   De drie `:active`-uitzonderingen hieronder bestonden al om dezelfde reden;
   het open menu was simpelweg vergeten. */
.qdnapro-project-card[data-mode=animated]:active:has(.project-card-favorite:active,
.project-card-menu-trigger:active,
.project-card-action:active,
.project-card-menu[open]) {
  transform: none;
  box-shadow: 0 calc(1px * var(--pc-scale)) calc(2px * var(--pc-scale)) rgba(20, 25, 80, 0.04), 0 calc(6px * var(--pc-scale)) calc(16px * var(--pc-scale)) rgba(20, 25, 80, 0.05);
}

.qdnapro-project-card[data-mode=animated]:focus-visible {
  outline: none;
  box-shadow: 0 calc(1px * var(--pc-scale)) calc(2px * var(--pc-scale)) rgba(20, 25, 80, 0.04), 0 calc(6px * var(--pc-scale)) calc(16px * var(--pc-scale)) rgba(20, 25, 80, 0.05), 0 0 0 calc(4px * var(--pc-scale)) rgba(70, 82, 243, 0.25);
}

.qdnapro-project-card .project-card-frame {
  position: relative;
  min-height: calc(208px * var(--pc-scale));
}

.qdnapro-project-card .project-card-upper-clip {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: calc(50px * var(--pc-scale));
  overflow: hidden;
}

.qdnapro-project-card .project-card-photo {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: calc(124px * var(--pc-scale));
  background-size: cover;
  background-position: center;
  background-color: var(--c-border-tree-bright);
  z-index: 2;
  filter: saturate(0.45) brightness(0.9);
  transition: transform 600ms cubic-bezier(0.34, 1.05, 0.5, 1);
}

.qdnapro-project-card .project-card-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(22, 25, 75, 0) 0%, rgba(22, 25, 75, 0.25) 50%, rgba(22, 25, 75, 0.78) 100%);
  pointer-events: none;
}

.qdnapro-project-card .project-card-photo-placeholder {
  background-image: var(--c-photo-fallback);
}

.qdnapro-project-card .project-card-header {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: calc(44px * var(--pc-scale));
  padding: calc(8px * var(--pc-scale)) calc(44px * var(--pc-scale)) 0 calc(8px * var(--pc-scale));
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  z-index: 1;
}

.qdnapro-project-card .project-card-logo {
  border-radius: calc(4px * var(--pc-scale)) !important;
}

.qdnapro-project-card .project-card-header-actions {
  display: inline-flex;
  align-items: center;
  gap: calc(4px * var(--pc-scale));
}

.qdnapro-project-card .project-card-name {
  position: absolute;
  top: calc(132px * var(--pc-scale));
  left: 0;
  right: calc(56px * var(--pc-scale));
  margin: 0;
  padding: 0 calc(8px * var(--pc-scale));
  font-size: calc(16px * var(--pc-scale));
  line-height: calc(24px * var(--pc-scale));
  font-weight: 600;
  color: var(--c-text-body);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  z-index: 3;
  will-change: transform;
  transition: transform 600ms cubic-bezier(0.34, 1.05, 0.5, 1), right 600ms cubic-bezier(0.34, 1.05, 0.5, 1);
}

.qdnapro-project-card .project-card-org {
  position: absolute;
  top: calc(160px * var(--pc-scale));
  left: 0;
  right: 0;
  margin: 0;
  padding: 0 calc(8px * var(--pc-scale));
  font-size: calc(12px * var(--pc-scale));
  line-height: calc(20px * var(--pc-scale));
  font-weight: 400;
  color: var(--c-text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  z-index: 1;
  will-change: transform;
  transition: transform 600ms cubic-bezier(0.34, 1.05, 0.5, 1);
}

.qdnapro-project-card .project-card-info {
  position: absolute;
  top: calc(184px * var(--pc-scale));
  left: 0;
  right: 0;
  height: calc(28px * var(--pc-scale));
  padding: 0 calc(8px * var(--pc-scale));
  display: flex;
  align-items: center;
  justify-content: space-between;
  z-index: 1;
  will-change: transform;
  transition: transform 600ms cubic-bezier(0.34, 1.05, 0.5, 1);
}

.qdnapro-project-card .project-card-team {
  display: inline-flex;
  align-items: center;
}

.qdnapro-project-card .project-card-date {
  display: inline-flex;
  align-items: center;
  gap: calc(4px * var(--pc-scale));
  color: var(--c-text-secondary);
  font-size: calc(10px * var(--pc-scale));
  line-height: calc(20px * var(--pc-scale));
}

.qdnapro-project-card .project-card-date qdnapro-icon {
  color: currentColor;
}

.qdnapro-project-card .project-card-top-actions {
  position: absolute;
  top: calc(8px * var(--pc-scale));
  right: calc(8px * var(--pc-scale));
  z-index: 4;
  display: inline-flex;
  align-items: center;
}

.qdnapro-project-card .project-card-favorite {
  flex: 0 0 auto;
  width: calc(32px * var(--pc-scale));
  height: calc(32px * var(--pc-scale));
  background-color: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(calc(8px * var(--pc-scale))) saturate(1.5);
  -webkit-backdrop-filter: blur(calc(8px * var(--pc-scale))) saturate(1.5);
  box-shadow: 0 calc(1px * var(--pc-scale)) calc(3px * var(--pc-scale)) rgba(0, 0, 0, 0.08), 0 0 0 calc(1px * var(--pc-scale)) rgba(0, 0, 0, 0.04);
  transition: opacity 200ms ease, background-color 160ms ease;
}

.qdnapro-project-card .project-card-favorite:not(.favorite-button-favorited) {
  opacity: 0;
  pointer-events: none;
}

.qdnapro-project-card:hover .project-card-favorite:not(.favorite-button-favorited), .qdnapro-project-card:focus-within .project-card-favorite:not(.favorite-button-favorited) {
  opacity: 1;
  pointer-events: auto;
}

.qdnapro-project-card .project-card-favorite:hover {
  background-color: rgba(255, 255, 255, 0.75);
}

.qdnapro-project-card .project-card-menu-trigger {
  flex: 0 0 auto;
  width: 0 !important;
  min-width: 0 !important;
  max-width: 0;
  height: calc(32px * var(--pc-scale)) !important;
  min-height: calc(32px * var(--pc-scale)) !important;
  max-height: calc(32px * var(--pc-scale)) !important;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  margin-left: 0;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transition: max-width 200ms cubic-bezier(0.4, 0, 0.2, 1), width 200ms cubic-bezier(0.4, 0, 0.2, 1), min-width 200ms cubic-bezier(0.4, 0, 0.2, 1), margin-left 200ms cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms ease, background 120ms ease;
}

.qdnapro-project-card:hover .project-card-menu-trigger, .qdnapro-project-card:focus-within .project-card-menu-trigger {
  width: calc(32px * var(--pc-scale)) !important;
  min-width: calc(32px * var(--pc-scale)) !important;
  max-width: calc(32px * var(--pc-scale));
  opacity: 1;
  pointer-events: auto;
  margin-left: calc(8px * var(--pc-scale));
  background: rgba(255, 255, 255, 0.55) !important;
  backdrop-filter: blur(calc(8px * var(--pc-scale))) saturate(1.5);
  -webkit-backdrop-filter: blur(calc(8px * var(--pc-scale))) saturate(1.5);
  box-shadow: 0 calc(1px * var(--pc-scale)) calc(3px * var(--pc-scale)) rgba(0, 0, 0, 0.08), 0 0 0 calc(1px * var(--pc-scale)) rgba(0, 0, 0, 0.04);
}

.qdnapro-project-card:hover .project-card-menu-trigger:hover, .qdnapro-project-card:focus-within .project-card-menu-trigger:hover {
  background: rgba(255, 255, 255, 0.75) !important;
}

.qdnapro-project-card .project-card-divider {
  position: absolute;
  bottom: calc(50px * var(--pc-scale));
  left: 0;
  right: 0;
  height: calc(1px * var(--pc-scale));
  background: var(--c-card-divider);
  z-index: 4;
}

/* Checklist action — hidden until the backend feature lands.
   (Kim 2026-05-30 — placeholder, re-enable when the page exists.) */
.qdnapro-project-card .project-card-action-list {
  display: none !important;
}

/* ============================================================
   Archived variant — set via [archived] attribute on the host.
   Photo is heavily desaturated, pin-button is hidden, a
   "Gearchiveerd" chip sits top-left, and a diagonal GEARCHIVEERD
   watermark crosses the photo. (Kim 2026-05-29)
   ============================================================ */
.qdnapro-project-card[archived] {
  opacity: 0.85;
}

.qdnapro-project-card[archived] .project-card-photo {
  filter: saturate(0.15) brightness(0.85);
}

.qdnapro-project-card[archived] .project-card-favorite {
  display: none !important;
}

/* Status pill (slot="status") — top-left on the photo, above the photo (z=2)
   and out of the way of the pin + hover menu, which own the top-RIGHT corner.
   The pill itself is a qdnapro-tag variant="glass" handed in by the consumer;
   this rule only places it. NB that variant is WHITE glass, while the archived
   chip below is dark: they started as the same recipe and were split on
   19.08.2026 because dark read too heavy on a Pulse tile. Scale-aware like everything else in the card, so it
   shrinks along at density="compact". [19.08.2026]
   Note it sits INSIDE the upper clip, so in the `compact` animation (where the
   photo slides up out of view on hover) the pill stays put and ends up over the
   revealed back layer — same behaviour as the archived chip below. In `overlay`
   (what Pulse uses) the photo does not move, so it stays on the photo. */
.qdnapro-project-card .project-card-status {
  position: absolute;
  top: calc(8px * var(--pc-scale));
  left: calc(8px * var(--pc-scale));
  z-index: 4;
  pointer-events: none;
}

.qdnapro-project-card .project-card-archived-chip {
  position: absolute;
  top: calc(8px * var(--pc-scale));
  left: calc(8px * var(--pc-scale));
  z-index: 4;
  display: inline-flex;
  align-items: center;
  gap: calc(4px * var(--pc-scale));
  padding: calc(4px * var(--pc-scale)) calc(9px * var(--pc-scale)) calc(4px * var(--pc-scale)) calc(7px * var(--pc-scale));
  background: rgba(40, 42, 52, 0.72);
  border: calc(1px * var(--pc-scale)) solid rgba(255, 255, 255, 0.2);
  border-radius: calc(999px * var(--pc-scale));
  backdrop-filter: blur(calc(8px * var(--pc-scale))) saturate(1.2);
  -webkit-backdrop-filter: blur(calc(8px * var(--pc-scale))) saturate(1.2);
  color: var(--c-text-on-action);
  font-size: calc(11px * var(--pc-scale));
  font-weight: 500;
  line-height: calc(14px * var(--pc-scale));
  letter-spacing: calc(0.2px * var(--pc-scale));
  pointer-events: none;
}

.qdnapro-project-card .project-card-archived-chip qdnapro-icon {
  color: var(--c-text-on-action);
  flex: 0 0 auto;
}

.qdnapro-project-card .project-card-watermark {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 3;
  transform: translate(-50%, -50%) rotate(-18deg);
  pointer-events: none;
  white-space: nowrap;
  font-size: calc(22px * var(--pc-scale));
  font-weight: 800;
  letter-spacing: calc(4px * var(--pc-scale));
  color: rgba(255, 255, 255, 0.55);
  text-shadow: 0 calc(2px * var(--pc-scale)) calc(6px * var(--pc-scale)) rgba(0, 0, 0, 0.45), 0 0 calc(1px * var(--pc-scale)) rgba(0, 0, 0, 0.6);
  text-transform: uppercase;
}

/* Slot="menu" qdnapro-menu — sits as a floating popover anchored
   to the 3-dots trigger. Hidden by default; the menu's `open`
   attribute (toggled by qdnapro-project-card._toggleMenu) reveals
   it. (Kim 2026-05-29) */
.qdnapro-project-card .project-card-menu {
  position: absolute;
  top: calc(48px * var(--pc-scale));
  right: calc(8px * var(--pc-scale));
  z-index: 6;
  display: none;
}

.qdnapro-project-card .project-card-menu[open] {
  display: inline-flex;
}

.qdnapro-project-card .project-card-actions {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: calc(50px * var(--pc-scale));
  padding: calc(4px * var(--pc-scale)) calc(8px * var(--pc-scale)) calc(8px * var(--pc-scale));
  display: flex;
  align-items: center;
  justify-content: space-between;
  z-index: 4;
  background: var(--c-card-bg);
}

.qdnapro-project-card .project-card-actions-left {
  display: inline-flex;
  align-items: center;
  gap: calc(8px * var(--pc-scale));
}

.qdnapro-project-card .project-card-action-date {
  display: inline-flex;
  align-items: center;
  gap: calc(4px * var(--pc-scale));
  color: var(--c-text-secondary);
  font-size: calc(12px * var(--pc-scale));
  line-height: calc(20px * var(--pc-scale));
  white-space: nowrap;
}

.qdnapro-project-card .project-card-action-date qdnapro-icon {
  color: currentColor;
}

.qdnapro-project-card .project-card-action-comments,
.qdnapro-project-card .project-card-action-bell {
  position: relative;
}

/* Non-interactive action indicators (Kim 2026-06-02): the lightbulb (task
   count) + bell have no behaviour yet, so they read as static info — no
   hover highlight, no hand-cursor — until interaction is built. Paired with
   tabindex -1 + a click guard in JS so they are neither focusable nor
   clickable. !important beats the qdnapro-button :hover/cursor rules. */
.qdnapro-project-card .project-card-action-static {
  cursor: default !important;
}

.qdnapro-project-card .project-card-action-static:hover,
.qdnapro-project-card .project-card-action-static:active {
  background: transparent !important;
}

.qdnapro-project-card .project-card-badge {
  position: absolute;
  top: calc(8px * var(--pc-scale));
  right: calc(6px * var(--pc-scale));
  width: calc(8px * var(--pc-scale));
  height: calc(8px * var(--pc-scale));
  border-radius: 50%;
  background: var(--c-warn-red-500);
  pointer-events: none;
}

.qdnapro-project-card[data-mode=animated][data-animation=compact] {
  cursor: pointer;
}

.qdnapro-project-card[data-mode=animated][data-animation=compact] .project-card-header {
  display: none;
}

.qdnapro-project-card[data-mode=animated][data-animation=compact] .project-card-photo {
  transform: translateY(0) scale(1);
  transition: transform 600ms cubic-bezier(0.34, 1.05, 0.5, 1) 300ms;
}

.qdnapro-project-card[data-mode=animated][data-animation=compact] .project-card-name {
  transition: transform 420ms cubic-bezier(0.34, 1.56, 0.64, 1), right 420ms cubic-bezier(0.34, 1.05, 0.5, 1);
  transition-delay: 120ms;
}

.qdnapro-project-card[data-mode=animated][data-animation=compact] .project-card-org {
  transition: transform 420ms cubic-bezier(0.34, 1.56, 0.64, 1);
  transition-delay: 60ms;
}

.qdnapro-project-card[data-mode=animated][data-animation=compact] .project-card-info {
  transition: transform 420ms cubic-bezier(0.34, 1.56, 0.64, 1);
  transition-delay: 0ms;
}

.qdnapro-project-card[data-mode=animated][data-animation=compact]:hover .project-card-photo, .qdnapro-project-card[data-mode=animated][data-animation=compact]:focus-within .project-card-photo {
  transform: translateY(calc(-78px * var(--pc-scale))) scale(1.15);
  transition-delay: 200ms;
  pointer-events: none;
}

.qdnapro-project-card[data-mode=animated][data-animation=compact]:hover .project-card-name, .qdnapro-project-card[data-mode=animated][data-animation=compact]:focus-within .project-card-name {
  transform: translateY(calc(-62px * var(--pc-scale)));
  right: 0;
  transition-delay: 400ms;
}

.qdnapro-project-card[data-mode=animated][data-animation=compact]:hover .project-card-org, .qdnapro-project-card[data-mode=animated][data-animation=compact]:focus-within .project-card-org {
  transform: translateY(calc(-62px * var(--pc-scale)));
  transition-delay: 460ms;
}

.qdnapro-project-card[data-mode=animated][data-animation=compact]:hover .project-card-info, .qdnapro-project-card[data-mode=animated][data-animation=compact]:focus-within .project-card-info {
  transform: translateY(calc(-62px * var(--pc-scale)));
  transition-delay: 520ms;
}

.qdnapro-project-card[data-mode=static-front] .project-card-name {
  transition: none;
}

.qdnapro-project-card[data-mode=static-back] .project-card-name {
  transform: translateY(calc(-88px * var(--pc-scale)));
  transition: none;
  right: 0;
}

.qdnapro-project-card[data-mode=static-back] .project-card-org,
.qdnapro-project-card[data-mode=static-back] .project-card-info {
  transform: translateY(calc(-88px * var(--pc-scale)));
  transition: none;
}

/* ============================================================
   ANIMATION VARIANT: overlay (experiment, Kim 2026-05-29)
   ============================================================
   Rust state: photo extends down to the divider position (calc(158px * var(--pc-scale))
   instead of 124). Title sits in its idle position but white on
   the gradient. Keyline hidden.
   Hover: photo subtle zoom 1.06 (no translate). Title, org and
   date staggered translate up onto the photo. All three get a
   glass-pill background. Avatars stay free (no glass). */
.qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-header,
.qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-divider {
  display: none;
}

/* Photo: taller (down to keyline) + subtle zoom on hover. */
.qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-photo {
  height: calc(158px * var(--pc-scale));
  transform: scale(1);
  transition: transform 600ms cubic-bezier(0.34, 1.05, 0.5, 1);
}

.qdnapro-project-card[data-mode=animated][data-animation=overlay]:hover .project-card-photo,
.qdnapro-project-card[data-mode=animated][data-animation=overlay]:focus-within .project-card-photo {
  transform: scale(1.06);
}

/* Title: white in idle (already on photo gradient). On hover it
   also becomes a glass-pill. */
.qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-name {
  color: var(--c-text-on-action);
  text-shadow: 0 calc(1px * var(--pc-scale)) calc(3px * var(--pc-scale)) rgba(0, 0, 0, 0.5);
  z-index: 3;
  transition: transform 420ms cubic-bezier(0.34, 1.56, 0.64, 1), right 420ms cubic-bezier(0.34, 1.05, 0.5, 1);
  transition-delay: 120ms;
}

.qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-org {
  color: var(--c-text-on-action);
  text-shadow: 0 calc(1px * var(--pc-scale)) calc(3px * var(--pc-scale)) rgba(0, 0, 0, 0.5);
  z-index: 3;
  transition: transform 420ms cubic-bezier(0.34, 1.56, 0.64, 1);
  transition-delay: 60ms;
}

.qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-info {
  z-index: 3;
  transition: transform 420ms cubic-bezier(0.34, 1.56, 0.64, 1);
  transition-delay: 0ms;
}

.qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-date {
  color: var(--c-text-on-action);
  text-shadow: 0 calc(1px * var(--pc-scale)) calc(3px * var(--pc-scale)) rgba(0, 0, 0, 0.5);
}

.qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-date qdnapro-icon {
  color: var(--c-text-on-action);
}

/* HOVER: stagger up + glass-pill backgrounds appear. */
.qdnapro-project-card[data-mode=animated][data-animation=overlay]:hover .project-card-name,
.qdnapro-project-card[data-mode=animated][data-animation=overlay]:focus-within .project-card-name {
  transform: translateY(calc(-62px * var(--pc-scale)));
  transition-delay: 400ms;
}

.qdnapro-project-card[data-mode=animated][data-animation=overlay]:hover .project-card-org,
.qdnapro-project-card[data-mode=animated][data-animation=overlay]:focus-within .project-card-org {
  transform: translateY(calc(-62px * var(--pc-scale)));
  transition-delay: 460ms;
}

.qdnapro-project-card[data-mode=animated][data-animation=overlay]:hover .project-card-info,
.qdnapro-project-card[data-mode=animated][data-animation=overlay]:focus-within .project-card-info {
  transform: translateY(calc(-62px * var(--pc-scale)));
  transition-delay: 520ms;
}

@keyframes pc-compact-photo-in {
  0% {
    transform: translateY(0) scale(1);
  }
  25% {
    transform: translateY(0) scale(1.15);
  }
  100% {
    transform: translateY(-78px) scale(1.15);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-project-card[data-mode=animated][data-animation=compact] .project-card-photo,
  .qdnapro-project-card[data-mode=animated][data-animation=compact] .project-card-name,
  .qdnapro-project-card[data-mode=animated][data-animation=compact] .project-card-org,
  .qdnapro-project-card[data-mode=animated][data-animation=compact] .project-card-info {
    transition: none;
    animation: none;
  }
  .qdnapro-project-card[data-mode=animated][data-animation=compact]:hover .project-card-photo, .qdnapro-project-card[data-mode=animated][data-animation=compact]:focus-within .project-card-photo {
    transform: translateY(calc(-124px * var(--pc-scale)));
    animation: none;
  }
  .qdnapro-project-card[data-mode=animated][data-animation=compact]:hover .project-card-name, .qdnapro-project-card[data-mode=animated][data-animation=compact]:focus-within .project-card-name {
    transform: translateY(calc(-88px * var(--pc-scale)));
  }
  .qdnapro-project-card[data-mode=animated][data-animation=compact]:hover .project-card-org, .qdnapro-project-card[data-mode=animated][data-animation=compact]:focus-within .project-card-org, .qdnapro-project-card[data-mode=animated][data-animation=compact]:hover .project-card-info, .qdnapro-project-card[data-mode=animated][data-animation=compact]:focus-within .project-card-info {
    transform: translateY(calc(-88px * var(--pc-scale)));
  }
  /* Overlay variant: drop the staggered easing, snap into place. */
  .qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-photo,
  .qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-name,
  .qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-org,
  .qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-info,
  .qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-date {
    transition: none;
    animation: none;
  }
  .qdnapro-project-card[data-mode=animated][data-animation=overlay]:hover .project-card-name,
  .qdnapro-project-card[data-mode=animated][data-animation=overlay]:focus-within .project-card-name,
  .qdnapro-project-card[data-mode=animated][data-animation=overlay]:hover .project-card-org,
  .qdnapro-project-card[data-mode=animated][data-animation=overlay]:focus-within .project-card-org,
  .qdnapro-project-card[data-mode=animated][data-animation=overlay]:hover .project-card-info,
  .qdnapro-project-card[data-mode=animated][data-animation=overlay]:focus-within .project-card-info {
    transform: translateY(calc(-62px * var(--pc-scale)));
  }
}
[data-theme=dark] .qdnapro-project-card {
  --c-card-bg: #2a2d36;
  --c-card-border: rgba(255, 255, 255, 0.08);
  --c-card-divider: rgba(255, 255, 255, 0.12);
  --c-text-body: #f0f1f2;
  --c-text-secondary: #a6aab3;
  --c-photo-fallback: linear-gradient(135deg, #2e323d 0%, #2a2d36 100%);
  box-shadow: 0 calc(1px * var(--pc-scale)) calc(2px * var(--pc-scale)) rgba(0, 0, 0, 0.3), 0 calc(6px * var(--pc-scale)) calc(16px * var(--pc-scale)) rgba(0, 0, 0, 0.2);
}

/* ============================================================
   Density: compact — uniform 0.8 scale of the whole card so it
   matches the legacy 80%-zoom look while the page renders at 100%.
   Non-breaking: cards without [density] keep --pc-scale:1. [Kim 2026-06-03]
   ============================================================ */
.qdnapro-project-card[density=compact] {
  --pc-scale: 0.8;
}

.qdnapro-pulse-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  box-sizing: border-box;
  padding: 16px;
  background: var(--c-bg-card, #ffffff);
  border: 1px solid var(--c-border-card, #e1e3e6);
  border-radius: 16px;
  box-shadow: var(--shadow-card, 0 1px 2px rgba(20, 25, 80, 0.04), 0 4px 16px rgba(20, 25, 80, 0.04));
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.qdnapro-pulse-flash,
.qdnapro-pulse-document,
.qdnapro-pulse-action,
.qdnapro-pulse-video,
.qdnapro-pulse-poll,
.qdnapro-pulse-question {
  display: contents;
}

.qdnapro-pulse-card[data-pulse-done="1"] {
  gap: 6px;
}

.qdnapro-pulse-card[data-pulse-done="1"] .pulse-card__title {
  font-size: 15px;
  font-weight: 600;
}

.qdnapro-pulse-card .pt-kop {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}

.qdnapro-pulse-card .pt-kop__tekst {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1 1 auto;
}

.qdnapro-pulse-card .pt-kop__campagne {
  justify-content: flex-start;
  font-size: 13px;
  font-weight: 600;
  color: var(--c-text-muted, #6b7280);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-pulse-card .pt-kop__tijd {
  font-size: 12px;
  color: var(--c-text-muted, #6b7280);
}

.qdnapro-pulse-card .pt-kop__tags {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  flex-shrink: 1;
}

.qdnapro-pulse-card .pt-kop__tags qdnapro-tag[data-pulse-type-tag] {
  min-width: 0;
  flex-shrink: 1;
}

.qdnapro-pulse-card .pt-kop__tags qdnapro-tag[data-pulse-type-tag] .tag-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-pulse-card .pulse-card__title {
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  color: var(--c-text, #0b0b0d);
}

.qdnapro-pulse-card .pulse-card__body {
  font-size: 15px;
  line-height: 1.5;
  color: var(--c-text, #0b0b0d);
}

.qdnapro-pulse-card .pulse-card__body p {
  margin: 0 0 8px;
}

.qdnapro-pulse-card .pulse-card__body p:last-child {
  margin-bottom: 0;
}

.qdnapro-pulse-card .pulse-card__image {
  display: block;
  width: 100%;
  max-width: 100%;
  max-height: 320px;
  object-fit: contain;
  background: var(--c-bg-card, #ffffff);
  border-radius: 0;
}

.qdnapro-pulse-card .pulse-card__note {
  font-size: 13px;
  color: var(--c-text-muted, #6b7280);
}

.qdnapro-pulse-cta {
  position: relative;
  display: inline-flex;
  min-width: 220px;
  max-width: 100%;
  margin: 4px 0 12px;
  border-radius: 999px;
  overflow: hidden;
  isolation: isolate;
}

.qdnapro-pulse-cta qdnapro-button,
.qdnapro-pulse-cta .pulse-card__cta-btn {
  flex: 1 1 auto;
}

.qdnapro-pulse-cta::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -60%;
  width: 55%;
  pointer-events: none;
  background: linear-gradient(100deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.55) 50%, rgba(255, 255, 255, 0) 100%);
  transform: skewX(-18deg);
  animation: pulse-cta-shimmer 3.2s ease-in-out infinite;
}

.qdnapro-pulse-cta.pulse-card__cta--no-shimmer::after {
  animation: none;
  opacity: 0;
}

@keyframes pulse-cta-shimmer {
  0% {
    left: -60%;
  }
  45% {
    left: 115%;
  }
  100% {
    left: 115%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-pulse-cta::after {
    animation: none;
    opacity: 0;
  }
}
.qdnapro-pulse-card .pulse-doc {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  background: var(--c-grey-50, #f7f7f9);
}

.qdnapro-pulse-card .pulse-doc qdnapro-icon {
  flex: 0 0 auto;
  color: var(--c-text-muted, #6b7280);
}

.qdnapro-pulse-card .pulse-doc__name {
  min-width: 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--c-text, #0b0b0d);
  overflow-wrap: anywhere;
}

.qdnapro-pulse-card.pulse-card--blocked .pulse-doc {
  opacity: 0.55;
}

.qdnapro-pulse-card .pulse-action {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.qdnapro-pulse-card .pulse-video {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  margin: 4px 0 12px;
  border-radius: 12px;
  overflow: hidden;
  background: #000;
}

@supports not (aspect-ratio: 16/9) {
  .qdnapro-pulse-card .pulse-video {
    height: 0;
    padding-bottom: 56.25%;
  }
}
.qdnapro-pulse-card .pulse-video__frame {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.qdnapro-pulse-card .pulse-card__options {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.qdnapro-pulse-question .pulse-card__options .qdnapro-answer-button.qdnapro-answer-button--green {
  background: var(--c-chip-green-bg, #e2faf1);
  color: var(--c-chip-green-text, #2f5d4a);
}

.qdnapro-pulse-question .pulse-card__options .qdnapro-answer-button.qdnapro-answer-button--green .qdnapro-answer-button__tick {
  opacity: 1;
  background: var(--c-success-bright, #1d9e75);
  border-color: var(--c-success-bright, #1d9e75);
  color: #fff;
}

.qdnapro-pulse-question .pulse-card__options .qdnapro-answer-button.qdnapro-answer-button--green .qdnapro-answer-button__check {
  stroke-dashoffset: 0;
}

.qdnapro-pulse-question .pulse-card__options .qdnapro-answer-button.qdnapro-answer-button--red {
  background: var(--c-chip-red-bg, #fee3e3);
  color: var(--c-chip-red-text, #633030);
}

.qdnapro-pulse-card .pulse-card__verdict {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 600;
}

.qdnapro-pulse-card .pulse-card__verdict[data-verdict=correct] {
  color: var(--c-signal-green-text, #428b6e);
}

.qdnapro-pulse-card .pulse-card__verdict[data-verdict=incorrect] {
  color: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-pulse-card .pulse-card__feedback {
  font-size: 14px;
  line-height: 1.5;
  color: var(--c-text-muted, #6b7280);
}

.qdnapro-pulse-card .pulse-card__dist {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 2px;
}

.qdnapro-pulse-card .pulse-card__queued {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 14px;
  line-height: 20px;
  color: #40499a;
}

.qdnapro-pulse-card .pulse-card__queued qdnapro-icon {
  flex-shrink: 0;
}

.qdnapro-pulse-card .pulse-poll {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.qdnapro-pulse-card .pulse-poll__option {
  position: relative;
  overflow: hidden;
  padding: 10px 12px;
  border: 1px solid var(--c-border-card, #e1e3e6);
  border-radius: var(--r-row, 12px);
  background: var(--c-chip-grey-bg, #f0f1f2);
  cursor: pointer;
  transition: border-color 120ms ease, transform 120ms ease;
}

.qdnapro-pulse-card .pulse-poll__option:not([aria-disabled=true]):hover,
.qdnapro-pulse-card .pulse-poll__option:not([aria-disabled=true]):focus-visible {
  border-color: var(--c-brand-purple, #40499a);
  outline: none;
}

.qdnapro-pulse-card .pulse-poll__option:not([aria-disabled=true]):active {
  transform: scale(0.99);
}

.qdnapro-pulse-card .pulse-poll__option[aria-disabled=true] {
  cursor: default;
  pointer-events: none;
}

.qdnapro-pulse-card .pulse-poll__option--mine {
  border-color: var(--c-brand-purple, #40499a);
}

.qdnapro-pulse-card .pulse-poll__row {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 8px;
}

.qdnapro-pulse-card .pulse-poll__tick {
  flex-shrink: 0;
  color: var(--c-brand-purple, #40499a);
}

.qdnapro-pulse-card .pulse-poll__label {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 15px;
  color: var(--c-text, #0b0b0d);
  overflow-wrap: anywhere;
}

.qdnapro-pulse-card .pulse-poll__option--mine .pulse-poll__label {
  font-weight: 600;
}

.qdnapro-pulse-card .pulse-poll__count {
  flex-shrink: 0;
  min-width: 1.5em;
  font-size: 14px;
  font-weight: 600;
  text-align: right;
  color: var(--c-text-muted, #6b7280);
}

.qdnapro-pulse-card .pulse-poll__option--mine .pulse-poll__count {
  color: var(--c-chip-purple-text, #413b5e);
}

.qdnapro-pulse-card .pulse-poll__option qdnapro-progress {
  margin-top: 8px;
}

.qdnapro-pulse-card .pt-footer {
  display: flex;
  align-items: center;
  gap: 16px;
}

.qdnapro-pulse-card .pt-footer__actions {
  display: flex;
  align-items: center;
}

.qdnapro-pulse-card .pt-footer__actie {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 12px;
  color: var(--c-text-muted, #6b7280);
  cursor: pointer;
}

.qdnapro-pulse-card .pt-footer__actie:first-child {
  padding-left: 16px;
}

.qdnapro-pulse-card .pt-footer__actie[aria-pressed=true] qdnapro-icon {
  color: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-pulse-card .pt-footer__actie[data-pulse-heart][aria-disabled=true] {
  color: var(--c-text-disabled, #898e99);
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-pulse-card .pt-footer__teller {
  font-size: 13px;
  font-weight: 600;
}

.qdnapro-pulse-card .pt-footer__rechts {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.qdnapro-pulse-card .pt-footer__status {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 13px;
  color: var(--c-text-muted, #6b7280);
}

.qdnapro-pulse-card .pt-footer__status-check {
  color: var(--c-brand-purple, #40499A);
}

.qdnapro-pulse-card .pt-footer__status-btn {
  flex-shrink: 0;
}

.qdnapro-pulse-card .pt-footer__rechts > * + .pt-reactie-samenvatting {
  border-left: 1px solid var(--c-border-card, #e1e3e6);
  padding-left: 10px;
  margin-left: 2px;
}

.qdnapro-pulse-card .pt-reactie-samenvatting {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 4px 8px 4px 4px;
  margin: -4px -8px -4px -4px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  color: var(--c-text-muted, #6b7280);
  cursor: pointer;
}

.qdnapro-pulse-card .pt-reactie-samenvatting:hover,
.qdnapro-pulse-card .pt-reactie-samenvatting:focus-visible {
  background: var(--c-bg-subtle-hover, #f0f1f2);
  outline: none;
}

.qdnapro-pulse-card .pt-reactie-samenvatting:active {
  background: var(--c-bg-subtle-hover, #f0f1f2);
  transform: scale(0.97);
}

.qdnapro-pulse-card .pt-reactie-samenvatting__stapel {
  display: flex;
  align-items: center;
}

.qdnapro-pulse-card .pt-reactie-samenvatting__badge {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  font-size: 11px;
  line-height: 1;
  border-radius: 50%;
  background: var(--c-bg-card, #ffffff);
  border: 2px solid var(--c-bg-card, #ffffff);
  box-shadow: 0 0 0 1px var(--c-border-card, #e1e3e6);
  overflow: hidden;
}

.qdnapro-pulse-card .pt-reactie-samenvatting__badge + .pt-reactie-samenvatting__badge {
  margin-left: -6px;
}

.qdnapro-pulse-card .pt-reactie-samenvatting__badge svg {
  width: 100%;
  height: 100%;
}

.qdnapro-pulse-card .pt-reactie-samenvatting__totaal {
  margin-left: 2px;
}

.qdnapro-pulse-canvas {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16/10;
  overflow: hidden;
  box-sizing: border-box;
  background: var(--c-bg-card, #ffffff);
  font-family: var(--theme-font-family, "Inter", sans-serif);
  isolation: isolate;
  container-type: inline-size;
  container-name: qpc-card;
}

@supports not (aspect-ratio: 16/10) {
  .qdnapro-pulse-canvas {
    height: 0;
    padding-bottom: 62.5%;
  }
}
.qdnapro-pulse-canvas .qpc-color {
  position: absolute;
  inset: 0;
}

.qdnapro-pulse-canvas .qpc-pattern {
  position: absolute;
  inset: 0;
  mask-repeat: repeat;
  -webkit-mask-repeat: repeat;
  mask-position: center;
  -webkit-mask-position: center;
  mask-size: 96px 96px;
  -webkit-mask-size: 96px 96px;
}

.qdnapro-pulse-canvas .qpc-image {
  position: absolute;
  inset: 0;
  display: none;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.qdnapro-pulse-canvas.qpc--photo .qpc-image,
.qdnapro-pulse-canvas.qpc--scene .qpc-image {
  display: block;
}

.qdnapro-pulse-canvas .qpc-text {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 24px;
  padding: 8cqw;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.3;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
  outline: none;
  cursor: default;
  color: var(--c-text, #0b0b0d);
}

.qdnapro-pulse-canvas[data-scale="20"] .qpc-text {
  font-size: max(13px, 9.33cqw);
}

.qdnapro-pulse-canvas[data-scale="40"] .qpc-text {
  font-size: max(13px, 8cqw);
}

.qdnapro-pulse-canvas[data-scale="70"] .qpc-text {
  font-size: max(13px, 6.67cqw);
}

.qdnapro-pulse-canvas[data-scale="110"] .qpc-text {
  font-size: max(13px, 6cqw);
}

.qdnapro-pulse-canvas[data-scale=max] .qpc-text {
  font-size: max(13px, 5.33cqw);
}

.qdnapro-pulse-canvas[data-tint=light] .qpc-text {
  color: var(--c-text-on-action, #ffffff);
}

.qdnapro-pulse-canvas[data-tint=dark] .qpc-text {
  color: var(--c-text, #0b0b0d);
}

.qdnapro-pulse-canvas.qpc--text-outline .qpc-text {
  color: var(--c-text-on-action, #ffffff);
}

.qdnapro-pulse-canvas.qpc--text-outline .qpc-text {
  --qpc-outline-w: 0.04em;
  --qpc-outline-c: var(--c-black-45, rgba(0, 0, 0, .45));
  text-shadow: var(--qpc-outline-w) 0 0 var(--qpc-outline-c), calc(var(--qpc-outline-w) * -1) 0 0 var(--qpc-outline-c), 0 var(--qpc-outline-w) 0 var(--qpc-outline-c), 0 calc(var(--qpc-outline-w) * -1) 0 var(--qpc-outline-c), var(--qpc-outline-w) var(--qpc-outline-w) 0 var(--qpc-outline-c), calc(var(--qpc-outline-w) * -1) var(--qpc-outline-w) 0 var(--qpc-outline-c), var(--qpc-outline-w) calc(var(--qpc-outline-w) * -1) 0 var(--qpc-outline-c), calc(var(--qpc-outline-w) * -1) calc(var(--qpc-outline-w) * -1) 0 var(--qpc-outline-c), 0 0 calc(var(--qpc-outline-w) * 3) var(--qpc-outline-c);
}

.qdnapro-pulse-canvas.qpc--editable .qpc-text {
  cursor: text;
}

.qdnapro-pulse-canvas.qpc--editable .qpc-text:focus-visible {
  border-radius: inherit;
  box-shadow: inset 0 0 0 2px var(--focus-ring, #40499a);
}

.qdnapro-pulse-canvas .qpc-markup {
  position: absolute;
  inset: 0;
  display: none;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  pointer-events: none;
}

.qdnapro-pulse-canvas.qpc--markup .qpc-markup {
  display: block;
}

.qdnapro-pulse-canvas .qpc-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.qdnapro-pulse-canvas .qpc-counter {
  position: absolute;
  right: 8px;
  bottom: 8px;
  display: none;
  padding: 2px 8px;
  border-radius: var(--r-pill, 999px);
  background: var(--c-black-45, rgba(0, 0, 0, 0.45));
  color: var(--c-text-on-action, #ffffff);
  font-size: 11px;
  font-weight: 600;
  line-height: 16px;
  pointer-events: none;
}

.qdnapro-pulse-canvas .qpc-counter.qpc-counter--visible {
  display: inline-flex;
}

.qdnapro-push-notification {
  --pn-surface: rgba(255, 255, 255, 0.68);
  --pn-title: var(--c-text-heading, #1a1d3a);
  --pn-body: var(--c-text-heading, #1a1d3a);
  --pn-meta: var(--c-text-muted, #6a6e9a);
  --pn-tile-bg: var(--c-purple-500, #40499a);
  --pn-tile-glyph: #ffffff;
  --pn-divider: rgba(40, 46, 100, 0.10);
  --pn-edge: rgba(255, 255, 255, 0.60);
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  width: 100%;
  padding: 13px 14px;
  border-radius: var(--r-3, 12px);
  background: var(--pn-surface);
  -webkit-backdrop-filter: blur(24px) saturate(160%);
  backdrop-filter: blur(24px) saturate(160%);
  border: 1px solid var(--pn-edge);
  box-shadow: 0 0 0 1px rgba(40, 46, 100, 0.06), 0 10px 30px rgba(40, 46, 100, 0.18);
  font-family: var(--ff, "Inter", -apple-system, sans-serif);
  text-align: left;
}

.qdnapro-push-notification--swipeable {
  touch-action: none;
  transition: transform 0.24s cubic-bezier(0.21, 1.24, 0.42, 1);
}

.qdnapro-push-notification--dragging {
  transition: none;
  cursor: grabbing;
}

.qdnapro-push-notification--swipe-out {
  transform: translateY(-140%);
  opacity: 0;
  transition: transform 0.2s ease-in, opacity 0.2s ease-in;
  pointer-events: none;
}

.qdnapro-push-notification--info {
  --pn-tile-bg: var(--c-signal-blue-text, #6a8ab4);
}

.qdnapro-push-notification--success {
  --pn-tile-bg: var(--c-signal-green-text, #428b6e);
}

.qdnapro-push-notification--warning {
  --pn-tile-bg: var(--c-warning-bright-text, #9a6a10);
}

.qdnapro-push-notification--error {
  --pn-tile-bg: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-push-notification__row {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  width: 100%;
}

.qdnapro-push-notification__tile {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: var(--r-2, 8px);
  background: var(--pn-tile-bg);
  color: var(--pn-tile-glyph);
  line-height: 0;
}

.qdnapro-push-notification__tile qdnapro-icon,
.qdnapro-push-notification__tile .qdnapro-icon {
  width: 18px;
  height: 18px;
  color: inherit;
}

.qdnapro-push-notification__tile--image {
  background: var(--c-grey-50, #f0f1f2);
  padding: 3px;
}

.qdnapro-push-notification__tile-img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: var(--r-1, 4px);
  object-fit: contain;
}

.qdnapro-push-notification__main {
  flex: 1 1 auto;
  min-width: 0;
}

.qdnapro-push-notification__headline {
  display: flex;
  align-items: baseline;
  gap: 6px;
}

.qdnapro-push-notification__title {
  min-width: 0;
  color: var(--pn-title);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.qdnapro-push-notification--collapsed .qdnapro-push-notification__title {
  flex: 0 1 auto;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.qdnapro-push-notification__time {
  flex: 0 0 auto;
  color: var(--pn-meta);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.3;
  white-space: nowrap;
}

.qdnapro-push-notification__body {
  margin-top: 2px;
  color: var(--pn-body);
  font-size: 13.5px;
  font-weight: 400;
  line-height: 1.42;
  overflow-wrap: anywhere;
}

.qdnapro-push-notification--collapsed .qdnapro-push-notification__body {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.qdnapro-push-notification__chevron,
.qdnapro-push-notification__dismiss {
  flex: 0 0 auto;
  margin: -1px -4px 0 0;
}

.qdnapro-push-notification__meta {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin-bottom: 1px;
}

.qdnapro-push-notification__app {
  min-width: 0;
  overflow: hidden;
  color: var(--c-purple-500, #40499a);
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-push-notification--expanded .qdnapro-push-notification__title {
  display: block;
}

.qdnapro-push-notification__media {
  margin-top: 9px;
  border-radius: var(--r-2, 8px);
  overflow: hidden;
  line-height: 0;
}

.qdnapro-push-notification__media-img {
  display: block;
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  background: var(--c-grey-50, #f0f1f2);
}

.qdnapro-push-notification__footer {
  display: flex;
  align-items: stretch;
  margin: 11px -14px -13px;
  border-top: 1px solid var(--pn-divider);
}

.qdnapro-push-notification__footer .qdnapro-push-notification__action {
  flex: 1 1 0;
  min-width: 0;
  width: 100%;
  border-radius: 0;
}

.qdnapro-push-notification__footer .qdnapro-push-notification__action:first-child {
  border-bottom-left-radius: var(--r-3, 12px);
}

.qdnapro-push-notification__footer .qdnapro-push-notification__action:last-child {
  border-bottom-right-radius: var(--r-3, 12px);
}

.qdnapro-push-notification__action + .qdnapro-push-notification__action {
  border-left: 1px solid var(--pn-divider);
}

.qdnapro-radio {
  --rb-size: 16px;
  --rb-border: var(--c-border-card);
  --rb-bg: var(--c-grey-50);
  --rb-bg-hover: var(--c-border-card);
  --rb-selected-bg: var(--c-action-500);
  --rb-selected-bg-hover: var(--c-action-600);
  --rb-selected-dot: #ffffff;
  --rb-focus-ring: var(--c-purple-500);
  --rb-focus-glow: rgba(70, 82, 243, 0.25);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: var(--rb-size);
  height: var(--rb-size);
  flex-shrink: 0;
  border: 1px solid var(--rb-border);
  border-radius: 50%;
  background: var(--rb-bg);
  cursor: pointer;
  user-select: none;
  transition: background-color 140ms ease-out, border-color 140ms ease-out;
}

.qdnapro-radio .radio-dot {
  display: inline-block;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--rb-selected-dot);
  transform: scale(0);
  opacity: 0;
  pointer-events: none;
  transition: transform 220ms cubic-bezier(0.34, 1.35, 0.64, 1), opacity 140ms ease-out;
}

.qdnapro-radio.radio-selected {
  background: var(--rb-selected-bg);
  border-color: var(--rb-selected-bg);
}

.qdnapro-radio.radio-selected .radio-dot {
  transform: scale(1);
  opacity: 1;
}

.qdnapro-radio:hover:not(.radio-disabled):not(.radio-selected) {
  background: var(--rb-bg-hover);
}

.qdnapro-radio:hover:not(.radio-disabled).radio-selected {
  background: var(--rb-selected-bg-hover);
  border-color: var(--rb-selected-bg-hover);
}

.qdnapro-radio:active:not(.radio-disabled) {
  background-image: linear-gradient(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.15));
}

.qdnapro-radio:focus {
  outline: none;
}

.qdnapro-radio:focus-visible, .qdnapro-radio.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--rb-focus-ring), 0 0 0 6px var(--rb-focus-glow);
}

.qdnapro-radio.force-hover:not(.radio-disabled):not(.radio-selected) {
  background: var(--rb-bg-hover);
}

.qdnapro-radio.force-hover:not(.radio-disabled).radio-selected {
  background: var(--rb-selected-bg-hover);
  border-color: var(--rb-selected-bg-hover);
}

.qdnapro-radio.force-pressed:not(.radio-disabled) {
  background-image: linear-gradient(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.15));
}

.qdnapro-radio.radio-state-error {
  --rb-border: var(--c-signal-red-text);
  --rb-bg-hover: var(--c-tag-critical-bg);
  --rb-selected-bg: var(--c-signal-red-text);
  --rb-selected-bg-hover: var(--c-tag-critical-text);
  --rb-selected-dot: #ffffff;
  --rb-focus-ring: var(--c-signal-red-text);
  --rb-focus-glow: rgba(198, 90, 90, 0.25);
}

.qdnapro-radio.radio-state-success {
  --rb-border: var(--c-signal-green-text);
  --rb-bg-hover: var(--c-signal-green-bg);
  --rb-selected-bg: var(--c-signal-green-text);
  --rb-selected-bg-hover: #2f5d4a;
  --rb-selected-dot: #ffffff;
  --rb-focus-ring: var(--c-signal-green-text);
  --rb-focus-glow: rgba(66, 139, 110, 0.25);
}

.qdnapro-radio.radio-disabled {
  --rb-border: var(--c-border-card);
  --rb-bg: var(--c-grey-50);
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-radio.radio-disabled.radio-selected {
  background: var(--c-grey-50);
  border-color: var(--c-border-card);
}

.qdnapro-radio.radio-disabled.radio-selected .radio-dot {
  background: var(--c-text-disabled);
}

[data-theme=dark] .qdnapro-radio {
  --rb-border: #565b66;
  --rb-bg: #2e3036;
  --rb-bg-hover: #40444d;
  --rb-selected-bg: #4652f3;
  --rb-selected-bg-hover: #5a66ff;
  --rb-selected-dot: #ffffff;
  --rb-focus-ring: #a5acff;
  --rb-focus-glow: rgba(70, 82, 243, 0.4);
}

[data-theme=dark] .qdnapro-radio.radio-state-error {
  --rb-border: #c65a5a;
  --rb-bg-hover: #5a2b2b;
  --rb-selected-bg: #c65a5a;
  --rb-selected-bg-hover: #a04444;
  --rb-focus-ring: #e89090;
}

[data-theme=dark] .qdnapro-radio.radio-state-success {
  --rb-border: #428b6e;
  --rb-bg-hover: #2a5544;
  --rb-selected-bg: #428b6e;
  --rb-selected-bg-hover: #2f5d4a;
  --rb-focus-ring: #7ccfa8;
}

[data-theme=dark] .qdnapro-radio.radio-disabled {
  --rb-border: #565b66;
  --rb-bg: #40444d;
}

[data-theme=dark] .qdnapro-radio.radio-disabled.radio-selected {
  background: #40444d;
  border-color: #565b66;
}

[data-theme=dark] .qdnapro-radio.radio-disabled.radio-selected .radio-dot {
  background: #6b7280;
}

@property --qrt-beam-angle {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}
.qdnapro-radio-tiles {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}
.qdnapro-radio-tiles *, .qdnapro-radio-tiles *::before, .qdnapro-radio-tiles *::after {
  box-sizing: border-box;
}
.qdnapro-radio-tiles .radio-tiles-label {
  font-size: 14px;
  line-height: 20px;
  font-weight: 500;
  color: var(--c-text-body);
}
.qdnapro-radio-tiles .radio-tiles-track {
  --radio-tiles-columns: 3;
  --radio-tile-max: 200px;
  --radio-tiles-gap: 10px;
  display: grid;
  grid-template-columns: repeat(var(--radio-tiles-columns), minmax(0, 1fr));
  gap: var(--radio-tiles-gap);
  align-items: stretch;
  max-width: calc(var(--radio-tiles-columns) * var(--radio-tile-max) + (var(--radio-tiles-columns) - 1) * var(--radio-tiles-gap));
}
.qdnapro-radio-tiles.radio-tiles-disabled {
  cursor: not-allowed;
}

@media (max-width: 720px) {
  .qdnapro-radio-tiles .radio-tiles-track {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 480px) {
  .qdnapro-radio-tiles .radio-tiles-track {
    grid-template-columns: 1fr;
  }
}
.qdnapro-radio-tile {
  --radio-tile-media: 88px;
  position: relative;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 14px 12px 12px;
  border: 1px solid var(--c-border-soft-2);
  border-radius: 14px;
  background: var(--c-bg-card);
  cursor: pointer;
  user-select: none;
  outline: none;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 140ms ease, border-color 140ms ease, box-shadow 200ms ease, transform 140ms cubic-bezier(0.4, 0, 0.2, 1);
}
.qdnapro-radio-tile *, .qdnapro-radio-tile *::before, .qdnapro-radio-tile *::after {
  box-sizing: border-box;
}
.qdnapro-radio-tile .radio-tile-title {
  font-size: 15px;
  line-height: 20px;
  font-weight: 700;
  color: var(--c-grey-950);
  text-align: center;
  overflow-wrap: anywhere;
}
.qdnapro-radio-tile .radio-tile-media {
  position: relative;
  display: block;
  width: var(--radio-tile-media);
  height: var(--radio-tile-media);
  flex-shrink: 0;
}
.qdnapro-radio-tile .radio-tile-poster,
.qdnapro-radio-tile .radio-tile-anim {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  transition: opacity 140ms ease;
}
.qdnapro-radio-tile .radio-tile-poster {
  object-fit: contain;
  opacity: 1;
}
.qdnapro-radio-tile .radio-tile-anim {
  opacity: 0;
  pointer-events: none;
}
.qdnapro-radio-tile .radio-tile-anim svg {
  display: block;
  width: 100%;
  height: 100%;
}
.qdnapro-radio-tile.radio-tile-animating .radio-tile-poster {
  opacity: 0;
}
.qdnapro-radio-tile.radio-tile-animating .radio-tile-anim {
  opacity: 1;
}
.qdnapro-radio-tile .radio-tile-desc {
  font-size: 11px;
  line-height: 16px;
  color: var(--c-grey-500);
  text-align: center;
}
.qdnapro-radio-tile .radio-tile-desc[hidden] {
  display: none;
}
.qdnapro-radio-tile .radio-tile-mark {
  margin-top: auto;
  padding-top: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.qdnapro-radio-tile .radio-tile-mark qdnapro-radio {
  pointer-events: none;
}
.qdnapro-radio-tile .radio-tile-info {
  position: absolute;
  top: 6px;
  right: 6px;
  z-index: 2;
  opacity: 0;
  pointer-events: none;
  transform: scale(0.9);
  transition: opacity 140ms ease, transform 140ms ease;
}
.qdnapro-radio-tile:hover .radio-tile-info, .qdnapro-radio-tile.force-hover .radio-tile-info,
.qdnapro-radio-tile .radio-tile-info:focus-visible,
.qdnapro-radio-tile .radio-tile-info:focus-within {
  opacity: 1;
  pointer-events: auto;
  transform: scale(1);
}
.qdnapro-radio-tile:hover:not(.radio-tile-disabled), .qdnapro-radio-tile.force-hover:not(.radio-tile-disabled) {
  background: var(--c-grey-50);
  border-color: var(--c-border-card);
}
.qdnapro-radio-tile:active:not(.radio-tile-disabled), .qdnapro-radio-tile.force-pressed:not(.radio-tile-disabled) {
  background: var(--c-grey-100);
  transform: scale(0.985);
}
.qdnapro-radio-tile:focus {
  outline: none;
}
.qdnapro-radio-tile:focus-visible, .qdnapro-radio-tile.force-focus {
  outline: none;
  border-color: var(--c-action-500);
  box-shadow: 0 0 0 2px var(--c-action-500), 0 0 0 6px rgba(70, 82, 243, 0.25);
}
.qdnapro-radio-tile.radio-tile-selected {
  border-color: var(--c-action-500);
  background: var(--c-bg-card);
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.18);
}
.qdnapro-radio-tile.radio-tile-selected:hover:not(.radio-tile-disabled), .qdnapro-radio-tile.radio-tile-selected.force-hover:not(.radio-tile-disabled) {
  background: var(--c-bg-subtle-purple);
}
.qdnapro-radio-tile.radio-tile-selected:focus-visible, .qdnapro-radio-tile.radio-tile-selected.force-focus {
  box-shadow: 0 0 0 2px var(--c-action-500), 0 0 0 6px rgba(70, 82, 243, 0.25);
}
.qdnapro-radio-tile.radio-tile-disabled {
  cursor: not-allowed;
  opacity: 0.45;
  transform: none;
}
.qdnapro-radio-tile.radio-tile-disabled .radio-tile-info {
  display: none;
}

@media (hover: none) {
  .qdnapro-radio-tile .radio-tile-info {
    opacity: 1;
    pointer-events: auto;
    transform: scale(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-radio-tile,
  .qdnapro-radio-tile .radio-tile-poster,
  .qdnapro-radio-tile .radio-tile-anim,
  .qdnapro-radio-tile .radio-tile-info {
    transition: none;
  }
  .qdnapro-radio-tile.radio-tile-beam::after,
  .qdnapro-radio-tile.radio-tile-pop {
    animation: none;
  }
}
.qdnapro-radio-tile.radio-tile-toggle {
  --radio-tile-media: 96px;
  max-width: 240px;
}
.qdnapro-radio-tile.radio-tile-toggle .radio-tile-mark qdnapro-toggle {
  pointer-events: none;
}
.qdnapro-radio-tile.radio-tile-toggle.radio-tile-selected {
  border-color: transparent;
  box-shadow: none;
  background: var(--c-bg-subtle-purple);
}
.qdnapro-radio-tile.radio-tile-toggle.radio-tile-selected:hover:not(.radio-tile-disabled), .qdnapro-radio-tile.radio-tile-toggle.radio-tile-selected.force-hover:not(.radio-tile-disabled) {
  background: var(--c-bg-subtle-purple);
}
.qdnapro-radio-tile.radio-tile-toggle.radio-tile-selected:focus-visible, .qdnapro-radio-tile.radio-tile-toggle.radio-tile-selected.force-focus {
  box-shadow: 0 0 0 2px var(--c-action-500), 0 0 0 6px rgba(70, 82, 243, 0.25);
}

.qdnapro-radio-tile.radio-tile-beam::after {
  content: "";
  position: absolute;
  inset: -1px;
  z-index: 0;
  border-radius: 15px;
  padding: 2px;
  background: conic-gradient(from var(--qrt-beam-angle), rgba(70, 82, 243, 0.16) 0deg, rgba(70, 82, 243, 0.16) 200deg, var(--c-chip-yellow-fg, #b07d10) 268deg, #ffd66b 300deg, var(--c-action-500) 336deg, rgba(70, 82, 243, 0.16) 360deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  animation: qrt-beam-spin 3.2s linear infinite;
  pointer-events: none;
}

@keyframes qrt-beam-spin {
  to {
    --qrt-beam-angle: 360deg;
  }
}
.qdnapro-radio-tile.radio-tile-beam > * {
  position: relative;
  z-index: 1;
}

.qdnapro-radio-tile.radio-tile-pop {
  animation: qrt-pop 420ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes qrt-pop {
  0% {
    transform: scale(1);
  }
  32% {
    transform: scale(1.045);
  }
  100% {
    transform: scale(1);
  }
}
.qdnapro-radio-tile .radio-tile-sparks {
  position: absolute;
  inset: -60px;
  display: block;
  pointer-events: none;
  z-index: 3;
}

.qdnapro-radio-tile .radio-tile-spark {
  position: absolute;
  top: 50%;
  left: 50%;
  width: var(--qrt-spark-size, 14px);
  height: var(--qrt-spark-size, 14px);
  margin: calc(var(--qrt-spark-size, 14px) / -2) 0 0 calc(var(--qrt-spark-size, 14px) / -2);
  background: #ffc93f;
  clip-path: polygon(50% 0%, 59% 41%, 100% 50%, 59% 59%, 50% 100%, 41% 59%, 0% 50%, 41% 41%);
  filter: drop-shadow(0 0 5px rgba(255, 201, 63, 0.85));
  opacity: 0;
  animation: qrt-spark 850ms cubic-bezier(0.16, 0.84, 0.44, 1) var(--qrt-spark-delay, 0ms) both;
}

.qdnapro-radio-tile .radio-tile-spark:nth-child(3n+2) {
  background: var(--c-action-500, #4652f3);
  filter: drop-shadow(0 0 5px rgba(70, 82, 243, 0.75));
}

.qdnapro-radio-tile .radio-tile-spark:nth-child(3n+3) {
  background: #ff6fb8;
  filter: drop-shadow(0 0 5px rgba(255, 111, 184, 0.75));
}

@keyframes qrt-spark {
  0% {
    opacity: 0;
    transform: translate(0, 0) scale(0.2) rotate(0deg);
  }
  20% {
    opacity: 1;
    transform: translate(calc(var(--qrt-spark-x, 0px) * 0.4), calc(var(--qrt-spark-y, 0px) * 0.4)) scale(1.15) rotate(calc(var(--qrt-spark-turn, 0deg) * 0.35));
  }
  55% {
    opacity: 1;
    transform: translate(calc(var(--qrt-spark-x, 0px) * 0.78), calc(var(--qrt-spark-y, 0px) * 0.78)) scale(0.9) rotate(calc(var(--qrt-spark-turn, 0deg) * 0.7));
  }
  100% {
    opacity: 0;
    transform: translate(var(--qrt-spark-x, 0px), var(--qrt-spark-y, 0px)) scale(0.35) rotate(var(--qrt-spark-turn, 0deg));
  }
}
[data-theme=dark] .qdnapro-radio-tiles .radio-tiles-label,
.theme-dark .qdnapro-radio-tiles .radio-tiles-label {
  color: rgba(240, 241, 242, 0.75);
}
[data-theme=dark] .qdnapro-radio-tile,
.theme-dark .qdnapro-radio-tile {
  background: var(--c-bg-card);
  border-color: var(--c-border-soft-2);
}
[data-theme=dark] .qdnapro-radio-tile .radio-tile-title,
.theme-dark .qdnapro-radio-tile .radio-tile-title {
  color: var(--c-text-heading);
}
[data-theme=dark] .qdnapro-radio-tile .radio-tile-desc,
.theme-dark .qdnapro-radio-tile .radio-tile-desc {
  color: rgba(240, 241, 242, 0.65);
}
[data-theme=dark] .qdnapro-radio-tile:hover:not(.radio-tile-disabled), [data-theme=dark] .qdnapro-radio-tile.force-hover:not(.radio-tile-disabled),
.theme-dark .qdnapro-radio-tile:hover:not(.radio-tile-disabled),
.theme-dark .qdnapro-radio-tile.force-hover:not(.radio-tile-disabled) {
  background: var(--c-bg-card-hover);
  border-color: var(--c-border-card);
}
[data-theme=dark] .qdnapro-radio-tile:active:not(.radio-tile-disabled), [data-theme=dark] .qdnapro-radio-tile.force-pressed:not(.radio-tile-disabled),
.theme-dark .qdnapro-radio-tile:active:not(.radio-tile-disabled),
.theme-dark .qdnapro-radio-tile.force-pressed:not(.radio-tile-disabled) {
  background: rgba(255, 255, 255, 0.06);
}
[data-theme=dark] .qdnapro-radio-tile.radio-tile-selected,
.theme-dark .qdnapro-radio-tile.radio-tile-selected {
  border-color: var(--c-action-500);
  background: rgba(70, 82, 243, 0.1);
}
[data-theme=dark] .qdnapro-radio-tile.radio-tile-selected:hover:not(.radio-tile-disabled), [data-theme=dark] .qdnapro-radio-tile.radio-tile-selected.force-hover:not(.radio-tile-disabled),
.theme-dark .qdnapro-radio-tile.radio-tile-selected:hover:not(.radio-tile-disabled),
.theme-dark .qdnapro-radio-tile.radio-tile-selected.force-hover:not(.radio-tile-disabled) {
  background: rgba(70, 82, 243, 0.16);
}
[data-theme=dark] .qdnapro-radio-tile.radio-tile-toggle.radio-tile-selected,
.theme-dark .qdnapro-radio-tile.radio-tile-toggle.radio-tile-selected {
  border-color: transparent;
  background: rgba(70, 82, 243, 0.14);
}
[data-theme=dark] .qdnapro-radio-tile.radio-tile-toggle.radio-tile-selected:hover:not(.radio-tile-disabled), [data-theme=dark] .qdnapro-radio-tile.radio-tile-toggle.radio-tile-selected.force-hover:not(.radio-tile-disabled),
.theme-dark .qdnapro-radio-tile.radio-tile-toggle.radio-tile-selected:hover:not(.radio-tile-disabled),
.theme-dark .qdnapro-radio-tile.radio-tile-toggle.radio-tile-selected.force-hover:not(.radio-tile-disabled) {
  background: rgba(70, 82, 243, 0.2);
}

.qdnapro-range-slider {
  --rs-track: var(--c-border-card);
  --rs-fill: var(--c-action-500);
  --rs-dot: var(--c-sidebar-icon);
  --rs-handle: #ffffff;
  --rs-handle-border: var(--c-action-500);
  --rs-handle-glow: rgba(70, 82, 243, 0.25);
  --rs-label: var(--c-purple-400);
  --rs-label-active: var(--c-text-heading);
  display: block;
  position: relative;
  box-sizing: border-box;
  padding: 6px 12px 4px;
  user-select: none;
  -webkit-user-select: none;
  touch-action: none;
}

.qdnapro-range-slider .rs-track {
  position: relative;
  height: 6px;
  margin: 14px 0 6px;
  border-radius: 999px;
  background: var(--rs-track);
}

.qdnapro-range-slider .rs-fill {
  position: absolute;
  top: 0;
  height: 100%;
  border-radius: 999px;
  background: var(--rs-fill);
}

.qdnapro-range-slider .rs-dot {
  position: absolute;
  top: 50%;
  width: 4px;
  height: 4px;
  margin-left: -2px;
  margin-top: -2px;
  border-radius: 50%;
  background: var(--rs-dot);
  pointer-events: none;
}

.qdnapro-range-slider .rs-handle {
  position: absolute;
  top: 50%;
  width: 18px;
  height: 18px;
  margin-left: -9px;
  padding: 0;
  transform: translateY(-50%);
  border-radius: 50%;
  background: var(--rs-handle);
  border: 2px solid var(--rs-handle-border);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
  cursor: grab;
  z-index: 2;
  transition: box-shadow 140ms ease-out, transform 120ms ease-out;
}

.qdnapro-range-slider .rs-handle:hover {
  box-shadow: 0 0 0 6px var(--rs-handle-glow), 0 1px 3px rgba(0, 0, 0, 0.18);
}

.qdnapro-range-slider .rs-handle:active {
  cursor: grabbing;
  transform: translateY(-50%) scale(1.08);
}

.qdnapro-range-slider .rs-handle:focus {
  outline: none;
}

.qdnapro-range-slider .rs-handle:focus-visible {
  box-shadow: 0 0 0 4px var(--rs-handle-glow), 0 1px 3px rgba(0, 0, 0, 0.18);
}

.qdnapro-range-slider .rs-labels {
  position: relative;
  height: 16px;
  margin-top: 2px;
}

.qdnapro-range-slider .rs-label {
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  font-size: 11px;
  line-height: 16px;
  font-weight: 600;
  color: var(--rs-label);
  white-space: nowrap;
  transition: color 120ms ease-out;
}

.qdnapro-range-slider .rs-label.is-active {
  color: var(--rs-label-active);
}

.qdnapro-range-slider.is-disabled {
  opacity: 0.5;
  pointer-events: none;
}

.qdnapro-recipient-picker [hidden] {
  display: none;
}

.qdnapro-recipient-picker {
  display: flex;
  flex-direction: column;
  gap: var(--s-4);
}

.rp-section-title {
  font-size: 12px;
  font-weight: var(--fw-medium);
  line-height: 1.3;
  color: var(--c-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0 var(--s-1);
  margin-bottom: var(--s-2);
}

.rp-search {
  padding: 0 var(--s-1);
}
.rp-search qdnapro-input {
  width: 100%;
}

.rp-body {
  display: flex;
  flex-direction: column;
  height: var(--rp-list-height, 320px);
  overflow-y: auto;
}
.rp-body::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
.rp-body::-webkit-scrollbar-track {
  background: transparent;
}
.rp-body::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 8px;
  transition: background 160ms ease;
}
.rp-body:hover::-webkit-scrollbar-thumb, .rp-body:focus-within::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.22);
}
.rp-body::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.34);
}

.rp-hint,
.rp-empty {
  padding: var(--s-4) var(--s-1);
  font-size: 13px;
  line-height: 1.4;
  color: var(--c-text-muted);
  text-align: center;
}

.rp-busy {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--s-6) 0;
}

.rp-spinner {
  display: block;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 2px solid var(--c-border-soft-2, #e6e9ef);
  border-top-color: var(--c-brand-purple);
  animation: rp-spin 0.8s linear infinite;
}

@keyframes rp-spin {
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .rp-spinner {
    animation-duration: 1.6s;
  }
}
.rp-results-list {
  display: flex;
  flex-direction: column;
  gap: var(--s-1);
}

.rp-row {
  display: flex;
  align-items: center;
  gap: var(--s-3);
  padding: var(--s-2) var(--s-1);
  border-radius: var(--r-2);
  cursor: pointer;
}
.rp-row:hover {
  background: var(--c-bg-subtle-hover);
}
.rp-row--disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
.rp-row--disabled:hover {
  background: transparent;
}

.rp-row-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1;
}

.rp-row-name {
  font-size: 14px;
  font-weight: var(--fw-medium);
  color: var(--c-text-body);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.rp-row-role {
  font-size: 12px;
  line-height: 1.3;
  color: var(--c-text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.rp-row-access {
  flex-shrink: 0;
  font-size: 12px;
  line-height: 1.3;
  color: var(--c-text-muted);
  white-space: nowrap;
  text-align: right;
}

.rp-footer {
  display: flex;
  justify-content: flex-end;
  gap: var(--s-2);
  padding-top: var(--s-2);
  border-top: 1px solid var(--c-border-soft-2, #e6e9ef);
}

.qdnapro-resource-timeline {
  --resource-timeline-label-col: 220px;
  --resource-timeline-row-compact: 44px;
  --resource-timeline-header: 44px;
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  min-height: 0;
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.qdnapro-resource-timeline__scroll {
  display: grid;
  grid-template-columns: var(--resource-timeline-label-col) repeat(7, 1fr);
  align-content: start;
  width: 100%;
  height: 100%;
  overflow: auto;
  scrollbar-width: thin;
  background: var(--c-bg-card, #fff);
}

.qdnapro-resource-timeline__scroll::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

.qdnapro-resource-timeline__scroll::-webkit-scrollbar-thumb {
  background: var(--c-grey-200, #d8dade);
  border-radius: 8px;
}

.qdnapro-resource-timeline__scroll::-webkit-scrollbar-track {
  background: transparent;
}

.qdnapro-resource-timeline__corner {
  position: sticky;
  top: 0;
  left: 0;
  z-index: 4;
  height: var(--resource-timeline-header);
  background: var(--c-bg-card, #fff);
  border-bottom: 1px solid var(--c-grey-100, #e7e9ec);
  border-right: 1px solid var(--c-grey-100, #e7e9ec);
  box-sizing: border-box;
}

.qdnapro-resource-timeline__corner--search {
  display: flex;
  align-items: center;
  padding: 0 10px;
}

.qdnapro-resource-timeline__corner--search .qdnapro-resource-timeline__searchinput {
  flex: 1;
  min-width: 0;
}

.qdnapro-resource-timeline__daycell {
  appearance: none;
  -webkit-appearance: none;
  border: none;
  margin: 0;
  font: inherit;
  text-align: inherit;
  color: inherit;
  position: sticky;
  top: 0;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  height: var(--resource-timeline-header);
  min-width: 0;
  background: var(--c-bg-card, #fff);
  border-bottom: 1px solid var(--c-grey-100, #e7e9ec);
  border-right: 1px solid var(--c-grey-100, #e7e9ec);
  padding: 2px 4px;
  box-sizing: border-box;
  cursor: pointer;
}

.qdnapro-resource-timeline__daycell:hover {
  background: var(--c-grey-50, #f0f1f2);
}

.qdnapro-resource-timeline__daycell:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 2px var(--c-purple-500, #40499a);
}

.qdnapro-resource-timeline__weekday {
  font-size: 10px;
  font-weight: 600;
  line-height: 13px;
  color: var(--c-grey-500, #6b7280);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.qdnapro-resource-timeline__daynum {
  font-size: 13px;
  font-weight: 600;
  line-height: 16px;
  color: var(--c-grey-800, #1c1b29);
  white-space: nowrap;
}

.qdnapro-resource-timeline__daycell.is-today .qdnapro-resource-timeline__weekday {
  color: var(--c-action-500, #4652f3);
}

.qdnapro-resource-timeline__daycell.is-today .qdnapro-resource-timeline__daynum {
  color: var(--c-text-on-action);
  background: var(--c-action-500, #4652f3);
  padding: 1px 8px;
  border-radius: 999px;
}

.qdnapro-resource-timeline__todaytag {
  font-size: 9px;
  font-weight: 700;
  line-height: 11px;
  color: var(--c-action-500, #4652f3);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.qdnapro-resource-timeline__daycell.is-today .qdnapro-resource-timeline__todaytag {
  display: none;
}

.qdnapro-resource-timeline__topspace,
.qdnapro-resource-timeline__botspace {
  grid-column: 1/-1;
  height: 0;
}

.qdnapro-resource-timeline__label {
  position: sticky;
  left: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 10px;
  height: var(--resource-timeline-row-compact, 44px);
  min-width: 0;
  padding: 0 12px;
  background: var(--c-bg-card, #fff);
  border-bottom: 1px solid var(--c-grey-100, #e7e9ec);
  border-right: 1px solid var(--c-grey-100, #e7e9ec);
  box-sizing: border-box;
}

.qdnapro-resource-timeline__labeltext {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.qdnapro-resource-timeline__labelname {
  font-size: 13px;
  font-weight: 600;
  line-height: 16px;
  color: var(--c-grey-800, #1c1b29);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-resource-timeline__labelmeta {
  font-size: 11px;
  font-weight: 500;
  line-height: 14px;
  color: var(--c-grey-500, #6b7280);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-resource-timeline__cell {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  height: var(--resource-timeline-row-compact, 44px);
  padding: 3px 4px;
  box-sizing: border-box;
  background: var(--c-bg-card, #fff);
  border-bottom: 1px solid var(--c-grey-100, #e7e9ec);
  border-right: 1px solid var(--c-grey-100, #e7e9ec);
  overflow: hidden;
  cursor: default;
}

.qdnapro-resource-timeline__cell.is-today {
  background: rgba(64, 73, 154, 0.04);
}

.qdnapro-resource-timeline__cell.is-empty {
  cursor: pointer;
}

.qdnapro-resource-timeline__cell.is-disabled,
.qdnapro-resource-timeline__cell.is-unavailable {
  background: repeating-linear-gradient(135deg, var(--c-grey-50, #f0f1f2) 0 6px, rgba(107, 114, 128, 0.14) 6px 12px);
}

.qdnapro-resource-timeline__cell.is-disabled {
  cursor: not-allowed;
}

.qdnapro-resource-timeline__cell.is-unavailable {
  cursor: pointer;
}

.qdnapro-resource-timeline__cell.is-drop-target {
  background: var(--c-purple-soft-12, rgba(64, 73, 154, 0.12));
}

.qdnapro-resource-timeline__cell.is-drop-target::before {
  content: "";
  position: absolute;
  inset: 1px;
  pointer-events: none;
  background-image: repeating-linear-gradient(to right, var(--c-purple-500, #40499a) 0 6px, transparent 0 12px), repeating-linear-gradient(to right, var(--c-purple-500, #40499a) 0 6px, transparent 0 12px), repeating-linear-gradient(to bottom, var(--c-purple-500, #40499a) 0 6px, transparent 0 12px), repeating-linear-gradient(to bottom, var(--c-purple-500, #40499a) 0 6px, transparent 0 12px);
  background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;
  background-size: 12px 2px, 12px 2px, 2px 12px, 2px 12px;
  background-position: 0 0, 0 100%, 0 0, 100% 0;
  animation: qdna-resource-timeline-march 1.6s linear infinite;
}

@keyframes qdna-resource-timeline-march {
  to {
    background-position: 12px 0, -12px 100%, 0 -12px, 100% 12px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-resource-timeline__cell.is-drop-target::before {
    animation: none;
  }
}
.qdnapro-resource-timeline__chip {
  flex: 1 1 22px;
  min-height: 22px;
  padding: 2px 6px;
}

.qdnapro-resource-timeline__chip .qdnapro-event-card__meta {
  display: none;
}

.qdnapro-resource-timeline__chip .qdnapro-event-card__avatar {
  --av-size: 16px;
  --av-padding: 3px;
}

.qdnapro-resource-timeline__chip[draggable=true] {
  cursor: grab;
}

.qdnapro-resource-timeline__chip.is-dragging {
  opacity: 0.5;
  cursor: grabbing;
}

.qdnapro-resource-timeline__chip--draft {
  border: 1.5px dashed var(--event-card-text, currentColor);
  background: color-mix(in srgb, var(--event-card-bg, transparent) 55%, transparent);
}

.qdnapro-resource-timeline__more {
  appearance: none;
  border: 0;
  background: transparent;
  text-align: left;
  padding: 1px 6px;
  margin: 0;
  font-family: inherit;
  font-size: 10px;
  font-weight: 600;
  line-height: 14px;
  color: var(--c-grey-500, #6b7280);
  border-radius: var(--r-1, 4px);
  cursor: pointer;
}

.qdnapro-resource-timeline__more:hover {
  background: var(--c-grey-50, #f0f1f2);
}

.qdnapro-resource-timeline__more:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--c-purple-500, #40499a), 0 0 0 6px var(--c-purple-soft-18, rgba(64, 73, 154, 0.18));
}

.qdnapro-resource-timeline--wide .qdnapro-resource-timeline__daycell,
.qdnapro-resource-timeline--wide .qdnapro-resource-timeline__cell {
  min-width: 88px;
}

.qdnapro-reveal-stage {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  width: 100%;
  height: 100%;
  min-height: 420px;
  text-align: center;
  color: var(--c-text-on-action);
  background: linear-gradient(180deg, var(--c-purple-500) 0%, var(--c-purple-700) 62%);
  font-family: var(--theme-font-family, "Inter", sans-serif);
}
.qdnapro-reveal-stage.rs-closed {
  display: none;
}
.qdnapro-reveal-stage.rs-shaking {
  animation: rs-shake 0.4s linear;
}

@keyframes rs-shake {
  0%, 100% {
    transform: none;
  }
  20% {
    transform: translate(-5px, 3px) rotate(-0.6deg);
  }
  40% {
    transform: translate(5px, -3px) rotate(0.6deg);
  }
  60% {
    transform: translate(-4px, -2px);
  }
  80% {
    transform: translate(3px, 2px);
  }
}
.qdnapro-reveal-stage .rs-close {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 20;
}

.qdnapro-reveal-stage .rs-fx {
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
}

.qdnapro-reveal-stage .rs-flash {
  position: absolute;
  inset: 0;
  z-index: 6;
  background: var(--c-text-on-action);
  opacity: 0;
  pointer-events: none;
}
.qdnapro-reveal-stage .rs-flash.is-flashing {
  animation: rs-flash 0.5s ease-out;
}

@keyframes rs-flash {
  0% {
    opacity: 0.95;
  }
  100% {
    opacity: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-reveal-stage .rs-flash {
    display: none;
  }
}
.qdnapro-reveal-stage .rs-card {
  position: relative;
  z-index: 2;
  width: min(260px, 84%);
  padding: 24px 22px;
  cursor: pointer;
  border: 1.5px dashed var(--c-white-85);
  border-radius: var(--r-5);
  background: var(--c-purple-100);
  box-shadow: 0 8px 26px rgba(0, 0, 0, 0.16);
  animation: rs-breathe 2s ease-in-out infinite;
}
.qdnapro-reveal-stage .rs-card[hidden] {
  display: none;
}

@keyframes rs-breathe {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.04);
  }
}
.qdnapro-reveal-stage .rs-card-icon {
  width: 56px;
  height: 56px;
  margin: 0 auto 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--c-text-on-action);
  overflow: hidden;
  animation: rs-wiggle 1.6s ease-in-out infinite;
}

@keyframes rs-wiggle {
  0%, 100% {
    transform: rotate(-6deg);
  }
  50% {
    transform: rotate(6deg) scale(1.08);
  }
}
.qdnapro-reveal-stage .rs-card-heading {
  margin-top: 8px;
  font-size: 15px;
  font-weight: 800;
  color: var(--c-purple-700);
}

.qdnapro-reveal-stage .rs-card-sub {
  margin-top: 4px;
  font-size: 12px;
  color: var(--c-purple-600);
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-reveal-stage .rs-card,
  .qdnapro-reveal-stage .rs-card-icon {
    animation: none;
  }
}
.qdnapro-reveal-stage .rs-scene {
  position: relative;
  z-index: 2;
  flex: 1 1 auto;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-sizing: border-box;
}

.qdnapro-reveal-stage .rs-fade-in {
  animation: rs-fade-in 0.35s ease-out both;
}

@keyframes rs-fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.qdnapro-reveal-stage .rs-cta {
  margin-top: 20px;
}

.qdnapro-reveal-stage .rs-statrow {
  display: flex;
  gap: 10px;
  justify-content: center;
  margin-top: 16px;
}

.qdnapro-reveal-stage .rs-stat {
  padding: 8px 12px;
  border-radius: var(--r-3);
  background: var(--c-purple-100);
  color: var(--c-purple-700);
}
.qdnapro-reveal-stage .rs-stat .rs-stat-v {
  font-size: 17px;
  font-weight: 800;
}
.qdnapro-reveal-stage .rs-stat .rs-stat-k {
  font-size: 10px;
  color: var(--c-purple-600);
}

.qdnapro-reveal-stage .rs-vs {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 220px;
}

.qdnapro-reveal-stage .rs-vs-name {
  position: absolute;
  white-space: nowrap;
  font-weight: 900;
  font-size: 30px;
  letter-spacing: 0.01em;
  transform: skewX(-8deg);
  opacity: 0;
  color: var(--rs-name-color, var(--c-text-on-action));
}
.qdnapro-reveal-stage .rs-vs-name.rs-vs-name--a {
  top: 30%;
  left: -120%;
}
.qdnapro-reveal-stage .rs-vs-name.rs-vs-name--b {
  top: 50%;
  right: -120%;
}

.qdnapro-reveal-stage .rs-vs-go .rs-vs-name--a {
  left: 50%;
  transform: translateX(-50%) skewX(-8deg);
  opacity: 1;
  transition: left 0.5s cubic-bezier(0.2, 1.2, 0.3, 1), opacity 0.2s;
}
.qdnapro-reveal-stage .rs-vs-go .rs-vs-name--b {
  right: 50%;
  transform: translateX(50%) skewX(-8deg);
  opacity: 1;
  transition: right 0.5s cubic-bezier(0.2, 1.2, 0.3, 1) 0.12s, opacity 0.2s 0.12s;
}

.qdnapro-reveal-stage .rs-vs-burst {
  position: absolute;
  top: 40%;
  left: 50%;
  width: 92px;
  height: 92px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  font-size: 30px;
  color: var(--c-purple-700);
  background: var(--c-warn-amber-500);
  transform: translate(-50%, -50%) scale(0);
  clip-path: polygon(50% 0%, 61% 12%, 78% 8%, 80% 26%, 97% 32%, 88% 47%, 100% 61%, 84% 68%, 84% 86%, 66% 83%, 55% 100%, 45% 84%, 27% 91%, 26% 73%, 8% 68%, 17% 52%, 3% 39%, 20% 31%, 20% 13%, 38% 16%);
}

.qdnapro-reveal-stage .rs-vs-burst-go .rs-vs-burst {
  transform: translate(-50%, -50%) scale(1);
  transition: transform 0.35s cubic-bezier(0.2, 2.2, 0.4, 1);
}

.qdnapro-reveal-stage .rs-you {
  position: relative;
  z-index: 2;
  opacity: 0;
  transform: translateY(26px);
}
.qdnapro-reveal-stage .rs-you.rs-you-show {
  opacity: 1;
  transform: none;
  transition: all 0.5s cubic-bezier(0.2, 1.4, 0.3, 1);
}

.qdnapro-reveal-stage .rs-you-pre {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--c-white-70);
}

.qdnapro-reveal-stage .rs-you-name {
  margin-top: 8px;
  font-size: 40px;
  font-weight: 900;
  line-height: 1.05;
  color: var(--rs-name-color, var(--c-text-on-action));
}

.qdnapro-reveal-stage .rs-ring {
  width: 128px;
  height: 128px;
  margin: 16px auto 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 3px solid var(--rs-ring-color, var(--c-text-on-action));
  background: rgba(255, 255, 255, 0.12);
  box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.08);
  font-weight: 800;
  font-size: 16px;
}

.qdnapro-reveal-stage .rs-ring-s {
  font-size: 11px;
  font-weight: 400;
  color: var(--c-white-70);
}

.qdnapro-reveal-stage .rs-race {
  position: relative;
  z-index: 2;
  width: min(280px, 90%);
}

.qdnapro-reveal-stage .rs-race-title {
  margin-bottom: 14px;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--c-white-70);
}

.qdnapro-reveal-stage .rs-lane-head {
  display: flex;
  justify-content: space-between;
  margin-bottom: 3px;
  font-size: 14px;
  font-weight: 800;
}

.qdnapro-reveal-stage .rs-lane-val {
  font-variant-numeric: tabular-nums;
  font-size: 16px;
}

.qdnapro-reveal-stage .rs-lane-track {
  margin-bottom: 14px;
}

.qdnapro-reveal-stage .rs-race-winner {
  position: relative;
  z-index: 2;
  display: none;
}
.qdnapro-reveal-stage .rs-race-winner.rs-race-winner-show {
  display: block;
}

.qdnapro-reveal-stage .rs-race-winname {
  font-size: 34px;
  font-weight: 900;
  line-height: 1.05;
  color: var(--rs-name-color, var(--c-text-on-action));
}

.qdnapro-reveal-stage .rs-race-resultlabel {
  margin-top: 2px;
  font-size: 20px;
  font-weight: 900;
  letter-spacing: 0.06em;
  color: var(--c-warn-amber-500);
}

.qdnapro-reveal-stage .rs-race-detail {
  max-width: 230px;
  margin: 12px auto 0;
  font-size: 12px;
  color: var(--c-white-70);
}

.qdnapro-reveal-stage .rs-podium-wrap {
  position: relative;
  z-index: 2;
  width: min(280px, 90%);
}

.qdnapro-reveal-stage .rs-podium-spot {
  min-height: 20px;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.qdnapro-reveal-stage .rs-podium-bars {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 10px;
  height: 190px;
  margin-top: 8px;
}

.qdnapro-reveal-stage .rs-podium-slot {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  width: 74px;
  height: 100%;
}

.qdnapro-reveal-stage .rs-podium-who {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: center;
  gap: 4px;
  margin-bottom: 6px;
}

.qdnapro-reveal-stage .rs-podium-person {
  display: flex;
  flex-direction: column;
  align-items: center;
  opacity: 0;
  transform: translateY(-40px);
}

.qdnapro-reveal-stage .rs-podium-who-land .rs-podium-person {
  opacity: 1;
  transform: none;
  transition: all 0.45s cubic-bezier(0.2, 1.8, 0.4, 1);
}

.qdnapro-reveal-stage .rs-podium-name {
  margin-top: 3px;
  font-size: 12px;
  font-weight: 800;
}

.qdnapro-reveal-stage .rs-podium-bar {
  width: 64px;
  height: 0;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 6px;
  font-size: 18px;
  font-weight: 900;
  overflow: hidden;
  border-radius: var(--r-2) var(--r-2) 0 0;
  background: var(--rs-bar-color, var(--c-purple-300));
  color: var(--rs-bar-ink, var(--c-text-on-action));
  transition: height 0.5s cubic-bezier(0.2, 1.3, 0.4, 1);
}

.qdnapro-reveal-stage .rs-podium-floor {
  height: 4px;
  margin-top: -2px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.4);
}

.qdnapro-reveal-stage .rs-podium-you {
  margin-top: 14px;
  padding: 8px 14px;
  border-radius: var(--r-3);
  background: var(--c-purple-100);
  color: var(--c-purple-700);
  font-size: 13px;
  font-weight: 800;
  opacity: 0;
}
.qdnapro-reveal-stage .rs-podium-you.rs-podium-you-show {
  opacity: 1;
  transition: opacity 0.4s ease;
}

.qdnapro-reveal-stage .rs-solo {
  position: relative;
  z-index: 2;
}

.qdnapro-reveal-stage .rs-solo-label,
.qdnapro-reveal-stage .rs-solo-unit {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--c-white-70);
}

.qdnapro-reveal-stage .rs-solo-count.qdnapro-score-count {
  margin-top: 6px;
}

.qdnapro-reveal-stage .rs-thanks {
  position: relative;
  z-index: 2;
}

.qdnapro-reveal-stage .rs-thanks-title {
  font-size: 34px;
  font-weight: 900;
  line-height: 1.1;
  color: var(--c-text-on-action);
}

.qdnapro-reveal-stage .rs-thanks-body {
  max-width: 220px;
  margin: 8px auto 0;
  font-size: 13px;
  color: var(--c-white-70);
}

.qdnapro-row-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-sizing: border-box;
  padding: 0;
  border: none;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.04);
  color: var(--c-grey-500);
  cursor: pointer;
  user-select: none;
  outline: none;
  transition: background 120ms ease, color 120ms ease;
}
.qdnapro-row-btn *, .qdnapro-row-btn *::before, .qdnapro-row-btn *::after {
  box-sizing: border-box;
}
.qdnapro-row-btn svg,
.qdnapro-row-btn qdnapro-icon {
  display: inline-flex;
  flex-shrink: 0;
  pointer-events: none;
  color: inherit;
}
.qdnapro-row-btn svg {
  fill: currentColor;
}
.qdnapro-row-btn.row-btn-size-36 {
  width: 36px;
  height: 36px;
}
.qdnapro-row-btn.row-btn-size-36 svg,
.qdnapro-row-btn.row-btn-size-36 qdnapro-icon {
  width: 20px;
  height: 20px;
}
.qdnapro-row-btn.row-btn-size-40 {
  width: 40px;
  height: 40px;
}
.qdnapro-row-btn.row-btn-size-40 svg,
.qdnapro-row-btn.row-btn-size-40 qdnapro-icon {
  width: 20px;
  height: 20px;
}
.qdnapro-row-btn.row-btn-size-28 {
  width: 28px;
  height: 28px;
  border-radius: 4px;
}
.qdnapro-row-btn.row-btn-size-28 svg,
.qdnapro-row-btn.row-btn-size-28 qdnapro-icon {
  width: 16px;
  height: 16px;
}
.qdnapro-row-btn:hover:not(.row-btn-disabled) {
  background: rgba(0, 0, 0, 0.08);
  color: var(--c-grey-950);
}
.qdnapro-row-btn:active:not(.row-btn-disabled) {
  background: rgba(0, 0, 0, 0.12);
}
.qdnapro-row-btn:focus-visible {
  box-shadow: 0 0 0 2px var(--c-focus-ring, #40499a), 0 0 0 5px var(--c-focus-glow, rgba(70, 82, 243, 0.2));
}
.qdnapro-row-btn.row-btn-active {
  background: rgba(70, 82, 243, 0.12);
  color: var(--c-purple-500);
}
.qdnapro-row-btn.row-btn-active:hover:not(.row-btn-disabled) {
  background: rgba(70, 82, 243, 0.18);
  color: var(--c-purple-600);
}
.qdnapro-row-btn.row-btn-active.row-btn-variant-concept {
  background: rgba(245, 158, 11, 0.16);
  color: var(--c-warn-amber-600);
}
.qdnapro-row-btn.row-btn-active.row-btn-variant-concept:hover:not(.row-btn-disabled) {
  background: rgba(245, 158, 11, 0.24);
  color: var(--c-warn-amber-600);
}
.qdnapro-row-btn.row-btn-disabled {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none;
}

[data-theme=dark] .qdnapro-row-btn {
  background: rgba(255, 255, 255, 0.05);
  color: #9ca3af;
}
[data-theme=dark] .qdnapro-row-btn:hover:not(.row-btn-disabled) {
  background: rgba(255, 255, 255, 0.1);
  color: #ffffff;
}
[data-theme=dark] .qdnapro-row-btn:active:not(.row-btn-disabled) {
  background: rgba(255, 255, 255, 0.14);
}
[data-theme=dark] .qdnapro-row-btn.row-btn-active {
  background: rgba(70, 82, 243, 0.2);
  color: #a5acff;
}
[data-theme=dark] .qdnapro-row-btn.row-btn-active:hover:not(.row-btn-disabled) {
  background: rgba(70, 82, 243, 0.3);
  color: #ffffff;
}
[data-theme=dark] .qdnapro-row-btn.row-btn-active.row-btn-variant-concept {
  background: rgba(245, 158, 11, 0.22);
  color: #fbbf24;
}
[data-theme=dark] .qdnapro-row-btn.row-btn-active.row-btn-variant-concept:hover:not(.row-btn-disabled) {
  background: rgba(245, 158, 11, 0.32);
  color: #fcd34d;
}

.qdnapro-segment {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 3px;
  background: #f0f1f2;
  border-radius: 10px;
  box-sizing: border-box;
  position: relative;
}
.qdnapro-segment.segment-size-small {
  border-radius: 8px;
}
.qdnapro-segment.segment-disabled {
  background: rgba(240, 241, 242, 0.7);
  pointer-events: none;
}
[data-theme=dark] .qdnapro-segment, .theme-dark .qdnapro-segment {
  background: #2a2d35;
}
[data-theme=dark] .qdnapro-segment.segment-disabled, .theme-dark .qdnapro-segment.segment-disabled {
  background: rgba(42, 45, 53, 0.6);
}

.segment-track-pill {
  position: absolute;
  top: 3px;
  left: 0;
  height: calc(100% - 6px);
  width: 0;
  transform: translateX(0);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.08);
  pointer-events: none;
  z-index: 0;
  transition: transform 280ms cubic-bezier(0.4, 0, 0.2, 1), width 280ms cubic-bezier(0.4, 0, 0.2, 1);
}
.segment-size-small .segment-track-pill {
  border-radius: 6px;
}
[data-theme=dark] .qdnapro-segment .segment-track-pill, .theme-dark .qdnapro-segment .segment-track-pill {
  background: #1e2028;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2);
}

.qdnapro-segment-item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 64px;
  height: 36px;
  padding: 0 14px;
  box-sizing: border-box;
  position: relative;
  z-index: 1;
  border-radius: 8px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
  color: rgba(11, 11, 13, 0.55);
  cursor: pointer;
  user-select: none;
  -webkit-user-select: none;
  outline: none;
  border: none;
  background: transparent;
  transition: color 200ms ease, background 150ms ease, box-shadow 150ms ease;
}
.qdnapro-segment-item .segment-item-icon {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  color: inherit;
}
.qdnapro-segment-item .segment-item-label {
  position: relative;
}
.qdnapro-segment-item .segment-item-label::after {
  content: attr(data-text);
  display: block;
  height: 0;
  overflow: hidden;
  visibility: hidden;
  font-weight: 600;
  pointer-events: none;
}
.qdnapro-segment-item:not(.segment-item-active):not(.segment-item-disabled):hover {
  color: rgba(11, 11, 13, 0.75);
  background: rgba(11, 11, 13, 0.06);
}
.qdnapro-segment-item:not(.segment-item-active):not(.segment-item-disabled):active {
  background: rgba(11, 11, 13, 0.1);
  color: rgba(11, 11, 13, 0.85);
}
.qdnapro-segment-item:focus-visible {
  box-shadow: 0 0 0 2px #40499a, 0 0 0 4px rgba(70, 82, 243, 0.25);
}
.qdnapro-segment-item.segment-item-active {
  color: #0b0b0d;
  font-weight: 600;
  cursor: default;
}
.qdnapro-segment-item.segment-item-active:focus-visible {
  box-shadow: 0 0 0 2px #40499a, 0 0 0 4px rgba(70, 82, 243, 0.25);
}
.qdnapro-segment-item.segment-item-disabled {
  color: #898e99;
  cursor: not-allowed;
  pointer-events: none;
  opacity: 0.7;
}
.qdnapro-segment-item.segment-item-icon-only {
  min-width: 0;
  width: 36px;
  padding: 0;
  gap: 0;
}
.qdnapro-segment-item.segment-item-icon-only .segment-item-label {
  display: none;
}
.segment-size-snug .qdnapro-segment-item {
  height: 32px;
  padding: 0 12px;
  border-radius: 8px;
  font-size: 12px;
  gap: 4px;
}
.segment-size-snug .qdnapro-segment-item .segment-item-icon {
  width: 16px;
  height: 16px;
}
.segment-size-snug .qdnapro-segment-item.segment-item-icon-only {
  width: 32px;
  padding: 0;
}
.segment-size-small .qdnapro-segment-item {
  height: 28px;
  padding: 0 10px;
  border-radius: 6px;
  font-size: 12px;
  gap: 4px;
}
.segment-size-small .qdnapro-segment-item .segment-item-icon {
  width: 14px;
  height: 14px;
}
.segment-size-small .qdnapro-segment-item.segment-item-icon-only {
  width: 28px;
  padding: 0;
}
[data-theme=dark] .qdnapro-segment-item, .theme-dark .qdnapro-segment-item {
  color: rgba(240, 241, 242, 0.5);
}
[data-theme=dark] .qdnapro-segment-item:not(.segment-item-active):not(.segment-item-disabled):hover, .theme-dark .qdnapro-segment-item:not(.segment-item-active):not(.segment-item-disabled):hover {
  color: rgba(240, 241, 242, 0.75);
  background: rgba(240, 241, 242, 0.08);
}
[data-theme=dark] .qdnapro-segment-item:not(.segment-item-active):not(.segment-item-disabled):active, .theme-dark .qdnapro-segment-item:not(.segment-item-active):not(.segment-item-disabled):active {
  background: rgba(240, 241, 242, 0.12);
  color: rgba(240, 241, 242, 0.9);
}
[data-theme=dark] .qdnapro-segment-item.segment-item-active, .theme-dark .qdnapro-segment-item.segment-item-active {
  color: #f0f1f2;
}
[data-theme=dark] .qdnapro-segment-item.segment-item-disabled, .theme-dark .qdnapro-segment-item.segment-item-disabled {
  color: #55585f;
  opacity: 0.6;
}

.qdnapro-segment.segment-variant-sliding-pills {
  background: transparent;
  padding: 0;
  gap: 4px;
  border-radius: 0;
}
.qdnapro-segment.segment-variant-sliding-pills .segment-track-pill {
  top: 0;
  height: 100%;
  border-radius: 20px;
  background: var(--c-purple-50);
  box-shadow: none;
}
.qdnapro-segment.segment-variant-sliding-pills .qdnapro-segment-item {
  border-radius: 20px;
}
.qdnapro-segment.segment-variant-sliding-pills .qdnapro-segment-item:not(.segment-item-active):not(.segment-item-disabled) {
  color: var(--c-purple-500);
}
.qdnapro-segment.segment-variant-sliding-pills .qdnapro-segment-item.segment-item-disabled {
  color: var(--c-text-disabled-pp);
}
.qdnapro-segment.segment-variant-sliding-pills .qdnapro-segment-item.segment-item-active {
  color: var(--c-purple-700);
}
.qdnapro-segment.segment-variant-sliding-pills .qdnapro-segment-item:not(.segment-item-active):not(.segment-item-disabled):hover {
  color: var(--c-purple-500);
  background: rgba(65, 73, 154, 0.06);
}
.qdnapro-segment.segment-variant-sliding-pills .qdnapro-segment-item:not(.segment-item-active):not(.segment-item-disabled):active {
  color: var(--c-purple-500);
  background: rgba(65, 73, 154, 0.1);
}

.qdnapro-segment.segment-variant-tiles {
  background: transparent;
  padding: 0;
  gap: 4px;
  border-radius: 0;
}
.qdnapro-segment.segment-variant-tiles .segment-track-pill {
  top: 0;
  height: 100%;
  border-radius: 8px;
  background: var(--c-purple-50, #e6e9ff);
  box-shadow: none;
}
.qdnapro-segment.segment-variant-tiles .qdnapro-segment-item {
  border-radius: 8px;
  color: var(--c-grey-500);
}
.qdnapro-segment.segment-variant-tiles .qdnapro-segment-item.segment-item-active {
  color: var(--c-purple-500);
}
.qdnapro-segment.segment-variant-tiles .qdnapro-segment-item:not(.segment-item-active):not(.segment-item-disabled):hover {
  background: var(--c-grey-50);
  color: var(--c-grey-950);
}
[data-theme=dark] .qdnapro-segment.segment-variant-tiles .segment-track-pill, .theme-dark .qdnapro-segment.segment-variant-tiles .segment-track-pill {
  background: var(--c-bg-secondary-purple);
}
[data-theme=dark] .qdnapro-segment.segment-variant-tiles .qdnapro-segment-item.segment-item-active, .theme-dark .qdnapro-segment.segment-variant-tiles .qdnapro-segment-item.segment-item-active {
  color: var(--c-purple-100, #c0c5ff);
}

.qdnapro-segment-item .segment-item-dot {
  position: absolute;
  top: 4px;
  right: 6px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  pointer-events: none;
}

.qdnapro-segment-item .segment-item-dot-warning {
  background: var(--c-warn-yellow-600);
}

.qdnapro-segment-item .segment-item-dot-alert {
  background: var(--c-favorite-heart);
}

.qdnapro-segment-tiles {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}
.qdnapro-segment-tiles *, .qdnapro-segment-tiles *::before, .qdnapro-segment-tiles *::after {
  box-sizing: border-box;
}

.qdnapro-segment-tiles .segment-label {
  font-size: 11px;
  font-weight: 500;
  color: rgba(11, 11, 13, 0.55);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.qdnapro-segment-tiles .segment-shell {
  position: relative;
}

.qdnapro-segment-tiles .segment-track {
  position: relative;
  display: flex;
  background: var(--c-grey-50);
  border-radius: 10px;
  padding: 3px;
  gap: 0;
}

.qdnapro-segment-tiles .segment-pill {
  position: absolute;
  top: 3px;
  bottom: 3px;
  border-radius: 8px;
  background: var(--c-bg-card);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.08);
  pointer-events: none;
  z-index: 0;
  transition: left 280ms cubic-bezier(0.4, 0, 0.2, 1), width 280ms cubic-bezier(0.4, 0, 0.2, 1);
}

.qdnapro-segment-tiles .segment-tile {
  position: relative;
  z-index: 1;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 10px 8px;
  border-radius: 7px;
  cursor: pointer;
  user-select: none;
  outline: none;
  transition: color 180ms ease;
}
.qdnapro-segment-tiles .segment-tile > qdnapro-icon {
  font-size: 18px;
  color: rgba(11, 11, 13, 0.55);
  transition: color 180ms ease;
  pointer-events: none;
}
.qdnapro-segment-tiles .segment-tile > span {
  font-size: 10px;
  font-weight: 500;
  color: rgba(11, 11, 13, 0.55);
  text-align: center;
  line-height: 1.3;
  transition: color 180ms ease;
  pointer-events: none;
}
.qdnapro-segment-tiles .segment-tile:focus-visible {
  box-shadow: 0 0 0 2px var(--focus-ring);
  border-radius: 7px;
}
.qdnapro-segment-tiles .segment-tile.active > qdnapro-icon {
  color: var(--c-purple-600);
}
.qdnapro-segment-tiles .segment-tile.active > span {
  color: var(--c-purple-600);
  font-weight: 600;
}
.qdnapro-segment-tiles .segment-tile:not(.active):not(.segment-tile--disabled):hover > qdnapro-icon {
  color: rgba(11, 11, 13, 0.75);
}
.qdnapro-segment-tiles .segment-tile:not(.active):not(.segment-tile--disabled):hover > span {
  color: rgba(11, 11, 13, 0.75);
}
.qdnapro-segment-tiles .segment-tile--disabled {
  cursor: not-allowed;
  opacity: 0.45;
}
.qdnapro-segment-tiles .segment-tile--disabled > qdnapro-icon {
  color: rgba(11, 11, 13, 0.45);
}
.qdnapro-segment-tiles .segment-tile--disabled > span {
  color: rgba(11, 11, 13, 0.45);
}

.qdnapro-segment-tiles--smiley .segment-tile {
  gap: 6px;
  padding: 12px 10px;
}
.qdnapro-segment-tiles--smiley .segment-tile-smileys {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  flex-wrap: nowrap;
  pointer-events: none;
}
.qdnapro-segment-tiles--smiley .segment-tile-smileys qdnapro-smiley {
  pointer-events: none;
}

.qdnapro-segment-tiles .segment-overlay {
  position: absolute;
  left: 0;
  right: 0;
  bottom: calc(100% + 8px);
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 38px 12px 14px;
  min-height: 52px;
  background: var(--c-bg-card);
  border-radius: 10px;
  border: 0.5px solid var(--c-border-soft);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.14), 0 2px 6px rgba(0, 0, 0, 0.08);
  z-index: 20;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(6px);
  transition: opacity 180ms ease, transform 180ms ease, visibility 0s linear 180ms;
}
.qdnapro-segment-tiles .segment-overlay.is-below {
  bottom: auto;
  top: calc(100% + 8px);
  transform: translateY(-6px);
}
.qdnapro-segment-tiles .segment-overlay.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
  transition: opacity 180ms ease, transform 180ms ease;
}
.qdnapro-segment-tiles .segment-overlay .segment-overlay-close {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  border-radius: 6px;
  background: transparent;
  color: rgba(11, 11, 13, 0.45);
  font-size: 16px;
  cursor: pointer;
  transition: background 140ms ease, color 140ms ease;
}
.qdnapro-segment-tiles .segment-overlay .segment-overlay-close:hover {
  background: var(--c-black-06);
  color: rgba(11, 11, 13, 0.75);
}
.qdnapro-segment-tiles .segment-overlay .segment-overlay-close:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--focus-ring);
}
.qdnapro-segment-tiles .segment-overlay .segment-desc-icon {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: var(--c-bg-card-hover);
  border: 0.5px solid var(--c-border-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.qdnapro-segment-tiles .segment-overlay .segment-desc-icon qdnapro-icon {
  font-size: 16px;
  color: var(--c-purple-600);
}
.qdnapro-segment-tiles .segment-overlay .segment-desc-icon--warning {
  background: var(--c-signal-orange-bg);
  border-color: rgba(214, 122, 47, 0.25);
}
.qdnapro-segment-tiles .segment-overlay .segment-desc-icon--warning qdnapro-icon {
  color: var(--c-warn-amber-500);
}
.qdnapro-segment-tiles .segment-overlay .segment-desc-text {
  flex: 1;
}
.qdnapro-segment-tiles .segment-overlay .segment-desc-text strong {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: var(--c-purple-600);
  line-height: 1.3;
  margin-bottom: 3px;
}
.qdnapro-segment-tiles .segment-overlay .segment-desc-text p {
  font-size: 11px;
  color: rgba(11, 11, 13, 0.65);
  line-height: 1.5;
  margin: 0;
}

qdnapro-segment-tile {
  display: none !important;
}

[data-theme=dark] .qdnapro-segment-tiles .segment-track,
.theme-dark .qdnapro-segment-tiles .segment-track {
  background: #2a2d35;
}
[data-theme=dark] .qdnapro-segment-tiles .segment-tile > qdnapro-icon,
.theme-dark .qdnapro-segment-tiles .segment-tile > qdnapro-icon {
  color: rgba(240, 241, 242, 0.5);
}
[data-theme=dark] .qdnapro-segment-tiles .segment-tile > span,
.theme-dark .qdnapro-segment-tiles .segment-tile > span {
  color: rgba(240, 241, 242, 0.5);
}
[data-theme=dark] .qdnapro-segment-tiles .segment-tile.active > qdnapro-icon,
.theme-dark .qdnapro-segment-tiles .segment-tile.active > qdnapro-icon {
  color: var(--c-brand-purple);
}
[data-theme=dark] .qdnapro-segment-tiles .segment-tile.active > span,
.theme-dark .qdnapro-segment-tiles .segment-tile.active > span {
  color: var(--c-brand-purple);
  font-weight: 600;
}
[data-theme=dark] .qdnapro-segment-tiles .segment-tile:not(.active):not(.segment-tile--disabled):hover > qdnapro-icon,
.theme-dark .qdnapro-segment-tiles .segment-tile:not(.active):not(.segment-tile--disabled):hover > qdnapro-icon {
  color: rgba(240, 241, 242, 0.75);
}
[data-theme=dark] .qdnapro-segment-tiles .segment-tile:not(.active):not(.segment-tile--disabled):hover > span,
.theme-dark .qdnapro-segment-tiles .segment-tile:not(.active):not(.segment-tile--disabled):hover > span {
  color: rgba(240, 241, 242, 0.75);
}
[data-theme=dark] .qdnapro-segment-tiles .segment-tile--disabled > qdnapro-icon,
.theme-dark .qdnapro-segment-tiles .segment-tile--disabled > qdnapro-icon {
  color: rgba(240, 241, 242, 0.3);
}
[data-theme=dark] .qdnapro-segment-tiles .segment-tile--disabled > span,
.theme-dark .qdnapro-segment-tiles .segment-tile--disabled > span {
  color: rgba(240, 241, 242, 0.3);
}
[data-theme=dark] .qdnapro-segment-tiles .segment-overlay .segment-overlay-close,
.theme-dark .qdnapro-segment-tiles .segment-overlay .segment-overlay-close {
  color: rgba(240, 241, 242, 0.45);
}
[data-theme=dark] .qdnapro-segment-tiles .segment-overlay .segment-overlay-close:hover,
.theme-dark .qdnapro-segment-tiles .segment-overlay .segment-overlay-close:hover {
  background: rgba(240, 241, 242, 0.08);
  color: rgba(240, 241, 242, 0.75);
}
[data-theme=dark] .qdnapro-segment-tiles .segment-overlay .segment-desc-icon qdnapro-icon,
.theme-dark .qdnapro-segment-tiles .segment-overlay .segment-desc-icon qdnapro-icon {
  color: var(--c-brand-purple);
}
[data-theme=dark] .qdnapro-segment-tiles .segment-overlay .segment-desc-icon--warning,
.theme-dark .qdnapro-segment-tiles .segment-overlay .segment-desc-icon--warning {
  background: rgba(214, 122, 47, 0.15);
  border-color: rgba(214, 122, 47, 0.3);
}
[data-theme=dark] .qdnapro-segment-tiles .segment-overlay .segment-desc-icon--warning qdnapro-icon,
.theme-dark .qdnapro-segment-tiles .segment-overlay .segment-desc-icon--warning qdnapro-icon {
  color: #e8994a;
}
[data-theme=dark] .qdnapro-segment-tiles .segment-overlay .segment-desc-text strong,
.theme-dark .qdnapro-segment-tiles .segment-overlay .segment-desc-text strong {
  color: var(--c-brand-purple);
}
[data-theme=dark] .qdnapro-segment-tiles .segment-overlay .segment-desc-text p,
.theme-dark .qdnapro-segment-tiles .segment-overlay .segment-desc-text p {
  color: rgba(240, 241, 242, 0.65);
}

.qdnapro-score-scale {
  --qss-neutral-idle-bg: color-mix(in srgb, var(--theme-btn-color, #40499a) 10%, #fff);
  --qss-neutral-idle-text: var(--theme-btn-color, #40499a);
  --qss-neutral-selected-bg: var(--theme-btn-selected-color, var(--theme-btn-color, #40499a));
  --qss-neutral-selected-text: var(--theme-btn-selected-text-color, #fff);
  --qss-separator: rgba(0, 0, 0, 0.08);
  --qss-selected-shadow: 0 8px 20px rgba(20, 25, 80, 0.16), 0 2px 6px rgba(20, 25, 80, 0.10);
  --qss-grow: 7px;
  --qss-grad-1: var(--c-warn-red-500, #dc2626);
  --qss-grad-2: var(--c-warn-yellow-500, #fbbf24);
  --qss-grad-3: var(--c-success-bright, #1d9e75);
  display: block;
  box-sizing: border-box;
  width: 100%;
  max-width: 640px;
  margin: 0 auto;
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.qdnapro-score-scale .qss-bar {
  display: flex;
  align-items: center;
  width: 100%;
  height: 56px;
  overflow: visible;
  box-shadow: var(--shadow-card, 0 1px 2px rgba(20, 25, 80, 0.04));
  touch-action: pan-y;
}

.qdnapro-score-scale.is-dragging .qss-segment {
  transition: none;
}

.qdnapro-score-scale .qss-segment {
  box-sizing: border-box;
  flex: 1 1 0;
  min-width: 0;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  border-right: 1px solid var(--qss-separator);
  background: var(--qss-neutral-idle-bg);
  color: var(--qss-neutral-idle-text);
  font-family: inherit;
  font-size: 15px;
  font-weight: 500;
  cursor: pointer;
  position: relative;
  z-index: 0;
  transition: height 150ms cubic-bezier(0.34, 1.56, 0.64, 1), border-radius 150ms cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 150ms ease-out, background-color 150ms ease-out, color 150ms ease-out, filter 150ms ease-out, opacity 150ms ease-out;
}

.qdnapro-score-scale .qss-segment:first-child {
  border-top-left-radius: var(--r-3, 12px);
  border-bottom-left-radius: var(--r-3, 12px);
}

.qdnapro-score-scale .qss-segment:last-child {
  border-right: none;
  border-top-right-radius: var(--r-3, 12px);
  border-bottom-right-radius: var(--r-3, 12px);
}

.qdnapro-score-scale .qss-segment:has(+ .qss-segment.is-selected) {
  border-right-color: transparent;
}

.qdnapro-score-scale .qss-segment:hover:not(:disabled):not(.is-selected) {
  filter: brightness(0.97);
}

.qdnapro-score-scale .qss-segment:focus {
  outline: none;
}

.qdnapro-score-scale .qss-segment:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 2px var(--c-action-500, #4652f3);
  z-index: 3;
}

.qdnapro-score-scale .qss-num {
  line-height: 1;
  pointer-events: none;
}

.qdnapro-score-scale .qss-segment.is-selected {
  height: calc(56px + var(--qss-grow) * 2);
  border-radius: var(--r-2, 8px);
  background: var(--qss-neutral-selected-bg);
  color: var(--qss-neutral-selected-text);
  border-right-color: transparent;
  box-shadow: var(--qss-selected-shadow);
  z-index: 2;
}

.qdnapro-score-scale .qss-segment.is-selected .qss-num {
  font-weight: 700;
  font-size: 17px;
}

.qdnapro-score-scale.is-gradient .qss-segment {
  color: var(--c-text-on-action);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
  border-right-color: rgba(255, 255, 255, 0.35);
}

.qdnapro-score-scale.is-gradient .qss-segment:not(.is-selected) {
  filter: saturate(0.45) brightness(1.05);
  opacity: 0.82;
}

.qdnapro-score-scale.is-gradient .qss-segment.is-selected {
  background-color: transparent;
  filter: none;
  opacity: 1;
}

.qdnapro-score-scale .qss-footer {
  margin-top: var(--s-2, 8px);
}

.qdnapro-score-scale .qss-endpoints {
  display: flex;
  justify-content: space-between;
  gap: var(--s-2, 8px);
  font-size: 12px;
  color: var(--c-text-muted, #6e7280);
}

.qdnapro-score-scale .qss-label-min,
.qdnapro-score-scale .qss-label-max {
  max-width: 48%;
}

.qdnapro-score-scale .qss-label-max {
  text-align: right;
}

.qdnapro-score-scale .qss-bands {
  position: relative;
  height: 18px;
  margin-top: var(--s-1, 4px);
}

.qdnapro-score-scale .qss-band {
  position: absolute;
  top: 0;
  text-align: center;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--c-text-muted, #6e7280);
  padding-top: var(--s-1, 4px);
  border-top: 1px solid var(--c-border-soft-2, #e6e9ef);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-score-scale .qss-nvt-divider {
  height: 1px;
  margin: var(--s-3, 12px) 0 var(--s-2, 8px);
  background: var(--c-border-card, #e1e3e6);
}

.qdnapro-score-scale .qss-nvt {
  box-sizing: border-box;
  display: block;
  margin-left: auto;
  min-height: 40px;
  padding: 0 var(--s-4, 16px);
  border: 1px solid var(--c-border-card, #e1e3e6);
  border-radius: var(--r-pill, 999px);
  background: var(--c-bg-card, #fff);
  color: var(--c-text-muted, #6e7280);
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 150ms ease-out, border-color 150ms ease-out, color 150ms ease-out;
}

.qdnapro-score-scale .qss-nvt:hover:not(:disabled):not(.is-selected) {
  background: var(--c-bg-subtle-hover, #f4f5f8);
  border-color: var(--c-border-tree, #d4d8ec);
}

.qdnapro-score-scale .qss-nvt:focus {
  outline: none;
}

.qdnapro-score-scale .qss-nvt:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--c-action-500, #4652f3);
}

.qdnapro-score-scale .qss-nvt.is-selected {
  border-width: 2px;
  border-color: var(--c-text-body, #14151a);
  background: var(--c-bg-subtle-hover, #f4f5f8);
  color: var(--c-text-body, #14151a);
  font-weight: 700;
}

.qdnapro-score-scale.is-disabled .qss-nvt {
  cursor: not-allowed;
}

[data-theme=dark] .qdnapro-score-scale .qss-nvt-divider {
  background: var(--c-border-card, rgba(255, 255, 255, 0.1));
}

[data-theme=dark] .qdnapro-score-scale .qss-nvt {
  border-color: var(--c-border-card, rgba(255, 255, 255, 0.1));
  background: var(--c-bg-card, #26262b);
}

@media (max-width: 420px) {
  .qdnapro-score-scale .qss-nvt {
    width: 100%;
    margin-left: 0;
    text-align: center;
  }
}
.qdnapro-score-scale.is-disabled {
  opacity: 0.55;
}

.qdnapro-score-scale.is-disabled .qss-segment {
  cursor: not-allowed;
}

[data-theme=dark] .qdnapro-score-scale {
  --qss-neutral-idle-bg: color-mix(in srgb, var(--theme-btn-color, #40499a) 22%, var(--c-grey-900, #18181c));
  --qss-neutral-idle-text: color-mix(in srgb, var(--theme-btn-color, #40499a) 70%, #fff);
  --qss-neutral-selected-bg: var(--theme-btn-selected-color, var(--theme-btn-color, #40499a));
  --qss-neutral-selected-text: var(--theme-btn-selected-text-color, #fff);
  --qss-separator: rgba(255, 255, 255, 0.1);
  --qss-selected-shadow: 0 8px 20px rgba(0, 0, 0, 0.45), 0 2px 6px rgba(0, 0, 0, 0.30);
}

[data-theme=dark] .qdnapro-score-scale .qss-band {
  border-top-color: var(--c-border-soft, rgba(255, 255, 255, 0.08));
}

@media (max-width: 420px) {
  .qdnapro-score-scale .qss-segment {
    font-size: 13px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-score-scale .qss-segment {
    transition: none;
  }
}
.qdnapro-likert-scale {
  --likert-accent: var(--theme-btn-color, var(--c-brand-purple, #40499a));
  --qls-check-color: var(--theme-btn-text-color, #fff);
  --qls-nvt-color: var(--c-grey-500, #6b7280);
  --qls-nvt-ring: var(--c-grey-400, #a6aab3);
  --qls-circle-size: 28px;
  --qls-gap: var(--s-2, 8px);
  display: block;
  box-sizing: border-box;
  width: 100%;
  font-family: var(--theme-font-family, "Inter", sans-serif);
  container: qdnapro-likert-scale/inline-size;
}
.qdnapro-likert-scale *,
.qdnapro-likert-scale *::before,
.qdnapro-likert-scale *::after {
  box-sizing: border-box;
}

.qdnapro-likert-scale__row {
  display: flex;
  align-items: flex-start;
  width: 100%;
  gap: var(--s-4, 16px);
  padding: 6px 4px 9px;
  overflow-x: auto;
  overflow-y: hidden;
}

.qdnapro-likert-scale__row::-webkit-scrollbar {
  height: 6px;
}

.qdnapro-likert-scale__row::-webkit-scrollbar-track {
  background: transparent;
}

.qdnapro-likert-scale__row::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 3px;
}

.qdnapro-likert-scale__row:hover::-webkit-scrollbar-thumb,
.qdnapro-likert-scale__row:focus-within::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.22);
}

.qdnapro-likert-scale__row::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.34);
}

.qdnapro-likert-scale__scale {
  display: flex;
  flex: 1 1 auto;
  justify-content: space-between;
  gap: var(--s-1, 4px);
  min-width: 0;
}

.qdnapro-likert-scale__item {
  display: flex;
  flex: 1 1 0;
  min-width: 0;
}

.qdnapro-likert-scale__item--nvt {
  flex: 0 0 auto;
}

.qdnapro-likert-scale__option {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--qls-gap);
  width: 100%;
  border: none;
  background: transparent;
  padding: 4px;
  border-radius: 8px;
  cursor: pointer;
  font: inherit;
  color: inherit;
  transition: background-color 150ms ease-out;
}

.qdnapro-likert-scale__option:focus {
  outline: none;
}

.qdnapro-likert-scale__label {
  width: 100%;
  max-width: 96px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--c-text-heading, #1a1f4d);
  text-align: center;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.5em;
}

.qdnapro-likert-scale__item--nvt .qdnapro-likert-scale__label {
  color: var(--c-text-muted, #6e7280);
}

.qdnapro-likert-scale__divider {
  align-self: stretch;
  width: 1px;
  min-width: 1px;
  margin-top: calc(2.5em + var(--qls-gap));
  background: var(--c-border-soft-2, #e6e9ef);
}

.qdnapro-likert-scale__dot {
  width: var(--qls-circle-size);
  height: var(--qls-circle-size);
  min-width: var(--qls-circle-size);
  flex-shrink: 0;
  border-radius: 50%;
  border: 2px solid var(--likert-accent);
  background: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background-color 150ms ease-out, border-color 150ms ease-out, box-shadow 150ms ease-out, transform 100ms ease-out;
}

.qdnapro-likert-scale__check {
  width: 58%;
  height: 58%;
  fill: none;
  stroke: var(--qls-check-color, #fff);
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 24;
  stroke-dashoffset: 24;
  opacity: 0;
  pointer-events: none;
  overflow: visible;
}

.qdnapro-likert-scale__option.is-selected .qdnapro-likert-scale__check {
  opacity: 1;
  animation: qls-check-pop 0.52s cubic-bezier(0.34, 1.56, 0.5, 1), qls-check-draw 0.38s cubic-bezier(0.22, 1, 0.36, 1) 0.04s forwards;
}

@keyframes qls-check-pop {
  0% {
    transform: scale(0.7) rotate(0deg);
  }
  20% {
    transform: scale(1.22) rotate(-5deg);
  }
  44% {
    transform: scale(0.9) rotate(3deg);
  }
  64% {
    transform: scale(1.08) rotate(-1deg);
  }
  80% {
    transform: scale(0.97) rotate(0deg);
  }
  100% {
    transform: scale(1) rotate(0deg);
  }
}
@keyframes qls-check-draw {
  0% {
    stroke-dashoffset: 24;
  }
  62% {
    stroke-dashoffset: -1;
  }
  80% {
    stroke-dashoffset: 0.7;
  }
  100% {
    stroke-dashoffset: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-likert-scale__option.is-selected .qdnapro-likert-scale__check {
    animation: none;
    stroke-dashoffset: 0;
  }
}
.qdnapro-likert-scale__option:hover:not(:disabled):not(.is-selected) .qdnapro-likert-scale__dot {
  background: color-mix(in srgb, var(--likert-accent) 12%, transparent);
}

.qdnapro-likert-scale__option:focus-visible .qdnapro-likert-scale__dot {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--likert-accent) 30%, transparent);
}

.qdnapro-likert-scale__option.is-selected .qdnapro-likert-scale__dot {
  background: var(--likert-accent);
  border-color: var(--likert-accent);
  transform: scale(1.08);
}

.qdnapro-likert-scale__option:active:not(:disabled) .qdnapro-likert-scale__dot {
  transform: scale(0.94);
}

.qdnapro-likert-scale__dot--nvt {
  border-color: var(--qls-nvt-ring);
}

.qdnapro-likert-scale__option--nvt:hover:not(:disabled):not(.is-selected) .qdnapro-likert-scale__dot {
  background: color-mix(in srgb, var(--qls-nvt-color) 12%, transparent);
}

.qdnapro-likert-scale__option--nvt:focus-visible .qdnapro-likert-scale__dot {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--qls-nvt-color) 30%, transparent);
}

.qdnapro-likert-scale__option--nvt.is-selected .qdnapro-likert-scale__dot {
  background: var(--qls-nvt-color);
  border-color: var(--qls-nvt-color);
}

.qdnapro-likert-scale.is-readonly .qdnapro-likert-scale__option {
  cursor: default;
}

.qdnapro-likert-scale.is-readonly .qdnapro-likert-scale__option:hover .qdnapro-likert-scale__dot {
  background: transparent;
}

.qdnapro-likert-scale.is-readonly .qdnapro-likert-scale__option--nvt:hover .qdnapro-likert-scale__dot {
  background: transparent;
}

.qdnapro-likert-scale.is-readonly .qdnapro-likert-scale__option.is-selected .qdnapro-likert-scale__dot {
  background: var(--likert-accent);
}

.qdnapro-likert-scale.is-readonly .qdnapro-likert-scale__option--nvt.is-selected .qdnapro-likert-scale__dot {
  background: var(--qls-nvt-color);
}

.qdnapro-likert-scale.is-disabled {
  opacity: 0.55;
}

.qdnapro-likert-scale.is-disabled .qdnapro-likert-scale__option {
  cursor: not-allowed;
}

[data-theme=dark] .qdnapro-likert-scale {
  --qls-nvt-color: var(--c-grey-400, #a6aab3);
  --qls-nvt-ring: var(--c-grey-600, #565b66);
}

[data-theme=dark] .qdnapro-likert-scale__divider {
  background: var(--c-border-soft, rgba(255, 255, 255, 0.08));
}

[data-theme=dark] .qdnapro-likert-scale__label {
  color: var(--c-text-heading, #e1e3e6);
}

@container qdnapro-likert-scale (max-width: 680px) {
  .qdnapro-likert-scale__row {
    flex-direction: column;
    align-items: stretch;
    gap: var(--s-2, 8px);
    overflow: visible;
  }
  .qdnapro-likert-scale__scale {
    flex-direction: column;
    align-items: stretch;
    gap: var(--s-2, 8px);
  }
  .qdnapro-likert-scale__item {
    flex: 0 0 auto;
  }
  .qdnapro-likert-scale__option {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: var(--s-3, 12px);
    min-height: 44px;
    padding: 6px 4px;
  }
  .qdnapro-likert-scale__dot {
    order: 0;
  }
  .qdnapro-likert-scale__label {
    order: 1;
    flex: 1 1 auto;
    width: auto;
    max-width: none;
    text-align: left;
    min-height: 0;
    -webkit-line-clamp: initial;
    display: block;
    overflow: visible;
  }
  .qdnapro-likert-scale__divider {
    display: none;
  }
  .qdnapro-likert-scale__item--nvt {
    margin-top: var(--s-2, 8px);
    padding-top: var(--s-3, 12px);
    border-top: 1px solid var(--c-border-soft-2, #e6e9ef);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-likert-scale__dot {
    transition: none;
  }
}
.qdnapro-smiley {
  --smiley-size: 56px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}

.qdnapro-smiley__visual {
  display: inline-flex;
  transform-origin: 50% 78%;
  will-change: transform;
}

.qdnapro-smiley__img {
  display: block;
  width: var(--smiley-size);
  height: var(--smiley-size);
  object-fit: contain;
  user-select: none;
  -webkit-user-drag: none;
  pointer-events: none;
}

.qdnapro-smiley--interactive {
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.qdnapro-smiley--interactive:focus-visible {
  outline: 2px solid var(--c-action-500, #4652f3);
  outline-offset: 2px;
  border-radius: 8px;
}

.qdnapro-smiley--interactive[data-face=sad] .qdnapro-smiley__visual {
  animation: qsm-idle-sad 4.4s ease-in-out infinite;
}

.qdnapro-smiley--interactive[data-face=meh] .qdnapro-smiley__visual {
  animation: qsm-idle-meh 5.2s ease-in-out infinite;
}

.qdnapro-smiley--interactive[data-face=ok] .qdnapro-smiley__visual {
  animation: qsm-idle-ok 3.6s ease-in-out infinite;
}

.qdnapro-smiley--interactive[data-face=smile] .qdnapro-smiley__visual {
  animation: qsm-idle-smile 2.8s ease-in-out infinite;
}

.qdnapro-smiley--interactive[data-face=yay] .qdnapro-smiley__visual {
  animation: qsm-idle-yay 2.1s ease-in-out infinite;
}

@keyframes qsm-idle-sad {
  0%, 100% {
    transform: translateY(0) rotate(0deg);
  }
  50% {
    transform: translateY(2px) rotate(-2.5deg);
  }
}
@keyframes qsm-idle-meh {
  0%, 100% {
    transform: translateY(0) rotate(0deg);
  }
  50% {
    transform: translateY(1px) rotate(1deg);
  }
}
@keyframes qsm-idle-ok {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-3px);
  }
}
@keyframes qsm-idle-smile {
  0%, 100% {
    transform: translateY(0) rotate(0deg);
  }
  50% {
    transform: translateY(-5px) rotate(2.5deg);
  }
}
@keyframes qsm-idle-yay {
  0%, 20%, 100% {
    transform: translateY(0) rotate(0deg);
  }
  10% {
    transform: translateY(-6px) rotate(-4deg);
  }
  30% {
    transform: translateY(-6px) rotate(4deg);
  }
}
.qdnapro-smiley--interactive[data-face=sad] .qdnapro-smiley__visual.is-reacting {
  animation: qsm-react-sad 0.72s cubic-bezier(0.36, 0, 0.66, -0.06) 1;
}

.qdnapro-smiley--interactive[data-face=meh] .qdnapro-smiley__visual.is-reacting {
  animation: qsm-react-meh 0.5s ease-in-out 1;
}

.qdnapro-smiley--interactive[data-face=ok] .qdnapro-smiley__visual.is-reacting {
  animation: qsm-react-ok 0.5s cubic-bezier(0.34, 1.2, 0.64, 1) 1;
}

.qdnapro-smiley--interactive[data-face=smile] .qdnapro-smiley__visual.is-reacting {
  animation: qsm-react-smile 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) 1;
}

.qdnapro-smiley--interactive[data-face=yay] .qdnapro-smiley__visual.is-reacting {
  animation: qsm-react-yay 0.85s cubic-bezier(0.34, 1.56, 0.64, 1) 1;
}

@keyframes qsm-react-sad {
  0% {
    transform: translateY(0) rotate(0deg) scale(1);
  }
  22% {
    transform: translateY(3px) rotate(-9deg) scale(0.96);
  }
  44% {
    transform: translateY(3px) rotate(7deg) scale(0.96);
  }
  66% {
    transform: translateY(3px) rotate(-5deg) scale(0.97);
  }
  85% {
    transform: translateY(2px) rotate(1deg) scale(0.99);
  }
  100% {
    transform: translateY(2px) rotate(0deg) scale(1);
  }
}
@keyframes qsm-react-meh {
  0% {
    transform: rotate(0deg) scale(1);
  }
  30% {
    transform: rotate(-6deg) scale(1.02);
  }
  60% {
    transform: rotate(4deg) scale(1.01);
  }
  100% {
    transform: rotate(0deg) scale(1);
  }
}
@keyframes qsm-react-ok {
  0% {
    transform: translateY(0) scale(1);
  }
  35% {
    transform: translateY(6px) scale(0.95);
  }
  65% {
    transform: translateY(-3px) scale(1.03);
  }
  100% {
    transform: translateY(0) scale(1);
  }
}
@keyframes qsm-react-smile {
  0% {
    transform: scale(1) translateY(0);
  }
  32% {
    transform: scale(1.2) translateY(-8px);
  }
  58% {
    transform: scale(0.95) translateY(2px);
  }
  78% {
    transform: scale(1.06) translateY(-2px);
  }
  100% {
    transform: scale(1) translateY(0);
  }
}
@keyframes qsm-react-yay {
  0% {
    transform: scale(1) translateY(0) rotate(0deg);
  }
  14% {
    transform: scale(1.24) translateY(-13px) rotate(-7deg);
  }
  30% {
    transform: scale(0.93) translateY(0) rotate(5deg);
  }
  46% {
    transform: scale(1.17) translateY(-10px) rotate(-4deg);
  }
  62% {
    transform: scale(0.96) translateY(0) rotate(2deg);
  }
  82% {
    transform: scale(1.04) translateY(-2px) rotate(0deg);
  }
  100% {
    transform: scale(1) translateY(0) rotate(0deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-smiley__visual {
    animation: none !important;
  }
}
.qdnapro-smiley-picker {
  display: block;
}

.qdnapro-smiley-picker .qsp-track {
  display: flex;
  justify-content: space-between;
  gap: 4px;
}

.qdnapro-smiley-picker .qsp-option {
  box-sizing: border-box;
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 8px 4px 10px;
  border-radius: 14px;
  border: 1px solid transparent;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.16s ease, border-color 0.16s ease;
}

.qdnapro-smiley-picker .qsp-option:hover {
  background: color-mix(in srgb, var(--theme-btn-color, #40499a) 8%, transparent);
}

.qdnapro-smiley-picker .qsp-option.is-active {
  background: color-mix(in srgb, var(--theme-btn-color, #40499a) 15%, transparent);
  border-color: var(--theme-btn-color, #40499a);
}

.qdnapro-smiley-picker .qsp-option:focus-visible {
  outline: 2px solid var(--c-action-500, #4652f3);
  outline-offset: 2px;
}

.qdnapro-smiley-picker .qsp-label {
  font-size: 11px;
  font-weight: 600;
  color: var(--c-text-muted, #6b7280);
  text-align: center;
  line-height: 1.3;
}

.qdnapro-smiley-picker .qsp-option.is-active .qsp-label {
  color: var(--theme-btn-color, #40499a);
}

.qdnapro-smiley-picker.is-disabled .qsp-option {
  cursor: default;
  opacity: 0.5;
  pointer-events: none;
}

@media (max-width: 420px) {
  .qdnapro-smiley-picker .qsp-track {
    gap: 0;
  }
  .qdnapro-smiley-picker .qsp-label {
    font-size: 9.5px;
  }
}
/* ============================================================
 *  qdnapro-select — compiled from _select.scss
 * ============================================================ */
.qdnapro-select {
  display: block;
  width: 100%;
  position: relative;
}

/* Direct children of the select are the SOURCE list — hidden until the popover
   moves them in. `qdnapro-menu-separator` is the keyline (qdna-menu.js); the
   `qdnapro-menu-divider` that used to be listed here was never a real element,
   so it hid nothing and rendered nothing. [Kim 05.08.2026] */
.qdnapro-select > qdnapro-menu-item,
.qdnapro-select > qdnapro-menu-section-heading,
.qdnapro-select > qdnapro-menu-separator {
  display: none !important;
}

.qdnapro-select-trigger {
  display: block;
  width: 100%;
  cursor: pointer;
}

.qdnapro-select-popover {
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300);
  border-radius: 8px;
  padding: 4px;
  max-height: 320px;
  overflow-y: auto;
  overflow-x: hidden;
  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.08), 0 1px 2px 0 rgba(0, 0, 0, 0.14);
  display: flex;
  flex-direction: column;
  gap: 4px;
  /* Hide the scrollbar — content still scrolls. Flat scrollbar-hide (the
     qdna-scrollbar-hidden mixin isn't in scope in the components-v2 bundle,
     same reason as _bottom-sheet.scss). [Kim 2026-07-20] */
  scrollbar-width: none; /* Firefox */
  -ms-overflow-style: none; /* old Edge/IE */
}

.qdnapro-select-popover::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none; /* Chrome / Safari */
}

/* `dense` popover — tighten the row spacing (radio / avatar / label closer) for
   selects that opt in via the `dense` attribute (e.g. the Auditritme user
   pickers). Scoped to this popover modifier so no menu-item elsewhere is
   affected. [Kim 2026-07-20] */
.qdnapro-select-popover--dense .qdnapro-menu-item {
  gap: 6px;
}

.qdnapro-select-popover--dense .qdnapro-menu-item.menu-item-with-avatar .menu-item-avatar-wrap {
  padding: 0 1px;
}

.qdnapro-select-popover .qdnapro-select-search {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--c-bg-card);
  padding: 4px;
  margin: -4px -4px 0 -4px;
  border-bottom: 1px solid var(--c-border-card);
}

.qdnapro-select-popover .qdnapro-select-menu {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
  width: 100%;
}

/* popover-max-height="N" — the popover is capped, so the MENU becomes the scroller
   instead of the popover root. Without this the root scrolls, and a `searchable`
   select then scrolls its own search field out of view the moment you scroll the
   list — precisely when you need it. qdna-select.js sets overflow-y: hidden inline
   on the root when capped, and adds this modifier class. [Kim 05.08.2026] */
.qdnapro-select-popover--capped {
  overflow: hidden;
}

.qdnapro-select-popover--capped .qdnapro-select-search {
  flex: 0 0 auto;
}

.qdnapro-select-popover--capped .qdnapro-select-menu {
  flex: 1 1 auto;
  /* Without min-height:0 a flex item refuses to shrink below its content, so the
     menu would push past the cap instead of scrolling inside it. */
  min-height: 0;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(64, 73, 154, 0.35) transparent;
}

.qdnapro-select-popover--capped .qdnapro-select-menu::-webkit-scrollbar {
  width: 7px;
}

.qdnapro-select-popover--capped .qdnapro-select-menu::-webkit-scrollbar-track {
  background: transparent;
}

.qdnapro-select-popover--capped .qdnapro-select-menu::-webkit-scrollbar-thumb {
  background: rgba(64, 73, 154, 0.35);
  border-radius: 4px;
}

.qdnapro-select-popover--capped .qdnapro-select-menu::-webkit-scrollbar-thumb:hover {
  background: rgba(64, 73, 154, 0.55);
}

.qdnapro-select-popover .qdnapro-select-empty {
  padding: 16px 12px;
  text-align: center;
  font-family: "Inter", sans-serif;
  font-size: 13px;
  line-height: 18px;
  color: var(--c-text-disabled);
}

[data-theme=dark] .qdnapro-select-popover {
  background: #1f2028;
  border-color: #565b66;
  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.3), 0 1px 2px 0 rgba(0, 0, 0, 0.4);
}

[data-theme=dark] .qdnapro-select-popover .qdnapro-select-search {
  background: #1f2028;
  border-bottom-color: #40444d;
}

[data-theme=dark] .qdnapro-select-popover .qdnapro-select-empty {
  color: #898e99;
}

/* ============================================================
 *  touch mode — opt-in via a `touch` attribute on <qdnapro-select>
 *  (PWA flow only; never set in the backoffice, so desktop selects are
 *  byte-for-byte unaffected). qdna-select.js adds the modifier class
 *  BELOW to the popover ROOT itself (not the host) because the popover
 *  is portaled to document.body — a `.flow …` ancestor selector would
 *  never reach it there. Verified current values before overriding:
 *  option row was min-height 40px / padding 8px 16px / 14px label
 *  (_menu-item.scss menu-item-size-default); checkbox/radio indicator
 *  was 16px (_checkbox.scss / _radio.scss default --cb-size/--rb-size);
 *  search input text was 14px (inherited .qdnapro-input default), NOT
 *  13px as first assumed — still bumped to 16px since anything under
 *  16px triggers iOS Safari's auto-zoom-on-focus. [2026-07-13]
 * ============================================================ */
/* Option rows — Material/Apple touch guidance: >=48px tap target, 16px
   label (never smaller — readability at arm's length). */
.qdnapro-select-popover--touch .qdnapro-menu-item.menu-item-size-default {
  /* min-height (not fixed height) is a floor — the row grows when a long
     label wraps to two lines. align-items: center (from _menu-item.scss)
     keeps the toggle centred against the taller row. */
  min-height: 48px;
  padding: 12px 16px;
  font-size: 16px;
  line-height: 24px;
}

.qdnapro-select-popover--touch .qdnapro-menu-item .menu-item-label {
  font-size: 16px;
  /* Let long option labels WRAP instead of truncating with an ellipsis —
     the wider break-out popover plus wrapping means a full "Antwoordoptie"
     label shows. Overrides the base .menu-item-label nowrap/ellipsis. */
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}

/* Checkbox/radio indicator — bump from the 16px default toward the 28px
   already established by qdnapro-checkbox's own size="touch-sm" (dense-row
   touch convention, see _checkbox.scss). Mark/dot scale with it. */
.qdnapro-select-popover--touch .qdnapro-menu-item qdnapro-checkbox {
  --cb-size: 28px;
}

.qdnapro-select-popover--touch .qdnapro-menu-item qdnapro-checkbox .checkbox-mark {
  width: 20px;
  height: 20px;
}

.qdnapro-select-popover--touch .qdnapro-menu-item qdnapro-checkbox .checkbox-mark-dash {
  width: 14px;
  height: 3px;
}

.qdnapro-select-popover--touch .qdnapro-menu-item qdnapro-radio {
  --rb-size: 28px;
}

.qdnapro-select-popover--touch .qdnapro-menu-item qdnapro-radio .radio-dot {
  width: 7px;
  height: 7px;
}

/* A little extra room between rows once they're taller. */
.qdnapro-select-popover--touch .qdnapro-select-menu {
  gap: 6px;
}

/* Search input — >=16px is CRITICAL (anything smaller makes iOS Safari
   auto-zoom on focus). Extra height/padding + explicit specificity (two
   classes on the search element itself) so this reliably beats
   _input.scss's own `.qdnapro-input.input-size-small .input-field` rule
   regardless of partial import order. */
.qdnapro-select-popover--touch .qdnapro-select-search.input-size-small .input-field {
  min-height: 48px;
  padding: 0 14px;
}

.qdnapro-select-popover--touch .qdnapro-select-search .input-native {
  font-size: 16px;
}

.qdnapro-share-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.qdnapro-share-warn {
  margin: 0;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--c-tag-warning-bg);
  color: var(--c-tag-warning-text);
  border: 1px solid var(--c-warning-bright-border);
  font-size: 13px;
  line-height: 18px;
}

.qdnapro-share-note {
  margin: 0;
  color: var(--c-text-muted);
  font-size: 12px;
  line-height: 16px;
}

.qdnapro-share-channels {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.qdnapro-share-channel {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 11px 12px;
  border: 1px solid var(--c-border-card);
  border-radius: 12px;
  background: var(--c-bg-card);
  color: var(--c-text-body);
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  text-align: left;
  cursor: pointer;
  transition: background 120ms ease-out, border-color 120ms ease-out;
}
.qdnapro-share-channel:hover {
  background: var(--c-bg-subtle-purple);
  border-color: var(--c-purple-100);
}
.qdnapro-share-channel:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}
.qdnapro-share-channel:active {
  background: var(--c-purple-50);
}

.qdnapro-share-channel-icon {
  flex-shrink: 0;
  display: inline-flex;
  color: var(--c-purple-500);
}

.qdnapro-share-channel-label {
  flex: 1 1 auto;
}

.qdnapro-share-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 10px;
  border: 1px solid transparent;
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  cursor: pointer;
  user-select: none;
  transition: background 120ms ease-out, border-color 120ms ease-out, color 120ms ease-out;
}
.qdnapro-share-btn .share-btn-icon {
  display: inline-flex;
  flex-shrink: 0;
}
.qdnapro-share-btn:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}
.qdnapro-share-btn.share-btn-icon-only {
  gap: 0;
  padding: 8px;
  border-radius: 8px;
}
.qdnapro-share-btn.share-btn-disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-share-btn.share-btn-primary {
  background: var(--c-brand-purple);
  color: var(--c-text-on-action);
}
.qdnapro-share-btn.share-btn-primary:hover {
  background: var(--c-brand-purple-hover);
}
.qdnapro-share-btn.share-btn-primary:active {
  background: var(--c-brand-purple-press);
}

.qdnapro-share-btn.share-btn-subtle {
  background: transparent;
  color: var(--c-purple-500);
}
.qdnapro-share-btn.share-btn-subtle .share-btn-icon {
  color: var(--c-purple-500);
}
.qdnapro-share-btn.share-btn-subtle:hover {
  background: var(--c-bg-subtle-purple);
}

.qdnapro-share-btn.share-btn-secondary {
  background: var(--c-bg-card);
  color: var(--c-text-body);
  border-color: var(--c-border-card);
}
.qdnapro-share-btn.share-btn-secondary .share-btn-icon {
  color: var(--c-purple-500);
}
.qdnapro-share-btn.share-btn-secondary:hover {
  background: var(--c-bg-card-hover);
}

.qdnapro-share-inbox-body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.qdnapro-share-inbox-list {
  display: flex;
  flex-direction: column;
  max-height: 46vh;
  overflow-y: auto;
  margin: 0 -4px;
  padding: 0 4px;
}

/* Pick-mode header slot: custom fields (frequentie + set) boven de Teams/Personen-
   secties. Onderrand scheidt ze van de zoek/lijst. [Jan 2026-07-11] */
.qdnapro-share-inbox-header {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-bottom: 12px;
  margin-bottom: 2px;
  border-bottom: 1px solid var(--c-border, #e6e4f2);
}

.qdnapro-share-inbox-header .mdash-fld {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.qdnapro-share-inbox-header label {
  font-size: 10.5px;
  color: var(--c-text-muted, #6b6884);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding-left: 2px;
}

.qdnapro-share-inbox-header select {
  font-size: 13px;
  color: var(--c-text-heading);
  border: 1px solid var(--c-border-tree);
  background: #fff;
  border-radius: 10px;
  padding: 8px 12px;
  width: 100%;
  cursor: pointer;
}

.qdnapro-share-inbox-header select:focus {
  outline: none;
  border-color: var(--c-sidebar-bg);
}

.qdnapro-share-inbox-section {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--c-text-muted);
  padding: 10px 4px 4px;
}

.qdnapro-share-inbox-row {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 8px 10px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  color: var(--c-text-body);
  font-family: inherit;
  text-align: left;
  cursor: pointer;
  transition: background 110ms ease-out, border-color 110ms ease-out;
}
.qdnapro-share-inbox-row:hover {
  background: var(--c-bg-subtle-purple);
}
.qdnapro-share-inbox-row.is-selected {
  background: var(--c-bg-subtle-purple);
  border-color: var(--c-purple-100);
}
.qdnapro-share-inbox-row:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}

.qdnapro-share-inbox-check {
  flex-shrink: 0;
}

.qdnapro-share-inbox-avatar {
  flex-shrink: 0;
}

.qdnapro-share-inbox-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
  line-height: 1.25;
}

.qdnapro-share-inbox-name {
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-share-inbox-sub {
  font-size: 12px;
  color: var(--c-text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-share-inbox-comment-wrap {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 10px;
  padding-top: 12px;
  border-top: 1px solid var(--c-border-card);
}

.qdnapro-share-inbox-comment-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--c-text-muted);
}

.qdnapro-share-link {
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-sizing: border-box;
  width: 100%;
  border: 1px solid var(--c-grey-100, #e7e9ec);
  border-radius: var(--r-3, 12px);
  background: var(--c-bg-card);
  padding: 16px;
  align-items: stretch;
  font-family: "Inter", sans-serif;
}

.qdnapro-share-link--card {
  align-items: center;
}

.qdnapro-share-link__heading {
  align-self: flex-start;
  font-size: 15px;
  font-weight: 700;
  color: var(--c-text-heading);
}

.qdnapro-share-link__desc {
  align-self: flex-start;
  margin-top: -4px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--c-grey-500, #6b7280);
}

.qdnapro-share-link__head {
  width: 100%;
  display: flex;
  justify-content: flex-end;
  min-height: 4px;
}

.qdnapro-share-link__badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.4;
}

.qdnapro-share-link__badge--active {
  background: var(--c-signal-green-bg, #c5f5e2);
  color: var(--c-signal-green-text, #428b6e);
}

.qdnapro-share-link__badge--inactive {
  background: var(--c-grey-100, #e7e9ec);
  color: var(--c-grey-600, #565b66);
}

.qdnapro-share-link__qr {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4px;
}

.qdnapro-share-link__qr canvas,
.qdnapro-share-link__qr img,
.qdnapro-share-link__qr table {
  display: block;
}

.qdnapro-share-link__meta {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 4px 20px;
  font-size: 0.8rem;
  color: var(--c-grey-500, #6b7280);
}

.qdnapro-share-link__url {
  width: 100%;
  box-sizing: border-box;
  padding: 10px 12px;
  border-radius: var(--r-2, 8px);
  background: var(--c-grey-50, #f0f1f2);
}

.qdnapro-share-link__url-text {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: Menlo, monospace;
  font-size: 12.5px;
  color: var(--c-text-heading);
}

.qdnapro-share-link__actions {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.qdnapro-share-link__copy qdnapro-icon,
.qdnapro-share-link__deactivate qdnapro-icon {
  margin-right: 6px;
  vertical-align: middle;
}

.qdnapro-sidebar {
  display: flex;
  flex-direction: column;
  width: 297px;
  max-height: 100vh;
  background: var(--c-bg-card);
  border-radius: 8px;
  box-sizing: border-box;
  font-family: "Inter", inter, sans-serif;
  overflow: hidden;
  transition: max-height 180ms ease-out;
}
.qdnapro-sidebar.sidebar-collapsed .sidebar-search, .qdnapro-sidebar.sidebar-collapsed .sidebar-items {
  max-height: 0;
  opacity: 0;
  padding-top: 0;
  padding-bottom: 0;
  margin-top: 0;
  margin-bottom: 0;
  pointer-events: none;
  overflow: hidden;
}
.qdnapro-sidebar .sidebar-top {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px;
  flex-shrink: 0;
  overflow: hidden;
  min-width: 0;
}
.qdnapro-sidebar .sidebar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 0 0 4px 8px;
}
.qdnapro-sidebar .sidebar-title {
  margin: 0;
  font-family: "Inter", inter, sans-serif;
  font-size: 20px;
  font-weight: 600;
  line-height: 24px;
  color: var(--c-purple-500);
}
.qdnapro-sidebar .sidebar-actions {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}
.qdnapro-sidebar .sidebar-search {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  min-width: 0;
  max-height: 80px;
  opacity: 1;
  transition: max-height 180ms ease-out, opacity 120ms ease-out, padding 180ms ease-out, margin 180ms ease-out;
}
.qdnapro-sidebar .sidebar-items {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px;
  overflow-y: auto;
  overflow-x: hidden;
  flex: 1 1 auto;
  min-height: 0;
  max-height: 1200px;
  opacity: 1;
  transition: max-height 220ms ease-out, opacity 140ms ease-out, padding 220ms ease-out, margin 220ms ease-out;
}
.qdnapro-sidebar .sidebar-items > hr {
  margin: 0;
  border: 0;
  border-top: 1px solid var(--c-border-tree);
  width: 100%;
}
.qdnapro-sidebar .sidebar-items > qdnapro-tree-item {
  width: 100%;
  margin: 0;
}

[data-theme=dark] .qdnapro-sidebar {
  background: #1f2028;
}
[data-theme=dark] .qdnapro-sidebar .sidebar-title {
  color: #f0f1f2;
}
[data-theme=dark] .qdnapro-sidebar .sidebar-items > hr {
  border-top-color: #3a3b42;
}
[data-theme=dark] .qdnapro-sidebar qdnapro-input .input-field {
  background: #2a2b34;
  border-color: #3a3b42;
}
[data-theme=dark] .qdnapro-sidebar qdnapro-input .input-native {
  color: #e1e3e6;
}
[data-theme=dark] .qdnapro-sidebar qdnapro-input .input-native::placeholder {
  color: #a6aab3;
}

.qdnapro-slider {
  --qs-track: var(--c-grey-100, #e7e9ec);
  --qs-fill: var(--c-purple-500, #40499a);
  --qs-dot: var(--c-grey-300, #c4c7cc);
  --qs-dot-active: var(--c-purple-500, #40499a);
  --qs-default-marker: var(--c-grey-400, #a6aab3);
  --qs-handle: #fff;
  --qs-handle-border: var(--c-purple-500, #40499a);
  --qs-handle-glow: var(--c-action-500, #4652f3);
  display: flex;
  align-items: center;
  gap: 10px;
  box-sizing: border-box;
  padding: 6px 4px;
  user-select: none;
  -webkit-user-select: none;
  touch-action: none;
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.qdnapro-slider.qdnapro-slider--neutral {
  --qs-track: var(--c-grey-50, #f0f1f2);
  --qs-fill: var(--c-grey-400, #a6aab3);
  --qs-dot-active: var(--c-grey-400, #a6aab3);
  --qs-handle-border: var(--c-grey-400, #a6aab3);
  --qs-handle-glow: var(--c-grey-300, #c4c7cc);
}

.qdnapro-slider.qdnapro-slider--sentiment .qs-track {
  background: linear-gradient(90deg, var(--c-warn-red-500, #dc2626), var(--c-warn-yellow-500, #fbbf24), var(--c-success-bright, #1d9e75));
}

.qdnapro-slider.qdnapro-slider--sentiment .qs-fill {
  background: transparent;
}

.qdnapro-slider.qdnapro-slider--sentiment {
  --qs-handle-border: var(--c-grey-700, #40444d);
  --qs-handle-glow: var(--c-grey-400, #a6aab3);
  --qs-dot: rgba(255, 255, 255, 0.6);
  --qs-dot-active: #fff;
}

.qdnapro-slider.qdnapro-slider--highlight {
  --qs-track: var(--c-bg-subtle-purple, #f3f5ff);
  --qs-fill: var(--c-purple-highlight, #4652f3);
  --qs-dot-active: var(--c-purple-highlight, #4652f3);
  --qs-handle-border: var(--c-purple-highlight, #4652f3);
  --qs-handle-glow: var(--c-purple-highlight, #4652f3);
}

.qdnapro-slider .qs-icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--c-text-muted, #6b7280);
}

.qdnapro-slider .qs-icon svg {
  width: 100%;
  height: 100%;
  fill: currentColor;
}

.qdnapro-slider .qs-track {
  position: relative;
  flex: 1;
  min-width: 0;
  height: 6px;
  margin: 14px 0;
  border-radius: 999px;
  background: var(--qs-track);
}

.qdnapro-slider .qs-fill {
  position: absolute;
  top: 0;
  height: 100%;
  border-radius: 999px;
  background: var(--qs-fill);
}

.qdnapro-slider .qs-dot {
  position: absolute;
  top: 50%;
  width: 5px;
  height: 5px;
  margin-left: -2.5px;
  margin-top: -2.5px;
  border-radius: 50%;
  background: var(--qs-dot);
  pointer-events: none;
  transition: background 120ms ease-out, transform 120ms ease-out;
}

.qdnapro-slider .qs-dot.is-active {
  background: var(--qs-dot-active);
  transform: scale(1.15);
}

.qdnapro-slider .qs-default-marker {
  position: absolute;
  top: 50%;
  width: 2px;
  height: 12px;
  margin-left: -1px;
  margin-top: -6px;
  border-radius: 1px;
  background: var(--qs-default-marker);
  pointer-events: none;
  z-index: 1;
}

.qdnapro-slider .qs-handle {
  position: absolute;
  top: 50%;
  width: 18px;
  height: 18px;
  margin-left: -9px;
  padding: 0;
  transform: translateY(-50%);
  border-radius: 50%;
  background: var(--qs-handle);
  border: 2px solid var(--qs-handle-border);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
  cursor: grab;
  z-index: 2;
  transition: box-shadow 140ms ease-out, transform 120ms ease-out;
}

.qdnapro-slider .qs-handle:hover {
  box-shadow: 0 0 0 6px color-mix(in srgb, var(--qs-handle-glow) 25%, transparent), 0 1px 3px rgba(0, 0, 0, 0.18);
}

.qdnapro-slider .qs-handle:active,
.qdnapro-slider.is-dragging .qs-handle {
  cursor: grabbing;
  transform: translateY(-50%) scale(1.08);
}

.qdnapro-slider .qs-handle:focus {
  outline: none;
}

.qdnapro-slider .qs-handle:focus-visible {
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--qs-handle-glow) 25%, transparent), 0 1px 3px rgba(0, 0, 0, 0.18);
}

.qdnapro-slider .qs-handle qdnapro-tooltip {
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  z-index: 3;
  pointer-events: none;
  transform: translateX(-50%) scale(0.92);
}

.qdnapro-slider .qs-handle qdnapro-tooltip.tooltip-visible {
  transform: translateX(-50%) scale(1);
}

.qdnapro-slider .qs-input {
  flex-shrink: 0;
  width: 68px;
}

.qdnapro-slider.qdnapro-slider--touch .qs-track {
  height: 10px;
  margin: 22px 0;
}

.qdnapro-slider.qdnapro-slider--touch .qs-handle {
  width: 44px;
  height: 44px;
  margin-left: -22px;
  border-width: 3px;
}

.qdnapro-slider.qdnapro-slider--touch .qs-dot {
  width: 7px;
  height: 7px;
  margin-left: -3.5px;
  margin-top: -3.5px;
}

.qdnapro-slider.qdnapro-slider--touch .qs-icon {
  width: 28px;
  height: 28px;
}

.qdnapro-slider.qdnapro-slider--touch .qs-default-marker {
  width: 3px;
  height: 18px;
  margin-left: -1.5px;
  margin-top: -9px;
}

.qdnapro-slider.is-disabled {
  opacity: 0.5;
  pointer-events: none;
}

[data-theme=dark] .qdnapro-slider {
  --qs-track: var(--c-grey-700, #40444d);
  --qs-dot: var(--c-grey-500, #6b7280);
  --qs-default-marker: var(--c-grey-300, #c4c7cc);
  --qs-handle: var(--c-grey-100, #e7e9ec);
  --qs-handle-border: var(--c-purple-300, #8a92d0);
  --qs-handle-glow: var(--c-purple-200, #a5acff);
}

[data-theme=dark] .qdnapro-slider.qdnapro-slider--neutral {
  --qs-track: var(--c-grey-700, #40444d);
  --qs-fill: var(--c-grey-400, #a6aab3);
  --qs-dot-active: var(--c-grey-300, #c4c7cc);
  --qs-handle-border: var(--c-grey-300, #c4c7cc);
  --qs-handle-glow: var(--c-grey-500, #6b7280);
}

[data-theme=dark] .qdnapro-slider.qdnapro-slider--sentiment {
  --qs-handle-border: var(--c-grey-300, #c4c7cc);
  --qs-handle-glow: var(--c-grey-500, #6b7280);
}

/* ============================================================
   Skeleton loader — central CSS for all v1 pages that show a
   skeleton while data loads. Same shimmer / .sk-bone vocabulary
   as the homepage-mockup proto so every page lookt consistent.
   (Kim 2026-05-29.)

   Usage:
     <body class="is-skeleton-loading">
       ...
       <div class="skeleton-grid">
         <div class="sk-card">
           <div class="sk-bone" style="height:60px;"></div>
           <div class="sk-bone" style="height:12px;width:60%;"></div>
         </div>
       </div>
     </body>

   Toggle visibility by adding / removing `is-skeleton-loading`
   on the body. The page-specific layout (.sk-card shape, grid
   columns, etc.) lives in the page's own stylesheet — only
   the bone / shimmer primitives live here.
   ============================================================ */
@keyframes sk-shimmer {
  0% {
    background-position: -800px 0;
  }
  100% {
    background-position: 800px 0;
  }
}
/* Page-default — light theme. Dark mode overrides below. */
body {
  --sk-base: var(--c-sidebar-icon);
  --sk-shine: var(--c-border-tree-bright);
  --sk-card-bg: var(--c-purple-50);
}

body[data-theme=dark] {
  --sk-base: #1e1f2e;
  --sk-shine: #262840;
  --sk-card-bg: #14151f;
}

/* The bone — single shimmer-painted rectangle. Compose into
   page-specific skeleton shapes by stacking these inside .sk-card
   wrappers (page-side). */
.sk-bone {
  background: linear-gradient(90deg, var(--sk-base) 25%, var(--sk-shine) 50%, var(--sk-base) 75%);
  background-size: 800px 100%;
  animation: sk-shimmer 1.5s infinite linear;
  border-radius: 4px;
}

/* Generic skeleton card chrome — page can override grid layout
   and individual card dimensions. Pages that want a different
   look can skip this class and style their own wrapper. */
.sk-card {
  background: var(--sk-card-bg);
  border: 1px solid rgba(64, 73, 154, 0.12);
  border-radius: 12px;
  padding: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
  .sk-bone {
    animation: none;
  }
}
/* ============================================================
   qdnapro-skeleton-bone — atomic shimmer placeholder.

   The shimmer paint (.sk-bone, @keyframes sk-shimmer) and the
   --sk-* color vars live in skeleton/_skeleton-compiled.css and
   are NOT duplicated here. This file only makes the custom element
   a block box and adds the circle/pill radius modifiers. The shape
   overrides beat .sk-bone's 4px on specificity (type + class), so
   bundle source-order does not matter. (Kim 2026-05-30)
   ============================================================ */
qdnapro-skeleton-bone {
  display: block;
  flex-shrink: 0;
}

qdnapro-skeleton-bone.skeleton-bone-circle {
  border-radius: 50%;
}

qdnapro-skeleton-bone.skeleton-bone-pill {
  border-radius: 999px;
}

qdnapro-skeleton-inbox-row {
  box-sizing: border-box;
  display: flex;
  align-items: stretch;
  gap: 8px;
  padding: 4px 8px;
  border-radius: 8px;
  opacity: 0;
  animation: ski-row-enter 240ms cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
qdnapro-skeleton-inbox-row:nth-of-type(1) {
  animation-delay: 0ms;
}
qdnapro-skeleton-inbox-row:nth-of-type(2) {
  animation-delay: 25ms;
}
qdnapro-skeleton-inbox-row:nth-of-type(3) {
  animation-delay: 50ms;
}
qdnapro-skeleton-inbox-row:nth-of-type(4) {
  animation-delay: 75ms;
}
qdnapro-skeleton-inbox-row:nth-of-type(5) {
  animation-delay: 100ms;
}
qdnapro-skeleton-inbox-row:nth-of-type(6) {
  animation-delay: 125ms;
}
qdnapro-skeleton-inbox-row:nth-of-type(7) {
  animation-delay: 150ms;
}
qdnapro-skeleton-inbox-row:nth-of-type(8) {
  animation-delay: 175ms;
}
qdnapro-skeleton-inbox-row:nth-of-type(9) {
  animation-delay: 200ms;
}
qdnapro-skeleton-inbox-row:nth-of-type(10) {
  animation-delay: 225ms;
}
qdnapro-skeleton-inbox-row:nth-of-type(11) {
  animation-delay: 250ms;
}
qdnapro-skeleton-inbox-row:nth-of-type(12) {
  animation-delay: 275ms;
}
qdnapro-skeleton-inbox-row:nth-of-type(n + 13) {
  animation-delay: 0ms;
}

@keyframes ski-row-enter {
  0% {
    opacity: 0;
    transform: translateY(6px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  qdnapro-skeleton-inbox-row {
    animation: none;
    opacity: 1;
  }
}
qdnapro-skeleton-inbox-row .ski-lead {
  flex-shrink: 0;
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  width: 50px;
  padding-top: 4px;
}

qdnapro-skeleton-inbox-row .ski-main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 4px 0;
}

qdnapro-skeleton-inbox-row .ski-row-1 {
  display: flex;
  align-items: center;
  height: 24px;
}

qdnapro-skeleton-inbox-row .ski-row-2 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  height: 24px;
  margin-top: -2px;
}

qdnapro-skeleton-inbox-row .ski-row-3 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  height: 20px;
  margin-top: -2px;
}

/* ============================================================
   qdnapro-skeleton-project-card — composes skeleton-bone atoms into
   a project-card-shaped loading placeholder. Mirrors the original
   .pv2-skeleton-card chrome so the skeleton -> real card swap has
   zero layout shift (same 12px radius, 1px border, 208px min-height,
   158px photo block). Card surface color comes from --sk-card-bg in
   skeleton/_skeleton-compiled.css. (Kim 2026-05-30)
   ============================================================ */
qdnapro-skeleton-project-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-height: 208px;
  background: var(--sk-card-bg);
  border: 1px solid rgba(64, 73, 154, 0.12);
  border-radius: 12px;
}

/* Photo block fills the top edge-to-edge; the card's own radius +
   overflow:hidden clips the corners, so the bone itself has no radius.
   Beats .sk-bone's 4px on specificity (type + class + :first-child). */
qdnapro-skeleton-project-card > .sk-bone:first-child {
  border-radius: 0;
}

qdnapro-skeleton-project-card .ssp-body {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
}

qdnapro-skeleton-project-card .ssp-spacer {
  flex: 1;
}

.text-h1 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 60px;
  line-height: 72px;
}

.text-h2 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 40px;
  line-height: 56px;
}

.text-h3 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 32px;
  line-height: 48px;
}

.text-h4 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 28px;
  line-height: 44px;
}

.text-h5 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 24px;
  line-height: 36px;
}

.text-h6 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 20px;
  line-height: 24px;
}

.text-body-xs {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 10px;
  line-height: 20px;
}

.text-body-sm {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 12px;
  line-height: 20px;
}

.text-body-md {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 14px;
  line-height: 24px;
}

.text-body-lg {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
}

.text-body-xl {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 20px;
  line-height: 32px;
}

.qdnapro-source-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 8px;
  border-radius: 4px;
  box-sizing: border-box;
  font-family: "Inter", sans-serif;
  font-size: 12px;
  line-height: 20px;
  font-weight: 500;
  color: var(--c-grey-500);
  background: var(--c-grey-50);
  transition: background-color 120ms ease-out;
  user-select: none;
}

.qdnapro-source-pill[role=button]:hover, .qdnapro-source-pill.force-hover {
  background: var(--c-border-card);
}

.qdnapro-source-pill[role=button]:active, .qdnapro-source-pill.force-pressed {
  background: var(--c-grey-300);
}

.qdnapro-source-pill.source-pill-type-text {
  gap: 0;
}

.qdnapro-source-pill .source-pill-leading {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}

.qdnapro-source-pill qdnapro-file-icon.source-pill-leading {
  width: 16px;
  height: 16px;
}

.qdnapro-source-pill qdnapro-file-icon.source-pill-leading .qdnapro-file-icon-badge {
  display: none;
}

.qdnapro-source-pill .source-pill-favicon {
  width: 16px;
  height: 17px;
  border-radius: 100px;
  border: 1px solid var(--c-grey-300);
  overflow: hidden;
  background: var(--c-bg-card-hover);
  position: relative;
}

.qdnapro-source-pill .source-pill-favicon img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: opacity 120ms ease;
}

.qdnapro-source-pill .source-pill-favicon-letter {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  font-weight: 600;
  color: var(--c-grey-500);
  text-transform: uppercase;
  line-height: 1;
  z-index: 0;
  user-select: none;
}

.qdnapro-source-pill .source-pill-favicon-fallback {
  background: var(--c-grey-200);
}

.qdnapro-source-pill .source-pill-favicon-fallback img {
  display: none;
}

.qdnapro-source-pill .source-pill-stack {
  display: inline-flex;
  align-items: center;
  padding-right: 6px;
}

.qdnapro-source-pill .source-pill-stack-item {
  width: 16px;
  height: 17px;
  border-radius: 100px;
  border: 1px solid var(--c-grey-300);
  background: var(--c-bg-card-hover);
  margin-right: -6px;
  overflow: hidden;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.qdnapro-source-pill .source-pill-stack-item img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: opacity 120ms ease;
}

.qdnapro-source-pill .source-pill-stack-item .source-pill-favicon-letter {
  font-size: 8px;
}

.qdnapro-source-pill .source-pill-stack-fallback {
  background: var(--c-grey-200);
}

.qdnapro-source-pill .source-pill-stack-fallback img {
  display: none;
}

.qdnapro-source-pill .source-pill-label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 240px;
}

.qdnapro-source-pill[role=button] {
  cursor: pointer;
}

.qdnapro-source-pill:focus {
  outline: none;
}

.qdnapro-source-pill[role=button]:focus-visible, .qdnapro-source-pill.force-focus {
  outline: 2px solid var(--c-purple-500);
  outline-offset: 2px;
}

[data-theme=dark] .qdnapro-source-pill {
  color: #a6aab3;
  background: #2e3036;
}

[data-theme=dark] .qdnapro-source-pill[role=button]:hover, [data-theme=dark] .qdnapro-source-pill.force-hover {
  background: #40444d;
}

[data-theme=dark] .qdnapro-source-pill[role=button]:active, [data-theme=dark] .qdnapro-source-pill.force-pressed {
  background: #565b66;
}

[data-theme=dark] .qdnapro-source-pill .source-pill-favicon,
[data-theme=dark] .qdnapro-source-pill .source-pill-stack-item {
  background: #1f2028;
  border-color: #565b66;
}

[data-theme=dark] .qdnapro-source-pill .source-pill-favicon-fallback,
[data-theme=dark] .qdnapro-source-pill .source-pill-stack-fallback {
  background: #565b66;
}

qdnapro-star-rating {
  --c-focus-ring: var(--c-purple-500);
  --c-focus-glow: rgba(70, 82, 243, 0.25);
  display: inline-flex;
  align-items: center;
  gap: 2px;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
qdnapro-star-rating .star-rating-star {
  color: var(--c-grey-300);
  transition: color 120ms ease, transform 120ms cubic-bezier(0.34, 1.56, 0.64, 1);
}
qdnapro-star-rating .star-rating-star-filled {
  color: var(--c-warning-bright-border);
}
qdnapro-star-rating:not(.star-rating-readonly) .star-rating-star:hover {
  transform: scale(1.15);
}
qdnapro-star-rating:focus {
  outline: none;
}
qdnapro-star-rating:focus-visible {
  outline: none;
  border-radius: 4px;
  box-shadow: 0 0 0 2px var(--c-focus-ring), 0 0 0 6px var(--c-focus-glow);
}
qdnapro-star-rating.star-rating-readonly {
  cursor: default;
}

[data-theme=dark] qdnapro-star-rating {
  --c-focus-ring: #a5acff;
  --c-focus-glow: rgba(165, 172, 255, 0.40);
}
[data-theme=dark] qdnapro-star-rating .star-rating-star {
  color: #4a4e5c;
}
[data-theme=dark] qdnapro-star-rating .star-rating-star-filled {
  color: #ffd54a;
}

.qdnapro-stat-card {
  --sc-accent: var(--c-purple-500);
  --sc-soft: var(--c-bg-subtle-purple);
  --sc-border: var(--c-border-tree-bright);
  --sc-fill: var(--c-purple-500);
  flex: 1;
  min-width: 0;
  min-height: 80px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 12px;
  background: var(--c-bg-card);
  border: 1px solid var(--c-border-soft-2);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  cursor: pointer;
  font-family: inherit;
  -webkit-tap-highlight-color: transparent;
  transition: box-shadow 160ms ease, transform 160ms cubic-bezier(0.4, 0, 0.2, 1), border-color 140ms ease, background-color 140ms ease;
}

.qdnapro-stat-card.stat-card-tone-purple {
  --sc-accent: var(--c-purple-500);
  --sc-soft: var(--c-bg-subtle-purple);
  --sc-border: var(--c-border-tree-bright);
  --sc-fill: var(--c-purple-500);
}

.qdnapro-stat-card.stat-card-tone-red {
  --sc-accent: var(--c-signal-red-text);
  --sc-soft: var(--c-signal-red-soft);
  --sc-border: var(--c-tag-critical-bg);
  --sc-fill: var(--c-warn-red-600);
}

.qdnapro-stat-card.stat-card-tone-green {
  --sc-accent: var(--c-success-bright);
  --sc-soft: var(--c-chip-green-bg);
  --sc-border: var(--c-signal-green-100);
  --sc-fill: var(--c-success-500);
}

.qdnapro-stat-card.stat-card-tone-blue {
  --sc-accent: var(--c-chip-bright-blue-hover);
  --sc-soft: var(--c-bg-subtle-purple);
  --sc-border: var(--c-chip-bright-blue-2-bg);
  --sc-fill: var(--c-action-600);
}

.qdnapro-stat-card.stat-card-tone-orange {
  --sc-accent: var(--c-warn-yellow-600);
  --sc-soft: var(--c-signal-orange-bg);
  --sc-border: var(--c-signal-yellow-bg);
  --sc-fill: var(--c-warn-amber-600);
}

.qdnapro-stat-card.stat-card-tone-gray {
  --sc-accent: var(--c-grey-500);
  --sc-soft: var(--c-bg-card-hover);
  --sc-border: var(--c-chip-grey-hover);
  --sc-fill: var(--c-grey-600);
}

.qdnapro-stat-card .stat-card-icon {
  width: 34px;
  height: 34px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
}

.qdnapro-stat-card .stat-card-body {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.qdnapro-stat-card .stat-card-value {
  font-size: 20px;
  font-weight: 600;
  color: var(--c-text-heading);
  line-height: 1.1;
  white-space: nowrap;
}

.qdnapro-stat-card .stat-card-label {
  font-size: 11px;
  font-weight: 500;
  color: var(--c-text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-stat-card.stat-card-variant-accent {
  background: var(--sc-soft);
  border-color: var(--sc-border);
  box-shadow: none;
}

.qdnapro-stat-card.stat-card-variant-accent .stat-card-icon {
  width: 40px;
  height: 40px;
  background: var(--c-bg-card);
  border-radius: 10px;
  box-shadow: 0 1px 2px rgba(20, 25, 80, 0.1);
}

.qdnapro-stat-card.stat-card-variant-accent .stat-card-value {
  font-size: 22px;
}

.qdnapro-stat-card.stat-card-variant-accent .stat-card-label {
  color: var(--sc-accent);
}

.qdnapro-stat-card.stat-card-variant-solid {
  background: var(--sc-fill);
  border-color: transparent;
  box-shadow: 0 2px 8px rgba(20, 25, 80, 0.14);
}

.qdnapro-stat-card.stat-card-variant-solid .stat-card-value,
.qdnapro-stat-card.stat-card-variant-solid .stat-card-label,
.qdnapro-stat-card.stat-card-variant-solid .stat-card-sub {
  color: #fff;
}

.qdnapro-stat-card.stat-card-variant-solid .stat-card-value {
  font-size: 22px;
  font-weight: 700;
}

.qdnapro-stat-card.stat-card-variant-solid .stat-card-label {
  font-weight: 600;
  white-space: normal;
  overflow: visible;
  line-height: 1.3;
}

.qdnapro-stat-card.stat-card-variant-solid .stat-card-icon {
  background: var(--c-white-22);
  border-radius: 9px;
}

.qdnapro-stat-card.stat-card-variant-solid .stat-card-icon:empty {
  display: none;
}

.qdnapro-stat-card.stat-card-variant-solid:not(.stat-card-disabled):hover {
  border-color: transparent;
  box-shadow: 0 8px 20px rgba(20, 25, 80, 0.26);
}

.qdnapro-stat-card.stat-card-variant-solid:not(.stat-card-disabled):focus-visible {
  border-color: transparent;
  box-shadow: 0 0 0 4px var(--focus-glow);
}

.qdnapro-stat-card.stat-card-variant-solid.stat-card-size-medium .stat-card-value {
  font-size: 19px;
}

.qdnapro-stat-card.stat-card-variant-solid.stat-card-size-small .stat-card-value {
  font-size: 16px;
}

.qdnapro-stat-card.stat-card-variant-empty {
  background: var(--c-bg-card);
  border: 1.5px dashed var(--c-sidebar-icon);
  box-shadow: none;
}

.qdnapro-stat-card.stat-card-variant-empty .stat-card-icon {
  background: var(--sc-soft);
  opacity: 0.55;
}

.qdnapro-stat-card.stat-card-variant-empty .stat-card-value {
  display: none;
}

.qdnapro-stat-card.stat-card-variant-empty .stat-card-label {
  font-size: 16px;
  font-weight: 500;
  color: var(--c-text-disabled-pp);
  transition: color 140ms ease;
}

.qdnapro-stat-card .stat-card-sub {
  font-size: 12px;
  font-weight: 500;
  color: var(--c-sidebar-icon);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color 140ms ease;
}

.qdnapro-stat-card.stat-card-variant-empty:not(.stat-card-disabled):hover {
  border-color: var(--c-purple-300);
  box-shadow: none;
  transform: translateY(-2px);
}

.qdnapro-stat-card.stat-card-variant-empty:not(.stat-card-disabled):hover .stat-card-label {
  color: var(--c-purple-500);
}

.qdnapro-stat-card.stat-card-variant-empty:not(.stat-card-disabled):hover .stat-card-sub {
  color: var(--c-purple-300);
}

.qdnapro-stat-card.stat-card-warning {
  --sc-accent: var(--c-warn-yellow-600);
  --sc-soft: var(--c-signal-orange-bg);
  --sc-border: var(--c-signal-yellow-bg);
}

.qdnapro-stat-card.stat-card-warning.stat-card-variant-empty {
  border-color: var(--c-warn-yellow-600);
}

.qdnapro-stat-card.stat-card-warning.stat-card-variant-empty .stat-card-icon {
  opacity: 1;
}

.qdnapro-stat-card.stat-card-warning .stat-card-sub {
  color: var(--c-signal-yellow-text);
}

.qdnapro-stat-card.stat-card-warning.stat-card-variant-empty .stat-card-label {
  color: var(--c-tag-warning-text);
}

.qdnapro-stat-card.stat-card-warning.stat-card-variant-empty:not(.stat-card-disabled):hover {
  border-color: var(--c-warn-yellow-600);
}

.qdnapro-stat-card.stat-card-warning.stat-card-variant-empty:not(.stat-card-disabled):hover .stat-card-label {
  color: var(--c-tag-warning-text);
}

.qdnapro-stat-card.stat-card-warning.stat-card-variant-empty:not(.stat-card-disabled):hover .stat-card-sub {
  color: var(--c-tag-warning-text);
}

.qdnapro-stat-card.stat-card-size-large {
  min-height: 80px;
  padding: 12px 14px;
  gap: 10px;
}

.qdnapro-stat-card.stat-card-size-medium {
  min-height: 60px;
  padding: 9px 12px;
  gap: 9px;
  border-radius: 11px;
}

.qdnapro-stat-card.stat-card-size-medium .stat-card-icon {
  width: 28px;
  height: 28px;
  border-radius: 8px;
}

.qdnapro-stat-card.stat-card-size-medium .stat-card-value {
  font-size: 17px;
}

.qdnapro-stat-card.stat-card-size-medium .stat-card-label {
  font-size: 11px;
  line-height: 1.35;
}

.qdnapro-stat-card.stat-card-size-medium .stat-card-sub {
  font-size: 11px;
  line-height: 1.35;
}

.qdnapro-stat-card.stat-card-size-medium.stat-card-variant-empty .stat-card-label {
  font-size: 14px;
  line-height: 1.3;
}

.qdnapro-stat-card.stat-card-size-small {
  min-height: 44px;
  padding: 5px 10px;
  gap: 8px;
  border-radius: 10px;
}

.qdnapro-stat-card.stat-card-size-small .stat-card-icon {
  width: 22px;
  height: 22px;
  border-radius: 7px;
}

.qdnapro-stat-card.stat-card-size-small .stat-card-value {
  font-size: 15px;
}

.qdnapro-stat-card.stat-card-size-small .stat-card-label {
  font-size: 10px;
  line-height: 1.35;
}

.qdnapro-stat-card.stat-card-size-small .stat-card-sub {
  font-size: 10px;
  line-height: 1.35;
}

.qdnapro-stat-card.stat-card-size-small.stat-card-variant-empty .stat-card-label {
  font-size: 13px;
  line-height: 1.3;
}

.qdnapro-stat-card.stat-card-variant-accent.stat-card-size-medium .stat-card-value {
  font-size: 18px;
}

.qdnapro-stat-card.stat-card-variant-accent.stat-card-size-small .stat-card-value {
  font-size: 15px;
}

.qdnapro-stat-card:not(.stat-card-disabled):hover {
  border-color: var(--sc-accent);
  box-shadow: 0 4px 14px rgba(20, 25, 80, 0.1);
  transform: translateY(-2px);
}

.qdnapro-stat-card.stat-card-variant-accent:not(.stat-card-disabled):hover {
  box-shadow: 0 6px 18px rgba(20, 25, 80, 0.12);
}

.qdnapro-stat-card:not(.stat-card-disabled):active {
  transform: translateY(0) scale(0.985);
  box-shadow: 0 1px 2px rgba(20, 25, 80, 0.12);
  transition-duration: 60ms;
}

.qdnapro-stat-card:focus {
  outline: none;
}

.qdnapro-stat-card:not(.stat-card-disabled):focus-visible {
  outline: none;
  border-color: var(--sc-accent);
  box-shadow: 0 0 0 4px var(--focus-glow);
}

.qdnapro-stat-card.stat-card-disabled {
  opacity: 0.5;
  pointer-events: none;
  cursor: not-allowed;
}

.qdnapro-stat-card-row {
  display: flex;
  gap: 10px;
  min-width: 0;
}

[data-theme=dark] .qdnapro-stat-card,
[data-theme-dark] .qdnapro-stat-card {
  background: #2a2d36;
  border-color: var(--c-white-08);
}

[data-theme=dark] .qdnapro-stat-card .stat-card-value,
[data-theme-dark] .qdnapro-stat-card .stat-card-value {
  color: #f0f1fa;
}

[data-theme=dark] .qdnapro-stat-card .stat-card-label,
[data-theme-dark] .qdnapro-stat-card .stat-card-label {
  color: rgba(255, 255, 255, 0.45);
}

[data-theme=dark] .qdnapro-stat-card.stat-card-variant-accent,
[data-theme-dark] .qdnapro-stat-card.stat-card-variant-accent {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
}

[data-theme=dark] .qdnapro-stat-card.stat-card-variant-accent .stat-card-icon,
[data-theme-dark] .qdnapro-stat-card.stat-card-variant-accent .stat-card-icon {
  background: rgba(255, 255, 255, 0.1);
  box-shadow: none;
}

[data-theme=dark] .qdnapro-stat-card.stat-card-variant-solid,
[data-theme-dark] .qdnapro-stat-card.stat-card-variant-solid {
  background: var(--sc-fill);
  border-color: transparent;
}

[data-theme=dark] .qdnapro-stat-card.stat-card-variant-solid .stat-card-value,
[data-theme-dark] .qdnapro-stat-card.stat-card-variant-solid .stat-card-value,
[data-theme=dark] .qdnapro-stat-card.stat-card-variant-solid .stat-card-label,
[data-theme-dark] .qdnapro-stat-card.stat-card-variant-solid .stat-card-label,
[data-theme=dark] .qdnapro-stat-card.stat-card-variant-solid .stat-card-sub,
[data-theme-dark] .qdnapro-stat-card.stat-card-variant-solid .stat-card-sub {
  color: #fff;
}

[data-theme=dark] .qdnapro-stat-card.stat-card-variant-solid .stat-card-icon,
[data-theme-dark] .qdnapro-stat-card.stat-card-variant-solid .stat-card-icon {
  background: var(--c-white-22);
}

.qdnapro-status-board {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  overflow-x: auto;
  padding-bottom: 8px;
}
.qdnapro-status-board::-webkit-scrollbar {
  height: 8px;
}
.qdnapro-status-board::-webkit-scrollbar-track {
  background: transparent;
}
.qdnapro-status-board::-webkit-scrollbar-thumb {
  background: rgba(64, 73, 154, 0.25);
  border-radius: 4px;
}

.qsb-col {
  flex: 1 1 0;
  min-width: 230px;
  max-width: 340px;
  background: rgba(255, 255, 255, 0.55);
  border-radius: 14px;
  padding: 10px;
  transition: background 0.15s ease, box-shadow 0.15s ease;
}

.qsb-col-over {
  background: #eef0fb;
  box-shadow: inset 0 0 0 2px rgba(64, 73, 154, 0.45);
}

.qsb-col-head {
  --qsb-accent: #b9bdd9;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 2px 4px 9px;
  border-bottom: 3px solid var(--qsb-accent);
  margin-bottom: 10px;
}

.qsb-col-label {
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #3a3860;
}

.qsb-col-count {
  margin-left: auto;
  font-size: 11.5px;
  font-weight: 700;
  color: #6a6890;
  background: #fff;
  border-radius: 8px;
  padding: 1px 8px;
}

.qsb-col-cards {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 62vh;
  overflow-y: auto;
}
.qsb-col-cards::-webkit-scrollbar {
  width: 6px;
}
.qsb-col-cards::-webkit-scrollbar-track {
  background: transparent;
}
.qsb-col-cards::-webkit-scrollbar-thumb {
  background: rgba(64, 73, 154, 0.25);
  border-radius: 3px;
}

.qsb-card {
  background: #fff;
  border-radius: 12px;
  padding: 11px 13px;
  box-shadow: 0 6px 18px -14px rgba(38, 34, 80, 0.5);
  cursor: pointer;
  font-size: 12.5px;
  line-height: 1.45;
}
.qsb-card[draggable=true] {
  cursor: grab;
}
.qsb-card:hover {
  box-shadow: 0 10px 22px -14px rgba(38, 34, 80, 0.55);
}

.qsb-dragging {
  opacity: 0.45;
}

.qdnapro-sticker-sheet {
  display: contents;
}

.qdnapro-bottom-sheet[data-sticker-sheet] .bs-panel {
  height: 80%;
  max-height: 80%;
}

.qdnapro-bottom-sheet[data-sticker-sheet] .bs-body {
  overflow: hidden;
  gap: 0;
  padding: 0;
}

qdnapro-popover[data-sticker-sheet] {
  width: min(92vw, 380px);
  padding: 8px;
  box-sizing: border-box;
}

qdnapro-popover[data-sticker-sheet] .ss-root {
  flex: none;
  height: 460px;
}

qdnapro-popover[data-sticker-sheet] .ss-search {
  padding: 0 0 8px;
}

qdnapro-popover[data-sticker-sheet] .ss-cats {
  padding: 0 0 10px;
}

qdnapro-popover[data-sticker-sheet] .ss-count {
  padding: 0 0 6px;
}

qdnapro-popover[data-sticker-sheet] .ss-grid {
  padding: 0 0 8px;
}

.ss-root {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.ss-search {
  flex-shrink: 0;
  padding: 4px 12px 8px;
}

.ss-cats {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 12px 10px;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.ss-cats::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.ss-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.ss-scroll::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.ss-count {
  padding: 0 12px 6px;
  font-size: 12px;
  color: var(--c-text-muted);
}

.ss-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
  padding: 0 12px 12px;
}

.ss-grid[hidden] {
  display: none;
}

.ss-cell {
  aspect-ratio: 1/1;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: none;
  border-radius: 12px;
  padding: 6px;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.ss-cell:active {
  background: var(--c-bg-card-hover);
}

.ss-cell .ss-img,
.ss-cell qdnapro-lottie {
  width: 100%;
  height: 100%;
  display: block;
}

.ss-cell .ss-img {
  object-fit: contain;
}

.ss-empty {
  padding: 44px 24px;
  text-align: center;
  font-size: 14px;
  color: var(--c-text-muted);
}

.ss-offline[hidden] {
  display: none;
}

.ss-offline {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 56px 24px;
  text-align: center;
  color: var(--c-text-muted);
}

.ss-offline .ss-icon {
  width: 32px;
  height: 32px;
}

.ss-offline-text {
  font-size: 14px;
  max-width: 260px;
}

.qdnapro-suggestion-chip {
  --c-focus-ring: var(--c-purple-500);
  --c-focus-glow: rgba(70, 82, 243, 0.25);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  background: transparent;
  border: 1px solid var(--c-grey-300);
  border-radius: 16px;
  font-family: "Inter", sans-serif;
  font-size: 12px;
  line-height: 16px;
  font-weight: 500;
  color: var(--c-grey-950);
  cursor: pointer;
  user-select: none;
  transition: background-color 120ms ease-out, border-color 120ms ease-out, color 120ms ease-out, box-shadow 120ms ease-out;
  box-sizing: border-box;
}

.qdnapro-suggestion-chip .suggestion-chip-icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.qdnapro-suggestion-chip .suggestion-chip-label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 240px;
}

.qdnapro-suggestion-chip:focus {
  outline: none;
}

.qdnapro-suggestion-chip:focus-visible, .qdnapro-suggestion-chip.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--c-focus-ring), 0 0 0 6px var(--c-focus-glow);
}

.qdnapro-suggestion-chip.suggestion-chip-theme-purple:hover:not(.suggestion-chip-disabled), .qdnapro-suggestion-chip.suggestion-chip-theme-purple.force-hover:not(.suggestion-chip-disabled) {
  background: #e6e9ff;
  border-color: var(--c-chip-bright-blue-2-hover);
  color: var(--c-purple-500);
}

.qdnapro-suggestion-chip.suggestion-chip-theme-purple:active:not(.suggestion-chip-disabled), .qdnapro-suggestion-chip.suggestion-chip-theme-purple.force-pressed:not(.suggestion-chip-disabled) {
  background: var(--c-sidebar-icon);
  border-color: var(--c-purple-500);
  color: var(--c-purple-500);
}

.qdnapro-suggestion-chip.suggestion-chip-theme-orange:hover:not(.suggestion-chip-disabled), .qdnapro-suggestion-chip.suggestion-chip-theme-orange.force-hover:not(.suggestion-chip-disabled) {
  background: var(--c-tag-warning-bg);
  border-color: var(--c-warn-yellow-600);
  color: var(--c-tag-warning-text);
}

.qdnapro-suggestion-chip.suggestion-chip-theme-orange:active:not(.suggestion-chip-disabled), .qdnapro-suggestion-chip.suggestion-chip-theme-orange.force-pressed:not(.suggestion-chip-disabled) {
  background: var(--c-signal-yellow-bg);
  border-color: var(--c-warn-yellow-600);
  color: var(--c-tag-warning-text);
}

.qdnapro-suggestion-chip.suggestion-chip-disabled, .qdnapro-suggestion-chip.suggestion-chip-disabled:hover, .qdnapro-suggestion-chip.suggestion-chip-disabled:active {
  color: var(--c-text-disabled);
  background: transparent;
  border-color: var(--c-border-card);
  cursor: not-allowed;
  pointer-events: none;
}

[data-theme=dark] .qdnapro-suggestion-chip {
  border-color: #565b66;
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-suggestion-chip.suggestion-chip-theme-purple:hover:not(.suggestion-chip-disabled), [data-theme=dark] .qdnapro-suggestion-chip.suggestion-chip-theme-purple.force-hover:not(.suggestion-chip-disabled) {
  background: rgba(70, 82, 243, 0.3);
  border-color: #7c84c5;
  color: #ffffff;
}

[data-theme=dark] .qdnapro-suggestion-chip.suggestion-chip-theme-purple:active:not(.suggestion-chip-disabled), [data-theme=dark] .qdnapro-suggestion-chip.suggestion-chip-theme-purple.force-pressed:not(.suggestion-chip-disabled) {
  background: rgba(70, 82, 243, 0.45);
  border-color: #a5acff;
  color: #ffffff;
}

[data-theme=dark] .qdnapro-suggestion-chip.suggestion-chip-theme-orange:hover:not(.suggestion-chip-disabled), [data-theme=dark] .qdnapro-suggestion-chip.suggestion-chip-theme-orange.force-hover:not(.suggestion-chip-disabled) {
  background: rgba(245, 143, 6, 0.25);
  border-color: #c97e22;
  color: #ffe4ba;
}

[data-theme=dark] .qdnapro-suggestion-chip.suggestion-chip-theme-orange:active:not(.suggestion-chip-disabled), [data-theme=dark] .qdnapro-suggestion-chip.suggestion-chip-theme-orange.force-pressed:not(.suggestion-chip-disabled) {
  background: rgba(245, 143, 6, 0.4);
  border-color: #f5b770;
  color: #ffffff;
}

[data-theme=dark] .qdnapro-suggestion-chip.suggestion-chip-disabled, [data-theme=dark] .qdnapro-suggestion-chip.suggestion-chip-disabled:hover, [data-theme=dark] .qdnapro-suggestion-chip.suggestion-chip-disabled:active {
  color: #6b7280;
  border-color: #3a3b42;
}

@media (pointer: coarse) {
  .qdnapro-table-list thead th.col-checkbox,
  .qdnapro-table-list tbody td.col-checkbox {
    width: 44px;
    padding-left: 12px;
    padding-right: 12px;
  }
}
qdnapro-table {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.qdnapro-table-wrapper {
  position: relative;
  width: 100%;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: auto;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.qdnapro-table-spinner {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  z-index: 10;
  display: none;
  overflow: hidden;
  background: var(--c-grey-100);
  border-radius: 8px 8px 0 0;
  pointer-events: none;
}
.qdnapro-table-spinner:not([hidden]) {
  display: block;
}
.qdnapro-table-spinner::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 35%;
  background: var(--c-action-500);
  border-radius: 2px;
  animation: qdnapro-table-progress 1.1s ease-in-out infinite;
}

@keyframes qdnapro-table-progress {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(400%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-table-spinner::after {
    animation: none;
    width: 100%;
    opacity: 0.45;
  }
}
.qdnapro-table-sentinel {
  height: 1px;
  pointer-events: none;
}

.qdnapro-table-list {
  width: 100%;
  border-collapse: collapse;
  background: var(--c-bg-card);
  font-size: 14px;
}
.qdnapro-table-list thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 10px 16px;
  background: var(--c-bg-card-hover);
  color: var(--c-grey-950);
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
  text-align: left;
  border-bottom: 1px solid var(--c-grey-100);
  user-select: none;
}
.qdnapro-table-list thead th.col-checkbox {
  width: 36px;
  padding: 10px 10px;
}
.qdnapro-table-list thead th.is-sortable {
  cursor: pointer;
}
.qdnapro-table-list thead th.is-sortable:hover {
  background: var(--c-grey-50);
}
.qdnapro-table-list thead th.is-sortable:hover .col-sort-icon {
  opacity: 0.45;
}
.qdnapro-table-list thead th.is-sortable:focus-visible .col-sort-icon {
  opacity: 0.45;
}
.qdnapro-table-list thead th.is-sortable.is-sorted .col-sort-icon {
  opacity: 1;
  background: var(--c-purple-50, #e6e9ff);
  color: var(--c-purple-500, #40499a);
}
.qdnapro-table-list thead th.is-orderable {
  cursor: grab;
}
.qdnapro-table-list thead th.is-orderable:active {
  cursor: grabbing;
}
.qdnapro-table-list thead th.is-dragging {
  opacity: 0.4;
}
.qdnapro-table-list thead th.drop-before {
  box-shadow: inset 2px 0 0 0 var(--c-action-500);
}
.qdnapro-table-list thead th.drop-after {
  box-shadow: inset -2px 0 0 0 var(--c-action-500);
}
.qdnapro-table-list thead th .col-header-content {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.qdnapro-table-list thead th .col-sort-icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.15s, background 0.15s, color 0.15s;
}
.qdnapro-table-list thead th .col-sort-icon svg {
  width: 14px;
  height: 14px;
  fill: currentColor !important;
}
.qdnapro-table-list th.col-sticky,
.qdnapro-table-list td.col-sticky {
  position: sticky;
  left: 0;
  z-index: 1;
  box-shadow: inset -1px 0 0 var(--c-grey-100);
}
.qdnapro-table-list td.col-sticky {
  background: #ffffff;
}
.qdnapro-table-list thead th.col-sticky {
  z-index: 3;
}
.qdnapro-table-list tbody tr:hover td.col-sticky {
  background: var(--c-bg-card-hover);
}
.qdnapro-table-list tbody tr.is-selected td.col-sticky {
  background: var(--c-signal-blue-bg);
}
.qdnapro-table-list tbody tr.is-active td.col-sticky {
  background: var(--c-purple-50, #eef0ff);
}
.qdnapro-table-list qdnapro-checkbox {
  --cb-bg: #ffffff;
  --cb-bg-hover: var(--c-grey-50);
  --cb-border: var(--c-grey-300);
  --cb-filled-bg: var(--c-action-500);
  --cb-filled-border: var(--c-action-500);
  --cb-mark: #ffffff;
}
.qdnapro-table-list tbody tr {
  border-bottom: 1px solid var(--c-bg-card-hover);
  transition: background 0.1s;
}
.qdnapro-table-list tbody tr:hover {
  background: var(--c-bg-card-hover);
}
.qdnapro-table-list tbody tr.is-selected {
  background: var(--c-signal-blue-bg);
}
.qdnapro-table-list tbody tr.is-active {
  background: var(--c-purple-50, #eef0ff);
}
.qdnapro-table-list tbody tr.is-clickable {
  cursor: pointer;
}
.qdnapro-table-list tbody tr.qdnapro-table-empty-row td.col-empty {
  text-align: center;
  padding: 52px 16px;
  color: var(--c-grey-400);
  font-size: 14px;
}
.qdnapro-table-list tbody td {
  padding: 11px 16px;
  vertical-align: middle;
  color: var(--c-grey-900);
  font-size: 14px;
}
.qdnapro-table-list tbody td.col-checkbox {
  width: 36px;
  padding: 11px 10px;
}
.qdnapro-table-list tbody td.col-checkbox.is-hit-area {
  cursor: pointer;
}
.qdnapro-table-list tbody td .col-number {
  font-variant-numeric: tabular-nums;
}
.qdnapro-table-list tbody td .col-truncate {
  display: inline-block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: middle;
}
.qdnapro-table-list tbody td .col-thumbnail {
  display: inline-flex;
  align-items: center;
}
.qdnapro-table-list tbody td .col-thumbnail img {
  width: 28px;
  height: 28px;
  object-fit: cover;
  border-radius: 4px;
  background: var(--c-bg-card-hover);
  display: block;
}
.qdnapro-table-list tbody td .col-thumbnail-text {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.qdnapro-table-list tbody td .col-thumbnail-text img {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  object-fit: cover;
  border-radius: 4px;
  background: var(--c-bg-card-hover);
}
.qdnapro-table-list tbody td .col-thumbnail-text qdnapro-avatar {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
}
.qdnapro-table-list tbody td .col-thumbnail-text .ctt-media {
  flex-shrink: 0;
  box-sizing: border-box;
  width: 28px;
  height: 28px;
  border-radius: 6px;
  display: block;
}
.qdnapro-table-list tbody td .col-thumbnail-text img.ctt-photo {
  object-fit: cover;
  background: var(--c-bg-card-hover);
}
.qdnapro-table-list tbody td .col-thumbnail-text .ctt-tile {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--c-grey-50);
}
.qdnapro-table-list tbody td .col-thumbnail-text .ctt-tile--initials {
  color: var(--c-grey-500);
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
}
.qdnapro-table-list tbody td .col-thumbnail-text .ctt-tile-icon {
  width: 70%;
  height: 70%;
  object-fit: contain;
  display: block;
}
.qdnapro-table-list tbody td .col-thumbnail-text span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.qdnapro-table-list tbody td .col-thumbnail-text span.ctt-media {
  overflow: visible;
  white-space: normal;
}
.qdnapro-table-list tbody td .col-icon-text {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
.qdnapro-table-list tbody td .col-visual-text {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  max-width: 100%;
}
.qdnapro-table-list tbody td .col-visual-text img.cvt-media {
  flex-shrink: 0;
  object-fit: cover;
  border-radius: 4px;
  background: var(--c-bg-card-hover);
  display: block;
}
.qdnapro-table-list tbody td .col-visual-text qdnapro-avatar.cvt-media {
  flex-shrink: 0;
}
.qdnapro-table-list tbody td .col-visual-text .cvt-tile {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  background: var(--c-grey-100);
}
.qdnapro-table-list tbody td .col-visual-text .cvt-tile--grey {
  background: var(--c-grey-50);
}
.qdnapro-table-list tbody td .col-visual-text .cvt-tile--red {
  background: var(--c-signal-red-bg);
}
.qdnapro-table-list tbody td .col-visual-text .cvt-tile--yellow {
  background: var(--c-chip-yellow-bg);
}
.qdnapro-table-list tbody td .col-visual-text .cvt-tile--green {
  background: var(--c-chip-green-bg);
}
.qdnapro-table-list tbody td .col-visual-text .cvt-tile--blue {
  background: var(--c-signal-blue-bg);
}
.qdnapro-table-list tbody td .col-visual-text .cvt-tile--bright-blue {
  background: var(--c-chip-bright-blue-2-bg);
}
.qdnapro-table-list tbody td .col-visual-text .cvt-tile--pink {
  background: var(--c-signal-pink-bg);
}
.qdnapro-table-list tbody td .col-visual-text .cvt-tile--purple {
  background: var(--c-chip-purple-bg);
}
.qdnapro-table-list tbody td .col-visual-text .cvt-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.qdnapro-table-list tbody td .col-text-sub {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  max-width: 100%;
}
.qdnapro-table-list tbody td .col-text-sub img.cts-mark {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  object-fit: contain;
  display: block;
}
.qdnapro-table-list tbody td .col-text-sub .cts-lines {
  display: flex;
  flex-direction: column;
  line-height: 1.3;
  min-width: 0;
}
.qdnapro-table-list tbody td .col-text-sub .cts-main,
.qdnapro-table-list tbody td .col-text-sub .cts-sub {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.qdnapro-table-list tbody td .col-text-sub .cts-sub {
  color: var(--c-grey-500);
  font-size: 12px;
}
.qdnapro-table-list tbody td .col-avatar {
  display: inline-flex;
}
.qdnapro-table-list tbody td .col-avatar img {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  object-fit: cover;
  background: var(--c-grey-100);
}
.qdnapro-table-list tbody td .col-avatar img.is-empty {
  background: var(--c-bg-card-hover);
}

.qdnapro-table-grid {
  display: none;
  gap: 16px;
  padding: 16px;
}
.qdnapro-table-grid:not([hidden]) {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
}

.qdnapro-table-grid-empty {
  width: 100%;
  text-align: center;
  padding: 52px 16px;
  color: var(--c-grey-400);
  font-size: 14px;
}

@keyframes qdnapro-table-enter {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes qdnapro-table-enter-flat {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.qdnapro-table-list tbody tr.is-entering,
.qdnapro-table-grid .qdnapro-grid-tile.is-entering {
  animation: qdnapro-table-enter 180ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
  animation-delay: calc(var(--qdnapro-table-enter-i, 0) * 25ms);
}

.qdnapro-table-list tbody tr.is-entering-flat {
  animation-name: qdnapro-table-enter-flat;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-table-list tbody tr.is-entering,
  .qdnapro-table-grid .qdnapro-grid-tile.is-entering {
    animation: none;
  }
}
.qdnapro-table-list thead th,
.qdnapro-table-list tbody td {
  transition: padding-top 200ms cubic-bezier(0.22, 0.61, 0.36, 1), padding-bottom 200ms cubic-bezier(0.22, 0.61, 0.36, 1), padding-left 200ms cubic-bezier(0.22, 0.61, 0.36, 1), padding-right 200ms cubic-bezier(0.22, 0.61, 0.36, 1), font-size 200ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-table-list thead th,
  .qdnapro-table-list tbody td {
    transition: none;
  }
}
.qdnapro-table-list.is-density-comfortable thead th {
  padding-top: 12px;
  padding-bottom: 12px;
}
.qdnapro-table-list.is-density-comfortable tbody td {
  padding-top: 16px;
  padding-bottom: 16px;
  font-size: 15px;
}
.qdnapro-table-list.is-density-comfortable tbody td.col-checkbox {
  padding-top: 16px;
  padding-bottom: 16px;
}
.qdnapro-table-list.is-density-comfortable .col-thumbnail-text span,
.qdnapro-table-list.is-density-comfortable .col-icon-text,
.qdnapro-table-list.is-density-comfortable .col-visual-text .cvt-label,
.qdnapro-table-list.is-density-comfortable .col-text-sub .cts-main {
  font-size: 15px;
}
.qdnapro-table-list.is-density-comfortable .col-thumbnail-text img,
.qdnapro-table-list.is-density-comfortable .col-thumbnail-text qdnapro-avatar,
.qdnapro-table-list.is-density-comfortable .col-thumbnail-text .ctt-media,
.qdnapro-table-list.is-density-comfortable .col-thumbnail img,
.qdnapro-table-list.is-density-comfortable .col-text-sub img.cts-mark {
  width: 34px;
  height: 34px;
}
.qdnapro-table-list.is-density-comfortable .col-thumbnail-text .ctt-tile--initials {
  font-size: 13px;
}

.qdnapro-table-list.is-density-compact thead th {
  padding-top: 7px;
  padding-bottom: 7px;
  padding-left: 12px;
  padding-right: 12px;
}
.qdnapro-table-list.is-density-compact tbody td {
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 12px;
  padding-right: 12px;
  font-size: 12px;
}
.qdnapro-table-list.is-density-compact tbody td.col-checkbox {
  padding-top: 8px;
  padding-bottom: 8px;
}
.qdnapro-table-list.is-density-compact .col-thumbnail-text span,
.qdnapro-table-list.is-density-compact .col-icon-text,
.qdnapro-table-list.is-density-compact .col-visual-text .cvt-label,
.qdnapro-table-list.is-density-compact .col-text-sub .cts-main {
  font-size: 12px;
}
.qdnapro-table-list.is-density-compact .col-text-sub .cts-sub {
  font-size: 11px;
}
.qdnapro-table-list.is-density-compact .col-thumbnail-text img,
.qdnapro-table-list.is-density-compact .col-thumbnail-text qdnapro-avatar,
.qdnapro-table-list.is-density-compact .col-thumbnail-text .ctt-media,
.qdnapro-table-list.is-density-compact .col-thumbnail img,
.qdnapro-table-list.is-density-compact .col-text-sub img.cts-mark {
  width: 20px;
  height: 20px;
}
.qdnapro-table-list.is-density-compact .col-thumbnail-text .ctt-media {
  border-radius: 4px;
}
.qdnapro-table-list.is-density-compact .col-thumbnail-text .ctt-tile--initials {
  font-size: 9px;
}

qdnapro-table-wrapper {
  display: flex;
  flex-direction: column;
  min-height: 0;
}
qdnapro-table-wrapper > qdnapro-table {
  flex: 1 1 auto;
  min-height: 0;
}

.qdnapro-table-wrapper__header {
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  padding: 4px 16px;
  border-bottom: 1px solid var(--c-border-soft, #f0f1f2);
  --qtw-bar-height: 32px;
}

.qdnapro-table-wrapper__bar {
  grid-area: 1/1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
  min-height: var(--qtw-bar-height);
  transition: opacity 0.12s ease;
}
.qdnapro-table-wrapper__bar[hidden] {
  display: flex;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

.qdnapro-table-wrapper__selection-icon {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  color: var(--c-purple-500, #40499a);
}

[data-qtw-selection-count] {
  font-size: 13px;
  font-weight: 600;
  color: var(--c-text-body, #374151);
  white-space: nowrap;
}

.qdnapro-table-wrapper__selection-actions {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-left: 8px;
}

@keyframes qdnapro-table-wrapper-bulk-in {
  from {
    opacity: 0;
    transform: translate(4px, 2px) scale(0.94);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
[data-qtw-bar=selection] .is-entering {
  animation: qdnapro-table-wrapper-bulk-in 120ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
  animation-delay: calc(var(--qtw-enter-i, 0) * 20ms);
}

@media (prefers-reduced-motion: reduce) {
  [data-qtw-bar=selection] .is-entering {
    animation: none;
  }
}
.qdnapro-table-wrapper__left {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}
.qdnapro-table-wrapper__left > .qdnapro-button {
  margin-left: 6px;
}

.qdnapro-table-wrapper__right {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 0 0 auto;
}

.qdnapro-table-wrapper__actions {
  display: flex;
  align-items: center;
  gap: 4px;
}
.qdnapro-table-wrapper__actions:not(:empty) {
  margin-right: 4px;
}

.qdnapro-table-wrapper__label {
  font-size: 13px;
  font-weight: 500;
  color: var(--c-text-body, #374151);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

[data-qtw-count] {
  flex: 0 0 auto;
  margin-left: 2px;
  font-size: 14px;
  font-weight: 400;
  color: var(--c-grey-500);
  font-variant-numeric: tabular-nums;
}
[data-qtw-count][hidden] {
  display: none;
}

.qdnapro-table-wrapper__divider {
  flex: 0 0 auto;
  margin: 0 4px;
}

.qdnapro-table-wrapper__right > qdnapro-segment {
  margin-left: 2px;
}

.qdnapro-table-wrapper__header [data-qtw-action=density].qdnapro-button.button-active {
  background: var(--c-purple-50, #e6e9ff);
  color: var(--c-purple-500, #40499a);
}
.qdnapro-table-wrapper__header [data-qtw-action=density].qdnapro-button.button-active:hover:not(.button-disabled) {
  background: var(--c-purple-100, #c0c5ff);
}

qdnapro-popover[data-qtw-columns-panel] {
  width: min(92vw, 360px);
  padding: 0;
}

.qtw-colpanel {
  display: flex;
  flex-direction: column;
  max-height: min(80vh, 720px);
}

.qtw-colpanel__title {
  flex: 0 0 auto;
  padding: 10px 12px 4px;
  font-size: 13px;
  font-weight: 600;
  color: var(--c-text-heading, #1a1f4d);
}

.qtw-colpanel__title + qdnapro-input {
  display: block;
  padding: 0 12px 8px;
}

.qtw-colpanel__list {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 4px 6px;
}

.qtw-colpanel__section + .qtw-colpanel__section {
  margin-top: 6px;
}

.qtw-colpanel__section-label {
  padding: 6px 6px 2px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--c-grey-500, #6b7280);
}
.qtw-colpanel__section-label[hidden] {
  display: none;
}

.qtw-colpanel__row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px;
  border-radius: 6px;
}
.qtw-colpanel__row[hidden] {
  display: none;
}
.qtw-colpanel__row:hover {
  background: var(--c-grey-50, #f0f1f2);
}
.qtw-colpanel__row.is-dragging {
  opacity: 0.4;
}
.qtw-colpanel__row.drop-before {
  box-shadow: inset 0 2px 0 0 var(--c-action-500);
}
.qtw-colpanel__row.drop-after {
  box-shadow: inset 0 -2px 0 0 var(--c-action-500);
}
.qtw-colpanel__row.is-draggable {
  cursor: grab;
}
.qtw-colpanel__row.is-draggable.is-dragging {
  cursor: grabbing;
}

.qtw-colpanel__handle,
.qtw-colpanel__handle-spacer {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
}

.qtw-colpanel__handle {
  color: var(--c-grey-400, #a6aab3);
}

.qtw-colpanel__label {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 13px;
  color: var(--c-text-body, #374151);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qtw-colpanel__eye {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border: none;
  border-radius: 6px;
  background: none;
  color: var(--c-grey-500, #6b7280);
  cursor: pointer;
}
.qtw-colpanel__eye qdnapro-icon {
  width: 16px;
  height: 16px;
}
.qtw-colpanel__eye:hover {
  background: var(--c-grey-100, #e7e9ec);
  color: var(--c-text-body, #374151);
}
.qtw-colpanel__eye:focus-visible {
  outline: 2px solid var(--c-action-500);
  outline-offset: 1px;
}

.qtw-colpanel__lock {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  color: var(--c-grey-400, #a6aab3);
}

.qtw-colpanel__footer {
  flex: 0 0 auto;
  padding: 8px 12px;
  border-top: 1px solid var(--c-border-soft, #f0f1f2);
}

.qtw-colpanel__reset {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 6px;
  border: none;
  background: none;
  font-size: 13px;
  font-weight: 500;
  color: var(--c-purple-500, #40499a);
  cursor: pointer;
  border-radius: 6px;
}
.qtw-colpanel__reset qdnapro-icon {
  width: 16px;
  height: 16px;
}
.qtw-colpanel__reset:hover {
  background: var(--c-purple-50, #e6e9ff);
}
.qtw-colpanel__reset:focus-visible {
  outline: 2px solid var(--c-action-500);
  outline-offset: 1px;
}

.text-h1 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 60px;
  line-height: 72px;
}

.text-h2 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 40px;
  line-height: 56px;
}

.text-h3 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 32px;
  line-height: 48px;
}

.text-h4 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 28px;
  line-height: 44px;
}

.text-h5 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 24px;
  line-height: 36px;
}

.text-h6 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 20px;
  line-height: 24px;
}

.text-body-xs {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 10px;
  line-height: 20px;
}

.text-body-sm {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 12px;
  line-height: 20px;
}

.text-body-md {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 14px;
  line-height: 24px;
}

.text-body-lg {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
}

.text-body-xl {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 20px;
  line-height: 32px;
}

.qdnapro-tag {
  --tag-bg: var(--c-grey-50);
  --tag-bg-hover: var(--c-border-card);
  --tag-text: #1e1f20;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  flex-shrink: 0;
  gap: 4px;
  padding: 0 8px;
  border-radius: 16px;
  background: var(--tag-bg);
  color: var(--tag-text);
  font-family: "Inter", sans-serif;
  font-weight: 600;
  user-select: none;
  outline: 2px solid transparent;
  outline-offset: -2px;
  transition: background-color 120ms ease;
}

.qdnapro-tag .tag-icon {
  display: inline-flex;
  flex-shrink: 0;
  color: inherit;
  pointer-events: none;
}

.qdnapro-tag .tag-icon svg {
  fill: currentColor;
  width: 100%;
  height: 100%;
}

.qdnapro-tag .tag-label {
  line-height: 1;
  white-space: nowrap;
}

/* Animated leading icon (lottie-name / lottie-src). A hair larger than the
   static icon: a Lottie's artwork rarely fills its own frame edge to edge,
   so at icon-size it reads smaller than its static sibling. */
.qdnapro-tag .tag-lottie {
  display: inline-flex;
  flex-shrink: 0;
  pointer-events: none;
}

.qdnapro-tag.tag-size-big {
  height: 28px;
  font-size: 14px;
  line-height: 1;
}

.qdnapro-tag.tag-size-big .tag-icon {
  width: 14px;
  height: 14px;
}

.qdnapro-tag.tag-size-big .tag-lottie {
  --ql-size: 18px;
  width: 18px;
  height: 18px;
}

.qdnapro-tag.tag-size-small {
  height: 24px;
  font-size: 12px;
  line-height: 1;
  padding: 0 8px;
}

.qdnapro-tag.tag-size-small .tag-icon {
  width: 12px;
  height: 12px;
}

.qdnapro-tag.tag-size-small .tag-lottie {
  --ql-size: 16px;
  width: 16px;
  height: 16px;
}

/* Removable ✕ (selection tokens / removable pills). */
.qdnapro-tag.tag-removable {
  padding-right: 4px;
}

.qdnapro-tag .tag-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  border-radius: 50%;
  opacity: 0.6;
  transition: background-color 120ms ease, opacity 120ms ease;
}

.qdnapro-tag .tag-remove:hover {
  opacity: 1;
  background: rgba(0, 0, 0, 0.1);
}

.qdnapro-tag .tag-remove:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 1px;
}

.qdnapro-tag .tag-remove qdnapro-icon {
  display: inline-flex;
  pointer-events: none;
}

.qdnapro-tag .tag-remove qdnapro-icon svg {
  fill: currentColor;
  width: 100%;
  height: 100%;
}

.qdnapro-tag.tag-size-big .tag-remove {
  width: 18px;
  height: 18px;
}

.qdnapro-tag.tag-size-big .tag-remove qdnapro-icon {
  width: 14px;
  height: 14px;
}

.qdnapro-tag.tag-size-small .tag-remove {
  width: 16px;
  height: 16px;
}

.qdnapro-tag.tag-size-small .tag-remove qdnapro-icon {
  width: 12px;
  height: 12px;
}

.qdnapro-tag.tag-disabled .tag-remove {
  pointer-events: none;
}

.qdnapro-tag.tag-color-grey {
  --tag-bg: var(--c-chip-grey-bg);
  --tag-bg-hover: var(--c-chip-grey-hover);
  --tag-text: var(--c-chip-grey-text);
}

.qdnapro-tag.tag-color-grey-2 {
  --tag-bg: var(--c-chip-grey-2-bg);
  --tag-bg-hover: var(--c-chip-grey-2-hover);
  --tag-text: var(--c-chip-grey-2-text);
}

.qdnapro-tag.tag-color-red {
  --tag-bg: var(--c-chip-red-bg);
  --tag-bg-hover: var(--c-chip-red-hover);
  --tag-text: var(--c-chip-red-text);
}

.qdnapro-tag.tag-color-red-2 {
  --tag-bg: var(--c-chip-red-2-bg);
  --tag-bg-hover: var(--c-chip-red-2-hover);
  --tag-text: var(--c-chip-red-2-text);
}

.qdnapro-tag.tag-color-yellow {
  --tag-bg: var(--c-chip-yellow-bg);
  --tag-bg-hover: var(--c-chip-yellow-hover);
  --tag-text: var(--c-chip-yellow-text);
}

.qdnapro-tag.tag-color-yellow-2 {
  --tag-bg: var(--c-chip-yellow-2-bg);
  --tag-bg-hover: var(--c-chip-yellow-2-hover);
  --tag-text: var(--c-chip-yellow-2-text);
}

.qdnapro-tag.tag-color-green {
  --tag-bg: var(--c-chip-green-bg);
  --tag-bg-hover: var(--c-chip-green-hover);
  --tag-text: var(--c-chip-green-text);
}

.qdnapro-tag.tag-color-green-2 {
  --tag-bg: var(--c-chip-green-2-bg);
  --tag-bg-hover: var(--c-chip-green-2-hover);
  --tag-text: var(--c-chip-green-2-text);
}

.qdnapro-tag.tag-color-blue {
  --tag-bg: var(--c-chip-blue-bg);
  --tag-bg-hover: var(--c-chip-blue-hover);
  --tag-text: var(--c-chip-blue-text);
}

.qdnapro-tag.tag-color-blue-2 {
  --tag-bg: var(--c-chip-blue-2-bg);
  --tag-bg-hover: var(--c-chip-blue-2-hover);
  --tag-text: var(--c-chip-blue-2-text);
}

.qdnapro-tag.tag-color-bright-blue {
  --tag-bg: var(--c-chip-bright-blue-bg);
  --tag-bg-hover: var(--c-chip-bright-blue-hover);
  --tag-text: var(--c-chip-bright-blue-text);
}

.qdnapro-tag.tag-color-bright-blue-2 {
  --tag-bg: var(--c-chip-bright-blue-2-bg);
  --tag-bg-hover: var(--c-chip-bright-blue-2-hover);
  --tag-text: var(--c-chip-bright-blue-2-text);
}

.qdnapro-tag.tag-color-pink {
  --tag-bg: var(--c-chip-pink-bg);
  --tag-bg-hover: var(--c-chip-pink-hover);
  --tag-text: var(--c-chip-pink-text);
}

.qdnapro-tag.tag-color-dark-pink {
  --tag-bg: var(--c-chip-dark-pink-bg);
  --tag-bg-hover: var(--c-chip-dark-pink-hover);
  --tag-text: var(--c-chip-dark-pink-text);
}

.qdnapro-tag.tag-color-purple {
  --tag-bg: var(--c-chip-purple-bg);
  --tag-bg-hover: var(--c-chip-purple-hover);
  --tag-text: var(--c-chip-purple-text);
}

.qdnapro-tag.tag-color-dark-purple {
  --tag-bg: var(--c-chip-dark-purple-bg);
  --tag-bg-hover: var(--c-chip-dark-purple-hover);
  --tag-text: var(--c-chip-dark-purple-text);
}

/* COLOR: action — the odd one out [16.08.2026]. The sixteen colours above are
   pastel surfaces with dark text, made for LABELLING something. This one is the
   solid brand blue with white text: the CHOSEN state of a filter chip, which the
   palette simply had no answer for. Built with variant=outline below, for the
   category chips in the sticker sheet. */
.qdnapro-tag.tag-color-action {
  --tag-bg: var(--c-action-500);
  --tag-bg-hover: var(--c-action-600);
  --tag-text: var(--c-text-on-action);
}

/* VARIANT: outline — white surface with a border instead of a filled chip
   [16.08.2026]. The UNchosen state of a filter chip. A row of filled pastel
   chips all read as "selected", which is exactly what a filter row must not do,
   so this was the missing half of the pair.
   The border sits on --tag-border so a colour can move it along; by default it
   follows the card border. `background` and `color` keep coming from the same
   --tag-bg/--tag-text as everywhere else, so hover, focus, disabled and the
   dark-mode block below need no extra rules. */
.qdnapro-tag.tag-variant-outline {
  --tag-bg: var(--c-bg-card);
  --tag-bg-hover: var(--c-grey-50);
  --tag-text: var(--c-text-body);
  --tag-border: var(--c-border-card);
  border: 1px solid var(--tag-border);
}

/* VARIANT: glass — doorschijnend WIT vlak met een blur [19.08.2026]. Voor een
   tag die OP EEN FOTO ligt: de campagnestatus op een Pulse-kaart. Donker glas
   was de eerste poging en las te zwaar op de tegel (Kim, 19.08.2026); wit glas
   legt een lichte waas over de foto in plaats van er een blok op te zetten.
   De tekst is bewust var(--c-grey-900) en NIET --c-text-body: die laatste klapt
   in donkere modus om naar lichtgrijs, en op een wit vlak is dat onleesbaar. De
   grijsschaal wordt in het donkere thema niet herzet, dus deze waarde staat vast
   in beide thema's — net als de pil zelf, want hij ligt op een foto en niet op
   de paginakleur.
   Glass negeert `color`. Eén neutrale laag werkt op elke foto, licht of donker;
   de status leest je aan het LABEL. De kleurregels hierboven hebben dezelfde
   soortelijkheid en komen eerder, dus dit blok wint; het donkere-modus-blok
   onderaan dit bestand heeft één selector meer, dus glass staat daar opnieuw. */
.qdnapro-tag.tag-variant-glass {
  --tag-bg: rgba(255, 255, 255, 0.72);
  --tag-bg-hover: rgba(255, 255, 255, 0.85);
  --tag-text: var(--c-grey-900);
  --tag-border: rgba(255, 255, 255, 0.55);
  border: 1px solid var(--tag-border);
  backdrop-filter: blur(8px) saturate(1.4);
  -webkit-backdrop-filter: blur(8px) saturate(1.4);
  /* Een tag op een foto draagt zijn eigen schaduw: de foto eronder kan elke
     helderheid hebben en zonder dit lost de rand op in een lichte foto. */
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
}

.qdnapro-tag.tag-interactive {
  cursor: pointer;
}

.qdnapro-tag.tag-interactive:hover {
  background: var(--tag-bg-hover);
}

.qdnapro-tag.tag-interactive:focus {
  outline: none;
}

.qdnapro-tag.tag-interactive:focus-visible, .qdnapro-tag.tag-interactive.force-focus {
  outline: 2px solid var(--c-purple-500);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.25);
}

.qdnapro-tag.tag-disabled, .qdnapro-tag.tag-disabled.tag-interactive {
  --tag-bg: var(--c-grey-50);
  --tag-bg-hover: var(--c-grey-50);
  --tag-text: var(--c-text-disabled);
  cursor: not-allowed;
}

.qdnapro-tag.tag-disabled:focus-visible, .qdnapro-tag.tag-disabled.force-focus, .qdnapro-tag.tag-disabled.tag-interactive:focus-visible, .qdnapro-tag.tag-disabled.tag-interactive.force-focus {
  outline: 2px solid transparent;
  box-shadow: none;
}

[data-theme=dark] .qdnapro-tag.tag-color-grey {
  --tag-bg: var(--c-chip-grey-bg);
  --tag-bg-hover: var(--c-chip-grey-hover);
  --tag-text: var(--c-chip-grey-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-grey-2 {
  --tag-bg: var(--c-chip-grey-2-bg);
  --tag-bg-hover: var(--c-chip-grey-2-hover);
  --tag-text: var(--c-chip-grey-2-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-red {
  --tag-bg: var(--c-chip-red-bg);
  --tag-bg-hover: var(--c-chip-red-hover);
  --tag-text: var(--c-chip-red-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-red-2 {
  --tag-bg: var(--c-chip-red-2-bg);
  --tag-bg-hover: var(--c-chip-red-2-hover);
  --tag-text: var(--c-chip-red-2-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-yellow {
  --tag-bg: var(--c-chip-yellow-bg);
  --tag-bg-hover: var(--c-chip-yellow-hover);
  --tag-text: var(--c-chip-yellow-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-yellow-2 {
  --tag-bg: var(--c-chip-yellow-2-bg);
  --tag-bg-hover: var(--c-chip-yellow-2-hover);
  --tag-text: var(--c-chip-yellow-2-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-green {
  --tag-bg: var(--c-chip-green-bg);
  --tag-bg-hover: var(--c-chip-green-hover);
  --tag-text: var(--c-chip-green-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-green-2 {
  --tag-bg: var(--c-chip-green-2-bg);
  --tag-bg-hover: var(--c-chip-green-2-hover);
  --tag-text: var(--c-chip-green-2-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-blue {
  --tag-bg: var(--c-chip-blue-bg);
  --tag-bg-hover: var(--c-chip-blue-hover);
  --tag-text: var(--c-chip-blue-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-blue-2 {
  --tag-bg: var(--c-chip-blue-2-bg);
  --tag-bg-hover: var(--c-chip-blue-2-hover);
  --tag-text: var(--c-chip-blue-2-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-bright-blue {
  --tag-bg: var(--c-chip-bright-blue-bg);
  --tag-bg-hover: var(--c-chip-bright-blue-hover);
  --tag-text: var(--c-chip-bright-blue-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-bright-blue-2 {
  --tag-bg: var(--c-chip-bright-blue-2-bg);
  --tag-bg-hover: var(--c-chip-bright-blue-2-hover);
  --tag-text: var(--c-chip-bright-blue-2-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-pink {
  --tag-bg: var(--c-chip-pink-bg);
  --tag-bg-hover: var(--c-chip-pink-hover);
  --tag-text: var(--c-chip-pink-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-dark-pink {
  --tag-bg: var(--c-chip-dark-pink-bg);
  --tag-bg-hover: var(--c-chip-dark-pink-hover);
  --tag-text: var(--c-chip-dark-pink-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-purple {
  --tag-bg: var(--c-chip-purple-bg);
  --tag-bg-hover: var(--c-chip-purple-hover);
  --tag-text: var(--c-chip-purple-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-dark-purple {
  --tag-bg: var(--c-chip-dark-purple-bg);
  --tag-bg-hover: var(--c-chip-dark-purple-hover);
  --tag-text: var(--c-chip-dark-purple-text);
}

[data-theme=dark] .qdnapro-tag.tag-disabled, [data-theme=dark] .qdnapro-tag.tag-disabled.tag-interactive {
  --tag-bg: #2e3034;
  --tag-bg-hover: #2e3034;
  --tag-text: #6b7180;
}

/* Glass blijft glass in donkere modus. De [data-theme=dark] kleurregels hierboven
   hebben één selector meer dan .qdnapro-tag.tag-variant-glass, dus zonder dit
   blok zouden zij het vlak terugpakken. Hetzelfde witte glas in beide thema's is
   met opzet: de pil ligt op een foto, niet op de paginakleur. [19.08.2026] */
[data-theme=dark] .qdnapro-tag.tag-variant-glass {
  --tag-bg: rgba(255, 255, 255, 0.72);
  --tag-bg-hover: rgba(255, 255, 255, 0.85);
  --tag-text: var(--c-grey-900);
  --tag-border: rgba(255, 255, 255, 0.55);
}

.qdnapro-tasklist-card {
  position: relative;
  box-sizing: border-box;
  display: flex;
  align-items: stretch;
  background: var(--c-bg-card, #ffffff);
  border: 1px solid var(--c-border-card, #e1e3e6);
  border-radius: 14px;
  overflow: hidden;
  cursor: pointer;
  min-height: 84px;
  transition: box-shadow 160ms ease, border-color 160ms ease, transform 120ms ease;
  user-select: none;
  outline: none;
  /* Never inherit the anchor underline when the card is wrapped in a
     link (e.g. the projects-v2 tasklist grid). */
  text-decoration: none;
}

.qdnapro-tasklist-card *,
.qdnapro-tasklist-card *::before,
.qdnapro-tasklist-card *::after {
  box-sizing: border-box;
}

.qdnapro-tasklist-card:hover {
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.1);
  border-color: rgba(0, 0, 0, 0.12);
}

.qdnapro-tasklist-card:active {
  transform: scale(0.985);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
  transition: box-shadow 80ms ease, transform 80ms ease;
}

.qdnapro-tasklist-card:focus-visible {
  outline: 2px solid var(--c-purple-500);
  outline-offset: 2px;
}

/* === Dark mode - base card chrome ===
   In the bundle these read from the global --c-* tokens, but in the
   standalone library preview those tokens are absent, so the light
   fallbacks would win and the card would stay light. These explicit
   dark overrides make the base chrome correct in dark mode everywhere.
   Values match the dark palette already used in this file (surface
   var(--c-grey-800), neutral tile var(--c-grey-700), primary text var(--c-grey-50), muted var(--c-grey-400),
   subtle border rgba(255,255,255,0.10)). */
[data-theme=dark] .qdnapro-tasklist-card {
  background: #2e3036;
  border-color: rgba(255, 255, 255, 0.1);
}

[data-theme=dark] .qdnapro-tasklist-card .tlc-tile {
  background: #40444d;
}

[data-theme=dark] .qdnapro-tasklist-card .tlc-name {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-tasklist-card .tlc-sub {
  color: #a0a4b8;
}

.qdnapro-tasklist-card .tlc-icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px 0 12px 12px;
}

.qdnapro-tasklist-card .tlc-tile {
  width: 60px;
  height: 60px;
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 13px;
  background: var(--c-grey-100, #f0f1f2);
}

.qdnapro-tasklist-card.has-color .tlc-tile {
  background: var(--tlc-bg, var(--c-grey-100, #f0f1f2));
}

.qdnapro-tasklist-card .tlc-body {
  flex: 1;
  min-width: 0;
  padding: 16px 20px 16px 12px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.qdnapro-tasklist-card .tlc-name {
  font-size: 16px;
  font-weight: 500;
  color: var(--c-grey-900, #0b0b0d);
  line-height: 1.3;
  text-decoration: none;
  /* Wrap to a second line, then truncate with an ellipsis - never a
     third line. `white-space: normal` is explicit so it always beats
     the legacy page-level `.tlc-name { white-space: nowrap }`. The 60px
     icon tile keeps the card >= 84px tall, which fits two 16px/1.3
     lines, so the card height does not grow. */
  white-space: normal;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
}

.qdnapro-tasklist-card .tlc-sub {
  font-size: 12.5px;
  color: var(--c-grey-500, #898e99);
  margin-top: 4px;
}

/* Compact variant: smaller tile + body, for dense list contexts. */
.qdnapro-tasklist-card.tlc-compact {
  min-height: 72px;
}

.qdnapro-tasklist-card.tlc-compact .tlc-icon {
  padding: 9px 0 9px 9px;
}

.qdnapro-tasklist-card.tlc-compact .tlc-tile {
  width: 48px;
  height: 48px;
  border-radius: 11px;
}

.qdnapro-tasklist-card.tlc-compact .tlc-body {
  padding: 12px 14px 12px 10px;
}

.qdnapro-tasklist-card.tlc-compact .tlc-name {
  font-size: 14px;
}

.qdnapro-tasklist-card.tlc-compact .tlc-sub {
  font-size: 11.5px;
}

/* === List variant: one-line picker/panel row ===
   `list` wins over `compact` (enforced in JS render(): compact is never
   applied together with tlc-list). One row, ~40px total (6px icon-block
   padding top/bottom + 28px tile = 40px), a small 28px icon tile (same
   color/icon vocabulary as every other mode), single-line ellipsized
   name, ~8px radius. No count/meta/archived-chip/actions/favorite ever
   render in this mode (guarded in JS), so there is nothing to style for
   them here.
   Hover uses a FLAT background tint - the house list-row convention
   (matches qdnapro-menu-item's --mi-bg-hover and the event-sheet row
   hover), not the free-floating card's shadow-lift - because this
   variant sits inline in a list, not as its own card. */
.qdnapro-tasklist-card.tlc-list {
  min-height: 40px;
  border-radius: 8px;
  align-items: center;
}

.qdnapro-tasklist-card.tlc-list:hover {
  background: var(--c-grey-50, #f0f1f2);
  box-shadow: none;
  border-color: var(--c-border-card, #e1e3e6);
}

.qdnapro-tasklist-card.tlc-list:active {
  transform: none;
  box-shadow: none;
}

.qdnapro-tasklist-card.tlc-list .tlc-icon {
  padding: 6px 0 6px 6px;
}

.qdnapro-tasklist-card.tlc-list .tlc-tile {
  width: 28px;
  height: 28px;
  border-radius: 6px;
}

.qdnapro-tasklist-card.tlc-list .tlc-body {
  padding: 6px 12px 6px 8px;
}

.qdnapro-tasklist-card.tlc-list .tlc-name {
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  /* Override the base rule's 2-line clamp box - single line only. */
  display: block;
  -webkit-line-clamp: unset;
}

[data-theme=dark] .qdnapro-tasklist-card.tlc-list:hover {
  background: rgba(255, 255, 255, 0.06);
}

/* === Centered variant: vertical grid tile ===
   `centered` wins over both `list` and `compact` (enforced in JS render():
   neither is applied together with tlc-centered). Rectangular tile for a
   grid of tiles (e.g. 4 per row on the master-data landing page): the
   icon tile sits centered on top, the name centers underneath it, and
   the count centers below that - a vertical stack instead of the default
   icon-left/body-right row. Width is driven by the page's grid, not by
   this component. No actions/favorite/archived-chip ever render here
   (guarded in JS); the archived dim/desaturate treatment below still
   applies unchanged since it targets the shared .tlc-tile/.tlc-name
   selectors. */
.qdnapro-tasklist-card.tlc-centered {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 20px 16px 18px;
  min-height: 132px;
}

.qdnapro-tasklist-card.tlc-centered .tlc-icon {
  flex-shrink: 0;
  padding: 0 0 12px;
}

.qdnapro-tasklist-card.tlc-centered .tlc-body {
  flex: none;
  width: 100%;
  padding: 0;
  align-items: center;
}

.qdnapro-tasklist-card.tlc-centered .tlc-name {
  text-align: center;
}

.qdnapro-tasklist-card.tlc-centered .tlc-sub {
  text-align: center;
}

/* === Hover action buttons (favorite + 3-dots) ===
   Behaviour mirrors the project-card top-actions EXACTLY (Kim 2026-06-01):
   - Right-anchored inline-flex in the top-right corner.
   - The favorite (star) is hidden at rest and fades in on hover; once it
     is favorited (.favorite-button-favorited) it STAYS visible in the
     corner, so you see at a glance which lists are marked.
   - The 3-dots SLIDES IN: collapsed to width 0 at rest (so there is no
     empty box), expands to 32px + an 8px left margin on hover - the same
     width/opacity transition .project-card-menu-trigger uses.
   The project card uses a glass surface (it sits on a photo); the tasklist
   card is white, so the buttons get a solid-white surface + ring instead
   (glass is invisible on white). */
.qdnapro-tasklist-card .tlc-actions {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
}

/* Favorite (star): hidden at rest, fades in on hover, persists when marked. */
.qdnapro-tasklist-card .tlc-actions .qdnapro-favorite-button {
  flex: 0 0 auto;
  background: var(--c-bg-card);
  box-shadow: 0 2px 6px rgba(20, 25, 80, 0.22), 0 0 0 1px rgba(20, 25, 80, 0.14);
  transition: opacity 200ms ease, background-color 160ms ease;
}

.qdnapro-tasklist-card .tlc-actions .qdnapro-favorite-button:not(.favorite-button-favorited) {
  opacity: 0;
  pointer-events: none;
}

.qdnapro-tasklist-card:hover .tlc-actions .qdnapro-favorite-button:not(.favorite-button-favorited),
.qdnapro-tasklist-card:focus-within .tlc-actions .qdnapro-favorite-button:not(.favorite-button-favorited) {
  opacity: 1;
  pointer-events: auto;
}

.qdnapro-tasklist-card .tlc-actions .qdnapro-favorite-button:hover {
  background: var(--c-bg-subtle-purple);
}

/* 3-dots: slides in from width 0 on hover (mirrors .project-card-menu-trigger). */
.qdnapro-tasklist-card .tlc-actions .qdnapro-button {
  flex: 0 0 auto;
  width: 0 !important;
  min-width: 0 !important;
  max-width: 0;
  height: 32px !important;
  min-height: 32px !important;
  max-height: 32px !important;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  margin-left: 0;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 4px !important;
  background: transparent !important;
  box-shadow: none !important;
  transition: max-width 200ms cubic-bezier(0.4, 0, 0.2, 1), width 200ms cubic-bezier(0.4, 0, 0.2, 1), min-width 200ms cubic-bezier(0.4, 0, 0.2, 1), margin-left 200ms cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms ease, background 120ms ease;
}

.qdnapro-tasklist-card:hover .tlc-actions .qdnapro-button,
.qdnapro-tasklist-card:focus-within .tlc-actions .qdnapro-button {
  width: 32px !important;
  min-width: 32px !important;
  max-width: 32px;
  opacity: 1;
  pointer-events: auto;
  margin-left: 8px;
  background: var(--c-bg-card) !important;
  box-shadow: 0 2px 6px rgba(20, 25, 80, 0.22), 0 0 0 1px rgba(20, 25, 80, 0.14) !important;
}

.qdnapro-tasklist-card:hover .tlc-actions .qdnapro-button:hover,
.qdnapro-tasklist-card:focus-within .tlc-actions .qdnapro-button:hover {
  background: var(--c-bg-subtle-purple) !important;
}

/* Dark-mode surfaces. */
[data-theme=dark] .qdnapro-tasklist-card .tlc-actions .qdnapro-favorite-button {
  background: #2e3036;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.14);
}

[data-theme=dark] .qdnapro-tasklist-card .tlc-actions .qdnapro-favorite-button:hover {
  background: #383b42;
}

[data-theme=dark] .qdnapro-tasklist-card:hover .tlc-actions .qdnapro-button,
[data-theme=dark] .qdnapro-tasklist-card:focus-within .tlc-actions .qdnapro-button {
  background: #2e3036 !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.14) !important;
}

[data-theme=dark] .qdnapro-tasklist-card:hover .tlc-actions .qdnapro-button:hover,
[data-theme=dark] .qdnapro-tasklist-card:focus-within .tlc-actions .qdnapro-button:hover {
  background: #383b42 !important;
}

/* === Archived state (mirrors the project-card archived variant) ===
   The tasklist card has no photo to desaturate, so the colour tile IS
   the imagery: it is fully greyed out (grayscale 1) so the pastel
   identity drops away, exactly like the project card's desaturated
   photo. Card dims to 0.85 (same as the project card) and the name is
   muted. */
.qdnapro-tasklist-card[archived] {
  opacity: 0.85;
}

.qdnapro-tasklist-card[archived] .tlc-tile {
  filter: grayscale(1) brightness(0.98);
  background: var(--c-grey-100, #eef0f2);
}

.qdnapro-tasklist-card[archived] .tlc-name {
  color: var(--c-grey-600, #6b7280);
}

/* The favorite/pin makes no sense on an archived tasklist; keep only the
   3-dots (which offers "Activeren"). */
.qdnapro-tasklist-card[archived] .tlc-actions .qdnapro-favorite-button {
  display: none;
}

.qdnapro-tasklist-card .tlc-archived-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 6px;
  padding: 2px 9px 2px 7px;
  border-radius: 999px;
  background: var(--c-grey-100, #eef0f2);
  color: var(--c-grey-600, #6b7280);
  font-size: 11px;
  font-weight: 600;
  line-height: 16px;
  letter-spacing: 0.2px;
}

.qdnapro-tasklist-card .tlc-archived-chip qdnapro-icon {
  flex: 0 0 auto;
}

[data-theme=dark] .qdnapro-tasklist-card .tlc-archived-chip {
  background: rgba(255, 255, 255, 0.08);
  color: #a0a4b8;
}

/* Archived variant in dark mode: a dark neutral tile (the archived
   light rule sets its own background, so it must be re-overridden here)
   and a lighter muted grey name, so the dimmed/desaturated treatment
   reads correctly on the dark card surface. */
[data-theme=dark] .qdnapro-tasklist-card[archived] .tlc-tile {
  background: #40444d;
}

[data-theme=dark] .qdnapro-tasklist-card[archived] .tlc-name {
  color: #a0a4b8;
}

/* === Colour palette (qdnapro-tag light pastels) === */
.qdnapro-tasklist-card.tlc-color-grey {
  --tlc-bg: var(--c-grey-50);
}

.qdnapro-tasklist-card.tlc-color-red {
  --tlc-bg: var(--c-signal-red-bg);
}

.qdnapro-tasklist-card.tlc-color-yellow {
  --tlc-bg: var(--c-chip-yellow-bg);
}

.qdnapro-tasklist-card.tlc-color-green {
  --tlc-bg: var(--c-chip-green-bg);
}

.qdnapro-tasklist-card.tlc-color-blue {
  --tlc-bg: var(--c-signal-blue-bg);
}

.qdnapro-tasklist-card.tlc-color-bright-blue {
  --tlc-bg: var(--c-chip-bright-blue-2-bg);
}

.qdnapro-tasklist-card.tlc-color-pink {
  --tlc-bg: var(--c-signal-pink-bg);
}

.qdnapro-tasklist-card.tlc-color-purple {
  --tlc-bg: var(--c-chip-purple-bg);
}

[data-theme=dark] .qdnapro-tasklist-card.tlc-color-grey {
  --tlc-bg: #40444d;
}

[data-theme=dark] .qdnapro-tasklist-card.tlc-color-red {
  --tlc-bg: #5a2b2b;
}

[data-theme=dark] .qdnapro-tasklist-card.tlc-color-yellow {
  --tlc-bg: #5a4d1f;
}

[data-theme=dark] .qdnapro-tasklist-card.tlc-color-green {
  --tlc-bg: #2a5544;
}

[data-theme=dark] .qdnapro-tasklist-card.tlc-color-blue {
  --tlc-bg: #2e3e54;
}

[data-theme=dark] .qdnapro-tasklist-card.tlc-color-bright-blue {
  --tlc-bg: #3a4a8a;
}

[data-theme=dark] .qdnapro-tasklist-card.tlc-color-pink {
  --tlc-bg: #4e2a36;
}

[data-theme=dark] .qdnapro-tasklist-card.tlc-color-purple {
  --tlc-bg: #3a3555;
}

[data-theme=dark] .qdnapro-tasklist-card:hover {
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.4);
  border-color: rgba(255, 255, 255, 0.18);
}

.qdnapro-text-link {
  --tl-c-focus-ring: var(--c-purple-500);
  --tl-c-focus-glow: rgba(70, 82, 243, 0.25);
  --tl-c-bg-hover: var(--c-grey-50);
  --tl-c-bg-pressed: var(--c-border-card);
  --tl-c-text: var(--c-text-body);
  --tl-c-text-hover: var(--c-text-body);
  --tl-c-text-pressed: var(--c-grey-800);
  display: inline-flex;
}
.qdnapro-text-link[hidden] {
  display: none;
}
.qdnapro-text-link {
  align-items: center;
  justify-content: center;
  padding: 2px var(--s-1);
  border: 0.5px solid transparent;
  border-radius: var(--r-2);
  background: transparent;
  color: var(--tl-c-text);
  font-family: var(--ff);
  font-weight: 700;
  font-size: 14px;
  line-height: 24px;
  white-space: nowrap;
  cursor: pointer;
  transition: background 120ms ease, border-color 120ms ease, color 120ms ease, text-decoration 120ms ease, opacity 120ms ease;
}
.qdnapro-text-link:focus {
  outline: none;
}
.qdnapro-text-link:focus-visible, .qdnapro-text-link.force-focus {
  outline: 2px solid var(--tl-c-focus-ring);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px var(--tl-c-focus-glow);
}
.qdnapro-text-link[disabled], .qdnapro-text-link.text-link-disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.qdnapro-text-link[disabled]:focus-visible, .qdnapro-text-link[disabled].force-focus, .qdnapro-text-link.text-link-disabled:focus-visible, .qdnapro-text-link.text-link-disabled.force-focus {
  outline: 2px solid transparent;
  box-shadow: none;
}
.qdnapro-text-link.text-link-neutral {
  --tl-c-text: var(--c-text-body);
  --tl-c-text-pressed: var(--c-grey-800);
}
.qdnapro-text-link.text-link-error {
  --tl-c-text: var(--c-signal-red-text);
  --tl-c-text-pressed: var(--c-chip-red-text);
}
.qdnapro-text-link.text-link-success {
  --tl-c-text: var(--c-signal-green-text);
  --tl-c-text-pressed: var(--c-chip-green-text);
}
.qdnapro-text-link.text-link-highlight {
  --tl-c-text: var(--c-purple-highlight);
  --tl-c-text-pressed: var(--c-purple-700);
}
.qdnapro-text-link.text-link-10 {
  font-size: 10px;
  line-height: 20px;
}
.qdnapro-text-link.text-link-12 {
  font-size: 12px;
  line-height: 20px;
}
.qdnapro-text-link.text-link-14 {
  font-size: 14px;
  line-height: 24px;
}
.qdnapro-text-link.text-link-16 {
  font-size: 16px;
  line-height: 24px;
}
.qdnapro-text-link.text-link-20 {
  font-size: 20px;
  line-height: 32px;
}
.qdnapro-text-link.text-link-weight-regular {
  font-weight: var(--fw-regular);
}
.qdnapro-text-link.text-link-weight-medium {
  font-weight: var(--fw-medium);
}
.qdnapro-text-link.text-link-weight-semibold {
  font-weight: var(--fw-semi);
}
.qdnapro-text-link.text-link-weight-bold {
  font-weight: 700;
}
.qdnapro-text-link.text-link-hover-link:not([disabled]):not(.text-link-disabled):hover, .qdnapro-text-link.text-link-hover-link.text-link-active {
  text-decoration: underline;
}
.qdnapro-text-link.text-link-hover-bg:not([disabled]):not(.text-link-disabled):hover, .qdnapro-text-link.text-link-hover-bg.text-link-active {
  background: var(--tl-c-bg-hover);
}
.qdnapro-text-link.text-link-hover-bg.text-link-error:not([disabled]):not(.text-link-disabled):hover, .qdnapro-text-link.text-link-hover-bg.text-link-error.text-link-active {
  background: var(--c-signal-red-soft);
  border-color: var(--c-signal-red-text);
  color: var(--c-signal-red-text);
}
.qdnapro-text-link.text-link-hover-bg.text-link-success:not([disabled]):not(.text-link-disabled):hover, .qdnapro-text-link.text-link-hover-bg.text-link-success.text-link-active {
  background: var(--c-chip-green-bg);
  border-color: var(--c-signal-green-text);
}
.qdnapro-text-link.text-link-hover-link:not([disabled]):not(.text-link-disabled):active, .qdnapro-text-link.text-link-hover-link.text-link-pressed, .qdnapro-text-link.text-link-hover-link.force-pressed {
  background: var(--tl-c-bg-pressed);
  color: var(--tl-c-text-pressed);
  text-decoration: underline;
}
.qdnapro-text-link.text-link-hover-bg:not([disabled]):not(.text-link-disabled):active, .qdnapro-text-link.text-link-hover-bg.text-link-pressed, .qdnapro-text-link.text-link-hover-bg.force-pressed {
  background: var(--tl-c-bg-pressed);
  color: var(--tl-c-text-pressed);
}
.qdnapro-text-link.text-link-hover-bg.text-link-error:not([disabled]):not(.text-link-disabled):active, .qdnapro-text-link.text-link-hover-bg.text-link-error.text-link-pressed, .qdnapro-text-link.text-link-hover-bg.text-link-error.force-pressed {
  background: var(--c-signal-red-bg);
  border-color: var(--c-tag-critical-text);
  color: var(--c-chip-red-text);
}
.qdnapro-text-link.text-link-hover-bg.text-link-success:not([disabled]):not(.text-link-disabled):active, .qdnapro-text-link.text-link-hover-bg.text-link-success.text-link-pressed, .qdnapro-text-link.text-link-hover-bg.text-link-success.force-pressed {
  background: var(--c-chip-green-bg);
  border-color: var(--c-chip-green-text);
  color: var(--c-chip-green-text);
}

[data-theme=dark] .qdnapro-text-link {
  --tl-c-bg-hover: #40444d;
  --tl-c-bg-pressed: #565b66;
  --tl-c-text: #e1e3e6;
  --tl-c-text-hover: #e1e3e6;
  --tl-c-text-pressed: #f0f1f2;
}
[data-theme=dark] .qdnapro-text-link.text-link-neutral {
  --tl-c-text: #e1e3e6;
  --tl-c-text-pressed: #f0f1f2;
}
[data-theme=dark] .qdnapro-text-link.text-link-error {
  --tl-c-text: #fbaaaa;
  --tl-c-text-pressed: #fee3e3;
}
[data-theme=dark] .qdnapro-text-link.text-link-success {
  --tl-c-text: #8becc5;
  --tl-c-text-pressed: #e2faf1;
}
[data-theme=dark] .qdnapro-text-link.text-link-highlight {
  --tl-c-text: #aab2ff;
  --tl-c-text-pressed: #d6daff;
}
[data-theme=dark] .qdnapro-text-link.text-link-hover-bg.text-link-error:not([disabled]):not(.text-link-disabled):hover, [data-theme=dark] .qdnapro-text-link.text-link-hover-bg.text-link-error.text-link-active {
  background: #5a2b2b;
  border-color: #fbaaaa;
  color: #fee3e3;
}
[data-theme=dark] .qdnapro-text-link.text-link-hover-bg.text-link-success:not([disabled]):not(.text-link-disabled):hover, [data-theme=dark] .qdnapro-text-link.text-link-hover-bg.text-link-success.text-link-active {
  background: #2a5544;
  border-color: #8becc5;
  color: #e2faf1;
}
[data-theme=dark] .qdnapro-text-link.text-link-hover-bg.text-link-error:not([disabled]):not(.text-link-disabled):active, [data-theme=dark] .qdnapro-text-link.text-link-hover-bg.text-link-error.text-link-pressed, [data-theme=dark] .qdnapro-text-link.text-link-hover-bg.text-link-error.force-pressed {
  background: #7a3838;
  border-color: #fee3e3;
  color: #fee3e3;
}
[data-theme=dark] .qdnapro-text-link.text-link-hover-bg.text-link-success:not([disabled]):not(.text-link-disabled):active, [data-theme=dark] .qdnapro-text-link.text-link-hover-bg.text-link-success.text-link-pressed, [data-theme=dark] .qdnapro-text-link.text-link-hover-bg.text-link-success.force-pressed {
  background: #3d7a62;
  border-color: #e2faf1;
  color: #e2faf1;
}

.qdnapro-timestamp {
  --ts-color: var(--c-text-disabled);
  display: inline;
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ts-color);
  font-weight: 400;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.qdnapro-timestamp.timestamp-color-purple {
  --ts-color: var(--c-purple-500);
}

.qdnapro-timestamp.timestamp-color-highlight {
  --ts-color: var(--c-action-500);
}

.qdnapro-timestamp.timestamp-weight-regular {
  font-weight: 400;
}

.qdnapro-timestamp.timestamp-weight-bold {
  font-weight: 700;
}

.qdnapro-timestamp.timestamp-size-10 {
  font-size: 10px;
  line-height: 14px;
}

.qdnapro-timestamp.timestamp-size-11 {
  font-size: 11px;
  line-height: 16px;
}

.qdnapro-timestamp.timestamp-size-12 {
  font-size: 12px;
  line-height: 18px;
}

.qdnapro-timestamp.timestamp-size-13 {
  font-size: 13px;
  line-height: 18px;
}

.qdnapro-timestamp.timestamp-size-14 {
  font-size: 14px;
  line-height: 20px;
}

.qdnapro-timestamp.timestamp-size-15 {
  font-size: 15px;
  line-height: 22px;
}

.qdnapro-timestamp.timestamp-size-16 {
  font-size: 16px;
  line-height: 24px;
}

.qdnapro-timestamp.timestamp-inline {
  align-self: baseline;
}

[data-theme=dark] .qdnapro-timestamp {
  --ts-color: #b8bcc4;
}

[data-theme=dark] .qdnapro-timestamp.timestamp-color-purple {
  --ts-color: #b8bcc4;
}

[data-theme=dark] .qdnapro-timestamp.timestamp-color-highlight {
  --ts-color: #a5acff;
}

.qdnapro-toast {
  --toast-bg: var(--c-grey-950);
  --toast-text: #ffffff;
  position: fixed;
  z-index: 10000;
  transform: translate(-50%, 4px);
  transform-origin: center;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 999px;
  border: none;
  background: var(--toast-bg);
  color: var(--toast-text);
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 13px;
  font-weight: 500;
  line-height: 18px;
  white-space: nowrap;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18), 0 1px 3px rgba(0, 0, 0, 0.1);
  opacity: 0;
  pointer-events: none;
  transition: opacity 160ms ease-out, transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.qdnapro-toast.toast-position-top {
  transform: translate(-50%, calc(-100% + 4px));
}

.qdnapro-toast.toast-position-bottom {
  transform: translate(-50%, 4px);
}

.qdnapro-toast .toast-icon {
  flex-shrink: 0;
  display: inline-flex;
  color: inherit;
}

.qdnapro-toast .toast-label {
  flex: 1 1 auto;
}

.qdnapro-toast .toast-action {
  flex-shrink: 0;
  appearance: none;
  border: none;
  background: transparent;
  margin: -4px -6px -4px 4px;
  padding: 4px 10px;
  border-radius: 999px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  line-height: 18px;
  color: inherit;
  cursor: pointer;
  pointer-events: auto;
  opacity: 0.95;
}

.qdnapro-toast .toast-action:hover {
  background: rgba(255, 255, 255, 0.14);
}

.qdnapro-toast .toast-action:active {
  opacity: 0.75;
}

.qdnapro-toast.toast-variant-yellow .toast-action:hover,
.qdnapro-toast.toast-variant-red .toast-action:hover {
  background: rgba(0, 0, 0, 0.08);
}

.qdnapro-toast.toast-variant-dark {
  --toast-bg: var(--c-grey-950);
  --toast-text: #ffffff;
}

.qdnapro-toast.toast-variant-purple {
  --toast-bg: var(--c-purple-500);
  --toast-text: #ffffff;
}

.qdnapro-toast.toast-variant-yellow {
  --toast-bg: var(--c-warning-bright-bg);
  --toast-text: var(--c-warning-bright-text);
  border: 1px solid var(--c-warning-bright-border);
}

.qdnapro-toast.toast-variant-red {
  --toast-bg: var(--c-signal-red-bg);
  --toast-text: var(--c-tag-critical-text);
  border: 1px solid var(--c-chip-red-2-bg);
}

.qdnapro-toast.toast-visible, .qdnapro-toast[visible] {
  opacity: 1;
}

.qdnapro-toast.toast-visible.toast-position-top, .qdnapro-toast[visible].toast-position-top {
  transform: translate(-50%, -100%);
}

.qdnapro-toast.toast-visible.toast-position-bottom, .qdnapro-toast[visible].toast-position-bottom {
  transform: translate(-50%, 0);
}

[data-theme=dark] .qdnapro-toast {
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4), 0 1px 3px rgba(0, 0, 0, 0.25);
}

[data-theme=dark] .qdnapro-toast.toast-variant-dark {
  --toast-bg: #f0f1f2;
  --toast-text: #0b0b0d;
}

[data-theme=dark] .qdnapro-toast.toast-variant-purple {
  --toast-bg: #a5acff;
  --toast-text: #0b0b0d;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-toast {
    transition: opacity 120ms linear;
  }
  .qdnapro-toast.toast-position-top {
    transform: translate(-50%, -100%) !important;
  }
  .qdnapro-toast.toast-position-bottom {
    transform: translate(-50%, 0) !important;
  }
}
.qdnapro-toggle {
  --tg-bg: var(--c-grey-300);
  --tg-bg-active: var(--c-action-500);
  --tg-bg-hover: var(--c-grey-400);
  --tg-bg-active-hover: var(--c-action-600);
  --tg-thumb: #ffffff;
  --tg-focus-ring: var(--c-purple-500);
  --tg-focus-glow: rgba(70, 82, 243, 0.25);
  position: relative;
  display: inline-block;
  box-sizing: border-box;
  background: var(--tg-bg);
  border-radius: 999px;
  cursor: pointer;
  user-select: none;
  flex-shrink: 0;
  transition: background-color 180ms ease-out;
}

.qdnapro-toggle .toggle-thumb {
  position: absolute;
  top: 50%;
  background: var(--tg-thumb);
  border-radius: 50%;
  box-shadow: 0 0 0 rgba(0, 0, 0, 0.04), 0 3px 8px rgba(0, 0, 0, 0.15), 0 3px 1px rgba(0, 0, 0, 0.06);
  pointer-events: none;
  transform-origin: left center;
  transition: left 320ms cubic-bezier(0.34, 1.35, 0.64, 1), transform 200ms cubic-bezier(0.34, 1.35, 0.64, 1), background-color 180ms ease-out;
}

.qdnapro-toggle.toggle-active .toggle-thumb {
  transform-origin: right center;
}

.qdnapro-toggle.toggle-size-average {
  width: 51px;
  height: 31px;
}

.qdnapro-toggle.toggle-size-average .toggle-thumb {
  width: 27px;
  height: 27px;
  left: 2px;
  transform: translateY(-50%);
}

.qdnapro-toggle.toggle-size-average.toggle-active .toggle-thumb {
  left: 22px;
}

.qdnapro-toggle.toggle-size-small {
  width: 37px;
  height: 22px;
}

.qdnapro-toggle.toggle-size-small .toggle-thumb {
  width: 18px;
  height: 18px;
  left: 2px;
  transform: translateY(-50%);
}

.qdnapro-toggle.toggle-size-small.toggle-active .toggle-thumb {
  left: 17px;
}

.qdnapro-toggle.toggle-active {
  background: var(--tg-bg-active);
}

.qdnapro-toggle:hover:not(.toggle-disabled):not(.toggle-active), .qdnapro-toggle.force-hover:not(.toggle-disabled):not(.toggle-active) {
  background: var(--tg-bg-hover);
}

.qdnapro-toggle:hover:not(.toggle-disabled).toggle-active, .qdnapro-toggle.force-hover:not(.toggle-disabled).toggle-active {
  background: var(--tg-bg-active-hover);
}

.qdnapro-toggle:active:not(.toggle-disabled) .toggle-thumb, .qdnapro-toggle.force-pressed:not(.toggle-disabled) .toggle-thumb {
  transform: translateY(-50%) scaleX(1.15);
}

.qdnapro-toggle:focus {
  outline: none;
}

.qdnapro-toggle:focus-visible, .qdnapro-toggle.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--tg-focus-ring), 0 0 0 6px var(--tg-focus-glow);
}

.qdnapro-toggle.toggle-disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-toggle.toggle-disabled:not(.toggle-active) {
  background: var(--c-grey-50);
}

.qdnapro-toggle.toggle-disabled.toggle-active {
  background: var(--c-grey-50);
}

[data-theme=dark] .qdnapro-toggle {
  --tg-bg: #565b66;
  --tg-bg-active: #4652f3;
  --tg-bg-hover: #6b7280;
  --tg-bg-active-hover: #5a66ff;
  --tg-thumb: #e1e3e6;
  --tg-focus-ring: #a5acff;
  --tg-focus-glow: rgba(70, 82, 243, 0.4);
}

[data-theme=dark] .qdnapro-toggle.toggle-disabled:not(.toggle-active) {
  background: #40444d;
}

[data-theme=dark] .qdnapro-toggle.toggle-disabled.toggle-active {
  background: #40444d;
}

.qdnapro-action-btn {
  --ab-bg: transparent;
  --ab-bg-hover: var(--c-grey-50);
  --ab-bg-active: #e6e9ff;
  --ab-bg-active-hover: var(--c-border-tree-bright);
  --ab-icon: var(--c-grey-950);
  --ab-icon-active: var(--c-purple-500);
  --ab-underline: var(--c-purple-500);
  --ab-focus-ring: var(--c-grey-950);
  --ab-focus-glow: rgba(70, 82, 243, 0.25);
  --ab-disabled-bg: var(--c-grey-50);
  --ab-disabled-icon: var(--c-text-disabled);
  --ab-active-line-width: 16px;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  box-sizing: border-box;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 4px;
  background: var(--ab-bg);
  color: var(--ab-icon);
  cursor: pointer;
  user-select: none;
  flex-shrink: 0;
  transition: background-color 120ms ease-out, color 120ms ease-out;
  font-family: inherit;
}

.qdnapro-action-btn qdnapro-icon,
.qdnapro-action-btn .action-btn-icon,
.qdnapro-action-btn .action-btn-chevron {
  display: inline-flex;
  flex-shrink: 0;
  pointer-events: none;
  color: inherit;
}

.qdnapro-action-btn svg {
  fill: currentColor;
  width: 100%;
  height: 100%;
}

.qdnapro-action-btn .action-btn-icon-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.qdnapro-action-btn .action-btn-dot {
  position: absolute;
  top: -2px;
  right: -2px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--c-warn-red-500);
  pointer-events: none;
  box-shadow: 0 0 0 1.5px var(--ab-dot-ring, #ffffff);
}

.qdnapro-action-btn::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: var(--ab-active-line-width);
  height: 2px;
  background: var(--ab-underline);
  border-radius: 1px 1px 0 0;
  transform: translateX(-50%) scaleX(0);
  transform-origin: center;
  opacity: 0;
  transition: transform 260ms cubic-bezier(0.34, 1.35, 0.64, 1), opacity 180ms ease-out;
  pointer-events: none;
}

.qdnapro-action-btn.action-btn-active::after {
  transform: translateX(-50%) scaleX(1);
  opacity: 1;
}

.qdnapro-action-btn[disabled].action-btn-active::after, .qdnapro-action-btn.action-btn-disabled.action-btn-active::after {
  background: var(--ab-disabled-icon);
  opacity: 0.6;
}

.qdnapro-action-btn.action-btn-shape-square.action-btn-size-default {
  width: 40px;
  height: 40px;
  min-width: 40px;
}

.qdnapro-action-btn.action-btn-shape-square.action-btn-size-default qdnapro-icon,
.qdnapro-action-btn.action-btn-shape-square.action-btn-size-default .action-btn-icon {
  width: 20px;
  height: 20px;
}

.qdnapro-action-btn.action-btn-shape-square.action-btn-size-small {
  width: 28px;
  height: 28px;
  min-width: 28px;
  --ab-active-line-width: 12px;
}

.qdnapro-action-btn.action-btn-shape-square.action-btn-size-small qdnapro-icon,
.qdnapro-action-btn.action-btn-shape-square.action-btn-size-small .action-btn-icon {
  width: 16px;
  height: 16px;
}

.qdnapro-action-btn.action-btn-shape-square.action-btn-size-small::after {
  bottom: 0;
  height: 1.5px;
}

.qdnapro-action-btn.action-btn-shape-thin.action-btn-size-default {
  width: 20px;
  height: 40px;
  min-width: 20px;
  --ab-active-line-width: 12px;
}

.qdnapro-action-btn.action-btn-shape-thin.action-btn-size-default qdnapro-icon,
.qdnapro-action-btn.action-btn-shape-thin.action-btn-size-default .action-btn-icon {
  width: 16px;
  height: 16px;
}

.qdnapro-action-btn.action-btn-shape-thin.action-btn-size-small {
  width: 20px;
  height: 28px;
  min-width: 20px;
  --ab-active-line-width: 10px;
}

.qdnapro-action-btn.action-btn-shape-thin.action-btn-size-small qdnapro-icon,
.qdnapro-action-btn.action-btn-shape-thin.action-btn-size-small .action-btn-icon {
  width: 14px;
  height: 14px;
}

.qdnapro-action-btn.action-btn-shape-thin.action-btn-size-small::after {
  bottom: 0;
  height: 1.5px;
}

.qdnapro-action-btn.action-btn-has-chevron.action-btn-shape-square.action-btn-size-default {
  width: 60px;
}

.qdnapro-action-btn.action-btn-has-chevron.action-btn-shape-square.action-btn-size-small {
  width: auto;
  min-width: 44px;
  padding: 0 4px;
}

.qdnapro-action-btn .action-btn-chevron {
  opacity: 0.7;
}

.qdnapro-action-btn.action-btn-has-chevron .action-btn-chevron {
  width: 12px;
  height: 12px;
}

.qdnapro-action-btn.action-btn-type-table {
  --ab-bg-hover: var(--c-border-card);
}

.qdnapro-action-btn.action-btn-color-highlight {
  --ab-icon: var(--c-action-500);
  --ab-bg-active: #e6e9ff;
  --ab-bg-active-hover: var(--c-border-tree-bright);
  --ab-icon-active: var(--c-action-500);
  --ab-underline: var(--c-action-500);
  --ab-focus-ring: var(--c-purple-500);
}

.qdnapro-action-btn.action-btn-active {
  background: var(--ab-bg-active);
  color: var(--ab-icon-active);
}

.qdnapro-action-btn:hover:not([disabled]):not(.action-btn-active) {
  background: var(--ab-bg-hover);
}

.qdnapro-action-btn:hover:not([disabled]).action-btn-active {
  background: var(--ab-bg-active-hover);
}

.qdnapro-action-btn:active:not([disabled]) {
  background-image: linear-gradient(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.15));
}

.qdnapro-action-btn:focus {
  outline: none;
}

.qdnapro-action-btn:focus-visible, .qdnapro-action-btn.force-focus {
  outline: 2px solid var(--ab-focus-ring);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px var(--ab-focus-glow);
}

.qdnapro-action-btn.force-hover:not([disabled]):not(.action-btn-active) {
  background: var(--ab-bg-hover);
}

.qdnapro-action-btn.force-hover:not([disabled]).action-btn-active {
  background: var(--ab-bg-active-hover);
}

.qdnapro-action-btn.force-pressed:not([disabled]) {
  background-image: linear-gradient(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.15));
}

.qdnapro-action-btn[disabled], .qdnapro-action-btn.action-btn-disabled {
  background: var(--ab-disabled-bg) !important;
  color: var(--ab-disabled-icon) !important;
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-action-btn[disabled].action-btn-active, .qdnapro-action-btn.action-btn-disabled.action-btn-active {
  background: var(--ab-bg-active) !important;
  color: var(--ab-disabled-icon) !important;
  opacity: 0.6;
}

[data-theme=dark] .qdnapro-action-btn {
  --ab-bg: transparent;
  --ab-bg-hover: #565b66;
  --ab-bg-active: #2a2d52;
  --ab-bg-active-hover: #3a3f6b;
  --ab-icon: #e1e3e6;
  --ab-icon-active: #a5acff;
  --ab-underline: #a5acff;
  --ab-focus-ring: #e1e3e6;
  --ab-focus-glow: rgba(70, 82, 243, 0.4);
  --ab-disabled-bg: #40444d;
  --ab-disabled-icon: #6b7280;
  --ab-dot-ring: #2e3036;
}

[data-theme=dark] .qdnapro-action-btn.action-btn-type-table {
  --ab-bg-hover: #40444d;
}

[data-theme=dark] .qdnapro-action-btn.action-btn-color-highlight {
  --ab-icon: #a5acff;
  --ab-bg-hover: rgba(70, 82, 243, 0.18);
  --ab-bg-active: #4652f3;
  --ab-bg-active-hover: #5a66ff;
  --ab-icon-active: #ffffff;
  --ab-underline: #ffffff;
  --ab-focus-ring: #a5acff;
}

.qdnapro-tooltip {
  --tt-bg: var(--c-grey-300);
  --tt-border: var(--c-grey-300);
  --tt-text: var(--c-grey-950);
  --tt-title: var(--c-grey-950);
  --tt-pointer-size: 8px;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 0 8px;
  border: 1px solid var(--tt-border);
  border-radius: 4px;
  background: var(--tt-bg);
  color: var(--tt-text);
  font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  font-weight: 400;
  box-sizing: border-box;
  position: relative;
  white-space: nowrap;
  box-shadow: 0 1px 4px rgba(12, 12, 13, 0.05);
  max-width: 320px;
}

.qdnapro-tooltip[hidden] {
  display: none;
}

/* wrap (05.08.2026) — een langere tekst over meerdere regels.
   WAAROM dit nodig was: hierboven staan `white-space: nowrap` en `max-width: 320px`
   samen, en dan wint nowrap: de tekst breekt niet af maar loopt gewoon buiten die
   320px door, tot buiten het venster. Gemeten met een waarschuwingstekst van 79 tekens
   in het documentenvenster van een takenlijst: de tooltip was 474px breed en liep aan
   de rechterkant van het scherm af.
   Standaard blijft nowrap, dus geen enkele bestaande tooltip verandert van vorm; deze
   klasse is er voor tooltips die een hele zin zijn in plaats van een label.
   `text-align: left` want gecentreerde loopende tekst leest slecht, en de basisregel
   centreert (align-items: center op de flexkolom). */
.qdnapro-tooltip.tooltip-wrap {
  white-space: normal;
  align-items: flex-start;
  text-align: left;
  line-height: 1.35;
}

.qdnapro-tooltip.tooltip-wrap.tooltip-small {
  padding: 4px 8px;
}

.qdnapro-tooltip.tooltip-big {
  padding: 4px 8px;
}

.qdnapro-tooltip.tooltip-small {
  padding: 0 8px;
}

.qdnapro-tooltip .tooltip-title {
  color: var(--tt-title);
  font-size: 14px;
  line-height: 24px;
  font-weight: 500;
  text-align: center;
}

.qdnapro-tooltip .tooltip-body {
  color: var(--tt-text);
  text-align: center;
}

.qdnapro-tooltip.tooltip-big .tooltip-body {
  font-size: 10px;
  line-height: 20px;
}

.qdnapro-tooltip.tooltip-small .tooltip-body {
  font-size: 12px;
  line-height: 20px;
}

.qdnapro-tooltip.tooltip-floating.tooltip-big .tooltip-body {
  font-size: 14px;
  line-height: 24px;
}

.qdnapro-tooltip.tooltip-purple {
  --tt-bg: var(--c-purple-500);
  --tt-border: var(--c-purple-500);
  --tt-text: #ffffff;
  --tt-title: #ffffff;
}

.qdnapro-tooltip.tooltip-purple-dark {
  --tt-bg: var(--c-purple-700);
  --tt-border: var(--c-purple-700);
  --tt-text: #ffffff;
  --tt-title: #ffffff;
}

.qdnapro-tooltip.tooltip-light-purple {
  --tt-bg: #e6e9ff;
  --tt-border: var(--c-border-tree-bright);
  --tt-text: var(--c-purple-500);
  --tt-title: var(--c-purple-500);
}

.qdnapro-tooltip.tooltip-neutral-dark {
  --tt-bg: var(--c-grey-300);
  --tt-border: var(--c-grey-300);
  --tt-text: var(--c-grey-950);
  --tt-title: var(--c-grey-950);
}

.qdnapro-tooltip.tooltip-neutral-light {
  --tt-bg: var(--c-border-card);
  --tt-border: var(--c-border-card);
  --tt-text: var(--c-grey-500);
  --tt-title: var(--c-grey-500);
}

.qdnapro-tooltip.tooltip-pointer::before {
  content: "";
  position: absolute;
  width: var(--tt-pointer-size);
  height: var(--tt-pointer-size);
  background: var(--tt-bg);
  border: 1px solid var(--tt-border);
  box-sizing: border-box;
  pointer-events: none;
}

.qdnapro-tooltip.tooltip-pointer.tooltip-position-top::before {
  bottom: calc(var(--tt-pointer-size) * -0.5 - 1px);
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  border-top-color: transparent;
  border-left-color: transparent;
}

.qdnapro-tooltip.tooltip-pointer.tooltip-position-bottom::before {
  top: calc(var(--tt-pointer-size) * -0.5 - 1px);
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  border-bottom-color: transparent;
  border-right-color: transparent;
}

.qdnapro-tooltip.tooltip-pointer.tooltip-position-left::before {
  right: calc(var(--tt-pointer-size) * -0.5 - 1px);
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
  border-top-color: transparent;
  border-left-color: transparent;
}

.qdnapro-tooltip.tooltip-pointer.tooltip-position-right::before {
  left: calc(var(--tt-pointer-size) * -0.5 - 1px);
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
  border-bottom-color: transparent;
  border-right-color: transparent;
}

.qdnapro-tooltip {
  opacity: 0;
  transform: scale(0.92);
  transition: opacity 120ms ease-out, transform 120ms ease-out;
}

.qdnapro-tooltip.tooltip-visible {
  opacity: 1;
  transform: scale(1);
}

.qdnapro-tooltip:not(.tooltip-managed) {
  opacity: 1;
  transform: none;
}

[data-theme=dark] .qdnapro-tooltip {
  --tt-bg: #40444d;
  --tt-border: #40444d;
  --tt-text: #e1e3e6;
  --tt-title: #e1e3e6;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
}

[data-theme=dark] .qdnapro-tooltip.tooltip-purple {
  --tt-bg: #3842c2;
  --tt-border: #3842c2;
  --tt-text: #ffffff;
  --tt-title: #ffffff;
}

[data-theme=dark] .qdnapro-tooltip.tooltip-light-purple {
  --tt-bg: #2a2d52;
  --tt-border: #3a3f6b;
  --tt-text: #8b93ff;
  --tt-title: #8b93ff;
}

[data-theme=dark] .qdnapro-tooltip.tooltip-neutral-dark {
  --tt-bg: #40444d;
  --tt-border: #40444d;
  --tt-text: #e1e3e6;
  --tt-title: #e1e3e6;
}

[data-theme=dark] .qdnapro-tooltip.tooltip-neutral-light {
  --tt-bg: #2e3036;
  --tt-border: #2e3036;
  --tt-text: #a6aab3;
  --tt-title: #a6aab3;
}

.qdnapro-touch-button {
  --qtb-bg: var(--c-bg-card, #ffffff);
  --qtb-bg-hover: var(--c-grey-100, #e7e9ec);
  --qtb-bg-pressed: var(--c-grey-200, #d1d5db);
  --qtb-border: var(--c-grey-100, #e7e9ec);
  --qtb-border-hover: var(--c-grey-200, #d1d5db);
  --qtb-border-pressed: var(--c-grey-300, #c4c7cc);
  --qtb-label-color: var(--c-text-body, #0b0b0d);
  --qtb-disabled-bg: var(--c-grey-50);
  --qtb-disabled-color: var(--c-text-disabled);
  --btn-focus-ring: var(--c-purple-500);
  --btn-focus-glow: rgba(70, 82, 243, 0.25);
  --qtb-pill-strong-bg: #e8705f;
  --qtb-pill-strong-fg: #ffffff;
  --qtb-pill-soft-dot-bg: var(--c-action-500, #4652f3);
  position: relative;
  display: flex;
  box-sizing: border-box;
  width: 100%;
  background: var(--qtb-bg);
  border: 1px solid var(--qtb-border);
  border-radius: var(--r-3, 12px);
  color: var(--qtb-label-color);
  font-family: var(--ff, "Inter", system-ui, -apple-system, sans-serif);
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 120ms ease-out, border-color 120ms ease-out, color 120ms ease-out;
}

.qdnapro-touch-button .qtb-label {
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  overflow: hidden;
  overflow-wrap: anywhere;
}

.qdnapro-touch-button .qtb-icon {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
  transition: opacity 120ms ease-out;
}

.qdnapro-touch-button .qtb-badge {
  display: flex;
  align-items: center;
  line-height: 0;
}

.qdnapro-touch-button.qtb-variant-grid {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 104px;
  padding: 12px;
  text-align: center;
}

.qdnapro-touch-button.qtb-variant-grid .qtb-label {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}

.qdnapro-touch-button.qtb-variant-grid .qtb-badge {
  position: absolute;
  top: 8px;
  right: 8px;
  pointer-events: none;
  z-index: 1;
}

.qdnapro-touch-button.qtb-variant-grid .qtb-pills {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  pointer-events: none;
}

.qtb-pill {
  position: relative;
  display: block;
  line-height: 0;
}

.qtb-pill-icon {
  width: 26px;
  height: 26px;
  display: block;
  color: var(--qtb-label-color);
}

.qtb-pill-dot {
  position: absolute;
  top: -3px;
  right: -3px;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  border: 2px solid var(--qtb-bg, #ffffff);
  box-sizing: border-box;
}

.qtb-pill-strong .qtb-pill-dot {
  background: var(--qtb-pill-strong-bg);
  --qtb-dot-radar: 232, 112, 95;
}

.qtb-pill-soft .qtb-pill-dot {
  background: var(--qtb-pill-soft-dot-bg);
  --qtb-dot-radar: 70, 82, 243;
}

@keyframes qtb-dot-radar {
  0% {
    box-shadow: 0 0 0 0 rgba(var(--qtb-dot-radar, 70, 82, 243), 0.4);
  }
  30% {
    box-shadow: 0 0 0 9px rgba(var(--qtb-dot-radar, 70, 82, 243), 0);
  }
  100% {
    box-shadow: 0 0 0 9px rgba(var(--qtb-dot-radar, 70, 82, 243), 0);
  }
}
.qtb-pill-dot {
  animation: qtb-dot-radar 6s ease-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .qtb-pill-dot {
    animation: none;
  }
}
.qtb-pill-count {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.qdnapro-touch-button.qtb-variant-row {
  flex-direction: row;
  align-items: center;
  gap: 24px;
  min-height: 58px;
  padding: 8px;
  text-align: left;
}

.qdnapro-touch-button.qtb-variant-row .qtb-label {
  flex: 1 1 auto;
  min-width: 0;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.qdnapro-touch-button.qtb-variant-row .qtb-badge {
  flex: 0 0 auto;
  margin-left: auto;
  margin-right: 8px;
  pointer-events: none;
}

.qdnapro-touch-button:hover:not(.qtb-disabled),
.qdnapro-touch-button.force-hover:not(.qtb-disabled) {
  background: var(--qtb-bg-hover);
  border-color: var(--qtb-border-hover);
}

.qdnapro-touch-button.is-pressed:not(.qtb-disabled),
.qdnapro-touch-button.force-pressed:not(.qtb-disabled) {
  background: var(--qtb-bg-pressed);
  border-color: var(--qtb-border-pressed);
}

.qdnapro-touch-button:focus {
  outline: none;
}

.qdnapro-touch-button:focus-visible,
.qdnapro-touch-button.force-focus {
  outline: 2px solid var(--btn-focus-ring);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px var(--btn-focus-glow);
}

.qdnapro-touch-button.qtb-disabled {
  background: var(--qtb-disabled-bg);
  color: var(--qtb-disabled-color);
  border-color: transparent;
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-touch-button.qtb-disabled:focus-visible,
.qdnapro-touch-button.qtb-disabled.force-focus {
  outline: none;
  box-shadow: none;
}

.qdnapro-touch-button.qtb-disabled .qtb-icon {
  opacity: 0.3;
}

[data-theme=dark] .qdnapro-touch-button {
  --qtb-bg: var(--c-bg-card, #2a2d34);
  --qtb-bg-hover: #343841;
  --qtb-bg-pressed: #3e434d;
  --qtb-border: #40444d;
  --qtb-border-hover: #4b505a;
  --qtb-border-pressed: #575d68;
  --qtb-label-color: var(--c-text-body, #f0f1f2);
  --qtb-disabled-bg: #40444d;
  --qtb-disabled-color: #6b7280;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-touch-button {
    transition: none;
  }
}
qdnapro-translation-panel {
  display: contents;
}

body.qtp-open .stats-bar,
body.qtp-open .mgr-stack-trigger,
body.qtp-open .insert-zone {
  pointer-events: none;
}

.qtp {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 420px;
  max-width: 92vw;
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(24px) saturate(160%);
  -webkit-backdrop-filter: blur(24px) saturate(160%);
  border-left: 1px solid rgba(255, 255, 255, 0.55);
  display: flex;
  flex-direction: column;
  z-index: 1050;
  box-shadow: -8px 0 32px rgba(40, 46, 100, 0.18);
  overflow: hidden;
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  box-sizing: border-box;
  transform: translateX(100%);
  transition: transform 240ms cubic-bezier(0.4, 0, 0.2, 1);
}
.qtp--visible {
  transform: translateX(0);
}
.qtp * {
  box-sizing: border-box;
}

.qtp-header {
  display: flex;
  align-items: center;
  padding: 11px 16px;
  background: rgba(65, 73, 154, 0.55);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  flex-shrink: 0;
  gap: 9px;
}

.qtp-header-spacer {
  flex: 1;
}

.qtp-at-btn {
  position: relative;
  overflow: hidden;
}
.qtp-at-btn::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 55%;
  background: linear-gradient(120deg, transparent 0%, rgba(65, 73, 154, 0.13) 50%, transparent 100%);
  transform: translateX(-200%);
  animation: qtp-shimmer 3.4s ease-in-out infinite;
  pointer-events: none;
}

@keyframes qtp-shimmer {
  0% {
    transform: translateX(-200%);
  }
  30% {
    transform: translateX(220%);
  }
  100% {
    transform: translateX(220%);
  }
}
.qtp-at-icon {
  display: inline-block;
}

.qtp-at-icon--spin {
  animation: qtp-rotate 0.8s linear infinite;
}

@keyframes qtp-rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.qtp-at-bar {
  padding: 9px 14px;
  background: transparent;
  border-bottom: 1px solid rgba(216, 219, 237, 0.6);
  font-size: 12px;
  color: var(--c-purple-500);
  flex-shrink: 0;
}
.qtp-at-bar--done {
  background: rgba(34, 140, 90, 0.1);
  border-bottom-color: rgba(34, 140, 90, 0.18);
  color: var(--c-tag-new-text);
  display: flex;
  align-items: center;
  gap: 6px;
}
.qtp-at-bar--error {
  background: rgba(196, 54, 42, 0.1);
  border-bottom-color: rgba(196, 54, 42, 0.18);
  color: var(--c-tag-critical-text);
  display: flex;
  align-items: center;
  gap: 6px;
}

.qtp-at-bar-question {
  display: block;
  margin-bottom: 7px;
  font-weight: 500;
}

.qtp-at-dir {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 7px;
}

.qtp-at-dir-lang {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 22px;
  padding: 0 8px;
  border-radius: 6px;
  background: rgba(65, 73, 154, 0.1);
  color: var(--c-purple-500);
  font-size: 12px;
  font-weight: 600;
}

.qtp-at-dir-arrow {
  flex-shrink: 0;
  color: rgba(63, 73, 154, 0.55);
}

.qtp-at-bar-btns {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  align-items: center;
}

.qtp-lang-bar {
  display: flex;
  padding: 8px 14px;
  background: rgba(255, 255, 255, 0.5);
  border-bottom: 1px solid rgba(216, 219, 237, 0.7);
  flex-shrink: 0;
}

.qtp-lang-seg .qdnapro-segment-item[data-missing] {
  position: relative;
}
.qtp-lang-seg .qdnapro-segment-item[data-missing]::after {
  content: "";
  position: absolute;
  top: 3px;
  right: 6px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--c-warn-yellow-600);
  box-shadow: 0 0 0 2px #fff;
  pointer-events: none;
}

.qtp-col-headers {
  display: grid;
  grid-template-columns: 1fr 1fr;
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.5);
  border-bottom: 2px solid rgba(216, 219, 237, 0.7);
}

.qtp-col-h {
  font-size: 11px;
  font-weight: 700;
  color: var(--c-purple-500);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
}
.qtp-col-h:first-child {
  border-right: 1px solid var(--c-border-tree);
}

.qtp-missing-pill {
  font-size: 10px;
  background: var(--c-tag-warning-bg);
  color: var(--c-signal-yellow-text);
  border-radius: 4px;
  padding: 2px 6px;
  border: 1px solid var(--c-warn-yellow-600);
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
}

.qtp-body {
  flex: 1;
  overflow-y: auto;
  padding: 8px 10px;
  display: flex;
  flex-direction: column;
  gap: 7px;
  scrollbar-width: none;
}
.qtp-body::-webkit-scrollbar {
  width: 0;
  height: 0;
}

.qtp-empty {
  padding: 28px 16px;
  text-align: center;
  color: var(--c-text-disabled-pp);
  font-size: 13px;
}

.qtp-card {
  border-radius: 7px;
  border: 1px solid var(--c-border-tree-bright);
  overflow: hidden;
  background: var(--c-bg-card);
  transition: box-shadow 120ms;
  flex-shrink: 0;
}
.qtp-card:hover {
  box-shadow: 0 2px 10px rgba(65, 73, 154, 0.14);
}
.qtp-card--selected, .qtp-card--selected:hover {
  box-shadow: 0 0 0 2px var(--c-chip-bright-blue-hover), 0 4px 14px rgba(65, 73, 154, 0.18);
}
.qtp-card--spotlight {
  animation: qtp-spotlight 900ms ease-out forwards;
}
.qtp-card--archived {
  border-color: var(--c-border-tree);
  background: var(--c-bg-card-hover);
}
.qtp-card--archived .qtp-meta {
  background: rgba(120, 124, 150, 0.08);
  border-bottom-color: var(--c-border-soft-2);
}

@keyframes qtp-spotlight {
  0% {
    box-shadow: 0 0 0 3px rgba(65, 73, 154, 0.55);
  }
  60% {
    box-shadow: 0 0 0 3px rgba(65, 73, 154, 0.25);
  }
  100% {
    box-shadow: none;
  }
}
.qtp-card--badge .qtp-meta {
  padding-left: 12px;
}
.qtp-card--badge .qtp-badge {
  border-radius: 6px;
}

.qtp-section-divider {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 16px 2px 8px;
  flex-shrink: 0;
}
.qtp-section-divider::after {
  content: "";
  flex: 1;
  height: 2px;
  border-radius: 2px;
  background: var(--c-purple-500);
}

.qtp-section-label {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: var(--c-purple-500);
  color: var(--c-text-on-action);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 3px 8px;
  border-radius: 5px;
}

.qtp-section-icon {
  display: inline-block;
}

.qtp-meta {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 6px 10px 6px 0;
  background: rgba(65, 73, 154, 0.06);
  border-bottom: 1px solid var(--c-chip-purple-bg);
  cursor: pointer;
}

.qtp-badge {
  font-size: 11px;
  padding: 3px 8px;
  border-radius: 6px 0 0 6px;
  color: var(--c-text-on-action);
  font-weight: 600;
  white-space: nowrap;
}

.qtp-node-id {
  font-size: 11px;
  color: var(--c-text-disabled-pp);
  font-weight: 500;
  flex-shrink: 0;
}

.qtp-meta--icon {
  padding-left: 10px;
  gap: 8px;
}

.qtp-activity-icon {
  flex-shrink: 0;
}

.qtp-icon-placeholder {
  width: 26px;
  height: 26px;
  border-radius: 6px;
  background: var(--c-chip-purple-bg);
  flex-shrink: 0;
}

.qtp-title {
  flex: 0 1 auto;
  min-width: 0;
  font-size: 13px;
  font-weight: 600;
  color: var(--c-purple-700);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qtp-tag {
  flex-shrink: 0;
  font-size: 10px;
  font-weight: 600;
  padding: 2px 7px;
  border-radius: 5px;
  white-space: nowrap;
  color: var(--c-purple-500);
  background: rgba(65, 73, 154, 0.12);
}
.qtp-tag--archived {
  color: var(--c-grey-500);
  background: var(--c-border-soft-2);
}

.qtp-save {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-left: auto;
}
.qtp-save--saving {
  background: var(--c-warn-yellow-600);
}
.qtp-save--saved {
  background: var(--c-success-bright);
}
.qtp-save--error {
  background: var(--c-tag-critical-text);
}

.qtp-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.qtp-col {
  padding: 8px 10px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 50px;
}
.qtp-col--primary {
  padding-right: 4px;
}
.qtp-col--target {
  padding-left: 4px;
  background: var(--c-bg-subtle-purple);
  border-left: 1px solid var(--c-chip-purple-bg);
}

.qtp-field {
  display: block;
  width: 100%;
}

.qtp-field-group {
  display: flex;
  flex-direction: column;
}

.qtp-field-caption {
  font-size: 10px;
  font-weight: 600;
  color: var(--c-text-disabled-pp);
  text-transform: uppercase;
  letter-spacing: 0.045em;
  line-height: 1.3;
  margin-bottom: 3px;
}
.qtp-field-caption--section {
  margin: 2px 0 4px;
  color: var(--c-text-disabled-pp);
}

.qtp-ans-row .qtp-field {
  flex: 1;
  min-width: 0;
}

.qtp-field--missing .input-field {
  border-color: var(--c-warn-yellow-600) !important;
  background: var(--c-bg-card) !important;
}

qdnapro-activity-row.qtp-row-focused .activity-row-inner {
  box-shadow: 0 0 0 2px var(--c-chip-bright-blue-hover), 0 4px 14px rgba(65, 73, 154, 0.18);
}

qdnapro-section-header.qtp-row-focused .sh-pill {
  box-shadow: 0 0 0 2px var(--c-chip-bright-blue-hover), 0 4px 14px rgba(65, 73, 154, 0.18);
  border-radius: 8px;
}

.qtp-ans-divider {
  height: 1px;
  background: var(--c-chip-purple-bg);
  margin: 2px 0;
}

.qtp-ans-row {
  display: flex;
  align-items: flex-start;
  gap: 6px;
}

.qtp-ans-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 11px;
}

qdnapro-translation-modal {
  display: contents;
}

.qtm {
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
}
.qtm * {
  box-sizing: border-box;
}

.qtm-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.qtm-source {
  min-width: 0;
  flex: 1;
}

.qtm-field-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--c-purple-500);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  margin-bottom: 6px;
}

.qtm-source-row {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.qtm-source-text {
  min-width: 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--c-purple-700);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qtm-source-empty {
  color: var(--c-text-disabled-pp);
  font-weight: 500;
}

.qtm-pill {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 3px 8px;
  border-radius: 5px;
  color: var(--c-purple-500);
  background: rgba(65, 73, 154, 0.12);
}
.qtm-pill--source {
  color: var(--c-text-on-action);
  background: var(--c-purple-500);
}

.qtm-at-btn {
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
}
.qtm-at-btn::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 55%;
  background: linear-gradient(120deg, transparent 0%, rgba(65, 73, 154, 0.13) 50%, transparent 100%);
  transform: translateX(-200%);
  animation: qtm-shimmer 3.4s ease-in-out infinite;
  pointer-events: none;
}
.qtm-at-btn[disabled]::after {
  animation: none;
}

@keyframes qtm-shimmer {
  0% {
    transform: translateX(-200%);
  }
  30% {
    transform: translateX(220%);
  }
  100% {
    transform: translateX(220%);
  }
}
.qtm-at-icon {
  display: inline-block;
}

.qtm-at-icon--spin {
  animation: qtm-rotate 0.8s linear infinite;
}

@keyframes qtm-rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.qtm-at-bar-host:not(:empty) {
  margin-bottom: 12px;
}

.qtm-at-bar {
  padding: 10px 12px;
  border: 1px solid rgba(216, 219, 237, 0.8);
  border-radius: 8px;
  font-size: 12px;
  color: var(--c-purple-500);
  background: rgba(65, 73, 154, 0.04);
}
.qtm-at-bar--done {
  background: rgba(34, 140, 90, 0.1);
  border-color: rgba(34, 140, 90, 0.2);
  color: var(--c-tag-new-text);
  display: flex;
  align-items: center;
  gap: 6px;
}
.qtm-at-bar--error {
  background: rgba(196, 54, 42, 0.1);
  border-color: rgba(196, 54, 42, 0.2);
  color: var(--c-tag-critical-text);
  display: flex;
  align-items: center;
  gap: 6px;
}

.qtm-at-bar-question {
  display: block;
  margin-bottom: 8px;
  font-weight: 500;
}

.qtm-at-bar-btns {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  align-items: center;
}

.qtm-fields {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.qtm-empty {
  padding: 22px 16px;
  text-align: center;
  color: var(--c-text-disabled-pp);
  font-size: 13px;
}

.qtm-field-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
}
.qtm-field-row .qtm-pill {
  flex-shrink: 0;
  min-width: 38px;
  justify-content: center;
}

.qtm-field {
  flex: 1;
  min-width: 0;
}

.qtm-field--missing .input-field {
  border-color: var(--c-warn-yellow-600) !important;
  background: var(--c-bg-card) !important;
}

.qdnapro-tree-item {
  display: flex;
  align-items: center;
  gap: 8px;
  box-sizing: border-box;
  border-radius: 8px;
  cursor: pointer;
  user-select: none;
  overflow: hidden;
  font-family: "Inter", sans-serif;
  color: var(--c-grey-950);
  background: transparent;
  border: 0.5px solid transparent;
  transition: background-color 120ms, color 120ms;
}

.qdnapro-tree-item:focus {
  outline: none;
}

.qdnapro-tree-item:focus-visible, .qdnapro-tree-item.force-focus {
  outline: 2px solid var(--c-purple-500);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.25);
}

.qdnapro-tree-item > .tree-item-chevron-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  cursor: pointer;
  flex-shrink: 0;
}

.qdnapro-tree-item > .tree-item-chevron-btn > .tree-item-chevron-icon {
  transition: transform 160ms ease;
  transform: rotate(-90deg);
}

.qdnapro-tree-item > .tree-item-chevron-btn:hover {
  background: rgba(0, 0, 0, 0.04);
}

.qdnapro-tree-item > .tree-item-chevron-btn:active {
  background: rgba(0, 0, 0, 0.08);
}

.qdnapro-tree-item > .tree-item-chevron-btn:focus {
  outline: none;
}

.qdnapro-tree-item > .tree-item-chevron-btn:focus-visible, .qdnapro-tree-item > .tree-item-chevron-btn.force-focus {
  outline: 2px solid var(--c-purple-500);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.25);
}

.qdnapro-tree-item > .tree-item-icon {
  flex-shrink: 0;
}

.qdnapro-tree-item > .tree-item-label {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-tree-item > .tree-item-badge {
  flex-shrink: 0;
}

.qdnapro-tree-item.tree-item-expanded > .tree-item-chevron-btn > .tree-item-chevron-icon {
  transform: rotate(0deg);
}

.qdnapro-tree-item.tree-item-large {
  min-height: 40px;
  padding: 8px 12px;
  font-size: 14px;
  line-height: 24px;
  font-weight: 400;
}

.qdnapro-tree-item.tree-item-large > .tree-item-chevron-btn {
  width: 24px;
  height: 24px;
}

.qdnapro-tree-item.tree-item-large.tree-item-type-subfolder {
  padding-left: 24px;
  padding-right: 8px;
}

.qdnapro-tree-item.tree-item-large.tree-item-type-subfolder.tree-item-active {
  padding-left: 48px;
}

.qdnapro-tree-item.tree-item-small {
  min-height: 32px;
  padding: 4px 8px;
  font-size: 12px;
  line-height: 20px;
  font-weight: 400;
  gap: 8px;
}

.qdnapro-tree-item.tree-item-small > .tree-item-chevron-btn {
  width: 16px;
  height: 16px;
}

.qdnapro-tree-item.tree-item-small.tree-item-type-subfolder {
  padding-left: 24px;
  padding-right: 8px;
}

.qdnapro-tree-item.tree-item-small.tree-item-type-subfolder.tree-item-active {
  padding-left: 48px;
}

.qdnapro-tree-item.tree-item-type-subfolder:not(.tree-item-active):not(.tree-item-disabled) {
  color: var(--c-grey-500);
}

.qdnapro-tree-item.tree-item-type-chevron:not(.tree-item-active):not(.tree-item-disabled) > .tree-item-label {
  font-weight: 700;
}

.qdnapro-tree-item:not(.tree-item-active):not(.tree-item-disabled):hover {
  background: var(--c-grey-50);
}

.qdnapro-tree-item:not(.tree-item-active):not(.tree-item-disabled):active {
  background: var(--c-border-card);
}

.qdnapro-tree-item.tree-item-active {
  background: #e6e9ff;
  color: var(--c-purple-500);
}

.qdnapro-tree-item.tree-item-active > .tree-item-label {
  font-weight: 700;
}

.qdnapro-tree-item.tree-item-active:hover {
  background: var(--c-border-tree-bright);
}

.qdnapro-tree-item.tree-item-active:active {
  background: var(--c-sidebar-icon);
}

.qdnapro-tree-item.tree-item-disabled, .qdnapro-tree-item.tree-item-disabled:hover {
  color: var(--c-text-disabled);
  background: transparent;
  cursor: not-allowed;
  pointer-events: none;
}

[data-theme=dark] .qdnapro-tree-item {
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-tree-item > .tree-item-icon,
[data-theme=dark] .qdnapro-tree-item > .tree-item-chevron-btn > .tree-item-chevron-icon {
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-tree-item > .tree-item-badge {
  color: #a6aab3;
  background: transparent;
}

[data-theme=dark] .qdnapro-tree-item:not(.tree-item-active):not(.tree-item-disabled):hover {
  background: #565b66;
}

[data-theme=dark] .qdnapro-tree-item.tree-item-active {
  background: #4652f3;
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-tree-item.tree-item-active:hover {
  background: #3842c2;
}

[data-theme=dark] .qdnapro-tree-item.tree-item-active > .tree-item-icon,
[data-theme=dark] .qdnapro-tree-item.tree-item-active > .tree-item-badge,
[data-theme=dark] .qdnapro-tree-item.tree-item-active > .tree-item-chevron-btn > .tree-item-chevron-icon {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-tree-item.tree-item-disabled, [data-theme=dark] .qdnapro-tree-item.tree-item-disabled:hover {
  color: #6b7280;
}

[data-theme=dark] .qdnapro-tree-item.tree-item-disabled > .tree-item-icon,
[data-theme=dark] .qdnapro-tree-item.tree-item-disabled > .tree-item-badge,
[data-theme=dark] .qdnapro-tree-item.tree-item-disabled > .tree-item-chevron-btn > .tree-item-chevron-icon, [data-theme=dark] .qdnapro-tree-item.tree-item-disabled:hover > .tree-item-icon,
[data-theme=dark] .qdnapro-tree-item.tree-item-disabled:hover > .tree-item-badge,
[data-theme=dark] .qdnapro-tree-item.tree-item-disabled:hover > .tree-item-chevron-btn > .tree-item-chevron-icon {
  color: #6b7280;
}

[data-theme=dark] .qdnapro-tree-item:focus-visible, [data-theme=dark] .qdnapro-tree-item.force-focus {
  outline-color: #a5acff;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.4);
}

.qdnapro-unit-input-row {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  box-sizing: border-box;
  padding: 8px 12px;
  border: 1.5px solid transparent;
  border-bottom: 1px solid var(--c-border-soft);
  border-radius: var(--r-row);
  font-family: var(--theme-font-family, "Inter", sans-serif);
  transition: border-color 0.2s, background 0.2s;
}

.qdnapro-unit-input-row.uir-borderless {
  border-bottom: none;
}

/* Error = soft red background; no coloured border. */
.qdnapro-unit-input-row.uir-error {
  background: var(--c-signal-red-soft);
}

.qdnapro-unit-input-row .uir-error-msg {
  font-size: 12px;
  color: var(--c-tag-critical-text);
  margin-top: 3px;
}

.qdnapro-unit-input-row .uir-main {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 0;
  cursor: pointer;
  border-radius: var(--r-3); /* 12px — the pressed-zone radius Kim picked */
  padding: 4px;
  margin: -4px;
  transform-origin: left center;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.12s ease, transform 0.1s ease;
}

/* Pressed state (added via JS pointerdown — reliable on touch): purple-tinted
   highlight over image + name + EAN, plus a small squash. */
.qdnapro-unit-input-row .uir-main.is-pressed {
  background: var(--c-purple-soft-12);
  transform: scale(0.98);
}

.qdnapro-unit-input-row .uir-image {
  position: relative;
  flex-shrink: 0;
}

.qdnapro-unit-input-row.uir-no-image .uir-image {
  width: 0;
  overflow: visible;
}

.qdnapro-unit-input-row .uir-image img {
  width: 48px;
  height: 48px;
  object-fit: cover;
  border-radius: var(--r-btn);
  display: block;
}

.qdnapro-unit-input-row .uir-image-empty {
  width: 48px;
  height: 48px;
  border-radius: var(--r-btn);
  background: var(--c-black-06);
}

.qdnapro-unit-input-row .uir-status-circle {
  position: absolute;
  bottom: -6px;
  left: -6px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--c-text-on-action);
  flex-shrink: 0;
  pointer-events: none;
  opacity: 0;
  transform: scale(0.4);
  z-index: 2;
  border: 2px solid var(--c-bg-card, #fff);
}

.qdnapro-unit-input-row.uir-filled .uir-status-circle {
  background: var(--c-success-bright, #1db87a);
  opacity: 1;
  transform: scale(1);
  animation: uir-badge-pop 0.52s cubic-bezier(0.34, 1.56, 0.5, 1);
}

.qdnapro-unit-input-row.uir-error .uir-status-circle {
  background: var(--c-tag-critical-text, #c0392b);
  opacity: 1;
  transform: scale(1);
  animation: uir-badge-pop 0.52s cubic-bezier(0.34, 1.56, 0.5, 1);
}

.qdnapro-unit-input-row .uir-check-path {
  stroke-dasharray: 23;
  stroke-dashoffset: 23;
}

.qdnapro-unit-input-row.uir-filled .uir-check-path {
  animation: uir-draw 0.38s cubic-bezier(0.22, 1, 0.36, 1) 0.04s forwards;
}

@keyframes uir-badge-pop {
  0% {
    transform: scale(0.7) rotate(0deg);
  }
  20% {
    transform: scale(1.22) rotate(-5deg);
  }
  44% {
    transform: scale(0.9) rotate(3deg);
  }
  64% {
    transform: scale(1.08) rotate(-1deg);
  }
  80% {
    transform: scale(0.97) rotate(0deg);
  }
  100% {
    transform: scale(1) rotate(0deg);
  }
}
@keyframes uir-draw {
  0% {
    stroke-dashoffset: 23;
  }
  62% {
    stroke-dashoffset: -1;
  }
  80% {
    stroke-dashoffset: 0.7;
  }
  100% {
    stroke-dashoffset: 0;
  }
}
.qdnapro-unit-input-row .uir-text {
  flex: 1;
  min-width: 0;
}

.qdnapro-unit-input-row .uir-name {
  font-size: 16px;
  font-weight: 400;
  color: var(--theme-field-text-color, #1d1d1b);
  line-height: 1.5em;
  max-height: 1.5em;
  overflow: hidden;
  white-space: normal;
  word-break: break-word;
  transition: max-height 0.26s cubic-bezier(0.22, 1, 0.36, 1);
}

.qdnapro-unit-input-row .uir-name.is-clamped {
  white-space: nowrap;
  text-overflow: ellipsis;
}

.qdnapro-unit-input-row.uir-no-meta .uir-name {
  max-height: 3em;
}

.qdnapro-unit-input-row.uir-no-meta .uir-name.is-clamped {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  text-overflow: ellipsis;
  white-space: normal;
}

.qdnapro-unit-input-row.uir-filled .uir-name {
  color: var(--theme-description-color, #6b6b6b);
}

.qdnapro-unit-input-row .uir-meta {
  font-size: 12px;
  color: var(--theme-description-color, #8a8a8a);
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-unit-input-row .uir-meta[hidden] {
  display: none;
}

.qdnapro-unit-input-row .uir-input {
  flex-shrink: 0;
  flex-grow: 1;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.qdnapro-unit-input-row .uir-input qdnapro-input {
  width: 96px;
}

/* With ± counter buttons (spinner) the field needs room for − field + . The ± touch
   buttons (~44px each) + a decimal value clipped at 138px; widened so "0,00" / counts
   stay visible. Not viewport-gated: the clip is field-vs-content, present everywhere. */
.qdnapro-unit-input-row .uir-input qdnapro-input[spinner] {
  width: 180px;
}

/* Drop the in-field state icon (the red "!" alert-circle) inside the per-unit row. The error is
   already signalled by the red row border, the red ✗ on the image, and the "Still to fill" line —
   the extra "!" only eats width, which hurts most on the narrow number/date/decimal fields.
   Scoped to this row only (not qdnapro-input elsewhere). 5 classes + element (51) beats the
   component's own .input-state-icon display rule (40) without !important. */
.qdnapro-unit-input-row .uir-input qdnapro-input .input-field .input-trailing .input-state-icon {
  display: none;
}

/* Narrow screens (phone) + per-unit ONLY: drop the in-field clear (×) button. In the
   compact "input for every unit" rows the × eats the width the value needs — it clips
   "€ 2,00" / "0,000" on decimal + currency. On phone that space is too precious; on
   tablet/desktop there's room, so the × stays there. Select-all + retype still clears.
   Scoped to .qdnapro-unit-input-row so single full-width fields keep their ×. [Kim 2026-07-01] */
@media (max-width: 767px) {
  .qdnapro-unit-input-row .uir-input qdnapro-input .input-field .input-trailing qdnapro-icon-btn[icon=close] {
    display: none;
  }
  /* Currency still needs a bit more room for the € prefix + value (even without the ×). */
  .qdnapro-unit-input-row[input-type=currency] .uir-input qdnapro-input {
    width: 130px;
  }
  /* Date: the native picker (dd/mm/yyyy + calendar icon) has a wide intrinsic min
     (~200px). At the 96px default it overflowed off-screen. Widen so it fits; the name
     column yields (Kim's pick — option 1). Time is narrower but also clipped at 96px. */
  .qdnapro-unit-input-row[input-type=date] .uir-input qdnapro-input {
    width: 200px;
  }
  .qdnapro-unit-input-row[input-type=time] .uir-input qdnapro-input {
    width: 120px;
  }
}
/* Per-unit message channel: the field's OWN validation message stays hidden — the per-unit error
   is carried by the row instead ("Still to fill" under the name, set by advanced_input.js). The
   long required message ("You have to fill out all required form fields.") would otherwise run off
   a narrow phone field. Auto-scoped to per-unit because only the per-unit screen wraps the input in
   .qdnapro-unit-input-row; the single full-width field (not-per-unit) is unwrapped and keeps the
   fuller message. Covers both blur and submit paths in one rule. The constraints hint (a separate
   line below the field) is NOT .input-message, so min/max/range hints still show. */
.qdnapro-unit-input-row .uir-input qdnapro-input .input-message {
  display: none;
}

.qdnapro-unit-input-row .uir-scan {
  flex-shrink: 0;
  background: color-mix(in srgb, var(--theme-btn-color, #40499a) 12%, #fff);
  color: var(--theme-btn-color, #40499a);
}

.qdnapro-unit-input-row .uir-scan qdnapro-icon {
  color: var(--theme-btn-color, #40499a);
}

.qdnapro-unit-input-row.uir-layout-stacked {
  flex-wrap: wrap;
}

.qdnapro-unit-input-row.uir-layout-stacked .uir-main {
  width: 100%;
}

.qdnapro-unit-input-row.uir-layout-stacked .uir-input {
  width: 100%;
  margin-top: 6px;
}

.qdnapro-unit-input-row.uir-layout-stacked .uir-input qdnapro-input {
  flex: 1;
  width: auto;
}

.qdnapro-unit-input-row[input-type=text]:not(.uir-layout-stacked) .uir-main,
.qdnapro-unit-input-row[input-type=expanding]:not(.uir-layout-stacked) .uir-main {
  flex: 4 1 0;
}

.qdnapro-unit-input-row[input-type=text]:not(.uir-layout-stacked) .uir-input,
.qdnapro-unit-input-row[input-type=expanding]:not(.uir-layout-stacked) .uir-input {
  flex: 6 1 0;
  min-width: 0;
  max-width: 564px;
}

.qdnapro-unit-input-row[input-type=text]:not(.uir-layout-stacked) .uir-input qdnapro-input,
.qdnapro-unit-input-row[input-type=expanding]:not(.uir-layout-stacked) .uir-input qdnapro-input {
  flex: 1;
  width: auto;
  min-width: 0;
}

@media (min-width: 768px) {
  .qdnapro-unit-input-row[input-type=number] .uir-input qdnapro-input,
  .qdnapro-unit-input-row[input-type=currency] .uir-input qdnapro-input {
    width: 160px;
  }
  .qdnapro-unit-input-row[input-type=date] .uir-input qdnapro-input {
    width: 170px;
  }
  .qdnapro-unit-input-row[input-type=time] .uir-input qdnapro-input {
    width: 130px;
  }
}
.qdnapro-unit-input-row[input-type=number]:not(.uir-layout-stacked) .uir-input,
.qdnapro-unit-input-row[input-type=currency]:not(.uir-layout-stacked) .uir-input,
.qdnapro-unit-input-row[input-type=date]:not(.uir-layout-stacked) .uir-input,
.qdnapro-unit-input-row[input-type=time]:not(.uir-layout-stacked) .uir-input,
.qdnapro-unit-input-row[input-type=photo]:not(.uir-layout-stacked) .uir-input {
  flex-grow: 0;
}

@media (min-width: 768px) {
  .qdnapro-unit-input-row {
    border: 1px solid var(--c-border-card);
    border-radius: var(--r-row);
    margin-bottom: 8px;
  }
  .qdnapro-unit-input-row.uir-borderless {
    border: 1.5px solid transparent;
    border-bottom: none;
    border-radius: var(--r-row);
    margin-bottom: 0;
  }
}
.qdnapro-update-row {
  --uir-bg-hover: var(--c-bg-subtle-hover, #f0f1f2);
  --uir-bg-pressed: var(--c-purple-soft-12, rgba(64, 73, 154, 0.12));
  --uir-title-color: var(--c-text-heading, #1a1f4d);
  --uir-muted-color: var(--c-text-muted, #6e7280);
  --uir-dot-color: var(--c-action-500, #4652f3);
  --uir-focus-ring: var(--c-action-500, #4652f3);
  --uir-focus-glow: rgba(70, 82, 243, 0.25);
  --uir-badge-warm-bg: #e8705f;
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  box-sizing: border-box;
  width: 100%;
  padding: 10px 16px;
  background: transparent;
  border: 0 solid transparent;
  border-radius: 10px;
  color: var(--uir-title-color);
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  font-family: inherit;
  text-align: left;
  transition: background-color 100ms ease-out;
}
.qdnapro-update-row:hover {
  background: var(--uir-bg-hover);
}
.qdnapro-update-row.is-pressed {
  background: var(--uir-bg-pressed);
}
.qdnapro-update-row:focus {
  outline: none;
}
.qdnapro-update-row:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 2px var(--uir-focus-ring), inset 0 0 0 5px var(--uir-focus-glow);
}

.uir-avatar {
  position: relative;
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
}

.uir-avatar-img {
  display: block;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: cover;
  pointer-events: none;
}

.uir-avatar-el {
  flex-shrink: 0;
}

.uir-badge {
  position: absolute;
  right: -2px;
  bottom: -2px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 2px solid var(--c-bg-card, #ffffff);
  color: #ffffff;
}

.uir-badge-action {
  background: var(--c-action-500, #4652f3);
}

.uir-badge-warm {
  background: var(--uir-badge-warm-bg, #e8705f);
}

.uir-badge-icon {
  width: 12px;
  height: 12px;
}

.uir-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-width: 0;
  gap: 2px;
}

.uir-title {
  font-size: 15px;
  font-weight: 500;
  line-height: 1.3;
  color: var(--uir-title-color);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-update-row.uir-unread {
  background: var(--c-action-08, rgba(70, 82, 243, 0.08));
}

.qdnapro-update-row.uir-unread .uir-title {
  font-weight: 600;
}

.uir-preview {
  font-size: 13px;
  font-weight: 400;
  line-height: 1.35;
  color: var(--uir-muted-color);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.uir-meta {
  font-size: 12px;
  font-weight: 400;
  line-height: 1.3;
  color: var(--uir-muted-color);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.uir-dot {
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--uir-dot-color);
}

.qdnapro-wizard-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: var(--overlay-z);
  /* Geen ingebakken zoom, en dat is sinds 2026-08-03 de regel voor ELK venster: `qdnapro-modal` had
     er een van 1.25 voor de legacy `body { zoom: 0.8 }`, en die is weggehaald omdat die body-zoom een
     v1-pagina niet meer bereikt (zie de uitleg in `components/v2/modal/_modal.scss`). Zet hier dus ook
     geen counter-zoom terug; komt zo'n pagina er ooit weer, dan hoort de correctie bij die PAGINA. */
}

.qdnapro-wizard-modal.wm-open {
  display: flex;
}

/* Het grijze frame zelf is .qos-dialog; hier alleen de breedte die per stap
   animeert. Dat is het enige wat een wizard anders doet dan een modal. */
.wm-dialog {
  width: 480px;
  max-width: calc(100vw - 48px);
  transition: width 0.38s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Step viewport (inside the 8px grey padding). Steps stack + slide here. */
.wm-steps {
  position: relative;
  /* .qos-dialog is een flexcontainer (net als bij qdnapro-modal, waar
     .modal-window de flexchild is), dus dit moet expliciet de ruimte pakken.
     Zonder deze twee regels klapt het stapvenster in tot 1px breed: de stappen
     zelf staan absoluut, dus er is geen inhoud die breedte geeft. Het oude
     .wm-dialog was een blok, waardoor dit gratis goed ging. */
  flex: 1 1 auto;
  min-width: 0;
  height: var(--wm-height, 540px);
  max-height: calc(100vh - 64px);
  overflow: hidden;
}

/* AUTO-HEIGHT hosts (opt-in attribute, 20.07.2026): the component writes the
   active step's measured natural height as an inline style; this transition
   makes step changes glide on the SAME curve as the width. Gated on the
   attribute so fixed-height hosts (Master Picker) never animate height. */
.qdnapro-wizard-modal[auto-height] .wm-steps {
  transition: height 0.38s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Elke stap IS het witte venster: zelfde kleur/rand/radius als .qos-window en
   als qdnapro-modal, uit de overlay-tokens. */
.qdnapro-wizard-step {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  background: var(--overlay-window-bg);
  border: 0.5px solid var(--overlay-window-border);
  border-radius: var(--overlay-window-radius);
  overflow: hidden;
  transition: transform 0.36s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.28s ease;
}

.qdnapro-wizard-step.wm-active {
  transform: none;
  opacity: 1;
}

.qdnapro-wizard-step.wm-off-left {
  transform: translateX(-70px);
  opacity: 0;
  pointer-events: none;
}

.qdnapro-wizard-step.wm-off-right {
  transform: translateX(70px);
  opacity: 0;
  pointer-events: none;
}

/* Optional centered segment / tab bar under the header (like qdnapro-modal's
   tabs row, e.g. "Vragen | Tijdsinstellingen"). Drop a qdnapro-segment in a
   .wm-tabbar; omit the element when it's not needed (= hidden). [Kim 2026-06-15] */
.wm-tabbar {
  display: flex;
  justify-content: center;
  padding: 6px 16px 8px;
  flex-shrink: 0;
}

/* with-info step: transparent so the grey dialog frame shows on the left; a
   grey info panel + 8px gap + the white bordered main. Mirrors qdnapro-modal. */
.qdnapro-wizard-step.wm-with-info {
  flex-direction: row;
  gap: 8px;
  background: transparent;
  border: 0;
  border-radius: 0;
  overflow: visible;
}

.wm-info {
  flex: 0 0 260px;
  min-width: 0;
  align-self: stretch;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  overflow: hidden;
}

.wm-info-head {
  display: flex;
  align-items: center;
  gap: 8px;
}

.wm-info-head qdnapro-icon {
  color: var(--c-purple-500);
}

.wm-info-title {
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
  color: var(--c-purple-500);
}

.wm-info-text {
  font-size: 14px;
  line-height: 22px;
  color: var(--c-text-heading);
}

.wm-info-illustration {
  margin-top: auto;
  margin-left: -16px;
  margin-right: -16px;
  margin-bottom: -16px;
  align-self: stretch;
  pointer-events: none;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  /* Decorative illustration always at 60% opacity so it stays subtle behind
     the content, consistent across every modal. [Kim 2026-06-15] */
  opacity: 0.6;
}

.wm-info-illustration qdnapro-illustration,
.wm-info-illustration img,
.wm-info-illustration svg {
  display: block;
  max-width: 100%;
  height: auto;
}

/* The DMS folder-access role art is tall portrait; without a height cap it
   fills the whole info column. Cap it so it sits as a subtle bottom
   illustration like the landscape ones. Scoped to the role-* assets so the
   other picker consumers (teams/locations/KPIs) are untouched. [Kim 2026-07-21] */
.wm-info-illustration img[src*=role-] {
  width: auto;
  max-height: 300px;
  margin-left: auto;
  margin-right: auto;
}

.wm-main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  background: var(--overlay-window-bg);
  border: 0.5px solid var(--overlay-window-border);
  border-radius: var(--overlay-window-radius);
  overflow: hidden;
}

qdnapro-unit-type {
  display: contents;
}

.qdnapro-unit-type {
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: var(--c-bg-card);
  border-radius: 12px;
  overflow: hidden;
  cursor: pointer;
  font-weight: normal;
  text-decoration: none;
  justify-content: space-between;
  min-height: 120px;
}
.qdnapro-unit-type:hover {
  background-color: var(--c-bg-card-hover);
}

.qdnapro-unit-type *,
.qdnapro-unit-type *::before,
.qdnapro-unit-type *::after {
  box-sizing: border-box;
}

.utc-top {
  display: flex;
  flex-direction: row;
  gap: 16px;
  padding: 1.25rem 1.5rem 0.5rem;
  align-items: center;
}

.utc-icon {
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 44px;
  align-self: center;
}
.utc-icon img {
  width: 48px;
  height: 48px;
  border-radius: 0.5rem;
  object-fit: contain;
  display: block;
}

.utc-content {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.utc-heading {
  font-family: var(--Type-Font-Family-primary, Inter);
  font-size: var(--Font-size-Body-Inter-medium-14, 14px);
  font-weight: 600;
  line-height: var(--Line-Height-Body-Body-Medium-Caption, 24px);
  color: var(--Text-Body, #0b0b0d);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-decoration: none;
}

.utc-subheading {
  font-family: var(--Type-Font-Family-primary, Inter);
  font-size: var(--Font-size-Body-small-12, 12px);
  font-weight: 400;
  line-height: var(--Line-Height-Body-Body-Small, 20px);
  color: var(--Text-Body-Secondary, #6b7280);
  margin-top: 0;
  text-overflow: ellipsis;
}

.utc-footer {
  display: flex;
  flex-flow: row;
  width: 100%;
  padding: 0.5rem 1.5rem 0.75rem;
  box-sizing: border-box;
}
.utc-footer[hidden] {
  display: none;
}

.utc-pair {
  display: flex;
  gap: 4px;
  align-items: baseline;
  padding-right: 24px;
}

.utc-label,
.utc-value {
  font-family: var(--Type-Font-Family-primary, Inter);
  font-size: var(--Font-size-Body-small-12, 12px);
  font-weight: 400;
  line-height: var(--Line-Height-Body-Body-Small, 20px);
  color: var(--Surface-Signal-Signal-grey-Detail, #6b7280);
}

.qdnapro-date-carousel {
  --dc-active: var(--c-sidebar-bg);
  --dc-card-bg: #ffffff;
  --dc-border: rgba(58, 66, 144, 0.13);
  --dc-border-past: rgba(58, 66, 144, 0.07);
  --dc-name-idle: var(--c-text-disabled-pp);
  --dc-day-idle: var(--c-purple-400);
  --dc-name-past: var(--c-sidebar-icon);
  --dc-day-past: var(--c-purple-400);
  --dc-dot-idle: rgba(58, 66, 144, 0.22);
  --dc-title-color: var(--c-text-heading);
  --dc-month-color: var(--c-purple-400);
  display: block;
  cursor: grab;
  -webkit-user-select: none;
  user-select: none;
  border-bottom: 0.5px solid var(--dc-border);
  overflow-x: clip;
}

.qdnapro-date-carousel.is-dragging {
  cursor: grabbing;
}

.qdnapro-date-carousel__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 0 8px;
  min-height: 52px;
  max-height: 52px;
  overflow: hidden;
  transition: max-height 0.28s cubic-bezier(0.2, 0, 0, 1), min-height 0.28s cubic-bezier(0.2, 0, 0, 1), opacity 0.18s ease, transform 0.28s cubic-bezier(0.2, 0, 0, 1);
}

.qdnapro-date-carousel__header-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.qdnapro-date-carousel__header-title {
  font-size: 18px;
  font-weight: 500;
  color: var(--dc-title-color);
  line-height: 1.2;
}

.qdnapro-date-carousel__header-month {
  font-size: 13px;
  font-weight: 500;
  color: var(--dc-month-color);
  letter-spacing: 0.02em;
}

.qdnapro-date-carousel__vandaag-btn {
  flex-shrink: 0;
  align-self: flex-start;
  transform-origin: right center;
}

.qdnapro-date-carousel__vandaag-btn.is-popping-in {
  animation: qdnapro-dc-btn-in 0.38s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

.qdnapro-date-carousel__vandaag-btn.is-popping-out {
  animation: qdnapro-dc-btn-out 0.2s ease-in forwards;
}

.qdnapro-date-carousel__strip-wrap {
  clip-path: inset(-200px 0px -200px 0px);
  padding: 10px 0 8px;
  margin-top: -10px;
  -webkit-mask: linear-gradient(to right, transparent 0%, black 11%, black 89%, transparent 100%);
  mask: linear-gradient(to right, transparent 0%, black 11%, black 89%, transparent 100%);
  touch-action: pan-y;
}

.qdnapro-date-carousel__strip {
  display: flex;
  gap: 8px;
  will-change: transform;
}

.qdnapro-date-carousel__card {
  width: 56px;
  height: 72px;
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  -webkit-tap-highlight-color: transparent;
  box-sizing: border-box;
  transition: transform 0.15s ease, background-color 0.12s ease, border-color 0.12s ease, opacity 0.12s ease, width 0.28s cubic-bezier(0.2, 0, 0, 1), height 0.28s cubic-bezier(0.2, 0, 0, 1), border-radius 0.28s cubic-bezier(0.2, 0, 0, 1);
}

.qdnapro-date-carousel__card--idle {
  background: var(--dc-card-bg);
  border: 0.5px solid var(--dc-border);
}

.qdnapro-date-carousel__card--idle .qdnapro-date-carousel__card-name {
  color: var(--dc-name-idle);
}

.qdnapro-date-carousel__card--idle .qdnapro-date-carousel__card-day {
  color: var(--dc-day-idle);
}

.qdnapro-date-carousel__card--idle .qdnapro-date-carousel__card-dot {
  background: var(--dc-dot-idle);
}

.qdnapro-date-carousel__card--past {
  background: var(--dc-card-bg);
  border: 0.5px solid var(--dc-border-past);
  opacity: 0.48;
}

.qdnapro-date-carousel__card--past .qdnapro-date-carousel__card-name {
  color: var(--dc-name-past);
}

.qdnapro-date-carousel__card--past .qdnapro-date-carousel__card-day {
  color: var(--dc-day-past);
}

.qdnapro-date-carousel__card--past .qdnapro-date-carousel__card-dot {
  background: var(--dc-dot-idle);
}

.qdnapro-date-carousel__card--active {
  background: var(--dc-active);
  border: none;
}

.qdnapro-date-carousel__card--active .qdnapro-date-carousel__card-name {
  color: rgba(255, 255, 255, 0.6);
}

.qdnapro-date-carousel__card--active .qdnapro-date-carousel__card-day {
  color: var(--c-text-on-action);
}

.qdnapro-date-carousel__card--active .qdnapro-date-carousel__card-dot {
  background: rgba(255, 255, 255, 0.5);
}

.qdnapro-date-carousel__card-name {
  font-size: 12px;
  line-height: 1;
  margin-bottom: 4px;
  font-weight: 400;
  transition: color 0.12s ease, font-size 0.28s cubic-bezier(0.2, 0, 0, 1), margin-bottom 0.28s cubic-bezier(0.2, 0, 0, 1);
}

.qdnapro-date-carousel__card-day {
  font-size: 23px;
  line-height: 1;
  font-weight: 500;
  transition: color 0.12s ease, font-size 0.28s cubic-bezier(0.2, 0, 0, 1);
}

.qdnapro-date-carousel__card-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  margin-top: 5px;
}

.qdnapro-date-carousel .drag-mode .qdnapro-date-carousel__card--active:not(.is-growing) {
  transform: scale(1.1);
  transition: transform 0.18s ease;
}

.qdnapro-date-carousel__card.is-pressing {
  transform: scale(0.86);
  transition: transform 0.09s ease-in;
}

.qdnapro-date-carousel[compact] .qdnapro-date-carousel__header {
  max-height: 0;
  min-height: 0;
  opacity: 0;
  transform: translateY(-4px);
  pointer-events: none;
}

.qdnapro-date-carousel[compact] .qdnapro-date-carousel__card {
  width: 38px;
  height: 44px;
  border-radius: 10px;
}

.qdnapro-date-carousel[compact] .qdnapro-date-carousel__card-name {
  font-size: 9px;
  margin-bottom: 2px;
}

.qdnapro-date-carousel[compact] .qdnapro-date-carousel__card-day {
  font-size: 15px;
}

.qdnapro-date-carousel[compact] .qdnapro-date-carousel__card-dot {
  width: 3px;
  height: 3px;
  margin-top: 2px;
}

.qdnapro-date-carousel[compact] .qdnapro-date-carousel__strip-wrap {
  padding: 6px 0;
  margin-top: -6px;
}

@keyframes qdnapro-dc-grow {
  0% {
    transform: scale(1);
  }
  55% {
    transform: scale(1.18);
  }
  100% {
    transform: scale(1.1);
  }
}
@keyframes qdnapro-dc-pop {
  0% {
    transform: scale(0.86);
  }
  50% {
    transform: scale(1.12);
  }
  72% {
    transform: scale(0.96);
  }
  87% {
    transform: scale(1.03);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes qdnapro-dc-confirm {
  0% {
    transform: scale(1.1);
  }
  45% {
    transform: scale(1.15);
  }
  70% {
    transform: scale(0.97);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes qdnapro-dc-wiggle {
  0% {
    transform: scale(1) rotate(0deg);
  }
  25% {
    transform: scale(0.93) rotate(-3deg);
  }
  60% {
    transform: scale(1.04) rotate(2.5deg);
  }
  80% {
    transform: scale(0.98) rotate(-1deg);
  }
  100% {
    transform: scale(1) rotate(0deg);
  }
}
.qdnapro-date-carousel__card.is-growing {
  animation: qdnapro-dc-grow 0.32s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
  transition: none;
}

.qdnapro-date-carousel__card.is-popping {
  animation: qdnapro-dc-pop 0.48s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
  transition: none;
}

.qdnapro-date-carousel__card.is-confirming {
  animation: qdnapro-dc-confirm 0.42s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
  transition: none;
}

.qdnapro-date-carousel__card.is-wiggle {
  animation: qdnapro-dc-wiggle 0.36s ease forwards;
  transition: none;
}

@keyframes qdnapro-dc-btn-in {
  0% {
    transform: scale(0.4);
    opacity: 0;
  }
  65% {
    transform: scale(1.1);
    opacity: 1;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
@keyframes qdnapro-dc-btn-out {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  35% {
    transform: scale(1.08);
    opacity: 1;
  }
  100% {
    transform: scale(0.4);
    opacity: 0;
  }
}
.qdnapro-unit-card {
  display: flex;
  position: relative;
  overflow: visible;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
  font-family: "Inter", system-ui, -apple-system, sans-serif;
  transition: transform 170ms cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 120ms ease;
}

.qdnapro-unit-card__frame {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  position: relative;
  box-sizing: border-box;
  border: 1.5px solid var(--c-border-soft-2);
  border-radius: var(--r-2);
  background: var(--c-bg-card);
  overflow: hidden;
  transition: border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
}

.qdnapro-unit-card.is-pressing {
  transform: scale(0.95);
  transition: transform 70ms ease-out;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-unit-card,
  .qdnapro-unit-card.is-pressing {
    transition: none;
    transform: none;
  }
}
.qdnapro-unit-card.view-grid-compact .qdnapro-unit-card__frame,
.qdnapro-unit-card.view-grid-standard .qdnapro-unit-card__frame {
  flex-direction: column;
}

.qdnapro-unit-card.view-grid-compact .qdnapro-unit-card__name,
.qdnapro-unit-card.view-grid-standard .qdnapro-unit-card__name {
  flex: 1 0 auto;
  padding: 8px 6px 6px;
  font-size: 14px;
  line-height: 1.3;
  font-weight: 400;
  color: var(--c-text-heading);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  white-space: normal;
  overflow: hidden;
}

.qdnapro-unit-card.view-grid-compact .qdnapro-unit-card__image-wrap,
.qdnapro-unit-card.view-grid-standard .qdnapro-unit-card__image-wrap {
  width: 100%;
  aspect-ratio: 1/1;
  flex-shrink: 0;
}

.qdnapro-unit-card.view-grid-compact .qdnapro-unit-card__check-badge,
.qdnapro-unit-card.view-grid-standard .qdnapro-unit-card__check-badge {
  position: absolute;
  bottom: 6px;
  right: 6px;
}

.qdnapro-unit-card.view-grid-standard .qdnapro-unit-card__name {
  font-size: 15px;
  padding: 9px 11px 7px;
}

.qdnapro-unit-card.view-grid-standard .qdnapro-unit-card__fallback-abbr {
  font-size: 24px;
}

.qdnapro-unit-card.view-grid-standard .qdnapro-unit-card__check-badge {
  bottom: 8px;
  right: 8px;
  width: 26px;
  height: 26px;
}

.qdnapro-unit-card.view-list-compact .qdnapro-unit-card__frame,
.qdnapro-unit-card.view-list-large .qdnapro-unit-card__frame {
  flex-direction: row;
  align-items: center;
}

.qdnapro-unit-card.view-list-compact .qdnapro-unit-card__image-wrap,
.qdnapro-unit-card.view-list-large .qdnapro-unit-card__image-wrap {
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  order: -1;
}

.qdnapro-unit-card.view-list-compact .qdnapro-unit-card__status-bar,
.qdnapro-unit-card.view-list-large .qdnapro-unit-card__status-bar {
  display: none;
}

.qdnapro-unit-card.view-list-compact .qdnapro-unit-card__name,
.qdnapro-unit-card.view-list-large .qdnapro-unit-card__name {
  flex: 1;
  padding: 0 12px;
  font-size: 14px;
  font-weight: 500;
  color: var(--c-text-heading);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.qdnapro-unit-card.view-list-compact .qdnapro-unit-card__check-badge,
.qdnapro-unit-card.view-list-large .qdnapro-unit-card__check-badge {
  position: static;
  margin-right: 10px;
  flex-shrink: 0;
}

.qdnapro-unit-card.view-list-large .qdnapro-unit-card__image-wrap {
  width: 64px;
  height: 64px;
}

.qdnapro-unit-card.view-list-large .qdnapro-unit-card__name {
  font-size: 14px;
  font-weight: 600;
}

.qdnapro-unit-card.view-list-large .qdnapro-unit-card__check-badge {
  margin-right: 14px;
  width: 26px;
  height: 26px;
}

.qdnapro-unit-card.flat.view-list-compact .qdnapro-unit-card__frame,
.qdnapro-unit-card.flat.view-list-large .qdnapro-unit-card__frame {
  border: 1.5px solid transparent;
  border-bottom: 1px solid var(--c-border-soft);
  border-radius: 0;
}

.qdnapro-unit-card__clear {
  display: none;
}

.qdnapro-unit-card.view-list-compact .qdnapro-unit-card__clear,
.qdnapro-unit-card.view-list-large .qdnapro-unit-card__clear {
  display: flex;
  flex-shrink: 0;
  margin-left: 4px;
}

.qdnapro-unit-card__image-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--c-bg-card-hover);
  overflow: hidden;
}

.qdnapro-unit-card__image {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.qdnapro-unit-card__fallback {
  width: 100%;
  height: 100%;
  min-height: 68px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--uc-fb-bg, #eef0fb);
}

.qdnapro-unit-card__fallback-abbr {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1;
  color: var(--uc-fb-fg, #4a52a0);
}

.qdnapro-unit-card__check-badge {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--c-brand-purple);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--c-text-on-action);
  flex-shrink: 0;
  pointer-events: none;
  opacity: 0;
  transform: scale(0.4);
  transition: opacity 150ms ease, transform 220ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

.qdnapro-unit-card__check-badge svg {
  display: block;
}

.qdnapro-unit-card__lp-ring {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: 2.5px solid var(--c-brand-purple);
  pointer-events: none;
  opacity: 0;
}

.qdnapro-unit-card__status-bar {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 7px 10px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--c-text-on-action);
  position: relative;
  z-index: 2;
  flex-shrink: 0;
}

.qdnapro-unit-card__status-icon {
  display: flex;
  flex-shrink: 0;
}

.qdnapro-unit-card__status-icon svg {
  display: block;
}

.qdnapro-unit-card__status-label {
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-unit-card.result-ok .qdnapro-unit-card__status-bar {
  background: #6bb6ab;
}

.qdnapro-unit-card.result-not-ok .qdnapro-unit-card__status-bar {
  background: var(--c-favorite-heart);
}

.qdnapro-unit-card.result-future-fix .qdnapro-unit-card__status-bar {
  background: var(--c-warn-yellow-600);
}

.qdnapro-unit-card.result-issue .qdnapro-unit-card__status-bar {
  background: var(--c-tag-handover-text);
}

.qdnapro-unit-card.has-result.view-grid-compact .qdnapro-unit-card__check-badge,
.qdnapro-unit-card.has-result.view-grid-standard .qdnapro-unit-card__check-badge {
  bottom: 36px;
}

.qdnapro-unit-card.is-selected .qdnapro-unit-card__frame {
  background: var(--c-bg-subtle-purple);
  box-shadow: 0 0 0 3px var(--focus-glow);
}

.qdnapro-unit-card.is-selected .qdnapro-unit-card__frame::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(26, 31, 77, 0.32);
  pointer-events: none;
  z-index: 1;
}

.qdnapro-unit-card.is-selected .qdnapro-unit-card__check-badge {
  opacity: 1;
  transform: scale(1);
  z-index: 2;
  animation: uc-badge-pop 0.52s cubic-bezier(0.34, 1.56, 0.5, 1);
}

.qdnapro-unit-card__check-path {
  stroke-dasharray: 23;
  stroke-dashoffset: 23;
  transition: stroke-dashoffset 0.15s ease;
}

.qdnapro-unit-card.is-selected .qdnapro-unit-card__check-path {
  animation: uc-draw 0.38s cubic-bezier(0.22, 1, 0.36, 1) 0.04s forwards;
}

@keyframes uc-badge-pop {
  0% {
    transform: scale(0.7) rotate(0deg);
  }
  20% {
    transform: scale(1.22) rotate(-5deg);
  }
  44% {
    transform: scale(0.9) rotate(3deg);
  }
  64% {
    transform: scale(1.08) rotate(-1deg);
  }
  80% {
    transform: scale(0.97) rotate(0deg);
  }
  100% {
    transform: scale(1) rotate(0deg);
  }
}
@keyframes uc-draw {
  0% {
    stroke-dashoffset: 23;
  }
  62% {
    stroke-dashoffset: -1;
  }
  80% {
    stroke-dashoffset: 0.7;
  }
  100% {
    stroke-dashoffset: 0;
  }
}
.qdnapro-unit-card.status-problem.view-list-compact .qdnapro-unit-card__frame,
.qdnapro-unit-card.status-problem.view-list-large .qdnapro-unit-card__frame {
  border-left-color: var(--c-favorite-heart);
  border-left-width: 3px;
}

.qdnapro-unit-card .qdnapro-unit-card__image-wrap {
  position: relative;
}

.qdnapro-unit-card .qdnapro-unit-card__mandatory-badge {
  position: absolute;
  top: -7px;
  right: -7px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--c-favorite-heart);
  border: 2px solid var(--c-bg-card);
  box-sizing: border-box;
  color: var(--c-text-on-action);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
  pointer-events: none;
  z-index: 4;
}

.qdnapro-unit-card .qdnapro-unit-card__mandatory-badge svg {
  width: 12px;
  height: 12px;
  display: block;
}

.qdnapro-unit-card.is-mandatory.view-grid-compact .qdnapro-unit-card__name,
.qdnapro-unit-card.is-mandatory.view-grid-standard .qdnapro-unit-card__name {
  padding-right: 14px;
}

.qdnapro-unit-card.view-list-compact .qdnapro-unit-card__mandatory-badge {
  width: 16px;
  height: 16px;
  top: -6px;
  right: -6px;
  border: 2px solid var(--c-bg-card);
  box-sizing: border-box;
}

.qdnapro-unit-card.view-list-compact .qdnapro-unit-card__mandatory-badge svg {
  width: 9px;
  height: 9px;
}

.qdnapro-unit-context {
  display: block;
}

.qdnapro-unit-context.is-empty {
  display: none;
}

.qdnapro-unit-context__bar {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  max-width: 200px;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 8px;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: background 120ms ease-out;
}

.qdnapro-unit-context__bar:hover {
  background: var(--c-grey-100);
}

.qdnapro-unit-context__bar:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--focus-glow);
  border-color: var(--focus-ring);
}

.qdnapro-unit-context__name {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 14px;
  font-weight: var(--fw-medium);
  color: var(--c-text-heading);
}

.qdnapro-unit-context__chevron {
  flex: none;
  display: inline-flex;
  align-items: center;
  color: var(--c-text-muted);
}

.qdnapro-unit-context__chevron svg {
  display: block;
}

.qdnapro-unit-context__overlay {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: flex;
}

.qdnapro-unit-context__overlay[hidden] {
  display: none;
}

.qdnapro-unit-context__backdrop {
  position: absolute;
  inset: 0;
  background: var(--c-black-30);
  opacity: 0;
  transition: opacity 240ms ease;
}

.qdnapro-unit-context__panel {
  position: relative;
  flex: 1;
  display: flex;
  flex-direction: column;
  background: var(--c-bg-card);
  clip-path: circle(0% at 100% 0%);
  transition: clip-path 340ms cubic-bezier(0.4, 0, 0.2, 1);
  will-change: clip-path;
}

.qdnapro-unit-context__overlay.is-open .qdnapro-unit-context__backdrop {
  opacity: 1;
}

.qdnapro-unit-context__overlay.is-open .qdnapro-unit-context__panel {
  clip-path: circle(150% at 100% 0%);
}

.qdnapro-unit-context__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--s-3);
  padding: 18px var(--s-4) var(--s-3);
}

.qdnapro-unit-context__heading-wrap {
  display: flex;
  align-items: center;
  gap: var(--s-2);
  flex-wrap: wrap;
}

.qdnapro-unit-context__title {
  font-size: 24px;
  font-weight: var(--fw-semi);
  color: var(--c-text-heading);
  line-height: 1.3;
}

.qdnapro-unit-context__subtitle {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border-radius: var(--r-pill);
  background: var(--c-bg-secondary-purple);
  font-size: 20px;
  font-weight: var(--fw-medium);
  color: var(--c-brand-purple);
}

.qdnapro-unit-context__subtitle.is-pulsing {
  animation: qdnapro-unit-context-count-pop 420ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes qdnapro-unit-context-count-pop {
  0% {
    transform: scale(1);
  }
  30% {
    transform: scale(1.18);
  }
  55% {
    transform: scale(0.94);
  }
  75% {
    transform: scale(1.05);
  }
  100% {
    transform: scale(1);
  }
}
.qdnapro-icon-btn.qdnapro-unit-context__close {
  flex: none;
  color: var(--c-text-muted);
}

.qdnapro-unit-context__hint {
  display: inline-flex;
  align-self: center;
  align-items: center;
  gap: 6px;
  margin: 0 var(--s-4) var(--s-2);
  padding: 4px 10px;
  border-radius: 6px;
  background: var(--c-bg-secondary-purple);
  color: var(--c-brand-purple);
  font-size: 14px;
  font-weight: var(--fw-medium);
  line-height: 1.3;
}

.qdnapro-unit-context__hint::before {
  content: "";
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  background-color: var(--c-brand-purple);
  -webkit-mask: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M11 9h2V7h-2m1 13c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-18A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m-1 15h2v-6h-2z'/%3E%3C/svg%3E");
  mask: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M11 9h2V7h-2m1 13c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-18A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m-1 15h2v-6h-2z'/%3E%3C/svg%3E");
}

.qdnapro-unit-context__search {
  padding: 0 var(--s-4) var(--s-3);
}

.qdnapro-unit-context__list {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 2px var(--s-3) var(--s-4);
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.qdnapro-unit-context__list[hidden] {
  display: none;
}

.qdnapro-unit-context__empty {
  flex: 1;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 40px var(--s-4);
  color: var(--c-text-muted);
  font-size: 13px;
}

.qdnapro-unit-context__empty[hidden] {
  display: none;
}

@media (min-width: 640px) {
  .qdnapro-unit-context__overlay {
    align-items: center;
    justify-content: center;
    padding: var(--s-6);
  }
  .qdnapro-unit-context__panel {
    flex: none;
    width: 480px;
    max-width: 100%;
    max-height: 80vh;
    border-radius: var(--r-card);
    box-shadow: var(--shadow-card);
    overflow: hidden;
  }
}
.qdnapro-summary-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--s-1);
  padding: 8px 16px;
  background: color-mix(in srgb, var(--theme-btn-color, #40499a) 10%, white);
  color: var(--theme-btn-color, #40499a);
  border-radius: var(--r-btn);
  font-family: "Inter", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
}

qdnapro-pwa-main-menu-item,
.qdnapro-pwa-main-menu-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
qdnapro-pwa-main-menu-item .pmi-circle,
.qdnapro-pwa-main-menu-item .pmi-circle {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 120ms ease-out;
}
qdnapro-pwa-main-menu-item .pmi-circle qdnapro-activity-icon,
.qdnapro-pwa-main-menu-item .pmi-circle qdnapro-activity-icon {
  width: 36px;
  height: 36px;
  display: block;
}
qdnapro-pwa-main-menu-item:hover .pmi-circle,
qdnapro-pwa-main-menu-item .pmi-circle.force-hover,
.qdnapro-pwa-main-menu-item:hover .pmi-circle,
.qdnapro-pwa-main-menu-item .pmi-circle.force-hover {
  background: rgba(255, 255, 255, 0.25);
}
qdnapro-pwa-main-menu-item .pmi-circle.is-pressed,
qdnapro-pwa-main-menu-item .pmi-circle.force-pressed,
.qdnapro-pwa-main-menu-item .pmi-circle.is-pressed,
.qdnapro-pwa-main-menu-item .pmi-circle.force-pressed {
  background: rgba(255, 255, 255, 0.35);
}
qdnapro-pwa-main-menu-item .pmi-label,
.qdnapro-pwa-main-menu-item .pmi-label {
  font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: var(--c-text-on-action);
  text-align: center;
  line-height: 1.3;
  max-width: 72px;
  word-break: break-word;
}

.qdnapro-bottom-nav {
  --bn-height: 60px;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 100;
  display: flex;
  align-items: stretch;
  height: calc(var(--bn-height) + var(--qdna-inset-bottom, env(safe-area-inset-bottom, 0px)));
  padding-bottom: var(--qdna-inset-bottom, env(safe-area-inset-bottom, 0px));
  background: var(--c-brand-purple);
  border-top: none;
  box-shadow: 0 -2px 16px rgba(20, 25, 80, 0.18);
  box-sizing: border-box;
}
.qdnapro-bottom-nav *, .qdnapro-bottom-nav *::before, .qdnapro-bottom-nav *::after {
  box-sizing: border-box;
}
.qdnapro-bottom-nav {
  transition: transform 0.3s cubic-bezier(0.2, 0, 0, 1), opacity 0.22s ease;
}

.qdnapro-bottom-nav.nav-hidden {
  transform: translateY(calc(100% + 24px));
  opacity: 0;
  pointer-events: none;
}

.qdnapro-bottom-nav-btn {
  flex: 1 1 0;
  min-width: 0;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 8px 4px;
  background: transparent;
  border: none;
  border-radius: 0;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  color: var(--c-white-65);
  font-family: "Inter", sans-serif;
  text-decoration: none;
  transition: color 120ms ease-out;
}
.qdnapro-bottom-nav-btn__icon {
  width: 48px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  position: relative;
  transition: background-color 120ms ease-out, transform 100ms cubic-bezier(0.34, 1.56, 0.64, 1);
}
.qdnapro-bottom-nav-btn__icon svg {
  width: 24px;
  height: 24px;
  fill: currentColor;
  stroke: none;
  pointer-events: none;
}
.qdnapro-bottom-nav-btn__svg-filled {
  display: none;
  position: absolute;
  width: 24px;
  height: 24px;
  fill: currentColor;
  stroke: none;
  pointer-events: none;
  clip-path: inset(0 100% 0 0);
}
.qdnapro-bottom-nav-btn__dot {
  position: absolute;
  bottom: 5px;
  left: 50%;
  transform: translateX(-50%);
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--c-text-on-action);
  opacity: 0;
  transition: opacity 150ms ease-out;
  pointer-events: none;
}
.qdnapro-bottom-nav-btn__label {
  display: none;
  font-size: 10px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.01em;
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.qdnapro-bottom-nav-btn [data-role=nav-badge] {
  position: absolute;
  top: 4px;
  right: calc(50% - 26px);
  z-index: 2;
  font-variant-numeric: tabular-nums;
  pointer-events: none;
}
.qdnapro-bottom-nav-btn [data-role=nav-dot] {
  position: absolute;
  top: 10px;
  right: calc(50% - 26px);
  z-index: 2;
  pointer-events: none;
}
.qdnapro-bottom-nav-btn.has-badge {
  z-index: 2;
}
@media (hover: hover) {
  .qdnapro-bottom-nav-btn:hover:not(.is-disabled):not(.is-fab) .qdnapro-bottom-nav-btn__icon {
    background: var(--c-white-12);
  }
}
.qdnapro-bottom-nav-btn:active:not(.is-disabled):not(.is-fab) .qdnapro-bottom-nav-btn__icon, .qdnapro-bottom-nav-btn.is-pressing:not(.is-disabled):not(.is-fab) .qdnapro-bottom-nav-btn__icon {
  background: var(--c-white-22);
  transform: scale(0.88);
}
.qdnapro-bottom-nav-btn.is-active {
  color: var(--c-text-on-action);
}
.qdnapro-bottom-nav-btn.is-active .qdnapro-bottom-nav-btn__icon {
  background: var(--c-white-22);
}
.qdnapro-bottom-nav-btn.is-active .qdnapro-bottom-nav-btn__dot {
  opacity: 1;
}
@media (hover: hover) {
  .qdnapro-bottom-nav-btn.is-active:hover:not(.is-disabled) .qdnapro-bottom-nav-btn__icon {
    background: var(--c-white-28);
  }
}
.qdnapro-bottom-nav-btn.is-active:active:not(.is-disabled) .qdnapro-bottom-nav-btn__icon, .qdnapro-bottom-nav-btn.is-active.is-pressing:not(.is-disabled) .qdnapro-bottom-nav-btn__icon {
  background: var(--c-white-22);
  transform: scale(0.88);
}
.qdnapro-bottom-nav-btn.is-disabled {
  color: var(--c-white-28);
  cursor: not-allowed;
  pointer-events: none;
  opacity: 0.45;
}
.qdnapro-bottom-nav-btn:focus {
  outline: none;
}
.qdnapro-bottom-nav-btn:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: -2px;
  border-radius: 4px;
}
.qdnapro-bottom-nav-btn.is-fab {
  overflow: visible;
}
.qdnapro-bottom-nav-btn.is-fab .qdnapro-bottom-nav-btn__icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--c-bg-card);
  color: var(--c-brand-purple);
  transform: translateY(-8px);
  box-shadow: 0 2px 8px rgba(20, 25, 80, 0.2), 0 6px 20px rgba(20, 25, 80, 0.14);
  transition: background-color 120ms ease-out, box-shadow 120ms ease-out, transform 150ms cubic-bezier(0.34, 1.56, 0.64, 1);
}
.qdnapro-bottom-nav-btn.is-fab .qdnapro-bottom-nav-btn__icon svg {
  stroke-width: 2;
}
@media (hover: hover) {
  .qdnapro-bottom-nav-btn.is-fab:hover:not(.is-disabled) .qdnapro-bottom-nav-btn__icon {
    background: var(--c-white-90);
    transform: translateY(-12px);
    box-shadow: 0 4px 14px rgba(20, 25, 80, 0.28), 0 8px 28px rgba(20, 25, 80, 0.18);
  }
}
.qdnapro-bottom-nav-btn.is-fab:active:not(.is-disabled) .qdnapro-bottom-nav-btn__icon, .qdnapro-bottom-nav-btn.is-fab.is-pressing:not(.is-disabled) .qdnapro-bottom-nav-btn__icon {
  background: var(--c-white-85);
  transform: translateY(-4px) scale(0.93);
  box-shadow: 0 1px 4px rgba(20, 25, 80, 0.14), 0 2px 8px rgba(20, 25, 80, 0.1);
}
.qdnapro-bottom-nav-btn.is-fab.is-active {
  color: var(--c-white-65);
}
.qdnapro-bottom-nav-btn.is-fab.is-active .qdnapro-bottom-nav-btn__icon {
  background: #ffffff;
  color: var(--c-brand-purple);
}
.qdnapro-bottom-nav-btn.is-fab.is-active .qdnapro-bottom-nav-btn__dot {
  display: none;
}
.qdnapro-bottom-nav-btn.is-fab:focus-visible {
  outline-offset: 4px;
  border-radius: 50%;
}

.qdnapro-bottom-nav[variant=sliding-pill] {
  position: relative;
  user-select: none;
  cursor: grab;
}
.qdnapro-bottom-nav[variant=sliding-pill]:active {
  cursor: grabbing;
}
.qdnapro-bottom-nav[variant=sliding-pill] .qdnapro-bottom-nav-btn .qdnapro-bottom-nav-btn__icon {
  background: transparent !important;
}
.qdnapro-bottom-nav[variant=sliding-pill] .qdnapro-bottom-nav-btn__dot {
  display: none;
}
.qdnapro-bottom-nav[variant=sliding-pill] .qdnapro-bottom-nav-btn.has-badge {
  z-index: 2;
}
.qdnapro-bottom-nav[variant=sliding-pill] qdnapro-bottom-nav-btn {
  position: relative;
  z-index: 0;
  cursor: inherit;
  color: var(--c-white-55) !important;
}
.qdnapro-bottom-nav[variant=sliding-pill] .qdnapro-bottom-nav__pill {
  position: absolute;
  top: calc((var(--bn-height) - 40px) / 2);
  left: 0;
  width: 48px;
  height: 40px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.05);
  backdrop-filter: brightness(1.5);
  -webkit-backdrop-filter: brightness(1.5);
  border: 0.5px solid rgba(255, 255, 255, 0.12);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 2px 6px rgba(0, 0, 0, 0.1);
  transform: translateX(0);
  transition: transform 420ms cubic-bezier(0.34, 1.56, 0.64, 1);
  pointer-events: none;
  z-index: 1;
}

.qdnapro-bottom-nav[variant=floating-glass],
.qdnapro-bottom-nav[variant=floating-solid] {
  left: 16px;
  right: 16px;
  bottom: calc(20px + var(--qdna-inset-bottom, 0px) - var(--qdna-inset-ime, 0px));
  height: auto;
  padding: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.82);
  backdrop-filter: blur(24px) saturate(1.5);
  -webkit-backdrop-filter: blur(24px) saturate(1.5);
  border: 1px solid rgba(255, 255, 255, 0.55);
  box-shadow: 0 8px 32px rgba(20, 25, 80, 0.16), 0 2px 8px rgba(20, 25, 80, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.75);
  user-select: none;
  cursor: grab;
  touch-action: none;
}
.qdnapro-bottom-nav[variant=floating-glass]:active,
.qdnapro-bottom-nav[variant=floating-solid]:active {
  cursor: grabbing;
}
.qdnapro-bottom-nav[variant=floating-glass]::after,
.qdnapro-bottom-nav[variant=floating-solid]::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: 14px;
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn {
  padding: 11px 4px;
  color: rgba(50, 55, 100, 0.45);
  position: relative;
  z-index: 0;
  cursor: inherit;
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn.has-badge,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn.has-badge {
  z-index: 2;
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn .qdnapro-bottom-nav-btn__icon,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn .qdnapro-bottom-nav-btn__icon {
  width: 44px;
  height: 40px;
  background: transparent !important;
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn .qdnapro-bottom-nav-btn__icon svg,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn .qdnapro-bottom-nav-btn__icon svg {
  width: 28px;
  height: 28px;
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn .qdnapro-bottom-nav-btn__svg-filled,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn .qdnapro-bottom-nav-btn__svg-filled {
  display: block;
  color: var(--c-brand-purple);
  width: 28px;
  height: 28px;
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn .qdnapro-bottom-nav-btn__label,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn .qdnapro-bottom-nav-btn__label {
  display: none;
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn .qdnapro-bottom-nav-btn__dot,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn .qdnapro-bottom-nav-btn__dot {
  display: none;
}
@media (hover: hover) {
  .qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn:hover:not(.is-disabled) .qdnapro-bottom-nav-btn__icon,
  .qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn:hover:not(.is-disabled) .qdnapro-bottom-nav-btn__icon {
    background: transparent !important;
  }
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn:active:not(.is-disabled) .qdnapro-bottom-nav-btn__icon, .qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn.is-pressing:not(.is-disabled) .qdnapro-bottom-nav-btn__icon,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn:active:not(.is-disabled) .qdnapro-bottom-nav-btn__icon,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn.is-pressing:not(.is-disabled) .qdnapro-bottom-nav-btn__icon {
  background: transparent !important;
  transform: scale(0.92);
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn.is-active,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn.is-active {
  color: var(--c-brand-purple);
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn.is-active .qdnapro-bottom-nav-btn__icon,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn.is-active .qdnapro-bottom-nav-btn__icon {
  background: transparent !important;
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn[icon=plus-circle].is-active .qdnapro-bottom-nav-btn__icon,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn[icon=plus-circle].is-active .qdnapro-bottom-nav-btn__icon {
  position: relative;
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn[icon=plus-circle].is-active .qdnapro-bottom-nav-btn__icon::before,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn[icon=plus-circle].is-active .qdnapro-bottom-nav-btn__icon::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px;
  height: 16px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: var(--c-bg-card);
  z-index: 0;
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn[icon=plus-circle].is-active .qdnapro-bottom-nav-btn__svg-filled,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn[icon=plus-circle].is-active .qdnapro-bottom-nav-btn__svg-filled {
  z-index: 1;
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav__pill,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav__pill {
  position: absolute;
  top: calc(50% - 26px);
  left: 0;
  width: 68px;
  height: 52px;
  border-radius: 999px;
  background: rgba(64, 73, 154, 0.1);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: none;
  box-shadow: none;
  transform: translateX(0);
  transition: transform 420ms cubic-bezier(0.34, 1.56, 0.64, 1);
  pointer-events: none;
  z-index: 1;
}

.qdnapro-bottom-nav[variant=floating-solid] {
  background: var(--c-brand-purple);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: none;
  box-shadow: 0 8px 28px rgba(20, 25, 80, 0.28), 0 2px 8px rgba(20, 25, 80, 0.16);
}
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn {
  color: var(--c-white-65);
}
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn.is-active {
  color: #ffffff;
}
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav__pill {
  background: rgba(255, 255, 255, 0.18);
}
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn .qdnapro-bottom-nav-btn__svg-filled {
  display: none;
}
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn[icon=plus-circle].is-active .qdnapro-bottom-nav-btn__icon::before {
  display: none;
}

@keyframes qdnapro-slide-in-right {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
@keyframes qdnapro-slide-in-left {
  from {
    transform: translateX(-100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
@keyframes qdnapro-slide-out-left {
  from {
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(-30%);
    opacity: 0;
  }
}
@keyframes qdnapro-slide-out-right {
  from {
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(30%);
    opacity: 0;
  }
}
.qdnapro-page-stack {
  position: relative;
  overflow: hidden;
}

.qdnapro-page {
  will-change: transform, opacity;
}

.qdnapro-page--enter-fwd {
  animation: qdnapro-slide-in-right 280ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.qdnapro-page--leave-fwd {
  position: absolute !important;
  inset: 0;
  animation: qdnapro-slide-out-left 240ms cubic-bezier(0.4, 0, 0.8, 0.6) both;
  pointer-events: none;
}

.qdnapro-page--enter-bwd {
  animation: qdnapro-slide-in-left 280ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.qdnapro-page--leave-bwd {
  position: absolute !important;
  inset: 0;
  animation: qdnapro-slide-out-right 240ms cubic-bezier(0.4, 0, 0.8, 0.6) both;
  pointer-events: none;
}

/* compiled from _pull-refresh.scss */
.qdnapro-pull-refresh {
  --pr-max-pull: 96px;
  --pr-bg: transparent;
  --pr-color: #40499a;
  --pr-label-color: #6e7280;
  --pr-label-size: 13px;
  --pr-spinner-size: 22px;
  --pr-spinner-width: 2px;
  --pr-distance: 0px;
  --pr-progress: 0;
  display: block;
  /* ⚠️ Functioneel, net als de overflow hierboven. De zone is bijna altijd een
     kind van de scrollende bak, en die is op de meeste schermen een FLEX-KOLOM
     (.qdna-content--page). Een flex-item mag standaard krimpen, dus de inhoud
     eronder drukt de zone terug naar 0 px: het gebaar werkt dan wél — de klassen
     lopen netjes door pr-pulling/pr-ready/pr-busy — maar je ziet en voelt niets.
     Gemeten op Pulse 20.08.2026: --pr-distance stond op 80px, de computed height
     op 0px. Op het startscherm viel dit nooit op, want .home_view__panel is een
     gewone blok-container. */
  flex-shrink: 0;
  overflow: hidden;
  height: var(--pr-distance);
  max-height: var(--pr-max-pull);
  background: var(--pr-bg);
  /* Terugveren als de vinger los is. Tijdens het trekken staat de overgang uit,
     anders loopt de zone achter de vinger aan. */
  transition: height 220ms ease;
}

.qdnapro-pull-refresh.pr-pulling,
.qdnapro-pull-refresh.pr-ready {
  transition: none;
}

.qdnapro-pull-refresh .pr-indicator {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 100%;
  min-height: var(--pr-spinner-size);
  opacity: var(--pr-progress);
}

.qdnapro-pull-refresh .pr-spinner {
  width: var(--pr-spinner-size);
  height: var(--pr-spinner-size);
  border-radius: 50%;
  border: var(--pr-spinner-width) solid var(--pr-color);
  border-top-color: transparent;
  /* Meedraaien met de vinger: één hele slag over de volledige trekafstand. */
  transform: rotate(calc(var(--pr-progress) * 360deg));
}

.qdnapro-pull-refresh.pr-ready .pr-spinner {
  /* Ver genoeg: het rondje staat stil en vol, als bevestiging dat loslaten werkt. */
  border-top-color: var(--pr-color);
}

.qdnapro-pull-refresh.pr-busy .pr-indicator {
  opacity: 1;
}

.qdnapro-pull-refresh.pr-busy .pr-spinner {
  animation: qdnapro-pull-refresh-spin 900ms linear infinite;
}

.qdnapro-pull-refresh .pr-label {
  color: var(--pr-label-color);
  font-size: var(--pr-label-size);
  line-height: 1;
  white-space: nowrap;
}

@keyframes qdnapro-pull-refresh-spin {
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-pull-refresh {
    transition: none;
  }
  .qdnapro-pull-refresh .pr-spinner {
    animation: none;
    transform: none;
  }
}
.qdnapro-tab-bar {
  --tb-pill-duration: 220ms;
  --tb-track-bg: var(--c-grey-50);
  --tb-pill-bg: var(--c-bg-card);
  display: flex;
  align-items: center;
  position: relative;
  width: 100%;
  box-sizing: border-box;
  padding: var(--s-1);
  gap: 2px;
  background: var(--tb-track-bg);
  border-radius: var(--r-4);
  font-family: var(--ff);
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-tab-bar {
    --tb-pill-duration: 0ms;
  }
}
.qdnapro-tab-bar__pill {
  position: absolute;
  top: var(--s-1);
  left: 0;
  bottom: var(--s-1);
  width: 0;
  transform: translateX(0);
  background: var(--tb-pill-bg);
  border-radius: var(--r-3);
  box-shadow: var(--shadow-card);
  pointer-events: none;
  z-index: 0;
  opacity: 0;
  transition: transform var(--tb-pill-duration) cubic-bezier(0.05, 0.7, 0.1, 1), width var(--tb-pill-duration) cubic-bezier(0.05, 0.7, 0.1, 1), opacity 120ms ease;
}

.qdnapro-tab-bar-item {
  position: relative;
  z-index: 1;
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 44px;
  padding: 0 var(--s-2);
  box-sizing: border-box;
  border-radius: var(--r-3);
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  outline: none;
  background: transparent;
  transition: color 150ms ease;
}

.qdnapro-tab-bar-item__label {
  font-size: 14px;
  font-weight: var(--fw-medium);
  line-height: 1.2;
  color: var(--c-text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color 150ms ease, font-weight 150ms ease;
}

.qdnapro-tab-bar-item.is-active .qdnapro-tab-bar-item__label {
  color: var(--c-brand-purple);
  font-weight: var(--fw-semi);
}

.qdnapro-tab-bar-item:not(.is-active):hover .qdnapro-tab-bar-item__label {
  color: var(--c-text-body);
}

.qdnapro-tab-bar-item:focus-visible {
  box-shadow: 0 0 0 2px var(--focus-ring), 0 0 0 4px var(--focus-glow);
}

.qdnapro-tab-bar-item__badge {
  flex-shrink: 0;
}

[data-theme-dark] .qdnapro-tab-bar,
[data-theme=dark] .qdnapro-tab-bar,
body[data-theme=dark] .qdnapro-tab-bar {
  --tb-track-bg: var(--c-grey-800);
  --tb-pill-bg: var(--c-grey-900);
}

.qdnapro-app-header {
  --qah-bg: var(--c-bg-card, #ffffff);
  --qah-fg: var(--c-text-heading, #1a1f4d);
  --qah-subtitle-color: var(--c-text-muted, #6e7280);
  --qah-border-color: var(--c-border-soft, rgba(0, 0, 0, 0.07));
  --qah-height: 56px;
  --qah-selection-fg: var(--c-brand-purple, #40499a);
  display: block;
  width: 100%;
  background: var(--qah-bg);
  border-bottom: 1px solid var(--qah-border-color);
  padding-top: var(--qdna-inset-top, env(safe-area-inset-top, 0px));
  box-sizing: border-box;
}
.qdnapro-app-header *, .qdnapro-app-header *::before, .qdnapro-app-header *::after {
  box-sizing: border-box;
}

.qdnapro-app-header.qah-variant-transparent {
  --qah-bg: transparent;
  --qah-border-color: transparent;
}

.qah-row {
  display: flex;
  align-items: center;
  min-height: var(--qah-height);
  gap: 8px;
  padding: 4px 12px;
}

.qah-back {
  flex: 0 0 auto;
}
.qah-back[hidden] {
  display: none;
}

.qah-title-cluster {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.qah-titles {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.qah-avatar {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
}
.qah-avatar:empty {
  display: none;
}

.qah-title {
  color: var(--qah-fg);
  font-size: 17px;
  font-weight: 500;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.qah-title:empty {
  display: none;
}

.qah-subtitle {
  color: var(--qah-subtitle-color);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.qah-subtitle:empty {
  display: none;
}

.qah-leading [hidden],
.qah-search [hidden],
.qah-actions [hidden],
.qah-nova [hidden] {
  display: none;
}

.qah-leading {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 4px;
}
.qah-leading:empty {
  display: none;
}

.qah-search {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 520px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  align-items: center;
  justify-content: center;
}
.qah-search:empty {
  display: none;
}
.qah-search > * {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
}

.qah-row:has(.qah-search:not(:empty)) .qah-title-cluster {
  flex: 0 1 auto;
}

.qdnapro-app-header.qah-align-start {
  --qah-search-gutter: 32px;
}

@media (min-width: 1024px) {
  .qdnapro-app-header.qah-align-start .qah-row:has(.qah-search:not(:empty)) {
    position: relative;
  }
  .qdnapro-app-header.qah-align-start .qah-row:has(.qah-search:not(:empty)) .qah-search {
    position: absolute;
    top: 50%;
    left: var(--qah-search-gutter);
    right: var(--qah-search-gutter);
    transform: translateY(-50%);
  }
  .qdnapro-app-header.qah-align-start .qah-row:has(.qah-search:not(:empty)) .qah-title-cluster {
    max-width: 140px;
  }
  .qdnapro-app-header.qah-align-start .qah-row:has(.qah-search:not(:empty)) .qah-actions,
  .qdnapro-app-header.qah-align-start .qah-row:has(.qah-search:not(:empty)) .qah-nova {
    margin-left: auto;
  }
}
@media (min-width: 1280px) {
  .qdnapro-app-header.qah-align-start .qah-row:has(.qah-search:not(:empty)) .qah-title-cluster {
    max-width: 260px;
  }
}
@media (min-width: 1440px) {
  .qdnapro-app-header.qah-align-start .qah-row:has(.qah-search:not(:empty)) .qah-title-cluster {
    max-width: 340px;
  }
}
.qah-actions,
.qah-nova {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 4px;
}
.qah-actions:empty,
.qah-nova:empty {
  display: none;
}

.qah-context:empty {
  display: none;
}

.qah-cancel {
  flex: 0 0 auto;
  display: none;
}

.qah-selection-count {
  flex: 1 1 auto;
  min-width: 0;
  display: none;
  color: var(--qah-selection-fg);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qah-selection-actions {
  flex: 0 0 auto;
  display: none;
  align-items: center;
}

.qdnapro-app-header.qah-align-center {
  --qah-center-gutter: 60px;
}
.qdnapro-app-header.qah-align-center .qah-row {
  position: relative;
}
.qdnapro-app-header.qah-align-center .qah-actions,
.qdnapro-app-header.qah-align-center .qah-nova {
  margin-left: auto;
}
.qdnapro-app-header.qah-align-center .qah-title-cluster {
  position: absolute;
  top: 50%;
  left: var(--qah-center-gutter);
  right: var(--qah-center-gutter);
  transform: translateY(-50%);
  justify-content: center;
}
.qdnapro-app-header.qah-align-center .qah-titles {
  flex: 0 1 auto;
  text-align: center;
}
.qdnapro-app-header.qah-align-center .qah-title-cluster {
  pointer-events: none;
}
.qdnapro-app-header.qah-align-center .qah-titles,
.qdnapro-app-header.qah-align-center .qah-avatar {
  pointer-events: auto;
}

@media (min-width: 600px) {
  .qdnapro-app-header.qah-align-center {
    --qah-center-gutter: 76px;
  }
}
@media (min-width: 1024px) {
  .qdnapro-app-header.qah-align-center {
    --qah-center-gutter: 92px;
  }
}
.qdnapro-app-header.qah-mode-selection {
  --qah-bg: var(--c-bg-card, #ffffff);
  --qah-border-color: var(--c-border-soft, rgba(0, 0, 0, 0.07));
}
.qdnapro-app-header.qah-mode-selection .qah-back,
.qdnapro-app-header.qah-mode-selection .qah-title-cluster,
.qdnapro-app-header.qah-mode-selection .qah-leading,
.qdnapro-app-header.qah-mode-selection .qah-search,
.qdnapro-app-header.qah-mode-selection .qah-actions,
.qdnapro-app-header.qah-mode-selection .qah-nova {
  display: none;
}
.qdnapro-app-header.qah-mode-selection .qah-cancel {
  display: flex;
}
.qdnapro-app-header.qah-mode-selection .qah-selection-count {
  display: block;
}
.qdnapro-app-header.qah-mode-selection .qah-selection-actions {
  display: flex;
}

@media (min-width: 600px) {
  .qah-row {
    padding: 6px 20px;
    gap: 12px;
  }
  .qah-title {
    font-size: 19px;
  }
}
@media (min-width: 1024px) {
  .qah-row {
    padding: 8px 32px;
  }
}
.qdnapro-swipe-row {
  position: relative;
  display: block;
  overflow: hidden;
  /* Let the browser keep owning vertical scrolling at all times — the
     component's own axis-lock decides whether a given gesture is horizontal
     before it ever calls preventDefault. */
  touch-action: pan-y;
  isolation: isolate; /* keep the panel/content stacking local to this row */
}

/* Content layer — whatever the host slotted in, unmodified. Always painted
   with its own opaque background (default var(--c-bg-card)) so a
   transparent child never lets a button's background show through, even at
   rest (not just while .swiping is present). A consumer can retint this per
   instance via style="--qsr-content-bg: ...". */
.qdnapro-swipe-row .qsr-content {
  position: relative;
  z-index: 1;
  background: var(--qsr-content-bg, var(--c-bg-card));
  will-change: transform;
}

/* Action panels — anchored to the edge the content recedes FROM, sized to
   exactly the currently revealed width (set inline by the JS: resting width
   = sum of that side's button widths; grows to match the live drag distance
   once it exceeds that). Because the panel is never wider than what's
   actually exposed, the OUTERMOST button (flush against the true edge) is
   the very first thing a drag reveals — no dead full-row space to cross
   before anything becomes visible. */
.qdnapro-swipe-row .qsr-panel {
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 0;
  display: flex;
  align-items: stretch;
  overflow: hidden;
}

.qdnapro-swipe-row .qsr-panel-left {
  right: 0;
  justify-content: flex-end; /* group flush against the true right edge */
}

.qdnapro-swipe-row .qsr-panel-right {
  left: 0;
  justify-content: flex-start; /* group flush against the true left edge */
}

.qdnapro-swipe-row .qsr-panel-empty {
  width: 0 !important;
}

/* Each button is a REAL <button>, owning its own fixed-width box — icon and
   label sit INSIDE that box, never centered on the row. This is the whole
   point of the redesign. Stretches to the row's full height (comfortably
   over the 44px minimum tappable target on any real row). Buttons are only
   in the tab order / reachable by AT while their side is open — see the
   tabindex/aria-hidden handling in the JS. */
.qdnapro-swipe-row .qsr-panel-btn {
  flex: 0 0 80px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  border: 0;
  padding: 0;
  background: none; /* colour comes from the .qsr-color-* modifier below */
  color: var(--c-text-on-action);
  font-family: var(--ff, "Inter", sans-serif);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: flex-basis 0.2s cubic-bezier(0.4, 0, 0.2, 1), flex-grow 0.2s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.15s ease;
}

.qdnapro-swipe-row .qsr-panel-btn:focus-visible {
  outline: 2px solid var(--c-text-on-action);
  outline-offset: -3px;
}

.qdnapro-swipe-row .qsr-panel-label {
  font-size: 12px;
  font-weight: 500;
  line-height: 1.3;
  white-space: nowrap;
}

/* Icon grows slightly once the drag crosses the commit threshold, so the
   user can feel the commit point before releasing. */
.qdnapro-swipe-row .qsr-panel-icon {
  transition: transform 0.15s ease;
}

.qdnapro-swipe-row.qsr-committing .qsr-panel-icon {
  transform: scale(1.16);
}

/* Stage 2 — commit: past the `threshold` drag distance, the secondary
   button(s) on the ACTIVE side collapse away and the MAIN button (the
   outermost / last-configured entry) expands to fill the whole revealed
   width, so releasing here fires it immediately without a tap. Scoped to
   the currently dragging direction so the idle side is never affected. */
.qdnapro-swipe-row.qsr-committing.qsr-dir-left .qsr-panel-left .qsr-panel-btn:not(.qsr-btn-main) {
  flex: 0 0 0;
  opacity: 0;
  pointer-events: none;
}

.qdnapro-swipe-row.qsr-committing.qsr-dir-right .qsr-panel-right .qsr-panel-btn:not(.qsr-btn-main) {
  flex: 0 0 0;
  opacity: 0;
  pointer-events: none;
}

.qdnapro-swipe-row.qsr-committing.qsr-dir-left .qsr-panel-left .qsr-btn-main,
.qdnapro-swipe-row.qsr-committing.qsr-dir-right .qsr-panel-right .qsr-btn-main {
  flex: 1 1 auto;
}

/* Colour vocabulary — a small named set, mapped to FIXED primitives (not the
   lifted --c-brand-purple) so a button reads the exact same accent in light
   and dark mode, same convention as qdnapro-bottom-sheet's purple variant
   (--c-purple-500, deliberately not --c-brand-purple). "yellow" is new
   (29.07.2026, flagging) and maps to the existing warn/flag ramp token
   --c-warn-yellow-500 — paired with --c-signal-yellow-text for the label,
   since white text on that particular yellow fails contrast (same pairing
   qdnapro-answer-button and qdnapro-score-scale already use for warning
   yellow). Never a raw hex. */
.qdnapro-swipe-row .qsr-color-purple {
  background: var(--c-purple-500);
}

.qdnapro-swipe-row .qsr-color-grey {
  background: var(--c-grey-500);
}

.qdnapro-swipe-row .qsr-color-red {
  background: var(--c-warn-red-500);
}

.qdnapro-swipe-row .qsr-color-green {
  background: var(--c-success-bright);
}

.qdnapro-swipe-row .qsr-color-yellow {
  background: var(--c-warn-yellow-500);
  color: var(--c-signal-yellow-text, #bf7202);
}

/* prefers-reduced-motion: no bounce/scale/collapse-animation — the JS itself
   switches every settle/dismiss transition to instant (transition: none)
   inline; these rules are the CSS-driven backstop for the transitions that
   aren't inline (the icon's commit-scale, and the button collapse/expand
   above), so they jump instead of easing. */
@media (prefers-reduced-motion: reduce) {
  .qdnapro-swipe-row .qsr-panel-icon,
  .qdnapro-swipe-row .qsr-panel-btn {
    transition: none;
  }
}
.qdnapro-list-row {
  --qlr-bg-hover: var(--c-bg-subtle-hover, #f5f6f8);
  --qlr-bg-pressed: var(--c-purple-soft-12, rgba(64, 73, 154, 0.12));
  --qlr-border: var(--c-border-soft, rgba(0, 0, 0, 0.07));
  --qlr-title-color: var(--c-text-heading, #1a1f4d);
  --qlr-subtitle-color: var(--c-text-muted, #6e7280);
  --qlr-chevron-color: var(--c-text-muted, #6e7280);
  --qlr-focus-ring: var(--c-brand-purple, #40499a);
  --qlr-focus-glow: var(--c-purple-soft-18, rgba(64, 73, 154, 0.18));
  --qlr-bare-icon-color: var(--c-brand-purple, #40499a);
  --qlr-warning-color: var(--c-warn-amber-500, #d97706);
  --qlr-warning-color-hover: var(--c-warn-amber-600, #b45309);
  --qlr-warning-bg-hover: var(--c-signal-orange-bg, #fdeadc);
  --qlr-mark-bg: var(--c-signal-yellow-bg, #feedb8);
  --qlr-mark-color: var(--c-text-heading);
  --qlr-bg-selected: var(--c-purple-soft-12, rgba(64, 73, 154, 0.12));
  --qlr-bg-selected-hover: var(--c-purple-soft-18, rgba(64, 73, 154, 0.18));
  --qlr-depth: 0;
  --qlr-depth-step: 20px;
  --qlr-toggle-duration: 180ms;
  display: flex;
  align-items: center;
  gap: 12px;
  box-sizing: border-box;
  width: 100%;
  min-height: 44px;
}
.qdnapro-list-row[hidden] {
  display: none;
}
.qdnapro-list-row {
  padding: 8px 16px;
  padding-left: calc(16px + var(--qlr-depth) * var(--qlr-depth-step));
  background: transparent;
  color: var(--qlr-title-color);
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  font-family: inherit;
  border: 0 solid transparent;
  transition: background-color 100ms ease-out;
}
.qdnapro-list-row:hover:not(.qlr-disabled) {
  background: var(--qlr-bg-hover);
}
.qdnapro-list-row.is-pressed:not(.qlr-disabled) {
  background: var(--qlr-bg-pressed);
}
.qdnapro-list-row:focus {
  outline: none;
}
.qdnapro-list-row:focus-visible, .qdnapro-list-row.force-focus {
  outline: none;
  box-shadow: inset 0 0 0 2px var(--qlr-focus-ring), inset 0 0 0 5px var(--qlr-focus-glow);
}
.qdnapro-list-row.qlr-disabled {
  opacity: 0.5;
  cursor: default;
  pointer-events: none;
}
.qdnapro-list-row.qlr-static {
  cursor: default;
}
.qdnapro-list-row.qlr-static:hover {
  background: transparent;
}
.qdnapro-list-row.qlr-static.is-pressed {
  background: transparent;
}
.qdnapro-list-row.qlr-static:focus-visible {
  outline: none;
  box-shadow: none;
}
.qdnapro-list-row.force-hover {
  background: var(--qlr-bg-hover);
}
.qdnapro-list-row.force-pressed {
  background: var(--qlr-bg-pressed);
}
.qdnapro-list-row.qlr-selected:not(.qlr-disabled) {
  background: var(--qlr-bg-selected);
}
.qdnapro-list-row.qlr-selected:hover:not(.qlr-disabled) {
  background: var(--qlr-bg-selected-hover);
}
.qdnapro-list-row.qlr-tone-danger {
  --qlr-title-color: var(--c-signal-red-text, #c65a5a);
  --qlr-subtitle-color: var(--c-signal-red-text, #c65a5a);
  --qlr-chevron-color: var(--c-signal-red-text, #c65a5a);
  --qlr-bare-icon-color: var(--c-signal-red-text, #c65a5a);
}
.qdnapro-list-row.qlr-tone-muted {
  --qlr-title-color: var(--c-text-muted, #6e7280);
  --qlr-subtitle-color: var(--c-text-muted, #6e7280);
  --qlr-chevron-color: var(--c-text-muted, #6e7280);
  --qlr-bare-icon-color: var(--c-text-muted, #6e7280);
}

.qdnapro-list-row.qlr-surface-on-purple,
.qdnapro-list-row-group--on-purple .qdnapro-list-row {
  --qlr-bg-hover: var(--c-white-10, rgba(255, 255, 255, 0.10));
  --qlr-bg-pressed: var(--c-white-22, rgba(255, 255, 255, 0.22));
  --qlr-bg-selected: var(--c-white-22, rgba(255, 255, 255, 0.22));
  --qlr-bg-selected-hover: var(--c-white-28, rgba(255, 255, 255, 0.28));
  --qlr-border: var(--c-white-14, rgba(255, 255, 255, 0.14));
  --qlr-title-color: var(--c-text-on-action, #ffffff);
  --qlr-subtitle-color: var(--c-white-70, rgba(255, 255, 255, 0.70));
  --qlr-chevron-color: var(--c-white-70, rgba(255, 255, 255, 0.70));
  --qlr-bare-icon-color: var(--c-text-on-action, #ffffff);
  --qlr-focus-ring: var(--c-text-on-action, #ffffff);
  --qlr-warning-color: var(--c-text-on-action, #ffffff);
  --qlr-warning-color-hover: var(--c-text-on-action, #ffffff);
  --qlr-warning-bg-hover: var(--c-white-22, rgba(255, 255, 255, 0.22));
  --qlr-focus-glow: var(--c-white-22, rgba(255, 255, 255, 0.22));
}

[data-theme=dark] .qdnapro-list-row.qlr-tone-danger {
  --qlr-title-color: var(--c-warn-red-400, #f87171);
  --qlr-subtitle-color: var(--c-warn-red-400, #f87171);
  --qlr-chevron-color: var(--c-warn-red-400, #f87171);
  --qlr-bare-icon-color: var(--c-warn-red-400, #f87171);
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-list-row {
    --qlr-toggle-duration: 0ms;
  }
}
.qlr-lead {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 0 0 auto;
}

.qlr-expand-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border-radius: var(--r-row, 12px);
  color: var(--qlr-chevron-color);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 100ms ease-out;
}
.qlr-expand-toggle:hover {
  background: var(--qlr-bg-hover);
}
.qlr-expand-toggle:active {
  background: var(--qlr-bg-pressed);
}
.qlr-expand-toggle:focus {
  outline: none;
}
.qlr-expand-toggle:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 2px var(--qlr-focus-ring), inset 0 0 0 4px var(--qlr-focus-glow);
}

.qlr-expand-chevron {
  width: 18px;
  height: 18px;
  transition: transform var(--qlr-toggle-duration) ease;
}

.qdnapro-list-row.qlr-expanded .qlr-expand-chevron {
  transform: rotate(90deg);
}

.qlr-tile {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: var(--r-row, 12px);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--qlr-tile-bg, var(--c-purple-soft-12, rgba(64, 73, 154, 0.12)));
  color: var(--qlr-tile-fg, var(--c-brand-purple, #40499a));
}

.qlr-tile-icon {
  width: 22px;
  height: 22px;
}

.qlr-tile-activity {
  flex: 0 0 auto;
}

.qlr-tile-color-purple {
  --qlr-tile-bg: var(--c-chip-purple-bg);
  --qlr-tile-fg: var(--c-brand-purple, #40499a);
}

.qlr-tile-color-grey {
  --qlr-tile-bg: var(--c-grey-50);
  --qlr-tile-fg: var(--c-grey-600, #565b66);
}

.qlr-tile-color-red {
  --qlr-tile-bg: var(--c-signal-red-bg);
  --qlr-tile-fg: var(--c-signal-red-text, #c65a5a);
}

.qlr-tile-color-yellow {
  --qlr-tile-bg: var(--c-chip-yellow-bg);
  --qlr-tile-fg: var(--c-signal-yellow-text, #bf7202);
}

.qlr-tile-color-green {
  --qlr-tile-bg: var(--c-chip-green-bg);
  --qlr-tile-fg: var(--c-signal-green-text, #428b6e);
}

.qlr-tile-color-blue {
  --qlr-tile-bg: var(--c-signal-blue-bg);
  --qlr-tile-fg: var(--c-signal-blue-text, #6a8ab4);
}

.qlr-tile-color-bright-blue {
  --qlr-tile-bg: var(--c-chip-bright-blue-2-bg);
  --qlr-tile-fg: var(--c-purple-400);
}

.qlr-tile-color-pink {
  --qlr-tile-bg: var(--c-signal-pink-bg);
  --qlr-tile-fg: var(--c-signal-pink-text, #b25777);
}

[data-theme=dark] .qlr-tile-color-purple {
  --qlr-tile-bg: #3a3555;
  --qlr-tile-fg: var(--c-purple-200, #a5acff);
}

[data-theme=dark] .qlr-tile-color-grey {
  --qlr-tile-bg: #40444d;
  --qlr-tile-fg: var(--c-grey-300, #c4c7cc);
}

[data-theme=dark] .qlr-tile-color-red {
  --qlr-tile-bg: #5a2b2b;
  --qlr-tile-fg: var(--c-warn-red-400, #f87171);
}

[data-theme=dark] .qlr-tile-color-yellow {
  --qlr-tile-bg: #5a4d1f;
  --qlr-tile-fg: var(--c-warn-yellow-500, #fbbf24);
}

[data-theme=dark] .qlr-tile-color-green {
  --qlr-tile-bg: #2a5544;
  --qlr-tile-fg: #7fe0bc;
}

[data-theme=dark] .qlr-tile-color-blue {
  --qlr-tile-bg: #2e3e54;
  --qlr-tile-fg: #8fb4e0;
}

[data-theme=dark] .qlr-tile-color-bright-blue {
  --qlr-tile-bg: #3a4a8a;
  --qlr-tile-fg: #b9c8f5;
}

[data-theme=dark] .qlr-tile-color-pink {
  --qlr-tile-bg: #4e2a36;
  --qlr-tile-fg: #e4a0b8;
}

.qdnapro-list-row.qlr-tile-none .qlr-tile, .qdnapro-list-row.qlr-tile-none.qlr-size-compact .qlr-tile {
  width: auto;
  height: auto;
  background: none;
  border-radius: 0;
  color: var(--qlr-bare-icon-color);
}
.qdnapro-list-row.qlr-tile-none .qlr-tile-icon {
  width: 24px;
  height: 24px;
}
.qdnapro-list-row.qlr-tile-none.qlr-size-compact .qlr-tile-icon {
  width: 20px;
  height: 20px;
}

.qlr-body {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
}

.qlr-title {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3;
  color: var(--qlr-title-color);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qlr-subtitle {
  font-size: 12px;
  font-weight: 400;
  line-height: 1.3;
  color: var(--qlr-subtitle-color);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qlr-title mark {
  background: var(--qlr-mark-bg);
  color: var(--qlr-mark-color);
  font: inherit;
  border-radius: 2px;
  padding: 0 1px;
}

.qlr-subtitle mark {
  background: var(--qlr-mark-bg);
  color: var(--qlr-mark-color);
  font: inherit;
  border-radius: 2px;
  padding: 0 1px;
}

.qdnapro-list-row.qlr-wrap {
  --qlr-wrap-max-width: 60ch;
  align-items: flex-start;
}
.qdnapro-list-row.qlr-wrap .qlr-body {
  justify-content: flex-start;
  max-width: var(--qlr-wrap-max-width);
}
.qdnapro-list-row.qlr-wrap .qlr-subtitle {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  line-height: 1.45;
}
.qdnapro-list-row.qlr-wrap .qlr-trailing {
  margin-left: auto;
}
.qdnapro-list-row.qlr-wrap .qlr-warning {
  margin-left: auto;
}
.qdnapro-list-row.qlr-wrap .qlr-warning ~ .qlr-trailing {
  margin-left: 0;
}

.qlr-trailing {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 4px;
}
.qlr-trailing:empty {
  display: none;
}

.qlr-slot-wrap {
  display: contents;
}

.qlr-chevron {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  color: var(--qlr-chevron-color);
}

.qlr-warning {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--qlr-warning-color);
  cursor: pointer;
  transition: background 150ms ease, color 150ms ease;
}

.qlr-warning:hover {
  background: var(--qlr-warning-bg-hover);
  color: var(--qlr-warning-color-hover);
}

.qlr-warning:focus-visible {
  outline: 2px solid var(--qlr-focus-ring);
  outline-offset: 2px;
}

.qlr-warning-icon {
  width: 20px;
  height: 20px;
}

.qdnapro-list-row.qlr-size-compact {
  --qlr-depth-step: 16px;
  min-height: 36px;
  padding: 6px 12px;
  padding-left: calc(12px + var(--qlr-depth) * var(--qlr-depth-step));
  gap: 8px;
}
.qdnapro-list-row.qlr-size-compact .qlr-tile {
  width: 28px;
  height: 28px;
  border-radius: var(--r-2, 8px);
}
.qdnapro-list-row.qlr-size-compact .qlr-tile-icon {
  width: 18px;
  height: 18px;
}
.qdnapro-list-row.qlr-size-compact .qlr-title {
  font-size: 13px;
}
.qdnapro-list-row.qlr-size-compact .qlr-subtitle {
  font-size: 11px;
}
.qdnapro-list-row.qlr-size-compact .qlr-expand-toggle {
  width: 32px;
  height: 32px;
}
.qdnapro-list-row.qlr-size-compact .qlr-expand-chevron {
  width: 16px;
  height: 16px;
}
.qdnapro-list-row.qlr-size-compact .qlr-chevron {
  width: 18px;
  height: 18px;
}
.qdnapro-list-row.qlr-size-compact .qlr-warning {
  width: 24px;
  height: 24px;
}
.qdnapro-list-row.qlr-size-compact .qlr-warning-icon {
  width: 18px;
  height: 18px;
}
.qdnapro-list-row.qlr-size-compact .qlr-grip {
  width: 18px;
  height: 32px;
}
.qdnapro-list-row.qlr-size-compact .qlr-grip-icon {
  width: 16px;
  height: 16px;
}

.qlr-grip {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 20px;
  height: 40px;
  color: var(--qlr-chevron-color);
  cursor: grab;
  -webkit-tap-highlight-color: transparent;
  transition: color 100ms ease-out;
}

.qdnapro-list-row:hover .qlr-grip {
  color: var(--qlr-title-color);
}

.qlr-grip-icon {
  width: 18px;
  height: 18px;
}

qdnapro-list-row[dragging] {
  opacity: 0.35;
}
qdnapro-list-row[dragging] .qlr-grip {
  cursor: grabbing;
}

qdnapro-list-row[drop-above] {
  box-shadow: inset 0 3px 0 0 var(--qlr-focus-ring);
}

qdnapro-list-row[drop-below] {
  box-shadow: inset 0 -3px 0 0 var(--qlr-focus-ring);
}

.qdnapro-list-row-group {
  background: var(--c-bg-card, #ffffff);
  border-radius: var(--r-card, 16px);
  overflow: hidden;
}
.qdnapro-list-row-group .qdnapro-list-row:not(:last-child) {
  border-bottom: 1px solid var(--qlr-border, var(--c-border-soft, rgba(0, 0, 0, 0.07)));
}

.qdnapro-list-row-group--on-purple {
  background: var(--c-white-14, rgba(255, 255, 255, 0.14));
}

qdnapro-section-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  box-sizing: border-box;
  padding: 0;
  background: var(--c-bg-card, #ffffff);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: var(--shadow-card, 0 1px 2px rgba(20, 25, 80, 0.04), 0 4px 16px rgba(20, 25, 80, 0.04));
}
qdnapro-section-card .qsc-head {
  order: -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 20px 20px 0;
  margin-bottom: 12px;
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--c-bg-card, #ffffff);
}
qdnapro-section-card .qsc-title {
  font-family: "Inter", sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--c-text-heading, #1a1f4d);
  min-width: 0;
}
qdnapro-section-card .qsc-subtitle {
  padding: 0 20px;
  margin-bottom: 12px;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.45;
  color: var(--c-text-muted, #6e7280);
  max-width: var(--qsc-subtitle-max-width, 62ch);
}
qdnapro-section-card.qsc-size-compact .qsc-head {
  padding: 16px 16px 0;
}
qdnapro-section-card.qsc-size-compact .qsc-title {
  font-size: 17px;
  font-weight: 600;
}
qdnapro-section-card.qsc-size-compact .qsc-subtitle {
  padding: 0 16px;
  font-size: 13px;
}
qdnapro-section-card.qsc-size-compact .qsc-icon {
  font-size: 20px;
}
qdnapro-section-card.qsc-size-compact .qsc-empty {
  padding: 0 16px 16px;
}
qdnapro-section-card.qsc-has-subtitle .qsc-head {
  margin-bottom: 4px;
}
qdnapro-section-card .qsc-icon {
  flex-shrink: 0;
  font-size: 28px;
}
qdnapro-section-card .qsc-icon-color-heading {
  color: var(--c-text-heading, #1a1f4d);
}
qdnapro-section-card .qsc-icon-color-heart {
  color: var(--c-favorite-heart, #ff4d6a);
}
qdnapro-section-card .qsc-icon-color-purple {
  color: var(--c-purple-500, #40499a);
}
qdnapro-section-card .qsc-icon-color-grey {
  color: var(--c-text-muted, #6e7280);
}
qdnapro-section-card .qsc-empty {
  padding: 0 20px 20px;
  font-size: 14px;
  color: var(--c-text-muted, #6e7280);
}
qdnapro-section-card > :not(.qsc-head):not(.qsc-empty):not(.qsc-subtitle) + :not(.qsc-head):not(.qsc-empty):not(.qsc-subtitle) {
  border-top: 1px solid var(--c-grey-100, #e7e9ec);
}

.qdnapro-search-overlay {
  display: contents;
}

qdnapro-search-overlay:not(:defined) {
  display: none;
}

.qso-overlay {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: flex;
}

.qso-overlay[hidden] {
  display: none;
}

.qso-backdrop {
  position: absolute;
  inset: 0;
  background: var(--c-black-30);
  opacity: 0;
  --qso-duration: 200ms;
  transition: opacity var(--qso-duration) ease;
}

.qso-panel {
  position: relative;
  flex: 1;
  min-height: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  background: var(--c-bg-card);
  padding-top: env(safe-area-inset-top, 0px);
  opacity: 0;
  transform: translateY(-8px) scale(0.98);
  --qso-duration: 200ms;
  transition: opacity var(--qso-duration) ease, transform var(--qso-duration) cubic-bezier(0.4, 0, 0.2, 1);
  will-change: opacity, transform;
}

.qso-overlay.is-open .qso-backdrop {
  opacity: 1;
}

.qso-overlay.is-open .qso-panel {
  opacity: 1;
  transform: translateY(0) scale(1);
}

@media (prefers-reduced-motion: reduce) {
  .qso-backdrop,
  .qso-panel {
    --qso-duration: 0ms;
  }
}
.qso-header {
  flex: none;
  display: flex;
  align-items: center;
  gap: var(--s-3);
  padding: var(--s-4) var(--s-4) var(--s-2);
  box-sizing: border-box;
}

.qso-field {
  flex: 1;
  min-width: 0;
}

.qso-cancel {
  flex: none;
}

.qso-nova {
  flex: none;
  padding: 0 var(--s-4) var(--s-2);
}

.qso-nova:empty {
  display: none;
}

.qso-body {
  min-width: 0;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 0 0 var(--s-4);
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
}

.qso-recents[hidden] {
  display: none;
}

.qso-recents-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-2);
  padding: var(--s-3) var(--s-2) var(--s-1);
}

.qso-recents-heading {
  font-size: 12px;
  font-weight: var(--fw-medium);
  color: var(--c-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding-left: var(--s-4);
  padding-right: var(--s-4);
}

.qso-recents-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.qso-results-list[hidden] {
  display: none;
}

.qso-results-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.qso-section-heading {
  padding: var(--s-3) var(--s-4) var(--s-1);
  font-size: 14px;
  font-weight: var(--fw-medium);
  color: var(--c-text-heading);
}

.qso-empty[hidden] {
  display: none;
}

.qso-empty {
  flex: 1;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: var(--s-8) var(--s-4);
  color: var(--c-text-muted);
  font-size: 14px;
  line-height: 1.5;
  text-align: center;
}

.qso-more-row {
  --qlr-title-color: var(--c-purple-highlight);
  --qlr-chevron-color: var(--c-purple-highlight);
}

@media (min-width: 640px) {
  .qso-overlay {
    align-items: center;
    justify-content: center;
    padding: var(--s-6);
  }
  .qso-panel {
    flex: none;
    width: 520px;
    max-width: 100%;
    max-height: 80vh;
    padding-top: 0;
    border-radius: var(--r-card);
    box-shadow: var(--shadow-card);
    overflow: hidden;
  }
}
.qso-overlay.qso-mode-dropdown {
  position: fixed;
  inset: auto;
  left: 0;
  top: 0;
  padding: 0;
  display: block;
}

.qso-overlay.qso-mode-dropdown[hidden] {
  display: none;
}

.qso-overlay.qso-mode-dropdown .qso-panel {
  flex: none;
  width: 100%;
  max-height: 60vh;
  padding-top: 0;
  border: 1px solid var(--c-grey-300);
  border-radius: var(--r-2);
  box-shadow: var(--shadow-card);
  box-sizing: border-box;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-4px);
}

.qso-overlay.qso-mode-dropdown.qso-dropdown-above .qso-panel {
  flex-direction: column-reverse;
}

.qso-overlay.qso-mode-dropdown.is-open .qso-panel {
  opacity: 1;
  transform: translateY(0);
}

.qso-overlay.qso-mode-dropdown .qso-body::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
.qso-overlay.qso-mode-dropdown .qso-body::-webkit-scrollbar-track {
  background: transparent;
}
.qso-overlay.qso-mode-dropdown .qso-body::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 8px;
  transition: background 160ms ease;
}
.qso-overlay.qso-mode-dropdown .qso-body:hover::-webkit-scrollbar-thumb, .qso-overlay.qso-mode-dropdown .qso-body:focus-within::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.22);
}
.qso-overlay.qso-mode-dropdown .qso-body::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.34);
}

.qso-overlay.qso-mode-dropdown .qso-header {
  padding: 0;
  gap: 0;
}

.qso-overlay.qso-mode-dropdown .qso-header .input-field {
  border: none;
  background: transparent;
  border-radius: 0;
}

.qso-overlay.qso-mode-dropdown .qso-header .input-field:hover,
.qso-overlay.qso-mode-dropdown .qso-header .input-field:focus-within {
  border: none;
  background: transparent;
  box-shadow: none;
}

.qso-overlay.qso-mode-dropdown .qso-header .input-field .input-field-inner {
  background: transparent;
}

.qso-overlay.qso-mode-dropdown.qso-surface-grey .qso-panel {
  background: var(--c-grey-100);
}

.qso-overlay.qso-mode-dropdown.qso-surface-grey qdnapro-divider {
  background: var(--c-grey-300);
}

.qso-overlay.qso-mode-dropdown.qso-surface-grey qdnapro-list-row {
  --qlr-bg-hover: var(--c-grey-200);
}

.qso-recents-list qdnapro-list-row {
  --qlr-bare-icon-color: var(--c-text-muted);
}

.qso-recents-list .qdnapro-list-row qdnapro-icon-btn.icon-btn-subtle {
  color: var(--c-text-muted);
}

qdnapro-search-filter-panel {
  display: contents;
}

.sfp-root[hidden] {
  display: none;
}

.sfp-backdrop {
  position: fixed;
  inset: 0;
  background: color-mix(in srgb, var(--c-grey-950) 38%, transparent);
  opacity: 0;
  transition: opacity 240ms cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 1049;
}
.sfp-backdrop--visible {
  opacity: 1;
}

.sfp {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 380px;
  max-width: 92vw;
  display: flex;
  flex-direction: column;
  z-index: 1050;
  overflow: hidden;
  box-sizing: border-box;
  background: color-mix(in srgb, var(--c-bg-card) 74%, transparent);
  backdrop-filter: blur(20px) saturate(160%);
  -webkit-backdrop-filter: blur(20px) saturate(160%);
  border-left: 1px solid var(--c-border-card);
  box-shadow: -8px 0 32px var(--c-purple-soft-18);
  transform: translateX(100%);
  transition: transform 240ms cubic-bezier(0.4, 0, 0.2, 1);
}
.sfp--visible {
  transform: translateX(0);
}
.sfp * {
  box-sizing: border-box;
}

.sfp-head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  flex-shrink: 0;
  background: color-mix(in srgb, var(--c-purple-500) 88%, transparent);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--c-white-12);
}

.sfp-head-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  flex-shrink: 0;
  border: 2px solid rgba(255, 255, 255, 0.55);
  border-radius: var(--r-2);
  color: #fff;
}

.sfp-head-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1;
}

.sfp-head-title {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.25;
  color: #fff;
}

.sfp-head-desc {
  font-size: 12px;
  line-height: 1.35;
  color: rgba(255, 255, 255, 0.8);
}
.sfp-head-desc[hidden] {
  display: none;
}

.sfp-head-close {
  flex-shrink: 0;
  margin-left: auto;
}
.sfp-head-close[hidden] {
  display: none;
}

.sfp-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  padding: 10px 16px 0;
  flex-shrink: 0;
}
.sfp-chips:empty {
  display: none;
}
.sfp-chips[hidden] {
  display: none;
}

.sfp-body {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  --sfp-thumb: color-mix(in srgb, var(--c-text-muted) 45%, transparent);
  scrollbar-width: thin;
  scrollbar-color: var(--sfp-thumb) transparent;
}
.sfp-body::-webkit-scrollbar {
  width: 5px;
}
.sfp-body::-webkit-scrollbar-track {
  background: transparent;
}
.sfp-body::-webkit-scrollbar-thumb {
  background: var(--sfp-thumb);
  border-radius: 3px;
}

.sfp-section {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.sfp-section-head {
  padding-bottom: 8px;
  border-bottom: 1px solid var(--c-border-card);
}

.sfp-section-title {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--c-brand-purple);
}

.sfp-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.sfp-field--range {
  flex-direction: row;
  gap: 8px;
}
.sfp-field--range > * {
  flex: 1 1 0;
  min-width: 0;
}

@media (max-width: 420px) {
  .sfp-field--range {
    flex-direction: column;
  }
}
.sfp-foot {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  flex-shrink: 0;
  border-top: 1px solid var(--c-border-card);
}

.sfp-foot-search {
  flex: 1;
}

.qdnapro-tasklist-run-card {
  position: relative;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-100, #e7e9ec);
  border-radius: 12px;
  cursor: pointer;
  outline: none;
  user-select: none;
  transition: background-color 120ms ease-out, border-color 120ms ease-out;
}

.qdnapro-tasklist-run-card *,
.qdnapro-tasklist-run-card *::before,
.qdnapro-tasklist-run-card *::after {
  box-sizing: border-box;
}

.qdnapro-tasklist-run-card:focus {
  outline: none;
}

@media (hover: hover) {
  .qdnapro-tasklist-run-card:not(.trc-disabled):hover {
    background: var(--c-grey-100, #e7e9ec);
  }
}
.qdnapro-tasklist-run-card.force-hover:not(.trc-disabled) {
  background: var(--c-grey-100, #e7e9ec);
}

.qdnapro-tasklist-run-card:not(.trc-disabled):active {
  background: var(--c-grey-200, #d1d5db);
}

.qdnapro-tasklist-run-card:not(.trc-disabled).is-pressed {
  background: var(--c-grey-200, #d1d5db);
}

.qdnapro-tasklist-run-card.force-pressed:not(.trc-disabled) {
  background: var(--c-grey-200, #d1d5db);
}

.qdnapro-tasklist-run-card:not(.trc-disabled):focus-visible {
  outline: 2px solid var(--c-purple-500);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.25);
}

.qdnapro-tasklist-run-card.force-focus:not(.trc-disabled) {
  outline: 2px solid var(--c-purple-500);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.25);
}

/* === Main row (dims to opacity .5 when the run is completed) === */
.qdnapro-tasklist-run-card .trc-main {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 8px 12px;
}

/* AFGEROND DIMT NIET MEER (Kim 06.08.2026). Hier stond `opacity: 0.5` op de hoofdrij van
   een afgeronde kaart. Die dimming had één doel: in een lijst waarin afgeronde en nog
   openstaande takenlijsten DOOR ELKAAR stonden moest het afgeronde werk naar achteren
   zakken. Die lijst bestaat niet meer - de oude dag-lijst van de PWA is op 06.08.2026
   verwijderd, en elk scherm dat nu een afgeronde kaart toont bevat alleen nog kaarten van
   één soort: de "Niet verstuurd"-bucket, het rechterpaneel op tablet en de nieuwe
   geschiedenis. Zonder die vermenging is een half doorzichtige kaart geen signaal meer maar
   gewoon slechter leesbaar. De check-badge, het woord "Afgerond" en de afrondtijd zeggen al
   wat er te zeggen valt.
   De .trc-disabled-stand verderop blijft wél dimmen: dat is een echte "kan nu niet"-stand,
   een andere boodschap dan "dit is klaar".
   De class `trc-main-completed` blijft de component wél zetten: bruikbaar haakje voor een
   consumer die de afgerond-stand toch anders wil tekenen, alleen zonder eigen opmaak hier.
   Commentaar met slashes-sterretje en niet met dubbele slashes: dit bestand wordt als PLATTE
   CSS naar de PWA gekopieerd (zie sync-v2-components.js), dus SCSS-commentaar hoort hier
   niet. */
.qdnapro-tasklist-run-card .trc-icon {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 2px;
}

.qdnapro-tasklist-run-card .trc-tile {
  width: 40px;
  height: 40px;
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: var(--trc-bg, #eef0f2);
}

.qdnapro-tasklist-run-card .trc-body {
  flex: 1;
  min-width: 0;
}

.qdnapro-tasklist-run-card .trc-name {
  font-size: 17px;
  color: var(--c-purple-500);
  line-height: 1.3;
}

.qdnapro-tasklist-run-card .trc-project {
  font-size: 15px;
  color: var(--c-grey-900, #0b0b0d);
  line-height: 1.3;
}

.qdnapro-tasklist-run-card .trc-meta {
  display: flex;
  align-items: center;
  padding: 4px 0;
}

.qdnapro-tasklist-run-card .trc-meta > qdnapro-icon {
  flex: none;
  color: var(--c-purple-500);
  margin-right: 8px;
}

.qdnapro-tasklist-run-card .trc-time {
  color: var(--c-grey-300);
}

.qdnapro-tasklist-run-card .trc-status {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: 24px;
  color: var(--c-favorite-heart);
}

/* === Footers === */
.qdnapro-tasklist-run-card .trc-footer {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 16px;
  border-top: 1px solid var(--c-grey-50);
}

/* Round slot in front of the location holds the ORGANISATION logo (Kim
   28.07.2026). It is only in the DOM when there IS a logo (Kim 24.08.2026):
   the empty placeholder circle carried no information. White disc, because an
   organisation logo is usually drawn on white and a grey disc behind it reads
   as a dirty edge. */
.qdnapro-tasklist-run-card .trc-org-logo {
  width: 24px;
  height: 24px;
  flex: none;
  border-radius: 50%;
  overflow: hidden;
  background: var(--c-bg-card);
  display: flex;
  align-items: center;
  justify-content: center;
}

/* contain, not cover: a logo is rarely square, and cover would crop the
   sides off a wide wordmark. Letterboxing inside the circle keeps it whole. */
.qdnapro-tasklist-run-card .trc-org-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.qdnapro-tasklist-run-card .trc-loc-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.qdnapro-tasklist-run-card .trc-loc-name {
  color: var(--c-purple-500);
}

.qdnapro-tasklist-run-card .trc-loc-address {
  color: var(--c-grey-300);
}

/* Afdeling van de check-in: derde regel IN de tekstkolom, met een klein
   gebouw-icoontje ervoor. Zelfde opbouw als .ao-header-place-dept in de
   takenlijst-header (_pwa-current.scss), zodat de kaart en de header dezelfde
   plaats + afdeling op dezelfde manier laten zien. Kleur is hier wel het navy
   van deze kaart (var(--c-purple-500), gelijk aan .trc-loc-name) in plaats van het
   header-navy: de header staat op een pastel vlak, deze footer op wit. */
.qdnapro-tasklist-run-card .trc-loc-dept {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  margin-top: 3px;
}

.qdnapro-tasklist-run-card .trc-loc-dept > qdnapro-icon {
  flex: none;
  color: rgba(64, 73, 154, 0.75);
}

/* Niet zwaarder dan de locatienaam erboven: de afdeling is een detail van de
   locatie, geen tweede titel. */
.qdnapro-tasklist-run-card .trc-loc-dept-name {
  min-width: 0;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.25;
  color: var(--c-purple-500);
}

.qdnapro-tasklist-run-card .trc-check {
  width: 24px;
  height: 24px;
  flex: none;
  border-radius: 50%;
  background: var(--c-purple-500);
  color: var(--c-text-on-action);
  display: flex;
  align-items: center;
  justify-content: center;
}

.qdnapro-tasklist-run-card .trc-completed-label {
  color: var(--c-purple-500);
  font-size: 15px;
  margin-right: 15px;
}

.qdnapro-tasklist-run-card .trc-completed-time {
  color: var(--c-purple-500);
  opacity: 0.5;
  font-size: 12px;
}

.qdnapro-tasklist-run-card .trc-hide {
  color: var(--c-purple-500);
  margin-left: auto;
  cursor: pointer;
}

.qdnapro-tasklist-run-card .trc-footer-unsynced {
  color: var(--c-warn-yellow-600);
  font-size: 15px;
}

/* === Disabled state ===
   Background stays white and border stays grey-100 (both deliberate, Kim
   28.07.2026 - a grey fill would vanish against the light grey page). Text
   goes to the button component's disabled text colour and the activity
   icon fades; hover / pressed / focus are suppressed via the :not(.trc-disabled)
   guards above. */
.qdnapro-tasklist-run-card.trc-disabled {
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-tasklist-run-card.trc-disabled .trc-tile qdnapro-activity-icon {
  opacity: 0.3;
}

.qdnapro-tasklist-run-card.trc-disabled .trc-name,
.qdnapro-tasklist-run-card.trc-disabled .trc-project,
.qdnapro-tasklist-run-card.trc-disabled .trc-time,
.qdnapro-tasklist-run-card.trc-disabled .trc-status,
.qdnapro-tasklist-run-card.trc-disabled .trc-loc-name,
.qdnapro-tasklist-run-card.trc-disabled .trc-loc-address,
.qdnapro-tasklist-run-card.trc-disabled .trc-loc-dept-name,
.qdnapro-tasklist-run-card.trc-disabled .trc-completed-label,
.qdnapro-tasklist-run-card.trc-disabled .trc-completed-time,
.qdnapro-tasklist-run-card.trc-disabled .trc-hide,
.qdnapro-tasklist-run-card.trc-disabled .trc-footer-unsynced {
  color: var(--c-text-disabled);
}

.qdnapro-tasklist-run-card.trc-disabled .trc-meta > qdnapro-icon,
.qdnapro-tasklist-run-card.trc-disabled .trc-loc-dept > qdnapro-icon {
  color: var(--c-text-disabled);
}

/* === Colour palette (qdnapro-tag light pastels, same tokens as qdnapro-tasklist-card) === */
.qdnapro-tasklist-run-card.trc-color-grey {
  --trc-bg: var(--c-grey-50);
}

.qdnapro-tasklist-run-card.trc-color-red {
  --trc-bg: var(--c-signal-red-bg);
}

.qdnapro-tasklist-run-card.trc-color-yellow {
  --trc-bg: var(--c-chip-yellow-bg);
}

.qdnapro-tasklist-run-card.trc-color-green {
  --trc-bg: var(--c-chip-green-bg);
}

.qdnapro-tasklist-run-card.trc-color-blue {
  --trc-bg: var(--c-signal-blue-bg);
}

.qdnapro-tasklist-run-card.trc-color-bright-blue {
  --trc-bg: var(--c-chip-bright-blue-2-bg);
}

.qdnapro-tasklist-run-card.trc-color-pink {
  --trc-bg: var(--c-signal-pink-bg);
}

.qdnapro-tasklist-run-card.trc-color-purple {
  --trc-bg: var(--c-chip-purple-bg);
}

/* === Dark mode - base card chrome ===
   Explicit dark overrides (standalone library preview has no --c-* tokens
   set, so light fallbacks would otherwise win). Values follow the same
   dark palette used across the other v2 components: surface var(--c-grey-800),
   hover var(--c-grey-700), pressed var(--c-grey-600), primary text var(--c-grey-50), muted var(--c-grey-400),
   subtle border rgba(255,255,255,0.10). */
[data-theme=dark] .qdnapro-tasklist-run-card {
  background: #2e3036;
  border-color: rgba(255, 255, 255, 0.1);
}

[data-theme=dark] .qdnapro-tasklist-run-card .trc-name {
  color: #c7cce8;
}

[data-theme=dark] .qdnapro-tasklist-run-card .trc-project {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-tasklist-run-card .trc-time {
  color: #a0a4b8;
}

[data-theme=dark] .qdnapro-tasklist-run-card .trc-footer {
  border-top-color: rgba(255, 255, 255, 0.1);
}

@media (hover: hover) {
  [data-theme=dark] .qdnapro-tasklist-run-card:not(.trc-disabled):hover {
    background: #40444d;
  }
}
[data-theme=dark] .qdnapro-tasklist-run-card.force-hover {
  background: #40444d;
}

[data-theme=dark] .qdnapro-tasklist-run-card:not(.trc-disabled):active {
  background: #565b66;
}

[data-theme=dark] .qdnapro-tasklist-run-card:not(.trc-disabled).is-pressed {
  background: #565b66;
}

[data-theme=dark] .qdnapro-tasklist-run-card.force-pressed {
  background: #565b66;
}

[data-theme=dark] .qdnapro-tasklist-run-card.trc-color-grey {
  --trc-bg: #40444d;
}

[data-theme=dark] .qdnapro-tasklist-run-card.trc-color-red {
  --trc-bg: #5a2b2b;
}

[data-theme=dark] .qdnapro-tasklist-run-card.trc-color-yellow {
  --trc-bg: #5a4d1f;
}

[data-theme=dark] .qdnapro-tasklist-run-card.trc-color-green {
  --trc-bg: #2a5544;
}

[data-theme=dark] .qdnapro-tasklist-run-card.trc-color-blue {
  --trc-bg: #2e3e54;
}

[data-theme=dark] .qdnapro-tasklist-run-card.trc-color-bright-blue {
  --trc-bg: #3a4a8a;
}

[data-theme=dark] .qdnapro-tasklist-run-card.trc-color-pink {
  --trc-bg: #4e2a36;
}

[data-theme=dark] .qdnapro-tasklist-run-card.trc-color-purple {
  --trc-bg: #3a3555;
}

.qdnapro-selection-bar {
  --qsb-bg: var(--c-bg-card, #ffffff);
  --qsb-border: var(--c-border-soft-2, #e6e9ef);
  --qsb-fg: var(--c-text-body, #0b0b0d);
  --qsb-fg-idle: var(--c-text-muted, #6e7280);
  --qsb-fg-disabled: var(--c-text-disabled, #898e99);
  --qsb-fg-danger: var(--c-signal-red-text, #c65a5a);
  --qsb-hover-bg: var(--c-bg-subtle-hover, #f0f1f2);
  --qsb-press-bg: var(--c-bg-subtle-press, #e7e9ec);
  --qsb-bottom-offset: 0px;
  --qsb-lift: 0px;
  --qsb-pad-y: 6px;
  --qsb-pad-x: 4px;
  --qsb-btn-max: 140px;
  --qsb-label-size: 11px;
  --qsb-gap: 2px;
  position: fixed;
  left: 0;
  right: 0;
  bottom: calc(var(--qsb-bottom-offset) + var(--qsb-lift));
  z-index: 99;
  display: flex;
  align-items: stretch;
  justify-content: center;
  padding: var(--qsb-pad-y) var(--qsb-pad-x);
  padding-bottom: calc(var(--qsb-pad-y) + max(0px, env(safe-area-inset-bottom, 0px) - var(--qsb-bottom-offset) - var(--qsb-lift)));
  background: var(--qsb-bg);
  color: var(--qsb-fg);
  font-family: var(--ff, "Inter", sans-serif);
  box-sizing: border-box;
}

.qdnapro-selection-bar *,
.qdnapro-selection-bar *::before,
.qdnapro-selection-bar *::after {
  box-sizing: border-box;
}

.qdnapro-selection-bar[hidden] {
  display: none;
}

.qdnapro-selection-bar[data-variant=flat] {
  border-top: 1px solid var(--qsb-border);
  border-radius: 0;
  box-shadow: 0 -2px 16px rgba(20, 25, 80, 0.1);
}

.qdnapro-selection-bar[data-variant=floating] {
  --qsb-lift: 12px;
  --qsb-pad-x: 6px;
  left: 12px;
  right: 12px;
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
  border: 1px solid var(--qsb-border);
  border-radius: var(--r-4, 16px);
  box-shadow: 0 8px 24px rgba(20, 25, 80, 0.18);
}

.qdnapro-selection-bar[data-mode=message] {
  --qsb-pad-x: 16px;
  --qsb-pad-y: 10px;
  --qsb-bottom-offset: 0px;
  --qsb-lift: 0px;
  left: 0;
  right: 0;
  z-index: 101;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 8px;
  text-align: left;
}

.qdnapro-selection-bar[data-mode=message] .qsb-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
  gap: 12px;
  min-width: 0;
}

.qdnapro-selection-bar[data-mode=message] .qsb-below {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.qdnapro-selection-bar[data-mode=message][data-variant=floating] {
  --qsb-pad-x: 16px;
  left: 0;
  right: 0;
  max-width: none;
  border: none;
  border-top: 1px solid var(--qsb-border);
  border-radius: 0;
  box-shadow: 0 -2px 16px rgba(20, 25, 80, 0.1);
}

.qdnapro-selection-bar[data-mode=message] .qsb-lead {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.qdnapro-selection-bar[data-mode=message] .qsb-lead > * {
  max-width: 100%;
  max-height: 100%;
}

.qdnapro-selection-bar[data-mode=message] .qsb-lead > qdnapro-icon,
.qdnapro-selection-bar[data-mode=message] .qsb-lead > qdnapro-icon svg {
  width: 24px;
  height: 24px;
  fill: currentColor;
}

.qdnapro-selection-bar[data-mode=message] .qsb-message {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.qdnapro-selection-bar[data-mode=message] .qsb-message__title {
  font-size: 15px;
  font-weight: var(--fw-semi, 600);
  line-height: 1.25;
  color: var(--qsb-fg);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.qdnapro-selection-bar[data-mode=message] .qsb-message__sub {
  font-size: 13px;
  font-weight: var(--fw-regular, 400);
  line-height: 1.3;
  color: var(--qsb-fg-idle);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-selection-bar[data-mode=message] .qsb-actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 8px;
}

.qdnapro-selection-bar[data-mode=message] .qdnapro-selection-bar-btn {
  flex: 0 0 auto;
  max-width: 96px;
  padding-left: 8px;
  padding-right: 8px;
}

.qdnapro-selection-bar-btn {
  flex: 1 1 0;
  min-width: 0;
  max-width: var(--qsb-btn-max);
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--qsb-gap);
  min-height: 44px;
  padding: 4px 2px;
  background: transparent;
  border: none;
  border-radius: var(--r-2, 8px);
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  color: var(--qsb-fg-idle);
  text-decoration: none;
  transition: background-color 120ms ease-out, color 120ms ease-out;
}

.qdnapro-selection-bar-btn .qsb-btn__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  flex: 0 0 auto;
}

.qdnapro-selection-bar-btn .qsb-btn__icon qdnapro-icon,
.qdnapro-selection-bar-btn .qsb-btn__icon svg {
  width: 24px;
  height: 24px;
  fill: currentColor;
  pointer-events: none;
}

.qdnapro-selection-bar-btn .qsb-btn__label {
  display: block;
  max-width: 100%;
  font-size: var(--qsb-label-size);
  font-weight: var(--fw-medium, 500);
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (hover: hover) {
  .qdnapro-selection-bar-btn:hover {
    background: var(--qsb-hover-bg);
    color: var(--qsb-fg);
  }
}
.qdnapro-selection-bar-btn[data-pressing=true] {
  background: var(--qsb-press-bg);
  color: var(--qsb-fg);
}

.qdnapro-selection-bar-btn:focus-visible {
  outline: 2px solid var(--focus-ring, #40499a);
  outline-offset: -2px;
}

.qdnapro-selection-bar-btn[data-tone=danger] {
  color: var(--qsb-fg-danger);
}

@media (hover: hover) {
  .qdnapro-selection-bar-btn[data-tone=danger]:hover {
    background: var(--c-signal-red-soft, #fff0f0);
    color: var(--qsb-fg-danger);
  }
}
.qdnapro-selection-bar-btn[data-tone=danger][data-pressing=true] {
  background: var(--c-signal-red-bg, #fee3e3);
  color: var(--qsb-fg-danger);
}

.qdnapro-selection-bar-btn[data-disabled=true] {
  color: var(--qsb-fg-disabled);
  cursor: default;
  pointer-events: none;
}

.qdnapro-selection-bar-btn[data-disabled=true][data-tone=danger] {
  color: var(--qsb-fg-disabled);
}

[data-theme-dark] .qdnapro-selection-bar,
[data-theme=dark] .qdnapro-selection-bar,
body[data-theme=dark] .qdnapro-selection-bar {
  --qsb-fg-danger: var(--c-warn-red-400, #f87171);
}

[data-theme-dark] .qdnapro-selection-bar[data-variant=flat],
[data-theme=dark] .qdnapro-selection-bar[data-variant=flat],
body[data-theme=dark] .qdnapro-selection-bar[data-variant=flat] {
  box-shadow: 0 -2px 16px rgba(0, 0, 0, 0.45);
}

[data-theme-dark] .qdnapro-selection-bar[data-variant=floating],
[data-theme=dark] .qdnapro-selection-bar[data-variant=floating],
body[data-theme=dark] .qdnapro-selection-bar[data-variant=floating] {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
}

[data-theme-dark] .qdnapro-selection-bar-btn[data-tone=danger][data-pressing=true],
[data-theme=dark] .qdnapro-selection-bar-btn[data-tone=danger][data-pressing=true],
body[data-theme=dark] .qdnapro-selection-bar-btn[data-tone=danger][data-pressing=true] {
  background: rgba(248, 113, 113, 0.16);
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-selection-bar-btn {
    transition: none;
  }
}
.qdnapro-selection-bar {
  transition: transform 260ms cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: transform;
}

.qdnapro-selection-bar[data-entering=true] {
  transform: translateY(120%);
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-selection-bar {
    transition: none;
  }
  .qdnapro-selection-bar[data-entering=true] {
    transform: none;
  }
}
.qdnapro-selection-bar[data-color=purple] {
  --qsb-bg: var(--c-bg-secondary-purple, #e6e9ff);
  --qsb-border: var(--c-sidebar-icon, #c5c9eb);
  --qsb-fg-idle: var(--c-purple-500, #40499a);
  --qsb-fg: var(--c-purple-600, #333a7b);
  --qsb-hover-bg: var(--c-purple-100, #c0c5ff);
  --qsb-press-bg: var(--c-purple-100, #c0c5ff);
  --qsb-fg-danger: var(--c-warn-red-500, #dc2626);
}

.qdnapro-selection-bar[data-color=purple] .qdnapro-selection-bar-btn[data-tone=danger] {
  background: var(--c-bg-card, #ffffff);
}

[data-theme-dark] .qdnapro-selection-bar[data-color=purple],
[data-theme=dark] .qdnapro-selection-bar[data-color=purple],
body[data-theme=dark] .qdnapro-selection-bar[data-color=purple] {
  --qsb-fg-idle: var(--c-purple-200, #a5acff);
  --qsb-fg: var(--c-purple-100, #c0c5ff);
  --qsb-hover-bg: rgba(165, 172, 255, 0.16);
  --qsb-press-bg: rgba(165, 172, 255, 0.24);
}

.qdnapro-message-header [hidden] {
  display: none;
}

.qdnapro-message-header {
  --mh-heading: var(--c-purple-500, #40499a);
  --mh-fg: var(--c-text-body, #0b0b0d);
  --mh-muted: var(--c-text-muted, #6e7280);
  --mh-border: var(--c-border-soft, rgba(0, 0, 0, 0.07));
  --mh-bg: var(--c-bg-card, #ffffff);
  display: flex;
  flex-direction: column;
  background: var(--mh-bg);
  animation: inbox-detail-in 200ms ease-out;
  box-sizing: border-box;
}
.qdnapro-message-header *, .qdnapro-message-header *::before, .qdnapro-message-header *::after {
  box-sizing: border-box;
}

.mh-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  height: 56px;
  padding: 0 8px 0 20px;
  border-bottom: 1px solid var(--mh-border);
}

.mh-title-label {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--mh-heading);
  font-size: 16px;
  font-weight: 600;
}

.mh-title-actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 4px;
}
.mh-title-actions:empty {
  display: none;
}

.mh-action-sep {
  flex: 0 0 auto;
  align-self: center;
  width: 1px;
  height: 24px;
  background: var(--mh-border);
}

.mh-sender {
  display: flex;
  gap: 16px;
  padding: 16px 20px 12px;
  border-bottom: 1px solid var(--mh-border);
}

.mh-sender-avatar {
  flex: 0 0 auto;
}

.mh-sender-body {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.mh-sender-row {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px;
}

.mh-sender-name {
  color: var(--mh-fg);
  font-size: 15px;
  font-weight: 600;
}

.mh-sender-email {
  color: var(--mh-muted);
  font-size: 14px;
  font-weight: 500;
}

.mh-sender-date {
  margin-left: auto;
  flex-shrink: 0;
  color: var(--mh-muted);
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}

.mh-to,
.mh-cc {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 4px;
  color: var(--mh-muted);
  font-size: 12px;
  font-weight: 500;
}

.mh-field-label {
  flex-shrink: 0;
}

.mh-person {
  display: inline-flex;
  align-items: baseline;
  gap: 0;
}

.mh-person-name {
  font-weight: 600;
  padding-right: 4px;
}

.mh-tags {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
}

.qdnapro-answer-row [hidden] {
  display: none;
}

.qdnapro-answer-row {
  --ar-heading: var(--c-purple-500, #40499a);
  --ar-fg: var(--c-text-body, #0b0b0d);
  --ar-muted: var(--c-text-muted, #6e7280);
  --ar-icon-color: var(--c-grey-300);
  --ar-pill-bg: var(--c-bg-card-hover, #f7f8fa);
  display: flex;
  flex-direction: column;
  padding: 4px 8px;
  box-sizing: border-box;
}
.qdnapro-answer-row *, .qdnapro-answer-row *::before, .qdnapro-answer-row *::after {
  box-sizing: border-box;
}

.ar-question {
  display: flex;
  align-items: center;
  gap: 6px;
  min-height: 20px;
  color: var(--ar-heading);
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
}

.ar-icon {
  flex: 0 0 auto;
  color: var(--ar-icon-color);
}

.ar-question-label {
  flex: 1 1 auto;
  min-width: 0;
}

.ar-node-id {
  flex: 0 0 auto;
  margin-left: 6px;
  font-size: 10px;
  font-weight: 400;
  line-height: 1;
  color: var(--ar-icon-color);
}

.ar-draft {
  flex: 0 0 auto;
  padding: 1px 6px;
  border-radius: 999px;
  background: var(--ar-pill-bg);
  color: var(--ar-muted);
  font-size: 11px;
  font-weight: 500;
}

.ar-answer {
  padding-left: 24px;
  color: var(--ar-fg);
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  white-space: pre-wrap;
  overflow-wrap: break-word;
}

.qdnapro-message-actionbar [hidden] {
  display: none;
}

.qdnapro-message-actionbar {
  --mab-fg: var(--c-purple-500, #40499a);
  --mab-muted: var(--c-purple-500, #40499a);
  --mab-bg: var(--c-bg-subtle-purple);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 16px;
  border-radius: 8px;
  background: var(--mab-bg);
  color: var(--mab-fg);
  box-sizing: border-box;
}
.qdnapro-message-actionbar *, .qdnapro-message-actionbar *::before, .qdnapro-message-actionbar *::after {
  box-sizing: border-box;
}

.mab-info {
  display: flex;
  align-items: center;
  gap: 10px;
}

.mab-info-icon {
  flex-shrink: 0;
  color: var(--mab-fg);
}

.mab-note {
  color: var(--mab-fg);
}

.mab-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
  font-weight: 500;
}
.mab-actions:empty {
  display: none;
}

.qdnapro-timeline-marker [hidden] {
  display: none;
}

.qdnapro-timeline-marker {
  --tm-fg: var(--c-text-disabled-pp);
  --tm-border: var(--c-border-tree);
  --tm-bg: var(--c-bg-card, #fff);
  display: flex;
  justify-content: center;
  padding: 8px 0;
  color: var(--tm-fg);
  font-size: 14px;
  font-weight: 400;
  box-sizing: border-box;
}
.qdnapro-timeline-marker *, .qdnapro-timeline-marker *::before, .qdnapro-timeline-marker *::after {
  box-sizing: border-box;
}

[data-theme=dark] .qdnapro-timeline-marker {
  --tm-fg: var(--c-text-muted, #6e7280);
  --tm-border: var(--c-border-card, rgba(255, 255, 255, 0.1));
}

.tm-block {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: center;
  max-width: 100%;
  padding: 6px 16px;
  border: 1px solid var(--tm-border);
  border-radius: 12px;
  background-color: var(--tm-bg);
}

.tm-head {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1 1 auto;
  min-width: 0;
}

.tm-icon {
  flex: 0 0 auto;
}

.tm-label {
  min-width: 0;
  overflow-wrap: break-word;
}

.tm-sep {
  flex: 0 0 auto;
}

.tm-block > qdnapro-avatar {
  flex: 0 0 auto;
  display: inline-flex;
  line-height: 0;
}

.tm-time {
  flex: 0 0 auto;
  white-space: nowrap;
}

.qdnapro-lottie {
  --ql-size: 48px;
  position: relative;
  display: inline-block;
  width: var(--ql-size);
  height: var(--ql-size);
  line-height: 0;
  vertical-align: middle;
}

.qdnapro-lottie__stage,
.qdnapro-lottie__poster {
  display: block;
  width: 100%;
  height: 100%;
}

.qdnapro-lottie__stage svg {
  display: block;
  width: 100% !important;
  height: 100% !important;
}

.qdnapro-lottie__poster {
  position: absolute;
  inset: 0;
  object-fit: contain;
}

.qdnapro-lottie__poster[hidden] {
  display: none;
}

.qdnapro-lottie[data-trigger=click] {
  cursor: pointer;
}

.qdnapro-lottie:focus-visible {
  outline: 2px solid var(--focus-ring, #5b4dd1);
  outline-offset: 2px;
  border-radius: 4px;
}

.qdnapro-lottie[data-state=error] .qdnapro-lottie__stage {
  display: none;
}

/* Cross-document View Transitions (Optie B, Jan 2026-06-17): smooth the
   full-page navigations so the content cross-fades instead of hard-cutting,
   while the nav-rail (its own `view-transition-name` below) stays put and its
   active-item highlight glides across. Chrome honours this for same-origin MPA
   navigation; browsers/pages that don't opt in fall back to a normal instant
   navigation — no animation, no regression. */
@view-transition {
  navigation: auto;
}
/* No-dip transition: the default cross-fade fades the old out (1→0) AND the new
   in (0→1) simultaneously, so at the crossover both layers are translucent and
   the light page background bleeds through — the "flash to light". Instead, keep
   the OLD page fully opaque underneath and fade the NEW in on top of it, so there
   is never a see-through moment. The nav-rail (identical across pages) holds
   perfectly static — no fade, no flicker. */
::view-transition-old(root) {
  animation: none;
}

::view-transition-new(root) {
  animation: qdna-vt-fade-in 200ms ease both;
}

@keyframes qdna-vt-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
::view-transition-old(qdna-nav-rail),
::view-transition-new(qdna-nav-rail) {
  animation: none;
}

html, body {
  height: 100%;
}

/* ── inline code ────────────────────────────────────────────────────────────────────────────
   Bootstrap geeft ÉLK `<code>` zijn eigen roze (`#e83e8c`) — een kleur die verder nergens in
   QDNA Pro voorkomt en die niet uit de tokenbibliotheek komt. Zichtbaar op onder meer de
   parameter- en meetwaarde-labels in de rapport-editor en op de technische waarden in de
   ontwikkelaarspagina's (Jan, 2026-08-03: "roze is een kleur die verder nergens voorkomt").

   Vervangen door `--c-brand-purple`: hetzelfde merkpaars waarmee de app al haar kleine
   technische chips zet (het conditie-chipje in de documenteditor, de selectie-chip in de
   blokkenlijst), en — anders dan een kale `--c-purple-500` — een SEMANTISCHE token die in het
   donkere thema meekantelt naar een licht paars.

   ⚠️ Dit werkt op gelijke specificiteit (0,0,1) en wint dus puur op VOLGORDE: `style-v1.css`
      staat ná `bootstrap.min.css`. Verhuist de stylesheet-volgorde ooit, dan is dit de eerste
      regel die stil terugvalt op roze. */
code {
  color: var(--c-brand-purple);
}

html.app-scroll-locked, html.app-scroll-locked body {
  overflow: hidden !important;
}

/* Same paint surface on <html> as on <body>. Without this, every
   navigation between pages briefly paints the browser's default white
   background between unload and the new page's first paint — visible
   as a white flash when clicking around the nav-rail. (Kim 2026-06-07) */
/* Page surface comes from the SEMANTIC token, not from a SCSS variable.
   A SCSS variable is resolved at compile time (`colors.$light-purple-100`
   shipped as a literal `#e6e9ff`), so there was nothing left for a theme to
   redefine at runtime — the page background could never follow dark mode.
   `--c-bg-page` is declared for both themes in
   components/v2/design-tokens/_design-tokens.scss, so this is now the ONE
   place the page surface is set and it flips by itself. Same for the body
   text colour: a dark surface with `$text-body-color` on it is unreadable.
   Do NOT reintroduce a per-page body background; point it here instead.
   [Kim 2026-08-07] */
html {
  background: var(--c-bg-page);
}

body {
  font-family: "Inter", sans-serif;
  font-optical-sizing: auto;
  font-weight: normal;
  font-style: normal;
  margin: 0;
  padding: 0;
  color: var(--c-text-body);
  background: var(--c-bg-page);
}

.ms-drop {
  z-index: 1050;
  width: 40% !important;
}
.ms-drop ul > li.multiple {
  width: 100% !important;
}

.ms-choice > div {
  background: none !important;
}
.ms-choice > div.open {
  background: none !important;
}

.qdna-page {
  display: flex;
  min-height: 100%;
  align-items: flex-start;
}
.qdna-page qdnapro-nav-rail {
  flex-shrink: 0;
  position: sticky;
  top: 0;
  height: 100vh;
  align-self: flex-start;
  view-transition-name: qdna-nav-rail;
}
.qdna-page {
  /* components.js is a deferred module, so on every (full-page) navigation the
     raw <qdnapro-nav-rail> exists for a beat before it upgrades — with no width
     or background it collapses the menu strip and the lavender page bg flashes
     through, then the rail pops to 208px dark purple and the content reflows.
     Reserve the expanded width + nav surface up front (render-blocking CSS) so
     the rail looks identical before/after upgrade → no reflow, no flash.
     208px = the expanded width; var fallback = the resolved --c-nav-bg. */
}
.qdna-page qdnapro-nav-rail:not(:defined) {
  width: 208px;
  background: var(--c-nav-bg, #3a4290);
}
.qdna-page .qdna-page-content {
  flex-grow: 1;
  min-width: 0;
  overflow-x: clip;
}

/* Fix-A companion for collapsed-rail users: when <html> is flagged
   `rail-collapsed` (set pre-paint by the inline script in header.html, reading
   the saved localStorage preference), reserve the COLLAPSED rail width for the
   not-yet-upgraded rail instead of the default 208px. Without this a user who
   prefers the rail collapsed would see a 208→collapsed reflow on every
   navigation (and a view-transition size mismatch). 84px must match the
   collapsed width in _nav-rail.scss. */
html.rail-collapsed .qdna-page qdnapro-nav-rail:not(:defined) {
  width: 84px;
}

.ts-section, .qdna-section {
  height: 100%;
  padding-left: 16px;
  padding-right: 16px;
}

:root {
  --qdna-topbar-h: 44px;
}

.qdna-navbar {
  width: 100%;
  height: var(--qdna-topbar-h);
  background-color: var(--c-bg-page);
  position: sticky;
  top: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  padding: 0 16px;
  justify-content: space-between;
}
.qdna-navbar .qdna-breadcrumbs {
  display: flex;
  gap: 8px;
  align-items: center;
}
.qdna-navbar .qdna-breadcrumbs a.qdna-breadcrumb {
  color: #1e1f20;
  text-decoration: none;
  font-size: 15px;
  display: flex;
  gap: 4px;
  align-items: center;
  padding: 0 8px;
}
.qdna-navbar .qdna-breadcrumbs a.qdna-breadcrumb:hover {
  text-decoration: underline;
}
.qdna-navbar .qdna-breadcrumbs a.qdna-breadcrumb.active:hover {
  text-decoration: none;
}
.qdna-navbar .navbar-items {
  display: flex;
  gap: 12px;
  align-items: center;
}

#navbar-bell-btn.qdnapro-icon-btn,
#navbar-nova-btn.qdnapro-icon-btn,
#navbar-app-btn.qdnapro-icon-btn {
  color: #40499a;
}
#navbar-bell-btn.qdnapro-icon-btn:hover:not(.icon-btn-disabled),
#navbar-nova-btn.qdnapro-icon-btn:hover:not(.icon-btn-disabled),
#navbar-app-btn.qdnapro-icon-btn:hover:not(.icon-btn-disabled) {
  background-color: #daddf2;
}

.al-backdrop {
  position: fixed;
  inset: 0;
  z-index: 10100;
  background: rgba(10, 12, 40, 0.72);
  backdrop-filter: blur(4px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding-top: 20px;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.al-backdrop[hidden] {
  display: none;
}

.al-shell {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding-bottom: 32px;
}

.al-chrome {
  display: flex;
  align-items: center;
  gap: 12px;
}

.al-devices {
  display: flex;
  align-items: center;
  gap: 4px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 8px;
  padding: 3px;
}

.al-device-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 6px;
  border: none;
  background: transparent;
  color: rgba(255, 255, 255, 0.65);
  font-size: 18px;
  cursor: pointer;
  transition: background 140ms, color 140ms;
}
.al-device-btn:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}
.al-device-btn--active {
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
}

.al-close-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.75);
  font-size: 18px;
  cursor: pointer;
  transition: background 140ms, color 140ms;
}
.al-close-btn:hover {
  background: rgba(255, 255, 255, 0.16);
  color: #fff;
}

.al-frame {
  position: relative;
  background: #1a1b2e;
  border: 3px solid #3a3b55;
  border-radius: 40px;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.06), 0 24px 80px rgba(0, 0, 0, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  transition: width 280ms cubic-bezier(0.4, 0, 0.2, 1), height 280ms cubic-bezier(0.4, 0, 0.2, 1), border-radius 280ms;
  overflow: hidden;
}
.al-frame--phone {
  width: 375px;
  height: 812px;
  border-radius: 44px;
}
.al-frame--tablet-portrait {
  width: 768px;
  height: 1024px;
  border-radius: 24px;
}
.al-frame--tablet-landscape {
  width: 1024px;
  height: 768px;
  border-radius: 24px;
}
.al-frame--phone-landscape {
  width: 812px;
  height: 375px;
  border-radius: 32px;
}
.al-frame--desktop {
  width: min(1680px, 96vw);
  height: calc(100vh - 140px);
  max-height: 1100px;
  border-radius: 12px;
}

.al-notch {
  flex-shrink: 0;
  width: 120px;
  height: 28px;
  margin-top: 6px;
  background: #1a1b2e;
  border-radius: 0 0 18px 18px;
  z-index: 2;
}
.al-frame--tablet-portrait .al-notch, .al-frame--tablet-landscape .al-notch, .al-frame--phone-landscape .al-notch, .al-frame--desktop .al-notch {
  display: none;
}

.al-screen {
  flex: 1;
  width: 100%;
  background: #fff;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.al-frame--tablet-portrait > .al-screen,
.al-frame--tablet-landscape > .al-screen,
.al-frame--desktop > .al-screen {
  box-sizing: border-box;
  padding: 22px;
}

.al-frame--phone-landscape > .al-screen {
  box-sizing: border-box;
  padding: 16px;
}

.al-iframe {
  width: 100%;
  height: 100%;
  border: none;
  display: block;
}

.al-home-bar {
  flex-shrink: 0;
  width: 120px;
  height: 5px;
  margin: 8px auto;
  background: rgba(255, 255, 255, 0.25);
  border-radius: 3px;
}
.al-frame--tablet-portrait .al-home-bar, .al-frame--tablet-landscape .al-home-bar, .al-frame--phone-landscape .al-home-bar, .al-frame--desktop .al-home-bar {
  display: none;
}

.al-live-notice {
  position: absolute;
  top: 46px;
  left: 12px;
  right: 12px;
  z-index: 3;
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 12px 14px;
  border-radius: 12px;
  background: #b04a42;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.28);
  opacity: 0;
  transform: translateY(-10px);
  pointer-events: none;
  transition: opacity 220ms ease, transform 220ms ease;
}
.al-live-notice--show {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
@media (prefers-reduced-motion: reduce) {
  .al-live-notice {
    transition: none;
  }
}
.al-live-notice__icon {
  flex: 0 0 auto;
  margin-top: 1px;
  font-size: 22px;
  line-height: 1;
  color: #fff;
}
.al-live-notice__body {
  flex: 1 1 auto;
  min-width: 0;
}
.al-live-notice__title {
  margin: 0 0 3px;
  font-size: 14px;
  font-weight: 600;
  color: #fff;
}
.al-live-notice__text {
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.45;
  color: #fbe6e4;
}
.al-live-notice__ok {
  display: inline-block;
  padding: 5px 18px;
  font-size: 13px;
  font-weight: 500;
  color: #fff;
  background: rgba(255, 255, 255, 0.16);
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: 8px;
  cursor: pointer;
  transition: background 140ms ease;
}
.al-live-notice__ok:hover {
  background: rgba(255, 255, 255, 0.28);
}
.al-live-notice__ok:active {
  transform: scale(0.98);
}
.al-frame--tablet-portrait .al-live-notice, .al-frame--tablet-landscape .al-live-notice {
  left: 16px;
  right: auto;
  max-width: 420px;
  top: 16px;
}

@keyframes nova-soft-pulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.12);
  }
}
#navbar-nova-btn.qdnapro-icon-btn {
  transform-origin: center;
  animation: nova-soft-pulse 2.6s ease-in-out infinite;
}
#navbar-nova-btn.qdnapro-icon-btn:hover {
  animation-play-state: paused;
}

@media (prefers-reduced-motion: reduce) {
  #navbar-nova-btn.qdnapro-icon-btn {
    animation: none;
  }
}
#navbar-notification-menu {
  background: rgba(247, 248, 253, 0.5) !important;
  backdrop-filter: blur(28px) saturate(1.5);
  -webkit-backdrop-filter: blur(28px) saturate(1.5);
  border: none;
  border-radius: 14px;
  box-shadow: 0 12px 40px rgba(40, 46, 100, 0.18);
  overflow: hidden;
  padding: 0 !important;
  scrollbar-width: thin;
  scrollbar-color: rgba(40, 46, 100, 0.25) transparent;
}
#navbar-notification-menu::-webkit-scrollbar {
  width: 8px;
}
#navbar-notification-menu::-webkit-scrollbar-track {
  background: transparent;
}
#navbar-notification-menu::-webkit-scrollbar-thumb {
  background: rgba(40, 46, 100, 0.25);
  border-radius: 4px;
}
#navbar-notification-menu::-webkit-scrollbar-thumb:hover {
  background: rgba(40, 46, 100, 0.4);
}

.user-profile-dropdown .user-profile-btn {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 4px 8px;
  border-radius: 8px;
  user-select: none;
  cursor: pointer;
  border: 1px solid #40499a;
  color: #40499a;
  white-space: nowrap;
}
.user-profile-dropdown .user-profile-btn img.profile-picture {
  width: 29px;
  height: 29px;
  aspect-ratio: 1/1;
  border-radius: calc(infinity * 1px);
  user-select: inherit;
}
.user-profile-dropdown .user-profile-btn .profile-content {
  font-size: 16px;
  font-weight: 400;
}
.user-profile-dropdown .user-profile-btn:hover {
  background: #daddf2;
}
.user-profile-dropdown .user-profile-details {
  border: none;
  z-index: 1;
}
.user-profile-dropdown .user-profile-details .user-card {
  display: flex;
  align-items: center;
  flex-direction: column;
  margin-bottom: 1rem;
  width: 301px;
}
.user-profile-dropdown .user-profile-details .user-card .user-image {
  position: relative;
  margin-bottom: 1.5rem;
}
.user-profile-dropdown .user-profile-details .user-card .user-image img.image {
  width: 124px;
  height: 124px;
  border-radius: 50%;
  object-fit: cover;
}
.user-profile-dropdown .user-profile-details .user-card .user-image .settings-icon {
  width: 40px;
  height: 40px;
  background-color: #F0F1F2;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  position: absolute;
  right: -8px;
  bottom: -8px;
}
.user-profile-dropdown .user-profile-details .user-card .user-info {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}
.user-profile-dropdown .user-profile-details .user-card .user-info .info-name {
  font-weight: 800;
  color: #202124;
}
.user-profile-dropdown .user-profile-details .user-card .user-info .info-email {
  color: #6B7280;
}

.ts-load-large, .ts-load-statusbar {
  position: fixed;
  top: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  z-index: 9999;
  display: none;
}
.ts-load-large--in, .ts-load-statusbar--in {
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.5);
  height: 100%;
  width: 100%;
}

.ts-loader, .ts-loader:after {
  border-radius: 50%;
  width: 10em;
  height: 10em;
}

.ts-loader {
  font-size: 10px;
  position: relative;
  text-indent: -9999em;
  border-top: 1.1em solid rgba(255, 255, 255, 0.2);
  border-right: 1.1em solid rgba(255, 255, 255, 0.2);
  border-bottom: 1.1em solid rgba(255, 255, 255, 0.2);
  border-left: 1.1em solid #ffffff;
  -webkit-transform: translateZ(0);
  -ms-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-animation: load8 1.1s infinite linear;
  animation: load8 1.1s infinite linear;
}

@-webkit-keyframes load8 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes load8 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
.flash-message {
  padding: 16px;
  position: absolute;
  width: 100%;
  top: 24px;
}
.flash-message .alert {
  padding: 8px 24px;
  font-size: 14px;
}

qdnapro-nav-item[href="/v1/kwaliteitslandschap"] .nav-item-label {
  font-size: 12.5px;
  letter-spacing: -0.015em;
}

.tox.tox-silver-sink,
.tox-tinymce-aux {
  z-index: 100000 !important;
}

.tox.tox-tinymce .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled),
.tox.tox-silver-sink .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled),
.tox.tox-tinymce-aux .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled) {
  background-color: var(--c-bg-secondary-purple);
  color: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled):focus::after,
.tox.tox-silver-sink .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled):focus::after,
.tox.tox-tinymce-aux .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled):focus::after {
  box-shadow: 0 0 0 2px var(--c-brand-purple) inset;
}
.tox.tox-tinymce .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled):focus::after,
.tox.tox-silver-sink .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled):focus::after,
.tox.tox-tinymce-aux .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled):focus::after {
  box-shadow: 0 0 0 2px var(--c-brand-purple);
}
.tox.tox-tinymce .tox-image-selector-menu .tox-collection__item-checkmark svg path,
.tox.tox-silver-sink .tox-image-selector-menu .tox-collection__item-checkmark svg path,
.tox.tox-tinymce-aux .tox-image-selector-menu .tox-collection__item-checkmark svg path {
  fill: var(--c-brand-purple);
  stroke: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-edit-area::before,
.tox.tox-silver-sink .tox-edit-area::before,
.tox.tox-tinymce-aux .tox-edit-area::before {
  border-width: 1px;
  border-color: var(--c-brand-purple);
  border-radius: 0;
  box-shadow: inset 0 0 0 3px var(--c-action-25);
}
.tox.tox-tinymce .tox-button,
.tox.tox-tinymce .tox-button[disabled],
.tox.tox-silver-sink .tox-button,
.tox.tox-silver-sink .tox-button[disabled],
.tox.tox-tinymce-aux .tox-button,
.tox.tox-tinymce-aux .tox-button[disabled] {
  background-color: var(--c-brand-purple);
  border-color: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-button::before,
.tox.tox-silver-sink .tox-button::before,
.tox.tox-tinymce-aux .tox-button::before {
  box-shadow: inset 0 0 0 1px #fff, 0 0 0 2px var(--c-brand-purple);
}
.tox.tox-tinymce .tox-naked-btn,
.tox.tox-silver-sink .tox-naked-btn,
.tox.tox-tinymce-aux .tox-naked-btn {
  color: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-checkbox__icons .tox-checkbox-icon__checked svg,
.tox.tox-tinymce .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg,
.tox.tox-silver-sink .tox-checkbox__icons .tox-checkbox-icon__checked svg,
.tox.tox-silver-sink .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg,
.tox.tox-tinymce-aux .tox-checkbox__icons .tox-checkbox-icon__checked svg,
.tox.tox-tinymce-aux .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg {
  fill: var(--c-brand-purple);
}
.tox.tox-tinymce input.tox-checkbox__input:focus + .tox-checkbox__icons,
.tox.tox-silver-sink input.tox-checkbox__input:focus + .tox-checkbox__icons,
.tox.tox-tinymce-aux input.tox-checkbox__input:focus + .tox-checkbox__icons {
  box-shadow: inset 0 0 0 1px var(--c-brand-purple);
}
.tox.tox-tinymce .tox-custom-editor:focus-within,
.tox.tox-tinymce .tox-focusable-wrapper:focus,
.tox.tox-tinymce .tox-listboxfield .tox-listbox--select:focus,
.tox.tox-tinymce .tox-textarea-wrap:focus-within,
.tox.tox-tinymce .tox-textarea:focus,
.tox.tox-tinymce .tox-textfield:focus,
.tox.tox-tinymce .tox-toolbar-textfield:focus,
.tox.tox-tinymce .tox-selectfield select:focus,
.tox.tox-silver-sink .tox-custom-editor:focus-within,
.tox.tox-silver-sink .tox-focusable-wrapper:focus,
.tox.tox-silver-sink .tox-listboxfield .tox-listbox--select:focus,
.tox.tox-silver-sink .tox-textarea-wrap:focus-within,
.tox.tox-silver-sink .tox-textarea:focus,
.tox.tox-silver-sink .tox-textfield:focus,
.tox.tox-silver-sink .tox-toolbar-textfield:focus,
.tox.tox-silver-sink .tox-selectfield select:focus,
.tox.tox-tinymce-aux .tox-custom-editor:focus-within,
.tox.tox-tinymce-aux .tox-focusable-wrapper:focus,
.tox.tox-tinymce-aux .tox-listboxfield .tox-listbox--select:focus,
.tox.tox-tinymce-aux .tox-textarea-wrap:focus-within,
.tox.tox-tinymce-aux .tox-textarea:focus,
.tox.tox-tinymce-aux .tox-textfield:focus,
.tox.tox-tinymce-aux .tox-toolbar-textfield:focus,
.tox.tox-tinymce-aux .tox-selectfield select:focus {
  border-color: var(--c-brand-purple);
  box-shadow: 0 0 0 3px var(--c-action-25);
}
.tox.tox-tinymce .tox-color-input span:focus:not([aria-disabled=true]),
.tox.tox-tinymce .tox-color-input span:hover:not([aria-disabled=true]),
.tox.tox-silver-sink .tox-color-input span:focus:not([aria-disabled=true]),
.tox.tox-silver-sink .tox-color-input span:hover:not([aria-disabled=true]),
.tox.tox-tinymce-aux .tox-color-input span:focus:not([aria-disabled=true]),
.tox.tox-tinymce-aux .tox-color-input span:hover:not([aria-disabled=true]) {
  border-color: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-dialog__body-nav-item:focus,
.tox.tox-silver-sink .tox-dialog__body-nav-item:focus,
.tox.tox-tinymce-aux .tox-dialog__body-nav-item:focus {
  background-color: rgba(64, 73, 154, 0.08);
}
.tox.tox-tinymce .tox-tbtn:focus::after,
.tox.tox-tinymce .tox-tbtn--enabled:focus::after,
.tox.tox-tinymce .tox-mbtn:focus:not(:disabled)::after,
.tox.tox-tinymce .tox-split-button:focus::after,
.tox.tox-tinymce .tox-number-input:focus::after,
.tox.tox-tinymce .tox-number-input .tox-input-wrapper:focus::after,
.tox.tox-tinymce .tox-number-input .tox-input-wrapper:has(input:focus)::after,
.tox.tox-tinymce .tox-number-input button:focus::after,
.tox.tox-tinymce .tox-statusbar a:focus-visible::after,
.tox.tox-tinymce .tox-statusbar__path-item:focus-visible::after,
.tox.tox-tinymce .tox-statusbar__wordcount:focus-visible::after,
.tox.tox-tinymce .tox-statusbar__resize-handle:focus-visible::after,
.tox.tox-silver-sink .tox-tbtn:focus::after,
.tox.tox-silver-sink .tox-tbtn--enabled:focus::after,
.tox.tox-silver-sink .tox-mbtn:focus:not(:disabled)::after,
.tox.tox-silver-sink .tox-split-button:focus::after,
.tox.tox-silver-sink .tox-number-input:focus::after,
.tox.tox-silver-sink .tox-number-input .tox-input-wrapper:focus::after,
.tox.tox-silver-sink .tox-number-input .tox-input-wrapper:has(input:focus)::after,
.tox.tox-silver-sink .tox-number-input button:focus::after,
.tox.tox-silver-sink .tox-statusbar a:focus-visible::after,
.tox.tox-silver-sink .tox-statusbar__path-item:focus-visible::after,
.tox.tox-silver-sink .tox-statusbar__wordcount:focus-visible::after,
.tox.tox-silver-sink .tox-statusbar__resize-handle:focus-visible::after,
.tox.tox-tinymce-aux .tox-tbtn:focus::after,
.tox.tox-tinymce-aux .tox-tbtn--enabled:focus::after,
.tox.tox-tinymce-aux .tox-mbtn:focus:not(:disabled)::after,
.tox.tox-tinymce-aux .tox-split-button:focus::after,
.tox.tox-tinymce-aux .tox-number-input:focus::after,
.tox.tox-tinymce-aux .tox-number-input .tox-input-wrapper:focus::after,
.tox.tox-tinymce-aux .tox-number-input .tox-input-wrapper:has(input:focus)::after,
.tox.tox-tinymce-aux .tox-number-input button:focus::after,
.tox.tox-tinymce-aux .tox-statusbar a:focus-visible::after,
.tox.tox-tinymce-aux .tox-statusbar__path-item:focus-visible::after,
.tox.tox-tinymce-aux .tox-statusbar__wordcount:focus-visible::after,
.tox.tox-tinymce-aux .tox-statusbar__resize-handle:focus-visible::after {
  box-shadow: 0 0 0 2px var(--c-brand-purple);
}
.tox.tox-tinymce .tox-navobj-bordered-focus.tox-navobj-bordered::before,
.tox.tox-silver-sink .tox-navobj-bordered-focus.tox-navobj-bordered::before,
.tox.tox-tinymce-aux .tox-navobj-bordered-focus.tox-navobj-bordered::before {
  border-color: var(--c-brand-purple);
  box-shadow: 0 0 0 1px var(--c-brand-purple);
}
.tox.tox-tinymce .tox-notification:focus,
.tox.tox-silver-sink .tox-notification:focus,
.tox.tox-tinymce-aux .tox-notification:focus {
  border-color: var(--c-brand-purple);
  box-shadow: 0 0 0 1px var(--c-brand-purple);
}
.tox.tox-tinymce .tox-insert-table-picker .tox-insert-table-picker__selected,
.tox.tox-silver-sink .tox-insert-table-picker .tox-insert-table-picker__selected,
.tox.tox-tinymce-aux .tox-insert-table-picker .tox-insert-table-picker__selected {
  background-color: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-slider__handle,
.tox.tox-silver-sink .tox-slider__handle,
.tox.tox-tinymce-aux .tox-slider__handle {
  background-color: var(--c-brand-purple);
  border-color: var(--c-brand-purple-press);
}
.tox.tox-tinymce .tox-toolbar-slider__input::-webkit-slider-thumb,
.tox.tox-silver-sink .tox-toolbar-slider__input::-webkit-slider-thumb,
.tox.tox-tinymce-aux .tox-toolbar-slider__input::-webkit-slider-thumb {
  background-color: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-toolbar-slider__input::-moz-range-thumb,
.tox.tox-silver-sink .tox-toolbar-slider__input::-moz-range-thumb,
.tox.tox-tinymce-aux .tox-toolbar-slider__input::-moz-range-thumb {
  background-color: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-toolbar-slider__input:focus::-webkit-slider-thumb,
.tox.tox-tinymce .tox-toolbar-slider__input:focus::-moz-range-thumb,
.tox.tox-silver-sink .tox-toolbar-slider__input:focus::-webkit-slider-thumb,
.tox.tox-silver-sink .tox-toolbar-slider__input:focus::-moz-range-thumb,
.tox.tox-tinymce-aux .tox-toolbar-slider__input:focus::-webkit-slider-thumb,
.tox.tox-tinymce-aux .tox-toolbar-slider__input:focus::-moz-range-thumb {
  box-shadow: inset 0 0 0 1px #fff, 0 0 0 2px var(--c-brand-purple);
}
.tox.tox-tinymce .tox-image-selector-loading-spinner,
.tox.tox-silver-sink .tox-image-selector-loading-spinner,
.tox.tox-tinymce-aux .tox-image-selector-loading-spinner {
  border-color: var(--c-brand-purple);
  border-bottom-color: transparent;
}
.tox.tox-tinymce .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2,
.tox.tox-silver-sink .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2,
.tox.tox-tinymce-aux .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2 {
  color: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-dialog__body-content .accessibility-issue--info .tox-icon.accessibility-issue__icon svg,
.tox.tox-silver-sink .tox-dialog__body-content .accessibility-issue--info .tox-icon.accessibility-issue__icon svg,
.tox.tox-tinymce-aux .tox-dialog__body-content .accessibility-issue--info .tox-icon.accessibility-issue__icon svg {
  fill: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon,
.tox.tox-silver-sink .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon,
.tox.tox-tinymce-aux .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon {
  background-color: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-comment.tox-comment--selected:focus,
.tox.tox-silver-sink .tox-comment.tox-comment--selected:focus,
.tox.tox-tinymce-aux .tox-comment.tox-comment--selected:focus {
  border-color: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-comment.tox-comment--selected .tox-comment__single:focus::after,
.tox.tox-silver-sink .tox-comment.tox-comment--selected .tox-comment__single:focus::after,
.tox.tox-tinymce-aux .tox-comment.tox-comment--selected .tox-comment__single:focus::after {
  border-color: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-promotion-dialog .tox-promotion-dialog-plugin--icon,
.tox.tox-silver-sink .tox-promotion-dialog .tox-promotion-dialog-plugin--icon,
.tox.tox-tinymce-aux .tox-promotion-dialog .tox-promotion-dialog-plugin--icon {
  color: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-promotion-dialog--explore a,
.tox.tox-silver-sink .tox-promotion-dialog--explore a,
.tox.tox-tinymce-aux .tox-promotion-dialog--explore a {
  color: var(--c-brand-purple);
}

.about-qdna {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  text-align: center;
}

.about-qdna__crown {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.about-qdna__lockup {
  display: flex;
  align-items: baseline;
  gap: 9px;
  color: #40499a;
}

.about-qdna__pro {
  font-size: 22px;
  font-weight: 300;
  line-height: 1;
  color: #40499a;
}

.about-qdna__tagline {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: #6b6884;
}

.about-qdna__version {
  display: flex;
  align-items: baseline;
  gap: 10px;
}

.about-qdna__num {
  font-size: 38px;
  font-weight: 300;
  letter-spacing: -0.02em;
  line-height: 1;
  color: #23253a;
  font-variant-numeric: tabular-nums;
}

.about-qdna__channel {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #40499a;
  background: rgba(64, 73, 154, 0.1);
  border-radius: 999px;
  padding: 4px 9px;
}

.about-qdna__grid {
  width: 100%;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  background: #f7f7fb;
  border: 1px solid #e2e2f0;
  border-radius: 10px;
  overflow: hidden;
}
.about-qdna__grid > div {
  padding: 11px 8px 12px;
  border-left: 1px solid #e2e2f0;
  min-width: 0;
}
.about-qdna__grid > div:first-child {
  border-left: 0;
}
.about-qdna__grid dt {
  margin: 0 0 4px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: #8a8fb5;
}
.about-qdna__grid dd {
  margin: 0;
  font-size: 13px;
  font-weight: 500;
  color: #23253a;
  font-variant-numeric: tabular-nums;
  overflow: hidden;
  text-overflow: ellipsis;
}

.about-qdna__actions qdnapro-icon {
  margin-right: 6px;
}

.about-qdna__contact {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
}
.about-qdna__contact a {
  color: #40499a;
  text-decoration: none;
  font-weight: 500;
}
.about-qdna__contact a:hover {
  text-decoration: underline;
}

.about-qdna__dot {
  color: #c3c3d6;
}

.about-qdna__footer {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding-top: 16px;
  border-top: 1px solid #e2e2f0;
}

.about-qdna__by {
  margin: 0;
  font-size: 12.5px;
  color: #6b6884;
}

.about-qdna__copy {
  margin: 0 0 6px;
  font-size: 12px;
  color: #8a8fb5;
}

.about-qdna__eyebrow {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: #8a8fb5;
}

.about-qdna__plate {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  background: #ffffff;
  border: 1px solid #e6e7f2;
  border-radius: 10px;
  padding: 12px 18px;
}
.about-qdna__plate img {
  height: 58px;
  width: auto;
  display: block;
}

.about-qdna__standards {
  margin: 0;
  font-size: 11px;
  line-height: 1.5;
  color: #8a8fb5;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 520px) {
  .about-qdna__plate {
    gap: 10px;
    padding: 10px 12px;
  }
  .about-qdna__plate img {
    height: 44px;
  }
}
.default-overview {
  display: flex;
  flex-flow: column;
  height: calc(100vh - var(--qdna-topbar-h));
  min-height: 0;
  background-color: transparent;
  padding-top: 1rem;
  overflow-x: hidden;
  overflow-y: auto;
  padding-right: 1rem;
}
.default-overview .overview-panel-left {
  display: flex;
  flex-flow: column;
  flex: 1;
  min-width: 0;
  padding: 0px;
  margin: 0px 8px 0px 0px;
}
.default-overview .overview-panel-center {
  display: flex;
  flex-flow: column;
  flex: 3;
  min-width: 0;
  padding: 0px;
}
.default-overview > .overview-header {
  display: flex;
  flex-flow: row;
  flex: 0 0 auto;
  min-height: 0;
  padding-top: 10px;
}
.default-overview > .overview-header > #header-pc-card-search {
  display: flex;
  justify-content: flex-end;
  margin-left: auto;
  margin-bottom: 8px;
}
.default-overview > .overview-header > #header-pc-card-search > .overview-card-search__input {
  width: 340px;
  max-width: 100%;
  flex: 0 0 auto;
}
.default-overview > .overview-header > #header-panel-left {
  gap: 16px;
}
.default-overview > .overview-header > #header-panel-left > * {
  background-color: white;
}
.default-overview > .overview-header > #header-panel-left > *:first-child {
  border-top-left-radius: 8px;
}
.default-overview > .overview-header > #header-panel-left > *:last-child {
  border-top-right-radius: 8px;
}
.default-overview > .overview-header > #header-panel-left > * {
  flex: 0 0 auto;
  padding: 8px;
  padding-bottom: 4px;
  padding-top: 4px;
}
.default-overview > .overview-header > #header-panel-left > #header-pl-options {
  display: flex;
  flex-flow: row;
}
.default-overview > .overview-header > #header-panel-left > #header-pl-options > *:last-child {
  margin-left: auto;
  order: 2;
}
.default-overview > .overview-header > #header-panel-left.hidden-content {
  align-self: flex-start;
}
.default-overview > .overview-header > #header-panel-left.hidden-content > *:first-child {
  border-top-left-radius: 8px;
  border-bottom-left-radius: 8px;
}
.default-overview > .overview-header > #header-panel-left.hidden-content > *:last-child {
  border-top-right-radius: 8px;
  border-bottom-right-radius: 8px;
}
.default-overview > .overview-header > #header-panel-center {
  display: flex;
  flex-flow: column;
  gap: 8px;
  margin-bottom: 8px;
}
.default-overview > .overview-header > #header-panel-center > #header-pc-functions {
  display: flex;
  flex: 0 0;
  flex-flow: row;
  align-items: center;
  gap: 4px;
}
.default-overview > .overview-header > #header-panel-center > #header-pc-functions > #header-pc-search {
  display: flex;
  flex-flow: row;
  width: 50%;
}
.default-overview > .overview-header > #header-panel-center > #header-pc-functions > #header-pc-options {
  display: flex;
  flex-flow: row;
  align-items: center;
  flex: 0 0 auto;
}
.default-overview > .overview-header > #header-panel-center > #header-pc-functions > #header-pc-options > * {
  flex: 0 0 auto;
}
.default-overview > .overview-header > #header-panel-center > #header-pc-functions > #header-pc-options > #header-pc-btn-advanced-search .btn-icon-prefix {
  font-size: 21px;
}
.default-overview > .overview-header > #header-panel-center > #header-pc-filters {
  gap: 8px;
}
.default-overview > .overview-body {
  display: flex;
  flex-flow: row;
  flex: 1 1 auto;
  min-height: 0;
}
.default-overview > .overview-body > #body-panel-left {
  margin-top: -9px;
  background-color: white;
  border-bottom-left-radius: 8px;
  border-bottom-right-radius: 8px;
}
.default-overview > .overview-body > #body-panel-left > #body-pl-search {
  display: flex;
  flex-flow: row;
  flex: 0 0 auto;
  padding: 8px;
}
.default-overview > .overview-body > #body-panel-left > #body-pl-search > * {
  flex: 1 1 auto;
}
.default-overview > .overview-body > #body-panel-left > #body-pl-search > *:last-child {
  margin-left: 8px;
  flex: 0 0 auto;
}
.default-overview > .overview-body > #body-panel-left > #body-pl-none {
  flex: 0 0 auto;
  margin: 8px;
}
.default-overview > .overview-body > #body-panel-left > hr {
  border-top-width: 2px;
  border-top-color: #D9DBEB;
  margin: 2px auto 0px;
  width: 94%;
}
.default-overview > .overview-body > #body-panel-left > #body-pl-data {
  display: flex;
  flex-flow: column;
  flex: 1 1 auto;
  padding: 8px;
  min-width: 0;
  overflow-y: scroll;
  overflow-x: hidden;
}
.default-overview > .overview-body > #body-panel-left > #body-pl-data .body-pl-data-record {
  display: flex;
  flex-flow: row;
  flex: 0 0 auto;
  padding: 6px 12px 6px 0px;
  border-radius: 8px;
  cursor: pointer;
}
.default-overview > .overview-body > #body-panel-left > #body-pl-data .body-pl-data-record > *:first-child {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.default-overview > .overview-body > #body-panel-left > #body-pl-data .body-pl-data-record > *:last-child {
  flex: 0 0 auto;
  text-align: right;
}
.default-overview > .overview-body > #body-panel-left > #body-pl-data .body-pl-data-record:hover {
  background-color: #F0F1F2;
}
.default-overview > .overview-body > #body-panel-left > #body-pl-data .body-pl-data-record.active {
  background-color: #F0F1F2;
}
.default-overview > .overview-body > #body-panel-center {
  border-radius: 8px;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-header {
  display: flex;
  flex-flow: column;
  flex: 0 0 auto;
  padding: 8px;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-header > div {
  display: flex;
  flex-flow: row;
  flex: 0 0 auto;
  padding: 4px;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-header > div .body-pc-header-option-group {
  display: flex;
  flex-flow: row;
  flex: 0 0 auto;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-header > div .body-pc-header-option-group > #btn-pc-header-options-add-existing {
  margin-right: 8px;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-header > div .body-pc-header-checked-option-group {
  display: flex;
  flex-flow: row;
  flex: 0 0 auto;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-header > div .body-pc-header-checked-option-group > qdna-label#lbl-checked-options-count {
  font-size: 1rem;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-header #body-pc-header-options > .body-pc-header-option-group:not(:only-child):last-child {
  margin-left: auto;
  order: 2;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-header #body-pc-header-checked-options {
  gap: 8px;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-data {
  display: flex;
  flex-flow: column;
  flex: 1 1 auto;
  min-width: 0;
  text-align: center;
  overflow-y: auto;
  overflow-x: hidden;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-data > table {
  text-align: left;
  table-layout: fixed;
  width: 100%;
  min-width: 0;
  border-collapse: separate;
  border-spacing: 0 1px;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-data > table > thead > tr > th {
  position: sticky;
  background-color: #DADADA;
  top: 0;
  z-index: 2;
  padding-top: 4px;
  padding-bottom: 4px;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-data > table > thead > tr > th > div {
  display: flex;
  flex-flow: row;
  justify-content: space-between;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-data > table > thead > tr > th > div > *:last-child {
  text-align: right;
  display: none;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-data > table > tbody > tr > td {
  border-bottom: 1px solid #ccc;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-data > table > tbody > tr:hover {
  background-color: #F0F1F2;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-data > table > tbody > tr:hover > td {
  background-color: #F0F1F2;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-data > .loader {
  margin: 16px auto;
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  border: 2px solid black;
  border-bottom-color: transparent;
  border-radius: 50%;
  display: inline-block;
  box-sizing: border-box;
  animation: rotation 1s linear infinite;
}
@keyframes rotation {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.default-overview > .overview-body > #body-panel-center.table-view > #body-pc-header {
  background-color: white;
  border-radius: 8px 8px 0 0;
}
.default-overview > .overview-body > #body-panel-center.table-view > #body-pc-data {
  background-color: white;
  border-radius: 0 0 8px 8px;
}
.default-overview > .overview-body > #body-panel-center:not(.table-view) {
  background-color: transparent;
}
.default-overview > .overview-body > #body-panel-center:not(.table-view) > #body-pc-header {
  background-color: white;
  border-radius: 8px;
}
.default-overview > .overview-footer #footer-navigation {
  position: absolute;
  bottom: 48px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 50;
}

.total-data {
  padding-bottom: 70px;
}

.hidden {
  display: none !important;
}

th.checkbox {
  width: 48px;
  border-bottom: 1px solid #ccc;
}
th.checkbox qdna-input {
  display: flex !important;
  justify-content: center !important;
}

.pc-data-table-cell.bigger {
  padding: 16px 0px 16px 0px !important;
}
.pc-data-table-cell qdna-label {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pc-data-table-cell > div {
  min-width: 0;
  height: 36px;
  display: flex;
}

table#body-pc-data-table thead tr {
  cursor: pointer;
}
table#body-pc-data-table tbody tr[data-id] {
  cursor: pointer;
}

.creation-row {
  padding: 8px;
}

.creation-row:last-child {
  padding-bottom: 48px;
}

.id-column {
  width: 82px;
}

#body-pc-data-cards qdnapro-hub-tile[hidden] {
  display: none;
}

.overview-card-search-empty {
  padding: 40px 16px;
  text-align: center;
  color: var(--c-text-muted, #6e7280);
  font-size: 14px;
}

.overview-card-search-empty[hidden] {
  display: none;
}

.overview-card-search-empty__title {
  display: block;
  margin-bottom: 4px;
  font-size: 15px;
  font-weight: 600;
  color: var(--c-text-heading, #1a1f4d);
}

#body-pc-data-cards,
#default-overview-optionsbox {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
  max-width: 100%;
  margin-bottom: 8px;
  text-align: start;
  padding-right: 1rem;
}

#body-pc-data-cards.cards-compact {
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}

/* ==========  Side-panel show/hide animation (Jan 2026-06-17)  ==========
   The left/right overview side panels (Teams/Locaties/Units list) are toggled
   via the `.hidden` class (globally `display:none !important`). To make the
   WHOLE row feel fluid — panel AND the neighbouring list moving together —
   we don't pop the panel in/out with display. Instead, under no-preference we
   override `.hidden` to keep the panel in flow at zero width and animate its
   `flex-grow` (0↔1) + opacity. Because the panel and the center list share one
   flex row, the browser redistributes the freed/claimed space frame-by-frame,
   so the list glides to its new width instead of snapping. `overflow:hidden`
   clips the content while the box is narrower than its content; `min-width:0`
   (already on the panel) lets it collapse fully. The "hidden" panel stays at
   0 width / opacity 0 / pointer-events:none — visually gone, no layout cost.
   Under `prefers-reduced-motion: reduce` this whole block is skipped, so the
   global `.hidden { display:none }` applies and the toggle is instant. */
@media (prefers-reduced-motion: no-preference) {
  .default-overview .overview-panel-left,
  .default-overview .overview-panel-right {
    overflow: hidden;
    transition: flex-grow 260ms ease, opacity 200ms ease, margin 260ms ease;
  }
  .default-overview .overview-panel-left.hidden,
  .default-overview .overview-panel-right.hidden {
    display: flex !important; /* beat global .hidden { display:none !important } */
    flex-grow: 0;
    opacity: 0;
    margin-right: 0;
    margin-left: 0;
    pointer-events: none;
  }
}
.tsa-toolbar-colors .slick-next,
.tsa-toolbar-users .slick-next, .tsa-toolbar-colors .slick-prev,
.tsa-toolbar-users .slick-prev, #dashboard-colors .slick-next, #dashboard-users .slick-next, #dashboard-colors .slick-prev, #dashboard-users .slick-prev {
  font-size: 0;
  line-height: 0;
  display: block;
  padding: 0;
  cursor: pointer;
  color: transparent;
  border: none;
  outline: none;
  background: transparent;
  flex: 0 0 auto;
  z-index: 10;
}
.tsa-toolbar-colors .slick-next:focus,
.tsa-toolbar-users .slick-next:focus, .tsa-toolbar-colors .slick-prev:focus,
.tsa-toolbar-users .slick-prev:focus, #dashboard-colors .slick-next:focus, #dashboard-users .slick-next:focus, #dashboard-colors .slick-prev:focus, #dashboard-users .slick-prev:focus {
  color: transparent;
  outline: none;
  background: transparent;
}
.tsa-toolbar-colors .slick-disabled.slick-next:before,
.tsa-toolbar-users .slick-disabled.slick-next:before, .tsa-toolbar-colors .slick-disabled.slick-prev:before,
.tsa-toolbar-users .slick-disabled.slick-prev:before, #dashboard-colors .slick-disabled.slick-next:before, #dashboard-users .slick-disabled.slick-next:before, #dashboard-colors .slick-disabled.slick-prev:before, #dashboard-users .slick-disabled.slick-prev:before {
  opacity: 0.25;
  cursor: default;
}
.tsa-toolbar-colors .slick-next:before,
.tsa-toolbar-users .slick-next:before, .tsa-toolbar-colors .slick-prev:before,
.tsa-toolbar-users .slick-prev:before, #dashboard-colors .slick-next:before, #dashboard-users .slick-next:before, #dashboard-colors .slick-prev:before, #dashboard-users .slick-prev:before {
  display: inline-block;
  font: normal normal normal 24px/1 "Material Design Icons";
  font-size: 24px;
  text-rendering: auto;
  line-height: 1;
  color: #fff;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.tsa-dashboard-header-title, .tsa-dashboard-header-color, .tsa-dashboard-header-logo {
  background: #e1e1e1;
  border: 1px dashed rgba(0, 0, 0, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.tsa-dashboard-item-empty, .tsa-dashboard-item {
  min-height: 200px;
  border-radius: 0.25rem;
  position: relative;
  color: #797979;
  height: 100%;
  transition: box-shadow 0.5s;
}

.ts-autometrics {
  display: flex;
  flex-grow: 1;
  height: calc(100vh - 100px);
  overflow: hidden;
}
.ts-autometrics .tsa-sidebar {
  border-radius: 0.25rem;
  margin-right: 0.625rem;
  flex: 0 0 150px;
  max-width: 150px;
  overflow-y: auto;
  background-color: #fff;
}
@media (min-width: 1200px) {
  .ts-autometrics .tsa-sidebar {
    flex: 0 0 200px;
    max-width: 200px;
  }
}
.ts-autometrics .tsa-main {
  border-radius: 0.25rem;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  background: #fff;
}
.ts-autometrics .tsa-main .tsa-toolbar {
  background: #555;
  display: flex;
  padding: 8px 16px;
  color: #fff;
  flex-shrink: 0;
}
.ts-autometrics .tsa-main .tsa-toolbar .slick-slider {
  display: flex;
}
.ts-autometrics .tsa-main .tsa-toolbar-group {
  padding: 0 10px;
  display: flex;
  flex-direction: column;
  white-space: nowrap;
  text-align: center;
  font-size: 0.625rem;
  font-weight: 500;
}
.ts-autometrics .tsa-main .tsa-toolbar-group:not(:first-child) {
  border-left: 1px solid #888888;
}
.ts-autometrics .tsa-main .tsa-toolbar-group-inner {
  flex-grow: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.ts-autometrics .tsa-main .tsa-toolbar-group-inner .clearfix {
  display: flex;
  gap: 4px;
}
.ts-autometrics .tsa-main .tsa-toolbar-group.slick-fix {
  flex: 1;
  gap: 4px;
}
.ts-autometrics .tsa-main .tsa-toolbar-item:not(:first-child) {
  margin-left: 8px;
}
.ts-autometrics .tsa-main .tsa-toolbar-btn {
  border: 1px solid rgb(49.3, 49.3, 49.3);
  background: rgb(69.7, 69.7, 69.7);
  color: #fff;
  border-radius: 0.25rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  width: 24px;
  height: 24px;
  line-height: 1;
  transition: 0.3s;
}
.ts-autometrics .tsa-main .tsa-toolbar-btn:hover {
  background: rgb(49.3, 49.3, 49.3);
}
.ts-autometrics .tsa-main .tsa-toolbar-btn-primary {
  background-color: #40499a !important;
  border-color: #40499a !important;
}
.ts-autometrics .tsa-main .tsa-toolbar-btn-primary:hover {
  background-color: rgb(58.0110091743, 66.1688073394, 139.5889908257) !important;
  border-color: rgb(58.0110091743, 66.1688073394, 139.5889908257) !important;
}
.ts-autometrics-modal.modal .modal-content {
  padding: 1rem;
}
.ts-autometrics-modal.modal .modal-header {
  gap: 8px;
  padding: 0 0 0.5rem !important;
  align-items: center;
}
.ts-autometrics-modal.modal .modal-header .modal-title {
  font-size: 1rem;
}
.ts-autometrics-modal.modal img.ts-rounded {
  width: 36px;
  border-radius: 8px;
}
.ts-autometrics-modal.modal .modal-body .table td, .ts-autometrics-modal.modal .modal-body .table th {
  vertical-align: middle !important;
  padding: 0.5rem;
}
.ts-autometrics-modal.modal .modal-body .form-setting-field {
  padding: 0.5rem 0rem;
  gap: 0.75rem;
  display: flex;
  align-items: center;
  width: 75%;
  justify-content: space-between;
}
.ts-autometrics-modal.modal .modal-body .form-setting-field input[type=checkbox] {
  width: 1rem;
  height: 1rem;
}
.ts-autometrics-modal.modal .modal-footer {
  padding: 0.5rem 0 0 !important;
}
.ts-autometrics-modal.modal .modal-icon {
  padding: 8px 16px;
  border-radius: 8px;
}

.tsa-type-selected {
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  text-align: center;
}
.tsa-type-selected a {
  margin-left: 8px;
}
.tsa-type-selected-item {
  flex-direction: column;
  width: 75px;
  height: 75px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px dashed #ababab;
  padding: 10px;
  border-radius: 8px;
}
.tsa-type-selected-item img {
  transform: scale(0.8);
}
.tsa-type-selected-item span {
  font-size: 11px;
}

.tsa-type-selector {
  margin-top: 10px;
  display: flex;
  justify-content: flex-start;
  border: 1px dashed #ababab;
  background: rgb(244.8, 244.8, 244.8);
  border-radius: 8px;
  padding: 10px;
}
.tsa-type-selector-item {
  display: flex;
  width: 100%;
  justify-content: flex-start;
  flex-direction: column;
}
.tsa-type-selector-item-cat {
  width: 100%;
  margin: 0 2px;
  background: #fff;
}
.tsa-type-selector-item-cat-header {
  background: #40499a;
  color: #fff;
  padding: 5px 10px;
  margin-bottom: 5px;
  border-radius: 0.25rem;
  font-size: 14px;
}
.tsa-type-selector-item-cat-list {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
}
.tsa-type-selector-item-cat-list a {
  flex: 0 0 30%;
  max-width: 30%;
  transition: background 0.3s;
  font-size: 12px;
  padding: 5px 10px;
}
.tsa-type-selector-item-cat-list a .tsa-charttype-icon {
  width: 18px;
  height: 18px;
  max-width: 100%;
  margin-right: 10px;
}
.tsa-type-selector-item-cat-list a:hover, .tsa-type-selector-item-cat-list a.active {
  background: rgb(244.8, 244.8, 244.8);
}

.tsa-dashboard {
  padding: 15px 15px 0;
  flex-grow: 1;
  overflow-y: auto;
}

.tsa-dashboard-themes {
  padding: 12px;
  width: 50%;
}
.tsa-dashboard-themes-color {
  width: 25%;
  height: 50px;
  float: left;
}
.tsa-dashboard-themes-color:first-child {
  border-top-left-radius: 0.25rem;
}
.tsa-dashboard-themes-color:last-child {
  border-top-right-radius: 0.25rem;
}
.tsa-dashboard-themes .card {
  max-width: 23.699%;
  width: 23.699%;
  margin: 5px;
  transition: all 1s;
}
.tsa-dashboard-themes .card:last-child {
  margin-right: 0;
}
.tsa-dashboard-themes .card.selected {
  box-shadow: 0 0 10px #9f9f9f;
}
.tsa-dashboard-themes .card:hover {
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}
.tsa-dashboard-themes .card-body {
  padding: 0;
}
.tsa-dashboard-themes .card-footer {
  padding: 10px 0;
  font-size: 12px;
  font-weight: 500;
}

#dash_colors .child_colors,
#dash_colors .ui-sortable-placeholder {
  width: 24px;
  height: 24px;
  border-radius: 50%;
}
#dash_colors .ui-sortable-placeholder {
  float: left;
}
#dash_colors .ui-state-highlight {
  border-style: dashed;
  border-color: rgba(255, 255, 255, 0.5);
  background-color: rgba(255, 255, 255, 0.1);
}

.tsa-dashboard-color {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  position: relative;
  font-size: 0.625rem;
  transition: all 0.5s;
  cursor: pointer;
}
.tsa-dashboard-color > a {
  position: absolute;
  top: -2px;
  right: -2px;
  background: #fff;
  border-radius: 50%;
  width: 12px;
  height: 12px;
  line-height: 12px;
}

.tsa-dashboard-user {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  overflow: hidden;
  margin: 0 auto;
}
@media (min-width: 1520px) {
  .tsa-dashboard-user {
    width: 48px;
    height: 48px;
  }
}

.tsa-dashboard-header {
  padding: 8px 16px;
  color: #fff;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-shrink: 0;
}
.tsa-dashboard-header-logo {
  height: 60px;
  min-width: 100px;
  border-radius: 0.25rem;
  overflow: hidden;
}
.tsa-dashboard-header-logo:hover .btn-tr, .tsa-dashboard-header-logo:hover .btn-br {
  opacity: 1;
}
.tsa-dashboard-header-color {
  width: 48px;
  height: 48px;
  border-radius: 50%;
}
.tsa-dashboard-header-title {
  height: 48px;
  border-radius: 0.25rem;
  padding: 32px 16px;
}
.tsa-dashboard-header-title-bold.active, .tsa-dashboard-header-title-italic.active {
  color: #FFF;
  background-color: #40499a;
}
.tsa-dashboard-header-title input {
  font-size: 24px;
  max-width: 350px;
  background: transparent;
  border: none;
  text-align: right;
  padding-right: 15px;
}
.tsa-dashboard-header-title input:focus {
  outline: none;
}
.tsa-dashboard-header-btn {
  width: 24px;
  height: 24px;
  border-radius: 0.25rem;
  background-color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #797979;
  transition: 0.3s;
  box-shadow: none;
  border: none;
}
.tsa-dashboard-header-btn.btn-tr, .tsa-dashboard-header-btn.btn-br {
  opacity: 0;
}
.tsa-dashboard-header-btn:hover {
  color: #797979;
  background: rgb(186.75, 186.75, 186.75);
}

.tsa-dashboard-tabs {
  display: flex;
  align-items: center;
  background-color: #fff;
  flex-shrink: 0;
}
.tsa-dashboard-tabs .ts-tabs {
  flex-grow: 1;
  background: transparent;
  margin: 0;
  padding: 0;
}
.tsa-dashboard-tabs .ts-tabs .active a {
  background: #f5f5f5;
}

.tsa-dashboard-item {
  background: #fff;
  padding: 0 16px 16px;
}
.tsa-dashboard-item .tsa-group-icon {
  position: absolute;
  top: 8px;
  right: 8px;
  display: flex;
}
.tsa-dashboard-item-placeholder {
  border: 2px dashed #878787;
}
.tsa-dashboard-item-question {
  display: flex;
  align-items: center;
  margin-top: 16px;
}
.tsa-dashboard-item-question .ts-icon {
  margin-right: 8px;
}
.tsa-dashboard-item-question .ts-rounded-border {
  background: #ebebeb;
  border-color: #ebebeb;
  color: #666666;
  padding: 6px 12px;
  border-radius: 4px;
}
.tsa-dashboard-item-question input {
  font-size: 14px;
}
.tsa-dashboard-item-type {
  border: 1px dashed #ababab;
  display: flex;
  align-items: center;
  border-radius: 0.25rem;
  margin-bottom: 8px;
  padding: 4px 16px;
  font-size: 14px;
}
.tsa-dashboard-item-type .mdi {
  margin-right: 16px;
  font-size: 24px;
}
.tsa-dashboard-item-type span {
  flex-grow: 1;
}
.tsa-dashboard-item-empty {
  background: #e1e1e1;
  padding: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.tsa-dashboard-item-empty > .mdi {
  font-size: 36px;
}
.tsa-dashboard-item-empty .tsa-item-icon {
  position: absolute;
  top: 0;
  right: 0;
}

.tsa-btn {
  font-size: 24px;
  color: #fff;
  border-radius: 6px;
  border: 1px solid rgb(44.5, 44.5, 44.5);
  background: #464646;
  width: 36px;
  height: 36px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 10px;
  transition: 0.3s;
}
.tsa-btn:not(:first-child) {
  margin-left: 8px;
}
.tsa-btn:hover {
  color: #fff;
  background: rgb(59.8, 59.8, 59.8);
}
.tsa-btn-grp {
  display: flex;
}
.tsa-btn-primary {
  background-color: #40499a !important;
  border-color: #40499a !important;
}
.tsa-btn-primary:hover {
  background-color: rgb(58.0110091743, 66.1688073394, 139.5889908257) !important;
  border-color: rgb(58.0110091743, 66.1688073394, 139.5889908257) !important;
}
.tsa-btn-danger {
  background-color: #40499a !important;
  border-color: #40499a !important;
}
.tsa-btn-danger:hover {
  background-color: rgb(58.0110091743, 66.1688073394, 139.5889908257) !important;
  border-color: rgb(58.0110091743, 66.1688073394, 139.5889908257) !important;
}

.tsa-item-icon {
  width: 30px;
  height: 30px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 16px;
  transition: 0.2s;
}
.tsa-item-icon-danger {
  color: #e44d42;
}
.tsa-item-icon-danger:hover {
  color: rgb(225.45, 60.1888888889, 48.15) !important;
}

.tsa-drag-handle, .element-drag-handle {
  font-size: 24px;
  text-align: center;
  cursor: pointer;
}

#dashboard-colors .slick-list, #dashboard-users .slick-list {
  flex-grow: 1;
}
#dashboard-colors .slick-prev, #dashboard-users .slick-prev {
  left: 0;
}
#dashboard-colors .slick-prev:before, #dashboard-users .slick-prev:before {
  content: "\f141";
}
#dashboard-colors .slick-next, #dashboard-users .slick-next {
  right: 0;
}
#dashboard-colors .slick-next:before, #dashboard-users .slick-next:before {
  content: "\f142";
}

.tsa-toolbar-colors .slick-prev:before,
.tsa-toolbar-users .slick-prev:before {
  content: "\f141";
}
.tsa-toolbar-colors .slick-next:before,
.tsa-toolbar-users .slick-next:before {
  content: "\f142";
}

.tsa-slider-grp {
  display: flex;
}

.tsa-chart-colors .tsa-toolbar-btn-add, .tsa-dashboard-users .tsa-toolbar-btn-add {
  background: transparent;
  border: 1px dashed #fff;
  border-radius: 50%;
  color: #fff;
  flex-shrink: 0;
  cursor: pointer;
  transition: background 0.3s;
  width: 24px;
  height: 24px;
  font-size: 10px;
}
.tsa-chart-colors .tsa-toolbar-btn-add:hover, .tsa-dashboard-users .tsa-toolbar-btn-add:hover {
  background: rgba(255, 255, 255, 0.1);
}
.tsa-chart-colors .tsa-toolbar-btn-add:focus, .tsa-dashboard-users .tsa-toolbar-btn-add:focus {
  outline: none;
}

@media (min-width: 1520px) {
  .tsa-dashboard-users .tsa-toolbar-btn-add {
    width: 24px;
    height: 24px;
  }
}

.tsa-charttype-preview {
  padding: 12px 0;
  text-align: center;
}
.tsa-charttype-preview img {
  width: 20px;
  height: 20px;
  margin-bottom: 4px;
}
.tsa-charttype-preview p {
  margin-bottom: 0;
  font-size: 14px;
}

.chart_container .ui-sortable-placeholder {
  min-height: 300px;
}
.chart_container .ui-state-highlight {
  border: none;
  background: transparent;
}
.chart_container .ui-state-highlight > div {
  border: 1px dashed rgba(0, 0, 0, 0.2);
  background: rgba(0, 0, 0, 0.1);
  border-radius: 0.5rem;
  height: 100%;
}
.chart_container .ui-sortable-helper .tsa-dashboard-item {
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.25);
}

#tabs.ui-widget {
  font-family: inherit;
}
#tabs.ui-widget.ui-widget-content {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0;
}

.tsa-tabs {
  background-color: #e1e1e1;
  display: flex;
  align-items: center;
  padding: 4px 8px 0px 8px;
}
.tsa-tabs .tab-actions {
  position: absolute;
  top: 4px;
  right: 4px;
  opacity: 0;
}
.tsa-tabs .tab-actions span.mdi {
  font-size: 0.75rem;
  cursor: pointer;
  padding: 2px;
  border-radius: 2px;
  color: #40499a;
  background-color: #ccc;
}
.tsa-tabs .btn-circle:hover {
  background: #e1e1e1;
}
.tsa-tabs .ui-widget-header {
  border: none;
  background: transparent;
  padding: 0px 4px 0px 0px;
}
.tsa-tabs .ui-widget-header .ui-state-default {
  background: transparent;
  border: none;
  transition: background 0.3s;
}
.tsa-tabs .ui-widget-header .ui-state-hover {
  background: rgba(255, 255, 255, 0.5);
}
.tsa-tabs .ui-widget-header .ui-tabs-anchor {
  padding: 8px 24px 8px 16px;
  color: inherit;
  font-size: 12px;
  font-weight: 500;
}
.tsa-tabs .ui-widget-header .ui-tabs-active,
.tsa-tabs .ui-widget-header .ui-state-active {
  background: #f5f5f5;
}
.tsa-tabs .ui-widget-header .ui-tabs-active > a,
.tsa-tabs .ui-widget-header .ui-state-active > a {
  color: #333 !important;
}
.tsa-tabs .ui-tabs-nav li {
  margin: 0 !important;
  padding: 0 !important;
}
.tsa-tabs .ui-tabs-nav li:hover .tab-actions {
  opacity: 1;
  transition: opacity 0.1s 0.2s;
}
.tsa-tabs .ui-corner-top,
.tsa-tabs .ui-corner-all {
  border-top-left-radius: 0.5rem;
  border-top-right-radius: 0.5rem;
}
.tsa-tabs .btn-circle {
  margin-top: 0.375rem;
}
.tsa-tabs .tsa-dashboard-header-btn {
  color: #797979;
}
.tsa-tabs .ui-state-highlight {
  border: 1px dashed rgba(0, 0, 0, 0.3);
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.5);
}

.element-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-radius: 0.25rem;
}
.element-list-header {
  background: #40499a;
  border-radius: 0.25rem;
  cursor: pointer;
  color: #fff;
  padding: 6px 16px;
  font-size: 0.75rem;
  margin-bottom: 8px;
  display: flex;
}
.element-list-header:not(:first-child) {
  margin-top: 10px;
}
.element-list-header.not-draggable {
  cursor: default;
}
.element-list-header.not-draggable:hover {
  color: #fff;
}
.element-list-item {
  display: block;
  border-radius: 0.25rem;
  cursor: pointer;
  font-size: 0.75rem;
  padding: 4px 12px;
  transition: background 0.3s;
}
.element-list-item:hover {
  background: rgb(244.8, 244.8, 244.8);
}
.element-list-item .charttype-icon {
  width: 16px;
  height: 16px;
  max-width: 100%;
  margin-right: 12px;
}

.tsa-list-item {
  padding-bottom: 12px;
}

.ts-autometrics-popover .popover-body select {
  height: calc(1.5em + 0.75rem + 2px);
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
}

.dms-idoc-page {
  position: relative;
  max-width: 880px;
  margin: 0 auto;
  background: #fff;
  color: #23253a;
  border-radius: 8px;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.4);
  padding: 40px 48px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

@media (max-width: 640px) {
  .dms-idoc-page {
    padding: 24px 18px;
    border-radius: 0;
    gap: 18px;
  }
}
.dms-idoc-block {
  min-width: 0;
}

.dms-idoc-heading {
  font-size: 1.3rem;
  font-weight: 700;
  margin: 0 0 8px;
  color: #23253a;
}

.dms-idoc-text-body {
  font-size: 0.95rem;
  line-height: 1.6;
  color: #33344a;
  word-break: break-word;
}
.dms-idoc-text-body p {
  margin: 0 0 0.8em;
}
.dms-idoc-text-body p:last-child {
  margin-bottom: 0;
}
.dms-idoc-text-body ul,
.dms-idoc-text-body ol {
  padding-left: 1.4em;
  margin: 0 0 0.8em;
}

.dms-idoc-block-image {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.dms-idoc-img-wrap {
  position: relative;
  display: block;
}

.dms-idoc-img {
  width: 100%;
  height: auto;
  border-radius: 6px;
  display: block;
}

.dms-idoc-img-await {
  height: 160px;
  background: #f4f4fa;
  border: 1px dashed #d7d8ec;
  box-sizing: border-box;
  background-image: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.85) 50%, rgba(255, 255, 255, 0) 100%);
  background-repeat: no-repeat;
  background-size: 40% 100%;
  animation: dms-idoc-img-shimmer 1.4s ease-in-out infinite;
}

@keyframes dms-idoc-img-shimmer {
  from {
    background-position: -60% 0;
  }
  to {
    background-position: 160% 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .dms-idoc-img-await {
    animation: none;
  }
}
.dms-idoc-img-failed {
  display: none;
}

.dms-idoc-img-fallback {
  display: none;
}

.dms-idoc-img-failed + .dms-idoc-img-fallback {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 160px;
  padding: 12px;
  background: #f4f4fa;
  border: 1px dashed #d7d8ec;
  border-radius: 8px;
  box-sizing: border-box;
  color: #6b6884;
  text-align: center;
}

.dms-idoc-img-fallback-text {
  font-size: 0.85rem;
  line-height: 1.3;
  max-width: 24em;
}

.dms-idoc-img-fallback-retry {
  font: inherit;
  font-weight: 600;
  font-size: 0.85rem;
  color: #40499a;
  background: #fff;
  border: 1px solid #d7d8ec;
  border-radius: 999px;
  padding: 6px 14px;
  cursor: pointer;
}
.dms-idoc-img-fallback-retry:hover {
  background: #f0f0f8;
}
.dms-idoc-img-fallback-retry:active {
  transform: scale(0.97);
}

.dms-idoc-img-await ~ .dms-idoc-hotspot,
.dms-idoc-img-failed ~ .dms-idoc-hotspot,
.dms-idoc-img-await ~ .dms-idoc-hotspot-pop,
.dms-idoc-img-failed ~ .dms-idoc-hotspot-pop {
  display: none;
}

.dms-idoc-img-large .dms-idoc-img-wrap {
  width: 100%;
}

.dms-idoc-img-medium .dms-idoc-img-wrap {
  width: 60%;
}

.dms-idoc-img-small .dms-idoc-img-wrap {
  width: 33%;
  min-width: 160px;
}

.dms-idoc-caption {
  font-size: 0.82rem;
  color: #6b6884;
  text-align: center;
}

.dms-idoc-block-video {
  display: flex;
}

.dms-idoc-video-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  border: 1px solid #e2e2f0;
  border-radius: 8px;
  background: #f7f7fb;
  color: #40499a;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.9rem;
}
.dms-idoc-video-link:hover {
  background: #edeefb;
}
.dms-idoc-video-link qdnapro-icon {
  color: #ff0000;
  flex: 0 0 auto;
}

.dms-idoc-table-wrap {
  overflow-x: auto;
  position: relative;
  -webkit-overflow-scrolling: touch;
}

.dms-idoc-table {
  border-collapse: separate;
  border-spacing: 0;
  border-left: 1px solid #e2e2f0;
  border-top: 1px solid #e2e2f0;
  width: 100%;
  font-size: 0.88rem;
}
.dms-idoc-table th,
.dms-idoc-table td {
  border: 0;
  border-right: 1px solid #e2e2f0;
  border-bottom: 1px solid #e2e2f0;
  padding: 8px 12px;
  text-align: left;
  vertical-align: top;
}
.dms-idoc-table th {
  background: #f4f4fa;
  font-weight: 700;
  color: #23253a;
}

.dms-idoc-table-wrap th:first-child,
.dms-idoc-table-wrap td:first-child {
  position: sticky;
  left: 0;
  z-index: 1;
  background: #fff;
}
.dms-idoc-table-wrap th:first-child {
  background: #f4f4fa;
}

.dms-idoc-table-wrap-overflow:not(.dms-idoc-table-wrap-atend) {
  -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent 100%);
  mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent 100%);
}

.dms-idoc-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  color: #8a8fb5;
  padding: 40px 0;
  text-align: center;
}

.dms-idoc-hidden {
  display: none !important;
}

.dms-idoc-block-choice {
  min-width: 0;
}

.dms-idoc-choice-title {
  font-size: 1.05rem;
  font-weight: 700;
  margin: 0 0 12px;
  color: #23253a;
}

.dms-idoc-choice-options {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.dms-idoc-choice-options-vertical {
  flex-direction: column;
  align-items: flex-start;
}

.dms-idoc-choice-btn {
  appearance: none;
  border: 1px solid #d7d8ec;
  border-radius: 8px;
  background: #edeefb;
  color: #23253a;
  font-size: 0.88rem;
  font-weight: 600;
  padding: 10px 18px;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.dms-idoc-choice-btn:hover {
  background: #dfe0f7;
}
.dms-idoc-choice-btn.dms-idoc-choice-btn-selected {
  background: #40499a;
  border-color: #40499a;
  color: #fff;
}
.dms-idoc-choice-btn.dms-idoc-choice-btn-selected:hover {
  background: #333a80;
}

.dms-idoc-shell {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 20px;
  width: 100%;
  max-width: 1120px;
  margin: 0 auto;
  box-sizing: border-box;
  container-type: inline-size;
  position: relative;
  overflow: clip;
}

.dms-idoc-main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  justify-content: center;
}

.dms-idoc-main .dms-idoc-page {
  margin: 0;
}

.dms-idoc-toc {
  flex: 0 0 220px;
  width: 220px;
  box-sizing: border-box;
  position: sticky;
  top: 0;
  align-self: flex-start;
  background: #fff;
  border: 1px solid #e2e2f0;
  border-radius: 8px;
  padding: 12px;
  max-height: calc(100vh - 32px);
  overflow-y: auto;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.18);
}

.dms-idoc-toc[hidden] {
  display: none;
}

.dms-idoc-toc-header {
  display: flex;
  align-items: center;
}

.dms-idoc-toc-toggle {
  appearance: none;
  border: 0;
  background: transparent;
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 4px 2px;
  cursor: pointer;
  color: #40499a;
  font-weight: 700;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.dms-idoc-toc-toggle qdnapro-icon {
  flex: 0 0 auto;
}

.dms-idoc-toc-list {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.dms-idoc-toc-item {
  appearance: none;
  border: 0;
  background: transparent;
  text-align: left;
  width: 100%;
  padding: 6px 8px;
  border-radius: 6px;
  font-size: 0.85rem;
  color: #33344a;
  cursor: pointer;
}
.dms-idoc-toc-item:hover {
  background: #edeefb;
  color: #40499a;
}

.dms-idoc-toc-fab {
  display: none;
}

.dms-idoc-toc-close {
  display: none;
}

@container (max-width: 760px) {
  .dms-idoc-toc {
    position: fixed;
    top: 0;
    left: 0;
    width: min(300px, 82%);
    height: 100%;
    max-height: none;
    box-sizing: border-box;
    transform: translateX(-100%);
    transition: transform 0.25s ease;
    z-index: 5;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.25);
    overflow-y: auto;
  }
  .dms-idoc-toc.dms-idoc-toc-open {
    transform: translateX(0);
  }
  .dms-idoc-toc-header {
    justify-content: space-between;
  }
  .dms-idoc-toc.dms-idoc-toc-open .dms-idoc-toc-close {
    display: flex;
    align-items: center;
    justify-content: center;
    appearance: none;
    border: 0;
    background: transparent;
    color: #6b6884;
    padding: 4px;
    border-radius: 6px;
    cursor: pointer;
    flex: 0 0 auto;
  }
  .dms-idoc-toc.dms-idoc-toc-open .dms-idoc-toc-close:hover {
    background: #edeefb;
    color: #40499a;
  }
  .dms-idoc-main {
    flex: 0 0 100%;
    transition: transform 0.25s ease;
  }
  .dms-idoc-toc.dms-idoc-toc-open ~ .dms-idoc-main {
    transform: translateX(min(300px, 82%));
  }
  .dms-idoc-toc-fab {
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    top: 16px;
    left: 16px;
    z-index: 6;
    width: 44px;
    height: 44px;
    box-sizing: border-box;
    border-radius: 50%;
    border: 0;
    background: #40499a;
    color: #fff;
    cursor: pointer;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.28);
    transition: background 0.12s ease;
  }
  .dms-idoc-toc-fab:hover {
    background: #333a80;
  }
  .dms-idoc-toc.dms-idoc-toc-open ~ .dms-idoc-toc-fab {
    display: none;
  }
}
.dms-idoc-block-panel {
  min-width: 0;
}

.dms-idoc-panelgroup {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.dms-idoc-panel {
  border: 1px solid #e2e2f0;
  border-radius: 8px;
  background: #fff;
}

.dms-idoc-panel-head {
  appearance: none;
  border: 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 18px;
  background: #f4f4fa;
  color: #23253a;
  font-size: 0.95rem;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
  border-radius: 8px;
}
.dms-idoc-panel-head:hover {
  background: #edeefb;
}

.dms-idoc-panel-open > .dms-idoc-panel-head {
  position: sticky;
  top: 0;
  z-index: 2;
  border-radius: 8px 8px 0 0;
}

.dms-idoc-panel-chevron {
  flex: 0 0 auto;
  transition: transform 0.15s ease;
}

.dms-idoc-panel-open .dms-idoc-panel-chevron {
  transform: rotate(180deg);
}

@media (prefers-reduced-motion: reduce) {
  .dms-idoc-panel-chevron {
    transition: none;
  }
}
.dms-idoc-panel-body {
  display: none;
  flex-direction: column;
  gap: 16px;
  padding: 16px 18px;
  border-top: 1px solid #e2e2f0;
}

.dms-idoc-panel-open > .dms-idoc-panel-body {
  display: flex;
}

.dms-idoc-moreinfo {
  border: 1px solid #e2e2f0;
  border-radius: 8px;
  background: #f7f7fb;
}

.dms-idoc-moreinfo-toggle {
  appearance: none;
  border: 0;
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: transparent;
  color: #40499a;
  font-size: 0.88rem;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
  border-radius: 8px;
}
.dms-idoc-moreinfo-toggle:hover {
  background: #edeefb;
}
.dms-idoc-moreinfo-toggle span {
  flex: 1 1 auto;
}
.dms-idoc-moreinfo-toggle .dms-idoc-panel-chevron {
  color: #40499a;
}

.dms-idoc-moreinfo-open .dms-idoc-moreinfo-toggle {
  border-radius: 8px 8px 0 0;
}

.dms-idoc-moreinfo-body {
  display: none;
  flex-direction: column;
  gap: 16px;
  padding: 0 16px 16px;
}

.dms-idoc-moreinfo-open .dms-idoc-moreinfo-body {
  display: flex;
}

.dms-idoc-toc-item-indent {
  padding-left: 24px;
  font-size: 0.8rem;
  color: #6b6884;
}

.dms-idoc-hotspot {
  position: absolute;
  transform: translate(-50%, -50%);
  z-index: 1;
  width: 22px;
  height: 22px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  margin: 0;
  appearance: none;
  border: 2px solid #fff;
  border-radius: 50%;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
  color: #fff;
  text-decoration: none;
  line-height: 1;
  cursor: default;
}

.dms-idoc-hotspot-clickable {
  cursor: pointer;
  transition: transform 0.12s ease;
}
.dms-idoc-hotspot-clickable:hover, .dms-idoc-hotspot-clickable:focus-visible {
  transform: translate(-50%, -50%) scale(1.15);
}

.dms-idoc-hotspot:focus-visible {
  outline: 2px solid #40499a;
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .dms-idoc-hotspot-clickable {
    transition: none;
  }
  .dms-idoc-hotspot-clickable:hover, .dms-idoc-hotspot-clickable:focus-visible {
    transform: translate(-50%, -50%);
  }
}
.dms-idoc-hotspot-label {
  font-size: 0.68rem;
  font-weight: 700;
  color: #fff;
  line-height: 1;
  pointer-events: none;
}

.dms-idoc-hotspot-open {
  box-shadow: 0 0 0 3px rgba(64, 73, 154, 0.35), 0 1px 4px rgba(0, 0, 0, 0.35);
}

.dms-idoc-hotspot-pop {
  position: absolute;
  transform: translate(calc(-50% + var(--dms-idoc-hs-shift, 0px)), 14px);
  z-index: 2;
  max-width: 260px;
  box-sizing: border-box;
  background: #fff;
  color: #23253a;
  border: 1px solid #e2e2f0;
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.22);
  padding: 10px 12px;
  font-size: 0.85rem;
  line-height: 1.5;
  word-wrap: break-word;
}

.dms-idoc-hotspot-pop[hidden] {
  display: none;
}

.dms-idoc-hotspot-pop-text {
  margin: 0 0 8px;
  white-space: pre-wrap;
}

.dms-idoc-hotspot-pop-text:last-child {
  margin-bottom: 0;
}

.dms-idoc-hotspot-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #40499a;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.82rem;
  word-break: break-all;
}
.dms-idoc-hotspot-link:hover {
  text-decoration: underline;
}
.dms-idoc-hotspot-link qdnapro-icon {
  flex: 0 0 auto;
}

@keyframes dms-idoc-flash-pulse {
  0% {
    box-shadow: 0 0 0 4px rgba(64, 73, 154, 0.55);
    background-color: rgba(64, 73, 154, 0.1);
  }
  100% {
    box-shadow: 0 0 0 4px rgba(64, 73, 154, 0);
    background-color: transparent;
  }
}
.dms-idoc-flash {
  animation: dms-idoc-flash-pulse 1.6s ease-out;
  border-radius: 8px;
}

@media (prefers-reduced-motion: reduce) {
  .dms-idoc-flash {
    animation: none;
  }
}
.dms-idoc-search {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: #f7f7fb;
  border: 1px solid #e2e2f0;
  border-radius: 8px;
  margin-bottom: 4px;
}
.dms-idoc-search qdnapro-icon {
  color: #6b6884;
  flex: 0 0 auto;
}

.dms-idoc-search-input {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 320px;
  background: #fff;
  color: #23253a;
  border: 1px solid #d7d8ec;
  border-radius: 6px;
  padding: 6px 10px;
  font-size: 0.85rem;
  font-family: inherit;
  outline: none;
}
.dms-idoc-search-input:focus {
  border-color: #40499a;
}
.dms-idoc-search-input::placeholder {
  color: #8a8fb5;
}
.dms-idoc-search-input::-webkit-search-cancel-button {
  -webkit-appearance: none;
}

.dms-idoc-search-count {
  flex: 0 0 auto;
  font-size: 0.8rem;
  color: #6b6884;
  min-width: 44px;
  text-align: center;
}

.dms-idoc-search-count[hidden] {
  display: none;
}

.dms-idoc-search-count-nomatch {
  color: #c0392b;
}

.dms-idoc-search-nav {
  display: flex;
  align-items: center;
  gap: 2px;
}

.dms-idoc-mark {
  background: #ffe08a;
  color: #23253a;
  border-radius: 2px;
  padding: 0 1px;
}

.dms-idoc-mark-current {
  background: #e8912d;
  color: #fff;
  box-shadow: 0 0 0 2px rgba(232, 145, 45, 0.35);
}

.dms-idoc-print {
  background: #fff;
  color: #23253a;
  font-family: inherit;
}

.dms-idoc-print-doc {
  max-width: 760px;
  margin: 0 auto;
  padding: 24px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 18px;
  font-size: 0.92rem;
  line-height: 1.55;
}

.dms-idoc-print-block {
  min-width: 0;
  page-break-inside: avoid;
  break-inside: avoid;
}

.dms-idoc-print-condition {
  font-size: 0.78rem;
  font-style: italic;
  color: #6b6884;
  margin-bottom: 4px;
}

.dms-idoc-print-choice {
  min-width: 0;
}

.dms-idoc-print-choice-title {
  font-size: 1.02rem;
  font-weight: 700;
  margin: 0 0 6px;
  color: #23253a;
}

.dms-idoc-print-choice-options {
  margin: 0;
  padding-left: 1.3em;
}

.dms-idoc-print-image {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  page-break-inside: avoid;
  break-inside: avoid;
}

.dms-idoc-print-img-wrap {
  position: relative;
  display: block;
  width: 100%;
  max-width: 480px;
}

.dms-idoc-print-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 4px;
}

.dms-idoc-print-caption {
  font-size: 0.8rem;
  color: #6b6884;
  text-align: center;
}

.dms-idoc-print-hotspot {
  position: absolute;
  transform: translate(-50%, -50%);
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 1px solid #fff;
  color: #fff;
  font-size: 0.65rem;
  font-weight: 700;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.dms-idoc-print-hotspot-legend {
  width: 100%;
  max-width: 480px;
  margin: 4px 0 0;
  padding-left: 1.4em;
  font-size: 0.8rem;
  color: #33344a;
}

.dms-idoc-print-panelgroup {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.dms-idoc-print-panel {
  border: 1px solid #e2e2f0;
  border-radius: 6px;
  padding: 10px 14px;
  page-break-inside: avoid;
  break-inside: avoid;
}

.dms-idoc-print-panel-title {
  font-weight: 700;
  color: #23253a;
  margin-bottom: 8px;
}

.dms-idoc-print-panel-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

@media print {
  .dms-idoc-print {
    background: #fff;
  }
  .dms-idoc-print-doc {
    max-width: 100%;
    padding: 0;
  }
  .dms-idoc-print-block,
  .dms-idoc-print-panel,
  .dms-idoc-print-image {
    page-break-inside: avoid;
    break-inside: avoid;
  }
  .dms-idoc-print a {
    color: inherit;
    text-decoration: underline;
  }
}
.dms-idoc-block-action {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}

.dms-idoc-action {
  appearance: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid transparent;
  border-radius: 8px;
  padding: 12px 22px;
  font-size: 0.92rem;
  font-weight: 700;
  font-family: inherit;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, transform 0.1s ease;
}
.dms-idoc-action qdnapro-icon {
  flex: 0 0 auto;
}
.dms-idoc-action:active {
  transform: translateY(1px);
}
.dms-idoc-action:focus-visible {
  outline: 2px solid #40499a;
  outline-offset: 2px;
}

.dms-idoc-action-primary {
  background: #40499a;
  color: #fff;
}
.dms-idoc-action-primary qdnapro-icon {
  color: #fff;
}
.dms-idoc-action-primary:hover {
  background: #333a80;
}

.dms-idoc-action-secondary {
  background: #edeefb;
  color: #23253a;
  border-color: #d7d8ec;
}
.dms-idoc-action-secondary qdnapro-icon {
  color: #40499a;
}
.dms-idoc-action-secondary:hover {
  background: #dfe0f7;
}

.dms-idoc-action-disabled {
  opacity: 0.5;
  cursor: default;
}
.dms-idoc-action-disabled:hover {
  background: inherit;
}
.dms-idoc-action-disabled:active {
  transform: none;
}

.dms-idoc-action-primary.dms-idoc-action-disabled:hover {
  background: #40499a;
}

.dms-idoc-action-secondary.dms-idoc-action-disabled:hover {
  background: #edeefb;
}

.dms-idoc-action-preview {
  cursor: default;
  border: 1px dashed rgba(255, 255, 255, 0.6);
}
.dms-idoc-action-preview:hover {
  background: inherit;
}
.dms-idoc-action-preview:active {
  transform: none;
}

.dms-idoc-action-primary.dms-idoc-action-preview:hover {
  background: #40499a;
}

.dms-idoc-action-secondary.dms-idoc-action-preview:hover {
  background: #edeefb;
}

@media (prefers-reduced-motion: reduce) {
  .dms-idoc-action {
    transition: none;
  }
}
.dms-idoc-action-note {
  font-size: 0.78rem;
  color: #6b6884;
}

.dms-idoc-action-note-preview {
  font-style: italic;
}

.dms-idoc-print-action {
  display: flex;
}

.dms-idoc-print-action-label {
  display: inline-block;
  border: 1px solid #6b6884;
  border-radius: 6px;
  padding: 8px 16px;
  font-weight: 700;
  color: #23253a;
}

.dms-idoc-ref-notice {
  position: absolute;
  z-index: 5;
  max-width: 280px;
  padding: 7px 11px;
  border-radius: 6px;
  background: #23253a;
  color: #fff;
  font-size: 12px;
  line-height: 1.4;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.28);
  pointer-events: none;
  animation: dms-idoc-ref-notice-in 0.14s ease-out;
}

@keyframes dms-idoc-ref-notice-in {
  from {
    opacity: 0;
    transform: translateY(-3px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.dms-idoc-print-ref {
  color: inherit;
  text-decoration: none;
}

/* === Briefing modal (qdnapro-wysiwyg) ===
   Verhuisd uit scss/v1/tasklist-activities.scss op 03.08.2026. Het modal wordt nu
   door TWEE pagina's gebruikt (de activiteitenpagina en de flow editor, voor een
   briefing op een vraag), en tasklist-activities.css wordt alleen door de
   activiteitenpagina geladen. Beide pagina's laden style-v1.css, dus daar hoort dit. */
/* The briefing editor is a full-document writing surface, so give the modal
   nearly the whole viewport and let the editor FILL it via a flex chain
   (modal-body -> briefing-modal-body -> editor-col -> wysiwyg -> .tox-tinymce),
   each link min-height:0 so the edit area gets a definite height and scrolls
   INTERNALLY. ID specificity (0,1,1) beats the component's .modal-size-large
   (0,3,0) max-height:800 cap. [Kim 2026-06-11] */
#modal-briefing .modal-dialog {
  height: min(960px, 100vh - 32px);
  max-width: min(1400px, 100vw - 56px);
  min-height: 0;
  overflow: hidden;
}

#modal-briefing .modal-body {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.briefing-modal-body {
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
}

.briefing-editor-col {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

#modal-briefing qdnapro-wysiwyg,
#modal-briefing .qdnapro-wysiwyg {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

#modal-briefing .tox-tinymce {
  flex: 1 1 auto;
  min-height: 0;
}

/* === Live device-preview (right column of the briefing split) === */
.briefing-preview-col {
  flex: 0 0 clamp(320px, 36%, 520px);
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  border-left: 1px solid #eceef5;
  background: #f6f7fb;
  border-radius: 0 8px 8px 0;
  overflow: hidden;
}

.briefing-preview-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-bottom: 1px solid #eceef5;
  flex-shrink: 0;
}

.bp-bar-title {
  font-size: 13px;
  font-weight: 600;
  color: #3b4252;
}

.bp-device-toggle {
  display: flex;
  gap: 2px;
  margin-left: auto;
  background: #eceef5;
  border-radius: 8px;
  padding: 2px;
}

.bp-device {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 26px;
  border: 0;
  background: transparent;
  border-radius: 6px;
  color: #6b7280;
  cursor: pointer;
  transition: background 120ms, color 120ms;
}

.bp-device:hover {
  color: #3b4252;
}

.bp-device.is-active {
  background: #fff;
  color: #4652f3;
  box-shadow: 0 1px 2px rgba(17, 20, 45, 0.1);
}

.bp-device-dims {
  font-size: 11px;
  color: #9aa0ad;
  font-variant-numeric: tabular-nums;
  min-width: 62px;
  text-align: right;
}

.briefing-preview-stage {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 24px;
}

.bp-sizer {
  position: relative;
  flex-shrink: 0;
}

.briefing-preview-frame {
  position: absolute;
  top: 0;
  left: 0;
  transform-origin: top left;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #e1e3e6;
  overflow: hidden;
  box-shadow: 0 6px 24px rgba(17, 20, 45, 0.16);
}

.briefing-preview-frame[data-device=phone] {
  border-radius: 22px;
}

.briefing-preview-frame[data-device=tablet] {
  border-radius: 16px;
}

.briefing-preview-frame[data-device=desktop] {
  border-radius: 8px;
}

.briefing-preview-iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  background: #fff;
}

[data-theme=dark] .briefing-preview-col {
  background: #1b1d27;
  border-left-color: rgba(255, 255, 255, 0.08);
}

[data-theme=dark] .briefing-preview-bar {
  border-bottom-color: rgba(255, 255, 255, 0.08);
}

[data-theme=dark] .bp-bar-title {
  color: #d4d7e0;
}

[data-theme=dark] .bp-device-toggle {
  background: #2a2d3a;
}

[data-theme=dark] .bp-device.is-active {
  background: #3a3f52;
  color: #aeb4ff;
}

.briefing-modal-footer {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-top: 16px;
  margin-top: 8px;
  border-top: 1px solid #eceef5;
}

/* "Elke keer opnieuw tonen" toggle. Sits at the far left of the footer, before
   the status text, so it reads as a property of the briefing you are about to
   save rather than as another action button. [Kim 03.08.2026]
   De vraag-briefing hangt "knop tonen bij de vraag" op exact dezelfde vorm, dus
   de klasse is generiek: één toggle-blok, per consumer een andere tekst. */
.briefing-repeat-toggle {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-right: 16px;
}

.briefing-repeat-text {
  display: flex;
  flex-direction: column;
  line-height: 1.25;
}

.briefing-repeat-label {
  font-size: 13px;
  font-weight: 600;
  color: #1f2430;
}

.briefing-repeat-sub {
  font-size: 11.5px;
  color: #6b7280;
}

[data-theme=dark] .briefing-repeat-label {
  color: #f3f4f6;
}

[data-theme=dark] .briefing-repeat-sub {
  color: #a6aab3;
}

/* Een toggle-blok dat niet bij deze consumer hoort, staat op hidden. Zonder deze
   regel zou display:flex het `hidden`-attribuut overrulen en stond hij er alsnog. */
.briefing-repeat-toggle[hidden] {
  display: none;
}

/* Status text (e.g. "Concept opgeslagen") sits far-left, buttons right. */
.briefing-status {
  margin-right: auto;
  font-size: 13px;
  color: #6b7280;
}

.briefing-status[data-kind=concept] {
  color: #8a6d1f;
}

.briefing-status[data-kind=live] {
  color: #2f8a5b;
  font-weight: 600;
}

.briefing-status[data-kind=error] {
  color: #c33a30;
}

[data-theme=dark] .briefing-modal-footer {
  border-top-color: rgba(255, 255, 255, 0.08);
}

[data-theme=dark] .briefing-status {
  color: #a6aab3;
}

/* ============================================================================
   BlockStrip — de GEDEELDE blokkenlijst (client/shared/BlockStrip.vue).
   ----------------------------------------------------------------------------
   Gebruikt door de interactieve-documenteditor én de rapport-editor. Stond eerder
   als `.idoc-fs-*` / `.idoc-add-*` in de <style> van `documents/interactive-editor.html`
   en is bij het gelijktrekken van de twee editors (Jan, 2026-08-03) hierheen verhuisd
   en hernoemd naar `bstrip-*`.

   ⚠️ Deze stijlen zitten in `style-v1.css`, dus ELKE pagina die de blokkenlijst mount
      heeft ze al — nooit een los CSS-bestand naast de editor hangen (huisregel).
   ⚠️ Bewerk je hier iets, dan verandert het in BEIDE editors. Dat is de bedoeling:
      precies daarom staat het hier en niet twee keer.
   ============================================================================ */
/* ── de "+"-balk tussen en rond de kaarten ─────────────────────────────────── */
.bstrip-add-bar {
  position: relative;
  display: flex;
  justify-content: center;
  height: 14px;
}

.bstrip-add-bar-btn {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 1px dashed #d3d3e6;
  background: #fff;
  color: #8a8fb5;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.12s, border-color 0.12s, color 0.12s;
  padding: 0;
}

.bstrip-add-bar:hover .bstrip-add-bar-btn,
.bstrip-add-bar-open .bstrip-add-bar-btn {
  opacity: 1;
  border-color: #40499a;
  color: #40499a;
}

/* Lege lijst: zonder dit stond er niets dan één "+" die je moest raken om te zien —
   "een raadselspel" (Jan, 2026-07-22). Zolang er geen blokken zijn staat de "+" er
   blijvend, met een hint erboven. Allebei weg zodra het eerste blok geplaatst is. */
.bstrip-empty-hint {
  text-align: center;
  color: #b3b3c6;
  font-size: 12.5px;
  padding: 24px 12px 4px;
}

.bstrip-add-bar-empty {
  height: auto;
  padding: 4px 0 20px;
}

.bstrip-add-bar-empty .bstrip-add-bar-btn {
  opacity: 1;
}

.bstrip-add-picker {
  position: absolute;
  z-index: 20;
  top: 22px;
  left: 50%;
  transform: translateX(-50%);
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 6px 24px rgba(34, 32, 58, 0.18);
  padding: 6px;
  display: flex;
  flex-direction: column;
  min-width: 170px;
}

.bstrip-add-picker-up {
  top: auto;
  bottom: 22px;
}

.bstrip-add-picker-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  border: none;
  background: none;
  border-radius: 6px;
  font-size: 13px;
  color: #23253a;
  text-align: left;
  cursor: pointer;
}

.bstrip-add-picker-item:hover {
  background: #f3f5ff;
  color: #40499a;
}

/* ── de kaart ──────────────────────────────────────────────────────────────── */
.bstrip-card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 7px;
  padding: 9px 8px;
  border-radius: 8px;
  cursor: pointer;
  border: 1px solid #d6d8dd;
  background: #fff;
}

.bstrip-card-head {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.bstrip-card:hover {
  background: #f7f7fb;
}

.bstrip-card-selected {
  background: #f3f5ff;
  border-color: var(--c-brand-purple);
}

.bstrip-card-incomplete .bstrip-snippet {
  opacity: 0.65;
  font-style: italic;
}

.bstrip-card-checked {
  background: #f3f5ff;
}

.bstrip-drag-handle {
  color: #c3c3d6;
  cursor: grab;
  flex: 0 0 auto;
}

/* ── slepen: de lijst herschikt LIVE ───────────────────────────────────────────
   Tijdens het slepen schuift elke kaart met een `transform` naar de plek die hij bij
   lossen zou krijgen; de volgorde in de data verandert pas bij het lossen. Zie de lange
   toelichting bij `onDragStart` in BlockStrip.vue — vooral wáárom er hier alleen
   `transform` staat en de kaarten nooit met de hand verplaatst mogen worden.

   ⚠️ De overgang hangt aan `.bstrip-dragging` en niet aan `.bstrip-card` zelf. Die klasse
      verdwijnt in dezelfde render als de echte herordening, zodat een kaart die door Vue
      naar zijn nieuwe plek wordt gezet daar NIET naartoe animeert (hij staat er al) — en
      een gewone her-render buiten een sleep om nooit gaat schuiven.
   ⚠️ Duur bewust kort (~165ms): dit loopt terwijl je nog sleept, dus een kaart moet zijn
      beweging af hebben vóór je de volgende grens overgaat. Trager voelt stroperig en laat
      de lijst achterlopen op je cursor. */
.bstrip-dragging .bstrip-card {
  transition: transform 165ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

/* De opgepakte kaart blijft zichtbaar op zijn landingsplek, maar gedimd: hij is "in
   beweging", en de volle kaart hangt op dat moment als sleep-schaduw onder je cursor. */
.bstrip-card-dragsource {
  opacity: 0.5;
}

.bstrip-type-icon {
  color: #6b6884;
  flex: 0 0 auto;
}

.bstrip-snippet {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 13px;
  color: #33344a;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Het "Zeker?"-label van het twee-staps verwijderen. Staat hier — bij de blokkenlijst — omdat dit
   gebaar één plek hoort te hebben: `shared/arm-delete.js` bewaakt de TERMIJN, deze regel het BEELD.
   `.idoc-arm-label` is dezelfde stap in de blokFORMULIEREN van de documenteditor (optieregels,
   paneelregels, hotspot-regels). Twee namen, één regel — anders lopen ze uit elkaar op kleur.
   ⚠️ `white-space: nowrap` is functioneel: een label dat afbreekt maakt de rij hoger en dan
   verschuift de prullenbak alsnog, precies wat de tweede klik moet kunnen vertrouwen. */
/* `.qfr-arm` is dezelfde stap in `qdnapro-format-rules` (de voorwaardelijke opmaak van een
   rapportkolom). Dat is een COMPONENT en geen pagina, maar de regel staat hier bij de andere drie
   omdat de comment hierboven precies dat vraagt: vier namen, één regel — anders lopen ze uit elkaar
   op kleur, en dan heet hetzelfde gebaar op vier plekken iets anders. */
.bstrip-arm-label,
.idoc-arm-label,
.qfr-arm,
.rpe-arm {
  font-size: 11.5px;
  color: #c33a30;
  font-weight: 600;
  white-space: nowrap;
  flex: 0 0 auto;
}

/* De actiehoek van een kaart. Bestaat als eigen element omdat de natieve klik hier moet STOPPEN —
   zie de ⚠️ in BlockStrip.vue: zonder die stopper selecteert een klik op de prullenbak óók nog de
   kaart die daarmee net verdween. */
.bstrip-card-acties {
  display: flex;
  align-items: center;
  gap: 2px;
  flex: 0 0 auto;
}

/* Miniatuur van het echte blok, bovenaan afgesneden. De binnenkant tekent op volle
   breedte en wordt daarna verkleind; `pointer-events:none` houdt hem inert zodat een
   klik doorvalt naar de kaart zelf. */
.bstrip-preview {
  height: 88px;
  overflow: hidden;
  background: #fff;
  border: 1px solid color-mix(in srgb, var(--c-brand-purple) 45%, transparent);
  border-radius: 8px;
}

.bstrip-preview-inner {
  width: 760px;
  transform: scale(0.33);
  transform-origin: top left;
  pointer-events: none;
  padding: 14px 16px;
  box-sizing: border-box;
  color: #23253a;
}

/* ── meervoudige selectie ──────────────────────────────────────────────────── */
.bstrip-checkbox-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 18px;
  opacity: 0;
  transition: opacity 0.12s;
}

.bstrip-card:hover .bstrip-checkbox-wrap,
.bstrip-mode-select .bstrip-checkbox-wrap {
  opacity: 1;
}

.bstrip-selectbar {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 8px 10px;
  margin-bottom: 10px;
  border-radius: 12px;
  background: rgba(232, 235, 252, 0.55);
  border: 1px solid rgba(64, 73, 154, 0.1);
}

.bstrip-selchip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  padding: 5px 10px;
  border: none;
  border-radius: 999px;
  background: #e2e6fc;
  color: #40499a;
  font: 600 12px "Inter", sans-serif;
}

.bstrip-selchip:hover {
  background: #d5dbfa;
}

.bstrip-selectbar-actions {
  display: flex;
  align-items: center;
  gap: 2px;
  flex-wrap: wrap;
}

/* Een UITGEZETTE actieknop moet aanwijsbaar blijven, anders is zijn tooltip — die
   uitlegt waaróm hij grijs is — onbereikbaar. De knop zelf doet bij `disabled` toch
   al niets, dus pointer-events terugzetten blijft klik-veilig. */
.bstrip-selectbar-actions .qdnapro-icon-btn.icon-btn-disabled {
  pointer-events: auto;
}

.tls-intro {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 4px 8px 20px;
}
.tls-intro__title {
  font-size: 22px;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--c-text-heading, #1a1f4d);
}
.tls-intro__text {
  font-size: 14px;
  color: var(--c-text-muted, #6e7280);
  max-width: 62ch;
}

.tls-layout {
  display: grid;
  grid-template-columns: 236px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
  padding-bottom: 96px;
}
@media (max-width: 900px) {
  .tls-layout {
    grid-template-columns: minmax(0, 1fr);
  }
}

.tls-nav {
  background: var(--c-bg-card, #ffffff);
  border: 1px solid var(--c-border-soft-2, #e6e9ef);
  border-radius: var(--r-card, 16px);
  box-shadow: var(--shadow-card, 0 1px 2px rgba(20, 25, 80, 0.04), 0 4px 16px rgba(20, 25, 80, 0.04));
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  position: sticky;
  top: 16px;
}
@media (max-width: 900px) {
  .tls-nav {
    position: static;
  }
}
.tls-nav__label {
  padding: 12px 12px 8px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-text-muted, #6e7280);
}

.tls-main {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}

.tls-search {
  max-width: 420px;
}

.tls-layout.is-searching .tls-panel {
  display: flex;
}

.tls-layout qdnapro-list-row[hidden],
.tls-layout qdnapro-section-card[hidden],
.tls-main qdnapro-empty-state[hidden] {
  display: none;
}

.tls-panel {
  display: none;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}
.tls-panel.is-active {
  display: flex;
}

.tls-control {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
}
.tls-control qdnapro-select {
  width: clamp(220px, 24vw, 360px);
}
.tls-control #tls-name,
.tls-control #tls-purpose {
  width: clamp(220px, 26vw, 380px);
}
.tls-control [data-tls-duration] {
  width: 180px;
}

.tls-saved {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 8px;
  border-radius: var(--r-pill, 999px);
  background: var(--c-signal-green-bg, #c5f5e2);
  color: var(--c-signal-green-text, #428b6e);
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
  opacity: 0;
  transform: translateY(-2px);
  transition: opacity 200ms ease, transform 200ms ease;
  pointer-events: none;
}
.tls-saved.is-on {
  opacity: 1;
  transform: none;
}
.tls-saved.tls-saved--error {
  background: var(--c-signal-red-bg, #fee3e3);
  color: var(--c-signal-red-text, #c65a5a);
}
@media (prefers-reduced-motion: reduce) {
  .tls-saved {
    transition: none;
  }
}

.tls-field-error {
  margin-top: 4px;
  font-size: 12px;
  color: var(--c-signal-red-text, #c65a5a);
}
.tls-field-error:empty {
  display: none;
}

.tls-duration {
  display: flex;
  align-items: center;
  gap: 8px;
}

.tls-info {
  min-width: 0;
}
.tls-info__title {
  margin: 0 0 8px;
  font-size: 15px;
  font-weight: 600;
  color: var(--c-text-heading, #1a1f4d);
  padding-right: 24px;
}
.tls-info [data-tls-info-note]:not(:empty) {
  margin-top: 12px;
}

.wv2 {
  max-width: none;
  margin: 24px 28px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.wv2__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.wv2__intro {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 0 4px;
}
.wv2__title {
  font-size: 22px;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.01em;
  margin: 0;
  color: var(--c-text-heading, #1a1f4d);
}
.wv2__sub {
  margin: 0;
  font-size: 13px;
  color: var(--c-text-muted, #6e7280);
  max-width: 68ch;
}
.wv2__alert {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 500;
  background: var(--c-warning-bright-bg);
  border: 1px solid var(--c-warning-bright-border);
  color: var(--c-warning-bright-text);
}
.wv2__error {
  padding: 10px 14px;
  border-radius: 10px;
  font-size: 13px;
  background: var(--c-signal-red-bg);
  color: var(--c-signal-red-text);
}
.wv2__since {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px 10px 14px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 500;
  background: var(--c-signal-green-bg);
  color: var(--c-signal-green-text);
  animation: wv2-row-enter 220ms cubic-bezier(0.22, 1, 0.36, 1) both;
}
.wv2__since-btn {
  margin-left: auto;
  border: 1px solid currentColor;
  background: transparent;
  color: inherit;
  border-radius: 999px;
  padding: 4px 12px;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
}
.wv2__since-btn:hover {
  background: var(--c-signal-green-100, rgba(66, 139, 110, 0.12));
}
.wv2__since-btn:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}
.wv2__since-close {
  border: 0;
  background: transparent;
  color: inherit;
  font-size: 17px;
  line-height: 1;
  padding: 0 2px;
  cursor: pointer;
  opacity: 0.6;
}
.wv2__since-close:hover {
  opacity: 1;
}
.wv2__since-close:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}
.wv2__band {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
}
@media (max-width: 1300px) {
  .wv2__band {
    flex-direction: column;
  }
}
.wv2__band {
  background: var(--c-bg-card);
  border: 1px solid var(--c-border-card);
  border-radius: 14px;
  overflow: hidden;
}
.wv2__band-group {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px 18px;
  flex: 1 1 260px;
  min-width: 0;
}
.wv2__band-group + .wv2__band-group {
  border-left: 1px solid var(--c-border-soft);
}
@media (max-width: 1300px) {
  .wv2__band-group {
    flex: 0 0 auto;
  }
  .wv2__band-group + .wv2__band-group {
    border-left: 0;
    border-top: 1px solid var(--c-border-soft);
  }
}
.wv2__band-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-text-muted);
}
.wv2__band-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.wv2__panel {
  background: var(--c-bg-card);
  border: 1px solid var(--c-border-card);
  border-radius: 14px;
  padding: 14px 16px 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.wv2__toolbar {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.wv2__toolbar-spacer {
  flex: 1 1 auto;
}
.wv2__search {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 12px;
  height: 34px;
  min-width: 200px;
  flex: 0 1 280px;
  border-radius: 999px;
  border: 1px solid var(--c-border-soft);
  background: var(--c-bg-page);
  color: var(--c-text-muted);
}
.wv2__search-input {
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  background: transparent;
  font-size: 13px;
  color: var(--c-text-body);
}
.wv2__search-input:focus {
  outline: none;
}
.wv2__search-input::-webkit-search-cancel-button {
  appearance: none;
}
.wv2__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
}
.wv2__listhead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  padding: 0 2px;
}
.wv2__groupby {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 11px;
  border-radius: 8px;
  border: 1px solid var(--c-border-soft);
  background: transparent;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--c-text-body);
  cursor: pointer;
}
.wv2__groupby:hover {
  border-color: var(--c-brand-purple);
  color: var(--c-brand-purple);
}
.wv2__groupby:focus-visible {
  outline: 2px solid var(--c-brand-purple);
  outline-offset: 2px;
}
.wv2__groupby-label {
  font-weight: 400;
  color: var(--c-text-muted);
}
.wv2__count {
  font-size: 12.5px;
  color: var(--c-text-muted);
  font-variant-numeric: tabular-nums;
}
.wv2__empty, .wv2__noresult {
  padding: 22px 8px;
}
.wv2-row-enter {
  animation: wv2-row-enter 200ms cubic-bezier(0.22, 1, 0.36, 1) both;
}
.wv2-row-leave {
  overflow: hidden;
  pointer-events: none;
  animation: wv2-row-leave 260ms cubic-bezier(0.4, 0, 1, 1) both;
}

@keyframes wv2-row-enter {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes wv2-row-leave {
  0% {
    opacity: 1;
  }
  35% {
    opacity: 0.35;
  }
  100% {
    opacity: 0;
    height: 0;
    margin-top: 0;
    margin-bottom: 0;
    padding-top: 0;
    padding-bottom: 0;
  }
}
.wv2__loading {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 6px 0;
}
.wv2__sk-row {
  height: 56px;
  border-radius: 10px;
}

.wv2-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.wv2-form__context {
  margin: 0;
  font-size: 13px;
  font-weight: 600;
  color: var(--c-text-heading);
}
.wv2-form__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1 1 0;
  min-width: 0;
}
.wv2-form__field label {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--c-text-muted);
}
.wv2-form__field select,
.wv2-form__field input,
.wv2-form__field textarea {
  font-family: inherit;
  font-size: 13.5px;
  color: var(--c-text-body);
  background: var(--c-bg-page);
  border: 1px solid var(--c-border-soft);
  border-radius: 8px;
  padding: 8px 10px;
  width: 100%;
}
.wv2-form__field select:focus,
.wv2-form__field input:focus,
.wv2-form__field textarea:focus {
  outline: 2px solid var(--c-brand-purple);
  outline-offset: 1px;
  border-color: var(--c-brand-purple);
}
.wv2-form__field textarea {
  resize: vertical;
}
.wv2-form__row {
  display: flex;
  gap: 12px;
}
.wv2-form__hint {
  margin: 0;
  font-size: 12px;
  color: var(--c-text-muted);
}
.wv2-form__status {
  margin: 0;
  font-size: 12.5px;
  min-height: 1em;
  color: var(--c-signal-red-text);
}

.wv2-detail {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.wv2-detail__title {
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--c-text-heading);
}
.wv2-detail__text {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--c-text-body);
  max-width: 68ch;
}
.wv2-detail__section {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.wv2-detail__head {
  margin: 0;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-text-muted);
}
.wv2-detail dl {
  margin: 0;
  display: grid;
  grid-template-columns: minmax(120px, max-content) minmax(0, 1fr);
  gap: 7px 18px;
  font-size: 13px;
}
.wv2-detail dt {
  color: var(--c-text-muted);
}
.wv2-detail dd {
  margin: 0;
  color: var(--c-text-body);
  font-weight: 500;
  min-width: 0;
  overflow-wrap: anywhere;
}
.wv2-detail a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--c-brand-purple);
  font-weight: 600;
  text-decoration: none;
}
.wv2-detail a:hover {
  text-decoration: underline;
  text-underline-offset: 2px;
}
.wv2-detail a:focus-visible {
  outline: 2px solid var(--c-brand-purple);
  outline-offset: 2px;
  border-radius: 3px;
}

.udp-panel {
  background: var(--c-bg-card);
  border: 1px solid var(--c-border-card);
  border-radius: var(--r-card);
  overflow: hidden;
  box-shadow: var(--shadow-card);
}

.udp-ph {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 14px;
  border-bottom: 1px solid var(--c-border-soft-2);
}

.udp-pt {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--c-brand-purple);
}

.udp-pb {
  padding: 11px 14px;
}

.udp-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.udp-hero-left {
  display: flex;
  align-items: center;
  gap: var(--s-4);
}

.udp-name {
  font-size: 1.3rem;
  font-weight: 800;
  color: var(--c-text-heading);
  letter-spacing: -0.025em;
  line-height: 1.1;
}

.udp-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--c-text-muted);
  margin-top: 3px;
}

.udp-dot {
  color: var(--c-border-card);
}

.udp-lock {
  display: flex;
  align-items: center;
  gap: 6px;
}

.udp-lock-label {
  font-size: 11px;
  color: var(--c-text-muted);
}

.udp-fg {
  display: grid;
  gap: 10px 16px;
}

.udp-fg-2 {
  grid-template-columns: 1fr 1fr;
}

.udp-fg-3 {
  grid-template-columns: 1fr 1fr 1fr;
}

.udp-fl {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--c-text-muted);
  text-transform: uppercase;
  margin-bottom: 2px;
}

.udp-fv {
  font-size: 12.5px;
  color: var(--c-text-body);
}

.udp-fe {
  font-size: 12px;
  color: var(--c-text-muted);
  font-style: italic;
}

.udp-input {
  width: 100%;
  padding: 5px 8px;
  border: 1px solid var(--c-border-card);
  border-radius: var(--r-btn);
  font-size: 12px;
  font-family: inherit;
  color: var(--c-text-body);
  background: var(--c-bg-page);
  box-sizing: border-box;
  height: 28px;
}

.udp-input:focus {
  outline: none;
  border-color: var(--c-brand-purple);
  box-shadow: 0 0 0 2px rgba(64, 73, 154, 0.12);
}

.udp-textarea {
  height: 72px;
  resize: vertical;
  line-height: 1.4;
}

.udp-ef-footer {
  display: flex;
  gap: 8px;
  padding: 8px 14px;
  border-top: 1px solid var(--c-border-soft-2);
  justify-content: flex-end;
  background: var(--c-bg-page);
}

.udp-save-btn {
  background: var(--c-brand-purple);
  color: white;
  border: none;
  border-radius: var(--r-btn);
  padding: 5px 14px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
}

.udp-save-btn:hover {
  opacity: 0.88;
}

.udp-cancel-btn {
  background: none;
  border: 1px solid var(--c-border-card);
  border-radius: var(--r-btn);
  padding: 5px 14px;
  font-size: 12px;
  color: var(--c-text-muted);
  cursor: pointer;
  font-family: inherit;
}

.udp-cancel-btn:hover {
  background: var(--c-bg-card);
}

.udp-edit-btn {
  font-size: 11px;
  color: var(--c-brand-purple);
  background: none;
  border: 1px solid var(--c-border-soft-2);
  border-radius: 4px;
  cursor: pointer;
  padding: 2px 8px;
  font-family: inherit;
  font-weight: 500;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s, background 0.12s;
}

.udp-edit-btn:hover {
  background: var(--c-bg-page);
}

.udp.editing .udp-edit-btn {
  opacity: 1;
  pointer-events: auto;
}

.udp-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 2px 7px;
  border-radius: 20px;
  font-size: 10px;
  font-weight: 600;
}

.udp-badge-gray {
  background: var(--c-bg-page);
  color: var(--c-text-muted);
}

.udp-badge-green {
  background: #DCFCE7;
  color: #15803D;
}

.udp-badge-blue {
  background: #DBEAFE;
  color: #1D4ED8;
}

.udp-badge-purple {
  background: #EDE9FE;
  color: #6D28D9;
}

.udp-badge-type {
  background: var(--c-light-purple-100, #EEF0FB);
  color: var(--c-brand-purple);
}

.udp-img {
  width: 40px;
  height: 40px;
  border-radius: var(--r-card);
  object-fit: cover;
  background: var(--c-bg-page);
  border: 1px solid var(--c-border-soft-2);
  flex-shrink: 0;
}

.udp-img-wrap {
  position: relative;
  display: inline-flex;
  flex-shrink: 0;
  cursor: default;
}

.udp-visual-tile {
  width: 40px;
  height: 40px;
  border-radius: var(--r-card);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: var(--c-grey-100);
}

.udp-visual-tile--grey {
  background: var(--c-grey-50);
}

.udp-visual-tile--red {
  background: var(--c-signal-red-bg);
}

.udp-visual-tile--yellow {
  background: var(--c-chip-yellow-bg);
}

.udp-visual-tile--green {
  background: var(--c-chip-green-bg);
}

.udp-visual-tile--blue {
  background: var(--c-signal-blue-bg);
}

.udp-visual-tile--bright-blue {
  background: var(--c-chip-bright-blue-2-bg);
}

.udp-visual-tile--pink {
  background: var(--c-signal-pink-bg);
}

.udp-visual-tile--purple {
  background: var(--c-chip-purple-bg);
}

.udp-visual-avatar {
  flex-shrink: 0;
}

.udp-img-overlay {
  position: absolute;
  inset: 0;
  border-radius: var(--r-card);
  background: rgba(0, 0, 0, 0.42);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s;
}

.udp-img-overlay-icon {
  color: #fff;
  font-size: 14px;
}

.udp-audit-body::-webkit-scrollbar {
  width: 4px;
}

.udp-audit-body::-webkit-scrollbar-thumb {
  background: var(--c-border-card);
  border-radius: 2px;
}

.udp-audit-body::-webkit-scrollbar-thumb:hover {
  background: var(--c-text-muted);
}

.udp-audit-body::-webkit-scrollbar-track {
  background: transparent;
}

.udp-audit-feed .udp-ta {
  font-weight: 400;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.udp-audit-hdr {
  padding: 8px 14px;
  border-bottom: 1px solid var(--c-border-soft-2);
  background: var(--c-bg-card);
  flex-shrink: 0;
}

.udp-audit-ph {
  flex: 1;
  margin-top: 8px;
  padding: 12px 8px;
  background: var(--c-bg-card);
  border-radius: var(--r-row);
  border: 1.5px dashed var(--c-border-card);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 60px;
}

.udp-audit-ph-sub {
  font-size: 10.5px;
  color: var(--c-text-muted);
  margin-top: 2px;
  line-height: 1.4;
}

.udp-audit-ph-title {
  font-size: 11px;
  font-weight: 700;
  color: var(--c-brand-purple);
  margin-top: 5px;
}

.udp-audit-v {
  background: var(--c-bg-card);
  border: 1px solid var(--c-border-soft-2);
  border-radius: var(--r-row);
  padding: 0 4px;
  font-weight: 600;
  color: var(--c-text-body);
}

.udp-mgmt {
  margin-bottom: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--c-border-soft-2);
}

.udp-mgmt-lbl {
  color: var(--c-text-muted);
}

.udp-mgmt-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 11.5px;
  margin-bottom: 4px;
}

.udp-mgmt-row:last-child {
  margin-bottom: 0;
}

.udp-mgmt-section-lbl {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--c-text-muted);
  margin-bottom: 6px;
}

.udp-mgmt-val {
  color: var(--c-text-body);
  font-weight: 500;
  font-size: 11px;
}

.udp-ta {
  font-size: 11.5px;
  color: var(--c-text-body);
  font-weight: 500;
}

.udp-td {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--c-brand-purple);
  flex-shrink: 0;
  margin-top: 4px;
}

.udp-td.dim {
  background: var(--c-border-card);
}

.udp-te {
  display: flex;
  gap: 8px;
  padding: 6px 0;
  border-bottom: 1px solid var(--c-border-soft-2);
}

.udp-te:last-of-type {
  border-bottom: none;
}

.udp-tl {
  display: flex;
  flex-direction: column;
}

.udp-tm {
  font-size: 10.5px;
  color: var(--c-text-muted);
  margin-top: 1px;
}

.udp-main::-webkit-scrollbar {
  width: 4px;
}

.udp-main::-webkit-scrollbar-thumb {
  background: var(--c-border-card);
  border-radius: 2px;
}

.udp-main::-webkit-scrollbar-track {
  background: transparent;
}

.udp.editing .udp-img-wrap {
  cursor: pointer;
}

.udp.editing .udp-img-wrap:hover .udp-img-overlay {
  opacity: 1;
}

[id^=udp-ef-].udp-ef-open {
  max-height: 2000px;
  pointer-events: auto;
  animation: udpRollDown 0.26s cubic-bezier(0.4, 0, 0.2, 1) both;
}

[id^=udp-ro-].udp-ro-hidden {
  display: none;
}

/* Pulse-campagnepagina — pagina-gescoopt (pulse-*).
   Let op: geen Twig-commentaar in dit blok (dat breekt de hele pagina). */
/* --- Kop: één witte laag die doorloopt vanaf de breadcrumb-balk ---------- */
/* Zelfde "geopende kaart"-idioom als de takenlijstpagina: een doorschijnende
   witte laag met een verloop-masker, zodat de paarse pagina eronder begint. */
.pulse-detail-header {
  position: relative;
  z-index: 1;
  padding: 18px 28px 22px;
}

.pulse-detail-header::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(20px) saturate(1.6);
  -webkit-backdrop-filter: blur(20px) saturate(1.6);
  -webkit-mask-image: linear-gradient(to bottom, #000 40%, rgba(0, 0, 0, 0) 100%);
  mask-image: linear-gradient(to bottom, #000 40%, rgba(0, 0, 0, 0) 100%);
}

/* --- Campagnekop: hero-kopie van de projectenpagina --------------------- */
/* 1-op-1 gekopieerd van .pv2-hero c.s. in projects-v2.html (regels 229-307):
   foto met verloop-overlay, ronde glazen terugknop, witte titel, omschrijving
   en meta, avatar-stack met plusknop, en het actiecluster (favoriet +
   meer-menu) rechtsboven. Prefix is .pulse-hero i.p.v. .pv2-hero; de nieuwe
   kop-markup die deze klassen gebruikt komt in een volgende kaart.

   AANNAME, nog te checken bij die markup-kaart: .pulse-hero zit rechtstreeks
   IN .pulse-detail-header (hierboven), waarvan de padding (18px 28px 22px)
   hier met negatieve marges wordt opgeheven zodat de foto — net als
   .pv2-hero op de projectenpagina — tot de rand van de kop loopt. Nest de
   markup anders, dan moet deze negatieve marge mee verhuizen. */
.pulse-hero {
  position: relative;
  /* One source for the hero height; the breakpoints below and the
     glass-navbar pull-up both read this token instead of re-stating px. */
  --pulse-hero-h: 280px;
  height: var(--pulse-hero-h);
  margin: -18px -28px -22px;
  display: flex;
  align-items: flex-end;
  padding: 24px 28px;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  background-color: var(--c-purple-200);
  /* Naam voor de cross-document view-transition hieronder. */
  view-transition-name: pulse-hero-photo;
}

.pulse-hero-overlay {
  position: absolute;
  inset: 0;
  /* Readability scrim (19.08.2026, Kim): Pulse covers are often light,
     pastel illustrations where the pv2 gradient is too thin around the
     title zone. Two stacked gradients: a stronger bottom scrim that
     starts higher, plus a left-side scrim over the text column so the
     right side of the illustration stays visible. Works together with
     the text-shadow on .pulse-hero-info below. */
  background: linear-gradient(to right, rgba(0, 0, 0, 0.38) 0%, rgba(0, 0, 0, 0) 60%), linear-gradient(to top, rgba(0, 0, 0, 0.78) 0%, rgba(0, 0, 0, 0.38) 50%, rgba(0, 0, 0, 0) 100%);
}

.pulse-hero-back {
  position: absolute;
  top: 20px;
  left: 20px;
  width: 40px;
  height: 40px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: #fff;
  cursor: pointer;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 150ms ease;
}

.pulse-hero-back:hover {
  background: rgba(255, 255, 255, 0.34);
}

.pulse-hero-back qdnapro-icon {
  color: #fff;
}

.pulse-hero-info {
  position: relative;
  z-index: 2;
  color: #fff;
  /* Inherited by title, description and meta: carries the lightest spots
     of a near-white illustration without reading as a drop shadow. */
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}

/* Titel + statuschip op één rij. .pv2-hero heeft geen chip naast de titel —
   dat is eigen aan de campagnekop — dus deze rij-wrapper is nieuw. De chip zelf
   is een qdnapro-tag in een pastelkleur (_campaign-head.html), en NIET dezelfde
   vorm als de pil op de tegel: die ligt op een omslagfoto en gebruikt daarom
   variant="glass". Twee plekken, twee achtergronden, hetzelfde WOORD. */
.pulse-hero-title {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.pulse-hero-name {
  font-size: 26px;
  font-weight: 500;
  color: #fff;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
}

.pulse-hero-status {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 9px 4px 7px;
  background: rgba(64, 73, 154, 0.78);
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 999px;
  backdrop-filter: blur(8px) saturate(1.2);
  -webkit-backdrop-filter: blur(8px) saturate(1.2);
  color: #fff;
  font-size: 11px;
  font-weight: 500;
  line-height: 14px;
  letter-spacing: 0.2px;
}

.pulse-hero-status qdnapro-icon {
  color: #fff;
  flex-shrink: 0;
}

/* Omschrijving: witte tekst op de foto, 3 regels afgekapt. Geen equivalent in
   .pv2-hero (die toont geen omschrijving) — vorm en toon volgen wel dezelfde
   "wit-op-foto"-taal als .pv2-org (rgba(255,255,255,0.72) + text-shadow). */
.pulse-hero-descr {
  margin: 6px 0 0;
  max-width: 640px;
  font-size: 14px;
  line-height: 20px;
  color: rgba(255, 255, 255, 0.86);
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.pulse-hero-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
  flex-wrap: wrap;
}

.pulse-hero-meta-item {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.62);
  display: flex;
  align-items: center;
  gap: 5px;
}

.pulse-hero-meta-item qdnapro-icon {
  color: rgba(255, 255, 255, 0.62);
}

/* Avatar-stack + plusknop: kopie van .pv2-members / .pv2-members-add. De
   overlappende ronde avatars zelf komen uit het gedeelde qdnapro-avatar-stack
   component (scss/components/v2/avatar-stack/_avatar-stack.scss) — hier
   alleen de klikbare omhullende pil en de ronde glazen plusknop. */
.pulse-hero-members {
  all: unset;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 8px 4px 4px;
  border-radius: 999px;
  cursor: pointer;
  transition: background 150ms ease;
}

.pulse-hero-members:hover {
  background: rgba(255, 255, 255, 0.12);
}

.pulse-hero-members-add {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
}

.pulse-hero-members-add qdnapro-icon {
  color: #fff;
}

/* Actiecluster (favoriet + meer-menu), kopie van .pv2-hero-actions incl. de
   favorite-button hover-regel. */
.pulse-hero-actions {
  position: absolute;
  bottom: 26px;
  right: 28px;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 10px;
}

.pulse-hero-actions qdnapro-favorite-button {
  background: rgba(255, 255, 255, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.pulse-hero-actions qdnapro-favorite-button:hover:not(.favorite-button-disabled) {
  background: rgba(255, 255, 255, 0.3);
}

.pulse-hero-more {
  position: relative;
}

.pulse-hero-menu {
  position: absolute;
  bottom: calc(100% + 8px);
  right: 0;
  z-index: 10;
}

.pulse-hero-menu[hidden] {
  display: none;
}

/* --- Cross-document view-transition + fallback entrance ------------------ */
/* ⚠️ GEEN nieuw `@view-transition { navigation: auto; }`-blok hier: dat staat
   al globaal in base.scss (regel 10), en dat bestand compileert mee in
   dezelfde style-v1.css. Een tweede `@view-transition`-at-rule zou puur
   overbodig zijn — de scope hieronder pakt alleen het morph-gedrag van het
   met naam gemerkte hero-element. */
::view-transition-old(pulse-hero-photo),
::view-transition-new(pulse-hero-photo) {
  animation-duration: 500ms;
  /* Zelfde bewogen "groei"-easing als de kaart-entree op de projecten- en
     campagnegrid (pv2-card-enter / pulse-card-enter): een lichte overshoot
     past bij het gevoel van een tegel die uitgroeit tot volledig scherm. */
  animation-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Fallback voor browsers zonder cross-document view-transitions: dezelfde
   groei-vanuit-klein-met-afgeronde-hoeken op de kop zelf, met dezelfde
   easing als hierboven. Klasse wordt door de pagina-JS gezet/verwijderd op
   de kop (kaart 3); zonder die klasse verandert er niets. */
@keyframes pulse-hero-enter {
  0% {
    opacity: 0;
    transform: scale(0.6);
    border-radius: 20px;
  }
  100% {
    opacity: 1;
    transform: scale(1);
    border-radius: 0;
  }
}
.pulse-hero--enter {
  animation: pulse-hero-enter 500ms cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

@media (prefers-reduced-motion: reduce) {
  .pulse-hero--enter {
    animation: none;
  }
}
/* --- Publiceer-knop: border-beam (19.08.2026, Kim) ------------------------ */
/* De witte Publiceer-knop (secondary-white, zie _campaign-head.html) krijgt
   een lichtstreep die langs de rand loopt. Techniek: een ::after-ring net
   buiten de knop (inset -3px, 2px dik) met een conic-gradient waarvan de
   starthoek geanimeerd wordt via een geregistreerde custom property; de
   dubbele mask met exclude houdt alleen de ring over. Browsers zonder
   @property-interpolatie tonen een stilstaande, subtiele ring: nette
   terugval, geen kapotte animatie. Alleen op deze ene knop, dus
   pagina-gescoopt en niet in de button-component. */
@property --pulse-beam-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}
.pulse-hero-actions #pulse-publish-btn {
  position: relative;
}

.pulse-hero-actions #pulse-publish-btn::after {
  content: "";
  position: absolute;
  inset: -3px;
  border-radius: 11px; /* knop-radius 8px + 3px offset */
  padding: 2px; /* ringdikte */
  background: conic-gradient(from var(--pulse-beam-angle), rgba(255, 255, 255, 0.16) 0turn 0.72turn, rgba(255, 255, 255, 0.98) 0.86turn, rgba(255, 255, 255, 0.16) 1turn);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  animation: pulse-beam-spin 3.2s linear infinite;
  pointer-events: none;
}

@keyframes pulse-beam-spin {
  to {
    --pulse-beam-angle: 1turn;
  }
}
@media (prefers-reduced-motion: reduce) {
  .pulse-hero-actions #pulse-publish-btn::after {
    animation: none;
  }
}
/* --- Glass navbar boven de hero (19.08.2026, Kim) ------------------------- */
/* Zelfde gedrag als de projectenpagina (.pv2-has-open-project in
   projects-v2.html, regels 873-892): op de drie CAMPAGNEpagina's wordt de
   navbar glas en loopt de herofoto eronderdoor. De views zetten daarvoor
   bodyClass "pulse-campaign-page"; het Pulse-overzicht houdt de gewone
   navbar, precies zoals het projectenoverzicht. De navbar is sticky en
   reserveert zijn eigen hoogte in de flow, dus alleen de negatieve marge
   trekt de foto eronder; de hero wordt evenveel hoger zodat het zichtbare
   deel onder de frost gelijk blijft. De terugknop zakt mee onder de navbar
   uit (een (0,2,1)-selector, wint dus ook van de 760px-regel hieronder). */
body.pulse-campaign-page .qdna-navbar {
  background: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(20px) saturate(1.6);
  -webkit-backdrop-filter: blur(20px) saturate(1.6);
}

body.pulse-campaign-page .pulse-hero {
  margin-top: calc(-18px - var(--qdna-topbar-h));
  height: calc(var(--pulse-hero-h) + var(--qdna-topbar-h));
}

body.pulse-campaign-page .pulse-hero-back {
  top: calc(var(--qdna-topbar-h) + 14px);
}

/* --- Responsive: tablet en telefoon --------------------------------------- */
/* .pv2-hero zelf heeft in projects-v2.html GEEN eigen media-queries (het
   enige @media-blok in dat bestand, regel 106, gaat over .pv2-bg-illustration
   en heeft niets met de hero te maken) — er valt dus niets 1-op-1 te
   spiegelen. Onderstaande twee breakpoints zijn eigen, behoudende keuzes,
   op dezelfde ad-hoc manier als de rest van dit bestand al doet
   (.pulse-detail-body op 1100px, .pulse-units-row op 760px). Nog te
   verifiëren zodra de echte markup (kaart 3) er is. */
@media (max-width: 1100px) {
  .pulse-hero {
    --pulse-hero-h: 240px;
    padding: 20px 24px;
  }
  .pulse-hero-name {
    font-size: 22px;
  }
}
@media (max-width: 760px) {
  .pulse-hero {
    --pulse-hero-h: 200px;
    padding: 16px 18px;
  }
  .pulse-hero-name {
    font-size: 19px;
  }
  .pulse-hero-descr {
    font-size: 13px;
    -webkit-line-clamp: 2;
  }
  .pulse-hero-actions {
    bottom: 16px;
    right: 16px;
    gap: 8px;
  }
  .pulse-hero-back {
    top: 14px;
    left: 14px;
    width: 36px;
    height: 36px;
  }
}
/* Publicatiemeldingen: de server geeft alle problemen tegelijk terug, dus ze
   komen als lijstje onder de kop te staan in plaats van één per poging.

   ⚠️ margin-top 36px, niet 14px (28.08.2026, Kim): .pulse-hero heeft
   `margin: -18px -28px -22px;` (regel 69) om de header-padding te negeren
   zodat de foto tot de rand loopt. Die margin-bottom van -22px collapt met
   de margin-top van deze balk (block-siblings, geen BFC ertussen), dus het
   werkelijke gat is max(0, margin-top) + min(0, -22px). Met 14px gaf dat
   14 - 22 = -8px: de balk school 8px ONDER de hero. 36px geeft
   36 - 22 = 14px, het oorspronkelijk bedoelde gat. Bevestigd met een
   headless-Chrome meting (getBoundingClientRect) op een losse harness. */
.pulse-problems {
  margin: 36px 0 0;
  padding: 12px 14px;
  background: #fff8e1;
  border: 1px solid #f5d68a;
  border-radius: 10px;
  color: #5c4100;
  font-size: 13.5px;
  line-height: 20px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.pulse-problems[hidden] {
  display: none;
}

.pulse-problems qdnapro-icon {
  color: #b78100;
  flex-shrink: 0;
  margin-top: 1px;
}

.pulse-problems ul {
  margin: 4px 0 0;
  padding-left: 18px;
}

.pulse-problems li {
  margin: 2px 0;
}

/* --- De vier cijfers bovenaan de campagnepagina ------------------------- */
/* Zelfde vorm als de statsbalk op de takenlijst (v1/tasklist-activities.scss):
   een rij kaarten, geen grid. Bewust GEEN vier gelijke kolommen — dan zou elke
   kaart uitrekken tot de volle paginabreedte en zouden vier korte getallen in
   vier halflege vlakken staan. De kaarten houden hun eigen breedte en de rij
   loopt van links op, precies zoals op de takenlijst.

   Links uitgelijnd met .pulse-detail-body eronder (dezelfde 28px marge), zodat
   de balk en de stappenkaart op één lijn beginnen. [Kim 12.08.2026] */
.pulse-stats-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 20px 28px 0;
}

/* De balk neemt de bovenmarge over van de inhoud eronder, anders staat er twee
   keer lucht tussen de kaarten en de stappen. */
.pulse-stats-bar + .pulse-detail-body {
  margin-top: 14px;
}

/* --- Pagina-inhoud: stappen links, doelgroep rechts --------------------- */
.pulse-detail-body {
  max-width: none;
  /* Onderruimte 48px → 96px (11.08.2026): sinds de splitsing staat er een
     ZWEVENDE actiebalk onderin. Die is `position: fixed`, neemt dus geen
     ruimte in de pagina in en legt zich over de laatste rij heen; je kunt er
     ook niet voorbij scrollen omdat er niets meer onder staat.

     SYNC-PUNT, met opzet een vast getal — hetzelfde als in
     _tasklist-settings.scss, om dezelfde reden: _action-bar.scss zet
     `height: 56px` hard (er is geen --action-bar-height) en
     --action-bar-offset staat op .qdnapro-action-bar zelf, dus die is hier
     niet erfbaar en een var() zou stil altijd op de fallback landen.
     96px = 56 (hoogte) + 16 (offset) + 24 lucht. Wordt de balk hoger of komt
     hij verder van de rand, dan moet dit mee. */
  margin: 20px 28px 96px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 22px;
  align-items: start;
}

@media (max-width: 1100px) {
  .pulse-detail-body {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* De twee ZUSTERPAGINA'S (gesprekken, statistieken) dragen elk één paneel, dus
   daar valt niets te verdelen: de smalle rechterkolom van de campagnepagina zou
   er alleen een lege strook van maken. [Kim 11.08.2026] */
.pulse-detail-body--single {
  grid-template-columns: minmax(0, 1fr);
}

.pulse-panel {
  background: var(--c-bg-card, #fff);
  border-radius: 14px;
  box-shadow: 0 1px 3px rgba(20, 25, 80, 0.08), 0 8px 24px rgba(20, 25, 80, 0.06);
  padding: 20px 22px 22px;
}

.pulse-panel-head {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 4px;
}

.pulse-panel-head h2 {
  margin: 0;
  font-size: 16px;
  line-height: 22px;
  color: var(--c-brand-purple, #394290);
  flex: 1 1 auto;
}

.pulse-panel-sub {
  margin: 0 0 18px;
  font-size: 12.5px;
  line-height: 18px;
  color: var(--c-grey-500, #6b6884);
}

/* --- Stappen-werkbalk (W9F1, kaart 4): alleen het zoekveld --------------- */
/* .pulse-toolbar bestaat al hierboven (OVERZICHTSPAGINA / analytics, regel
   ~1729) met een eigen indeling voor de campagnelijst (links "maak"-knoppen,
   rechts zoeken+sorteren). De view (kaart 3) gebruikt daarom de modifier
   .pulse-toolbar--steps op de balk boven de stappenlijst, met het zoekveld
   in de bestaande .pulse-toolbar-right — die heeft al margin-left: auto,
   dus die duwt het veld vanzelf naar rechts. Hier dus alleen de breedte van
   het veld en een op de paneelcontext afgestemde marge. */
/* Twee klassen, met opzet: de basisregel `.pulse-toolbar { margin-bottom: 20px }`
   staat verderop in dit bestand en zou een enkele-klasse-modifier in de cascade
   stilletjes overrulen (gelijke specificiteit, latere regel wint). */
.pulse-toolbar.pulse-toolbar--steps {
  margin-bottom: 14px;
}

.pulse-toolbar--steps .pulse-toolbar-right qdnapro-input {
  width: 220px;
  flex-shrink: 0;
}

/* De kop "Stappen" staat sinds 20.08.2026 IN de werkbalk (Kim): het witte
   paneel eromheen is weg, dus de kop zit op dezelfde regel als het zoekveld.
   Zelfde maat en kleur als de oude `.pulse-panel-head h2` had, zodat het
   dezelfde kop blijft en niet ineens een andere hiërarchie leest. */
.pulse-steps-title {
  margin: 0;
  font-size: 16px;
  line-height: 22px;
  color: var(--c-brand-purple, #394290);
}

/* De werkbalk stond met `align-items: center`, maar de kop en een klein
   invoerveld zijn niet even hoog; center is hier precies goed en staat al op
   `.pulse-toolbar`. Wat WEL nodig is: de kop mag niet meekrimpen wanneer de
   balk op een smal scherm gaat wikkelen. */
.pulse-toolbar--steps .pulse-toolbar-left {
  min-width: 0;
  flex: 0 1 auto;
}

/* Het uitlegpaneel achter het i-knopje. qdnapro-popover is standaard 280px
   breed met 6px padding — dat is de MENU-maat (zie de qdna-popovers skill,
   punt 1); drie zinnen lopen daar zichtbaar uit het kaartje. De pagina zet de
   maat dus zelf. Haak op het data-attribuut en niet op een klasse: het
   component herschrijft zijn className bij elke render. */
qdnapro-popover[data-pulse-info] {
  width: min(92vw, 380px);
  padding: 14px 16px;
}

.pulse-info-text {
  margin: 0;
  font-size: 12.5px;
  line-height: 18px;
  color: var(--c-grey-600, #4b4869);
}

/* --- De stappen-tijdlijn ------------------------------------------------ */
.pulse-steps {
  display: flex;
  flex-direction: column;
  gap: 8px;
  position: relative;
}

/* Kaart 12 (20.08.2026): het stippen-vlak (.qdnapro-edit-frame, zie
   scss/components/v2/edit-frame/_edit-frame.scss) levert bewust GEEN
   padding — die hoort bij de pagina die het invult. `.pulse-steps-frame`
   is de haak in de view (v1/pulse/detail.html) waarop hij landt: werkbalk,
   lijst en toevoeg-rij staan er samen in, dus de binnenmarge komt op de
   frame zelf i.p.v. op elk kind apart. ~16-20px, zoals de takenlijst zijn
   .edit-frame-inhoud (.toolbar/.activity-list) vult. */
.pulse-steps-frame {
  padding: 18px;
}

/* Kaart 12: de rij is sinds kaart 11 het gedeelde
   qdnapro-activity-row[variant="pulse"] (styling in
   scss/components/v2/activity-row/_activity-row.scss). Dat component regelt
   zelf al de hover-opmaak en het dimmen tijdens het slepen (het
   [dragging]-attribuut) — de oude `.pulse-steps.is-manage .pulse-step-row`
   hover/cursor-regel en `.pulse-step-row.is-dragging { opacity }` zijn
   daarmee overbodig en zijn weg. (Kijker-rijen regelen hun cursor sinds
   kaart 13/14 volledig in het component zelf, via het readonly-attribuut —
   de tijdelijke .pulse-row-readonly-regel die hier stond is daarmee dood en
   verwijderd.) Eén ding uit die oude regels bleef wél zinvol, herricht op de
   nieuwe rij: tijdens het slepen geeft de 150ms-transitie op
   border/shadow/transform van de basisrij (_activity-row.scss) merkbare
   vertraging als meerdere rijen snel van hover-/drop-indicator wisselen —
   hier uitgezet zolang .pulse-steps.is-dragging aan staat, exact zoals de
   oude .pulse-steps.is-dragging .pulse-step-row deed. */
.pulse-steps.is-dragging qdnapro-activity-row .activity-row-inner {
  transition: none;
}

/* Kaart 18 (BOARD-pulse-antwoordopties-richting-c.md, Kims design-feedback
   25.08.2026): de dag-pill op elke stappenrij ("Dag N" / een datum) opent al
   de dag-popover (zie stepsEl.addEventListener("click", ...) hieronder in
   deze view), maar oogde als een dood label. Knop-affordance erbovenop,
   hetzelfde recept als .button-secondary-purple (components/v2/button/
   _button.scss) — precies wat .pulse-wiz-card/.pulse-type-card hierboven in
   dit bestand ook al 1-op-1 spiegelen: hover = lichte achtergrondtint,
   active = een iets diepere tint van dezelfde kleurfamilie, geen transform.
   Basis-achtergrond van de pill (var(--c-purple-50)) is dezelfde token als
   de rustkleur van .button-secondary-purple, dus de hover/active-tinten van
   die knop passen hier zonder iets nieuws te verzinnen.
   Belangrijk: .row-pulse-day wordt gebouwd in qdna-activity-row.js
   (_renderPulse(), als <div class="row-pulse-day">) — dat bestand valt
   buiten de scope van deze kaart (alleen detail.html en _pulse.scss), dus
   dit blok raakt alleen het UITERLIJK via de class-selector. De pill heeft
   op dit moment geen tabindex/role="button": de :focus-visible-ring
   hieronder ligt daardoor klaar maar is met het toetsenbord nog niet te
   bereiken totdat de pill in het component zelf een echt <button> (of
   role="button"+tabindex, zoals .pulse-add-bar hierboven al doet) wordt. */
.pulse-steps qdnapro-activity-row .row-pulse-day {
  cursor: pointer;
  transition: background-color 120ms ease;
}

/* UITLIJNING VAN DE STAPTYPE-ICONEN (Kim 02.09.2026: "ik wil dat de iconen van
   alle stappen hetzelfde zijn uitgelijnd. De finish vlag breekt dat nu.")

   Gemeten op /v1/pulse/47 vóór deze regels: het icoon van een kennisvraag begon
   op x=350, dat van het eindscherm op x=397 - 47px verschil, uit twee bronnen:
     - 28px van het kalenderslotje (18px kolom + 10px tussenruimte) dat alleen
       die rij had. Weg: detail.html zet nu `no-handle` op ELKE rij.
     - 19px van de dagpil zelf: "Dag 0" komt op de ondergrens van 76px uit,
       "15-09-2026" op 95px.

   Die laatste 19px lost deze regel op. `width` in plaats van `min-width`, zodat
   een langere tekst de pil nooit meer kan oprekken - de uitlijning is dan een
   garantie en geen toevalligheid. De datum wordt kleiner gezet om in diezelfde
   76px te passen (Kims eigen voorstel). Gemeten breedte van "15-09-2026" in dit
   font: 13px -> 75.2, 12px -> 69.4, 11px -> 63.6. Met 5px lucht links en rechts
   past 11px met 2.4px over; 12px zou er 3.4px overheen steken.
   De subregel ("vaste datum") blijft op 10.5px: het label is vet en de subregel
   niet, dus de rangorde blijft leesbaar ook al schelen ze nog maar een halve
   punt. */
.pulse-steps qdnapro-activity-row .row-pulse-day {
  width: 76px;
  min-width: 0;
}

.pulse-steps qdnapro-activity-row.pulse-row-fixed-date .row-pulse-day {
  padding-left: 5px;
  padding-right: 5px;
}

.pulse-steps qdnapro-activity-row.pulse-row-fixed-date .row-pulse-day-label {
  font-size: 11px;
  line-height: 15px;
}

.pulse-steps qdnapro-activity-row .row-pulse-day:hover {
  background: var(--c-border-tree-bright, #d4d8ee);
}

.pulse-steps qdnapro-activity-row .row-pulse-day:active {
  background: var(--c-sidebar-icon, #c5c9eb);
}

/* Zelfde bootstrap-valkuil als bij .pulse-wiz-card/.pulse-type-card
   hierboven in dit bestand: de v1-header laadt bootstrap.min.css, en die
   zet `button:focus { outline: 5px auto -webkit-focus-ring-color }` op ELKE
   knop (een muisklik geeft wel :focus maar geen :focus-visible). outline
   uitzetten, de zichtbare markering is een eigen box-shadow-ring — geen
   outline, want .activity-row-inner staat op overflow:hidden (zie de
   opmerking daarover in _activity-row.scss, "box-shadow (focus ring) is
   unaffected"): een outline zou aan de rand van de rij afgeknipt worden. */
.pulse-steps qdnapro-activity-row .row-pulse-day:focus {
  outline: none;
}

.pulse-steps qdnapro-activity-row .row-pulse-day:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--focus-ring, #534ab7);
}

/* Dark mode: de pill heeft hier geen los token (#2a2d55, zie _activity-row.
   scss), dus geen bestaande hover/active-kleur om te hergebruiken. Zelfde
   verhouding als .qdnapro-nav-rail hanteert voor hover/active op een donker
   vlak (rgba(255,255,255,.08) / .16, zie _nav-rail.scss) — hier via
   color-mix() omdat de pill al een eigen effen achtergrond heeft in plaats
   van transparant op de paginakleur. */
[data-theme=dark] .pulse-steps qdnapro-activity-row .row-pulse-day:hover {
  background: color-mix(in srgb, #2a2d55 92%, #fff);
}

[data-theme=dark] .pulse-steps qdnapro-activity-row .row-pulse-day:active {
  background: color-mix(in srgb, #2a2d55 84%, #fff);
}

.pulse-step-type {
  flex: 0 0 auto;
  /* 34 -> 40px (W9F1, kaart 4): takenlijst-maat. Groeit alleen dit tegeltje;
     de kolommen ervoor (greep/slotje, dagpil) staan links ervan in de flex-
     volgorde en verschuiven niet, dus .pulse-step-row::before (de
     verbindingslijn hieronder, links: 27px) hoeft niet mee — die hangt al
     op de breedte van de kolommen VOOR het tegeltje, niet erop. Rij-padding
     (12px 12px 12px 10px) blijft ook ongewijzigd: met dit tegeltje erin
     komt de rij vanzelf op 12+40+12 = 64px, dezelfde hoogte als een
     takenlijstrij (qdnapro-activity-row, min-height: 64px). */
  width: 40px;
  height: 40px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Pulse-kleurenpalet per staptype: ONGEWIJZIGD (kaart 4-opdracht, expliciet
   bevroren) — alleen de tegelmaat hierboven is aangepast. */
/* Kim 24.08: de tegels gebruiken nu de KLEUREN VAN TAKENLIJSTEN (dezelfde
   tokens als .qdnapro-tasklist-card.tlc-color-*), zodat de kiezer dezelfde
   taal spreekt als de rest. Dit vervangt bewust het eerder bevroren
   Pulse-eigen palet: de opdracht om die kleuren te bevriezen is hiermee
   ingehaald. Per type dezelfde kleurfamilie als voorheen, alleen nu uit het
   gedeelde palet; video en verbeteractie krijgen er hun eigen kleur bij. */
.pulse-step-type--flash {
  background: var(--c-chip-yellow-bg, #fff2d6);
}

.pulse-step-type--question {
  background: var(--c-signal-blue-bg, #e6efff);
}

.pulse-step-type--poll {
  background: var(--c-chip-purple-bg, #eae4ff);
}

/* Kim 25.08: de laatste drie zijn onderling GEDRAAID. Video kreeg het rood van
   verbeteractie (haar keuze, ook nadat ik had gemeld dat het roze videospelertje
   daardoor weinig contrast met zijn eigen vlakje houdt), verbeteractie het groen
   van document, en document het bright-blue van video. Dezelfde rotatie staat in
   `tileColor` in pulse/detail.html - dat is de tegel op de STAPPENRIJ en dit de
   tegel in de TYPEKIEZER, en die twee horen dezelfde kleur te dragen. Verander er
   nooit een zonder de ander. */
.pulse-step-type--document {
  background: var(--c-chip-bright-blue-2-bg, #e3f0fb);
}

.pulse-step-type--video {
  background: var(--c-signal-red-bg, #fde8e8);
}

.pulse-step-type--action {
  background: var(--c-chip-green-bg, #e3f3ee);
}

/* Card 8 follow-up (Kim 01.09): the two frame types were shipped without a
   tinted tile. Same colours as `tileColor` in pulse/detail.html (pink/grey);
   the pairing rule above applies here too: never change one without the
   other. */
.pulse-step-type--start {
  background: var(--c-chip-pink-bg, #fde7f1);
}

.pulse-step-type--finish {
  background: var(--c-chip-grey-bg, #ededf2);
}

/* Het geanimeerde icoon vult de tegel met wat lucht eromheen. */
.pulse-type-anim {
  width: 30px;
  height: 30px;
  display: block;
}

/* OPTISCHE MAATCORRECTIE voor `education-5` ("Bul", het kennisvraag-icoon).
   Kim 02.09.2026: "het hoedje lijkt kleiner dan de andere icons." Klopt, en het
   is te meten. Elk icoon uit de set staat op hetzelfde canvas van 500x500, maar
   vult daar een ander deel van. Gerasterd op 200px en de niet-transparante
   pixels opgemeten:

     education (het oude)  85%    video-camera  75%
     thunder               80%    text-file     76%
     rate-2                79%    progress      72%
     education-5           72%  <- de baret

   De baret is bovendien breed en laag (144x122 van de 200), waar de buren juist
   hoog zijn, dus hij oogt nog kleiner dan die 72% al zegt. 1.1 tilt hem naar
   ~79%, precies in de bandbreedte van thunder en rate-2 - gelijktrekken met de
   groep, niet met het oude icoon.

   Gekozen op de `src` en niet op het STAPTYPE: dit is een eigenschap van dit
   BESTAND, niet van de kennisvraag. Kiest Kim morgen een ander icoon, dan valt
   deze regel vanzelf weg in plaats van stilletjes het verkeerde plaatje op te
   blazen. En `transform` in plaats van breedte/hoogte, omdat dezelfde animatie
   op drie plekken staat met drie verschillende maten (typekiezer 30px,
   stappenrij 28px, gesprekkenpagina zijn eigen tegel) - een schaal werkt op
   alle drie, een vaste maat zou er twee stukmaken. Alle drie de containers
   centreren met flex, dus het icoon blijft staan waar het stond. */
qdnapro-lottie[src*="/education-5.json"] {
  transform: scale(1.1);
}

/* De koppelingschip op een suite-stap (F3-W3): dezelfde ingetogen vorm als de
   dag-badge links, zodat de tijdlijn één taal blijft spreken. Hij staat ONDER
   de meta-regel omdat een bestandsnaam lang is en de meta-regel al afkapt. */
.pulse-step-ref {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  max-width: 100%;
  margin-top: 4px;
  padding: 2px 9px;
  border-radius: 9px;
  background: #eef0fb;
  color: var(--c-brand-purple, #394290);
  font-size: 11.5px;
  line-height: 17px;
}

.pulse-step-ref qdnapro-icon {
  flex-shrink: 0;
}

.pulse-step-ref span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pulse-step-ref.is-missing {
  background: #fff2d6;
  color: #7a5300;
}

.pulse-steps-foot {
  margin-top: 14px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.pulse-steps-hint {
  font-size: 12px;
  color: var(--c-grey-500, #6b6884);
}

/* `el.hidden = true` werkt NIET vanzelf op deze elementen: de UA-regel
   [hidden] { display: none } verliest van de klasse-regels die de componenten
   zelf meebrengen (.qdnapro-button/.qdnapro-icon-btn zetten display:inline-flex)
   en van de display:flex hierboven. Pagina-gescoopt terugzetten, zodat verbergen
   in JS gewoon een kwestie van .hidden blijft. */
.pulse-steps-foot[hidden],
.pulse-detail-body qdnapro-button[hidden],
.pulse-detail-body qdnapro-icon-btn[hidden],
#pulse-step-modal qdnapro-button[hidden],
#pulse-step-modal qdnapro-icon-btn[hidden] {
  display: none;
}

/* De lege staat is sinds 12.08.2026 het gedeelde qdnapro-empty-state met
   surface="page" — eigen markup (.pulse-steps-empty) is daarmee weg. Alleen wat
   lucht eromheen blijft hier staan; de rest komt uit het component. */
.pulse-steps qdnapro-empty-state {
  display: block;
  padding: 18px 0 6px;
}

/* --- Toevoeg-rij: brede, gestippelde CTA i.p.v. de knop in de voet ------- */
/* Zelfde vorm als de takenlijst (.add-bar/.add-bar-circle/.add-bar-label,
   tasklist-activities.scss 913–962): gestippelde rand, gecentreerd
   pluscirkeltje, subtiele hover, "Pulse-maat" — d.w.z. zonder de
   margin-right: 46px-hack van de takenlijst (die compenseerde daar voor de
   losse warning-slot rechts van elke rij; de Pulse-stappenrij heeft die
   niet). `width: 100%` staat er expliciet bij in plaats van te vertrouwen op
   flex-stretch van de ouder: de exacte plek in de voet (.pulse-steps-foot)
   wordt parallel gebouwd (kaart 3) en width:100% werkt ongeacht of die ouder
   een flex-rij of -kolom is. */
.pulse-add-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 40px;
  padding: 8px 16px;
  border-radius: 10px;
  border: 1.5px dashed rgba(70, 82, 243, 0.3);
  background: rgba(255, 255, 255, 0.28);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  cursor: pointer;
  transition: background 150ms ease, border-color 150ms ease;
  user-select: none;
  color: var(--c-action-500, #4652f3);
  flex-shrink: 0;
}

.pulse-add-bar:hover {
  background: rgba(255, 255, 255, 0.45);
  border-color: rgba(70, 82, 243, 0.5);
}

/* Toetsenbord-toegankelijkheid: kaart 3 opent de typekiezer ook op Enter/
   Space, dus deze CTA is met het toetsenbord te bereiken — dan hoort er ook
   een zichtbare focusring te zijn. Zelfde patroon als elders in dit bestand
   (bv. .pulse-type-card:focus-visible). */
.pulse-add-bar:focus-visible {
  outline: 2px solid var(--c-action-500, #4652f3);
  outline-offset: 2px;
}

.pulse-add-bar-circle {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(70, 82, 243, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 300;
  color: var(--c-action-500, #4652f3);
  flex-shrink: 0;
  transition: background 150ms ease, color 150ms ease;
  line-height: 1;
}

.pulse-add-bar:hover .pulse-add-bar-circle {
  background: var(--c-action-500, #4652f3);
  color: #fff;
}

.pulse-add-bar-label {
  font-size: 13px;
  font-weight: 500;
  color: var(--c-action-500, #4652f3);
}

[data-theme=dark] .pulse-add-bar {
  background: rgba(255, 255, 255, 0.04);
  border-color: var(--c-purple-200-30, rgba(165, 172, 255, 0.3));
  color: var(--c-purple-200, #a5acff);
}

[data-theme=dark] .pulse-add-bar:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: var(--c-purple-200-50, rgba(165, 172, 255, 0.5));
}

[data-theme=dark] .pulse-add-bar-circle {
  background: var(--c-purple-200-30, rgba(165, 172, 255, 0.14));
  color: var(--c-purple-200, #a5acff);
}

[data-theme=dark] .pulse-add-bar:hover .pulse-add-bar-circle {
  background: var(--c-action-500, #4652f3);
  color: #fff;
}

[data-theme=dark] .pulse-add-bar-label {
  color: var(--c-purple-200, #a5acff);
}

/* --- Sectiekop (weekkopjes): subset van .list-section-header/.sh-* ------- */
/* <qdnapro-section-header> (host-klasse .pulse-week-header op de Pulse-
   pagina, per aanvulling van de view-kaart) is de bestaande component uit de
   takenlijst (web/js/components/v2/section-header/qdna-section-header.js);
   die rendert altijd zijn canonieke .list-section-header/.sh-*-markup en
   leunt voor styling op tasklist-activities.scss (2220–2447 aldaar). Dat
   bestand wordt op Pulse NIET geladen (mag ook niet — bevat pagina-brede
   regels die hier niet thuishoren), dus zonder deze subset rendert de kop
   kaal. Alleen wat de kop hier ZELF nog nodig heeft: de pil met titel/
   subtitel. Geen sleepgreep, geen bewerk/verwijder-knoppen — weekkopjes zijn
   client-side berekend en slaan niets op (kopjes-regel, besluit 8), dus die
   twee altijd-gerenderde onderdelen worden hieronder expliciet verborgen op
   deze pagina i.p.v. gestyled. Kleuren zijn overgezet naar bestaande tokens
   i.p.v. de losse hex uit tasklist-activities.scss (zie kaart-4-rapport voor
   de mapping tussen oude hex en gebruikte token). */
.list-section-header {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin: 8px 0 5px;
  position: relative;
  align-self: flex-start;
}

.list-section-header:first-child {
  margin-top: 0;
}

.sh-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: auto;
  padding: 5px 10px 5px 16px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.38);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(255, 255, 255, 0.55);
  cursor: grab;
  transition: background 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
}

.list-section-header:hover .sh-pill {
  background: rgba(255, 255, 255, 0.8);
  border-color: rgba(255, 255, 255, 0.9);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.07);
}

.sh-text-block {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.sh-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--c-grey-500, #6b7280);
  white-space: nowrap;
  outline: none;
  transition: color 150ms ease;
  line-height: 1.4;
}

.sh-subtitle {
  font-size: 10px;
  font-weight: 400;
  color: var(--c-grey-400, #a6aab3);
  white-space: nowrap;
  outline: none;
  transition: color 150ms ease;
  line-height: 1.4;
  min-width: 2px;
}

/* Lege subtitel (weekkopjes hebben er geen) collapt, zodat de titel netjes
   in de pil centreert i.p.v. ruimte te reserveren voor een lege regel. */
.sh-subtitle:empty {
  display: none;
}

.list-section-header:hover .sh-title {
  color: var(--c-grey-950, #1a1d2e);
}

.list-section-header:hover .sh-subtitle {
  color: var(--c-grey-500, #6b7280);
}

/* Aanvulling coordinator 20.08.2026: sleepgreep + bewerk/verwijder-knoppen
   verbergen op de weekkopjes — het component rendert ze altijd, maar er is
   hier niets om te slepen of op te slaan. */
.pulse-week-header .sh-drag,
.pulse-week-header .sh-actions {
  display: none;
}

/* De pill van het component draagt cursor:grab, maar een automatisch kopje
   valt niet te verslepen — de cursor mag dat dan ook niet beloven. */
.pulse-week-header .sh-pill {
  cursor: default;
}

[data-theme=dark] .sh-pill {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.12);
}

[data-theme=dark] .list-section-header:hover .sh-pill {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.2);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

[data-theme=dark] .sh-title {
  color: var(--c-grey-100, #e7e9ec);
}

[data-theme=dark] .sh-subtitle {
  color: var(--c-grey-400, #a6aab3);
}

[data-theme=dark] .list-section-header:hover .sh-title {
  color: var(--c-grey-50, #f0f1f2);
}

[data-theme=dark] .list-section-header:hover .sh-subtitle {
  color: var(--c-grey-300, #c4c7cc);
}

/* --- Typekiezer (welke soort stap wordt het?) --------------------------- */
/* De typekiezer moet kunnen SCROLLEN (12.08.2026). Sinds elke kaart twee regels
   tekst draagt is de lijst hoger dan een laptopscherm, en vielen de onderste
   tegels buiten de modal.
 *
 * `qdnapro-modal-scrollable` (op de modal gezet in de JS) laat de body scrollen,
 * maar dat is niet genoeg: de dialog heeft alleen een `max-height`, en een
 * flex-item krijgt standaard `min-height: auto` = zijn eigen inhoudshoogte. Die
 * wint dan van de max-height en de modal groeit alsnog door — gemeten: 643px
 * hoog waar 625 mocht.
 *
 * Vandaar `min-height: 0` op de hele keten dialog → window. Dezelfde ingreep als
 * bij de stap-modal hierboven; zie ook de qdna-modals skill §1d. */
.qdnapro-modal.pulse-type-modal .modal-dialog,
.qdnapro-modal.pulse-type-modal .modal-window {
  min-height: 0;
}

/* En een ruimere marge dan de standaard `calc(100vh - 48px)`. Die 48 is precies
   de padding van de backdrop, maar de dialog MEET 18px meer dan hij rekent (zijn
   rand en padding vallen buiten die max-height), dus met de standaardwaarde
   steekt hij er aan onder- en bovenkant een stukje uit. Gemeten op een venster
   van 673px: dialog 643 hoog waar er 625 beschikbaar was.
   80px laat die 18 ruimschoots vrij en geeft de modal wat lucht. */
.qdnapro-modal.pulse-type-modal .modal-dialog {
  max-height: calc(100vh - 80px);
}

/* En sinds het raster past de inhoud in een paar rijen: de vaste hoogte van
   size="xxlarge" liet dan tweederde van de bak leeg. Hoogte op auto laat de
   modal om de zes kaarten heen krimpen; de max-height blijft de vangrail.
   Zelfde aanpak als .pulse-targets-modal hierboven. */
.qdnapro-modal.pulse-type-modal .modal-dialog {
  height: auto;
  max-height: min(800px, 100vh - 80px);
}

.qdnapro-modal.pulse-type-modal .modal-window {
  height: auto;
}

/* De illustratie in het infopaneel staat bewust ingetogen (Kim: 60%): het is
   sfeer naast de keuze, geen element dat om aandacht vraagt. Page-scoped, dus
   de andere with-info-modals houden hun eigen weergave. */
.qdnapro-modal.pulse-type-modal .qdnapro-modal-info-illustration {
  opacity: 0.6;
}

/* Doelgroep-modal (kaart 6, 20.08.2026): size="large" forceert een vaste hoogte
   van min(800px, 100vh - 48px) op de dialog, terwijl de doelgroepbouwer maar
   ~500px vult — dat gaf een grotendeels lege bak. Hoogte op auto laat de modal
   om de bouwer heen krimpen; de max-height blijft de vangrail bij veel content
   (dan scrollt de body). Zelfde aanpak als .fe-import-modal in _modal.scss. */
.qdnapro-modal.pulse-targets-modal .modal-dialog {
  height: auto;
  max-height: min(800px, 100vh - 48px);
}

.qdnapro-modal.pulse-targets-modal .modal-window {
  height: auto;
}

/* Kims review 24.08: de zes typekaarten stonden als volle-breedte rijen onder
   elkaar en droegen een andere hover/focus-taal dan de opmaakkaarten van
   wizard-stap 1, terwijl je ze vlak na elkaar ziet in dezelfde flow. Nu een
   raster (drie kolommen op de verbrede modal) met exact dezelfde standen als
   .pulse-wiz-card. */
.pulse-type-cards {
  display: grid;
  /* Twee kolommen sinds het infopaneel erbij kwam (Kim 24.08): dat paneel
     eet links ruimte, dus drie kolommen werden te smal voor twee regels
     tekst per kaart. Zes kaarten worden zo 3 rijen van 2. */
  /* auto-fit i.p.v. een vast aantal: bij een smal venster (of browserzoom)
     valt het raster vanzelf terug naar een kolom in plaats van te knellen.
     De media-query hieronder keek naar de VIEWPORT en miste dat geval. */
  /* Twee kolommen, vast. auto-fit leek slimmer maar rekende zichzelf naar
     drie kolommen op een breed scherm en naar een op ~850px: precies de twee
     dingen die Kim niet wilde. De terugval naar een kolom staat daarom op
     een echte kleine-venstergrens hieronder. */
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

@media (max-width: 820px) {
  .pulse-type-cards {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* De kaart en zijn tekstblok mogen krimpen; zonder min-width:0 duwt de langste
   regel de kolom breder dan de ruimte en krijg je een horizontale schuifbalk
   (wat Kim zag). */
.pulse-type-card {
  min-width: 0;
}

.pulse-type-card > div {
  min-width: 0;
}

.pulse-type-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  width: 100%;
  padding: 14px;
  border: 1px solid var(--c-border-soft, #e5e5ea);
  border-radius: 12px;
  background: var(--c-bg-card, #fff);
  text-align: left;
  cursor: pointer;
  /* geen transform/box-shadow in de transitie: zie de uitleg bij
     .pulse-wiz-card (een geanimeerde ring staat op t=0 nog op zijn
     startwaarde en Kim wil geen hover-lift). */
  transition: border-color 120ms ease, background 120ms ease;
}

.pulse-type-card:hover {
  border-color: var(--c-purple-300, #a9adde);
} /* Kim 24.08: hover verft NIET, alleen de rand kleurt. */
.pulse-type-card:active {
  border-color: var(--c-purple-300, #a9adde);
  background: var(--c-border-tree-bright, #d4d8ee);
}

/* Zelfde reden als bij .pulse-wiz-card: de v1-header laadt bootstrap, en die
   zet een harde blauwe systeem-outline op ELKE knop bij :focus (een muisklik
   geeft wel :focus maar geen :focus-visible). Uitzetten, en de zichtbare
   markering is de zachte lichtpaarse dubbele ring hieronder. */
.pulse-type-card:focus {
  outline: none;
}

.pulse-type-card:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--c-purple-200, #a5acff), 0 0 0 5px var(--focus-glow, rgba(83, 74, 183, 0.18));
}

.pulse-type-card-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--c-brand-purple, #394290);
  margin: 0 0 2px;
}

.pulse-type-card-desc {
  font-size: 12.5px;
  line-height: 18px;
  color: var(--c-grey-500, #6b6884);
  margin: 0;
}

/* De praktische regel per staptype (12.08.2026): wat er ná het kiezen gebeurt,
   of wat een deelnemer wél en niet te zien krijgt. Lichter gezet dan de
   omschrijving erboven — het is een voetnoot bij de keuze, geen tweede titel. */
/* Kim 24.08: het i-puntje rechtsboven in de kaart. Hover of tik toont de
   tekst die eerst als derde regel in de kaart stond. Ingetogen in rust, want
   het is een hulpmiddel, geen tweede actie naast de keuze zelf. */
.pulse-type-card {
  position: relative;
}

/* De info-popover hoort BOVEN de modal te liggen. qdnapro-popover staat op
   z-index 1001 en qdnapro-modal op 9000, dus binnen een modal opende hij
   onzichtbaar erachter: dat was de "hover doet niks"-melding van Kim (24.08).
   Geldt voor beide gebruikers van deze popover: het i-puntje op een typekaart
   en het i-knopje bij Subtekst in de wizard. */
.qdnapro-popover[data-pulse-info] {
  z-index: 9400;
}

/* ⚠️ ZELFDE VAL, TWEE KEER OPNIEUW GEVONDEN (27.08.2026). Elke popover die
   vanuit de wizard/modal opent heeft deze regel nodig, anders opent hij
   onzichtbaar ACHTER de overlay. Gemeten met elementFromPoint op het midden
   van het geopende paneel: zonder de regel kwam de wizard-stap terug, niet de
   popover. De emoji-/icoon-kiezers (kaart M11) misten hem — die waren alleen
   functioneel getest (invoeging klopte), niet visueel, dus de fout bleef
   onopgemerkt. Het opmaak-menu (M13c) hoort in dezelfde lijst. */
/* 02.09.2026: de twee kiezers zijn nu bibliotheekcomponenten
   (qdnapro-emoji-sheet / qdnapro-sticker-sheet met variant="popover"), en die
   bouwen hun eigen qdnapro-popover-schil met een EIGEN data-haak. Dezelfde val
   geldt dus onverkort: zonder deze regel openen ze vanuit de stap-modal
   onzichtbaar achter de overlay. Het is niet aan de componenten om dit te
   weten — de z-index-laag is een eigenschap van DEZE pagina. */
.qdnapro-popover[data-emoji-sheet],
.qdnapro-popover[data-sticker-sheet],
.qdnapro-popover[data-pulse-layout-menu] {
  z-index: 9400;
}

.pulse-type-card-info {
  position: absolute;
  top: 10px;
  right: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  color: var(--c-grey-400, #8b88a3);
  cursor: help;
}

.pulse-type-card-info:hover,
.pulse-type-card-info:focus-visible {
  color: var(--c-brand-purple, #394290);
  background: var(--c-grey-50, #f3f3f7);
  outline: none;
}

/* De omschrijving mag nu de volle breedte pakken op één plek minder tekst. */
.pulse-type-card-desc {
  padding-right: 26px;
}

.pulse-type-card-note {
  margin: 5px 0 0;
  font-size: 11.5px;
  line-height: 16px;
  color: var(--c-grey-400, #8b88a3);
}

/* Kaart 8 zette al `disabled` op de knop van een start-/eindscherm dat er al
   is (de klik was dus al geblokkeerd) en schreef de reden eronder, maar de
   kaart ZAG er nog uit als elke andere: witte achtergrond, hover-rand, vol
   gekleurd icoontje. Kim 02.09.2026: "deze knop moet een disabled state
   krijgen". Vandaar hieronder.
   De UITLEG blijft op volle sterkte staan - juist die moet je kunnen lezen -
   dus het doffen gebeurt per onderdeel en niet met één opacity over de hele
   kaart. Het icoontje gaat naar grijs: een vrolijk gekleurd vlakje blijft
   uitnodigen, ook als de rest al gedoofd is. Animeren doet hij hier bewust
   niet (openTypeChooser slaat uitgeschakelde kaarten over bij hover). */
.pulse-type-card:disabled {
  cursor: not-allowed;
  background: var(--c-grey-50, #f3f3f7);
  border-color: var(--c-border-soft, #e5e5ea);
}

.pulse-type-card:disabled:hover,
.pulse-type-card:disabled:active {
  border-color: var(--c-border-soft, #e5e5ea);
  background: var(--c-grey-50, #f3f3f7);
}

.pulse-type-card:disabled .pulse-type-card-title,
.pulse-type-card:disabled .pulse-type-card-desc {
  opacity: 0.5;
}

.pulse-type-card:disabled .pulse-step-type {
  opacity: 0.5;
  filter: grayscale(1);
}

/* Het i-puntje hoort bij een keuze die je kunt maken. */
.pulse-type-card:disabled .pulse-type-card-info {
  display: none;
}

/* --- Stap-modal --------------------------------------------------------- */
/* De hoogte-correctie voor `layout="with-info"` die hier stond is weg per
   12.08.2026: die layout gebruikt deze modal niet meer (zie de splitscreen-regels
   verderop, die hun eigen vaste hoogte zetten zodat de kolommen kunnen scrollen). */
#pulse-step-modal.modal-layout-with-info .modal-window {
  height: auto;
  padding-bottom: 16px;
}

/* --- Splitscreen in de stap-modal (12.08.2026, Kim) ---------------------- */
/* Links wat je INSTELT, rechts wat de deelnemer ZIET.
 *
 * Het uitlegpaneel (`layout="with-info"`) is hiervoor opgegeven: dat kostte 280
 * van de 800 pixels aan een illustratie, waardoor élk veld — inclusief de
 * tekstverwerker — in de resterende ~500px moest passen.
 *
 * ⚠️ DE KOLOMMEN SCROLLEN, NIET DE MODAL-BODY. Dat is het hele punt: pas je
 * links iets aan, dan hoort de tekstverwerker rechts in beeld te blijven. Dat
 * vraagt `min-height: 0` op de HELE flex-keten (dialog → window → body → split),
 * want een flex-item krijgt standaard `min-height: auto` = zijn eigen inhoud, en
 * dan wint de inhoudshoogte van elke hoogte die je oplegt en scrollt er niets.
 * Zie ook de qdna-modals skill, §1d. */
#pulse-step-modal .modal-dialog {
  height: min(760px, 100vh - 64px);
  min-height: 0;
  overflow: hidden;
}

#pulse-step-modal .modal-window {
  min-height: 0;
  overflow: hidden;
}

#pulse-step-modal .modal-body {
  min-height: 0;
  display: flex;
  flex-direction: column;
  /* De body scrollt NIET; de kolommen erin doen dat. */
  overflow: hidden;
}

.pulse-sm-split {
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  /* 45/55 in plaats van de eerste 340/620 (Kim 12.08.2026: "een beetje meer
     50-50"). Niet exact half om half: de rechterkolom draagt de
     tekstverwerker én de antwoordopties, dus die mag de bredere blijven.
     Percentages en geen vaste pixels, zodat de verhouding klopt blijft als de
     modal ooit naar xxlarge gaat. */
  grid-template-columns: 45% minmax(0, 1fr);
  gap: 0;
}

@media (max-width: 900px) {
  /* Te smal voor twee kolommen: dan onder elkaar, en scrollt de body weer als
     geheel. Zonder deze terugval zou de linkerkolom van 340px de rechter
     platdrukken. */
  .pulse-sm-split {
    grid-template-columns: minmax(0, 1fr);
  }
  #pulse-step-modal .modal-body {
    overflow-y: auto;
  }
  .pulse-sm-col {
    overflow: visible !important;
  }
}
.pulse-sm-col {
  min-height: 0;
  overflow-y: auto;
  /* 4px ademruimte + scroll-padding: zonder dit wordt de focus-ring van het
     bovenste veld (een box-shadow van 3px) door de scroll-container afgekapt.
     Dezelfde regel als op .modal-body in _modal.scss — een nieuwe
     scroll-container heeft hem opnieuw nodig. */
  padding: 4px 16px 16px;
  scroll-padding-top: 8px;
}

.pulse-sm-col--set {
  border-right: 1px solid var(--c-border-soft, #e5e5ea);
  background: var(--c-bg-subtle-purple, #faf9fe);
}

.pulse-sm-col--content {
  display: flex;
  flex-direction: column;
}

/* De wrap-regels voor "dag naast ritme" zijn weg per 12.08.2026: die twee staan
   niet meer naast elkaar (zie .pulse-pace hierboven), dus er valt niets meer te
   laten wrappen. .pulse-sm-row zelf blijft bestaan voor ander gebruik. */
/* De antwoordopties staan sinds 12.08.2026 LINKS, onder de planning. Een
   haarlijn erboven scheidt "wanneer en hoe" van "de vraag zelf"; zonder die
   scheiding loopt de kolom als één lange sliert velden door. */
.pulse-sm-col--set #pulse-sm-options-field {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--c-border-soft, #e5e5ea);
}

/* Beeld boven tekst in de rechterkolom: een streepje lucht ertussen, zodat de
   twee als aparte onderdelen van dezelfde kaart lezen. */
.pulse-sm-col--content .pulse-sm-image {
  margin-bottom: 4px;
}

/* De kolomkoppen "INSTELLINGEN" en "DE KAART" zijn weg per 12.08.2026 (Kim):
   de scheidingslijn tussen de kolommen zegt al dat het twee gebieden zijn, en
   twee kopjes die niets toevoegen kosten alleen hoogte bovenaan het formulier. */
/* Het typekaartje dat hier stond (.pulse-sm-typecard) is weg per 12.08.2026:
   uitleg over het STAPTYPE hoort in de kiezer "Wat voor stap wordt het?", waar
   je die keuze maakt. Zie .pulse-type-card-note hieronder. */
/* De tekstverwerker krijgt een ruime minimumhoogte — dat is waar deze hele
   verbouwing om begonnen is.
 *
 * ⚠️ GEEN `flex` + `min-height: 0` op het VELD hier. Dat stond er eerst, en toen
 * kromp het veld tot 74px terwijl de editor erin 180px bleef: het kind stak 138px
 * buiten zijn ouder uit en legde zich over het label "Antwoordopties" eronder
 * heen. In een kolom die zelf scrollt hoort de inhoud gewoon zijn natuurlijke
 * hoogte te krijgen; opvullen en scrollen gaan niet samen.
 *
 * Het veld is dus een gewoon blok dat om de editor heen groeit; alleen de MOUNT
 * draagt de minimumhoogte, en het component erin vult die op. */
/* 340 en niet 220 (Kim 12.08.2026): het schrijfvlak hoort er ruim uit te zien
   OOK als er nog niets in staat. Een klein leeg vak nodigt uit tot een klein
   berichtje, en dit is het veld waar de hele kaart om draait. */
/* Kaart 16 (BOARD-pulse-pwa-inhaalslag, Kims screenshot 28.08): column, want
   zonder richting is flex ROW en stonden de emoji/sticker-knoppen NAAST de
   editor in plaats van eronder — terwijl Kim expliciet "onder het veld, zoals
   bij Subtekst" had gevraagd. De knoppenrij (.pulse-inline-picker-btns) is een
   sibling van <qdnapro-wysiwyg> in dezelfde mount (makeEditorController), dus
   met column landt hij vanzelf onder het veld; de flex-groei van de editor
   werkt gewoon langs de verticale as door. Geldt bewust voor ALLE drie de
   mounts die deze klasse delen (oude stap-modal, wizard-Opmaak, Vrij
   vormgeven) — zelfde oorzaak, zelfde wens. */
.pulse-sm-field--grow .pulse-sm-editor-mount {
  min-height: 340px;
  display: flex;
  flex-direction: column;
}

.pulse-sm-field--grow qdnapro-wysiwyg {
  flex: 1 1 auto;
  min-width: 0;
}

/* Kaart 4 (BOARD-pulse-opmaak-hybride, 25.08.2026): de rijke-mount kan nu
   OOK individueel verborgen worden (Subtekst/Opmaak-pill, los van of zijn
   `.pulse-sm-field--grow`-ouder zelf zichtbaar is). Zonder deze regel wint
   de `display: flex` hierboven altijd van het native `[hidden]`: auteur-CSS
   gaat vóór de user-agent-stylesheet, ongeacht specificiteit-cijfers —
   headless geverifieerd (offsetParent bleef waar met `hidden` gezet, zie
   het kaart-4-verslag). Zelfde valkuil als .pulse-opt-view-seg hierboven
   (kaart 5/22), nu op een ANDER element gevonden. */
.pulse-sm-field--grow .pulse-sm-editor-mount[hidden] {
  display: none;
}

/* Kims acceptatietest 26.08: in de WIZARD is de rijke editor de SUBTEKST
   (Subtekst/Opmaak-pill), niet het hoofdveld — daar liet de 340px hierboven
   een fors leeg stuk host onder het zichtbare kader achter (de idoc-text-
   preset heeft `autoresize`: TinyMCE schrijft zijn eigen hoogte, ~197px
   leeg, en groeit met de inhoud mee; gemeten 143px onzichtbare rest), en
   begonnen de antwoordopties dus een heel eind te laag. Hier bepaalt de
   editor zelf zijn hoogte. De OUDE stap-modal (video/document/actie, waar
   de editor wél het hoofdveld is) behoudt de 340px. Id-selector wint met
   opzet van de klasse-regel hierboven. */
/* 01.09.2026 (Kim: "de smiley/sticker-knoppen zitten heel ver onder het
   inputfield"): de OUDE stap-modal doet nu mee met diezelfde regel. De 340px
   hierboven rekte de MOUNT op, de redacteur groeide mee tot zijn onzichtbare
   rest en de knoppenrij eronder landde honderden pixels lager dan het
   zichtbare kader. Het royale schrijfvlak is niet weg, het is verhuisd naar de
   redacteur zelf: mountEditor() geeft `height="300"` mee (TinyMCE min_height,
   groeit daarna mee met de inhoud). */
#pulse-wiz-classic-editor-mount, #pulse-wiz-free-editor-mount, #pulse-sm-editor-mount {
  min-height: 0;
}

/* --- Dag + ritme (12.08.2026, Kim) -------------------------------------- */
/* Was een getalveld met een segment ernaast. Nu een smal getalveld met daaronder
   twee radiokeuzes die elk zeggen wat ze doen, en één regel die de uitkomst in
   gewone taal samenvat. Die laatste is het punt van de hele wijziging. */
.pulse-sm-day {
  display: block;
  max-width: 150px;
}

.pulse-pace {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 12px;
}

.pulse-pace-choice {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  cursor: pointer;
}

/* De knop mag niet meekrimpen met een lange uitlegregel ernaast. */
.pulse-pace-choice qdnapro-radio {
  flex: 0 0 auto;
  margin-top: 1px;
}

.pulse-pace-text {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.pulse-pace-name {
  font-size: 13px;
  color: var(--c-text-body, #1c1e2a);
}

.pulse-pace-text small {
  font-size: 11.5px;
  line-height: 16px;
  color: var(--c-grey-500, #6b6884);
}

/* De uitkomstregel. Nadrukkelijker dan een gewone hint (donkerder en op de
   merkkleur): het is geen terzijde maar het antwoord op "wat heb ik nu
   ingesteld". Hij verandert mee met het getal én met de keuze. */
.pulse-pace-summary {
  margin: 12px 0 0;
  padding: 8px 10px;
  border-radius: 8px;
  background: var(--c-purple-50, #f0eefc);
  font-size: 12px;
  line-height: 17px;
  color: var(--c-brand-purple, #394290);
}

.pulse-pace-summary:empty {
  display: none;
}

/* Kim 02.09.2026: de uitkomstregel stond ONDER de drie ritmekeuzes en kostte
   daar een hele regel in een kolom die toch al vol is. Hij staat nu NAAST het
   dagveld (zie pacingFieldsHtml in detail.html).
   `align-items: flex-end` is de kern: het dagveld draagt zijn eigen label
   ("Dag") BOVEN het invoervakje, dus alleen onderlijnen laat de regel netjes
   op dezelfde hoogte als het stappenvakje uitkomen. De regel krijgt daarom ook
   dezelfde hoogte als een `size="small"` invoerveld en centreert zijn tekst
   verticaal - anders zou hij als een lage strook onder het vakje bungelen.
   Het dagveld en het vaste-datumveld zijn elkaars afwisseling (zie
   updatePacingSummaryOf), dus er staat er altijd precies één naast de regel. */
.pulse-pace-when {
  display: flex;
  align-items: flex-end;
  gap: 12px;
  /* Wrappen i.p.v. samenknijpen: in de brede stap-modal past alles op één
     regel, in de smalle dag-popover (268px inhoud) zakt de uitkomstregel
     naar de volgende regel in plaats van tot een hoge, smalle kolom te
     worden geperst. Zie de min-widths hieronder, die het omslagpunt zetten. */
  flex-wrap: wrap;
}

/* De generieke veldmarge (.pulse-sm-field) hoort niet in een rij. */
/* 02.09.2026: het vaste-datumveld is sinds de huiskalender een TEKSTveld met
   een kalendericoon links en een kruisje rechts. Op `flex: 0 0 auto` kromp het
   tot 96px, waarvan 14px voor de tekst overbleef terwijl "31.12.2026" er 71
   nodig heeft — gemeten; de datum was afgekapt tot "02". 168px geeft 86px
   tekstruimte, dus 15px speling. */
.pulse-pace-when > .pulse-sm-field {
  margin-top: 0;
  flex: 0 0 168px;
}

.pulse-pace-when > .pulse-sm-day {
  flex: 0 0 auto;
}

.pulse-pace-when > .pulse-pace-summary {
  /* De min-width is het omslagpunt van de wrap hierboven: onder 200px leest
     deze zin als een kolom van losse woorden, dan hoort hij op een eigen
     regel. */
  flex: 1 1 200px;
  min-width: 200px;
  margin: 0;
  min-height: 38px;
  display: flex;
  align-items: center;
}

/* Onder de tabletbreedte is er geen plek meer voor twee kolommen; dan valt de
   regel gewoon weer onder het veld, zoals hij altijd stond. */
@media (max-width: 620px) {
  .pulse-pace-when {
    flex-direction: column;
    align-items: stretch;
  }
  .pulse-pace-when > .pulse-pace-summary {
    min-height: 0;
  }
}
/* De waarschuwing onder het gekoppelde document heeft een KNOP in zijn
   actie-slot, en in deze smalle kolom (427px) past die knop niet naast de
   tekst: hij valt eronder. De melding centreert zijn icoon verticaal, en dan
   staat het waarschuwingsdriehoekje ineens naast de knop in plaats van bij de
   regel waar het over gaat (gemeten in Kims browser, 04.09.2026). Deze twee
   regels zetten het icoon bovenaan uitgelijnd, alleen voor DEZE melding, zodat
   het component zelf ongemoeid blijft. */
#pulse-sm-link-doc-warning {
  align-items: flex-start;
  /* Kim 04.09.2026: de melding plakte tegen het documentkader. */
  margin-top: 10px;
}

#pulse-sm-link-doc-warning .qdnapro-alert__icon {
  margin-top: 2px;
}

/* De melding zet zijn tekstblok op `flex: 1 1 220px`, en met een knop ernaast
   past dat niet in deze kolom van 427px: de knop viel dan onder de tekst.
   Hier mag het tekstblok verder krimpen, zodat regel en knop naast elkaar
   staan (Kim 04.09.2026: "hopelijk dan rechts van de tekst"). Alleen voor
   DEZE melding; het component blijft ongemoeid. */
#pulse-sm-link-doc-warning .qdnapro-alert__content {
  flex-basis: 150px;
}

/* Het VOORBEELD van het gekoppelde document (Kim 04.09.2026: "ik wil het
   document kunnen openen en een preview zien, dit doen we met YouTube-video's
   ook"). Dus geen 96 bij 64 duimnagel met object-fit: cover, want dan snijdt
   een staande pagina weg; dit is een venster op pagina 1 op de volle
   kolombreedte, met de pagina volledig in beeld (contain) op wit. De
   maximumhoogte houdt de modal bij elkaar: een A4 op 530px breed zou anders
   750px hoog worden. */
.pulse-sm-doc-preview {
  display: flex;
  align-items: center;
  justify-content: center;
  max-height: 260px;
  overflow: hidden;
  background: var(--c-bg-card, #fff);
  border: 1px solid var(--c-border-card, #e1e3e6);
  border-radius: 12px;
}

.pulse-sm-doc-preview img {
  display: block;
  max-width: 100%;
  max-height: 260px;
  object-fit: contain;
}

/* Kim 04.09.2026: de Openen-knop zat tegen het voorbeeldkader aangeplakt. Deze
   regel geldt alleen voor de actierij ONDER dat kader, dus de knoppenrij van
   het afbeelding-veld eronder verschuift niet mee. */
.pulse-sm-doc-preview + .pulse-sm-hint,
.pulse-sm-doc-preview ~ .pulse-sm-image-actions {
  margin-top: 10px;
}

/* Het gekoppelde document in de stap-modal staat in een EIGEN kader op wit
   (Kim 04.09.2026). De linkerkolom van deze modal is lichtpaars, en een
   bestandsrij die daar los op ligt leest als tekst in plaats van als een
   object dat je hebt gekoppeld. Alleen een oppervlak: de rij binnenin is
   qdnapro-list-row en houdt zijn eigen maten. */
.pulse-sm-doc-frame {
  background: var(--c-bg-card, #fff);
  border: 1px solid var(--c-border-card, #e1e3e6);
  border-radius: 12px;
  padding: 4px 12px 4px 4px;
}

.pulse-sm-row {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin-top: 14px;
}

.pulse-sm-row > * {
  flex: 1 1 0;
  min-width: 0;
}

.pulse-sm-field {
  margin-top: 14px;
}

.pulse-sm-field[hidden] {
  display: none;
}

.pulse-sm-label {
  display: block;
  margin: 0 0 6px;
  font-size: 12.5px;
  font-weight: 600;
  color: #40499a;
}

/* 01.09.2026: #pulse-sm-body-label wordt bij video/document/actie verborgen
   (de Subtekst/Opmaak-pill IS daar het label). `display: block` hierboven is
   een auteur-regel en wint van het native `[hidden]` van de browser, ongeacht
   specificiteit — zonder deze regel blijft het label gewoon staan. Zelfde
   valkuil als bij .pulse-sm-editor-mount[hidden] hierboven. */
.pulse-sm-label[hidden] {
  display: none;
}

.pulse-sm-hint {
  margin: 6px 0 0;
  font-size: 11.5px;
  color: var(--c-grey-500, #6b6884);
}

.pulse-sm-error {
  margin: 8px 0 0;
  font-size: 12.5px;
  color: #d8442e;
}

.pulse-sm-error[hidden] {
  display: none;
}

.pulse-sm-status {
  margin: 8px 0 0;
  font-size: 12.5px;
  color: #1d9e75;
}

.pulse-sm-status[hidden] {
  display: none;
}

/* Kaart 21 (rustiger stap 2): .pulse-sm-label-row (kaart 19, punt 4 — de
   losse labelrij met i-knopje voor Subtekst) is VERWIJDERD. De regel bestaat
   niet meer in de markup (detail.html gebruikt nu qdnapro-input's eigen
   `label`+`info`-attributen, zelfde patroon als "Vraag of titel"), en er is
   geen andere gebruiker van deze klasse gevonden (repo-brede grep) — dus
   deze CSS is dode code en is hier weggehaald. */
/* De redacteur wordt bij het openen in de LIVE modal-body gemonteerd, dus dit
   is alleen het lege haakje waar hij in landt. */
.pulse-sm-editor-mount {
  margin-top: 2px;
}

/* Kaart 4 (BOARD-pulse-opmaak-hybride, 25.08.2026): de Subtekst/Opmaak-pill
   boven een tekstveld (Klassiek/Achtergrond/peiling en Vrij vormgeven, zie
   pulseBodyFormatPillHtml() in detail.html).
   Kaart 11 (25.08.2026, Kims herziening): het i-knopje dat vroeger IN het
   qdnapro-input-veld zat (`info`-attribuut) verhuist bij het gedeelde
   Klassiek/Achtergrond-exemplaar naar deze balk, rechts uitgelijnd — dus nu
   wel `justify-content: space-between` nodig, zelfde geometrie-gedachte als
   .pulse-opt-view-bar hierboven (kaart 5/22). Het Vrij vormgeven-exemplaar
   heeft geen i-knopje (`infoBtnId` blijft daar ongezet) en toont dan gewoon
   de pill alleen; flex met één kind gedraagt zich hetzelfde als vóór deze
   kaart. `[hidden]` verbergt de HELE balk (niet alleen het segment erin):
   bij Vrij vormgeven bestaat het GEDEELDE exemplaar niet (dat heeft zijn
   eigen bar), en dan mag er ook geen lege regel ruimte overblijven. */
.pulse-body-format-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
}

.pulse-body-format-bar[hidden] {
  display: none;
}

/* --- Kaart M11 (BOARD-pulse-markup-v2, ronde 3, 27.08.2026): emoji-/
   icoon-knopjes onder elk subtekst-veld + hun kleine donkere kiezerpanelen
   ---------------------------------------------------------------------- */
/* De knopjes zelf: rechts uitgelijnd, direct onder het veld (plat of
   WYSIWYG) waar ze bij horen — zie detail.html's pulseInlinePickerBtnsHtml()
   voor de vier plekken. */
.pulse-inline-picker-btns {
  display: flex;
  justify-content: flex-end;
  gap: 4px;
  margin-top: 4px;
}

/* Het eigen donkere kiezerpaneel (`.pulse-inline-picker` + zijn raster, kop,
   zoekveld, emoji-knopjes en icoon-tegels) is op 02.09.2026 VERVALLEN: beide
   kiezers zijn nu de echte bibliotheekcomponenten qdnapro-emoji-sheet en
   qdnapro-sticker-sheet met variant="popover", die hun eigen witte kaart
   meebrengen. Zie het Twig-commentaar bovenaan detail.html.
   Wat hier moest blijven is de z-index-regel bovenaan dit bestand (de twee
   componentschillen zijn daar toegevoegd) en de knoppenrij hierboven. */
/* --- Koppelpaneel (F3-W3): zoek en kies één document of verbeteractie ---- */
/* De lijst heeft een EIGEN maximumhoogte met een smalle, doorzichtige balk
   binnen het component (huisregel) — twintig resultaten zouden de modal anders
   twee schermen hoog maken. */
.pulse-sm-pick-results {
  margin-top: 8px;
  max-height: 208px;
  overflow-y: auto;
  border: 1px solid var(--c-border-soft, #e5e5ea);
  border-radius: 10px;
  background: var(--c-bg-card, #fff);
}

.pulse-sm-pick-results[hidden] {
  display: none;
}

.pulse-sm-pick-results::-webkit-scrollbar {
  width: 6px;
}

.pulse-sm-pick-results::-webkit-scrollbar-track {
  background: transparent;
}

.pulse-sm-pick-results::-webkit-scrollbar-thumb {
  background: rgba(57, 66, 144, 0.22);
  border-radius: 999px;
}

.pulse-sm-pick-results {
  scrollbar-width: thin;
  scrollbar-color: rgba(57, 66, 144, 0.22) transparent;
}

.pulse-sm-pick-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 9px 12px;
  border: 0;
  border-bottom: 1px solid var(--c-border-soft, #e5e5ea);
  background: transparent;
  text-align: left;
  cursor: pointer;
  font-family: inherit;
}

.pulse-sm-pick-item:last-child {
  border-bottom: 0;
}

.pulse-sm-pick-item:hover {
  background: #f7f8ff;
}

.pulse-sm-pick-item:focus-visible {
  outline: 2px solid var(--focus-ring, #534ab7);
  outline-offset: -2px;
}

.pulse-sm-pick-item qdnapro-icon {
  flex-shrink: 0;
  color: #6b6884;
}

.pulse-sm-pick-texts {
  min-width: 0;
  flex: 1 1 auto;
}

.pulse-sm-pick-name {
  font-size: 13px;
  line-height: 18px;
  color: var(--c-text-body, #1c1e2a);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pulse-sm-pick-sub {
  font-size: 11.5px;
  line-height: 16px;
  color: var(--c-grey-500, #6b6884);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pulse-sm-pick-note {
  padding: 10px 12px;
  font-size: 12.5px;
  color: var(--c-grey-500, #6b6884);
}

/* De gekozen koppeling. Hij staat BOVEN het zoekveld: dat is wat er straks in
   de app komt te staan, en dus het antwoord op de vraag die dit paneel stelt. */
.pulse-sm-linked {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #eef0fb;
  color: #40499a;
  font-size: 13px;
  line-height: 19px;
}

.pulse-sm-linked[hidden] {
  display: none;
}

.pulse-sm-linked qdnapro-icon {
  flex-shrink: 0;
}

.pulse-sm-linked-name {
  flex: 1 1 auto;
  min-width: 0;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Antwoordopties: één rij per optie. */
/* --- Antwoordopties: een kaartje per optie (12.08.2026, Kim) ------------ */
/* Elke optie is één blokje met de gedeelde rij (qdnapro-answer-option) en de
   uitleg eronder. Dat blokje is ook het ding dat je sleept, zodat antwoord en
   uitleg samen verhuizen.
 *
 * Waarom een kaartje: met een uitlegveld onder élke optie stonden er bij drie
 * antwoorden negen even zware velden onder elkaar, zonder dat je zag wat bij
 * elkaar hoorde. Nu zie je drie groepen. */
.pulse-opt-rows {
  display: flex;
  flex-direction: column;
  /* Kaart 17 (BOARD-pulse-antwoordopties-richting-c, 25.08.2026): geen
     `gap` meer — de rijen liggen nu tegen elkaar aan in het gedeelde frame
     (.pulse-opt-frame hieronder) i.p.v. lucht tussen losse paarse
     kaartjes. Kaart 21-aanvulling: de dunne scheidingslijn tussen rijen
     (kaart 17) is inmiddels ook weg (elke rij heeft al zijn eigen rand);
     de ruimte tussen rijen komt nu alleen nog uit de eigen padding van
     `.pulse-opt-card` hieronder. */
  /* Anker voor de droplijn hieronder, die absoluut in deze lijst hangt. */
  position: relative;
}

.pulse-opt-frame {
  border: 1px solid var(--c-border-soft, #e5e5ea);
  border-radius: 12px;
  overflow: hidden;
  background: var(--c-bg-card, #fff);
  padding: 6px 0;
}

/* Kaart 19, punt 3 (Kim): foutstand van het GEDEELDE optieblok — geen
   component-schil, want qdnapro-answer-option heeft geen eigen `error`/
   `checkValidity()` (zie showOptionsError()/clearOptionsError() in
   detail.html). `.pulse-opt-card--error` wijst een specifieke lege rij aan
   (te weinig ingevulde opties); de boodschap eronder geldt voor het hele
   blok, ook wanneer er geen aanwijsbare rij is (bv. "geen juist antwoord").
   Zelfde opmaak als qdnapro-input's eigen foutregel (icon + rode tekst, zie
   .input-message-error in components/v2/input/_input.scss). */
.pulse-opt-card--error qdnapro-answer-option {
  box-shadow: 0 0 0 1.5px var(--c-signal-red-text);
  border-radius: 8px;
}

.pulse-opt-rows-error-msg {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 8px 0 0;
  font-size: 13px;
  line-height: 20px;
  color: var(--c-signal-red-text);
}

/* De zachte alles-juist-waarschuwing onder het optieblok (Kim 04.09.2026):
   zelfde vorm als de foutregel hierboven, maar amber - het is een heads-up
   over de puntentelling, geen fout die het opslaan tegenhoudt. */
.pulse-opt-allcorrect-warn {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 8px 0 0;
  font-size: 13px;
  line-height: 20px;
  color: var(--c-warn-amber-600);
}

.pulse-opt-allcorrect-warn qdnapro-icon {
  flex: 0 0 auto;
}

.pulse-opt-allcorrect-warn[hidden] {
  display: none;
}

.pulse-opt-rows-error-msg[hidden] {
  display: none;
}

.pulse-opt-rows-error-msg qdnapro-icon {
  display: inline-flex;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.pulse-opt-card {
  /* Kaart 17 (BOARD-pulse-antwoordopties-richting-c, 25.08.2026): GEEN
     eigen achtergrond/afronding meer — dat was het paarse kaartje-per-rij
     dat Kim te druk vond. De rij leeft nu in het gedeelde .pulse-opt-frame
     hierboven; qdnapro-answer-option houdt zijn eigen rand, en dat blijft
     het "hier kun je typen"-signaal (ongewijzigd t.o.v. vóór deze kaart). */
  /* Ruimte links voor de sleepgreep, en `relative` als anker daarvoor. */
  position: relative;
  padding: 6px 8px 6px 16px;
  /* Het kaartje is sleepbaar; zonder dit pakt de browser de tekstselectie op
     in plaats van het blok. Het invoerveld zet het zelf weer aan (hieronder),
     anders kun je je eigen antwoord niet meer selecteren. */
  user-select: none;
}

.pulse-opt-card input,
.pulse-opt-card textarea {
  user-select: text;
}

/* De rij houdt zijn eigen rand en witte vlak — dat is de affordance van een
   invoerveld, en ook precies hoe hij er in de flow-editor uitziet. */
.pulse-opt-card qdnapro-answer-option {
  background: var(--c-bg-card, #fff);
}

/* Geen inspringing (Kim 12.08.2026): het uitlegveld lijnt links precies uit met
   het antwoordveld erboven. Ingesprongen leek het een bijlage van iets anders;
   onder elkaar lezen ze als twee velden van dezelfde optie. */
/* De sleepgreep van het KAARTJE (12.08.2026, Kim). Zat eerst in de rij zelf
   (`draggable-handle` op qdnapro-answer-option), maar je versleept het hele
   kaartje inclusief de uitleg — een greep die alleen de bovenste rij omspant
   belooft dan het verkeerde.
   Zelfde vorm en gedrag als de greep ín het component (paarse balk links,
   zichtbaar bij hover), maar over de VOLLE hoogte van het kaartje, zodat je ziet
   dat de hele groep meegaat. */
.pulse-opt-grip {
  position: absolute;
  left: 5px;
  top: 6px;
  bottom: 6px;
  width: 4px;
  border-radius: 2px;
  background: var(--c-action-500, #4652f3);
  opacity: 0;
  transition: opacity 150ms ease;
  /* Wél aanwijsbaar (dus geen pointer-events: none zoals de greep ín het
     component): de cursor moet hier een grijphandje worden. Iets breder
     aanraakgebied dan de 4px die je ziet, via een onzichtbare rand eromheen. */
  cursor: grab;
  padding: 0 5px;
  box-sizing: content-box;
  margin-left: -5px;
  background-clip: content-box;
}

.pulse-opt-card:hover .pulse-opt-grip {
  opacity: 1;
}

/* Het hele kaartje is sleepbaar, dus overal het grijphandje — anders belooft
   alleen de balk links dat je kunt slepen terwijl het overal werkt. */
.pulse-opt-card {
  cursor: grab;
}

/* Maar niet boven de velden zelf: daar wil je een tekstcursor. */
.pulse-opt-card qdnapro-input,
.pulse-opt-card input,
.pulse-opt-card textarea {
  cursor: auto;
}

.pulse-opt-card qdnapro-answer-option {
  cursor: grab;
}

.pulse-opt-card .qdnapro-answer-option__label {
  cursor: auto;
}

/* Tijdens het slepen: gesloten hand. */
.pulse-opt-card[data-slepend],
.pulse-opt-card[data-slepend] .pulse-opt-grip,
.pulse-opt-card[data-slepend] qdnapro-answer-option {
  cursor: grabbing;
}

/* Tijdens het slepen blijft hij staan, ook als de muis het kaartje verlaat. */
.pulse-opt-card[data-slepend] .pulse-opt-grip {
  opacity: 1;
}

.pulse-opt-why {
  margin: 6px 0 0;
  display: flex;
  align-items: center;
  gap: 8px;
  position: relative;
}

.pulse-opt-why-mark {
  margin-left: 0;
  cursor: default;
  pointer-events: none;
  position: absolute;
  left: 8px;
  top: 5px;
  z-index: 1;
}

/* Kaart 22 (Kim, 25.08.2026): één regel boven het optieframe met LINKS de
   Antwoorden/Uitleg-schakelaar en RECHTS de "meerdere antwoorden juist"-
   toggle. Die toggle zat eerst in een eigen qdnapro-list-row met titel én
   subtitel eronder: twee regels tekst die zeiden wat de toggle zelf al zegt.
   De marge zit nu op deze balk, niet meer op het segment (anders telt hij
   dubbel zodra de balk zelf ruimte houdt). `min-height` houdt de regel stabiel
   wanneer één van de twee verborgen is (peiling: geen segment, geen toggle). */
.pulse-opt-view-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 10px;
  min-height: 28px;
}

.pulse-opt-view-seg[hidden] {
  display: none;
}

/* Het label hoort BIJ de toggle (het is een <label>), dus een klik op de tekst
   schakelt hem ook — daarom geen los <span> ernaast maar deze wrapper. */
.pulse-opt-multi {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 0 auto;
  cursor: pointer;
  user-select: none;
}

.pulse-opt-multi[hidden] {
  display: none;
}

.pulse-opt-multi-text {
  font-size: 12.5px;
  line-height: 18px;
  color: var(--c-grey-500, #6b6884);
}

.pulse-opt-rows:not([data-view=explain]) .pulse-opt-why,
.pulse-opt-rows:not([data-view=explain]) .pulse-opt-explain-title {
  display: none;
}
.pulse-opt-rows[data-view=explain] .pulse-opt-card--empty {
  display: none;
}
.pulse-opt-rows[data-view=explain] .pulse-opt-card {
  cursor: default;
}
.pulse-opt-rows[data-view=explain] .pulse-opt-grip,
.pulse-opt-rows[data-view=explain] .pulse-opt-card > qdnapro-answer-option {
  display: none;
}
.pulse-opt-rows[data-view=explain] .pulse-opt-explain-title {
  display: block;
  font-size: 14px;
  font-weight: 500;
  color: var(--c-purple-900, #1c2140);
  margin: 0 0 6px;
}
.pulse-opt-rows[data-view=explain] .pulse-opt-why {
  margin: 0;
}

/* Het uitlegveld volgt de ANTWOORDREGEL erboven, niet de standaard-input.
 *
 * Gemeten verschil vóór deze regels: antwoord 12px/gewicht 400 in donkerblauw,
 * uitleg 13px/gewicht 500 in bijna-zwart. Vooral dat gewicht deed het werk — de
 * uitleg oogde zwaarder dan het antwoord waar hij bij hoort, terwijl het
 * andersom hoort te zijn. `size="tiny"` bracht de grootte al van 14 naar 13;
 * kleur en gewicht regelen we hier, want daar heeft het component geen variant
 * voor.
 *
 * Bewust op het kaartje gescoopt: elders in de app blijft een qdnapro-input
 * gewoon zijn eigen gewicht houden. */
/* Het uitlegveld leest als de antwoordregel erboven, niet als een los formulier.
 *
 * ⚠️ SPECIFICITEIT. qdnapro-input zet een INGEVULD veld op gewicht 500 via
 * `.qdnapro-input.input-filled .input-field .input-native` — vier klassen. Een
 * override met drie klassen verliest daarvan, ook al staat hij later in het
 * bestand; dat kostte drie pogingen voordat ik de winnende regel had opgezocht
 * in plaats van geraden. Vandaar dat `.input-filled` hier meedoet.
 *
 * ⚠️ Dit WIJKT AF van de rest van de app: overal elders is ingevulde invoer
 * zwaarder dan lege. Hier volgt het uitlegveld bewust de antwoordregel erboven
 * (12px/gewicht 400), omdat de twee samen één kaartje vormen en de uitleg
 * ondergeschikt hoort te zijn aan het antwoord. Wil je terug naar de
 * app-standaard, dan is dit blok het enige dat weg moet. [Kim 12.08.2026] */
.pulse-opt-card .pulse-opt-why-text.input-filled .input-field .input-native,
.pulse-opt-card .pulse-opt-why-text .input-field .input-native {
  font-weight: 400;
  color: var(--c-purple-700, #2a3268);
}

.pulse-opt-why-text {
  flex: 1 1 auto;
  min-width: 0;
}

.pulse-opt-card .qdnapro-input.pulse-opt-why-text.input-type-expanding .input-field .input-trailing {
  right: 10px;
}

.pulse-opt-card .qdnapro-input.pulse-opt-why-text.input-type-expanding.input-size-tiny .input-field textarea.input-native {
  padding-right: 34px;
  padding-left: 40px;
}

.pulse-opt-card .qdnapro-input.pulse-opt-why-text.input-type-expanding[data-why-overflow] .input-field .input-trailing {
  right: 20px;
}

.pulse-opt-card .qdnapro-input.pulse-opt-why-text.input-type-expanding.input-size-tiny[data-why-overflow] .input-field textarea.input-native {
  padding-right: 44px;
}

/* De droplijn tijdens het slepen: één paarse lijn op de landingsplek. Zelfde
   idee als .fe-drop-line in de flow-editor. */
.pulse-opt-dropline {
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  margin-top: -5px;
  background: var(--c-brand-purple, #534ab7);
  border-radius: 2px;
  pointer-events: none;
  z-index: 2;
}

.pulse-opt-dropline[hidden] {
  display: none;
}

.pulse-opt-add {
  margin-top: 0;
}

.pulse-opt-frame .pulse-add-bar {
  border: none;
  border-top: 1.5px dashed rgba(70, 82, 243, 0.3);
  border-radius: 0;
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  width: 100%;
  min-height: 44px;
}

.pulse-opt-frame .pulse-add-bar:focus {
  outline: none;
}

.pulse-opt-frame .pulse-add-bar:hover {
  background: var(--c-bg-subtle-purple, #f4f3fb);
  border-top-color: rgba(70, 82, 243, 0.5);
}

[data-theme=dark] .pulse-opt-frame .pulse-add-bar {
  border-top-color: var(--c-purple-200-30, rgba(165, 172, 255, 0.3));
}

[data-theme=dark] .pulse-opt-frame .pulse-add-bar:hover {
  background: rgba(255, 255, 255, 0.06);
  border-top-color: var(--c-purple-200-50, rgba(165, 172, 255, 0.5));
}

/* Afbeelding bij een stap. */
.pulse-sm-image {
  display: flex;
  align-items: center;
  gap: 12px;
}

.pulse-sm-thumb {
  width: 96px;
  height: 64px;
  border-radius: 10px;
  overflow: hidden;
  background: var(--c-bg-subtle-purple, #f3f4fb);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #b9bcd6;
  flex: 0 0 auto;
}

.pulse-sm-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.pulse-sm-image-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

/* Videovoorbeeld (01.09.2026, Kim) — bij een videostap staat op de plek van
   de afbeelding-kiezer het voorbeeld van de video zelf. 16:9 en niet een
   vaste hoogte: dat is de verhouding waarin YouTube levert, en de kolom
   bepaalt de breedte. De speler is een echte, afspeelbare insluiting (zelfde
   youtube-nocookie-vorm als de app), zodat je in de backoffice kunt
   controleren of je de JUISTE video geplakt hebt. */
.pulse-sm-video-preview {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  border-radius: 12px;
  overflow: hidden;
  background: #000;
}

.pulse-sm-video-preview-frame {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* De lege plaat: geen zwart vlak zonder uitleg, maar een rustige stippellijn
   met één regel die zegt wat er moet gebeuren. Bewust NIET 16:9: zolang er
   geen video is, is een leeg vlak van 300px hoog alleen maar gat in het
   formulier. Hij groeit pas naar de echte verhouding zodra de speler er
   staat. */
.pulse-sm-video-preview.is-empty {
  aspect-ratio: auto;
  min-height: 116px;
  background: var(--c-bg-subtle-purple, #f3f4fb);
  border: 1px dashed var(--c-border-soft, #e5e5ea);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px;
  color: #b9bcd6;
  text-align: center;
}

.pulse-sm-video-preview-text {
  margin: 0;
  max-width: 260px;
  font-size: 11.5px;
  line-height: 16px;
  color: var(--c-grey-500, #6b6884);
}

[data-theme=dark] .pulse-sm-video-preview.is-empty {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.14);
}

/* De twee kale tekstvlakken die hier stonden (.pulse-sm-textarea) zijn weg per
   12.08.2026: de feedbackvelden zijn vervangen door de uitleg per optie, en die
   is een qdnapro-input type="expanding". Een handgemaakt tekstvlak met een eigen
   randje en een eigen focus-ring naast de echte velden in dezelfde modal is
   precies het soort scheefgroei dat je later niet meer terugvindt. */
/* --- Opmaak-wizard (kaart 6, SCOPE-pulse-opmaak-wizard.md) --------------- */
/* Schil: qdnapro-wizard-modal (components/v2/wizard-modal). Elke stap is zijn
   EIGEN venster (.qdnapro-wizard-step), dus kop/voortgang/voet staan in ELK
   van de drie stappen — geen gedeeld element dat buiten de stappen leeft. */
/* Kaart 17 (Kims Figma, letterlijk): de kop IS de staptitel (paars,
   linksboven), kruisje rechtsboven, een dunne scheidingslijn onder de kop.
   Geen los "Nieuwe kennisvraag"-kopje en geen grijze "STAP 1/3"-regel meer
   (.pulse-wiz-progress is daarom verwijderd). */
/* Kaart 19, punt 2 (Kim): VASTE hoogte, gelijk op alle drie de stappen — was
   `auto-height` (component-attribuut, zie qdna-wizard-modal.js), waarbij elke
   stap zijn EIGEN natuurlijke inhoudshoogte kreeg en de modal dus verspong
   tussen stap 1 (drie kaarten), 2 (formulier) en 3 (kort pacing-blok). De
   breedte was via `data-width` op elke stap al gelijk (880, nu 1280, zie
   WIZ_STEP_WIDTH in detail.html) — dat verspringt dus al niet. `--wm-height`
   is de CSS-var die het component zelf leest (`.wm-steps { height:
   var(--wm-height, 540px); }`, zie _wizard-modal.scss); dit is de
   page-scoped override die de skill/kaart hier vraagt, want de component
   zelf kent geen `size`-schaal zoals qdnapro-modal (xxlarge enz.) — nagekeken
   in qdna-wizard-modal.js, die kent alleen per-stap `data-width` + deze
   hoogte-var/`auto-height`. `.pulse-wiz-scroll` (verderop) is en blijft de
   scrollende kolom BINNEN een stap wanneer de inhoud niet past — nooit de
   modal zelf, dezelfde `min-height: 0`-keten-regel als elders in dit bestand. */
/* Kaart 14 (25.08.2026): hoger nu de stap meer informatie draagt (toggle,
   schakelaar, uitleg-stand). min() houdt hem binnen beeld op lage schermen;
   96px marge omdat de dialog 18px meer meet dan zijn max-height rekent. */
#pulse-wizard-modal {
  --wm-height: min(800px, calc(100vh - 96px));
}

.pulse-wiz-hdr {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 20px 14px;
  border-bottom: 1px solid var(--c-border-soft, #e5e5ea);
  flex-shrink: 0;
}

.pulse-wiz-hdr-title {
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  color: var(--c-brand-purple, #394290);
}

/* Kaart 21: het "Bewerk vraag"/"Instellingen"-segment bovenin, ALLEEN
   zichtbaar in bewerkstand — `hidden` staat standaard op de wrapper en wordt
   per sessie gezet/verwijderd door wizApplyEditChrome() (detail.html). Elke
   stap draagt zijn EIGEN exemplaar (de wizard bouwt zijn drie stappen maar
   ÉÉN keer en verplaatst ze, geen gedeelde node), vandaar drie identieke
   wrappers in de markup, één per `.pulse-wiz-step`. */
.pulse-wiz-edit-seg-wrap {
  padding: 12px 20px 0;
  flex-shrink: 0;
}

.pulse-wiz-hdr {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  grid-template-areas: "left seg close";
  align-items: center;
}
.pulse-wiz-hdr-left {
  grid-area: left;
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.pulse-wiz-hdr-title {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pulse-wiz-hdr-pill {
  flex-shrink: 0;
}

.pulse-wiz-edit-seg-wrap {
  grid-area: seg;
  justify-self: center;
  padding: 0;
}

.pulse-wiz-close-btn {
  grid-area: close;
  justify-self: end;
}

#pulse-step-modal .pulse-sm-hdr-left {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  flex: 1 1 auto;
}
#pulse-step-modal .pulse-sm-hdr-title-shrunk {
  flex: 0 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#pulse-step-modal .pulse-sm-hdr-pill {
  flex-shrink: 0;
}

.pulse-wiz-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 16px 20px 20px;
}

.pulse-wiz-ftr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 20px;
  border-top: 1px solid var(--c-border-soft, #e5e5ea);
  flex-shrink: 0;
}

.pulse-wiz-ftr-right {
  display: flex;
  gap: 8px;
}

/* .pulse-wiz-ftr-left is leeg op stap 1 (geen terugknop); `justify-content:
   space-between` op de voet houdt de rechterknoppen dan toch rechts. */
.pulse-wiz-back-btn qdnapro-icon {
  margin-right: 4px;
}

.pulse-wiz-next-btn qdnapro-icon {
  margin-left: 4px;
}

/* Stap 1 (kaart 17, Kims Figma): GECENTREERDE paarse kolomtitel boven één
   rijke voorbeeldkaart per opmaakvariant — geen beschrijvende zin meer. */
.pulse-wiz-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  /* Kaart 17c, punt 2: rij expliciet op stretch zodat elke kolom (grid-item)
     de hoogte van de langste kolom krijgt (Kims feedback: "de kolommenrij
     op stretch"). Grid doet dit al standaard, maar de daadwerkelijke gelijke
     hoogte moet daarna nog doorgezet worden naar de kaart zelf (zie
     .pulse-wiz-card hieronder), anders blijft de KAART zelf ongelijk. */
  align-items: stretch;
  gap: 16px;
}

@media (max-width: 900px) {
  .pulse-wiz-cards {
    grid-template-columns: minmax(0, 1fr);
  }
}
.pulse-wiz-col {
  display: flex;
  flex-direction: column;
  gap: 10px;
  height: 100%;
}

/* Kaart 15b-stijl tokenisatie: --c-brand-purple is hier al de vaste
   merkpaars-titelkleur (zelfde token als .pulse-wiz-hdr-title). */
.pulse-wiz-col-title {
  margin: 0;
  font-size: 13.5px;
  font-weight: 600;
  text-align: center;
  color: var(--c-brand-purple, #394290);
}

.pulse-wiz-card {
  display: flex;
  flex-direction: column;
  /* Kaart 17c, punt 2: de kaart vult de resterende hoogte van .pulse-wiz-col
     (col staat hierboven al op height:100% via de grid-stretch). Kim schreef
     "de kaarten op height 100%"; een letterlijke height:100% zou hier de
     kolomtitel (h4.pulse-wiz-col-title, dezelfde flex-column) overlappen
     omdat percentage-hoogte de ruimte van een sibling niet aftrekt. flex:1
     geeft hetzelfde zichtbare resultaat (kaart vult de rest van de kolom,
     alle drie kaarten even hoog) zonder die overlap. */
  flex: 1 1 auto;
  padding: 0;
  border: 2px solid var(--c-border-soft, #e5e5ea);
  border-radius: 14px;
  background: var(--c-bg-card, #fff);
  overflow: hidden;
  text-align: left;
  cursor: pointer;
  /* Kaart 17d: de gemeten oorzaak van de onzichtbare selectie-ring was NIET
     een overschreven regel, clipping of specificiteit — de SCSS-regel
     .pulse-wiz-card.is-selected hieronder was en is correct en compileert
     prima. De ring komt op door deze transitielijst, die tot en met kaart
     17c ook box-shadow bevatte. `openWizard()` (view + harnas) toggelt
     `is-selected` bij ELKE nieuwe/herstart wizard-sessie opnieuw op ALLE
     kaarten (reset naar Klassiek) — óók wanneer de vorige sessie een
     ANDERE kaart had gekozen (bv. na "Tekst op achtergrond" testen en de
     wizard opnieuw openen). Op dat moment krijgen TWEE kaarten in
     dezelfde tick een echte class-wijziging: Klassiek WINT `is-selected`,
     de vorige kaart VERLIEST hem. Met box-shadow in de transitielijst
     ANIMEERT die wissel over 120ms — en meteen na de class-toggle (of een
     headless screenshot die het frame op t≈0 van die transitie vastlegt,
     precies wat --virtual-time-budget doet) staat de animatie nog op zijn
     STARTwaarde: de kaart die de ring KRIJGT toont 'm nog niet (start =
     "geen schaduw", dezelfde vorm maar rgba(0,0,0,0)), de kaart die hem
     VERLIEST toont 'm nog steeds VOL (start = de oude, nog niet vervaagde
     ring). Bevestigd via de wizhold-hook in het harnas, op hetzelfde
     moment: "computed classic is-selected=true | boxShadow=rgba(0, 0, 0,
     0) 0px 0px 0px 0px, ..." (moet de ring hebben, toont 'm nog niet) vs.
     "computed background is-selected=false | boxShadow=rgb(165, 172,
     255) ... rgba(70, 82, 243, 0.25) ..." (mag hem niet hebben, toont 'm
     nog wél) — exact de is-selected-kleuren op de kaart die de class net
     kwijt is. Fix: box-shadow NIET meer animeren op deze kaart —
     border-color/background-color blijven zacht overvloeien (hover/
     active), maar de selectie-ring verschijnt/verdwijnt DIRECT zodra de
     class wisselt, zodat hij nooit meer op een tussentijdse (onjuiste)
     animatiestand gevangen kan worden — ook niet bij een reset naar
     Klassiek. */
  transition: border-color 120ms ease, background-color 120ms ease;
}

/* Hover/pressed/selected met de bestaande focus-ring-tokens (besluit 4),
   zelfde recept als .qdnapro-background-picker's tegels.
   Kaart 17c (Kims visuele review, punten 1/3/4):
   - geen transform/translateY/scale meer op :hover of :active (punt 3);
   - het pressed-patroon is 1-op-1 gespiegeld van de knop-component
     (components/v2/button/_button.scss, .button-secondary-outline en
     .button-secondary-purple: :hover = een lichte achtergrondtint, :active =
     een iets diepere tint van dezelfde kleurfamilie, GEEN transform en GEEN
     extra box-shadow op :active — de knop-component doet dat nergens; punt 4). */
.pulse-wiz-card:hover {
  border-color: var(--c-purple-300, #a9adde);
} /* Kim 24.08: hover verft NIET, alleen de rand kleurt. */
.pulse-wiz-card:active {
  border-color: var(--c-purple-300, #a9adde);
  background: var(--c-border-tree-bright, #d4d8ee);
}

/* Kims review 24.08 (tweede ronde): op de ECHTE pagina laadt de v1-header
   bootstrap.min.css, en die zet `button:focus { outline: 5px auto
   -webkit-focus-ring-color }` op ELKE knop. Deze kaarten zijn buttons, dus
   een echte muisklik (die wel :focus geeft maar geen :focus-visible) kreeg
   daardoor alsnog de harde blauwe systeem-ring rond de kaart — de
   :focus-visible-regel hieronder kon dat niet opvangen. In het statische
   harnas (_pulse-modal-harness.html) laadt bootstrap niet, daarom was het
   daar niet te zien. Deze regel zet de bootstrap-outline uit voor ALLE
   focusstanden; de zichtbare focusmarkering blijft de zachte lichtpaarse
   dubbele ring hieronder. */
.pulse-wiz-card:focus {
  outline: none;
}

.pulse-wiz-card:focus-visible {
  /* Kims review 24.08: never the hard dark ring on these cards. Focus uses
     the SAME soft light-purple double ring as .is-selected, so a click (or
     programmatic focus) can never paint the harsh blue inner border. */
  outline: none;
  box-shadow: 0 0 0 2px var(--c-purple-200, #a5acff), 0 0 0 5px var(--focus-glow, rgba(83, 74, 183, 0.18));
}

/* Kaart 17c, punt 1: de dikke donkerpaarse rand bij selectie was te hard.
   De geselecteerde kaart houdt nu alleen een dunne lichtpaarse rand
   (--c-purple-200) plus de zachte glow eromheen (--focus-glow) — geen harde
   2px --focus-ring laag meer. */
.pulse-wiz-card.is-selected {
  /* Kaart 17d: de SOFT lichtpaarse dubbele ring (zoals de focusring, maar
     lichtpaars, nooit de harde donkere rand): dunne purple-200-ring plus de
     zachte glow. Deze ring verschijnt altijd DIRECT — zie het "transition"-
     commentaar bij de basisregel .pulse-wiz-card hierboven voor waarom
     box-shadow daar bewust NIET meer in de transitielijst staat. */
  border-color: var(--c-purple-200, #a5acff);
  box-shadow: 0 0 0 2px var(--c-purple-200, #a5acff), 0 0 0 5px var(--focus-glow, rgba(83, 74, 183, 0.18));
}

/* De kaart-inhoud (vraag/subtekst/pillen) krijgt zijn eigen binnenkant, want
   de illustratie/canvas hierboven loopt bewust tot de kaartrand (borderless,
   Kims annotatie). */
.pulse-wiz-card-q {
  display: block;
  margin: 10px 12px 2px;
  font-size: 13px;
  font-weight: 700;
  color: var(--c-text-heading, #1c1e2a);
}

.pulse-wiz-card-sub {
  display: block;
  margin: 0 12px 10px;
  font-size: 11.5px;
  line-height: 16px;
  color: var(--c-grey-500, #6b6884);
}

/* De twee voorbeeldpillen: klikken moet de KAART selecteren, niet de pil
   "aanzetten" — vandaar pointer-events:none op de wrapper (decoratief). */
.pulse-wiz-card-answers {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0 12px 12px;
  pointer-events: none;
}

.pulse-wiz-card-answers qdnapro-answer-button {
  width: 100%;
}

/* Klassiek: borderless illustratie over de volle kaartbreedte (kaart 17d —
   Kims raket-illustratie, cover-fit, geen vervorming). De achtergrondkleur
   blijft staan als laadval/fallback-kleur onder de <img> (zichtbaar in de
   rand als het beeld niet laadt), niet als zichtbaar vlak eromheen — de
   illustratie vult de hele hoogte/breedte van dit kader. */
/* Kims review 24.08 (derde ronde): de drie voorbeeldkaarten moeten hun
   ANTWOORDOPTIES op exact dezelfde hoogte hebben, met de middelste kaart
   ("Tekst op achtergrond") als goede voorbeeld. De kaarten waren al even
   hoog (flex:1 hierboven), maar de inhoud stapelde in alle drie van boven
   af en niets vulde de restruimte, dus stond de eerste pil op 177 (Klassiek)
   / 309 (middelste) / 129 (Vrij vormgeven) px — gemeten met de pilmeting in
   _pulse-modal-harness.html (?wizhold=step1).
   Het recept: per kaart slokt EEN blok de restruimte op (flex-grow), en de
   pillen zijn overal het laatste element met dezelfde ondermarge. Dan valt
   de bovenkant van de eerste pil automatisch op dezelfde lijn, ongeacht of
   er boven de pillen een vraag + subtekst staat (Klassiek), alleen een
   subtekst (middelste) of niets (Vrij vormgeven). Hoogtes met de hand
   gelijkzetten zou breken zodra een vertaling een regel langer wordt.
   Hier is dat het illustratiekader: geen VASTE 96px meer maar 96px als
   MINIMUM plus flex-grow, zodat het beeld doorgroeit tot het net zo groot
   is als het achtergrondvlak van de middelste kaart (Kims annotatie:
   "afbeelding dus net zo groot als in de middelste optie").
   ⚠️ `position: relative` hier + `position: absolute; inset: 0` op de <img>
   (zie hieronder) is GEEN opsmuk: het is de enige stand die in BEIDE layouts
   klopt. De img stond op width/height 100%. Zodra de hoogte van dit kader
   niet meer VAST is (96px) maar door flex-grow bepaald wordt, resolvt die
   height:100% niet in de GESTAPELDE stand (<= 900px, één kolom, auto-rij:
   geen definitieve ouderhoogte om tegen te rekenen) — de img valt dan terug
   op zijn intrinsieke verhouding en werd bij 820px viewport ~493px hoog,
   waardoor de klassieke kaart 638px werd i.p.v. ~200px. Gemeten met de
   pilmeting in het harnas op --window-size=820. Absolute positionering
   binnen een relative kader vult altijd exact het kader, of de hoogte nu
   van flex-grow, van de min-height of van een media-query komt. */
.pulse-wiz-card-illustration {
  position: relative;
  display: block;
  flex: 1 1 auto;
  min-height: 96px;
  overflow: hidden;
  background: var(--c-bg-subtle-purple, #f3f4fb);
}

/* Cover + center-top-ish: het onderwerp (gezicht + raket) staat in het
   BOVENSTE deel van de illustratie (2742x1828, kop rond y≈150-450, raket
   rond y≈250-750) — bij een brede/lage kaart (cover schaalt op breedte,
   dus de hoogte wordt afgekapt) laat een pure center-center-crop te veel
   van het bovenste hoofd/haar weg en te veel lucht/rook onderin staan.
   object-position: center 25% getest met de daadwerkelijke breedte/hoogte-
   verhouding van dit kader: houdt gezicht ÉN raket goed in beeld. Kims
   review 24.08 (derde ronde) maakt dit kader hoger (~280x246 i.p.v.
   ~280x96, zie .pulse-wiz-card-illustration hierboven) — opnieuw gemeten:
   bij die hogere verhouding wordt er MINDER hoogte afgekapt, dus blijft
   center 25% goed staan en hoeft het brandpunt niet mee te verschuiven. */
.pulse-wiz-card-illustration-img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 25%;
}

/* Tekst op achtergrond: de bovenste ~55% van de kaart is de scène-canvas
   (qdnapro-pulse-canvas, WEERGAVE) met de vraag gecentreerd erop; de rest
   van de kaart (subtekst + pillen) blijft wit. */
.pulse-wiz-card--background {
  padding: 0;
}

.pulse-wiz-card-bgcanvas {
  display: block;
  width: 100%;
  /* 28.08.2026: 16/10 en NIET 16/9. De crop die de gebruiker moet doorlopen
     (PULSE_PHOTO_CROP_RATIO in detail.html), het component zelf en de kaart in
     de app staan alle drie op 16/10; alleen de wizard-frames stonden op 16/9.
     Daardoor ontwierp je op een ander vlak dan je terugkreeg, wat precies de
     klacht van Kim was ('de verhoudingen moeten gelijk zijn'). */
  aspect-ratio: 16/10;
}

.pulse-wiz-card-bgcanvas qdnapro-pulse-canvas {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 0;
}

.pulse-wiz-card-body {
  display: flex;
  flex-direction: column;
  padding-top: 10px;
}

.pulse-wiz-card-body .pulse-wiz-card-sub {
  margin-top: 0;
}

/* Vrij vormgeven: bovenaan de vraag, dan een kleine afbeelding LINKS met
   wrappende uitlegtekst eromheen (float, Kims annotatie), dan de pillen. */
/* Kims review 24.08 (derde ronde): de `padding-bottom: 4px` die hier stond
   is weg. De andere twee kaarten hebben padding 0 (zie .pulse-wiz-card),
   dus die 4px zette de pillen van DEZE kaart structureel 4px hoger dan de
   andere twee — precies het soort verschil dat de "gelijke hoogte" alsnog
   net niet haalt. De ondermarge van het pillenblok (12px) is nu in alle
   drie de kaarten de enige ruimte onder de pillen. */
/* Kims review 24.08 (VIERDE ronde): de kaart moet LATEN ZIEN dat je hier je
   eigen kader bouwt, "als een soort Word, met foto's en tekst naast elkaar".
   De oude opzet (een 40x40-plaatje dat in de tekst zweeft, 11.5px letters,
   daaronder een half lege kaart) beloofde dat wel maar toonde het niet.
   Nu een miniatuur-DOCUMENT: eigen kop, beeld LINKS met de uitleg ERNAAST,
   daaronder een tweede alinea over de volle breedte, dan pas de pillen.
   Dit blok is meteen ook het blok dat de restruimte opslokt (flex-grow) —
   zelfde recept als het illustratiekader bij Klassiek en het achtergrond-
   vlak bij de middelste kaart, zodat de eerste antwoordpil in alle drie de
   kaarten op dezelfde hoogte blijft vallen. `justify-content: space-between`
   verdeelt de winst over kop/beeldrij/slotalinea in plaats van hem als één
   gat onder de tekst te laten staan. */
.pulse-wiz-card-doc {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  justify-content: space-between;
  gap: 10px;
  margin: 12px 12px 12px;
  min-width: 0;
}

/* Eigen, GROTERE kop dan .pulse-wiz-card-q (13px, de gedeelde kop van
   Klassiek): bij deze variant bepaal je je koppen zelf, dus laat de
   voorbeeldkaart dat ook zien. */
.pulse-wiz-card-free-q {
  display: block;
  font-size: 15px;
  line-height: 1.25;
  font-weight: 700;
  color: var(--c-text-heading, #1c1e2a);
}

/* Beeld en tekst NAAST elkaar (Kims Figma). Geen float meer: bij een float
   loopt korte tekst onder het beeld door en krijg je precies het rommelige
   beeld dat hier niet moet. Flex houdt de twee kolommen strak naast elkaar
   en laat de tekst zijn eigen kolom houden, ook als hij langer wordt. */
.pulse-wiz-card-free-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
}

.pulse-wiz-card-free-explain {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  /* Kim: "de tekst is te klein". 11.5/16 -> 12.5/18. */
  font-size: 12.5px;
  line-height: 18px;
  color: var(--c-grey-500, #6b6884);
}

/* De slotalinea loopt bewust over de VOLLE kaartbreedte (het beeld staat er
   niet meer naast) — dat is het tweede halve bewijs van "vrij vormgeven":
   niet elke alinea hoeft dezelfde vorm te hebben. */
.pulse-wiz-card-free-explain--full {
  flex: 0 0 auto;
}

/* Kaart 17d, Kims expliciete instructie: dit kadertje is vierkant (40x40,
   los van de 6px padding erbinnen) terwijl de raket-illustratie zelf
   LANDSCAPE is (2742x1828, ~1.5:1) — object-fit:cover alleen zou zomaar
   lucht/rook laten staan i.p.v. het ONDERWERP (de vrouw met de raket).
   Gekozen brandpunt (geverifieerd met een 200x200-testcrop in headless
   Chrome, zie het kaart-17d-verslag): het gezicht van de vrouw zit rond
   x≈1110/y≈450 in de 2742x1828-illustratie, de raket rond x≈1670/y≈590 —
   beide dicht genoeg bij elkaar (x-afstand ≈560px) om samen in één
   vierkante cover-crop te passen zolang die crop niet dood-centreert.
   Bij object-fit:cover op een vierkant kader wordt de VOLLE hoogte (1828px)
   getoond en alleen de breedte afgekapt tot 1828px (van de 2742px totaal) —
   object-position-y doet er dus niets toe (de volledige hoogte is al
   zichtbaar); object-position-x=52% legt het midden van die 1828px-brede
   crop tussen gezicht en raket in, zodat beide zichtbaar blijven. */
/* Middle example card: Kim's dedicated readable-background version of the
   rocket illustration (Achtegrond.svg), with the sample question in DARK bold
   text centred on it, exactly like her Figma. No scrim needed: the asset
   itself keeps the text zone calm. */
/* Kims review 24.08 (derde ronde): ook dit vlak krijgt flex-grow, met de
   16/10 als MINIMUM. In de huidige vertalingen is deze kaart de langste en
   groeit hier dus niets — maar zodra de uitlegtekst van "Vrij vormgeven"
   één regel langer wordt (andere taal), is de MIDDELSTE de kortste en moet
   hij op zijn beurt kunnen opvullen, anders staan de pillen weer ongelijk. */
.pulse-wiz-card-bgimage {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  aspect-ratio: 16/10;
  width: 100%;
  background-image: url("/assets/pulse-backgrounds/wizard-raket-achtergrond.svg");
  background-size: cover;
  background-position: center 30%;
  padding: 12px 18px;
  box-sizing: border-box;
}

.pulse-wiz-card-bgimage-q {
  font-size: 17px;
  line-height: 1.3;
  font-weight: 700;
  color: var(--c-text, #1c1e2a);
  text-align: center;
}

/* Kims review 24.08 (vierde ronde): het beeld is geen 40x40-postzegel meer
   maar een echt afbeeldingsblok, ~34% van de kaartbreedte en staand
   (aspect-ratio 4/5, de verhouding uit Kims Figma: 207x268). `flex-basis`
   in procenten i.p.v. een vaste px-maat, zodat het blok bij een smallere
   kaart (gestapelde stand onder 900px, of een vierde kolom later) mee
   krimpt en de tekst ernaast nooit tot één woord per regel geknepen wordt.
   Brandpunt: bij object-fit:cover op een STAAND kader wordt van de
   landschaps-illustratie (2742x1828) juist de BREEDTE afgekapt — er blijft
   ~1462px van de 2742px over. Gezicht (x~1110) en raket (x~1670) liggen
   ~560px uit elkaar en passen daar samen in zolang de crop niet
   dood-centreert; 52% legt het midden van die crop tussen die twee in
   (zelfde brandpunt als de oude vierkante postzegel, opnieuw geldig omdat
   alleen de verhouding veranderde, niet de as die wordt afgekapt). */
.pulse-wiz-card-free-img {
  flex: 0 0 34%;
  /* ⚠️ Zonder deze regel is de kaart stuk. Een flex-item heeft
     `min-width: auto`, en voor een VERVANGEN element (een <img>) is die
     automatische minimummaat de INTRINSIEKE breedte van het bestand — hier
     2742px. `flex-basis: 34%` (134px) wordt daar simpelweg door
     overstemd: gemeten stond het beeld op 2742x3428 en werd de hele
     kaartenrij 3662px hoog. Gemeten in een los harnas op de gecompileerde
     style-v1.css, niet beredeneerd. */
  min-width: 0;
  aspect-ratio: 4/5;
  border-radius: 8px;
  background: var(--c-bg-subtle-purple, #f3f4fb);
  object-fit: cover;
  object-position: 52% 30%;
}

/* Stap 2: placeholder-stijl van kaart 6 — niet meer aangeroepen sinds kaart 7
   (de placeholder-paneel-HTML bestaat niet meer), maar de vertaalsleutel
   erachter blijft ongebruikt bestaan (zie het kaart-7-verslag). Regel laten
   staan is goedkoper dan een class weghalen die misschien nog ergens anders
   gebruikt wordt; hier niet het geval, maar geen risico voor niets nemen. */
.pulse-wiz-step2-placeholder {
  margin: 0;
  padding: 32px 16px;
  text-align: center;
  border: 1px dashed var(--c-border-soft, #e5e5ea);
  border-radius: 12px;
  font-size: 13px;
  color: var(--c-grey-500, #6b6884);
}

/* --- Stap 2: inhoud per opmaakvariant (kaart 7) -------------------------- */
/* Preview LINKS, velden RECHTS (SCOPE-besluit 15); onder de bestaande
   wizard-breedtegrens van 900px (zie .pulse-wiz-cards hierboven) stapelt het,
   preview boven. */
.pulse-wiz-step2 {
  display: grid;
  grid-template-columns: minmax(0, 300px) minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}

@media (max-width: 900px) {
  .pulse-wiz-step2 {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* Kaart 12b (BOARD-pulse-opmaak-hybride, 25.08.2026): stap 3 (Instellingen)
   hergebruikt de grid hierboven (`.pulse-wiz-step2`, ongewijzigd) in plaats
   van een eigen 2-koloms-layout te schrijven — zie de toelichting bij
   `step3Body` in detail.html. `.pulse-wiz-step3-fields` is de enige nieuwe
   regel: hij zet de instellingenkolom expliciet in kolom 2, zodat hij daar
   al staat vóórdat wizMovePreviewToStep() het kaartvoorbeeld-paneel voor het
   eerst naar deze stap verplaatst (zonder deze regel zou de kolom, als enige
   grid-item, in de SMALLE eerste kolom vallen — auto-plaatsing kent geen
   voorkeur voor de brede kolom). Onder de bestaande 900px-terugval hierboven
   is de grid zelf al één kolom breed; `grid-column: 2` zou daar een
   overtollige tweede (impliciete) kolom aanmaken, dus die val terug naar
   kolom 1, exact zoals de rest van deze grid al doet. */
.pulse-wiz-step3-fields {
  grid-column: 2;
}

@media (max-width: 900px) {
  .pulse-wiz-step3-fields {
    grid-column: 1;
  }
}
.pulse-wiz-step2-preview {
  display: flex;
  flex-direction: column;
  gap: 12px;
  /* De drie voorbeelden delen deze kolom en wisselen via [hidden] (besluit
     3: opmaak wisselen bewaart alles, dus niets wordt hier ooit herbouwd).
     Het relative/overflow-houvast voor de Uitleg-sheet is op 26.08.2026
     (Kims acceptatietest) verhuisd naar .pulse-wiz-preview-frame
     hieronder: de sheet klemt nu aan het KAARTFRAME, niet aan het hele
     paneel, zodat het Juist/Fout-schakeltje onder het frame kan staan
     zonder dat de sheet er overheen zakt. */
}

/* Kims acceptatietest 26.08: het frame om de drie kaartpreviews + de
   Uitleg-sheet. `position: relative` + `overflow: hidden` geven de sheet
   (.pulse-wiz-explain-preview, verderop) een houvast om ONDER de kaart te
   wachten (translateY) zonder scrollbalk of extra ruimte. `position:
   relative` (geen transform) verandert niets aan het `position: fixed`-
   gedrag van qdnapro-popover — die blijft t.o.v. de viewport plaatsen, ook
   al zit hij dieper in deze boom (de achtergrond-kleurkiezer in
   .pulse-wiz-bg-preview). In de telefoon-overlay (kaart 9) is het paneel
   viewporthoog maar dit frame kaarthoog — de "sheet blijft deels zichtbaar
   in dichte stand"-bevinding uit de kaart-9-metingen is daarmee ook weg. */
.pulse-wiz-preview-frame {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Kaart 21-aanvulling (Kim): .pulse-wiz-step2-preview-kicker (kaart 17, de
   grijze "PULSE STAP"-eyebrow boven de preview) is VERWIJDERD uit de markup
   — de modaltitel en de typepill zeggen dat al. Geen andere gebruiker
   gevonden (repo-brede grep, ook de harness), dus deze CSS is dode code en
   is hier weggehaald. */
.pulse-wiz-step2-fields > * {
  margin-top: 14px;
}

.pulse-wiz-step2-fields > *:first-child {
  margin-top: 0;
}

/* Kaart 17: de klassieke preview is nu een ECHTE kaart (rand + witte
   achtergrond), geen los beeldblok meer — foto/vraag/subtekst/pillen staan
   er allemaal in, precies zoals de kaart er straks ECHT uitziet.
   Kaart 2 (BOARD-pulse-opmaak-hybride, 25.08.2026): dit blok is niet langer
   classic-only — bij "free" toont dezelfde kaart-schil, maar dan ALLEEN de
   foto (vraag/subtekst/pillen blijven daar verborgen, zie
   wizApplyLayoutVisibility() in detail.html), zodat de rand er straks als
   een nette losse fotokaart uitziet i.p.v. een leeg wit vlak onder de foto. */
.pulse-wiz-classic-preview {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--c-border-soft, #e5e5ea);
  border-radius: 12px;
  overflow: hidden;
  background: var(--c-bg-card, #fff);
}

/* Klassiek: mini-kaartpreview met het beeldblok (Kims annotaties "Nog
   blanko" / "+ afbeelding"). 16:9 zoals de bijsnijd-cropper voor Pulse
   afdwingt (preset "pulse"), zodat de preview klopt met wat er straks
   daadwerkelijk op de kaart staat. */
.pulse-wiz-classic-photo {
  position: relative;
  width: 100%;
  /* 28.08.2026: 16/10 en NIET 16/9. De crop die de gebruiker moet doorlopen
     (PULSE_PHOTO_CROP_RATIO in detail.html), het component zelf en de kaart in
     de app staan alle drie op 16/10; alleen de wizard-frames stonden op 16/9.
     Daardoor ontwierp je op een ander vlak dan je terugkreeg, wat precies de
     klacht van Kim was ('de verhoudingen moeten gelijk zijn'). */
  aspect-ratio: 16/10;
  overflow: hidden;
  background: var(--c-bg-subtle-purple, #f3f4fb);
  display: flex;
  align-items: center;
  justify-content: center;
}

.pulse-wiz-classic-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Vraag/subtekst/pillen in de klassieke preview-kaart, onder de foto. */
.pulse-wiz-preview-q {
  display: block;
  margin: 10px 12px 2px;
  font-size: 13px;
  font-weight: 700;
  color: var(--c-text-heading, #1c1e2a);
}

/* Kims annotatie 27.08.2026: "ik wil wel dat er spaties geregistreerd worden,
   deze worden nu niet getoond in de preview". Ze werden WEL bewaard (de
   sanitizer op de server laat \n, lege regels en voorloopspaties ongemoeid,
   nagemeten) en de app toont ze ook al (`_platteBodyNaarHtml()` in 16-pulse.js
   zet \n om naar <br>) — alleen DEZE previewkaart plakte alles aan elkaar,
   want `white-space` stond op de standaard `normal` en dan vallen newlines en
   dubbele spaties samen tot één spatie. `pre-wrap` houdt regelafbrekingen,
   lege regels en spatiereeksen intact en laat lange regels nog steeds
   afbreken. De subtekst komt hier als textContent binnen (zie
   wizRefreshClassicPreview in detail.html), dus de \n's stonden al in de DOM;
   het was puur de CSS. */
.pulse-wiz-preview-sub {
  display: block;
  margin: 0 12px 10px;
  font-size: 11.5px;
  line-height: 16px;
  color: var(--c-grey-500, #6b6884);
  white-space: pre-wrap;
}

/* Kaart M11/M12-contract (BOARD-pulse-markup-v2, ronde 3, 27.08.2026): het
   icoon-blok van de subtekst, gecentreerd op zijn eigen regel, ~96px —
   zelfde maat als de app straks toont. Zie pulseExtractIconToken() in
   detail.html voor de token-herkenning die dit blok vult. */
.pulse-wiz-preview-icon-block {
  display: flex;
  justify-content: center;
  margin: 0 12px 10px;
}

.pulse-wiz-preview-icon-block img {
  width: 96px;
  height: 96px;
  object-fit: contain;
}

/* Dezelfde blok-maat voor de RIJKE vorm (de contract-alinea die de emoji-/
   icoon-knop in de WYSIWYG invoegt, zie qdnapro-wysiwyg's insertContent()-
   aanroep in makeEditorController). Dit is precies wat vrij-vormgevens
   preview toont (die zet freeEditor.value() rechtstreeks als innerHTML,
   dus de img komt vanzelf mee) en wat de app straks ook herkent
   (img.pulse-body-icon, zie 16-pulse.js). */
.pulse-body-icon-row {
  display: flex;
  justify-content: center;
  margin: 8px 0;
}

.pulse-body-icon-row .pulse-body-icon,
.pulse-body-icon {
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

/* Kim 03.09.2026: het icoon moest in de tekstverwerker groter gesleept kunnen
   worden. TinyMCE legt die maat vast als width/height-ATTRIBUUT op de img (een
   presentational hint), en een hint verliest van élke regel hier — een harde
   `width: 96px` slikte dus iedere sleepbeweging. De 96px is nu alleen nog de
   TERUGVAL voor een img zonder eigen maat; draagt hij er een, dan blijft deze
   stylesheet eraf. Zelfde afspraak in de tekstverwerker (content_style in
   qdna-wysiwyg.js) en in de app (16-pulse.js). */
.pulse-body-icon-row .pulse-body-icon:not([width]),
.pulse-body-icon:not([width]) {
  width: 96px;
  height: 96px;
}

/* ⚠️ Na OPSLAAN is die class weg. De gedeelde HtmlSanitizer laat op een img
   alleen src/alt/width/height door (HtmlSanitizer::purifier), dus een
   opgeslagen kaart bevat een kale <img> in een kale <p> — de regels hierboven
   raken die niet meer en het icoon vulde daardoor de hele breedte. Vandaar
   dezelfde maat nog een keer, nu op de SRC (zelfde haak als de app gebruikt,
   zie PULSE_ICON_SRC_RE in 16-pulse.js), en gecentreerd via de img zelf omdat
   ook de class op de alinea sneuvelt. Bewust GESCOOPT op de drie plekken die
   opgeslagen body-HTML tonen: een losse `img[src*=...]`-regel zou ook de
   32px-tegels in de icoonkiezer op 96px zetten. Nieuw ingevoegde iconen
   dragen sinds 28.08.2026 bovendien width/height als attribuut, dus dit is
   het vangnet voor alles wat vóór die datum is opgeslagen. */
.pulse-wiz-preview-sub img[src*="/activity-animated/posters/"],
.pulse-wiz-free-preview-body img[src*="/activity-animated/posters/"],
.pulse-preview-body img[src*="/activity-animated/posters/"] {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 8px auto;
  object-fit: contain;
}

/* Terugval voor een opgeslagen icoon zonder eigen maat, zie de uitleg bij
   .pulse-body-icon hierboven. */
.pulse-wiz-preview-sub img[src*="/activity-animated/posters/"]:not([width]),
.pulse-wiz-free-preview-body img[src*="/activity-animated/posters/"]:not([width]),
.pulse-preview-body img[src*="/activity-animated/posters/"]:not([width]) {
  width: 96px;
  height: 96px;
}

/* Kim 28.08.2026: de icoon-strip onder een PLAT subtekstveld. Een animerend
   icoon kan daar alleen als `{{icon:<naam>}}`-token leven (een textarea kan
   geen plaatje bevatten), dus deze rij laat zien wat de app ervan maakt. Zie
   pulseIconHintHtml() in detail.html. */
.pulse-inline-icon-hint {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  padding: 6px 10px;
  border-radius: 10px;
  background: var(--c-bg-subtle-purple, #f3f5ff);
}

/* `display: flex` hierboven is auteur-CSS en wint ALTIJD van het native
   [hidden] uit de user-agent-stylesheet — zelfde valkuil als bij
   .pulse-sm-editor-mount en .pulse-opt-view-seg elders in dit bestand. */
.pulse-inline-icon-hint[hidden] {
  display: none;
}

.pulse-inline-icon-hint-label {
  font-size: 12px;
  line-height: 16px;
  color: var(--c-text-muted, #6e7280);
}

.pulse-inline-icon-hint-icons {
  display: flex;
  align-items: center;
  gap: 6px;
}

.pulse-inline-icon-hint-icons img {
  width: 32px;
  height: 32px;
  object-fit: contain;
}

.pulse-wiz-preview-answers {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0 12px 12px;
  pointer-events: none;
}

.pulse-wiz-preview-answers qdnapro-answer-button {
  width: 100%;
}

/* Blanco: de upload-knop staat ÍN de preview, niet ernaast — dat is Kims
   annotatie "Nog blanko" bij de foto-plek zelf. */
/* Kims review 24.08: keep the dashed drop zone (it invites dragging a photo
   in) and put her Figma details inside it: a dark image glyph plus a solid
   dark-purple upload pill. */
.pulse-wiz-classic-upload-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  border: 1px dashed var(--c-border-soft, #c7c5e0);
  border-radius: 10px;
  background: transparent;
  color: var(--c-grey-500, #6b6884);
  font-family: inherit;
  font-size: 12px;
  cursor: pointer;
  padding: 18px 22px;
}

.pulse-wiz-classic-upload-btn:hover {
  border-color: var(--c-purple-200, #a5acff);
}

.pulse-wiz-classic-upload-glyph {
  /* The size attribute alone renders too small inside this zone, so the
     box is pinned here: Kims Figma shows a clearly readable glyph. */
  color: var(--c-brand-purple, #40499a);
  width: 34px;
  height: 34px;
  font-size: 34px;
  line-height: 1;
}

.pulse-wiz-classic-upload-glyph svg {
  width: 100%;
  height: 100%;
}

.pulse-wiz-classic-upload-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 8px;
  background: var(--c-brand-purple, #40499a);
  color: var(--c-text-on-action, #ffffff);
  font-size: 13px;
  font-weight: 500;
}

.pulse-wiz-classic-upload-pill qdnapro-icon {
  color: inherit;
}

.pulse-wiz-classic-upload-btn:hover .pulse-wiz-classic-upload-pill {
  background: var(--c-purple-600, #363e85);
}

/* Gevuld: knopjespaar rechtsonder op de foto (Kims annotatie "+ afbeelding").
   Kaart 14 (BOARD-pulse-opmaak-hybride.md): dit was ooit een glas-pil
   (achtergrond + blur + schaduw) ROND de qdnapro-icon-btn's — maar elke
   icon-btn (type="secondary") draagt al zijn EIGEN lichte vierkante schil.
   Twee schillen over elkaar heen gaf een los wit afgerond kader over de
   foto (Kims annotatie: "wat zit hier voor raar frame?"). Deze wrapper is nu
   PUUR positionering: geen eigen achtergrond/blur/schaduw meer. De knopjes
   zelf kregen het `round`-attribuut (zie detail.html/harnas) zodat ze als
   twee losse ronde chips op de foto liggen — zelfde idioom als het kruisje
   in de overlay-schil (.qos-*): een kale qdnapro-icon-btn, geen extra frame
   eromheen. Kaart 10, punt 2/3: sinds die kaart zitten hier TWEE knopjes
   (potlood = markup, upload = nieuwe foto) i.p.v. één — zelfde wrapper, ook
   hergebruikt boven de achtergrond-canvas (.pulse-wiz-bg-canvas-wrap). */
.pulse-wiz-classic-photo-edit-wrap {
  position: absolute;
  right: 8px;
  bottom: 8px;
  display: flex;
  gap: 4px;
}

/* Kaart M13, punt 3 (Kim 27.08, cirkel linksboven op haar screenshot): het
   wisselknopje klassiek <-> tekst op achtergrond. Zelfde kale ronde-chip-
   idioom als het potlood/upload-paar (edit-wrap hierboven), maar linksboven
   en ALTIJD zichtbaar (niet hover-gated zoals de verwijderknop hieronder):
   wisselen is niet-destructief (preset-geen-slot), dus geen reden om hem te
   verstoppen achter een hover. Gedeeld door de klassieke fotobox EN de
   achtergrond-canvas-wrap (zie pulseBgPhotoButtonsHtml/renderClassicPhotoOf
   in detail.html). */
.pulse-wiz-layout-swap-wrap {
  position: absolute;
  left: 8px;
  top: 8px;
}

/* Kims verzoek 27.08 (rode cirkel linksonder op de kaartfoto): de foto was in
   de wizard niet meer te verwijderen. Eigen hoek linksonder, en alleen
   zichtbaar bij hover over de foto — of bij toetsenbordfocus, anders is de
   knop voor toetsenbordgebruikers onbereikbaar onzichtbaar. Zelfde kale
   ronde-chip-idioom als het potlood/upload-paar rechts. */
.pulse-wiz-classic-photo-delete-wrap {
  position: absolute;
  left: 8px;
  bottom: 8px;
  opacity: 0;
  transition: opacity 0.15s ease;
}

.pulse-wiz-classic-photo:hover .pulse-wiz-classic-photo-delete-wrap,
.pulse-wiz-bg-canvas-wrap:hover .pulse-wiz-classic-photo-delete-wrap,
.pulse-wiz-classic-photo-delete-wrap:focus-within {
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .pulse-wiz-classic-photo-delete-wrap {
    transition: none;
  }
}
/* Tekst op achtergrond: de canvas (niet-editable, herzien kaart 17) + de
   kiezer direct eronder (besluit 5+6), dan dezelfde live antwoordpillen als
   Klassiek. */
.pulse-wiz-bg-preview {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* Kaart 10 (BOARD-pulse-opmaak-hybride.md, punt 2/3): wrapper rond de canvas
   met `position: relative`, zodat het potlood-/uploadknopjespaar er als een
   absoluut gepositioneerd paar overheen kan liggen (kaart 14: geen glas-wrap
   meer, zie .pulse-wiz-classic-photo-edit-wrap) — zelfde constructie als
   .pulse-wiz-classic-photo bij Klassiek/Vrij vormgeven. Vervangt de vroegere
   losse "Stickers en icons"-knoppenrij (.pulse-bg-tools-row, hieronder
   verwijderd: geen aanroepers meer). */
.pulse-wiz-bg-canvas-wrap {
  position: relative;
}

/* Kaart 6 (BOARD-pulse-kaart-proportioneel, 28.08.2026): de `border-radius:
   12px` die hier stond is WEG. De kaart is sinds kaart 5 overal recht (het
   component brengt zelf geen rand, schaduw of ronding meer mee), en juist het
   verschil tussen deze wizard-preview en de app was wat Kim terugstuurde. Twee
   plekken zetten die ronding zelf: hier en .pulse-preview-bg-canvas-wrap
   verderop; beide zijn eraf. `overflow: hidden` blijft wél staan: dat klemt de
   beeld-/tekenlaag binnen het kaartvlak, dat is geen vormgeving.
   ⚠️ MELDING (kaart 6-verslag): het hover-kaartje bij de stappenlijst
   (.pulse-imgpop-canvas, onderaan dit bestand) zet stond tot 28.08.2026 nog op `border-radius: 10px` en staat nu op 0.
   Dat staat niet op deze kaart en is dus met opzet niet meegenomen. */
.pulse-wiz-bg-canvas-wrap qdnapro-pulse-canvas {
  display: block;
  width: 100%;
  /* 28.08.2026: 16/10 en NIET 16/9. De crop die de gebruiker moet doorlopen
     (PULSE_PHOTO_CROP_RATIO in detail.html), het component zelf en de kaart in
     de app staan alle drie op 16/10; alleen de wizard-frames stonden op 16/9.
     Daardoor ontwierp je op een ander vlak dan je terugkreeg, wat precies de
     klacht van Kim was ('de verhoudingen moeten gelijk zijn'). */
  aspect-ratio: 16/10;
  overflow: hidden;
}

.pulse-wiz-bg-preview .pulse-wiz-preview-answers {
  margin: 0;
}

/* Kaart 6, punt g — DE AFGEKNIPTE FOCUSRING van de kleurtegels.
   De ring van een tegel is `box-shadow: 0 0 0 2px var(--focus-ring), 0 0 0 5px
   var(--focus-glow)` (zie _background-picker.scss), dus hij valt 5px BUITEN de
   tegel. De tegels staan tegen de linker-/rechterrand van hun kolom, en die
   kolom zit in twee containers met `overflow: hidden`: het kaartframe
   (.pulse-wiz-preview-frame, dat de Uitleg-sheet klemt) en daarboven nog
   .qdnapro-wizard-step in het gedeelde wizard-modal-component. Van die twee is
   het FRAME de eerste die klemt, dus daar moet de ruimte vandaan komen — het
   gedeelde component blijft ongemoeid (dat heeft andere gebruikers).
   Vandaar 5px lucht binnen de kolom, precies de ringbreedte, alleen om de
   kiezer heen: de kaart zelf houdt zo zijn volle breedte, en alleen de
   tegelstrook schuift 5px naar binnen. Onder is het ook 5px; boven niet nodig,
   daar zit al 10px `gap` naar de canvas. */
.pulse-wiz-bg-preview qdnapro-background-picker {
  padding: 0 5px 5px;
}

/* Kaart 6, punt c — de contrast-waarschuwing onder de kiezer. qdnapro-alert
   zet zelf `display: flex`, en een class verslaat de `[hidden]`-regel uit de
   browserstijl, dus die moet hier expliciet terug. */
.pulse-wiz-bg-contrast {
  margin-top: 2px;
}

.pulse-wiz-bg-contrast[hidden] {
  display: none;
}

/* Kaart M13, punt 1 (Kim 27.08): lege titel in de achtergrond-preview toont
   een gedempte placeholder ("Hier komt jouw titel") i.p.v. een kaal leeg
   vlak - wizApplyQuestionToCanvas() in detail.html zet de klasse zodra het
   gedeelde "Vraag of titel"-veld leeg is. Puur een opacity-demping bovenop
   de tekstkleur die het component zelf al kiest (data-tint, licht/donker
   afhankelijk van de achtergrond) - werkt dus op elke achtergrondsoort,
   geen eigen kleur nodig. qdna-pulse-canvas.js/_pulse-canvas.scss blijven
   onaangeraakt (component-eigen bestanden, buiten deze kaart se scope). */
.qdnapro-pulse-canvas.pulse-wiz-canvas--placeholder .qpc-text {
  opacity: 0.55;
}

/* Kaart 6, punt d/e — DE GEMETEN TINT.
   qdnapro-pulse-canvas kiest zijn titelkleur zelf: uit de helderheid van de
   kleur (drempel 140), uit patterns.json bij een scène, en bij een `image`
   zet het HARD op "light" (witte tekst). Dat laatste klopt niet voor een LICHT
   beeld — de merkachtergrond is daar het voorbeeld van (punt e: de
   placeholder-titel was wit op een lichte plaat). Deze twee host-classes
   overschrijven die keuze met de uitkomst van de middenvlak-meting
   (pulseApplyCanvasTint()/pulseCanvasTintClass() in detail.html).
   Bewust met de EIGEN tokenkleuren van het component (--c-text /
   --c-text-on-action, exact zoals _pulse-canvas.scss ze voor data-tint
   gebruikt), zodat licht/donker één betekenis houdt en er geen hex in JS hoeft.
   Deze regels staan ná components/components in style-v1.scss (zie de kop van
   dit bestand), dus bij gelijke specificiteit winnen ze op volgorde.
   Een expliciete `text-color` blijft altijd sterker: die schrijft het component
   als inline style op .qpc-text, en dat verslaat elke selector hier. */
.qdnapro-pulse-canvas.pulse-canvas-tint-dark .qpc-text {
  color: var(--c-text, #0b0b0d);
}

.qdnapro-pulse-canvas.pulse-canvas-tint-light .qpc-text {
  color: var(--c-text-on-action, #ffffff);
}

/* Kaart 17, besluit 14: het teller-tekstje onder het "Vraag of titel"-veld,
   alleen bij tekst op achtergrond en pas zichtbaar vanaf ~100 tekens. */
.pulse-wiz-question-counter {
  margin: 4px 2px 0;
  font-size: 11px;
  text-align: right;
  color: var(--c-grey-400, #8b88a3);
}

/* Sticker/icon-overlay-preview (kaart 14) binnen de gereserveerde
   .qpc-overlay-laag van qdnapro-pulse-canvas — het component zelf laat die
   laag leeg (zie qdna-pulse-canvas.js, laag 4); dit tekent hem HOST-SIDE,
   gedeeld door de wizard-preview bij aanmaken én bewerken
   (pulseRenderOverlay() in detail.html). Positie/schaal komen als inline
   style mee (per item), dus
   hier staat alleen de vaste vormgeving. */
.qdnapro-pulse-canvas .qpc-overlay .pulse-ov-item {
  position: absolute;
  pointer-events: none;
}

.qdnapro-pulse-canvas .qpc-overlay .pulse-ov-item-img,
.qdnapro-pulse-canvas .qpc-overlay .pulse-ov-item-lottie {
  display: block;
  width: 100%;
  /* `height` MOET hier expliciet staan, ook al doet aspect-ratio het werk:
     qdnapro-lottie zet op zichzelf `height: var(--ql-size)` (48px) en een
     expliciete hoogte wint ALTIJD van aspect-ratio, ongeacht specificiteit.
     Zonder deze regel werd elk geplaatst icoon platgedrukt tot een streep —
     dezelfde val als op de kaartfoto (28.08.2026, daar inline opgelost). */
  height: auto;
  aspect-ratio: 1/1;
  object-fit: contain;
}

/* Vrij vormgeven: een eenvoudige preview van titel + inhoud (besluit 9-10) —
   bewust GEEN opgemaakte kaart-schil, dat zou een tweede, afwijkende
   weergave van dezelfde WYSIWYG-inhoud beloven. */
.pulse-wiz-free-preview {
  padding: 12px;
  border-radius: 10px;
  background: var(--c-bg-subtle-purple, #f3f4fb);
  min-height: 108px;
}

.pulse-wiz-free-preview-title {
  display: block;
  margin-bottom: 6px;
  font-size: 13px;
  font-weight: 700;
  color: var(--c-text-heading, #1c1e2a);
}

.pulse-wiz-free-preview-body {
  font-size: 12px;
  line-height: 17px;
  color: var(--c-grey-500, #6b6884);
  /* De WYSIWYG-inhoud kan eigen opmaak dragen (vetjes, lijstjes, ...);
     overerven i.p.v. overschrijven, zodat die opmaak zichtbaar blijft. */
}

.pulse-wiz-free-preview-body p {
  margin: 0 0 6px;
}

.pulse-wiz-free-preview-body p:last-child {
  margin-bottom: 0;
}

/* De preview zit al in 12px padding; de pillen hoeven dat niet nogmaals. */
.pulse-wiz-free-preview .pulse-wiz-preview-answers {
  margin: 10px 0 0;
}

/* Kaart 17b, gebrek 1: `el.hidden = true` (wizApplyLayoutVisibility/
   editApplyLayoutVisibility) werkt op deze drie panelen NIET vanzelf —
   zelfde val als hierboven bij .pulse-steps-foot[hidden]: de UA-regel
   [hidden]{display:none} verliest altijd van een auteursregel die op
   hetzelfde element `display` zet, ongeacht specificiteit of bronvolgorde
   (author normal wint altijd van user-agent normal). .pulse-wiz-classic-
   preview en .pulse-wiz-bg-preview zetten allebei display:flex, dus zonder
   deze eigen [hidden]-override bleven bij layout=classic zowel de
   klassieke kaart ALS de achtergrond-canvas + -kiezer + een tweede set
   preview-pillen zichtbaar (en omgekeerd bij layout=background). Alle drie
   staan hier voor de zekerheid samen, ook .pulse-wiz-free-preview, die
   vandaag geen eigen `display` zet maar dat morgen kan krijgen. Gedeeld
   door de wizard (stap 2), zowel bij aanmaken als in bewerkstand
   (kaart 21: dezelfde #pulse-wiz-*-DOM voor allebei). */
.pulse-wiz-classic-preview[hidden],
.pulse-wiz-bg-preview[hidden],
.pulse-wiz-free-preview[hidden] {
  display: none;
}

/* Kaart 2 (BOARD-pulse-opmaak-hybride, 25.08.2026): zelfde val als
   hierboven, nu voor de vraag/subtekst/pillen BINNEN .pulse-wiz-classic-
   preview — die krijgen bij "free" hun eigen [hidden] (zie
   wizApplyLayoutVisibility()), maar .pulse-wiz-preview-q/-sub/-answers
   zetten allemaal zelf al `display` (block/flex) via een gewone klasse-
   regel, die zonder deze override zou winnen van de UA [hidden]-regel. */
.pulse-wiz-preview-q[hidden],
.pulse-wiz-preview-sub[hidden],
.pulse-wiz-preview-answers[hidden] {
  display: none;
}

/* Kaart M11: hetzelfde val voor het icoon-blok (ook een gewone klasse-regel
   die `display: flex` zet, zie hierboven). */
.pulse-wiz-preview-icon-block[hidden] {
  display: none;
}

.pulse-wiz-explain-preview {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-bottom: 6px;
  transform: translateY(100%);
  transition: transform 0.3s ease;
  box-shadow: var(--shadow-card, 0 1px 2px rgba(20, 25, 80, 0.04), 0 4px 16px rgba(20, 25, 80, 0.08));
}
.pulse-wiz-explain-preview.is-open {
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .pulse-wiz-explain-preview {
    transition: none;
  }
}

.pulse-wiz-explain-sheet {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
  padding: 20px 16px 16px;
  border-radius: 20px 20px 6px 6px;
  background: var(--c-success-500, #12805e);
}
.pulse-wiz-explain-sheet[data-tone=wrong] {
  background: var(--c-warn-red-500, #dc2626);
}
.pulse-wiz-explain-sheet-handle {
  width: 32px;
  height: 4px;
  border-radius: var(--r-pill, 999px);
  background: var(--c-white-45, rgba(255, 255, 255, 0.45));
}
.pulse-wiz-explain-sheet-icon {
  color: var(--c-text-on-action, #fff);
}
.pulse-wiz-explain-sheet-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--c-text-on-action, #fff);
}
.pulse-wiz-explain-sheet-body {
  margin: 0;
  max-width: 260px;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--c-text-on-action, #fff);
}
.pulse-wiz-explain-sheet-btn {
  margin-top: 4px;
  align-self: stretch;
}

/* Kims acceptatietest 26.08: het schakeltje staat onder het frame als
   gewone paneelinhoud; [hidden] moet expliciet winnen van de eigen
   display-regels van qdnapro-segment (zelfde [hidden]-valkuil als
   .pulse-opt-view-seg, kaart 5/22). */
.pulse-wiz-explain-tone-seg {
  align-self: center;
}

.pulse-wiz-explain-tone-seg[hidden] {
  display: none;
}

.pulse-wiz-preview-trigger {
  display: none;
}

.pulse-wiz-preview-close {
  display: none;
}

.pulse-wiz-preview-scrim {
  display: none;
}

@media (max-width: 600px) {
  .pulse-wiz-hdr {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "title close" "seg seg";
    row-gap: 10px;
  }
  .pulse-wiz-hdr-left {
    grid-area: title;
  }
  .pulse-wiz-close-btn {
    grid-area: close;
  }
  .pulse-wiz-edit-seg-wrap {
    grid-area: seg;
    justify-self: stretch;
    min-width: 0;
  }
  .pulse-wiz-edit-seg-wrap qdnapro-segment {
    width: 100%;
    min-width: 0;
  }
  .pulse-wiz-hdr:has(.pulse-wiz-edit-seg-wrap[hidden]) {
    row-gap: 0;
  }
  .pulse-wiz-preview-trigger {
    display: inline-flex;
    margin-bottom: 14px;
  }
  .pulse-wiz-step2-preview {
    display: none;
  }
  .pulse-wiz-step2-preview.pulse-wiz-preview-open {
    display: flex;
    position: fixed;
    inset: 16px;
    z-index: 5;
    overflow-y: auto;
    padding: 44px 16px 16px;
    border-radius: 16px;
    background: var(--overlay-window-bg, #fff);
    box-shadow: var(--overlay-frame-shadow, 0 4px 4px rgba(0, 0, 0, 0.3), 0 8px 12px 6px rgba(0, 0, 0, 0.15));
  }
  .pulse-wiz-preview-scrim.pulse-wiz-preview-open {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 4;
    background: var(--overlay-scrim, rgba(11, 11, 13, 0.45));
  }
  .pulse-wiz-step2-preview .pulse-wiz-preview-close {
    display: inline-flex;
    position: absolute;
    top: 10px;
    right: 10px;
  }
}
/* Stap-2-foutmelding: zelfde stijl als de gedeelde #pulse-wiz-error op stap 3
   (.pulse-sm-error hierboven regelt het uiterlijk al), hier alleen de marge
   tot de laatste veldblok erboven. */
#pulse-wiz-step2-error {
  margin-top: 16px;
}

/* Stap 3: reacties-schakelaar. qdnapro-list-row levert de rij al (label +
   hint + trailing-slot); alleen wat lucht erboven, zelfde maat als de andere
   .pulse-sm-field-blokken. */
.pulse-wiz-comments-row {
  margin-top: 18px;
}

/* Kim 02.09.2026: keylines tussen planning / reacties / score, zodat de kolom
   drie onderdelen toont in plaats van een doorlopende lijst velden. Het
   bestaande atoom qdnapro-divider tekent de lijn; hier alleen de ruimte
   eromheen. De rij eronder draagt zelf al 18px, dus die kant is smaller. */
.pulse-wiz-keyline {
  display: block;
  margin: 18px 0 0;
}

/* Het Score-blok: kopje, uitleg, en de verdubbelaar als losse tegel
   (qdnapro-radio-tile in toggle-stand). Verhuisd van de antwoordenbalk op
   stap 2. */
.pulse-wiz-score {
  margin-top: 18px;
}

.pulse-wiz-score[hidden] {
  display: none;
}

.pulse-wiz-score .pulse-sm-label {
  display: block;
}

.pulse-wiz-score-lead {
  margin: 4px 0 12px;
}

.pulse-wiz-score .pulse-sm-hint {
  margin-top: 10px;
}

/* --- Doelgroeppaneel ---------------------------------------------------- */
.pulse-audience-seg {
  margin-bottom: 16px;
}

.pulse-audience-block[hidden] {
  display: none;
}

.pulse-audience-field {
  margin-bottom: 14px;
}

.pulse-audience-summary {
  margin: 4px 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.pulse-audience-empty {
  margin: 0;
  font-size: 12.5px;
  color: var(--c-grey-500, #6b6884);
}

.pulse-audience-note {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0;
  padding: 12px 14px;
  background: #eef0fb;
  border-radius: 10px;
  font-size: 13px;
  line-height: 19px;
  color: #40499a;
}

.pulse-audience-note qdnapro-icon {
  flex-shrink: 0;
  margin-top: 1px;
}

.pulse-audience-foot {
  margin-top: 16px;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.pulse-audience-status {
  font-size: 12.5px;
  color: #1d9e75;
}

.pulse-audience-status[hidden] {
  display: none;
}

.pulse-audience-error {
  font-size: 12.5px;
  color: #d8442e;
}

.pulse-audience-error[hidden] {
  display: none;
}

/* --- Voorbeeld ("Bekijk als deelnemer") --------------------------------- */
.pulse-preview-day {
  margin: 22px 0 10px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--c-grey-500, #6b6884);
}

.pulse-preview-day:first-child {
  margin-top: 4px;
}

.pulse-preview-card {
  border: 1px solid var(--c-border-soft, #e5e5ea);
  border-radius: 14px;
  padding: 16px 18px 18px;
  margin-bottom: 10px;
  background: var(--c-bg-card, #fff);
}

.pulse-preview-kind {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--c-grey-500, #6b6884);
  margin-bottom: 6px;
}

.pulse-preview-title {
  margin: 0 0 8px;
  font-size: 16px;
  line-height: 22px;
  color: var(--c-brand-purple, #394290);
}

.pulse-preview-body {
  font-size: 13.5px;
  line-height: 21px;
  color: var(--c-text-body, #1c1e2a);
}

.pulse-preview-body p:last-child {
  margin-bottom: 0;
}

/* Kaart 6 (BOARD-pulse-pwa-inhaalslag): `position: relative` zodat de
   bewegende-icons-laag (.pulse-preview-image-overlay) er exact overheen kan
   liggen, procentueel t.o.v. dezelfde box als de <img> — geen vaste
   aspect-ratio, de foto behoudt gewoon zijn eigen verhouding. */
.pulse-preview-image {
  position: relative;
  margin-top: 12px;
}

/* 28.08.2026: ronding eraf. Besluit 8 maakte beeld in een Pulse-kaart overal een
   rechte band, ook de foto; dit voorbeeld hoorde daar nog niet bij. */
.pulse-preview-image img {
  max-width: 100%;
  border-radius: 0;
  display: block;
}

/* Kaart 6 — bewegende icons op de kaartfoto (image_markup_json). Zelfde
   idioom als de .qpc-overlay-laag van qdnapro-pulse-canvas hieronder
   (position absolute, pointer-events none op de laag zelf, geen klik hoort
   een speler te raken). Positie/breedte komen als inline style per item mee
   (pulsePreviewMarkupOverlay() in detail.html), hier alleen de vaste vorm. */
.pulse-preview-image-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.pulse-preview-image-overlay-item {
  position: absolute;
  pointer-events: none;
}

.pulse-preview-image-overlay-item qdnapro-lottie {
  display: block;
  width: 100%;
  /* 28.08.2026: `height:100%` en NIET `aspect-ratio:1/1`. Het component zet
     zichzelf de klasse `qdnapro-lottie` en die draagt
     `height:var(--ql-size)` (48px). Een expliciete hoogte wint van
     aspect-ratio, dus elke sticker werd platgedrukt tot een streep (gemeten:
     424x48 terwijl hij vierkant hoort). Het item zelf krijgt nu zijn hoogte
     inline mee, net als in de app (pulsePreviewMarkupOverlay in detail.html);
     deze regel laat de speler die hoogte vullen. */
  height: 100%;
  object-fit: contain;
}

/* Kaart 6 — layout "achtergrond" in het deelnemer-voorbeeld: dezelfde
   qdnapro-pulse-canvas als de wizard-preview (.pulse-wiz-bg-canvas-wrap
   hierboven), eigen wrapper omdat die selector er niet op past. */
/* 28.08.2026 (eindverificatie): dit voorbeeld is bedoeld om te tonen wat de
   DEELNEMER straks ziet, en in de app staat het beeld rand-tot-rand in de kaart
   (margin 0 -16px + width calc(100% + 32px), zie _pwa-current.scss "Punt 2").
   Hier stond het nog binnen de 18px padding van .pulse-preview-card, dus het
   voorbeeld week af van de app op precies het punt waarvoor dit hele bord
   bestaat. De negatieve marges hieronder halen de kaartpadding er weer af. */
.pulse-preview-bg-canvas-wrap {
  margin: 4px -18px 0;
  width: calc(100% + 36px);
  max-width: calc(100% + 36px);
}

/* Kaart 6: `border-radius: 12px` is hier ook weg — zelfde reden als bij
   .pulse-wiz-bg-canvas-wrap hierboven (de kaart is overal recht; het verschil
   tussen wizard, voorbeeld en app was juist de klacht). */
.pulse-preview-bg-canvas-wrap qdnapro-pulse-canvas {
  display: block;
  width: 100%;
  /* 28.08.2026: 16/10 en NIET 16/9. De crop die de gebruiker moet doorlopen
     (PULSE_PHOTO_CROP_RATIO in detail.html), het component zelf en de kaart in
     de app staan alle drie op 16/10; alleen de wizard-frames stonden op 16/9.
     Daardoor ontwierp je op een ander vlak dan je terugkreeg, wat precies de
     klacht van Kim was ('de verhoudingen moeten gelijk zijn'). */
  aspect-ratio: 16/10;
  overflow: hidden;
}

/* W6 (fase 4) — de videostap in het voorbeeld. Een aanduiding, geen speler: in de
   backoffice geen YouTube-kader inladen (zie de opmerking in detail.html). */
.pulse-preview-video {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #eef0fb;
  font-size: 12.5px;
  line-height: 18px;
  color: #40499a;
}

.pulse-preview-video qdnapro-icon {
  flex-shrink: 0;
}

.pulse-preview-options {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 12px;
}

.pulse-preview-opt {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 14px;
  border: 1px solid var(--c-border-soft, #e5e5ea);
  border-radius: 10px;
  background: var(--c-bg-card, #fff);
  font-size: 13.5px;
  text-align: left;
  color: var(--c-text-body, #1c1e2a);
  cursor: pointer;
  transition: border-color 120ms ease, background 120ms ease;
}

.pulse-preview-opt:hover {
  border-color: var(--c-purple-300, #a9adde);
  background: #f7f8ff;
}

/* Kaart 6 — de LOKALE selectie-stand van een meerkeuze-kennisvraag, vóór de
   bevestigknop: nog geen oordeel (dat blijft is-correct/is-wrong), alleen
   "dit heb ik aangevinkt". Na .pulse-preview-opt:hover in de bron zodat hij
   bij gelijke specificiteit wint over de hover-tint. */
.pulse-preview-opt.is-selected {
  border-color: var(--c-brand-purple, #394290);
  background: #eef0fb;
}

.pulse-preview-opt.is-correct {
  border-color: #1d9e75;
  background: #eafaf3;
  color: #10604a;
}

.pulse-preview-opt.is-wrong {
  border-color: #d8442e;
  background: #fdeeeb;
  color: #8e2718;
}

.pulse-preview-opt qdnapro-icon {
  flex-shrink: 0;
}

/* Kaart 6 — de bevestigknop van een meerkeuze-kennisvraag, vlak onder de
   opties; verdwijnt na bevestigen (zie pulsePreviewConfirmMulti() in
   detail.html), zelfde [hidden]-regel als .pulse-preview-feedback hieronder. */
.pulse-preview-multi-confirm {
  margin-top: 10px;
}

.pulse-preview-multi-confirm[hidden] {
  display: none;
}

.pulse-preview-feedback {
  margin: 12px 0 0;
  padding: 12px 14px;
  border-radius: 10px;
  background: #eef0fb;
  font-size: 13px;
  line-height: 19px;
  color: #40499a;
}

.pulse-preview-feedback[hidden] {
  display: none;
}

.pulse-preview-hint {
  margin: 10px 0 0;
  font-size: 12px;
  color: var(--c-grey-500, #6b6884);
}

.pulse-preview-empty {
  padding: 40px 8px;
  text-align: center;
  color: var(--c-grey-500, #6b6884);
}

/* --- Statistieken (W7) -------------------------------------------------- */
/* Het paneel loopt over BEIDE kolommen van de pagina-grid. Een gegroepeerde
   staafgrafiek in de 340px-kolom naast de tijdlijn is onleesbaar, dus hij komt
   over de volle breedte onder de twee panelen te staan. */
/* --- Gesprekken / moderatie (F2-W3) ------------------------------------- */
/* Volle breedte, net als de statistiek: een gesprek per stap is een brede lijst,
   geen zijkolom. Het paneel wordt alleen gerenderd voor een BEHEERDER — een
   kijker heeft hier niets te zoeken, voor hem is het gesprek in de app de plek. */
.pulse-mod-panel {
  grid-column: 1/-1;
}

.pulse-mod-setting {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 18px;
  padding: 12px 14px;
  margin: 4px 0 20px;
  border: 1px solid #ecebf4;
  border-radius: 12px;
  background: #fbfbfe;
}

.pulse-mod-setting-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 220px;
  flex: 1 1 320px;
}

.pulse-mod-setting-label {
  font-size: 13.5px;
  font-weight: 600;
  color: #2f2d45;
}

.pulse-mod-setting-hint {
  font-size: 12px;
  color: #6b6884;
  line-height: 1.45;
}

.pulse-mod-setting-control {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
}

/* ⚠️ Zonder een breedte HIER wordt zo'n veld 96px breed en is zijn eigen inhoud
   onleesbaar. `qdnapro-select` staat op `width: 100%`: het component laat zich
   bewust door zijn omhulsel opmeten. Maar dit omhulsel is een flex-item zonder
   basis, dus het krimpt tot de inhoud, en die inhoud vraagt zijn breedte weer
   aan het omhulsel. Dat loopt rond en eindigt op de minimale maat: "Onbeperkt"
   werd "On…" en "09:00" werd "0(…", terwijl er rechts een halve pagina leeg
   stond. De breedte hoort dus op het omhulsel, niet in het component.
   De drie velden staan op dezelfde maat, anders wordt de rechterkolom rafelig.

   ⚠️ Alleen DIRECTE kinderen: de trigger ván de select is zelf ook een
   `qdnapro-input`, en die hoort de volle breedte van zijn select te houden. */
.pulse-mod-setting-control > qdnapro-select,
.pulse-mod-setting-control > qdnapro-input {
  flex: 0 0 auto;
  width: 190px;
}

.pulse-mod-saved {
  font-size: 12px;
  color: #1d9e75;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: opacity 0.2s ease;
}

.pulse-mod-saved[hidden] {
  display: none;
}

.pulse-mod-step {
  border: 1px solid #efeef6;
  border-radius: 12px;
  padding: 14px 16px 12px;
  margin-bottom: 14px;
}

.pulse-mod-step:last-child {
  margin-bottom: 0;
}

.pulse-mod-step-head {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 10px;
}

.pulse-mod-step-title {
  font-size: 13.5px;
  font-weight: 600;
  color: #2f2d45;
  flex: 1 1 auto;
  min-width: 0;
  overflow-wrap: anywhere;
}

.pulse-mod-step-count {
  font-size: 11.5px;
  color: #8a87a0;
  white-space: nowrap;
}

.pulse-mod-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 12px;
}

.pulse-mod-empty-step {
  font-size: 12.5px;
  color: #8a87a0;
  margin: 0 0 12px;
}

.pulse-mod-c {
  border-radius: 10px;
  background: #f7f7fb;
  padding: 9px 11px;
}

.pulse-mod-c.is-admin {
  background: #f3f2fd;
  border: 1px solid #e6e3fa;
}

.pulse-mod-c-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
}

.pulse-mod-c-author {
  font-size: 12.5px;
  font-weight: 600;
  color: #2f2d45;
}

.pulse-mod-c-time {
  font-size: 11.5px;
  color: #8a87a0;
}

.pulse-mod-c-spacer {
  flex: 1 1 auto;
}

.pulse-mod-c-body {
  margin: 0;
  font-size: 13px;
  color: #3a3852;
  line-height: 1.5;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.pulse-mod-c.is-deleted .pulse-mod-c-body {
  color: #9d9ab0;
  text-decoration: line-through;
}

.pulse-mod-c-gone {
  margin: 6px 0 0;
  font-size: 11.5px;
  color: #8a87a0;
  display: flex;
  align-items: flex-start;
  gap: 6px;
  line-height: 1.45;
}

.pulse-mod-c-gone qdnapro-icon {
  flex-shrink: 0;
  margin-top: 1px;
}

/* Het antwoordveld WRAPT op smal in plaats van te krimpen. Zonder die wrap
   perst de knop het invoerveld samen tot een kolom van enkele tekens, en dan
   loopt de placeholder over tien regels — de auto-hoogte van qdnapro-input
   maakt daar een blok van ~270px van (live gemeten in een smal venster).
   De ondergrens van 260px en max-rows="4" op het veld zetten dat allebei vast. */
.pulse-mod-reply {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 10px;
}

.pulse-mod-reply qdnapro-input {
  flex: 1 1 260px;
  min-width: 0;
}

.pulse-mod-reply qdnapro-button {
  flex-shrink: 0;
  margin-top: 3px;
}

.pulse-mod-modal-label {
  display: block;
  margin: 14px 0 6px;
  font-size: 12.5px;
  font-weight: 600;
  color: #2f2d45;
}

.pulse-mod-modal-error {
  margin: 8px 0 0;
  font-size: 12.5px;
  color: #c0392b;
}

.pulse-mod-modal-error[hidden] {
  display: none;
}

.pulse-mod-skeleton {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.pulse-mod-skeleton[hidden] {
  display: none;
}

.pulse-mod-skel {
  border-radius: 12px;
  background: linear-gradient(90deg, #f2f1f8 25%, #e9e8f3 37%, #f2f1f8 63%);
  background-size: 400% 100%;
  animation: pulse-stats-shimmer 1.3s ease-in-out infinite;
  height: 92px;
}

@media (prefers-reduced-motion: reduce) {
  .pulse-mod-skel {
    animation: none;
  }
}
.pulse-mod-error {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 12px 14px;
  border-radius: 12px;
  background: #fdf3f2;
  color: #a83a2c;
  font-size: 13px;
}

.pulse-mod-error[hidden] {
  display: none;
}

.pulse-mod-error qdnapro-icon {
  flex-shrink: 0;
}

.pulse-mod-error span {
  flex: 1 1 220px;
}

.pulse-mod-note {
  font-size: 12.5px;
  color: #6b6884;
  margin: 0;
}

/* De .pulse-mod-* sectie hierboven blijft ONGEMOEID staan tot de herbouwde
   view (kaart 4) hem niet meer gebruikt — deze sectie komt er alleen ONDER
   bij, in lijn met de kaartopdracht.

   TWEE LAGEN hieronder:

   A. Chat-port (.pcs-*) — 1:1 geport uit
      app_api_qdnav2/src/REX/Resources/Scss/_pwa-current.scss (regels
      ~4388-5256, alles onder .pcs-list t/m .pcs-cancel-edit:active). Waarden,
      volgorde en waarschuwingscommentaren zijn letterlijk overgenomen; alleen
      drie dingen zijn vertaald:
        1. var(--c-text, #hex) → var(--c-text-body, #hex) — zelfde hex-terugval,
           alleen de tokennaam verschilt tussen de twee projecten.
        2. Sheet-specifieke regels ([data-pulse-comments-sheet], .bs-*,
           --bs-pad-x) zijn NIET geport: de chat leeft hier in een paneel, geen
           bottom sheet. .pcs-editstrip's --bs-pad-x-breedteconstructie is
           vervangen door gewone volle breedte binnen het paneel (geen negatieve
           marge nodig, er is geen sheet-zijpadding om te compenseren).
        3. Het actie-blauw (var(--c-action-500, #4652f3)) is NIET vertaald naar
           backoffice-paars — dit paneel IS de app-chat, bewust niet
           backoffice-huisstijl (citaat-keyline, citaat-auteur, "toon oudere
           reacties", verstuurknop-groei).
      De twee samengestelde specificiteit-selectors (.pcs-comment__sticker met
      qdnapro-lottie, .pcs-send met de drie-klassen-breedteregel) zijn
      overgenomen INCLUSIEF hun waarschuwingscommentaar: dat zijn geen
      opsmuk-comments maar de reden dat de regel eronder niet zomaar
      vereenvoudigd mag worden.

      Bewust WEL meegenomen, buiten de letterlijke naamlijst uit de kaartbrief
      (".pcs-list, .pcs-meer, .pcs-comment, .pcs-quote, .pcs-compose,
      .pcs-emoji-row/-btn, .pcs-form, .pcs-left, .pcs-field, .pcs-send,
      .pcs-editstrip") maar wél "__-kinderen van .pcs-comment" of onmisbaar
      voor de door kaart 4 gevraagde functies (drie-puntjes-menu, Antwoorden,
      hartje, bewerken, @mention, "gemarkeerd"/"geflitst" bij een sprong naar
      een citaat): .pcs-note/.pcs-error-note, .pcs-comment__edited,
      .pcs-comment__menu-btn, .pcs-comment__foot, .pcs-comment__reply (incl.
      :active/:disabled), .pcs-comment__like-wrap/-count, .pcs-mention,
      .pcs-cancel-edit, .pcs-comment--bewerkt/--flits/--doelwit (+ de
      @keyframes pcs-comment-flits). Reden: kaart 6 (eindverificatie) noemt
      pariteit met de .pcs-*-bron expliciet een SCOPE-eis, en zonder deze
      __-kinderen zou de helft van een reactie-rij onopgemaakt blijven.
      Gemeld i.p.v. stilzwijgend toegevoegd — check dit tegen kaart 4's
      uiteindelijke markup.

      BEWUST NIET meegenomen (fase 2 of sheet/dialoog-specifiek, dus hier
      niet van toepassing): .pcs-pick/.pcs-pick__* (sticker/gif-conceptstrip
      in de composer), .pcs-error (bijna-duplicaat van .pcs-error-note, hoort
      bij diezelfde conceptstrip), .pcs-plus-menu en
      qdnapro-popover[data-pulse-plus-sheet] (het +-menu voor sticker/gif),
      en alles onder "Pulse brede dialoog" / .pcd-comments (de qdnapro-popover
      dialoogvariant van de sheet — ook een overlay, geen paneel).

      GEVONDEN, NIET OPGELOST (bug in de PWA-bron, hoort niet in deze kaart
      gerepareerd te worden — zie het rapport): in _pwa-current.scss staat
      `.pcs-comment__menu-btn` twee keer gedefinieerd (~regel 5173 met volledige
      flex/padding/kleur/hover-opmaak, en nogmaals ~regel 5382 met alleen
      `margin-left: auto`). Het commentaar bij de tweede regel beweert dat de
      eerste, volledige regel is weggehaald omdat het knopje nu een component
      is — maar die eerste regel staat nog gewoon in het bestand. Hieronder is
      alleen de eerste, volledige regel geport (die geeft een correcte
      basisopmaak ongeacht of kaart 4 hier een kaal `<button>` of een
      qdnapro-icon-btn-component van maakt); de dode tweede regel is niet
      overgenomen.

   B. Paginalaag (.pgs-*) — nieuw, prefix volgens het klassencontract uit de
      kaartbrief: werkbalk, lijst+detail-split, stappenrij en detailkop/-
      draad. Alleen bestaande tokens (zie backoffice2/scss/components/v2/
      design-tokens/_design-tokens.scss); geen mixins hergebruikt omdat dit
      bestand zelf overal met platte @media (max-width: …)-blokken werkt in
      plaats van breakpoint-mixins (zelfde stijl aangehouden, zie o.a. de
      .pulse-detail-body-regel hierboven in dit bestand). */
.pcs-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.pcs-list:empty {
  display: none;
}

/* "Toon oudere reacties" — bovenaan de lijst, tekstknop i.p.v. volle knop
   (navigatie binnen de lijst, geen actie op een bericht). Zie de bron voor de
   volledige toelichting. */
.pcs-meer {
  display: block;
  width: 100%;
  margin: 0 0 4px;
  padding: 10px 8px;
  border: none;
  border-radius: 10px;
  background: none;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  color: var(--c-action-500, #4652f3);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.pcs-meer:active {
  background: var(--c-bg-subtle-hover, #f0f1f2);
}

.pcs-meer[disabled] {
  color: var(--c-text-muted, #6b7280);
  cursor: default;
}

.pcs-note,
.pcs-error-note {
  font-size: 13px;
  color: var(--c-text-muted, #6b7280);
}

.pcs-error-note {
  color: var(--c-signal-red-text, #c65a5a);
}

.pcs-comment {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.pcs-comment qdnapro-avatar {
  flex: 0 0 auto;
}

.pcs-comment__text {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.pcs-comment__head {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  /* Zonder min-width: 0 weigert deze rij smaller te worden dan zijn inhoud, en
     duwt een lange naam + beheerder-badge + tijd het drie-puntjes-menu voorbij
     de rechterrand van het paneel. De rij mag wél afbreken. */
  min-width: 0;
}

.pcs-comment__author {
  /* Een lange naam breekt af i.p.v. de rij op te rekken. `anywhere` en niet
     `break-word`: een lange naam zonder spaties (of een geplakte URL) moet ook
     kunnen breken. */
  min-width: 0;
  overflow-wrap: anywhere;
}

.pcs-comment__author {
  font-size: 14px;
  font-weight: 600;
  color: var(--c-text-body, #0b0b0d);
}

.pcs-comment__time {
  font-size: 12px;
  color: var(--c-text-muted, #6b7280);
}

/* pre-wrap: een reactie is platte tekst, maar getikte regeleinden zijn wél
   betekenis. anywhere breekt een geplakte lange URL af i.p.v. het paneel open
   te duwen. */
.pcs-comment__body {
  font-size: 14px;
  line-height: 1.5;
  color: var(--c-text-body, #0b0b0d);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

/* Een sticker IN een geplaatste reactie. Geen achtergrond/kader: de stickers
   hebben zelf een transparante rand.
   ⚠️ SAMENGESTELDE class-selector (`.pcs-comment__sticker.qdnapro-lottie`,
   specificiteit 0-2-0) en dat is expres: qdnapro-lottie zet zijn eigen default
   ook via een class-selector (`.qdnapro-lottie { --ql-size: 48px; }`), en die
   component-CSS wordt NA style-v1.css aan <head> toegevoegd. Twee
   class-selectors op hetzelfde element met gelijke specificiteit laten dan de
   LAATSTE in de broncode winnen — dat is bij gelijke specificiteit het
   component, niet deze regel. Met de samengestelde selector (0-2-0) wint deze
   regel altijd, ongeacht laadvolgorde. Zie _pwa-current.scss voor de volledige
   meting die dit vaststelde (dezelfde race trof ook .pcs-pick__thumb daar). */
.pcs-comment__sticker.qdnapro-lottie {
  --ql-size: 120px;
  display: block;
  /* Negatieve linkermarge haalt de witruimte weg die in de stickertekeningen
     zelf zit (gemeten over 24 stickers: gemiddeld 11,6% links leeg); 14px is
     de mediaan van 120px, waardoor de meeste stickers uitlijnen met de tekst. */
  margin: 2px 0 4px -14px;
}

/* Een GIF in een geplaatste reactie. `aspect-ratio` komt als inline style mee
   vanuit de renderende JS (gif_ratio, of breedte/hoogte als terugval) — dat
   voorkomt een layout-sprong zodra het bestand laadt. */
.pcs-comment__gif {
  display: block;
  width: 100%;
  max-width: 220px;
  margin: 2px 0 4px;
  border-radius: 12px;
  overflow: hidden;
  background: var(--c-grey-100, #e7e9ec);
}

.pcs-comment__gif-media {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.pcs-comment__body--deleted {
  font-style: italic;
  color: var(--c-text-muted, #6b7280);
}

/* Achter de tijd in de kop, alleen bij edited && !deleted. */
.pcs-comment__edited {
  font-size: 12px;
  font-style: italic;
  color: var(--c-text-muted, #6b7280);
}

/* Het drie-puntjes-knopje, uiterst rechts in de kop (mine && !deleted). Geen
   negatieve margin-right: die trekt het knopje bij een lange naam + badge +
   tijd voorbij de rand van het paneel. */
.pcs-comment__menu-btn {
  flex: 0 0 auto;
  margin-left: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 6px;
  margin-top: -6px;
  margin-bottom: -6px;
  border: none;
  background: transparent;
  border-radius: 8px;
  color: var(--c-text-muted, #6b7280);
  cursor: pointer;
}

.pcs-comment__menu-btn:hover,
.pcs-comment__menu-btn:focus-visible {
  background: var(--c-bg-subtle-hover, #f0f1f2);
  outline: none;
}

/* Antwoorden + hartje, onder de body van een niet-verwijderde reactie. */
.pcs-comment__foot {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 2px;
}

.pcs-comment__reply {
  padding: 0;
  border: none;
  background: transparent;
  font-size: 13px;
  font-weight: 600;
  color: var(--c-text-muted, #6b7280);
  cursor: pointer;
}

.pcs-comment__reply:hover,
.pcs-comment__reply:focus-visible {
  color: var(--c-text-body, #0b0b0d);
  outline: none;
}

.pcs-comment__reply:active {
  color: var(--c-text-body, #0b0b0d);
  transform: scale(0.96);
}

.pcs-comment__reply:disabled {
  color: var(--c-text-disabled, #898e99);
  cursor: not-allowed;
}

/* .pcs-comment__like is een qdnapro-favorite-button (mode="heart") — dat
   component brengt zijn eigen box/hover/active/pop-CSS al mee. Hier blijft
   alleen de wrapper-layout over: hartje + teller naast elkaar. */
.pcs-comment__like-wrap {
  display: flex;
  align-items: center;
  gap: 4px;
}

.pcs-comment__like-count {
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  color: var(--c-text-muted, #6b7280);
}

/* De "@Naam "-mention vooraan een antwoord — puur styling, geen link. */
.pcs-mention {
  color: var(--c-brand-purple, #40499a);
  font-weight: 600;
}

/* De reactie die je NU bewerkt, gemarkeerd in de lijst. */
.pcs-comment--bewerkt {
  background: var(--c-action-08, rgba(70, 82, 243, 0.08));
  box-shadow: inset 3px 0 0 var(--c-action-500, #4652f3);
  border-radius: 8px;
  padding: 6px 8px;
  margin: -6px -8px;
}

/* Eenmalige achtergrond-puls op de reactie waar je na een sprong (tik op een
   citaatblok) op landt. Dooft vanzelf uit in 1,2s. */
.pcs-comment--flits {
  border-radius: 8px;
  animation: pcs-comment-flits 1.2s ease-out;
}

@keyframes pcs-comment-flits {
  0% {
    background-color: var(--c-action-12, rgba(70, 82, 243, 0.12));
  }
  100% {
    background-color: var(--c-action-08, rgba(70, 82, 243, 0.08));
  }
}
@media (prefers-reduced-motion: reduce) {
  .pcs-comment--flits {
    animation: none;
  }
}
/* De BLIJVENDE markering van de reactie waar de laatste sprong op landde.
   Verpaarst lokaal de twee grijs-tokens (citaatblok, like-hover) zodat niets
   binnen de rij nog tegen de paarse vlakte vloekt; rgba, dus dark mode werkt
   zonder aparte regel. */
.pcs-comment--doelwit {
  background-color: var(--c-action-08, rgba(70, 82, 243, 0.08));
  border-radius: 12px;
  padding: 8px;
  margin: -8px;
  --c-bg-subtle-hover: var(--c-action-12, rgba(70, 82, 243, 0.12));
  --c-grey-50: var(--c-action-12, rgba(70, 82, 243, 0.12));
}

/* De annuleerknop in de bewerk-stand, alleen zichtbaar tijdens bewerken. */
.pcs-cancel-edit {
  align-self: center;
  padding: 0 4px;
  border: none;
  background: transparent;
  font-size: 13px;
  font-weight: 600;
  color: var(--c-text-muted, #6b7280);
  cursor: pointer;
}

.pcs-cancel-edit[hidden] {
  display: none;
}

.pcs-cancel-edit:hover,
.pcs-cancel-edit:focus-visible {
  color: var(--c-text-body, #0b0b0d);
  outline: none;
}

.pcs-cancel-edit:active {
  color: var(--c-text-body, #0b0b0d);
  transform: scale(0.96);
}

/* Citaatblok BOVEN de eigen tekst in een antwoord-reactie (WhatsApp-model): een
   <button> zodat een tik erop naar het origineel kan springen, volle breedte
   van de tekstkolom. Auteur en tekst staan zonder wikkel-element in de DOM;
   flex-wrap + een volle-breedte flex-basis op de auteursregel forceert die naar
   zijn eigen rij. */
.pcs-quote {
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 8px;
  row-gap: 2px;
  width: 100%;
  margin: 0 0 4px;
  padding: 6px 10px;
  border: none;
  border-radius: 10px;
  background: var(--c-bg-subtle-hover, #f5f6f8);
  box-shadow: inset 3px 0 0 var(--c-action-500, #4652f3);
  font: inherit;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.pcs-quote__author {
  flex: 1 0 100%;
  font-size: 13px;
  font-weight: 600;
  color: var(--c-action-500, #4652f3);
}

.pcs-quote__text {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 13px;
  color: var(--c-text-muted, #6b7280);
  /* Max 2 regels: een citaat is een verwijzing, geen herhaling. */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.pcs-quote__sticker {
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  object-fit: contain;
}

/* Het origineel bestaat niet meer: geen actie meer, dus geen aanwijzer en geen
   actie-blauw meer. */
.pcs-quote--dead {
  cursor: default;
  box-shadow: inset 3px 0 0 var(--c-text-muted, #6b7280);
}

.pcs-quote--dead .pcs-quote__author {
  color: var(--c-text-muted, #6b7280);
}

.pcs-compose {
  position: sticky;
  bottom: 0;
  background: var(--c-bg-card, #ffffff);
  padding: 10px 0 calc(12px + env(safe-area-inset-bottom, 0px));
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Acht emoji's over de volle breedte verdeeld (passen op elk scherm), i.p.v.
   links geklonterd met een horizontale scroll. `hidden` verbergt de rij zodra
   er een sticker klaarstaat — expliciet, want display:flex wint anders van het
   browser-standaardgedrag van `hidden`. */
.pcs-emoji-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 4px;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.pcs-emoji-row[hidden] {
  display: none;
}

.pcs-emoji-row::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.pcs-emoji-btn {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  line-height: 1;
  border: none;
  background: transparent;
  border-radius: 50%;
  cursor: pointer;
}

.pcs-emoji-btn:hover,
.pcs-emoji-btn:focus-visible {
  background: var(--c-bg-subtle-hover, #f0f1f2);
  outline: none;
}

.pcs-emoji-btn:active {
  background: var(--c-bg-subtle-hover, #f0f1f2);
  transform: scale(0.9);
}

/* Negende knop (kaart 17, herstart 01.09.2026): opent de volledige
   emoji-kiezer. Zelfde ronde 36px-vorm als de acht emoji ernaast (die
   erven van .pcs-emoji-btn hierboven); alleen de kleur van het icoon zelf
   staat hier, zelfde muted-token als het bestaande drie-puntjes-menu
   (.pcs-comment__menu-btn) zodat het "even zwaar" oogt als een emoji-glyph. */
.pcs-emoji-more {
  color: var(--c-text-muted, #6b7280);
}

/* [eigen avatar/plus-knop] [veld] [verzendknop]. `flex-end` houdt avatar en
   knop op de onderste regel als het veld uitgroeit tot vier regels. */
.pcs-form {
  display: flex;
  align-items: flex-end;
  gap: 8px;
}

/* De linkerplek houdt TWEE dingen vast die elkaar afwisselen: eigen avatar
   (leeg veld) en de +-knop (zodra je typt). Beide altijd in de DOM — wisselen
   gebeurt met een klasse, niet door elementen te verwisselen (dat zou het veld
   bij de eerste aanslag herbouwen en de cursor kwijtraken). Vaste breedte van
   44px zodat het veld niet verspringt op het moment van de wissel. */
.pcs-left {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.pcs-left > qdnapro-avatar,
.pcs-left > .pcs-plus-btn {
  flex: 0 0 auto;
}

/* Kruisvervaging met een klein popje, geen harde omslag: beide knoppen liggen
   op elkaar in dezelfde 44px, opacity + schaal als enige verschil (`display:
   none` is niet animeerbaar). `visibility` gaat mee zodat de weggevaagde knop
   geen tikken meer opvangt, en wisselt pas aan het eind van de overgang. */
.pcs-left > qdnapro-avatar,
.pcs-left > .pcs-plus-btn {
  position: absolute;
  transition: opacity 160ms ease, transform 200ms cubic-bezier(0.2, 0.9, 0.3, 1.5), visibility 0s linear 160ms;
}

.pcs-left > .pcs-plus-btn {
  opacity: 0;
  visibility: hidden;
  transform: scale(0.6);
}

.pcs-form--typt .pcs-left > qdnapro-avatar {
  opacity: 0;
  visibility: hidden;
  transform: scale(0.6);
}

.pcs-form--typt .pcs-left > .pcs-plus-btn {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
  transition-delay: 0s, 0s, 0s;
}

/* De icoontjes ín het veld vervagen, want dáár botsten ze met de tekst.
   Verbergen en niet weghalen: de knoppen weghalen zou qdnapro-input laten
   hertekenen en de focus midden in een woord wegnemen. */
.pcs-field .input-action-btn,
.pcs-field .input-action-btn-2 {
  transition: opacity 140ms ease, transform 160ms ease, visibility 0s linear 140ms;
}

.pcs-form--typt .pcs-field .input-action-btn,
.pcs-form--typt .pcs-field .input-action-btn-2 {
  opacity: 0;
  visibility: hidden;
  /* Alleen schalen: de verticale centrering zit op .input-trailing (de doos
     eromheen), niet op deze knop. */
  transform: scale(0.7);
  pointer-events: none;
}

/* Wie liever geen beweging ziet, krijgt geen beweging. */
@media (prefers-reduced-motion: reduce) {
  .pcs-left > qdnapro-avatar,
  .pcs-left > .pcs-plus-btn,
  .pcs-field .input-action-btn,
  .pcs-field .input-action-btn-2,
  .pcs-send {
    transition-duration: 0s;
  }
}
.pcs-field {
  flex: 1 1 auto;
  min-width: 0;
}

.pcs-form qdnapro-input {
  flex: 1 1 auto;
  min-width: 0;
  display: block;
}

/* De verstuurknop groeit erin zodra er tekst of een sticker is. Blijft altijd
   in de DOM staan — weghalen zou de animatie onmogelijk maken — en krimpt naar
   breedte 0 als er niets te versturen valt. `overflow: hidden` zorgt dat het
   icoon meekrimpt i.p.v. uit de knop te steken.
   ⚠️ DRIE klassen in de selector, en dat is nodig: de breedte hieronder vecht
   met `.qdnapro-icon-btn.icon-btn-size-touch` van het component (twee
   klassen, 44px vast). Met `.pcs-send` alleen verliest die strijd en blijft de
   knop altijd 44px breed — dan gebeurt alleen een vervaging en geen groei. */
.pcs-form .pcs-send.qdnapro-icon-btn {
  flex: 0 0 auto;
  width: 0;
  min-width: 0;
  opacity: 0;
  transform: scale(0.3);
  overflow: hidden;
  pointer-events: none;
  /* Breedte gaat snel (layout: hoe korter, hoe minder het veld zichtbaar
     meebeweegt), schaal langzamer met een doorschieter — leest zo als een
     popje i.p.v. een knop die opzij schuift. Zelfde curve/tijd als de wissel
     links, zodat beide bewegingen bij elkaar horen. */
  transition: width 140ms cubic-bezier(0.2, 0.9, 0.3, 1.2), opacity 140ms ease, transform 220ms cubic-bezier(0.2, 0.9, 0.3, 1.6);
}

.pcs-form .pcs-send.qdnapro-icon-btn.pcs-send--on {
  width: 44px;
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
}

/* Het BEWERK-strookje: potlood, twee regels tekst, een kruisje om te stoppen.
   Volle breedte binnen het paneel (geen sheet-zijpadding om terug te rekenen,
   dus geen --bs-pad-x-constructie zoals in de PWA-bron). */
.pcs-editstrip {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 4px;
  border-top: 1px solid var(--c-grey-100, #e7e9ec);
}

.pcs-editstrip[hidden] {
  display: none;
}

.pcs-editstrip__icon {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  color: var(--c-text-muted, #6b7280);
}

/* Zelfde maat als het potlood ernaast via --ql-size, anders wint de
   48px-standaard van qdnapro-lottie. */
.pcs-editstrip__sticker.qdnapro-lottie {
  --ql-size: 28px;
  flex: 0 0 auto;
}

.pcs-editstrip__text {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.pcs-editstrip__title {
  font-size: 13px;
  font-weight: 600;
  color: var(--c-action-500, #4652f3);
}

.pcs-editstrip__poster {
  width: 20px;
  height: 20px;
  object-fit: contain;
  vertical-align: -5px;
  margin-right: 6px;
}

.pcs-editstrip__body {
  font-size: 13px;
  color: var(--c-text-muted, #6b7280);
  /* Eén regel: het strookje mag nooit hoger worden dan de sticker-strip. */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pcs-editstrip__clear {
  flex: 0 0 auto;
  margin-left: auto;
}

/* Zelfde strook, antwoorden-stand: accent verlegd naar de linker inset-streep. */
.pcs-editstrip--reply {
  box-shadow: inset 3px 0 0 var(--c-action-500, #4652f3);
}

.pcs-editstrip--reply .pcs-editstrip__title {
  color: var(--c-action-500, #4652f3);
}

.pgs-toolbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--c-border-card, #e1e3e6);
}

.pgs-notify {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}

.pgs-notify-label {
  font-size: 13px;
  color: var(--c-text-muted, #6e7280);
}

.pgs-split {
  display: grid;
  grid-template-columns: 340px 1fr;
  min-height: 560px;
}

@media (max-width: 840px) {
  .pgs-split {
    grid-template-columns: minmax(0, 1fr);
  }
}
.pgs-steplist {
  /* min-height: 0 laat de kolom de rijhoogte van .pgs-split volgen i.p.v. op
     zijn eigen inhoud te groeien — nodig zodat de lijst zelf kan scrollen
     i.p.v. het hele paneel op te rekken (aanname: een omliggend element
     geeft het paneel een begrensde hoogte; niet in de browser geverifieerd). */
  min-height: 0;
  max-height: inherit;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px;
  border-right: 1px solid var(--c-border-card, #e1e3e6);
  background: var(--c-bg-subtle-purple, #f3f5ff);
}

@media (max-width: 840px) {
  .pgs-steplist {
    border-right: none;
    border-bottom: 1px solid var(--c-border-card, #e1e3e6);
  }
}
.pgs-steprow {
  display: grid;
  grid-template-columns: 36px 1fr auto;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 12px;
  margin: 0;
  border: 1px solid transparent;
  border-radius: 12px;
  background: none;
  font: inherit;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.pgs-steprow:hover {
  background: var(--c-bg-card, #ffffff);
  border-color: var(--c-border-card, #e1e3e6);
}

.pgs-steprow.is-selected {
  background: var(--c-bg-card, #ffffff);
  border-color: var(--c-purple-200, #a5acff);
  box-shadow: 0 2px 8px var(--c-purple-200-30, rgba(165, 172, 255, 0.3));
}

.pgs-steprow.is-quiet .pgs-step-title {
  color: var(--c-text-muted, #6e7280);
}

/* Bootstrap zet `button:focus { outline: 5px auto -webkit-focus-ring-color }`
   op ELKE knop (v1-header laadt bootstrap.min.css) — een muisklik geeft wel
   :focus maar geen :focus-visible. Uitzetten, eigen ring op :focus-visible,
   zelfde patroon als elders in dit bestand (o.a. .pulse-type-card). */
.pgs-steprow:focus {
  outline: none;
}

.pgs-steprow:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--focus-ring, #40499a);
}

.pgs-steprow.is-selected:focus-visible {
  box-shadow: 0 0 0 2px var(--focus-ring, #40499a), 0 2px 8px var(--c-purple-200-30, rgba(165, 172, 255, 0.3));
}

.pgs-step-ico {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--c-chip-purple-bg, #ebe9fb);
  color: var(--c-brand-purple, #40499a);
  display: flex;
  align-items: center;
  justify-content: center;
}

.pgs-step-title {
  display: block;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--c-text-heading, #1a1f4d);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pgs-step-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: var(--c-text-muted, #6e7280);
  font-variant-numeric: tabular-nums;
}

.pgs-step-side {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}

.pgs-badge-new {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--c-brand-purple, #40499a);
  color: var(--c-text-on-action, #ffffff);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
}

.pgs-step-time {
  font-size: 11px;
  color: var(--c-text-muted, #6e7280);
  white-space: nowrap;
}

.pgs-detail {
  display: flex;
  flex-direction: column;
  min-height: 0;
  background: var(--c-bg-card, #ffffff);
}

.pgs-thread-head {
  flex: 0 0 auto;
  padding: 18px 24px 14px;
  border-bottom: 1px solid var(--c-border-card, #e1e3e6);
}

.pgs-thread-title {
  margin: 0 0 8px;
  font-size: 17px;
  font-weight: 700;
  color: var(--c-text-heading, #1a1f4d);
}

.pgs-mood {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.pgs-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--c-grey-50, #f0f1f2);
  color: var(--c-text-body, #0b0b0d);
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.3;
}

.pgs-chip--total {
  background: var(--c-chip-purple-bg, #ebe9fb);
  color: var(--c-brand-purple, #40499a);
}

.pgs-thread {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 18px 24px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* .pcs-compose leeft hier IN het paneel i.p.v. in een sheet: geen
   --bs-pad-x-zijpadding om terug te rekenen, dus gewoon volle breedte met
   eigen zijpadding en een scheidingslijn i.p.v. de kaartrand van een sheet. */
.pgs-detail .pcs-compose {
  flex: 0 0 auto;
  padding: 10px 24px 14px;
  border-top: 1px solid var(--c-border-card, #e1e3e6);
}

/* De "nieuw sinds je vorige bezoek"-lijn: label met een streep aan weerszijden,
   op de meegeleverde last_seen-grens. */
.pgs-new-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 4px 0;
}

.pgs-new-divider::before,
.pgs-new-divider::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--c-purple-200, #a5acff);
}

.pgs-new-divider__label {
  flex: 0 0 auto;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--c-brand-purple, #40499a);
}

/* Skeleton/fout/leeg: zelfde vormtaal als de .pulse-mod-*-sectie hierboven
   (shimmer-balken, rode foutbanner, gedempte centered tekst) — hier met
   tokens i.p.v. de vaste hex-waarden die daar staan, en de bestaande
   `pulse-stats-shimmer`-keyframe hergebruikt (verderop in dit bestand, kaart
   F3-W1) i.p.v. een tweede, identieke keyframe te definiëren. */
.pgs-skeleton {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px;
}

.pgs-skeleton[hidden] {
  display: none;
}

.pgs-skel {
  height: 64px;
  border-radius: 12px;
  background: linear-gradient(90deg, var(--c-grey-50, #f0f1f2) 25%, var(--c-grey-100, #e7e9ec) 37%, var(--c-grey-50, #f0f1f2) 63%);
  background-size: 400% 100%;
  animation: pulse-stats-shimmer 1.3s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .pgs-skel {
    animation: none;
  }
}
.pgs-error {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 12px 14px;
  border-radius: 12px;
  background: var(--c-signal-red-soft, #fff0f0);
  color: var(--c-signal-red-text, #c65a5a);
  font-size: 13px;
}

.pgs-error[hidden] {
  display: none;
}

.pgs-error qdnapro-icon {
  flex-shrink: 0;
}

.pgs-empty {
  padding: 40px 16px;
  text-align: center;
  color: var(--c-text-muted, #6e7280);
  font-size: 13px;
}

@media (max-width: 600px) {
  .pgs-notify {
    flex: 1 1 100%;
    margin-left: 0;
  }
}
.pulse-stats-panel {
  grid-column: 1/-1;
}

.pulse-stats-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 14px;
  margin-bottom: 24px;
}

/* Team-tegels (F3-W1). Ze delen bewust het rooster van de tegels erboven:
   het zijn dezelfde soort cijfers, alleen opgesplitst per team, en twee
   verschillende tegelrasters onder elkaar leest als twee losse panelen.
   De sectie zit tussen de totalen en de trechter in. */
.pulse-stats-teams {
  margin-bottom: 24px;
}

.pulse-stats-teams[hidden] {
  display: none;
}

.pulse-stats-teams .pulse-stats-cards {
  margin-bottom: 0;
}

.pulse-stats-teams .pulse-stats-note {
  padding: 18px 8px;
}

.pulse-stats-subhead {
  margin: 0 0 2px;
  font-size: 13.5px;
  line-height: 19px;
  color: var(--c-brand-purple, #394290);
}

.pulse-stats-subsub {
  margin: 0 0 12px;
  font-size: 12.5px;
  line-height: 18px;
  color: var(--c-grey-500, #6b6884);
  max-width: 70ch;
}

/* VASTE hoogte: Highcharts meet zijn container, en in een cel zonder eigen
   hoogte is dat 0 — dan tekent hij niets en staat er een leeg vak zonder
   foutmelding (de les van de AI-verbruikpagina). */
.pulse-stats-chart {
  height: 320px;
  margin-bottom: 26px;
}

.pulse-stats-chart[hidden] {
  display: none;
}

.pulse-stats-q {
  border: 1px solid var(--c-border-soft, #e5e5ea);
  border-radius: 12px;
  padding: 14px 16px 16px;
  margin-bottom: 10px;
}

.pulse-stats-q:last-child {
  margin-bottom: 0;
}

.pulse-stats-q-head {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.pulse-stats-q-title {
  margin: 0;
  font-size: 14px;
  line-height: 20px;
  color: var(--c-brand-purple, #394290);
  flex: 1 1 240px;
  min-width: 0;
}

.pulse-stats-q-meta {
  flex: 0 0 auto;
  font-size: 12px;
  color: var(--c-grey-500, #6b6884);
  font-variant-numeric: tabular-nums;
}

.pulse-stats-q-correct {
  flex: 0 0 auto;
  font-size: 12px;
  font-weight: 600;
  color: #10604a;
  background: #eafaf3;
  border-radius: 999px;
  padding: 2px 10px;
}

.pulse-stats-bars {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.pulse-stats-bar-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12.5px;
  line-height: 18px;
  color: var(--c-text-body, #1c1e2a);
  margin-bottom: 4px;
}

.pulse-stats-bar-name {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pulse-stats-bar-label qdnapro-icon {
  flex-shrink: 0;
  color: #1d9e75;
}

.pulse-stats-bar-value {
  flex: 0 0 auto;
  font-size: 12px;
  color: var(--c-grey-500, #6b6884);
  font-variant-numeric: tabular-nums;
}

.pulse-stats-bar-track {
  height: 10px;
  border-radius: 999px;
  background: #eef0fb;
  overflow: hidden;
}

.pulse-stats-bar-fill {
  height: 100%;
  border-radius: 999px;
  background: #5b63c4;
}

.pulse-stats-bar-row.is-correct .pulse-stats-bar-fill {
  background: #1d9e75;
}

/* Deelname per locatie/afdeling op de statistiekenpagina (17.08.2026) — een
   TABEL met vier kolommen: naam · balk · percentage · aantal.

   Hiervoor stond hier het balken-idioom hierboven: label op één regel, balk op
   volle breedte daaronder. Met dertig groepen werd dat een streepjestrui, en op
   een breed scherm was de balk zo lang dat je hem met je ogen niet in één keer
   kon overzien: de naam stond links, en het enige stuk dat iets zegt (het
   uiteinde) aan de andere kant van het scherm.

   ⚠️ De balkkolom staat op `vw` en NIET op een percentage van de rij. Een
   ingesprongen kinderrij is smaller dan zijn locatierij; met een percentage
   zouden die twee balken een andere schaal krijgen, en dan vergelijk je twee
   dingen die niet vergelijkbaar zijn. Nu is elke balk overal even breed en dus
   onderling te lezen. */
/* ⚠️ De MAXIMALE BREEDTE is geen opsmuk. Zonder die grens rekt de naamkolom
   mee met het scherm en staat de balk een halve meter rechts van de naam waar
   hij bij hoort; dan lees je de regel in twee losse stukken. Alles bij elkaar
   houden is precies het punt van deze omzetting. */
/* De onderkant houdt hetzelfde ritme aan als een grafiekblok (26px), anders
   plakt de volgende kop tegen de laatste regel. */
.pulse-units {
  display: flex;
  flex-direction: column;
  max-width: 920px;
  margin-bottom: 26px;
}

.pulse-units-groep {
  display: flex;
  flex-direction: column;
}

.pulse-units-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(140px, 18vw, 340px) 52px 84px;
  align-items: center;
  gap: 0 16px;
  padding: 6px 8px;
  border-radius: 8px;
  font-size: 13px;
  line-height: 18px;
  color: var(--c-text-body, #1c1e2a);
}

/* De kolomkoppen staan er één keer, in plaats van "gestart" en "deelnemers" op
   elke regel te herhalen. */
.pulse-units-head {
  padding-top: 0;
  padding-bottom: 6px;
  margin-bottom: 4px;
  border-bottom: 1px solid #ecebf4;
  border-radius: 0;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--c-grey-500, #6b6884);
}

.pulse-units-name {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

.pulse-units-naam-tekst {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pulse-units-count {
  flex: 0 0 auto;
  font-weight: 400;
  font-size: 12px;
  color: var(--c-grey-500, #6b6884);
}

.pulse-units-chevron {
  flex-shrink: 0;
  color: #6b6884;
  transition: transform 0.15s ease;
}

.pulse-units-row--klik {
  cursor: pointer;
  font-weight: 600;
}

.pulse-units-row--klik:hover {
  background: #f7f7fc;
}

.pulse-units-row--klik.is-open .pulse-units-chevron {
  transform: rotate(90deg);
}

.pulse-units-track {
  display: block;
  height: 8px;
  border-radius: 999px;
  background: #eef0fb;
  overflow: hidden;
}

.pulse-units-fill {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: #5b63c4;
}

/* De lege cel in de koprij is alleen een uitlijner, geen lege balk. */
.pulse-units-head .pulse-units-track {
  background: none;
}

.pulse-units-pct {
  text-align: right;
  font-size: 14px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.pulse-units-head .pulse-units-pct {
  font-size: 11px;
}

.pulse-units-people {
  text-align: right;
  font-variant-numeric: tabular-nums;
  color: var(--c-grey-500, #6b6884);
}

/* Geen balk en geen percentage: het slotje neemt allebei die kolommen in, zodat
   het aantal rechts op zijn plek blijft staan. Rustig blauw, want de k-poort is
   een bewuste keuze en geen foutmelding. */
.pulse-units-toofew {
  grid-column: 2/4;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #6b6884;
}

.pulse-units-toofew qdnapro-icon {
  flex-shrink: 0;
}

.pulse-units-kids {
  display: flex;
  flex-direction: column;
  margin: 2px 0 6px 22px;
  padding-left: 12px;
  border-left: 2px solid #e5e3f0;
}

/* ⚠️ Zonder deze regel wint `display: flex` hierboven van het `hidden`-attribuut
   en staat elke locatie open. */
.pulse-units-kids[hidden] {
  display: none;
}

.pulse-units-row--kind {
  font-size: 12.5px;
}

/* Smal scherm: de balk gaat eruit, de cijfers blijven. Een balk van 140px naast
   een afgekapte naam zegt minder dan het getal zelf. */
@media (max-width: 760px) {
  .pulse-units-row {
    grid-template-columns: minmax(0, 1fr) 48px 76px;
    gap: 0 10px;
  }
  .pulse-units-track {
    display: none;
  }
  .pulse-units-toofew {
    grid-column: 2/3;
  }
}
/* De k-poort is geen foutmelding maar een bewuste keuze — dus rustig blauw,
   niet amber of rood. */
.pulse-stats-toofew {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 10px 12px;
  border-radius: 10px;
  background: #eef0fb;
  font-size: 12.5px;
  line-height: 18px;
  color: #40499a;
}

.pulse-stats-toofew qdnapro-icon {
  flex-shrink: 0;
}

.pulse-stats-note {
  margin: 0;
  padding: 26px 8px;
  text-align: center;
  font-size: 13px;
  color: var(--c-grey-500, #6b6884);
}

.pulse-stats-note[hidden] {
  display: none;
}

/* De "cijfers bevroren"-regel (F2-W5). Bewust dezelfde ingetogen toon als de
   "te weinig antwoorden"-melding: het is een mededeling over wat je ziet, geen
   waarschuwing dat er iets mis is. */
.pulse-stats-frozen {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 16px;
  padding: 9px 12px;
  border-radius: 10px;
  background: #f6f5fb;
  font-size: 12.5px;
  color: #6b6884;
  line-height: 1.45;
}

.pulse-stats-frozen[hidden] {
  display: none;
}

.pulse-stats-frozen qdnapro-icon {
  flex-shrink: 0;
}

/* Laadstaat: dezelfde vakverdeling als het echte paneel, zodat er niets
   verspringt zodra de cijfers binnen zijn. */
.pulse-stats-skeleton {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 14px;
}

.pulse-stats-skeleton[hidden] {
  display: none;
}

.pulse-stats-skel {
  border-radius: 14px;
  background: linear-gradient(90deg, #f1f2f8 25%, #e7e9f4 37%, #f1f2f8 63%);
  background-size: 400% 100%;
  animation: pulse-stats-shimmer 1.3s ease-in-out infinite;
}

.pulse-stats-skel-card {
  height: 80px;
}

.pulse-stats-skel-chart {
  height: 200px;
  grid-column: 1/-1;
}

@keyframes pulse-stats-shimmer {
  0% {
    background-position: 100% 0;
  }
  100% {
    background-position: 0 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .pulse-stats-skel {
    animation: none;
  }
}
.pulse-stats-error {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 12px 14px;
  border-radius: 10px;
  background: #fdeeeb;
  border: 1px solid #f0c4bc;
  color: #8e2718;
  font-size: 13px;
}

.pulse-stats-error[hidden] {
  display: none;
}

.pulse-stats-error qdnapro-icon {
  flex-shrink: 0;
}

.pulse-stats-error span {
  flex: 1 1 220px;
}

/* Pulse — pagina-gescoopt (pulse-*). Overgenomen uit projects-v2.html zodat het
   overzicht 1-op-1 hetzelfde leest; alleen de klassenamen zijn hernoemd.
   Let op: geen Twig-commentaar in dit blok (dat breekt de hele pagina). */
/* Volle breedte (werklijst-idioom zoals Werkvoorraad/Documenten). */
/* Onderruimte 40px → 96px (19.08.2026): deze pagina's dragen sinds vandaag de
   ZWEVENDE actiebalk (ActionBar::pulseOverview). Die is `position: fixed`, neemt
   dus geen ruimte in de pagina in en zou zich over de laatste rij tegels heen
   leggen zonder dat je eronder kunt scrollen.

   SYNC-PUNT, met opzet een vast getal — exact dezelfde afweging als bij
   .pulse-detail-body hieronder: _action-bar.scss zet `height: 56px` hard (er is
   geen --action-bar-height) en --action-bar-offset staat op .qdnapro-action-bar
   zelf, dus die is hier niet erfbaar en een var() zou stil altijd op de fallback
   landen. 96px = 56 (hoogte) + 16 (offset) + 24 lucht. Wordt de balk hoger of
   komt hij verder van de rand, dan moet dit mee — op BEIDE plekken. */
.pulse-wrap {
  max-width: none;
  margin: 24px 28px 96px;
}

.pulse-head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}

.pulse-head-titles {
  flex: 1;
  min-width: 200px;
}

.pulse-head h1 {
  font-size: 22px;
  color: var(--c-brand-purple, #394290);
  margin: 0 0 2px;
}

.pulse-head .pulse-sub {
  color: #6b6884;
  font-size: 13px;
  margin: 0;
}

/* Werkbalk — links de knoppen die iets MAKEN (campagne / uit sjabloon / met
   Nova), rechts zoeken + sorteren (pv2-idioom). Analytics en Gearchiveerd
   stonden hier ook en zitten sinds 19.08.2026 in de onderbalk: navigeren hoort
   in de balk, maken hoort bij de inhoud. */
.pulse-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}

.pulse-toolbar-left {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.pulse-toolbar-right {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
}

.pulse-search {
  width: 340px;
  max-width: 100%;
  flex: 0 0 auto;
}

#pulse-sort-btn {
  flex: 0 0 auto;
}

/* Werkbalk-links wikkelen een qdnapro-button — de globale a-selector zet
   `underline` terug, vandaar het !important. */
.pulse-toolbar-link,
.pulse-toolbar-link:hover,
.pulse-toolbar-link:focus {
  display: inline-flex;
  text-decoration: none !important;
  color: inherit;
}

.pulse-toolbar-link * {
  text-decoration: none !important;
}

.pulse-toolbar-hint {
  font-size: 13px;
  color: var(--c-grey-500, #6b6884);
}

/* Sorteermenu — vaste positionering onder de knop (zelfde aanpak als pv2). */
.pulse-sort-menu {
  position: fixed;
  z-index: 9000;
}

.pulse-sort-menu[hidden] {
  display: none;
}

/* Het drie-puntjes-menu van een kaart wordt bij openen uit de kaart getild:
   de kaartrand knipt (overflow:hidden voor de afgeronde hoeken), dus een
   absoluut menu wordt halverwege afgekapt (Jan-melding 09.08). position:fixed
   ontsnapt aan die knip — de kaartwortel heeft geen (blijvende) transform, dus
   fixed rekent gewoon vanaf het venster. Coördinaten zet de pagina bij elk
   openen opnieuw (qdnapro-project-card-menu-open → positionFixedMenu). */
qdnapro-project-card qdnapro-menu.pulse-card-menu-fixed {
  position: fixed !important;
  right: auto;
  z-index: 9100;
}

/* De tegelgrid zelf. */
.pulse-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(268px, 1fr));
  gap: 16px;
  align-items: start;
}

/* Sectiekoppen voor de splitsing vastgepind / alle campagnes. Beide zijn
   verborgen zolang de gebruiker niets heeft vastgepind. */
.pulse-section-heading {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--c-grey-500, #6b6884);
  margin: 4px 2px 12px;
}

.pulse-section-heading qdnapro-icon {
  color: var(--c-purple-500, #534ab7);
}

.pulse-section-heading[hidden] {
  display: none;
}

.pulse-pinned-section {
  margin-bottom: 26px;
}

.pulse-pinned-section[hidden] {
  display: none;
}

/* Klikbaarheid: sinds W3 opent ELKE tegel de campagnepagina — ook in het
   archief en ook zonder beheerrecht (de pagina is kijk-gated en toont een
   kijker dezelfde inhoud, alleen zonder bewerkknoppen). Daarom één cursor
   voor alle tegels; het onderscheid uit W2 is vervallen. */
.pulse-cards-grid > qdnapro-project-card.pulse-card-clickable {
  cursor: pointer;
}

/* Zonder beheerrecht krijgt een tegel geen menu; dan hoort de drie-puntjes-knop
   er ook niet te zijn (hij zou bij hover verschijnen en niets doen). */
.pulse-cards-grid > qdnapro-project-card.pulse-card-nomenu .project-card-menu-trigger {
  display: none;
}

/* De statuspil linksboven op de tegel was hier een pagina-eigen chip
   (.pulse-state-chip). Vanaf 19.08.2026 heeft de kaart er een slot voor
   (slot="status") en is de pil een echte qdnapro-tag met variant="glass", dus
   die regels zijn weg: opmaak van een pil hoort bij de pil. */
/* Gearchiveerde tegel: GEEN tweede voetregel-knop. De reactie-teller wordt in
   de archieflens niet meer berekend (zie _decorateCampaignRows: dat is de enige
   groeirichting zonder plafond), en zonder `comment-count` valt het component
   terug op zijn bel — een knop die in Pulse niets doet. Liever niets dan een
   dode bel. Het aantal stappen en de datum blijven staan.
   Hetzelfde idioom als de derde knop in _project-card.scss, die daar
   component-breed op display:none staat. Deze regel staat bewust HIER en niet
   in het component: op het projectenoverzicht mag die bel blijven staan. */
.pulse-cards-grid qdnapro-project-card[archived] .project-card-action-bell {
  display: none !important;
}

/* Binnenkomst-animatie na het wisselen van skelet naar echte tegels. */
@keyframes pulse-card-enter {
  0% {
    opacity: 0;
    transform: scale(0.96) translateY(8px);
  }
  100% {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}
.pulse-cards-grid > qdnapro-project-card.pulse-card-entering {
  animation: pulse-card-enter 240ms cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

/* Vertrek-animatie (archiveren / activeren) en de kortere variant voor het
   verplaatsen bij vastpinnen. */
@keyframes pulse-card-leave {
  0% {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
  100% {
    opacity: 0;
    transform: scale(0.88) translateY(8px);
  }
}
.pulse-cards-grid > qdnapro-project-card.pulse-card-leaving {
  animation: pulse-card-leave 500ms cubic-bezier(0.55, 0, 0.35, 1) forwards;
  pointer-events: none;
}

.pulse-cards-grid > qdnapro-project-card.pulse-card-pinleave {
  animation: pulse-card-leave 300ms cubic-bezier(0.55, 0, 0.35, 1) forwards;
  pointer-events: none;
}

/* Geen-zoekresultaat-melding onder de grid. */
.pulse-search-empty {
  padding: 32px 8px;
  color: var(--c-grey-500, #6b6884);
  font-size: 14px;
}

/* --- Maak/bewerk-campagne-modal ------------------------------------------ */
/* Fotokiezer-tegels in de modal. */
.pulse-photo-grid {
  display: grid;
  grid-template-columns: repeat(4, 87px);
  gap: 8px;
  margin-top: 8px;
  justify-content: start;
}

.pulse-photo-actions {
  display: flex;
  gap: 8px;
  margin-top: 16px;
}

.pulse-photo-hint {
  margin: 8px 0 0;
  font-size: 12px;
  color: #6b7280;
}

[data-theme=dark] .pulse-photo-hint {
  color: #a6aab3;
}

.pulse-photo-error {
  margin: 8px 0 0;
  font-size: 12.5px;
  color: #d8442e;
}

.pulse-photo-error[hidden] {
  display: none;
}

.pulse-photo-status {
  margin: 8px 0 0;
  font-size: 12.5px;
  color: #1d9e75;
}

.pulse-photo-status[hidden] {
  display: none;
}

/* Hoogte-correctie voor de with-info-modal: het component forceert een vaste
   800px die voor dit korte formulier veel te hoog is. Pagina-gescoopt op het
   id — nooit de globale component-CSS aanpassen (qdna-action-modals). */
#pulse-campaign-modal.modal-layout-with-info .modal-dialog {
  height: auto;
  max-height: min(800px, 100vh - 48px);
  align-items: stretch;
}

#pulse-campaign-modal.modal-layout-with-info .modal-window {
  height: auto;
  padding-bottom: 16px;
}

/* --- Sjabloonkiezer ("Uit sjabloon") ------------------------------------- */
/* Dezelfde hoogte-correctie als de campagne-modal hierboven: with-info forceert
   anders een VASTE 800px, en een korte sjabloonlijst zwemt daarin. Pagina-
   gescoopt op het id — nooit de globale component-CSS aanpassen. */
#pulse-template-modal.modal-layout-with-info .modal-dialog {
  height: auto;
  max-height: min(800px, 100vh - 48px);
  align-items: stretch;
}

#pulse-template-modal.modal-layout-with-info .modal-window {
  height: auto;
  padding-bottom: 16px;
}

/* Dit is een KEUZElijst, geen tegeloverzicht: één kolom over de volle breedte.
   De kaart zelf is het gedeelde qdnapro-picker-tile (het component voor "kies
   er een uit N"; zijn eigen docblock noemt een sjabloongalerij als voorbeeld).
   Alleen de VORM wordt hier omgezet van galerij-tegel naar brede regel —
   zelfde soort pagina-gescoopte hervorming als de compacte grafiektype-tegels
   op de dashboard-kaartpagina. */
.pulse-tpl-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

/* column-reverse zet de body (titel + omschrijving) BOVEN het thumb-vak; dat
   vak draagt hier de samenstellingsregel. Die regel is een light-DOM-kind van
   de tegel, en het component klont zijn kinderen bij elke her-render — dus de
   regel overleeft het aan- en uitzetten van `selected`. */
.pulse-tpl-list qdnapro-picker-tile {
  flex-direction: column-reverse;
}

.pulse-tpl-list qdnapro-picker-tile .picker-tile-body {
  padding: 14px 16px 4px;
}

.pulse-tpl-list qdnapro-picker-tile .picker-tile-thumb {
  height: auto;
  background: none;
  padding: 0 16px 14px;
  align-items: center;
}

.pulse-tpl-meta {
  font-size: 12px;
  line-height: 18px;
  color: #6b7280;
}

[data-theme=dark] .pulse-tpl-list qdnapro-picker-tile .picker-tile-thumb {
  background: none;
}

[data-theme=dark] .pulse-tpl-meta {
  color: #a6aab3;
}

/* Statusregel in de lijst (laden / leeg / lijst niet geladen) en de fout onder
   de lijst als het aanmaken zelf misgaat. Lege tekst = verborgen. */
.pulse-tpl-msg {
  margin: 4px 2px;
  font-size: 13px;
  color: #6b7280;
}

.pulse-tpl-msg[hidden] {
  display: none;
}

.pulse-tpl-error {
  margin: 12px 2px 0;
  font-size: 12.5px;
  color: #d8442e;
}

.pulse-tpl-error[hidden] {
  display: none;
}

[data-theme=dark] .pulse-tpl-msg {
  color: #a6aab3;
}

/* --- Nova-campagnegeneratie ("Met Nova", F3-W4) -------------------------- */
/* Het sterretje draagt het Nova-idioom. De knop blijft dezelfde vorm als
   "Uit sjabloon" (secondary-white) — drie primaire kleuren naast elkaar zou
   ruzie geven — maar het icoon staat in het merkpaars uit de tokenbibliotheek,
   nooit in het bijna-zwart van een kale subtle-knop. Target op het #id: de
   knop bestaat als host al bij page-load, ook vóór zijn upgrade. */
#pulse-nova-btn qdnapro-icon {
  color: var(--c-brand-purple, #40499a);
}

/* Dezelfde hoogte-correctie als de twee modals hierboven: with-info forceert
   anders een VASTE 800px. Pagina-gescoopt op het id. */
#pulse-nova-modal.modal-layout-with-info .modal-dialog {
  height: auto;
  max-height: min(800px, 100vh - 48px);
  align-items: stretch;
}

#pulse-nova-modal.modal-layout-with-info .modal-window {
  height: auto;
  padding-bottom: 16px;
}

.pulse-nova-label {
  display: block;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--c-brand-purple, #394290);
  margin: 0 0 6px;
}

.pulse-nova-field {
  margin-top: 16px;
}

.pulse-nova-field:first-of-type {
  margin-top: 0;
}

/* Resultatenlijst — eigen maximumhoogte met een smalle, doorzichtige balk
   BINNEN het onderdeel (huisregel); twintig treffers zouden de modal anders
   twee schermen hoog maken. Zelfde vorm als het koppelpaneel op de
   campagnepagina, zodat beide zoeklijsten identiek lezen. */
.pulse-nova-results {
  margin-top: 8px;
  max-height: 208px;
  overflow-y: auto;
  border: 1px solid var(--c-border-soft, #e5e5ea);
  border-radius: 10px;
  background: var(--c-bg-card, #fff);
}

.pulse-nova-results[hidden] {
  display: none;
}

.pulse-nova-results::-webkit-scrollbar {
  width: 6px;
}

.pulse-nova-results::-webkit-scrollbar-track {
  background: transparent;
}

.pulse-nova-results::-webkit-scrollbar-thumb {
  background: rgba(57, 66, 144, 0.22);
  border-radius: 999px;
}

.pulse-nova-results {
  scrollbar-width: thin;
  scrollbar-color: rgba(57, 66, 144, 0.22) transparent;
}

.pulse-nova-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 9px 12px;
  border: 0;
  border-bottom: 1px solid var(--c-border-soft, #e5e5ea);
  background: transparent;
  text-align: left;
  cursor: pointer;
  font-family: inherit;
}

.pulse-nova-item:last-child {
  border-bottom: 0;
}

.pulse-nova-item:hover {
  background: #f7f8ff;
}

.pulse-nova-item:focus-visible {
  outline: 2px solid var(--focus-ring, #534ab7);
  outline-offset: -2px;
}

.pulse-nova-item qdnapro-icon {
  flex-shrink: 0;
  color: #6b6884;
}

.pulse-nova-item-texts {
  min-width: 0;
  flex: 1 1 auto;
}

.pulse-nova-item-name {
  display: block;
  font-size: 13px;
  line-height: 18px;
  color: var(--c-text-body, #1c1e2a);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pulse-nova-item-sub {
  display: block;
  font-size: 11.5px;
  line-height: 16px;
  color: var(--c-grey-500, #6b6884);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pulse-nova-note {
  padding: 10px 12px;
  font-size: 12.5px;
  color: var(--c-grey-500, #6b6884);
}

/* De gekozen documenten. Eén regel per document, met een kruisje om hem er
   weer uit te halen. Zelfde lavendel als de gekozen koppeling op de
   campagnepagina. */
.pulse-nova-chosen {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.pulse-nova-chosen[hidden] {
  display: none;
}

.pulse-nova-chip {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 8px 9px 12px;
  border-radius: 10px;
  background: #eef0fb;
  color: #40499a;
  font-size: 13px;
  line-height: 19px;
}

.pulse-nova-chip qdnapro-icon {
  flex-shrink: 0;
}

.pulse-nova-chip-texts {
  min-width: 0;
  flex: 1 1 auto;
}

.pulse-nova-chip-name {
  display: block;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pulse-nova-chip-sub {
  display: block;
  font-size: 11.5px;
  line-height: 16px;
  color: #6b6884;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

[data-theme=dark] .pulse-nova-chip-sub {
  color: #a6aab3;
}

.pulse-nova-hint {
  margin: 8px 0 0;
  font-size: 12px;
  line-height: 17px;
  color: #6b7280;
}

.pulse-nova-hint[hidden] {
  display: none;
}

/* Het aandachtspunt uit Analytics (de focuslijst-brug): een rustige chip in
   plaats van een invoerveld — er valt niets te bewerken, alleen te weten. */
.pulse-nova-focus {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  padding: 8px 10px;
  background: #f4f3fb;
  border-radius: 8px;
  color: #3a3854;
  font-size: 12.5px;
}

.pulse-nova-focus qdnapro-icon {
  color: #5b45b5;
  flex-shrink: 0;
  margin-top: 1px;
}

[data-theme=dark] .pulse-nova-hint {
  color: #a6aab3;
}

/* Wachtstand IN de modal: de generatie duurt 30-90 seconden, dus een stille
   knop is niet genoeg. */
.pulse-nova-busy {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 16px 0 0;
  padding: 12px 14px;
  border-radius: 10px;
  background: #eef0fb;
  color: #40499a;
  font-size: 13px;
  line-height: 19px;
}

.pulse-nova-busy[hidden] {
  display: none;
}

.pulse-nova-spinner {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 2px solid rgba(64, 73, 154, 0.25);
  border-top-color: #40499a;
  animation: pulse-nova-spin 800ms linear infinite;
}

@keyframes pulse-nova-spin {
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .pulse-nova-spinner {
    animation: none;
  }
}
.pulse-nova-error {
  margin: 12px 2px 0;
  font-size: 12.5px;
  color: #d8442e;
}

.pulse-nova-error[hidden] {
  display: none;
}

/* --- Stockfoto-kiezer ("Meer afbeeldingen") ------------------------------ */
/* Zwevend paneel naast de modal; bewust zonder eigen achtergrondlaag zodat de
   campagne-modal zichtbaar blijft. */
.pulse-sp-pop {
  position: fixed;
  right: 32px;
  top: 24px;
  bottom: 24px;
  z-index: 9100;
  width: min(460px, 94vw);
  background: var(--c-bg-card, #fff);
  border-radius: 12px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.16), 0 2px 6px rgba(0, 0, 0, 0.08);
  display: none;
  flex-direction: column;
  overflow: hidden;
}

.pulse-sp-pop.is-open {
  display: flex;
  animation: pulse-sp-pop-in 160ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

@keyframes pulse-sp-pop-in {
  from {
    opacity: 0;
    transform: translateX(12px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.pulse-sp-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 12px 12px 16px;
  border-bottom: 1px solid #e5e5ea;
  flex: 0 0 auto;
}

.pulse-sp-title {
  margin: 0;
  font-size: 14px;
  line-height: 20px;
  font-weight: 600;
  color: #40499a;
}

.pulse-sp-close {
  flex: 0 0 auto;
  border: 0;
  background: none;
  cursor: pointer;
  padding: 6px;
  border-radius: 8px;
  color: var(--c-text-body, #1c1e2a);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.pulse-sp-close:hover {
  background: var(--c-bg-subtle-hover, #f3f4fb);
}

.pulse-sp-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px 0 16px;
  flex: 0 0 auto;
}

.pulse-sp-search {
  flex: 1 1 auto;
  min-width: 0;
}

.pulse-sp-count {
  flex: 0 0 auto;
  font-size: 12px;
  color: #6e6e73;
  white-space: nowrap;
}

.pulse-sp-grid {
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 12px;
  overflow-y: auto;
  padding: 12px 16px 16px 16px;
  align-content: start;
}

/* Vaste celhoogte (NIET aspect-ratio): een grid-item met aspect-ratio wordt
   uitgerekt en levert strepen op. */
.pulse-sp-cell {
  position: relative;
  height: 104px;
  padding: 0;
  border: 0;
  background: var(--c-bg-subtle-purple, #f3f4fb);
  border-radius: 10px;
  overflow: hidden;
  cursor: pointer;
  outline: 2px solid transparent;
  outline-offset: 0;
  transition: outline-color 120ms ease, transform 120ms ease;
}

.pulse-sp-cell:hover {
  transform: translateY(-1px);
}

.pulse-sp-cell:focus-visible {
  outline-color: var(--focus-ring, #534ab7);
}

.pulse-sp-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.pulse-sp-cell.pulse-sp-selected {
  outline-color: var(--c-brand-purple, #534ab7);
}

.pulse-sp-check {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #fff;
  color: var(--c-purple-500, #534ab7);
  display: none;
  align-items: center;
  justify-content: center;
  box-shadow: 0 1px 4px rgba(20, 25, 80, 0.25);
}

.pulse-sp-cell.pulse-sp-selected .pulse-sp-check {
  display: flex;
}

.pulse-sp-empty {
  grid-column: 1/-1;
  padding: 28px;
  text-align: center;
  color: var(--c-text-muted, #8a8fa3);
  font-size: 14px;
}

/* --- Archiveer-bevestiging (waarschuwingsmodal, bewust ZONDER info-kolom) - */
.pulse-archive-warning {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 14px 0 0;
  padding: 12px 14px;
  background: #fff8e1;
  border: 1px solid #f5d68a;
  border-radius: 8px;
  color: #5c4100;
  font-size: 14px;
  line-height: 20px;
}

.pulse-archive-warning qdnapro-icon {
  color: #b78100;
  flex-shrink: 0;
  margin-top: 1px;
}

/* --- In-app help (beknopte secties; het Werkvoorraad-/KL-precedent) --------
   De helpknop staat NAAST de paginatitel en is type="subtle-purple" (nooit
   "subtle" — dat is bijna-zwart; huisregel voor helpknoppen).
   De modal is size="large" voor de leesbreedte, maar met een pagina-gescoopte
   auto-hoogte: large forceert anders een VASTE hoogte van 800px, en zes korte
   alinea's zwemmen daarin. Zelfde overschrijving als de import-modal. */
.pulse-head h1 qdnapro-icon-btn {
  vertical-align: middle;
  margin-left: 2px;
}

#pulse-help-modal .modal-dialog {
  height: auto;
  max-height: min(800px, 100vh - 48px);
}

#pulse-help-modal .modal-window {
  height: auto;
}

.pulse-help-sec {
  margin: 0 0 15px;
}

.pulse-help-sec:last-child {
  margin-bottom: 2px;
}

.pulse-help-sec h3 {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--c-brand-purple, #394290);
  margin: 0 0 4px;
}

.pulse-help-sec p {
  font-size: 13px;
  line-height: 20px;
  color: #3a3854;
  margin: 0;
}

/* --- Analytics (/v1/pulse/analytics, 2026-08-12) ---------------------------
   Het overkoepelende statistiekoverzicht. Hergebruikt de stats-klassen van de
   detailpagina (kaarten, balken, skelet, foutstaat); hieronder staat alleen
   wat deze pagina zelf toevoegt. Alles pulse-ana-gescoopt. */
.pulse-ana-toolbar {
  align-items: flex-end;
}

.pulse-ana-toolbar .pulse-toolbar-left {
  align-items: flex-end;
}

.pulse-ana-filter {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 150px;
}

.pulse-ana-filter-label {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--c-grey-500, #6b6884);
}

.pulse-ana-panel {
  margin-bottom: 18px;
}

.pulse-ana-cards {
  margin-bottom: 18px;
}

.pulse-ana-cols {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  gap: 18px;
  /* De kolommen zelf zijn geen panelen; panelen erbinnen houden hun marge. */
  margin-bottom: 18px;
}

.pulse-ana-cols .pulse-ana-panel {
  margin-bottom: 0;
}

.pulse-ana-colhead {
  font-size: 13px;
  font-weight: 600;
  color: var(--c-brand-purple, #394290);
  margin: 0 0 8px;
}

.pulse-ana-note {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 13px;
  line-height: 19px;
  color: var(--c-grey-500, #6b6884);
  margin: 0 0 14px;
}

.pulse-ana-note[hidden] {
  display: none;
}

.pulse-ana-note qdnapro-icon {
  flex-shrink: 0;
  color: #7d85d6;
  margin-top: 1px;
}

.pulse-ana-knote {
  margin-top: 4px;
}

.pulse-ana-empty {
  padding: 40px 12px;
  text-align: center;
  font-size: 14px;
  color: var(--c-grey-500, #6b6884);
}

.pulse-ana-empty[hidden] {
  display: none;
}

/* De campagnetabel. Brede inhoud scrolt binnen de eigen wrapper (smalle,
   transparante balk — de huisregel), nooit de pagina. */
.pulse-ana-table-scroll {
  overflow-x: auto;
}

.pulse-ana-table-scroll::-webkit-scrollbar {
  height: 6px;
}

.pulse-ana-table-scroll::-webkit-scrollbar-track {
  background: transparent;
}

.pulse-ana-table-scroll::-webkit-scrollbar-thumb {
  background: #d6d4e4;
  border-radius: 999px;
}

.pulse-ana-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  color: #3a3854;
}

.pulse-ana-table th {
  text-align: left;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--c-grey-500, #6b6884);
  padding: 6px 10px;
  border-bottom: 1px solid #e5e3f0;
  white-space: nowrap;
}

.pulse-ana-table td {
  padding: 8px 10px;
  border-bottom: 1px solid #f0eff7;
  white-space: nowrap;
}

.pulse-ana-table th.num,
.pulse-ana-table td.num {
  text-align: right;
}

.pulse-ana-table tbody tr:hover {
  background: #f7f7fc;
}

.pulse-ana-td-title {
  max-width: 340px;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pulse-ana-camp-link {
  color: var(--c-brand-purple, #394290);
  font-weight: 600;
  text-decoration: none;
}

.pulse-ana-camp-link:hover {
  text-decoration: underline;
}

.pulse-ana-lock {
  color: #a5a3b8;
  display: inline-flex;
  vertical-align: middle;
}

.pulse-ana-state {
  display: inline-block;
  font-size: 11.5px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 999px;
  background: #eceafd;
  color: #5b45b5;
}

.pulse-ana-state--running {
  background: #e3f3ee;
  color: #1d6f57;
}

.pulse-ana-state--closed {
  background: #e6efff;
  color: #2f5fb8;
}

.pulse-ana-state--archived {
  background: #efeef5;
  color: #6b6884;
}

/* De focuslijst: vraagrijen met een scorebalk en de Nova-knop ernaast. */
.pulse-ana-q {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 0;
  border-bottom: 1px solid #f0eff7;
}

.pulse-ana-q:last-child {
  border-bottom: 0;
}

.pulse-ana-q-main {
  flex: 1 1 auto;
  min-width: 0;
}

.pulse-ana-q-head {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}

.pulse-ana-q-title {
  font-size: 13.5px;
  font-weight: 600;
  color: #3a3854;
}

.pulse-ana-q-pct {
  font-size: 12.5px;
  font-weight: 600;
  white-space: nowrap;
}

.pulse-ana-q-pct--laag {
  color: #b23a2f;
}

.pulse-ana-q-pct--middel {
  color: #a26a00;
}

.pulse-ana-q-pct--hoog {
  color: #1d6f57;
}

.pulse-ana-q-meta {
  font-size: 12px;
  color: var(--c-grey-500, #6b6884);
  margin: 2px 0 6px;
}

.pulse-ana-q-meta .pulse-ana-camp-link {
  font-weight: 500;
}

.pulse-ana-fill--laag {
  background: #d96a5f;
}

.pulse-ana-fill--middel {
  background: #e0a53f;
}

.pulse-ana-fill--hoog {
  background: #1d9e75;
}

.pulse-ana-q-nova {
  flex: 0 0 auto;
  text-decoration: none;
}

/* Effect van de spelelementen: twee blokken naast elkaar. */
.pulse-ana-gam {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

.pulse-ana-gam-block {
  flex: 1 1 200px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 14px 16px;
  background: #f7f7fc;
  border-radius: 10px;
}

.pulse-ana-gam-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--c-grey-500, #6b6884);
}

.pulse-ana-gam-value {
  font-size: 24px;
  font-weight: 700;
  color: var(--c-brand-purple, #394290);
}

.pulse-ana-gam-sub {
  font-size: 12px;
  color: var(--c-grey-500, #6b6884);
}

/* Afdrukken: de bediening verdwijnt, de cijfers blijven. */
@media print {
  .pulse-ana-toolbar,
  #pulse-ana-loading,
  #pulse-ana-error,
  .pulse-ana-q-nova {
    display: none !important;
  }
  .pulse-ana-panel {
    break-inside: avoid;
  }
}
/* Bereik per locatie/afdeling — de uitklapbare boom (2026-08-12): locatierijen
   zijn klikbaar en tonen de afdelingen eronder ingesprongen. */
.pulse-ana-unit-groep {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.pulse-ana-unit--klikbaar {
  cursor: pointer;
  border-radius: 8px;
}

.pulse-ana-unit--klikbaar:hover {
  background: #f7f7fc;
}

.pulse-ana-unit--klikbaar .pulse-stats-bar-name {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.pulse-ana-unit-chevron {
  transition: transform 0.15s ease;
  flex-shrink: 0;
  color: #6b6884;
}

.pulse-ana-unit--klikbaar.is-open .pulse-ana-unit-chevron {
  transform: rotate(90deg);
}

.pulse-ana-unit-count {
  font-weight: 400;
  color: var(--c-grey-500, #6b6884);
  font-size: 12px;
}

.pulse-ana-unit-kinderen {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0 0 4px 22px;
  padding-left: 12px;
  border-left: 2px solid #e5e3f0;
}

.pulse-ana-unit-kinderen[hidden] {
  display: none;
}

.pulse-ana-unit--child .pulse-stats-bar-name {
  font-weight: 500;
  font-size: 12.5px;
}

/* --- Dag-pill-popover (BOARD-pulse-opmaak-wizard, kaart 9 punt 5) -------- */
/* Hergebruikt de bestaande .pulse-sm-day / .pulse-pace* / .pulse-sm-field
   opbouw van pacingFieldsHtml() (zie hierboven) in een smalle qdnapro-popover
   in plaats van in de brede stap-modal. Alleen de buitenste kaart en de
   opslaan/annuleren-knoppen zijn nieuw; de velden zelf leunen op de styles
   die er al staan. */
qdnapro-popover[data-pulse-day-pop] {
  width: min(92vw, 300px);
  padding: 16px 16px 14px;
}

.pulse-daypop {
  display: block;
}

.pulse-daypop-error {
  margin: 10px 0 0;
  font-size: 12px;
  color: var(--c-signal-red-text, #c65a5a);
}

.pulse-daypop-error[hidden] {
  display: none;
}

.pulse-daypop-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 16px;
}

/* --- Afbeelding-popover bij de miniatuur (kaart 28) ---------------------- */
/* De stappenrij toont sinds kaart 28 altijd het geanimeerde staptype-icoon;
   wat er aan de stap HANGT staat hier, op een formaat waarop je het herkent.
   Zie initStepImagePopover() in detail.html.

   Twee maten in dezelfde popover-instantie, geschakeld met [data-empty] op de
   host: een beeldkaartje, of één regel tekst. Een data-attribuut en geen
   klasse, want qdnapro-popover herschrijft zijn eigen className bij elke
   render (qdna-popovers-skill, valkuil 4).

   pointer-events: none — er staat niets klikbaars in, en zonder dit kan de
   popover onder de cursor terechtkomen: dat geeft een mouseout op de
   miniatuur, die sluit hem, waarna de mouseover hem heropent. Een flikkerlus.
   De sluit-bij-klik-ernaast van het component blijft gewoon werken: die kijkt
   naar waar de klik LANDT, en dat is dankzij deze regel nooit de popover. */
/* 300px (28.08.2026): de kaarttekst van qdnapro-pulse-canvas is in cqw
   geijkt op een kaart van 300px breed (zie de kop van qdna-pulse-canvas.js),
   dus op deze breedte leest het kaartje hier in dezelfde verhoudingen als in
   de wizard. Was 248px, uit de tijd dat hier alleen een uitsnede stond. */
qdnapro-popover[data-pulse-img-pop] {
  width: 300px;
  padding: 12px;
}

qdnapro-popover[data-pulse-img-pop][data-empty] {
  width: 200px;
  padding: 12px 14px;
}

/* De klasse MOET erbij: _popover.scss zet `pointer-events: auto` op
   `.qdnapro-popover.is-open` (0,2,0) en dat wint van een selector met alleen
   het element plus een attribuut (0,1,1). Gemeten in een harnas met de echte
   style-v1.css — zonder deze regel bleef de popover gewoon muisgevoelig en
   was de flikkerlus hierboven niet opgelost maar alleen opgeschreven. */
.qdnapro-popover[data-pulse-img-pop] {
  pointer-events: none;
}

.pulse-imgpop {
  display: block;
}

/* 16:10 — de verhouding waarop een stapfoto bij het uploaden wordt
   bijgesneden (PULSE_PHOTO_CROP_RATIO in detail.html) en waarop de kaart in de
   app staat (.pt-bg in 03-style.css). Was 3:4 met als reden "de verhouding van
   de kaart in de app"; dat was niet nagemeten en klopte niet, en elke liggende
   stapfoto stond hier dus met grijze banden boven en onder in een staand
   kaartje (Kim, 28.08.2026). */
.pulse-imgpop-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16/10;
  border-radius: 10px;
  overflow: hidden;
  background: var(--c-grey-50, #f2f2f5);
}

[data-theme=dark] .pulse-imgpop-frame {
  background: #2a2d55;
}

/* `contain`, want dit frame toont sinds 28.08.2026 alleen nog de foto van
   Klassiek / Vrij vormgeven, en die is INHOUD: hij hoort helemaal in beeld.
   Voor elke foto van na de crop-regel is dat hetzelfde als vullend; een oudere
   foto met een andere verhouding blijft zo tenminste heel. De achtergrond van
   "tekst op achtergrond" komt niet meer door dit frame maar door
   .pulse-imgpop-canvas hieronder. */
.pulse-imgpop-frame img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* "Tekst op achtergrond": de ECHTE kaart, met dezelfde qdnapro-pulse-canvas als
   de wizard (.pulse-wiz-bg-canvas-wrap) en het deelnemer-voorbeeld
   (.pulse-preview-bg-canvas-wrap). Bewust GEEN eigen aspect-ratio hier: het
   component staat zelf op 16:10 en dat is ook de maat in de app, dus die
   overschrijven zou opnieuw een derde verhouding introduceren. Alleen de
   kaartrand iets kleiner, want dit kaartje is 276px breed en geen halve pagina.
   (De wizard en het voorbeeld stonden tot 28.08.2026 op 16:9 terwijl de app
   16:10 is; sindsdien staan alle vier de frames op 16:10, dus ontwerpen,
   nakijken en krijgen gebeurt eindelijk op hetzelfde vlak.) */
.pulse-imgpop-canvas qdnapro-pulse-canvas {
  display: block;
  width: 100%;
  /* 28.08.2026: de ronding is hier ook weg. Dit was de vierde en laatste plek
     die de kaart nog rond tekende; de kaart is sinds besluit 8 overal recht,
     en juist het verschil tussen de plekken was de klacht. */
  border-radius: 0;
  overflow: hidden;
}

/* Lege staat: klein houden. Dit is een hover-kaartje, geen lege staat van een
   pagina — een illustratie van 240px maakt een vluchtige muisbeweging zwaarder
   dan wat hij oplevert (besluit D, Kim 25.08.2026). */
.pulse-imgpop--empty {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--c-grey-500, #6b6884);
}

.pulse-imgpop-empty-text {
  margin: 0;
  font-size: 13px;
  line-height: 1.3;
}

/* ============================================================
   Kaart 7 (BOARD-pulse-gesprekken, reparatie 01.09.2026): zeven
   klassen die kaart 4 in de markup gebruikt maar kaart 5 niet
   heeft gestyled — naamdrift tussen twee parallelle kaarten.
   Waarden gespiegeld aan de bestaande pulse-mod-tegenhangers
   hierboven, zodat het beeld niet verandert per bron.
   ============================================================ */
/* Grid-kind in de stap-rij: zonder min-width weigert de kolom
   smaller te worden dan zijn inhoud en loopt een lange titel
   over de nieuw-badge heen (zelfde les als .pcs-comment__head). */
.pgs-step-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

/* Verwijderd-regel onder een weggemodereerde reactie — de
   beheer-laag bovenop de PWA-chat; spiegelt .pulse-mod-c-gone. */
.pcs-comment__gone {
  margin: 6px 0 0;
  font-size: 11.5px;
  color: var(--c-text-muted, #8a87a0);
  display: flex;
  align-items: flex-start;
  gap: 6px;
}

/* Het opgeslagen-vinkje bij het meldingen-segment — spiegelt
   .pulse-mod-saved. */
.pgs-notify-saved {
  font-size: 12px;
  color: #1d9e75;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: opacity 0.2s ease;
}

.pgs-notify-saved[hidden] {
  display: none;
}

/* Lege en fout-staten: zelfde toon als .pgs-empty hierboven. */
.pgs-list-empty,
.pgs-thread-empty {
  margin: 8px 6px;
  font-size: 13px;
  color: var(--c-text-muted, #6e7280);
}

.pgs-detail-empty {
  flex: 1 1 auto;
  display: grid;
  place-items: center;
  padding: 40px 24px;
  text-align: center;
  font-size: 13px;
  color: var(--c-text-muted, #6e7280);
}

.pgs-thread-error {
  margin: 8px 0;
  font-size: 13px;
  color: var(--c-signal-red-text, #c65a5a);
}

/* Kaart 5 hierboven portte bewust NIET .pcs-pick/.pcs-pick__*, .pcs-error,
   .pcs-plus-menu en qdnapro-popover[data-pulse-plus-sheet] — die hoorden bij
   fase 2 (kaart 10/11), die toen nog niet gebouwd was (zie kaart 5's eigen
   "BEWUST NIET meegenomen"-lijst hierboven). Deze sectie port ze alsnog, 1:1
   uit dezelfde bron (app_api_qdnav2/src/REX/Resources/Scss/_pwa-current.scss,
   regels ~4914-4931 en ~5083-5146), met dezelfde tokenvertaling als kaart 5:
   var(--c-text, #hex) → var(--c-text-body, #hex) (komt in dit stuk niet voor),
   het actie-blauw var(--c-action-500, #4652f3) blijft ONVERTAALD, en
   hex-terugvallen blijven overal staan.

   Gecontroleerd vóór het porten (geen dubbele definities): kaart 5 had
   .pcs-left, .pcs-form--typt, .pcs-emoji-row[hidden] en de
   .input-action-btn/-2-vervaging AL VOLLEDIG geport, inclusief de
   prefers-reduced-motion-regel (zie hierboven, rond .pcs-emoji-row/.pcs-form).
   Die staan hier dus NIET nog een keer.

   BEVINDING, nagezocht en niet aangenomen: de "kiezer-grid" uit de
   kaartbrief (zoekveld/categorieën/thumbnails om een sticker of gif te
   KIEZEN) bestaat niet als los .pcs-*-blok in _pwa-current.scss om te
   porten. De app rendert die kiezer met de webcomponents
   <qdnapro-sticker-sheet> en <qdnapro-gif-sheet> (zie 16-pulse.js:
   `_pulseStickerSheet`/`_pulseGifSheet`), die hun EIGEN CSS meebrengen
   (app_api_qdnav2/.../Css/components-v2/qdna-sticker-sheet.css en
   qdna-gif-sheet.css) — hetzelfde patroon als qdnapro-lottie elders in dit
   bestand (component-CSS laadt NA style-v1.css). Beide componenten bestaan
   AL in de backoffice-componentenbibliotheek
   (backoffice2/web/js/components/v2/sticker-sheet/ en .../gif-sheet/), dus
   kaart 11 kan ze rechtstreeks gebruiken — er zijn hier geen nieuwe
   .pcs-pick*-grid-klassen nodig of bedacht. Wat .pcs-pick* WÉL is (bevestigd
   in de bron): de CONCEPTSTRIP die toont wat er klaarstaat om te versturen
   (sticker of gif), niet de kiezer zelf. Gemeld i.p.v. zelf iets verzonnen. */
/* De twee tegels (sticker/gif) in het +-menu. De schil levert zelf al
   padding en een afgeronde kaart; dit is alleen de rij die de twee tegels
   vasthoudt. Hier is de popover de PRIMAIRE en enige vorm (dit paneel is
   desktop-only) — de bottom-sheet-variant uit de PWA-bron (telefoon) is NIET
   geport. */
.pcs-plus-menu {
  display: flex;
  justify-content: center;
  gap: 16px;
  padding: 8px 4px 4px;
}

/* De standaard-popover is een 280px menu-achtige doos (zie de qdna-popovers
   skill, punt 1) — te smal en te krap gepad voor twee grid-tegels. Hier
   verbreed en herpad. */
qdnapro-popover[data-pulse-plus-sheet] {
  width: min(92vw, 280px);
  padding: 12px;
}

/* De sticker of gif die klaarstaat, boven de emoji-rij: het beeld zelf, een
   label (bv. "Sticker toegevoegd") en een kruisje om het weg te halen.

   De keyline erboven loopt over de volle breedte, zelfde reden als bij
   .pcs-editstrip hierboven (kaart 5): de streep hakt het scherm in tweeën,
   erboven het gesprek, eronder wat je aan het maken bent. Zelfde vertaling
   als daar: de PWA-bron rekent de breedte terug met --bs-pad-x omdat de
   strip daar in een bottom sheet leeft; hier leeft hij in een paneel zonder
   sheet-zijpadding, dus gewone volle breedte zonder negatieve marge (net als
   .pcs-editstrip hierboven). */
.pcs-pick {
  display: flex;
  align-items: center;
  gap: 10px;
  box-sizing: border-box;
  width: 100%;
  padding: 10px 4px;
  border-top: 1px solid var(--c-grey-100, #e7e9ec);
}

.pcs-pick[hidden] {
  display: none;
}

/* Zelfde samengestelde selector als .pcs-comment__sticker hierboven, en om
   exact dezelfde reden: qdnapro-lottie zet zijn eigen default óók via een
   class-selector, en die component-CSS wordt NA style-v1.css aan <head>
   toegevoegd. Bij gelijke specificiteit wint dan de laatste in de broncode
   — niet deze regel. Met de samengestelde selector (0-2-0) wint deze regel
   altijd, ongeacht laadvolgorde (zie _pwa-current.scss voor de meting die
   dit vaststelde — dezelfde race trof daar ook .pcs-comment__sticker). */
.pcs-pick__thumb.qdnapro-lottie {
  --ql-size: 44px;
  flex: 0 0 auto;
}

/* Dezelfde 44px-doos als de sticker-thumb hierboven, maar voor een GIF — een
   gewoon <img> in plaats van qdnapro-lottie, dus hier geen component-race
   (puur eigen CSS). Een stilstaande poster (preview_url): dit is nog een
   concept, geen geplaatste reactie. */
.pcs-pick__thumb--gif {
  display: block;
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border-radius: 6px;
  overflow: hidden;
  background: var(--c-grey-100, #e7e9ec);
}

.pcs-pick__thumb--gif img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.pcs-pick__label {
  font-size: 14px;
  color: var(--c-text-muted, #6b7280);
}

.pcs-pick__clear {
  margin-left: auto;
}

.pcs-error {
  font-size: 13px;
  color: var(--c-signal-red-text, #c65a5a);
}

.pcs-error[hidden] {
  display: none;
}

/* ============================================================
   Kaart 16 (BOARD-pulse-gesprekken, feedback Kim 01.09.2026):
   styling voor de staptype-lottie in de rij, de stapfoto in de
   gesprekskop, en de emoji-rij links uitgelijnd.
   ============================================================ */
/* De bewegende staptype-tegel in de stap-rij. Samengestelde selector
   (0-2-0), anders wint qdnapro-lottie's eigen 48px-standaard van deze
   maat — zelfde race als .pcs-comment__sticker hierboven. */
.pgs-step-anim.qdnapro-lottie {
  --ql-size: 24px;
  display: block;
}

/* Stapfoto + titel naast elkaar in de gesprekskop. De marge die eerst
   op de titel zat verhuist naar de rij, anders verdwijnt de ruimte
   boven de stemming-chips zodra de rij eromheen komt. */
.pgs-thread-head-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
}

.pgs-thread-head-row .pgs-thread-title {
  margin: 0;
  min-width: 0;
}

.pgs-thread-img {
  flex: 0 0 auto;
  width: 56px;
  height: 35px;
  border-radius: 8px;
  object-fit: cover;
  background: var(--c-grey-100, #e7e9ec);
}

/* Kaart 17-voorbereiding (feedback Kim, screenshot backend naast PWA):
   de snelle emoji staan LINKS gegroepeerd, niet uitgesmeerd over de
   volle breedte. Bewuste backend-afwijking van de geporte PWA-regel
   (space-between hierboven, kaart 5): op een brede desktop-composer
   dreven de acht knoppen te ver uit elkaar. Deze regel staat later in
   het bestand en wint dus op volgorde. */
.pcs-emoji-row {
  justify-content: flex-start;
  gap: 8px;
}

/* Kaart 22 (BOARD-pulse-gesprekken): de "Meest gewaardeerd"-chip in de
   gesprekskop is een KNOP (springt naar de reactie), dus button-reset
   bovenop de gewone .pgs-chip-vorm, met een hover die vertelt dat hij
   klikbaar is. Tekst kapt af: de snippet mag de kop niet oprekken. */
.pgs-chip--top {
  border: 0;
  font: inherit;
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  max-width: 360px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  background: var(--c-chip-purple-bg, #ebe9fb);
  color: var(--c-chip-purple-text, #413b5e);
}

.pgs-chip--top:hover {
  background: var(--c-chip-purple-hover, #d8d2f7);
}

.pgs-chip--top:focus-visible {
  outline: 2px solid var(--focus-ring, #40499a);
  outline-offset: 2px;
}

/* ============================================================
   Kaart 25 (BOARD-pulse-gesprekken, fase G, Kim 02.09.2026):
   subtiele feedback-animaties op de gesprekken-pagina. Alles staat
   ONDER prefers-reduced-motion: no-preference — wie geen beweging wil
   krijgt exact de harde omslagen van voorheen. Klassencontract met de
   view (kaart 24): .is-switching, .pgs-enter (+ --pgs-i), .pgs-enter--live,
   .is-leaving, .is-filtering.
   ============================================================ */
@media (prefers-reduced-motion: no-preference) {
  /* 4. Geselecteerde rij: zachte omslag i.p.v. hard. */
  .pgs-steprow {
    transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
  }
  /* 1. Stap wisselen: kop en gesprek kruisvervagen. De view zet
     .is-switching, wacht ~120ms, tekent opnieuw en haalt hem weg. */
  .pgs-thread,
  .pgs-thread-head {
    transition: opacity 120ms ease;
  }
  .pgs-thread.is-switching,
  .pgs-thread-head.is-switching {
    opacity: 0;
  }
  /* 1b. Reacties komen gestaggerd binnen: --pgs-i is de rij-index (door
     de view begrensd, zodat een lange pagina niet seconden duurt). */
  .pcs-comment.pgs-enter {
    animation: pgs-enter 220ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
    animation-delay: calc(var(--pgs-i, 0) * 25ms);
  }
  .pgs-new-divider.pgs-enter {
    animation: pgs-fade 260ms ease both;
    animation-delay: calc(var(--pgs-i, 0) * 25ms);
  }
  /* 3. Een reactie die via de 10s-verversing binnenkomt glijdt van
     onderen in; de view zet er ook .pcs-comment--flits op (bestaat al). */
  .pcs-comment.pgs-enter--live {
    animation: pgs-enter-live 260ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
  }
  /* 2. De nieuw-badge krimpt weg bij het openen; de view verwijdert hem
     pas na de overgang. */
  .pgs-badge-new {
    transition: transform 180ms ease, opacity 180ms ease;
  }
  .pgs-badge-new.is-leaving {
    transform: scale(0.6);
    opacity: 0;
  }
  /* 5. Filter wisselen: de lijst vervaagt uit en in rond het hertekenen. */
  .pgs-steplist {
    transition: opacity 120ms ease;
  }
  .pgs-steplist.is-filtering {
    opacity: 0;
  }
}
@keyframes pgs-enter {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes pgs-enter-live {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes pgs-fade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/* Kaart 27 (feedback Kim 02.09.2026, "geen padding"): de lijst+detail-
   indeling loopt rand-tot-rand door het paneel; de 22px zijpadding van
   .pulse-panel (en de onderpadding) worden hier teruggerekend. De
   onderhoeken ronden mee met het paneel, anders steekt de lila lijstkolom
   vierkant uit de afgeronde kaart. */
.pulse-mod-panel .pgs-split {
  margin: 0 -22px -22px;
  border-radius: 0 0 14px 14px;
  overflow: hidden;
}

/* Kaart 29 (Kim 02.09.2026): chat-layout. De view zet --pgs-split-h
   (viewport minus navbar en actiebalk); lijst en gesprek scrollen intern,
   de composer blijft onderaan in beeld. Zonder de variabele (JS nog niet
   gelopen) valt het terug op de oude meegroeiende hoogte. De 96px onder
   het paneel is hetzelfde sync-punt als _tasklist-settings.scss: balk 56
   + offset 16 + 24 lucht, zodat de onderkant nooit achter de balk valt. */
.pulse-detail-body--single {
  padding-bottom: 96px;
}

.pulse-mod-panel .pgs-split {
  height: var(--pgs-split-h, auto);
  max-height: var(--pgs-split-h, none);
  min-height: 480px;
}

.pulse-mod-panel .pgs-detail {
  min-height: 0;
  overflow: hidden;
}

.pulse-mod-panel .pgs-thread {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}

/* Datumvelden -> huiskalender (Kim 02.09.2026). De gedeelde popover met de
   qdnapro-date-picker hangt aan document.body, buiten de modal. Die staat op
   z-index 9000 (.qdnapro-modal) en de popover standaard op 1001, dus zonder
   deze regel opent de kalender ACHTER de stap-modal. 9400 is boven de
   "altijd bovenop"-laag 9300 die de flow editor gebruikt. Op het data-
   attribuut en niet op een class: qdnapro-popover overschrijft zijn eigen
   className bij elke render. Zie _campaign-head-scripts.html. */
.qdnapro-popover[data-pulse-date-pop] {
  z-index: 9400;
}

@property --fe2-beam-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}
.fe-font-preload {
  font-family: "Montserrat", sans-serif;
  position: absolute;
  visibility: hidden;
  pointer-events: none;
}

.fe-breadcrumb-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 16px;
  background: transparent;
}
.fe-breadcrumb-bar .fe-breadcrumb-back {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  color: #41499a;
  text-decoration: none;
  transition: background 120ms ease;
  flex-shrink: 0;
}
.fe-breadcrumb-bar .fe-breadcrumb-back:hover {
  background: rgba(65, 73, 154, 0.1);
}
.fe-breadcrumb-bar .fe-breadcrumb-back .mdi {
  font-size: 20px;
  line-height: 1;
}

.floweditor_modal .table-responsive {
  display: inline !important;
}

.floweditor_holder {
  overflow: hidden;
  width: 100%;
  height: 100%;
}

.floweditor_holder__canvas-row {
  display: flex;
  align-items: stretch;
  width: 100%;
  height: 100%;
}

.floweditor_holder__canvas-row > .floweditor-nodepicker-v2 {
  flex: 0 0 56px;
  min-width: 0;
  position: relative;
  z-index: 10;
}

.floweditor_holder__canvas-row > .fe-right-col {
  flex: 1 1 0%;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.floweditor_holder__canvas-row .fe-breadcrumb-host {
  flex: 0 0 auto;
}

.floweditor_holder__canvas-row .fe-right-col > .floweditor {
  flex: 1 1 0%;
  min-height: 0;
  width: auto;
  min-width: 0;
}

.fe-form-empty-hint {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 12;
  transform: translate(-50%, calc(-100% - 46px));
  width: 264px;
  max-width: 78%;
  background: #ffffff;
  border-radius: 14px;
  box-shadow: 0 18px 44px rgba(38, 42, 92, 0.2);
  padding: 16px 16px 18px;
  pointer-events: none;
  transition: opacity 160ms ease;
}
.fe-form-empty-hint::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -7px;
  width: 16px;
  height: 16px;
  background: #ffffff;
  transform: translateX(-50%) rotate(45deg);
  border-radius: 0 0 3px 0;
  box-shadow: 3px 3px 7px rgba(38, 42, 92, 0.1);
}

.fe-form-empty-hint__title {
  font-size: 15px;
  font-weight: 700;
  color: #2a2e5e;
  line-height: 1.3;
  margin-bottom: 4px;
  text-align: center;
}

.fe-form-empty-hint__sub {
  font-size: 12.5px;
  color: #6c7099;
  line-height: 1.4;
  margin-bottom: 14px;
  text-align: center;
}

.fe-form-empty-hint__card {
  border: 1.5px solid #e6e7ef;
  border-radius: 10px;
  background: #ffffff;
  box-shadow: 0 2px 8px rgba(38, 42, 92, 0.08);
  padding: 10px;
}

.fe-form-empty-hint__card-header {
  background: #eceefb;
  color: #3a4290;
  font-size: 12px;
  font-weight: 700;
  padding: 6px 8px;
  border-radius: 6px;
  margin-bottom: 10px;
}

.fe-form-empty-hint__card-field {
  height: 20px;
  border: 1.5px solid #e6e7ef;
  border-radius: 6px;
  background: #fbfbfe;
}
.fe-form-empty-hint__card-field + .fe-form-empty-hint__card-field {
  margin-top: 8px;
}

.floweditor-diagram-holder {
  width: 100%;
  height: 100%;
}

.floweditor_empty_state {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: #fff;
  z-index: 23;
  font-weight: 400;
  font-size: 18px;
  color: rgba(0, 0, 0, 0.4);
  text-align: center;
  cursor: pointer;
}

.floweditor_empty_state_text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  padding: 100px;
}

.floweditor_empty_state_text:hover {
  color: #158b6c;
}

.floweditor_empty_state_icon {
  font-size: 40px;
  display: block;
}

.floweditor-overflow-auto {
  max-height: 500px;
  overflow-x: auto;
}

.floweditor_modal-holder {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1001;
  overflow-y: auto;
}
.floweditor_modal-holder.-stacked {
  z-index: 9100;
}
.floweditor_modal-holder.-prompt-holder {
  z-index: 9300;
}

.floweditor_modal-background {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 1003;
  animation: modal-fade-in 200ms ease-out both;
}

.floweditor_modal,
.floweditor_menu {
  position: fixed;
  background: rgba(249, 249, 249, 0.75);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  animation: modal-scale-in 200ms cubic-bezier(0.16, 1, 0.3, 1) both;
  box-shadow: 0 2px 4px rgba(31, 14, 14, 0.15);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1004;
  border-radius: 30px;
  backface-visibility: hidden;
  padding: 2rem;
  max-height: 90vh;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(65, 73, 154, 0.3) transparent;
}
.floweditor_modal::-webkit-scrollbar,
.floweditor_menu::-webkit-scrollbar {
  width: 4px;
}
.floweditor_modal::-webkit-scrollbar-track,
.floweditor_menu::-webkit-scrollbar-track {
  background: transparent;
}
.floweditor_modal::-webkit-scrollbar-thumb,
.floweditor_menu::-webkit-scrollbar-thumb {
  background: rgba(65, 73, 154, 0.3);
  border-radius: 4px;
}
.floweditor_modal::-webkit-scrollbar-thumb:hover,
.floweditor_menu::-webkit-scrollbar-thumb:hover {
  background: rgba(65, 73, 154, 0.5);
}

.floweditor_menu {
  padding: 1rem;
  border-radius: 1rem;
}

@media (max-width: 1000px) {
  .floweditor_menu,
  .floweditor_modal {
    left: 50% !important;
    top: 50% !important;
  }
}
.floweditor_modal-title {
  display: flex;
  align-items: center;
}
.floweditor_modal-title .icon-wrapper {
  margin-right: 15px;
}
.floweditor_modal-title .icon-wrapper .ts-rounded-border-small {
  background: #000;
  height: 35px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 35px;
  border-radius: 0.225rem;
}
.floweditor_modal-title .icon-wrapper .ts-rounded-border-small i {
  color: #ffffff;
}

.floweditor_menu.-add-node {
  width: 370px;
}

.floweditor_modal.-translate-label {
  min-width: 500px;
}

.floweditor_modal.-template-manager {
  width: 80%;
  min-width: 1075px;
}

.floweditor_modal.-activities-manager {
  min-width: 500px;
}

.floweditor_modal.-conditions-manager {
  min-width: 950px;
}

.floweditor_modal.-node-options {
  min-width: 950px;
}

.floweditor_modal.-prompt {
  padding: 20px;
}

.floweditor_modal.-subflow-logic-and-rules,
.floweditor_modal.-action-node-options {
  width: 90%;
  max-width: 960px;
}
.floweditor_modal.-subflow-logic-and-rules .floweditor_modal-body,
.floweditor_modal.-action-node-options .floweditor_modal-body {
  overflow-y: auto;
  max-height: 80vh;
}

.floweditor_modal-header {
  border-bottom: 2px solid #31387a;
  font-size: 18px;
  /*margin: 15px 0;*/
  font-weight: 500;
  color: #333333;
  padding-bottom: 1rem;
  display: flex;
  align-items: center;
}
.floweditor_modal-header .fe-card {
  flex: 1;
  min-width: 0;
}
.floweditor_modal-header .ts-rounded {
  margin-right: 1rem;
}
.floweditor_modal-header .subtitle {
  display: block;
  font-weight: 400;
  font-size: 0.875rem;
}

.floweditor_modal-close {
  color: #000;
  opacity: 0.5;
  font-size: 18px;
  cursor: pointer;
  margin-left: auto;
}

.floweditor_modal-close:hover {
  color: #000;
  opacity: 0.75;
}

.floweditor_modal-close:before {
  font-family: "Material Design Icons";
  content: "\f0156";
}

.floweditor_modal-body {
  padding: 1rem;
}

.fe-header-color-picker {
  display: flex;
  align-items: center;
  margin-right: 1rem;
}

.fe-header-color-list {
  display: flex;
  align-items: center;
  gap: 6px;
}

.fe-header-color-input {
  display: none;
}

.fe-header-color-dot {
  display: block;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  cursor: pointer;
  border: 2px solid transparent;
  transition: transform 0.15s ease, border-color 0.15s ease;
}
.fe-header-color-dot:hover {
  transform: scale(1.2);
}

.fe-header-color-input:checked + .fe-header-color-dot {
  border-color: #fff;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.35);
  transform: scale(1.15);
}

.floweditor_modal-footer {
  display: flex;
  justify-content: flex-end;
  padding-top: 1rem;
}
.floweditor_modal-footer .btn:not(:first-child) {
  margin-left: 0.5rem;
}

.floweditor_modal-label {
  display: block;
  margin-bottom: 10px;
  position: relative;
}

.floweditor_modal-label.-error:after {
  font-family: "Material Design Icons";
  content: "\f0787";
  position: absolute;
  color: #e33244;
  right: 7px;
  font-size: 20px;
  top: 3px;
}

.floweditor_modal-error {
  display: none;
}

.floweditor_modal-label.-error .floweditor_modal-error {
  display: block;
  color: #df9292;
  font-style: italic;
  margin: 5px 0 0 20%;
}

.floweditor_modal-label.-error .floweditor_modal-input {
  border: 1px solid #df9292;
}

.floweditor_modal-label_text {
  float: left;
  width: 20%;
  margin: 6px 0 0;
}

.floweditor_modal-input {
  width: 80%;
}

input.floweditor_modal-separator-checkbox {
  float: left;
  margin-right: 5px;
}

.floweditor_modal-separator {
  margin: 10px 0 10px 0;
  font-weight: bold;
  display: block;
}

.floweditor_conditions-manager_list-holder {
  float: left;
  width: 45%;
  position: relative;
}

.floweditor_conditions-manager_list {
  border: 1px solid #e4e4e4;
  height: 400px;
  overflow-x: auto;
}

.floweditor_conditions-manager_list-loading {
  position: absolute;
  top: 75px;
  left: 1px;
  right: 1px;
  bottom: 1px;
  background-color: rgba(255, 255, 255, 0.8);
}

.floweditor_conditions-manager_list-spinner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #0ea57f;
  font-size: 24px;
}

.floweditor_conditions-manager_list-item {
  padding: 5px 10px;
}

.floweditor_conditions-manager_list-item.-selected {
  background: #1aae88;
  color: #fff;
}

.floweditor_conditions-manager_list-empty {
  padding: 5px 10px;
  font-style: italic;
  color: #a39f9f;
}

.floweditor_conditions-manager_list-search {
  display: block;
  margin: 10px 0;
}

.floweditor_conditions-manager_buttons {
  float: left;
  width: 10%;
  margin-top: 200px;
}

.floweditor_conditions-manager_button {
  float: left;
  margin: 0 0 15px 22px;
}

.floweditor_modal-separator.-clickable:hover {
  cursor: pointer;
  color: #158b6c;
}

.floweditor_menu-option-holder {
  max-height: 400px;
  overflow-x: auto;
}

.floweditor_menu-option {
  cursor: pointer;
  padding: 5px 10px;
  border-radius: 0.25rem;
  flex: 0 0 50%;
  display: flex;
  align-items: center;
}
.floweditor_menu-option#menu-node-type-10 .floweditor_menu-icon {
  color: #f5605a;
}
.floweditor_menu-option#menu-node-type-14 .floweditor_menu-icon {
  color: #4cb8ab;
}
.floweditor_menu-option#menu-node-type-15 .floweditor_menu-icon {
  color: #f6a855;
}
.floweditor_menu-option#menu-node-type-16 .floweditor_menu-icon {
  color: #f14167;
}

.floweditor_menu-option:hover,
.floweditor_menu-option.active {
  background: #eeeeee;
}

.floweditor_menu-icon {
  font-family: "Material Design Icons";
  font-size: 24px;
  float: left;
  margin-right: 10px;
}

.floweditor_menu-label {
  padding: 10px;
  font-weight: bold;
}

.floweditor_menu_input-holder {
  position: relative;
  margin-bottom: 10px;
}

.floweditor_menu_input-holder.-error:after {
  font-family: "Material Design Icons";
  content: "\f0787";
  position: absolute;
  color: #e33244;
  right: 7px;
  font-size: 20px;
  top: 3px;
}

.floweditor_menu_input {
  display: block;
  width: 100%;
}

.floweditor_menu_input-holder.-error .floweditor_menu_input {
  border: 1px solid #df9292;
}

.floweditor_menu_input-error-message {
  color: #df9292;
  font-style: italic;
  display: none;
}

.floweditor_menu_input-holder.-error .floweditor_menu_input-error-message {
  display: block;
}

.floweditor_menu-header {
  background-color: #5c82ed;
  color: #fff;
  border-radius: 0.25rem;
  padding: 8px 15px;
  text-align: center;
  position: relative;
}
.nodebar .floweditor_menu-header {
  width: 222px;
  margin-top: 0.5rem;
}
.floweditor_menu-header.header-collapse {
  cursor: pointer;
}
.floweditor_menu-header.header-collapse::after {
  content: "\f0d7";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  float: right;
}
.floweditor_menu-header.header-collapse.collapsed::after {
  content: "\f0d8";
}

.floweditor_menu-subheader {
  padding: 8px 15px;
  text-align: center;
  border-top: 1px solid #ababab;
  border-bottom: 1px solid #ababab;
}

.floweditor_menu-holder {
  padding: 8px 0;
}

.floweditor_menu-templates-options {
  margin: 10px 0;
  width: 550px;
  border-bottom: 1px solid #ccc;
  padding-bottom: 5px;
}

.floweditor_menu-templates-options:after {
  content: "";
  clear: both;
  display: block;
}

.floweditor_menu-label-templates {
  float: left;
  margin-right: 10px;
  font-weight: bold;
  padding-top: 7px;
}

.floweditor_menu-label-input {
  float: left;
  width: auto;
  padding: 3px 6px;
  font-size: 12px;
  margin-right: 20px;
}

.floweditor_menu-radio {
  float: left;
  margin: 7px 5px 0 10px;
}

.floweditor_menu-radio-input {
  float: left;
  margin: 2px 5px 0 10px;
}

.floweditor_menu-loading,
.floweditor_menu-empty {
  font-style: italic;
  padding: 10px 0;
}

.floweditor_menu-loader {
  color: #0ea57f;
}

.floweditor-toolbar-label-holder {
  position: relative;
  width: 100%;
  margin-right: 10px;
}

.floweditor-toolbar-label-holder.-error:after {
  font-family: "Material Design Icons";
  content: "\f0787";
  position: absolute;
  color: #e33244;
  right: 7px;
  font-size: 20px;
  top: 3px;
}

.floweditor-toolbar-label-input {
  width: 100%;
  max-height: 220px;
}

.floweditor-toolbar-label-holder.-error .floweditor-toolbar-label-input {
  border: 1px solid #df9292;
}

.floweditor-toolbar-label-button {
  float: left;
  width: 25%;
}

.floweditor-toolbar-label-error-message {
  color: #df9292;
  font-style: italic;
  float: left;
  clear: both;
  margin: 0 0 10px 0;
}

.floweditor-toolbar-translate-link {
  color: #3f469c;
  cursor: pointer;
  margin: 0 0 10px 0;
  float: left;
  clear: both;
  font-weight: 500;
}

.floweditor-toolbar-translate-link:hover {
  color: #2d336f;
}

.floweditor-toolbar-translate-link.-error {
  color: #df9292;
}

.floweditor-toolbar-translate-link.-error:hover {
  color: #e33244;
}

.floweditor-toolbar-translate-link.-error:before {
  content: "\f02fc";
  color: #e33244;
}

.floweditor_activities-manager_search-holder {
  margin-bottom: 15px;
}

.floweditor_activities-manager_search-loading {
  font-style: italic;
}

.floweditor_activities-manager_search-spinner {
  color: #0ea57f;
}

.fe-section {
  clear: both;
  border-bottom: 2px solid #31387a;
  padding: 2.5em 0 2em;
}
.fe-section.no-border {
  border: none;
}
.fe-section:last-child {
  border-bottom: 0;
}

.fe-section-header {
  background-color: #5a5a5a;
  color: #fff;
  padding: 0.5rem 1rem;
  font-weight: 400;
  display: flex;
  align-items: center;
  margin-top: 0.5rem;
}

.fe-item-text:after,
.fe-item-text:before {
  font-family: "Material Design Icons";
  float: left;
  font-size: 17px;
  margin: -2px 5px 0 0;
  font-style: normal;
}

.fe-item-text.-smile-tevreden:before {
  color: #9ab498;
  content: "\f01f5";
}

.fe-item-text.-smile-ontevreden:before {
  color: #df9292;
  content: "\f01f8";
}

.fe-item-text.-smile-zeer-tevreden:before {
  color: #9ab498;
  content: "\f01f2";
}

.fe-item-text.-smile-zeer-ontevreden:before {
  color: #df9292;
  content: "\f0c6a";
}

.fe-item-text.-smile-neutraal:before {
  color: #df9292;
  content: "\f01f6";
}

.fe-item-text.-yes-node:before {
  color: #9ab498;
  content: "\f0513";
}

.fe-item-text.-no-node:before {
  color: #df9292;
  content: "\f0511";
}

.fe-item-text.-empty {
  color: #df9292;
}

.fe-item-text.-empty:after {
  content: "\f02fc";
  color: #e33244;
}

.fe-item-actions-icon {
  float: left;
  cursor: pointer;
  font-size: 22px;
  color: #3c4144;
  margin-left: 5px;
}

.fe-item-actions-icon:hover {
  color: #181a1c;
}

.fe-item-actions-icon-sed {
  float: left;
  cursor: pointer;
  font-size: 18px;
  color: #3c4144;
  margin: 5px 0px 5px 5px;
}

.fe-item-actions-icon-sed:hover {
  color: #181a1c;
}

.fe-item-actions-icon:before {
  font-family: "Material Design Icons";
}

.fe-item-actions-icon.-add-datapoint:before {
  content: "\f0419";
}

.fe-item-actions-icon.-remove-datapoint:before {
  content: "\f0377";
}

.fe-item-actions-icon.-unlink-link {
  color: #f87070;
}

.fe-item-actions-icon.-unlink-link:hover {
  color: #e33244;
}

.fe-item-actions-icon.-unlink-node:before {
  content: "\f033a";
}

.fe-item-actions-icon.-link-link {
  color: #3f469c;
}

.fe-item-actions-icon.-link-link:hover {
  color: #2d3371;
}

.fe-item-actions-icon.-link-node:before {
  content: "\f0339";
}

.fe-item-actions-icon.-remove-link {
  color: #3f469c;
}

.fe-item-actions-icon.-remove-link:hover {
  color: #2d3371;
}

.fe-item-actions-icon.-remove-link:before {
  content: "\f0a7a";
}

.fe-create-datapoint-holder {
  padding: 10px 0;
}

.fe-datapoints-list {
  position: fixed;
  margin: 0 !important;
  padding: 4px 0 !important;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(20, 25, 80, 0.18), 0 0 0 1px rgba(64, 73, 154, 0.12);
  max-height: 220px;
  overflow-y: auto;
  z-index: 9200;
}

.fe-add-datapoint {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  padding: 7px 12px;
  margin: 0 4px;
  border-radius: 6px;
  background: transparent;
  font-weight: normal;
  cursor: pointer;
  border-bottom: 1px solid #f0f1f8;
}
.fe-add-datapoint:last-child {
  border-bottom: none;
}
.fe-add-datapoint:hover {
  background: #f0f1f8;
}

.fe-dp-label {
  font-size: 13px;
  color: #2a2e5e;
  line-height: 1.3;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fe-dp-type {
  font-size: 11px;
  color: #8890b8;
  white-space: nowrap;
  flex-shrink: 0;
}

.fe-tab {
  font-size: 25px;
  padding: 10px 15px;
  color: rgba(0, 0, 0, 0.5);
  cursor: pointer;
}

.fe-tab:hover {
  color: #0ea57f;
}

.fe-save-methods {
  margin-bottom: 15px;
}

.fe-delete-template {
  font-family: "Material Design Icons";
  font-size: 18px;
  color: #e33244;
  float: right;
  cursor: pointer;
}

.fe-delete-template:hover {
  color: #843534;
}

.fe-delete-template:before {
  content: "\f1c0";
}

.fe-node-icon {
  font-family: "Material Design Icons";
  float: left;
  width: 44px;
  height: 44px;
  position: relative;
  border-radius: 0.625rem;
  box-sizing: border-box;
  font-size: 24px;
  color: #ffffff;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 15px;
}

.fe-versions {
  display: none;
  position: absolute;
  top: 15px;
  left: 15px;
  z-index: 10;
  padding: 7px 5px;
  background: #ffffff;
}

/*.fe-versions-text,
.fe-versions-item {
    float: left;
    font-size: 12px;
    padding: 7px 5px;
}*/
/*.fe-versions-text {
    padding: 7px 0 7px 10px;
}*/
.ts-editor-big-btn {
  /*line-height: 50px;*/
}

.fe-versions-text {
  font-size: 12px;
  padding: 0 15px;
  font-weight: 400;
}

.fe-versions-item:not(.-active) {
  cursor: pointer;
  text-decoration: underline;
  color: #1aae88;
}

.fe-versions-item:not(.-active):hover {
  color: #158b6c;
}

.fe-versions-item.-active {
  font-weight: bold;
}

.fe-versions-activate {
  float: right;
  margin-left: 10px;
}

.fe-versions-select {
  float: left;
  padding: 5px;
  font-size: 12px;
  width: 40px;
  margin: 0 0 0 10px;
  height: auto;
}

.fe-properties-errors {
  color: #df9292;
  margin-bottom: 10px;
}

.fe-properties-error:before {
  font-family: "Material Design Icons";
  content: "\f2fc";
  float: left;
  font-size: 17px;
  margin: -2px 5px 0 0;
  color: #e33244;
}

.fe-properties-image {
  width: 100%;
  margin: 5px 0 10px;
  border: 1px solid #cbd5dd;
}

.fe-modal {
  position: relative;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  width: 100%;
  height: 50vh;
}
.fe-modal .modal-dialog {
  background: #fff;
  border-radius: 8px;
  margin: 0px;
  width: 100%;
  max-width: 100%;
}
.fe-modal .modal-dialog .cropper-crop-box, .fe-modal .modal-dialog .cropper-view-box {
  border-radius: 15px;
  outline: 0;
}
.fe-modal .modal-dialog .cropper-line, .fe-modal .modal-dialog .cropper-point, .fe-modal .modal-dialog .cropper-face {
  background-color: transparent;
}

.fe-properties-no-meta {
  margin: 5px 0 10px;
  color: #df9292;
}

.fe-properties-no-meta:before {
  font-family: "Material Design Icons";
  content: "\f2fc";
  color: #e33244;
  float: left;
  font-size: 17px;
  margin: -2px 5px 0 0;
}

textarea.fe-properties-textarea {
  width: 100%;
  display: block;
  margin: 10px 0;
  height: 150px;
}

/*
Marx's stuff
 */
.floweditor_modal-button {
  float: left;
  margin: 10px 0 0 0;
  width: calc(50% - 5px);
}

.floweditor_modal-button-100 {
  float: left;
  margin: 10px 0 0 0;
  width: 100%;
}

.floweditor_modal-button.-yes {
  margin-right: 10px;
}

.floweditor-toolbar .fe-add-margin-10 {
  margin: 1em;
}

.floweditor-toolbar .fe-add-margin-12 {
  margin: 1.2em;
}

.floweditor-toolbar .fe-add-margin-15 {
  margin: 1.5em;
}

.floweditor-toolbar .fe-add-margin-20 {
  margin: 2em;
}

.floweditor-toolbar .fe-add-padding-12 {
  padding: 1.2em;
}

.floweditor-modal .fe-m-content {
  box-shadow: 0px 0px 60px 10px rgba(0, 0, 0, 0.3);
}

#fe-working-target {
  margin-left: auto;
  display: flex;
  align-items: center;
}

.fe-working-indicator {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 4px 12px 4px 8px;
  background: rgba(65, 73, 154, 0.82);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 20px;
  color: #fff;
  font-size: 12px;
  font-family: "Inter", system-ui, sans-serif;
  font-weight: 500;
  pointer-events: none;
  white-space: nowrap;
}
.fe-working-indicator .mdi {
  font-size: 14px;
  line-height: 1;
}

.fe-working-fade-enter-active,
.fe-working-fade-leave-active {
  transition: opacity 180ms ease, transform 180ms ease;
}

.fe-working-fade-enter,
.fe-working-fade-enter-from,
.fe-working-fade-leave-to {
  opacity: 0;
  transform: translateY(-6px);
}

.floweditor-controls {
  position: absolute;
  bottom: 15px;
  left: 15px;
  width: 150px;
  display: flex;
  justify-content: space-between;
}

.floweditor-controls .floweditor-zoom {
  display: flex;
  margin-right: 15px;
}

.floweditor-status {
  position: absolute;
  top: 15px;
  left: 15px;
  display: flex;
}

.floweditor-status p {
  font-size: 24px;
  color: #676767;
  margin: 0;
}

body {
  transition: margin-right 240ms cubic-bezier(0.4, 0, 0.2, 1);
}

body.fe-tp-open {
  margin-right: 420px;
}

.floweditor {
  position: relative;
  width: 100%;
  height: 100%;
}

.floweditor .form-control {
  border-radius: 0.625rem;
  padding: 0.75rem 0.8rem;
  height: auto;
}

.floweditor-canvas {
  background: #e6e9ff;
  position: relative;
  width: 100%;
  height: 100%;
}

.floweditor-publish {
  position: relative;
}
.floweditor-publish .floweditor-canvas {
  background: #e6e9ff;
}
.floweditor-publish .floweditor-buttons {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  padding: 1rem;
}

.floweditor-toolbar.nodebar {
  position: absolute;
  top: 1em;
  left: 1em;
  z-index: 10;
  zoom: 80%;
}
.floweditor-toolbar.toolbar {
  position: absolute;
  top: 1em;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  zoom: 80%;
}

.floweditor-toolbar.toolbar .toolbar_menu-wrapper {
  max-width: none;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu {
  background: rgba(65, 73, 154, 0.55);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  padding: 0.5em;
  border-radius: 1em;
  display: flex;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .toolbar_sub_menu {
  display: flex;
  gap: 0.2em;
  border-right: 1px #dfe2fb solid;
  padding: 0 0.75em;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .toolbar_sub_menu:last-child {
  border-right: none;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .menu-item {
  display: flex;
  gap: 1em;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .menu-button {
  border-radius: 1em;
  color: #fff;
  padding: 0.5em 1em;
  background: #3b257a;
  cursor: pointer;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .menu-button.button-icon {
  font-size: 1.6em;
  padding: 0em 0.25em;
  background: transparent;
  line-height: 1.5em;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .menu-button:hover {
  background: #1f205c;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-version-item {
  position: relative;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-version-item.fe-version-item--dirty::after {
  content: "";
  position: absolute;
  top: -4px;
  right: -4px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #f59e0b;
  animation: fe-publish-pulse 2s ease-in-out infinite;
  pointer-events: none;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap {
  display: flex;
  align-items: center;
  align-self: center;
  gap: 4px;
  border-radius: 20px;
  padding: 0 4px;
  height: 1.5em;
  width: 1.6em;
  overflow: hidden;
  cursor: pointer;
  background: transparent;
  border: 1px solid transparent;
  transition: width 240ms cubic-bezier(0.4, 0, 0.2, 1), background 200ms ease, border-color 200ms ease;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap--active {
  width: 210px;
  height: 30px;
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.3);
  cursor: default;
  padding: 0 8px 0 6px;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap .fe-search-input,
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap .fe-search-close {
  opacity: 0;
  pointer-events: none;
  transition: opacity 140ms ease 80ms;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap--active .fe-search-input, .floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap--active .fe-search-close {
  opacity: 1;
  pointer-events: auto;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap .fe-search-icon {
  color: #fff !important;
  font-size: 1.6em;
  flex-shrink: 0;
  line-height: 1;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap--active .fe-search-icon {
  font-size: 1.1em;
  color: rgba(255, 255, 255, 0.75) !important;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap .fe-search-input {
  background: transparent !important;
  border: none !important;
  outline: none !important;
  color: #fff !important;
  font-size: 0.85em;
  width: 100%;
  min-width: 0;
  padding: 0;
  box-shadow: none !important;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap .fe-search-input::placeholder {
  color: rgba(255, 255, 255, 0.5) !important;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap .fe-search-close {
  color: rgba(255, 255, 255, 0.65) !important;
  cursor: pointer;
  display: flex;
  align-items: center;
  flex-shrink: 0;
  line-height: 1;
  text-decoration: none !important;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap .fe-search-close .mdi {
  color: rgba(255, 255, 255, 0.65) !important;
  font-size: 1em;
  line-height: 1;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap .fe-search-close:hover .mdi {
  color: #fff !important;
}

.floweditor-toolbar-v2 {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 10;
  zoom: 80%;
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.glass2 {
  background: rgba(255, 255, 255, 0.72);
  backdrop-filter: blur(14px) saturate(1.4);
  -webkit-backdrop-filter: blur(14px) saturate(1.4);
  border: 1px solid rgba(255, 255, 255, 0.6);
  box-shadow: 0 12px 30px rgba(38, 42, 92, 0.14), inset 0 1px 0 rgba(255, 255, 255, 0.5);
  border-radius: 999px;
  pointer-events: auto;
}

.fe2-toprow {
  /* Breedte waarover de zoom-extra's uitschuiven. ⚠️ MOET meegroeien met het
     aantal knoppen erin: de groep heeft `overflow: hidden`, dus wat niet past
     verdwijnt ZONDER spoor — geen scrollbar, geen foutmelding. Gemeten
     2026-08-08 nadat de twee exportknoppen erbij kwamen: 5 knoppen van 32 px
     met 4 tussenruimtes van 3 px = 172 px nodig, en op 129 px waren de laatste
     twee simpelweg onzichtbaar (melding Jan: "ik zie de knop nergens"). Exact
     172 was nog te krap — op de subpixel viel de laatste er net buiten — dus
     een paar pixels lucht.
     ⚠️ Deze partial komt in TWEE stylesheets terecht (style.css én style-v1.css)
     en de flow editor laadt ze BEIDE, met style-v1.css als laatste. Alleen
     `gulp sass` draaien verandert dus niets zichtbaars: `gulp sass-v1` moet er
     ook langs. Dat kostte hier een ronde.
     Zelfde variabele stuurt ook de tegen-verschuiving die de knoppen onder de
     cursor houdt, dus die blijft automatisch kloppen. */
  --fe2-zoom-extra-w: 180px;
  position: absolute;
  top: 1em;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 14px;
  transition: transform 220ms cubic-bezier(0.4, 0, 0.2, 1);
}

.fe2-toprow:has(.fe2-zoom:hover),
.fe2-toprow:has(.fe2-zoom:focus-within) {
  transform: translateX(calc(-50% - var(--fe2-zoom-extra-w) / 2));
}

.fe2-barwrap {
  position: relative;
  pointer-events: none;
}

.fe2-bar {
  display: flex;
  align-items: center;
  gap: 3px;
  padding: 8px;
}

.fe2-divider {
  width: 1px;
  height: 26px;
  background: rgba(38, 42, 92, 0.14);
  margin: 0 7px;
  flex: 0 0 auto;
}

.fe2-icon-btn {
  width: 40px;
  height: 40px;
  min-width: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #52579c;
  cursor: pointer;
  text-decoration: none;
  transition: background-color 120ms ease, color 120ms ease;
  flex: 0 0 auto;
}
.fe2-icon-btn .mdi {
  font-size: 22px;
  line-height: 1;
}
.fe2-icon-btn:hover {
  background: rgba(65, 73, 154, 0.1);
  color: #2f3570;
}

.fe2-icon-btn--disabled {
  opacity: 0.35;
  pointer-events: none;
}

.fe2-icon-btn--labelled {
  width: auto;
  min-width: 0;
  border-radius: 999px;
  padding: 0 14px 0 10px;
  gap: 7px;
}

.fe2-btn-label {
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
}

.fe2-zoom {
  display: flex;
  align-items: center;
  gap: 3px;
  pointer-events: auto;
}

.fe2-zoom-core {
  display: flex;
  align-items: center;
  gap: 3px;
  flex: 0 0 auto;
}

.fe2-zoom-pct {
  font-size: 14px;
  font-weight: 700;
  color: #41499a;
  font-variant-numeric: tabular-nums;
  user-select: none;
  min-width: 42px;
  text-align: center;
  flex: 0 0 auto;
}

.fe2-zoom-extra {
  display: flex;
  align-items: center;
  gap: 3px;
  opacity: 0;
  width: 0;
  overflow: hidden;
  transition: opacity 140ms ease 60ms, width 220ms cubic-bezier(0.4, 0, 0.2, 1);
}

.fe2-zoom:hover .fe2-zoom-extra,
.fe2-zoom:focus-within .fe2-zoom-extra {
  opacity: 1;
  width: var(--fe2-zoom-extra-w);
}

.fe2-play {
  position: relative;
  overflow: hidden;
  width: 52px;
  height: 52px;
  min-width: 52px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #1e1f20;
  cursor: pointer;
  text-decoration: none;
  pointer-events: auto;
  flex: 0 0 auto;
  transition: background-color 140ms ease, transform 100ms ease;
}
.fe2-play .mdi {
  font-size: 26px;
  line-height: 1;
  margin-left: 2px;
  position: relative;
  z-index: 1;
}
.fe2-play:active {
  transform: scale(0.94);
}
.fe2-play--loading {
  pointer-events: none;
}
.fe2-play::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, rgba(108, 92, 231, 0) 38%, rgba(108, 92, 231, 0.3) 50%, rgba(108, 92, 231, 0) 62%);
  transform: translateX(-130%);
  animation: fe2-play-shimmer 9s ease-in-out infinite;
  pointer-events: none;
}

@keyframes fe2-play-shimmer {
  0%, 88% {
    transform: translateX(-130%);
  }
  100% {
    transform: translateX(130%);
  }
}
.fe2-play::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 2px;
  background: conic-gradient(from var(--fe2-beam-angle), transparent 0deg, transparent 250deg, rgba(70, 82, 243, 0.95) 305deg, #b9c0f7 335deg, transparent 360deg);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask-composite: exclude;
  pointer-events: none;
  opacity: 0;
  transition: opacity 160ms ease;
  z-index: 0;
}

.fe2-play:hover::before,
.fe2-play:focus-visible::before {
  opacity: 1;
  animation: fe2-play-beam 1.6s linear infinite;
}

@keyframes fe2-play-beam {
  to {
    --fe2-beam-angle: 360deg;
  }
}
.fe2-context {
  position: absolute;
  top: calc(100% + 10px);
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  padding: 5px;
  pointer-events: auto;
  animation: fe2-context-in 160ms ease-out;
}

@keyframes fe2-context-in {
  from {
    opacity: 0;
    transform: translateX(-50%) translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
}
.fe2-context-btn {
  display: flex;
  align-items: center;
  gap: 7px;
  height: 34px;
  padding: 0 14px 0 11px;
  border-radius: 999px;
  color: #c0392b;
  cursor: pointer;
  text-decoration: none;
  transition: background-color 120ms ease, color 120ms ease;
}
.fe2-context-btn .mdi {
  font-size: 19px;
  line-height: 1;
}
.fe2-context-btn:hover {
  background: rgba(192, 57, 43, 0.1);
  color: #96281b;
}

.fe2-duplicate-hint {
  position: absolute;
  top: 115px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 60;
  display: flex;
  align-items: center;
  gap: 8px;
  max-width: min(520px, 100% - 32px);
  padding: 9px 16px;
  border-radius: var(--r-pill, 999px);
  background: var(--c-bg-card, #fff);
  color: var(--c-text-body, #14151a);
  font-size: 13px;
  line-height: 1.35;
  box-shadow: 0 8px 24px rgba(20, 25, 80, 0.18), 0 2px 6px rgba(20, 25, 80, 0.1);
  pointer-events: none;
}
.fe2-duplicate-hint .mdi {
  font-size: 18px;
  line-height: 1;
  color: var(--c-brand-purple, #40499a);
}

.fe2-context-btn--duplicate {
  color: var(--c-brand-purple, #40499a);
}
.fe2-context-btn--duplicate:hover {
  background: rgba(64, 73, 154, 0.1);
  color: var(--c-brand-purple, #40499a);
}

.fe2-context-btn--duplicate.fe2-context-btn--active {
  background: rgba(64, 73, 154, 0.14);
  color: var(--c-brand-purple, #40499a);
}

.fe2-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  padding-right: 4px;
}

.fe2-header-item {
  display: inline-flex;
}

.fe2-inline-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #f59e0b;
  flex: 0 0 auto;
  animation: fe-publish-pulse 2s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .fe2-inline-dot {
    animation: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .fe2-zoom-extra, .fe2-play, .fe2-context {
    transition: none;
    animation: none;
  }
  .fe2-play::after {
    animation: none;
    opacity: 0;
  }
}
.fe2-search-item {
  display: flex;
  align-items: center;
}

.fe2-bar .fe-search-wrap {
  position: relative;
  display: flex;
  align-items: center;
  gap: 4px;
  border-radius: 22px;
  padding: 0 4px;
  height: 40px;
  width: 40px;
  overflow: hidden;
  cursor: pointer;
  background: transparent;
  border: 1px solid transparent;
  transition: width 240ms cubic-bezier(0.4, 0, 0.2, 1), background 200ms ease, border-color 200ms ease;
}
.fe2-bar .fe-search-wrap:not(.fe-search-wrap--active):hover {
  background: rgba(65, 73, 154, 0.1);
}
.fe2-bar .fe-search-wrap:not(.fe-search-wrap--active):hover .fe-search-icon {
  color: #2f3570 !important;
}
.fe2-bar .fe-search-wrap:not(.fe-search-wrap--active) .fe-search-icon {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
.fe2-bar .fe-search-wrap--active {
  width: 220px;
  background: rgba(65, 73, 154, 0.08);
  border-color: rgba(65, 73, 154, 0.2);
  cursor: default;
  padding: 0 10px 0 8px;
}
.fe2-bar .fe-search-wrap .fe-search-input, .fe2-bar .fe-search-wrap .fe-search-close {
  opacity: 0;
  pointer-events: none;
  transition: opacity 140ms ease 80ms;
}
.fe2-bar .fe-search-wrap--active .fe-search-input, .fe2-bar .fe-search-wrap--active .fe-search-close {
  opacity: 1;
  pointer-events: auto;
}
.fe2-bar .fe-search-wrap .fe-search-icon {
  color: #1e1f20 !important;
  font-size: 22px;
  flex-shrink: 0;
  line-height: 1;
}
.fe2-bar .fe-search-wrap--active .fe-search-icon {
  font-size: 17px;
  color: #6d72a8 !important;
}
.fe2-bar .fe-search-wrap .fe-search-input {
  background: transparent !important;
  border: none !important;
  outline: none !important;
  color: #262a5c !important;
  font-size: 14px;
  width: 100%;
  min-width: 0;
  padding: 0;
  box-shadow: none !important;
}
.fe2-bar .fe-search-wrap .fe-search-input::placeholder {
  color: rgba(38, 42, 92, 0.4) !important;
}
.fe2-bar .fe-search-wrap .fe-search-close {
  cursor: pointer;
  display: flex;
  align-items: center;
  flex-shrink: 0;
  line-height: 1;
  text-decoration: none !important;
}
.fe2-bar .fe-search-wrap .fe-search-close .mdi {
  color: rgba(38, 42, 92, 0.45) !important;
  font-size: 15px;
  line-height: 1;
}
.fe2-bar .fe-search-wrap .fe-search-close:hover .mdi {
  color: #2f3570 !important;
}
.fe2-bar .fe-translate-btn--active {
  background: rgba(65, 73, 154, 0.14);
  color: #2f3570 !important;
}
.fe2-bar .fe-translate-btn--incomplete::after {
  top: 2px;
  right: 4px;
}
.fe2-bar .fe-preview-toolbar-btn {
  color: #52579c;
  opacity: 1;
}
.fe2-bar .fe-preview-toolbar-btn:hover {
  color: #2f3570;
  background: rgba(65, 73, 154, 0.1);
}
.fe2-bar .qdnapro-button.button-on-purple {
  color: #41499a !important;
}
.fe2-bar .qdnapro-button.button-on-purple:hover:not(.button-disabled),
.fe2-bar .qdnapro-button.button-on-purple:active:not(.button-disabled) {
  background: rgba(65, 73, 154, 0.1) !important;
}
.fe2-bar .qdnapro-button.button-on-purple-solid:not(.button-disabled) {
  background: #41499a !important;
}
.fe2-bar .qdnapro-button.button-on-purple-solid:hover:not(.button-disabled),
.fe2-bar .qdnapro-button.button-on-purple-solid:active:not(.button-disabled) {
  background: #2f3570 !important;
}
.fe2-bar .qdnapro-button.button-disabled {
  background: transparent !important;
  color: rgba(38, 42, 92, 0.36) !important;
  border: 1.5px solid rgba(38, 42, 92, 0.18) !important;
}

.floweditor-toolbar .nodebar_menu-wrapper {
  display: flex;
}

@keyframes nodebar-slide-in {
  from {
    opacity: 0;
    transform: translateX(-10px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes modal-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes modal-scale-in {
  from {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.95);
  }
  to {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }
}
.floweditor-toolbar .nodebar_menu {
  font-size: 0.8em;
}
.floweditor-toolbar .nodebar_menu.primary-menu {
  color: #fff;
  max-width: 220px;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 1em;
  overflow: hidden;
}
.floweditor-toolbar .nodebar_menu.primary-menu .nodebar_menu-item {
  cursor: pointer;
  background: rgba(65, 73, 154, 0.55);
}
.floweditor-toolbar .nodebar_menu.primary-menu .nodebar_menu-item:first-child {
  border-radius: 1em 1em 0 0;
}
.floweditor-toolbar .nodebar_menu.primary-menu .nodebar_menu-item:last-child {
  border-radius: 0 0 1em 1em;
}
.floweditor-toolbar .nodebar_menu.primary-menu .nodebar_menu-item:hover, .floweditor-toolbar .nodebar_menu.primary-menu .nodebar_menu-item.active {
  background: rgba(59, 37, 122, 0.7);
}
.floweditor-toolbar .nodebar_menu.primary-menu .nodebar_menu-item:active {
  background: rgba(31, 32, 92, 0.8);
}
.floweditor-toolbar .nodebar_menu.secondary-menu {
  color: #41499a;
  font-weight: bold;
  display: none;
  max-height: 60vh;
  overflow-y: scroll;
  margin-left: -20px;
  scrollbar-width: thin;
  scrollbar-color: rgba(65, 73, 154, 0.3) transparent;
}
.floweditor-toolbar .nodebar_menu.secondary-menu::-webkit-scrollbar {
  width: 4px;
}
.floweditor-toolbar .nodebar_menu.secondary-menu::-webkit-scrollbar-track {
  background: transparent;
}
.floweditor-toolbar .nodebar_menu.secondary-menu::-webkit-scrollbar-thumb {
  background: rgba(65, 73, 154, 0.3);
  border-radius: 4px;
}
.floweditor-toolbar .nodebar_menu.secondary-menu::-webkit-scrollbar-thumb:hover {
  background: rgba(65, 73, 154, 0.5);
}
.floweditor-toolbar .nodebar_menu.secondary-menu {
  border-radius: 0 1em 1em 1em;
  background: rgba(255, 255, 255, 0.72);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 4px 24px rgba(65, 73, 154, 0.12);
}
.floweditor-toolbar .nodebar_menu.secondary-menu.active {
  display: block;
  animation: nodebar-slide-in 180ms cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
.floweditor-toolbar .nodebar_menu.secondary-menu .nodebar_menu-item {
  cursor: move;
  background: transparent;
}
.floweditor-toolbar .nodebar_menu.secondary-menu .nodebar_menu-item:first-child {
  border-radius: 0 1em 0 0;
}
.floweditor-toolbar .nodebar_menu.secondary-menu .nodebar_menu-item:last-child {
  border-radius: 0 0 1em 1em;
}
.floweditor-toolbar .nodebar_menu.secondary-menu .nodebar_menu-item:hover, .floweditor-toolbar .nodebar_menu.secondary-menu .nodebar_menu-item.active {
  background: rgba(235, 235, 235, 0.7);
}
.floweditor-toolbar .nodebar_menu .nodebar_menu-item {
  padding: 0.75em 1em;
  display: flex;
  align-items: center;
  gap: 0.75em;
  width: 100%;
  font-weight: 500;
  -webkit-user-select: none;
  user-select: none;
}
.floweditor-toolbar .nodebar_menu .nodebar_menu-item.option {
  background: rgba(59, 37, 122, 0.65);
  border-bottom: 1px rgba(31, 32, 92, 0.6) solid;
  padding: 0em 1em;
}
.floweditor-toolbar .nodebar_menu .nodebar_menu-item.option .nodebar_menu-icon {
  font-family: "Material Design Icons";
  font-size: 18px;
  font-size: #939acd;
}
.floweditor-toolbar .nodebar_menu .nodebar_menu-item.option .nodebar_menu-icon .mdi {
  margin-right: -10px;
}
.floweditor-toolbar .nodebar_menu .nodebar_menu-icon {
  font-family: "Material Design Icons";
  font-size: 18px;
}

.floweditor-toolbar.nodebar.minimized .primary-menu .nodebar_menu-item span.nodebar_menu-title {
  display: none;
}
.floweditor-toolbar.nodebar.minimized .secondary-menu {
  margin-left: 0px;
}

.floweditor-toolbar .fe-tabs {
  flex-basis: 50px;
  border-left: 1px solid #efefef;
  background-color: #fafafa;
}

.floweditor-toolbar .fe-tabs .fe-wrapper {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  /*height: 100vh;*/
  height: 100%;
}

.floweditor-toolbar .fe-tabs .fe-wrapper ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.floweditor-toolbar .fe-tabs .fe-wrapper ul:first-child {
  margin-top: 65px;
}

.floweditor-toolbar .fe-tabs .fe-wrapper ul:last-child {
  margin-bottom: 10px;
}

.floweditor-toolbar .fe-right {
  flex-basis: 100%;
  /*height: 100vh;*/
  height: 100%;
  overflow-x: scroll;
  color: #66584e;
}

.floweditor-toolbar .fe-right .fe-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  /*height: 100vh;*/
  height: 100%;
}

.floweditor-toolbar .fe-right .fe-empty p {
  font-weight: 400;
  font-size: 18px;
  color: rgba(0, 0, 0, 0.4);
  text-align: center;
}

.floweditor-toolbar .fe-right .fe-empty p i {
  font-size: 40px;
  display: block;
}

.floweditor-toolbar .fe-node-frame {
  border-radius: 8px;
  background-color: #f7f7f7;
  box-shadow: 0 2px 4px rgba(31, 14, 14, 0.15);
  width: 50%;
  padding: 15px 10px 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  font-weight: 400;
  color: #777;
}
.floweditor-toolbar .fe-node-frame .ts-rounded {
  background-color: #c5c5c5;
  color: #fff;
  margin-bottom: 0.5rem;
  border-radius: 0.375rem;
  width: 44px;
  height: 44px;
}
.floweditor-toolbar .fe-node-type {
  color: #acacac;
  font-size: 12px;
  margin-top: 0.5rem;
}

.floweditor-toolbar .fe-right .fe-wrapper {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  /*height: 100vh;*/
  height: 100%;
}

.floweditor-toolbar .fe-right .fe-wrapper footer {
  border-top: 1px solid #eaeaea;
}

.floweditor-toolbar .fe-right .fe-wrapper footer .fe-card-body {
  display: block;
}

.floweditor-toolbar .fe-section-wrapper {
  display: flex;
  flex-grow: 1;
}
.floweditor-toolbar .fe-section-wrapper > .fe-right {
  overflow-x: visible;
}

.floweditor-toolbar .fe-section .fe-card-body {
  display: none;
}

.floweditor-toolbar .fe-section.fe-open .fe-card-body {
  display: block;
  min-height: 34px;
}

.floweditor-toolbar .fe-section .fe-card-body i {
  font-size: 18px;
}

.floweditor-toolbar .fe-section .fe-card-body .fe-card-action-bar {
  display: flex;
  justify-content: space-between;
  flex-wrap: nowrap;
  align-items: center;
  border-bottom: 1px solid #eaeaea;
  padding-bottom: 10px;
}

.floweditor-toolbar .fe-section .fe-card-body .fe-card-overlay {
  padding: 0 12px;
  box-shadow: 0px 5px 50px 2px rgba(0, 0, 0, 0.1);
}

.floweditor-toolbar .fe-section .fe-card-body .fe-card-overlay .fe-title {
  background: none;
  padding-left: 0;
  padding-right: 0;
  font-size: 14px;
  border-top: none;
  border-bottom: none;
}

.floweditor-toolbar .fe-section .fe-card-body .fe-card-overlay .fe-title i {
  font-size: 14px;
}

.floweditor-toolbar .fe-section ul {
  list-style: none;
  margin: 1em 0 0 0;
  padding: 0;
  /*overflow-y: auto;
  overflow-x: hidden;
  max-height: 223px;*/
  -moz-user-select: none;
}

.floweditor-toolbar .fe-section .fe-card-body ul li {
  padding-bottom: 1em;
  padding-right: 1.5rem;
}

.floweditor-toolbar .fe-section .fe-card-body ul li span.fe-item-subtext {
  display: block;
}

.floweditor-toolbar .fe-section .fe-tab-title,
.floweditor-toolbar .fe-section .fe-title {
  padding: 0.8em 1.2em;
  letter-spacing: 0.2px;
  color: #636363;
}

.floweditor-toolbar .fe-section .fe-card-body .fe-item-content .fe-item-actions a {
  /*margin-right: 10px;*/
}

.floweditor-toolbar .fe-section .fe-card-body .fe-item-content .fe-item-actions a:last-child {
  margin-right: 0;
}

.floweditor-toolbar .fe-section .fe-card-body .fe-item-content {
  display: flex;
  justify-content: space-between;
}

.floweditor-toolbar .fe-section .fe-tab-title {
  background: #fafafa;
  color: rgba(0, 0, 0, 0.6);
  font-size: 16px;
  font-weight: 400;
}

.floweditor-toolbar .fe-section .fe-tab-title span,
.floweditor-modal .fe-m-content .fe-m-body .fe-sections-overview ul li a span,
.floweditor-modal .fe-m-content .fe-m-body .fe-or-line {
  color: rgba(0, 0, 0, 0.4);
}

.floweditor-toolbar .fe-section .fe-tab-title span {
  display: block;
  font-size: 14px;
}

.floweditor-toolbar .fe-section .fe-title {
  background: #fafafa;
  font-size: 14px;
  font-weight: 400;
  border-top: 1px solid #eee;
}

.floweditor-toolbar .fe-section.fe-open .fe-title {
  background-color: #f3f3f3;
}

.floweditor-toolbar .fe-section .fe-btn {
  margin-bottom: 0.8em;
}

.floweditor-modal {
  display: none;
  position: fixed;
  z-index: 1;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
}

.floweditor-modal.fe-open {
  display: block;
}

.floweditor-modal .fe-m-content {
  background-color: #fefefe;
  margin: 10% auto;
  padding: 30px 25px;
  width: 80%;
}

.floweditor-modal .fe-m-content .fe-m-header {
  border-bottom: 1px solid #e4e4e4;
  margin-bottom: 30px;
}

.floweditor-modal .fe-m-content .fe-m-header h2 {
  font-size: 18px;
  margin: 15px 0;
  padding: 0;
}

.floweditor-modal .fe-m-content .fe-m-header h2 span {
  color: rgba(0, 0, 0, 0.4);
}

.floweditor-modal .fe-m-content .fe-m-body .fe-sections-overview {
  /* Reserved */
}

.fe-save-methods ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  justify-content: space-between;
  flex-wrap: nowrap;
  text-align: center;
  flex-direction: row;
}

.fe-save-methods ul li {
  width: 100%;
  margin-right: 15px;
}

.fe-save-methods ul li:last-child {
  margin-right: 0;
}

.fe-save-method {
  border: 2px solid rgba(0, 0, 0, 0.1);
  display: block;
  text-align: center;
  /*padding: 30px 15px;*/
  padding: 15px;
  text-decoration: none;
  color: #222222;
  cursor: pointer;
}

.fe-save-method:hover {
  background: rgba(14, 165, 127, 0.2);
}

.fe-save-method span {
  display: block;
  color: #9c9c9c;
}

.floweditor-modal .fe-m-content .fe-m-body .fe-sections-overview .fe-other-tools {
  /* Reserved */
}

.fe-or-line {
  margin-top: 35px;
  margin-bottom: 15px;
  border-top: 1px solid #e4e4e4;
  overflow: visible;
  padding: 0;
  font-weight: 600;
  text-align: center;
}

.fe-or-line:after {
  content: "or";
  display: inline-block;
  position: relative;
  top: -1em;
  font-size: 12px;
  padding: 0 0.95em;
  background: white;
}

.fe-other-tools ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  justify-content: space-between;
  flex-wrap: nowrap;
  text-align: center;
  flex-direction: column;
}

.fe-other-tools ul li {
  width: 100%;
}

.fe-other-tools ul li a {
  border: 2px solid rgba(0, 0, 0, 0.1);
  display: block;
  text-align: center;
  padding: 30px 15px;
  text-decoration: none;
}

.floweditor-modal .fe-m-content .fe-m-body .fe-sections {
  /* Reserved */
}

.floweditor-modal .fe-m-content .fe-m-body .fe-sections .fe-section {
  display: none;
}

.floweditor-modal .fe-m-content .fe-m-body .fe-sections .fe-section.fe-open {
  display: block;
}

.floweditor-modal .fe-m-content .fe-m-body .fe-sections .fe-section .fe-table-wrapper {
  max-height: 300px !important;
  overflow-x: scroll;
}

.floweditor-modal .fe-m-content .fe-m-footer {
  border-top: 1px solid #e4e4e4;
  margin-top: 30px;
  padding-top: 15px;
}

.floweditor-modal .fe-m-close {
  float: right;
  font-size: 16px;
}

.floweditor-modal .fe-m-close:hover,
.floweditor-modal .fe-m-close:focus {
  color: black;
  text-decoration: none;
  cursor: pointer;
}

.text-rules {
  color: #5a83ec;
}

.card-rules {
  background-color: rgb(231.7744565217, 237.5456521739, 252.3255434783);
  border: 1px solid #5a83ec;
  padding: 1.25rem;
  border-radius: 0.25rem;
  position: relative;
}
.card-rules h6 {
  color: #5a83ec;
  font-size: 1rem;
}
.card-rules .top-right {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
}
.card-rules .form-control {
  border-color: #5a83ec;
}
.card-rules .form-control:focus {
  box-shadow: 0 0 0 0.2rem rgba(90, 131, 236, 0.25);
}
.card-rules .form-control:disabled {
  background-color: rgb(245.4945652174, 247.8565217391, 253.9054347826);
}
.card-rules .rule-header {
  display: flex;
  flex-direction: row;
  font-size: 0.875rem;
  color: #5a83ec;
  text-transform: uppercase;
  text-align: center;
  margin-bottom: 1rem;
}
.card-rules .rule-header:before, .card-rules .rule-header:after {
  content: "";
  flex: 1;
  border-bottom: 1px dotted #5a83ec;
  margin: auto;
}
.card-rules .rule-header span {
  background-color: rgb(231.7744565217, 237.5456521739, 252.3255434783);
  border: 1px solid #5a83ec;
  padding: 0.375rem 1rem;
  border-radius: 0.25rem;
  overflow: hidden;
}
.card-rules .rule-header .btn-outline-primary {
  border-color: #5a83ec;
  color: #5a83ec;
  font-size: 0.875rem;
}
.card-rules .rule-header .btn-outline-primary:hover {
  background-color: #5a83ec;
  border-color: #5a83ec;
  color: #fff;
}
.card-rules .rule-header .btn-outline-primary:focus {
  box-shadow: 0 0 0 0.2rem rgba(90, 131, 236, 0.5);
}
.card-rules .rule-header .btn-outline-primary:not(:disabled):not(.disabled).active, .card-rules .rule-header .btn-outline-primary:not(:disabled):not(.disabled):active {
  color: #fff;
  background-color: #5a83ec;
  border-color: #5a83ec;
}
@media (min-width: 992px) {
  .card-rules .rule-header {
    margin-bottom: 0;
  }
}
.card-rules .rule {
  position: relative;
}
.card-rules .rule .btn-circle {
  position: absolute;
  top: 0;
  right: -40px;
}
.card-rules .btn-circle {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background-color: transparent;
  border: none;
  user-select: none;
  font-size: 24px;
  color: #5a83ec;
  line-height: 1;
  padding: 0;
  transition: background-color 0.15s ease-in-out;
  cursor: pointer;
}
.card-rules .btn-circle:hover {
  background-color: rgb(199.7608695652, 213.4869565217, 248.6391304348);
}

.btn-rules {
  background-color: rgb(231.7744565217, 237.5456521739, 252.3255434783);
  color: #5a83ec;
  border-color: #5a83ec;
}
.btn-rules:hover {
  color: #fff;
  background-color: #5a83ec;
  border-color: #5a83ec;
}
.btn-rules:focus {
  box-shadow: 0 0 0 0.2rem rgba(90, 131, 236, 0.5);
}
.btn-rules:not(:disabled):not(.disabled):active {
  color: #fff;
  background-color: #5a83ec;
  border-color: #5a83ec;
}

.btn-rule {
  background-color: rgb(199.7608695652, 213.4869565217, 248.6391304348);
  color: #5a83ec;
  border-color: rgb(199.7608695652, 213.4869565217, 248.6391304348);
}
.btn-rule:hover {
  background-color: #5a83ec;
  color: #fff;
  border-color: #5a83ec;
}
.btn-rule:focus {
  box-shadow: 0 0 0 0.2rem rgba(90, 131, 236, 0.5);
}
.btn-rule:not(:disabled):not(.disabled):active {
  color: #fff;
  background-color: #5a83ec;
  border-color: #5a83ec;
}

.floweditor_modal {
  zoom: 80%;
}
.floweditor_modal .tabs-component-tabs {
  display: flex;
  list-style: none;
  margin-bottom: 0;
  padding-left: 0;
}
.floweditor_modal .tabs-component-tab {
  flex-grow: 1;
}
.floweditor_modal .tabs-component-tab a {
  display: block;
  padding: 1rem;
  font-weight: 400;
  text-align: center;
  background-color: #ebebeb;
  color: #acacac;
}
.floweditor_modal .tabs-component-tab.is-active a {
  background-color: #fff;
  color: #5a83ec;
}
.floweditor_modal .tabs-component-panels {
  padding: 2rem;
}
.floweditor_modal .ts-form-check {
  margin-top: 0;
}
.floweditor_modal .ts-form-check .ts-element-label {
  font-size: 1rem;
  font-weight: 400;
}
.floweditor_modal .ts-form-check .ts-label-text::before {
  font-size: 22px;
}
.floweditor_modal .ts-form-check input[type=checkbox] + .ts-label-text:before {
  color: #5a83ec;
}

.selected-questions {
  border: 1px solid #5a83ec;
  border-radius: 0.25rem;
  background-color: rgb(231.7744565217, 237.5456521739, 252.3255434783);
  overflow: hidden;
}
.selected-questions table {
  width: 100%;
  color: #5a83ec;
  border-collapse: collapse;
  font-size: 0.875rem;
}
.selected-questions table td {
  padding: 0.3rem;
}
.selected-questions table td:first-child {
  width: 24px;
}
.selected-questions table td .btn-remove {
  cursor: pointer;
  transition: color 0.15s ease-in-out;
}
.selected-questions table td .btn-remove:hover {
  color: rgb(44.2663043478, 96.6304347826, 230.7336956522);
}
.selected-questions table tbody tr:nth-of-type(even) {
  background-color: rgb(199.7608695652, 213.4869565217, 248.6391304348);
}

.fe-node-title-card {
  background: #3f469c;
  padding: 0.75em;
  border-radius: 1em;
  color: white;
  display: inline-flex;
  width: fit-content;
  gap: 1em;
  align-items: center;
}
.fe-node-title-card .fe-node-title-icon {
  font-size: 1em;
}
.fe-node-title-card .fe-node-title-name {
  font-weight: 600;
  font-size: 1em;
}
.fe-node-title-card .fe-node-title-id {
  font-size: 0.75em;
}

.fe-card-title {
  color: #3f469c;
  font-weight: bold;
  font-size: 1.2em;
}

.btn {
  padding: 0.75rem 2rem;
  font-size: 16px;
  border-radius: 0.75em;
  font-weight: 500;
  cursor: pointer;
  border: 1px solid transparent;
}
.btn.btn-primary {
  background: #3f469c;
}
.btn.btn-outline {
  border: 1px #3f469c solid;
  background: transparent;
  color: #3f469c;
}
.btn.btn-outline:hover {
  background: #3f469c;
  color: #fff;
}
.btn.btn-link {
  padding: 0;
  margin: 0;
  background: transparent;
  color: #3f469c;
  border: none;
  font-size: 1.2em;
  font-weight: bold;
}
.btn.btn-size-sm {
  padding: 0.5rem 1rem;
  font-size: 14px;
}
.btn.btn-color-primary {
  background: #3f469c;
  border-color: #3f469c;
  color: #fff;
}
.btn.btn-color-primary:hover {
  background: #333a7b;
  border-color: #333a7b;
}
.btn.btn-color-secondary {
  background: #f0f1f2;
  border-color: transparent;
  color: #0b0b0d;
}
.btn.btn-color-secondary:hover {
  background: #c4c7cc;
}
.btn.btn-color-secondary-outline {
  border: 1px #3f469c solid;
  background: transparent;
  color: #3f469c;
}
.btn.btn-color-secondary-outline:hover {
  background: #3f469c;
  color: #fff;
}
.btn.btn-color-secondary-white {
  padding: 0;
  margin: 0;
  background: transparent;
  border: none;
  color: #3f469c;
  font-size: 1.2em;
  font-weight: bold;
}
.btn.btn-color-secondary-white:hover {
  background: transparent;
  color: rgb(48.3287671233, 53.698630137, 119.6712328767);
}
.btn.btn-color-warning {
  background: #f0f1f2;
  border-color: transparent;
  color: #C65A5A;
}
.btn.btn-color-warning:hover {
  background: #c4c7cc;
}

.fe-form.form-row label {
  font-weight: bold;
  color: #40499A;
}
.fe-form.form-row .form-control {
  border-radius: 0.625rem;
  padding: 0.75rem 0.8rem;
  height: auto;
}

.input-group .input-group-prepend.inline .input-group-text {
  background: #fff;
  border-right: 0;
  border-radius: 0.625rem;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.input-group .input-group-append.inline .input-group-text {
  background: #fff;
  border-left: 0;
  border-radius: 0.625rem;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.input-group:has(.input-group-prepend.inline) .form-control {
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
  border-left: 0;
}
.input-group:has(.input-group-append.inline) .form-control {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
  border-right: 0;
}

.fe-lang-indicator {
  color: #6c5f55;
  font-weight: bold;
}

.fe-language-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1em;
}

.fe-items {
  padding: 0;
  margin: 0;
  list-style: none;
}
.fe-items.fe-link-list {
  max-height: 300px;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.fe-items.fe-link-list::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}
.fe-items.fe-link-list > .fe-answer-row-wrap + .fe-answer-row-wrap,
.fe-items.fe-link-list > .fe-answer-row-wrap + .fe-answer-row--adding {
  margin-top: 4px;
}
.fe-items.fe-link-list > .fe-grade-row + .fe-grade-row,
.fe-items.fe-link-list > .fe-grade-row + .fe-answer-row--adding {
  margin-top: 4px;
}
.fe-items::-webkit-scrollbar {
  width: 8px;
}
.fe-items {
  /* Track */
}
.fe-items::-webkit-scrollbar-track {
  background: transparent;
}
.fe-items {
  /* Handle */
}
.fe-items::-webkit-scrollbar-thumb {
  background: #3b257a;
  border-radius: 4px;
}
.fe-items {
  /* Handle on hover */
}
.fe-items::-webkit-scrollbar-thumb:hover {
  background: #3b257a;
}

.fe-selectable-wrapper .fe-selectable {
  border: 1px #3f469c solid;
  border-radius: 0.625rem;
  padding: 1.25em;
  cursor: pointer;
  display: flex;
  align-items: center;
  flex-direction: row-reverse;
  justify-content: start;
  gap: 1em;
}
.fe-selectable-wrapper .fe-selectable .fe-selectable--image {
  width: 100px;
  height: 100px;
  background-position: center center;
  background-size: contain;
  background-repeat: no-repeat;
  border-radius: 1em;
  flex-grow: 0;
}
.fe-selectable-wrapper .fe-selectable .fe-selectable--title {
  color: #3f469c;
  font-weight: bold;
  font-size: 1.2em;
}
.fe-selectable-wrapper .fe-selectable .fe-selectable--description {
  color: #66584e;
  font-weight: medium;
  font-size: 1em;
  padding: 0;
  margin: 0;
  flex-grow: 1;
}
.fe-selectable-wrapper .fe-selectable.fe-selectable-big-icon {
  flex-direction: column;
  justify-content: center;
}
.fe-selectable-wrapper .fe-selectable.fe-selectable-big-icon .fe-selectable--image {
  width: 100%;
  margin: auto;
  background-position: center center;
  background-size: contain;
  background-repeat: no-repeat;
  border-radius: 1em;
  flex-grow: 0;
}
.fe-selectable-wrapper .fe-selectable-input:checked + .fe-selectable {
  background: #e6e8ff;
  border: 2px #3f469c solid;
}
.fe-selectable-wrapper .fe-selectable-input {
  display: none;
}

.fe-hero-button {
  border: 1px #3f469c solid;
  background: #e6e8ff;
  border-radius: 0.625rem;
  padding: 2em;
  text-align: center;
  cursor: pointer;
  font-size: 1em;
  font-weight: bold;
  color: #3f469c;
}
.fe-hero-button:hover {
  border: 1px #3f469c solid;
  background: #d3d8ff;
}
.fe-hero-button .mdi {
  font-size: 2em;
}

.fe-property-color .fe-color-list {
  display: flex;
  gap: 0.5em;
}
.fe-property-color .fe-color-list .fe-color-wrapper .fe-color {
  width: 30px;
  height: 30px;
  cursor: pointer;
  border-radius: 100%;
  border: 2px #ffffff solid;
  outline: #ffffff solid;
}
.fe-property-color .fe-color-list .fe-color-wrapper .fe-color-selector {
  display: none;
}
.fe-property-color .fe-color-list .fe-color-wrapper .fe-color-selector:checked + .fe-color {
  outline: #3d449d solid;
}

.gap-1 {
  gap: 1em;
}

.fe-settings-title {
  color: #414696;
  font-size: 1em;
}
.fe-settings-title .fe-settings-description-icon {
  color: #FFF;
  background: #ee8e01;
  border-radius: 100%;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  flex-grow: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}

.fe-settings-switch {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 34px;
}
.fe-settings-switch input {
  display: none;
}
.fe-settings-switch input:checked + .slider {
  background-color: #414696;
}
.fe-settings-switch input:checked + .slider:before {
  -webkit-transform: translateX(26px);
  -ms-transform: translateX(26px);
  transform: translateX(26px);
}
.fe-settings-switch .slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #e8e8e8;
  -webkit-transition: 0.1s;
  transition: 0.1s;
  border-radius: 34px;
}
.fe-settings-switch .slider:before {
  position: absolute;
  content: "";
  height: 28px;
  width: 28px;
  left: 3px;
  bottom: 3px;
  border-radius: 100%;
  background-color: white;
  -webkit-transition: 0.4s;
  transition: 0.4s;
  box-shadow: 1px 1px 1px 0px rgba(0, 0, 0, 0.1);
}

.fe-debug-holder {
  position: fixed;
  color: #000;
  top: 1em;
  right: 1em;
  z-index: 100;
  zoom: 80%;
}
.fe-debug-holder .fe-debug {
  border-radius: 1em;
}
.fe-debug-holder .fe-debug .fe-debug-controls {
  display: flex;
  background: #3b257a;
  justify-content: space-between;
  color: #FFF;
  border-radius: 0.5em 0.5em 0 0;
}
.fe-debug-holder .fe-debug .fe-debug-controls .fe-debug-control-option {
  padding: 0.5em 1em;
  cursor: pointer;
}
.fe-debug-holder .fe-debug .fe-debug-item {
  background: #FFF;
  border-bottom: 1px #727299 solid;
  padding: 0.2em 0.5em;
}
.fe-debug-holder .fe-debug .fe-debug-item--title {
  font-weight: bold;
  color: #20244d;
}
.fe-debug-holder .fe-debug .fe-debug-item--content {
  font-weight: medium;
  color: #ffffff;
  background: #41499a;
  padding: 0.4em 0.8em;
  border-radius: 10em;
  font-size: 0.75em;
}
.fe-debug-holder .fe-debug .fe-debug-item--child {
  background: #b4bbd8;
  padding: 0.2em 2em;
}

.fe-card .fe-card-tabs {
  background: #40499a;
  display: flex;
  padding: 0 1em;
}
.fe-card .fe-card-tabs .fe-card-tab {
  color: #Fff;
  background: #40499a;
  padding: 1.5em 1.25em;
  font-weight: bold;
  margin: 0 1em;
  cursor: pointer;
}
.fe-card .fe-card-tabs .fe-card-tab:hover {
  background: #353d83;
}
.fe-card .fe-card-tabs .fe-card-tab.active {
  color: #40499a;
  background: #FFF;
}

.fe-divider {
  display: flex;
  align-items: center;
  color: #3f469c;
  font-weight: bold;
  font-size: 1.2em;
}
.fe-divider::after {
  content: "";
  flex: 1;
  padding: 1px;
  background-color: #3f469c;
  margin: 5px;
}

.fe-range-current-value {
  margin-top: 4px;
  margin-bottom: 0;
  font-size: 13px;
  font-weight: 600;
  color: #40499a;
}

.fe-no .fe-range-row {
  padding: 12px 0;
}

.fe-no .fe-range-block .qdnapro-modal-toggle-text {
  margin-bottom: 6px;
}

.fe-ht-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}
.fe-ht-head .fe-card-title {
  margin: 0;
}
.fe-ht-head qdnapro-icon {
  margin-right: 6px;
}

.fe-ht-toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}

.fe-ht-search {
  flex: 1 1 auto;
  min-width: 0;
}

.fe-ht-filter-btn,
.fe-ht-add-btn {
  flex: 0 0 auto;
}

.fe-ht-recip-filter {
  flex: 0 0 auto;
  width: 220px;
}

.fe-ht-toolbar-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: -4px 0 8px;
}

.fe-ht-count {
  font-size: 12px;
  color: #6b7192;
}

.fe-ht-trailing {
  display: flex;
  align-items: center;
  gap: 10px;
}

.fe-ht-recipients {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  font-size: 12px;
  line-height: 1.35;
}

.fe-ht-recip {
  display: flex;
  align-items: baseline;
  gap: 6px;
  max-width: 220px;
}

.fe-ht-recip-key {
  flex: 0 0 auto;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #9097b8;
}

.fe-ht-recip-names {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #1a1f4d;
}

.fe-ht-recip--cc .fe-ht-recip-names {
  color: #6b7192;
}

.fe-ht-recip--none {
  color: #9097b8;
}

.fe-lr-hint {
  margin: 0 0 12px;
  font-size: 12px;
  color: #6b7192;
}

.fe-lr-trailing {
  display: flex;
  align-items: center;
  gap: 10px;
}

.fe-lr-trailing--no-action {
  padding-right: 34px;
}

.fe-lr-exit-cell {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  font-size: 12px;
  line-height: 1.35;
}

.fe-lr-path {
  font-weight: 600;
  color: #1a1f4d;
}

.fe-lr-dest {
  max-width: 220px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #6b7192;
}

.fe-lr-dest--none {
  color: #9097b8;
  font-style: italic;
}

.fe-lr-exit {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.fe-lr-exit-label {
  display: block;
  margin: 0 0 4px;
  font-weight: 500;
  line-height: 1.5;
  color: #0b0b0d;
}

.fe-lr-exit-value {
  display: flex;
  align-items: baseline;
  gap: 6px;
  min-height: 40px;
  align-items: center;
  font-size: 14px;
  color: #1a1f4d;
}

.fe-lr-exit-arrow {
  color: #9097b8;
}

.fe-lr-exit-value em {
  color: #9097b8;
}

.fe-trigger-editor-wrapper {
  background: #f2f2f2;
  border-radius: 1rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
  min-width: 900px;
  max-height: 60vh;
  overflow-y: auto;
}
.fe-trigger-editor-wrapper .btn-add-trigger,
.fe-trigger-editor-wrapper .btn-remove-trigger,
.fe-trigger-editor-wrapper .fe-rc-add,
.fe-trigger-editor-wrapper .fe-rc-remove {
  flex-shrink: 0;
  position: relative;
  z-index: 10;
}
.fe-trigger-editor-wrapper .btn-add-trigger {
  background: #cbcccb;
  color: #FFF;
  font-size: 1.5rem;
  width: 35px;
  height: 35px;
  border-radius: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  position: relative;
  z-index: 10;
}
.fe-trigger-editor-wrapper .btn-add-trigger:hover {
  background: #bdbdbd;
}
.fe-trigger-editor-wrapper .btn-add-trigger:active {
  background: #979797;
}
.fe-trigger-editor-wrapper .btn-remove-trigger {
  background: #cd5e68;
  color: #FFF;
  font-size: 1rem;
  width: 25px;
  height: 25px;
  border-radius: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  position: relative;
  z-index: 10;
}
.fe-trigger-editor-wrapper .btn-remove-trigger:hover {
  background: #99454d;
}
.fe-trigger-editor-wrapper .btn-remove-trigger:active {
  background: #803a41;
}
.fe-trigger-editor-wrapper .trigger-condition {
  display: flex;
  gap: 1rem;
  margin: 1rem 0;
  position: relative;
  align-items: center;
  border-radius: 1rem;
  padding-right: 1rem;
}
.fe-trigger-editor-wrapper .trigger-condition .trigger-column {
  flex: 1 1 50%;
  min-width: 200px;
}
.fe-trigger-editor-wrapper .trigger-condition .trigger-column.column-flex {
  display: flex;
  gap: 1rem;
  align-items: center;
}
.fe-trigger-editor-wrapper .trigger-condition .separator {
  width: 100%;
  border-top: 2px dashed #d1d4e6;
}
.fe-trigger-editor-wrapper .trigger-condition .trigger-condition-wrapper {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 120px;
  position: relative;
}
.fe-trigger-editor-wrapper .trigger-condition .trigger-condition-wrapper::before {
  content: "";
  position: absolute;
  height: 200%;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  border-left: 2px dashed #d1d4e6;
}
.fe-trigger-editor-wrapper .trigger-condition.last-trigger .trigger-condition-wrapper::before {
  height: 100%;
}
.fe-trigger-editor-wrapper .trigger-condition.trigger-removable .btn-remove-trigger,
.fe-trigger-editor-wrapper .trigger-condition.trigger-removable .fe-rc-remove {
  display: none;
}
.fe-trigger-editor-wrapper .trigger-condition.trigger-removable:hover {
  background: #ececec;
}
.fe-trigger-editor-wrapper .trigger-condition.trigger-removable:hover .btn-remove-trigger {
  display: flex;
}
.fe-trigger-editor-wrapper .trigger-condition.trigger-removable:hover .fe-rc-remove {
  display: inline-flex;
}
.fe-trigger-editor-wrapper .condition-select {
  flex-shrink: 0;
}
.fe-trigger-editor-wrapper .condition-select .vs__dropdown-toggle {
  padding: 0.75rem 1.3rem;
  background: #434796;
  color: #fff;
  font-weight: 600;
  border-radius: 0.75rem;
  font-size: 1.1rem;
  position: relative;
  cursor: pointer;
}
.fe-trigger-editor-wrapper .condition-select .vs__selected-options {
  padding: 0;
}
.fe-trigger-editor-wrapper .condition-select .vs__selected {
  margin: 0;
  padding: 0;
  border: none;
  color: #FFF;
}
.fe-trigger-editor-wrapper .condition-select.vs--open .vs__selected {
  position: relative;
}
.fe-trigger-editor-wrapper .condition-select .vs__actions svg {
  fill: #FFF;
}
.fe-trigger-editor-wrapper .condition {
  padding: 0.75rem 1.3rem;
  background: #434796;
  color: #fff;
  font-weight: 600;
  border-radius: 0.75rem;
  font-size: 1.1rem;
  position: relative;
}
.fe-trigger-editor-wrapper .condition.condition-secondary {
  background: #b4b4b4;
}
.fe-trigger-editor-wrapper .condition::before, .fe-trigger-editor-wrapper .condition::after {
  content: "";
  display: none;
  position: absolute;
  background: #e6e8fd;
  width: 10px;
  height: 10px;
  border-radius: 100%;
  border: 2px #434796 solid;
}
.fe-trigger-editor-wrapper .condition.condition-secondary::before, .fe-trigger-editor-wrapper .condition.condition-secondary::after {
  border: 2px #b4b4b4 solid;
}
.fe-trigger-editor-wrapper .condition.condition-connection-top::before, .fe-trigger-editor-wrapper .condition.condition-connection-y::before {
  display: block;
  top: -5px;
  left: 50%;
  transform: translateX(-50%);
}
.fe-trigger-editor-wrapper .condition.condition-connection-bottom::after, .fe-trigger-editor-wrapper .condition.condition-connection-y::after {
  display: block;
  bottom: -5px;
  left: 50%;
  transform: translateX(-50%);
}

.qdnapro-modal.fe-rule-modal {
  z-index: 9100;
}

.qdnapro-modal.fe-rule-modal.modal-size-xxlarge .modal-dialog {
  height: auto;
  max-height: min(800px, 100vh - 48px);
}

.qdnapro-modal.fe-rule-modal.modal-size-xxlarge .modal-window {
  height: auto;
}

.fe-re {
  display: block;
}

.fe-re-info {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}

.fe-re-info .qdnapro-modal-info-illustration {
  margin-top: auto;
}

.fe-re-info qdnapro-illustration {
  width: 100%;
  max-width: 100%;
}

.fe-re-sentence {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(17, 24, 39, 0.08);
}

.fe-re-sentence-title {
  margin: 0 0 0.25rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #6b7280;
}

.fe-re-sentence-body {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #374151;
  overflow-wrap: anywhere;
  hyphens: auto;
}

.fe-re-sentence-todo {
  color: #9ca3af;
}

.fe-re-rail {
  min-width: 0;
  max-height: none;
  overflow-y: visible;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}

.fe-re-rail .trigger-condition {
  margin: 0.5rem 0;
}

.fe-re-rail .condition {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  padding: 0 0.7rem;
  font-size: 0.8125rem;
  border-radius: 0.5rem;
  letter-spacing: 0.02em;
}

.fe-re-rail .condition.fe-rc-conj {
  color: #434796;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  padding: 0 0.35rem;
  border-radius: 0;
  background: transparent;
}

.fe-re-rail .trigger-condition .trigger-condition-wrapper::before {
  display: none;
}

.fe-re-rail .condition.condition-connection-top::before,
.fe-re-rail .condition.condition-connection-y::before,
.fe-re-rail .condition.condition-connection-bottom::after,
.fe-re-rail .condition.condition-connection-y::after {
  display: none;
}

.fe-re-rail .trigger-condition .trigger-condition-wrapper {
  min-width: 68px;
  align-self: flex-end;
}

.fe-re-rail .trigger-condition .fe-re-col-a {
  flex: 0 1 240px;
}
.fe-re-rail .trigger-condition .fe-re-col-b {
  flex: 1 1 auto;
  min-width: 0;
}

.fe-re-rail .trigger-condition .fe-rc-remove {
  align-self: flex-end;
  margin-bottom: 8px;
}

.fe-re-rail .trigger-condition .trigger-column.column-flex {
  align-items: flex-end;
  gap: 0.75rem;
}

.fe-re-op {
  flex: 0 0 72px;
}

.fe-re-val {
  flex: 1 1 auto;
  min-width: 0;
}

.fe-re-always-hint {
  margin: 0 0 0.25rem calc(68px + 1rem);
  font-size: 0.8125rem;
  line-height: 1.4;
  color: #6b7280;
}

.fe-lr-never-hint {
  color: #8a6d1f;
}

.fe-re-error {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
  padding: 0.625rem 0.75rem;
  border-radius: 0.5rem;
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #b91c1c;
  font-size: 0.8125rem;
  line-height: 1.4;
}

.fe-re-error qdnapro-icon {
  flex-shrink: 0;
  margin-top: 1px;
}

.fe-re-name {
  margin-top: 0.75rem;
  max-width: 420px;
}

.fe-translate-btn {
  position: relative;
}
.fe-translate-btn--active {
  background: rgba(255, 255, 255, 0.2);
  color: #ffffff !important;
}
.fe-translate-btn--incomplete::after {
  content: "";
  position: absolute;
  top: -4px;
  right: -4px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #ef4444;
  animation: fe-publish-pulse 2s ease-in-out infinite;
}

.fe-translation-panel {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 420px;
  background: rgba(232, 235, 252, 0.78);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-left: 1px solid rgba(255, 255, 255, 0.4);
  display: flex;
  flex-direction: column;
  z-index: 1050;
  box-shadow: -8px 0 32px rgba(40, 46, 100, 0.18);
  overflow: hidden;
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
}

.fe-tp-slide-enter-active,
.fe-tp-slide-leave-active {
  transition: transform 240ms cubic-bezier(0.4, 0, 0.2, 1);
}

.fe-tp-slide-enter,
.fe-tp-slide-enter-from,
.fe-tp-slide-leave-to {
  transform: translateX(100%);
}

.fe-tp-slide-enter-to,
.fe-tp-slide-leave,
.fe-tp-slide-leave-from {
  transform: translateX(0);
}

.fe-tp-header {
  display: flex;
  align-items: center;
  padding: 11px 16px;
  background: rgba(65, 73, 154, 0.55);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  flex-shrink: 0;
  gap: 9px;
}

.fe-tp-header-icon {
  font-size: 18px;
  color: rgba(255, 255, 255, 0.85);
}

.fe-tp-header-title {
  font-size: 15px;
  font-weight: 500;
  color: #fff;
  flex: 1;
}

.fe-tp-close {
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.65);
  font-size: 18px;
  cursor: pointer;
  line-height: 1;
  padding: 4px 6px;
  border-radius: 5px;
}
.fe-tp-close:hover {
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
}

.fe-tp-at-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: none;
  border: 1.5px solid rgba(255, 255, 255, 0.3);
  color: rgba(255, 255, 255, 0.85);
  font-size: 12px;
  font-family: inter, sans-serif;
  font-weight: 400;
  cursor: pointer;
  border-radius: 6px;
  padding: 4px 8px;
  transition: border-color 160ms, background 160ms, color 160ms;
}
.fe-tp-at-btn .mdi {
  font-size: 15px;
}
.fe-tp-at-btn:hover {
  border-color: rgba(255, 255, 255, 0.65);
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
}
.fe-tp-at-btn--active, .fe-tp-at-btn:active {
  background: rgba(255, 255, 255, 0.16);
  border-color: rgba(255, 255, 255, 0.7);
  color: #fff;
}
.fe-tp-at-btn:disabled {
  opacity: 0.55;
  cursor: default;
}

@keyframes fe-tp-rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.fe-tp-at-spin {
  display: inline-block;
  animation: fe-tp-rotate 0.8s linear infinite;
}

.fe-tp-at-bar {
  padding: 9px 14px;
  background: rgba(65, 73, 154, 0.12);
  border-bottom: 1px solid rgba(65, 73, 154, 0.15);
  font-size: 12px;
  color: #3f499a;
  flex-shrink: 0;
}
.fe-tp-at-bar--done {
  background: rgba(34, 140, 90, 0.1);
  border-bottom-color: rgba(34, 140, 90, 0.18);
  color: #1a7a50;
  display: flex;
  align-items: center;
  gap: 6px;
}
.fe-tp-at-bar--done .mdi {
  font-size: 15px;
}
.fe-tp-at-bar--error {
  background: rgba(196, 54, 42, 0.1);
  border-bottom-color: rgba(196, 54, 42, 0.18);
  color: #c4362a;
  display: flex;
  align-items: center;
  gap: 6px;
}
.fe-tp-at-bar--error .mdi {
  font-size: 15px;
}

.fe-tp-at-bar-question {
  display: block;
  margin-bottom: 7px;
  font-weight: 500;
}

.fe-tp-at-bar-btns {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.fe-tp-at-bar-btn {
  background: #3f499a;
  color: #fff;
  border: none;
  border-radius: 5px;
  padding: 4px 10px;
  font-size: 11px;
  font-family: inter, sans-serif;
  cursor: pointer;
}
.fe-tp-at-bar-btn:hover {
  background: #31397e;
}
.fe-tp-at-bar-btn--all {
  background: rgba(65, 73, 154, 0.15);
  color: #3f499a;
  border: 1px solid rgba(65, 73, 154, 0.3);
}
.fe-tp-at-bar-btn--all:hover {
  background: rgba(65, 73, 154, 0.25);
}
.fe-tp-at-bar-btn--cancel {
  background: none;
  color: rgba(63, 73, 154, 0.65);
  border: none;
}
.fe-tp-at-bar-btn--cancel:hover {
  color: #3f499a;
}

.fe-tp-at-slide-enter-active, .fe-tp-at-slide-leave-active {
  transition: max-height 200ms ease, opacity 200ms ease;
  overflow: hidden;
}

.fe-tp-at-slide-enter, .fe-tp-at-slide-leave-to {
  max-height: 0;
  opacity: 0;
}

.fe-tp-at-slide-enter-to, .fe-tp-at-slide-leave {
  max-height: 120px;
  opacity: 1;
}

.fe-tp-lang-bar {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  padding: 8px 14px 8px;
  background: rgba(255, 255, 255, 0.5);
  border-bottom: 1px solid rgba(216, 219, 237, 0.7);
  flex-shrink: 0;
}

.fe-tp-lang-indicator {
  position: absolute;
  background: #e8eafd;
  border-radius: 20px;
  pointer-events: none;
  z-index: 0;
}

.fe-tp-lang-tab {
  position: relative;
  z-index: 1;
  font-size: 12px;
  font-weight: 500;
  padding: 5px 13px;
  border-radius: 20px;
  border: none;
  background: transparent;
  color: #8890b8;
  cursor: pointer;
  font-family: inherit;
  transition: color 150ms;
}
.fe-tp-lang-tab--active {
  color: #40499a;
  font-weight: 600;
}

.fe-tp-col-headers {
  display: grid;
  grid-template-columns: 1fr 1fr;
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.5);
  border-bottom: 2px solid rgba(216, 219, 237, 0.7);
}

.fe-tp-col-h {
  font-size: 11px;
  font-weight: 700;
  color: #41499a;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
}
.fe-tp-col-h:first-child {
  border-right: 1px solid #d8dbed;
}

.fe-tp-missing-pill {
  font-size: 10px;
  background: #fdf0dc;
  color: #b47a14;
  border-radius: 4px;
  padding: 2px 6px;
  border: 1px solid #e8a320;
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
}

.fe-tp-body {
  flex: 1;
  overflow-y: auto;
  padding: 8px 10px;
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.fe-tp-card {
  border-radius: 7px;
  border: 1px solid #d0d3ea;
  overflow: hidden;
  background: #fff;
  border-left: 4px solid var(--node-color, #41499a);
  transition: box-shadow 120ms;
  flex-shrink: 0;
}
.fe-tp-card:hover {
  box-shadow: 0 2px 10px rgba(65, 73, 154, 0.14);
}
.fe-tp-card--selected {
  box-shadow: 0 0 0 2px var(--node-color, #41499a);
}
.fe-tp-card--missing {
  background: #fefdfb;
}
.fe-tp-card--spotlight {
  animation: fe-tp-spotlight 900ms ease-out forwards;
}

@keyframes fe-tp-spotlight {
  0% {
    box-shadow: 0 0 0 3px rgba(65, 73, 154, 0.55);
  }
  60% {
    box-shadow: 0 0 0 3px rgba(65, 73, 154, 0.25);
  }
  100% {
    box-shadow: none;
  }
}
.fe-tp-meta {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 6px 10px 6px 8px;
  background: rgba(65, 73, 154, 0.06);
  border-bottom: 1px solid #e4e6f4;
  cursor: pointer;
}

.fe-tp-badge {
  font-size: 11px;
  padding: 3px 8px;
  border-radius: 5px;
  color: #fff;
  font-weight: 600;
  white-space: nowrap;
}

.fe-tp-node-id {
  font-size: 11px;
  color: #9099c0;
  font-weight: 500;
}

.fe-tp-save-indicator {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-left: auto;
}
.fe-tp-save-indicator--saving {
  background: #e8a320;
}
.fe-tp-save-indicator--saved {
  background: #3e9e6e;
}
.fe-tp-save-indicator--error {
  background: #c4362a;
}

.fe-tp-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.fe-tp-col {
  padding: 8px 10px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 50px;
}
.fe-tp-col--target {
  background: #f4f5fb;
  border-left: 1px solid #e4e6f4;
}

.fe-tp-input {
  width: 100%;
  box-sizing: border-box;
  font-size: 10px;
  line-height: 1.4;
  padding: 4px 7px;
  border: 1px solid #cdd0e8;
  border-radius: 5px;
  background: #fff;
  color: #1e2460 !important;
  resize: none;
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  overflow-y: auto;
  min-height: 36px !important;
  height: auto;
  display: block;
  transition: border-color 120ms, background 120ms;
}
.fe-tp-input:focus {
  outline: none;
  border-color: #41499a;
  background: #fff;
  box-shadow: 0 0 0 2px rgba(65, 73, 154, 0.12);
}
.fe-tp-input--sub {
  font-size: 8px;
  font-style: italic;
  color: #6670a0;
  min-height: 24px;
  border-style: dashed;
  border-color: #d8dbed;
}
.fe-tp-input--ans {
  font-size: 10px;
  min-height: 28px;
}
.fe-tp-input--missing {
  border-color: #e8a320;
  background: #fffcf3;
  border-style: solid;
}
.fe-tp-input--missing::placeholder {
  color: #c89430;
  font-style: italic;
  font-size: 10px;
}
.fe-tp-col--target .fe-tp-input {
  background: #eef0fa;
  border-color: #c8cbdf;
}
.fe-tp-col--target .fe-tp-input:focus {
  background: #fff;
  border-color: #41499a;
}
.fe-tp-col--target .fe-tp-input.fe-tp-input--missing {
  background: #fffcf3;
  border-color: #e8a320;
}
.fe-tp-input::placeholder {
  color: #b0b5cc;
  font-size: 10px;
}
.fe-tp-input--sub::placeholder {
  font-size: 8px;
}
.fe-tp-input--ans::placeholder {
  font-size: 10px;
}

.fe-tp-ans-divider {
  height: 1px;
  background: #e4e6f4;
  margin: 2px 0;
}

.fe-tp-ans-row {
  display: flex;
  align-items: flex-start;
  gap: 6px;
}
.fe-tp-ans-row--target {
  padding-left: 0;
}

.fe-tp-ans-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 11px;
}

.fe-nm-holder {
  position: fixed;
  inset: 0;
  z-index: 9100;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.fe-nm-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(20, 24, 60, 0.35);
  backdrop-filter: blur(2px);
  pointer-events: all;
  z-index: 0;
}

.fe-nm {
  position: relative;
  z-index: 1;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  width: min(860px, 94vw);
  max-height: calc(100vh - 48px);
  border-radius: 14px;
  overflow: hidden;
  background: rgba(245, 246, 252, 0.84);
  backdrop-filter: blur(20px) saturate(1.4);
  -webkit-backdrop-filter: blur(20px) saturate(1.4);
  border: 1px solid rgba(255, 255, 255, 0.55);
  box-shadow: 0 24px 64px rgba(20, 24, 60, 0.22), 0 2px 8px rgba(20, 24, 60, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.7);
}
.fe-nm.fe-nm--annotation {
  width: min(480px, 94vw);
  background: rgba(255, 253, 235, 0.92);
  border-color: rgba(224, 200, 64, 0.45);
}

.fe-nm-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 14px 12px 16px;
  border-bottom: 1px solid rgba(180, 188, 220, 0.35);
  background: rgba(255, 255, 255, 0.45);
  flex-shrink: 0;
}

.fe-nm-type-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 20px;
  background: rgba(64, 73, 154, 0.1);
  border: 1px solid rgba(64, 73, 154, 0.18);
}

.fe-nm-type-icon {
  font-size: 15px;
  color: #40499a;
  line-height: 1;
}

.fe-nm-type-name {
  font-size: 12px;
  font-weight: 600;
  color: #2a2e5e;
  font-family: "Inter", -apple-system, sans-serif;
}

.fe-nm-type-id {
  font-size: 11px;
  color: #9097b8;
  font-family: "Inter", -apple-system, sans-serif;
}

.fe-nm-close-btn,
.fe-nm-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 8px;
  border-radius: 6px;
  border: none;
  background: transparent;
  color: #667;
  font-family: "Inter", -apple-system, sans-serif;
  font-size: 12px;
  cursor: pointer;
  transition: background 120ms, color 120ms;
  flex-shrink: 0;
  line-height: 1;
}
.fe-nm-close-btn:hover,
.fe-nm-back-btn:hover {
  background: rgba(64, 73, 154, 0.08);
  color: #2a2e5e;
}
.fe-nm-close-btn .mdi,
.fe-nm-back-btn .mdi {
  font-size: 16px;
}

.fe-nm-close-btn {
  margin-left: auto;
  padding: 5px;
  font-size: 16px;
  color: #888;
}

.fe-nm-body {
  display: flex;
  flex: 1;
  overflow: hidden;
  min-height: 0;
  padding: 10px;
  gap: 10px;
}

.fe-nm-info {
  width: 220px;
  flex-shrink: 0;
  padding: 20px 16px 20px 20px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  border-right: 1px solid rgba(180, 188, 220, 0.3);
  background: rgba(255, 255, 255, 0.3);
  overflow-y: auto;
}

.fe-nm-info-illu svg {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
}

.fe-nm-info-desc {
  font-size: 11.5px;
  line-height: 1.6;
  color: #555e88;
  font-family: "Inter", -apple-system, sans-serif;
  margin: 0;
}

.fe-nm-content {
  flex: 1;
  overflow-y: auto;
  min-width: 0;
  padding: 20px 24px;
  background: #ffffff;
  border: 0.5px solid #c4c7cc;
  border-radius: 12px;
}
.fe-nm-content.fe-nm-content--full {
  padding: 20px 24px;
}
.fe-nm-content .fe-section {
  border: none;
  padding: 0;
  clear: none;
}
.fe-nm-content .fe-card-body {
  padding: 0;
}
.fe-nm-content label.qdnapro-modal-label {
  display: block;
  font-weight: 500;
  font-size: 14px;
  line-height: 24px;
  color: #0b0b0d;
  margin-bottom: 4px;
}
.fe-nm-content label.qdnapro-modal-label .fe-label-required {
  color: #c65a5a;
  margin-left: 2px;
}
.fe-nm-content label.qdnapro-modal-label.fe-nm-q-label {
  margin-top: 22px;
}

.fe-nm-footer {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  border-top: 1px solid rgba(180, 188, 220, 0.35);
  background: rgba(255, 255, 255, 0.4);
  flex-shrink: 0;
  gap: 8px;
}

.fe-nm-footer-play {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #40499a;
  color: #fff;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  transition: background 140ms, transform 140ms, box-shadow 140ms;
  box-shadow: 0 2px 8px rgba(64, 73, 154, 0.3);
  pointer-events: all;
}
.fe-nm-footer-play .mdi {
  line-height: 1;
}
.fe-nm-footer-play:hover {
  background: #353e8c;
  transform: translateX(-50%) scale(1.08);
  box-shadow: 0 4px 12px rgba(64, 73, 154, 0.4);
}

.fe-nm-footer-left,
.fe-nm-footer-right {
  display: flex;
  align-items: center;
  gap: 8px;
}

.fe-nm-adv-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 7px;
  border: 1.5px solid rgba(64, 73, 154, 0.35);
  background: transparent;
  color: #40499a;
  font-family: "Inter", -apple-system, sans-serif;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: background 120ms, border-color 120ms;
}
.fe-nm-adv-btn:hover {
  background: rgba(64, 73, 154, 0.08);
  border-color: #40499a;
}
.fe-nm-adv-btn .mdi {
  font-size: 14px;
}

.fe-nm-btn {
  display: inline-flex;
  align-items: center;
  padding: 7px 18px;
  border-radius: 7px;
  font-family: "Inter", -apple-system, sans-serif;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  border: none;
  transition: background 120ms, box-shadow 120ms;
}
.fe-nm-btn--cancel {
  background: rgba(64, 73, 154, 0.08);
  color: #40499a;
}
.fe-nm-btn--cancel:hover {
  background: rgba(64, 73, 154, 0.14);
}
.fe-nm-btn--save {
  background: #40499a;
  color: #fff;
  box-shadow: 0 2px 8px rgba(64, 73, 154, 0.3);
}
.fe-nm-btn--save:hover {
  background: #333d88;
  box-shadow: 0 3px 12px rgba(64, 73, 154, 0.4);
}

.fe-answer-row {
  display: flex;
  align-items: center;
  gap: 0;
  border-radius: 7px;
  border: 1px solid #e2e4ef;
  background: #fafbff;
  overflow: visible;
  min-height: 38px;
  transition: border-color 140ms, box-shadow 140ms;
  position: relative;
}
.fe-answer-row:hover {
  border-color: #a8b2e8;
  box-shadow: 0 1px 5px rgba(64, 73, 154, 0.1);
}
.fe-answer-row:hover .fe-answer-actions {
  opacity: 1;
  pointer-events: all;
}
.fe-answer-row:hover .fe-answer-act--delete,
.fe-answer-row:hover .fe-answer-act--unlink {
  transform: scale(1);
  opacity: 1;
}
.fe-answer-row--unlinked {
  border-color: #ddb84a;
  background: #fffbf0;
}
.fe-answer-row--confirming {
  border-color: #e4a0a0;
  background: #fff5f5;
}

.fe-answer-drag {
  padding: 0 5px 0 8px;
  color: #ccc;
  cursor: grab;
  display: flex;
  align-items: center;
  flex-shrink: 0;
  font-size: 16px;
}

.fe-answer-label {
  flex: 1;
  border: none;
  outline: none;
  background: transparent;
  color: #2a2e5e;
  font-family: "Inter", -apple-system, sans-serif;
  font-size: 12px;
  padding: 9px 6px;
  line-height: 1.4;
  min-width: 0;
}
.fe-answer-label:focus {
  background: rgba(255, 255, 255, 0.9);
  border-radius: 4px;
  box-shadow: inset 0 0 0 1.5px #40499a;
}
.fe-answer-label[readonly] {
  color: #6a6e9a;
  cursor: default;
}

.fe-answer-conn {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 3px 8px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
  flex-shrink: 0;
  margin-right: 4px;
  font-family: "Inter", -apple-system, sans-serif;
}
.fe-answer-conn--linked {
  background: #eef0ff;
  color: #40499a;
  border: none;
  cursor: default;
}
.fe-answer-conn--linked.fe-answer-conn--has-tip {
  transition: background 120ms;
}
.fe-answer-conn--linked.fe-answer-conn--has-tip:hover {
  background: #e0e3ff;
}
.fe-answer-conn--empty {
  background: #fff3cd;
  color: #8a6a10;
  border: 1px dashed #ddb84a;
  cursor: pointer;
  transition: background 120ms;
}
.fe-answer-conn--empty:hover {
  background: #ffeea0;
}

.fe-next-step-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
}

.fe-next-step-remove {
  background: none;
  border: none;
  color: #c4362a;
  font-size: 12px;
  font-weight: 500;
  font-family: "Inter", -apple-system, sans-serif;
  padding: 3px 8px;
  border-radius: 6px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  line-height: 1;
  transition: background 120ms;
}
.fe-next-step-remove:hover {
  background: rgba(196, 54, 42, 0.08);
}
.fe-next-step-remove .mdi {
  font-size: 13px;
}

.fe-conn-tip {
  position: fixed;
  z-index: 9300;
  transform: translate(-50%, calc(-100% - 10px));
  max-width: 280px;
  padding: 7px 11px;
  border-radius: 8px;
  background: rgba(42, 46, 94, 0.96);
  color: #fff;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
  font-family: "Inter", -apple-system, sans-serif;
  box-shadow: 0 6px 20px rgba(20, 24, 60, 0.28);
  pointer-events: none;
  white-space: normal;
  word-break: break-word;
  animation: fe-conn-tip-in 120ms ease;
}
.fe-conn-tip::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 5px solid transparent;
  border-top-color: rgba(42, 46, 94, 0.96);
}

@keyframes fe-conn-tip-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.fe-answer-actions {
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 0 5px 0 0;
  flex-shrink: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 140ms;
}

.fe-answer-act {
  width: 26px;
  height: 26px;
  border-radius: 5px;
  border: 1px solid transparent;
  background: transparent;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  transition: background 120ms, border-color 120ms, color 120ms;
  flex-shrink: 0;
}
.fe-answer-act--unlink {
  color: #9a6a10;
  background: #fff3cd;
  border-color: #f0d060;
}
.fe-answer-act--unlink:hover {
  background: #fde8a0;
  border-color: #d0a820;
}
.fe-answer-act--delete {
  color: #c94040;
  background: #fde8e8;
  border-color: #e8b0b0;
}
.fe-answer-act--delete:hover {
  background: #fcc;
  border-color: #c94040;
}

.fe-answer-confirm {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  padding: 6px 10px;
}

.fe-answer-confirm-icon {
  color: #c94040;
  font-size: 15px;
  flex-shrink: 0;
}

.fe-answer-confirm-text {
  flex: 1;
  font-size: 12px;
  font-weight: 600;
  color: #c94040;
  font-family: "Inter", -apple-system, sans-serif;
}

.fe-answer-btn {
  padding: 4px 11px;
  border-radius: 5px;
  font-family: "Inter", -apple-system, sans-serif;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  border: none;
  white-space: nowrap;
  transition: background 120ms;
}
.fe-answer-btn--cancel {
  background: #f0f1f4;
  color: #555;
  border: 1px solid #d0d2db;
}
.fe-answer-btn--cancel:hover {
  background: #e4e6ef;
}
.fe-answer-btn--delete {
  background: #c94040;
  color: #fff;
}
.fe-answer-btn--delete:hover {
  background: #a83030;
}

.fe-pm-fade-enter-active,
.fe-pm-fade-leave-active {
  transition: opacity 180ms ease;
}

.fe-pm-fade-enter-from,
.fe-pm-fade-leave-to {
  opacity: 0;
}

.fe-pm-backdrop {
  position: fixed;
  inset: 0;
  z-index: 10100;
  background: rgba(10, 12, 40, 0.72);
  backdrop-filter: blur(4px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding-top: 20px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.fe-pm-shell {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding-bottom: 32px;
}

.fe-pm-chrome {
  display: flex;
  align-items: center;
  gap: 12px;
}

.fe-pm-devices {
  display: flex;
  align-items: center;
  gap: 4px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 8px;
  padding: 3px;
}

.fe-pm-device-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 6px;
  border: none;
  background: transparent;
  color: rgba(255, 255, 255, 0.65);
  font-size: 18px;
  cursor: pointer;
  transition: background 140ms, color 140ms;
}
.fe-pm-device-btn:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}
.fe-pm-device-btn--active {
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
}

.fe-pm-close-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.75);
  font-size: 18px;
  cursor: pointer;
  transition: background 140ms, color 140ms;
}
.fe-pm-close-btn:hover {
  background: rgba(255, 255, 255, 0.16);
  color: #fff;
}

.fe-pm-device-sep {
  width: 1px;
  height: 20px;
  background: rgba(255, 255, 255, 0.2);
  margin: 0 2px;
  flex-shrink: 0;
}

.fe-pm-stage {
  display: flex;
  align-items: flex-start;
  justify-content: center;
}

.fe-pm-frame {
  position: relative;
  background: #1a1b2e;
  border: 3px solid #3a3b55;
  border-radius: 40px;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.06), 0 24px 80px rgba(0, 0, 0, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  transition: width 280ms cubic-bezier(0.4, 0, 0.2, 1), height 280ms cubic-bezier(0.4, 0, 0.2, 1), border-radius 280ms;
  overflow: hidden;
}
.fe-pm-frame--phone {
  width: 375px;
  height: 812px;
  border-radius: 44px;
}
.fe-pm-frame--tablet-portrait {
  width: 768px;
  height: 1024px;
  border-radius: 24px;
}
.fe-pm-frame--tablet-landscape {
  width: 1024px;
  height: 768px;
  border-radius: 24px;
}
.fe-pm-frame--phone-landscape {
  width: 812px;
  height: 375px;
  border-radius: 32px;
}
.fe-pm-frame--desktop {
  width: min(1680px, 96vw);
  height: calc(100vh - 140px);
  max-height: 1100px;
  border-radius: 12px;
}

.fe-pm-notch {
  flex-shrink: 0;
  width: 120px;
  height: 28px;
  margin-top: 6px;
  background: #1a1b2e;
  border-radius: 0 0 18px 18px;
  z-index: 2;
}
.fe-pm-frame--tablet-portrait .fe-pm-notch, .fe-pm-frame--tablet-landscape .fe-pm-notch, .fe-pm-frame--phone-landscape .fe-pm-notch, .fe-pm-frame--desktop .fe-pm-notch {
  display: none;
}

.fe-pm-screen {
  flex: 1;
  width: 100%;
  background: #fff;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.fe-pm-frame--phone .fe-pm-screen {
  border-radius: 0 0 0 0;
}

.fe-pm-frame--tablet-portrait > .fe-pm-screen,
.fe-pm-frame--tablet-landscape > .fe-pm-screen,
.fe-pm-frame--desktop > .fe-pm-screen {
  box-sizing: border-box;
  padding: 22px;
}

.fe-pm-frame--phone-landscape > .fe-pm-screen {
  box-sizing: border-box;
  padding: 16px;
}

.fe-pm-iframe {
  width: 100%;
  height: 100%;
  border: none;
  display: block;
}

.fe-pm-home-bar {
  flex-shrink: 0;
  width: 120px;
  height: 5px;
  margin: 8px auto;
  background: rgba(255, 255, 255, 0.25);
  border-radius: 3px;
}
.fe-pm-frame--tablet-portrait .fe-pm-home-bar, .fe-pm-frame--tablet-landscape .fe-pm-home-bar, .fe-pm-frame--phone-landscape .fe-pm-home-bar, .fe-pm-frame--desktop .fe-pm-home-bar {
  display: none;
}

.fe-pm-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  color: #40499a;
}

.fe-pm-spinner {
  font-size: 40px;
}

.fe-pm-error-icon {
  font-size: 40px;
  color: #c94040;
}

.fe-pm-loading-text {
  font-size: 14px;
  color: #6b7280;
}

.fe-preview-toolbar-btn {
  color: #fff;
  font-size: 1.6em;
  opacity: 0.9;
}
.fe-preview-toolbar-btn:hover {
  opacity: 1;
}

.fe-nm-preview-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 6px;
  border: 1.5px solid rgba(64, 73, 154, 0.35);
  background: rgba(64, 73, 154, 0.07);
  color: #40499a;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: background 140ms, border-color 140ms;
  white-space: nowrap;
  margin-right: 4px;
}
.fe-nm-preview-btn .mdi {
  font-size: 15px;
}
.fe-nm-preview-btn:hover {
  background: rgba(64, 73, 154, 0.13);
  border-color: rgba(64, 73, 154, 0.55);
}

.fe-add-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  margin-top: 6px;
  border-radius: 7px;
  border: 1.5px dashed rgba(70, 82, 243, 0.3);
  background: #fafbff;
  cursor: pointer;
  color: #4652f3;
  transition: border-color 150ms, background 150ms;
  user-select: none;
}
.fe-add-bar:hover {
  background: #f0f1fb;
  border-color: rgba(70, 82, 243, 0.55);
}
.fe-add-bar:hover .fe-add-bar-circle {
  background: #4652f3;
  color: white;
}

.fe-add-bar-circle {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: rgba(70, 82, 243, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #4652f3;
  transition: background 150ms, color 150ms;
}

@keyframes fe-publish-pulse {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.7);
  }
  50% {
    box-shadow: 0 0 0 5px rgba(245, 158, 11, 0);
  }
}
.fe-vl-wrap {
  font-family: inter, sans-serif;
  min-height: 120px;
}

.fe-vl-loading,
.fe-vl-error,
.fe-vl-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48px 16px;
  color: #8890b8;
  font-size: 14px;
  gap: 8px;
}
.fe-vl-loading .mdi,
.fe-vl-error .mdi,
.fe-vl-empty .mdi {
  font-size: 18px;
}

.fe-vl-error {
  color: #c4362a;
}

.fe-vl-section {
  border-radius: 10px;
  border: 1px solid #e4e7f5;
  margin-bottom: 10px;
  overflow: hidden;
  background: #fff;
}
.fe-vl-section:last-child {
  margin-bottom: 0;
}

.fe-vl-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  cursor: pointer;
  background: #f5f6fd;
  border-bottom: 1px solid transparent;
  user-select: none;
  transition: background 120ms;
}
.fe-vl-header:hover {
  background: #eceffe;
}
.fe-vl-section--open .fe-vl-header {
  border-bottom-color: #e4e7f5;
}

.fe-vl-chevron {
  font-size: 16px;
  color: #8890b8;
  flex-shrink: 0;
  transition: transform 150ms;
}

.fe-vl-title {
  flex: 1;
  font-size: 13px;
  color: #2a2e5e;
  line-height: 1.4;
}
.fe-vl-title strong {
  font-weight: 600;
}

.fe-vl-tag {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 7px;
  border-radius: 20px;
  background: #e0e3ff;
  color: #40499a;
  font-size: 11px;
  font-weight: 600;
  vertical-align: middle;
}

.fe-vl-tag-pub {
  margin-left: 6px;
  font-size: 11px;
  font-weight: 400;
  color: #8890b8;
  vertical-align: middle;
}

.fe-vl-count {
  font-size: 11px;
  color: #a0a4b8;
  white-space: nowrap;
  flex-shrink: 0;
}

.fe-vl-events {
  display: none;
  padding: 6px 0;
}
.fe-vl-section--open .fe-vl-events {
  display: block;
}

.fe-vl-event-empty {
  padding: 16px 14px;
  font-size: 13px;
  color: #a0a4b8;
}

.fe-vl-event {
  display: grid;
  grid-template-columns: 280px 1fr auto;
  align-items: start;
  gap: 8px;
  padding: 7px 14px;
  border-bottom: 1px solid #f0f1f8;
  transition: background 100ms;
}
.fe-vl-event:last-child {
  border-bottom: none;
}
.fe-vl-event:hover {
  background: #f9f9fd;
}

.fe-vl-event-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px;
  min-width: 0;
}

.fe-vl-pill {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
  background: #e8eaf8;
  color: #40499a;
}
.fe-vl-pill.fe-vl-pill--node-created {
  background: #d1fae5;
  color: #065f46;
}
.fe-vl-pill.fe-vl-pill--node-deleted {
  background: #fee2e2;
  color: #991b1b;
}
.fe-vl-pill.fe-vl-pill--node-type-changed {
  background: #ede9fe;
  color: #5b21b6;
}
.fe-vl-pill.fe-vl-pill--label-changed, .fe-vl-pill.fe-vl-pill--sublabel-changed {
  background: #ede9fe;
  color: #5b21b6;
}
.fe-vl-pill.fe-vl-pill--meta-changed {
  background: #fef3c7;
  color: #92400e;
}
.fe-vl-pill.fe-vl-pill--link-created, .fe-vl-pill.fe-vl-pill--link-connected {
  background: #d1fae5;
  color: #065f46;
}
.fe-vl-pill.fe-vl-pill--link-disconnected, .fe-vl-pill.fe-vl-pill--link-deleted {
  background: #fee2e2;
  color: #991b1b;
}
.fe-vl-pill.fe-vl-pill--answer-added {
  background: #d1fae5;
  color: #065f46;
}
.fe-vl-pill.fe-vl-pill--answer-changed {
  background: #fef3c7;
  color: #92400e;
}
.fe-vl-pill.fe-vl-pill--answer-deleted {
  background: #fee2e2;
  color: #991b1b;
}

.fe-vl-time {
  font-size: 11px;
  color: #a0a4b8;
  white-space: nowrap;
}

.fe-vl-user {
  font-size: 11px;
  color: #6b7280;
  white-space: nowrap;
  max-width: 120px;
  overflow: hidden;
  text-overflow: ellipsis;
}

.fe-vl-event-detail {
  min-width: 0;
}

.fe-vl-node {
  display: block;
  font-size: 12px;
  color: #6b7280;
  margin-bottom: 3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.fe-vl-field {
  font-size: 12px;
  line-height: 1.5;
  color: #4b5563;
  word-break: break-word;
}

.fe-vl-field-name {
  font-weight: 600;
  color: #374151;
}

.fe-vl-before {
  text-decoration: line-through;
  color: #9ca3af;
}

.fe-vl-arrow {
  color: #d1d5db;
  font-size: 11px;
}

.fe-vl-after {
  color: #111827;
}

@keyframes fe-vl-row-in {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.fe-vl-event--entering {
  animation: fe-vl-row-in 180ms cubic-bezier(0.2, 0, 0.38, 1) both;
}

.fe-vl-filter-bar {
  position: relative;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  padding: 0 0 12px 0;
  margin-bottom: 12px;
  border-bottom: 1px solid #e4e7f5;
}

.fe-vl-filter-indicator {
  position: absolute;
  background: #e8eafd;
  border-radius: 20px;
  pointer-events: none;
  z-index: 0;
}

.fe-vl-pill-filter {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  padding: 5px 12px;
  border-radius: 20px;
  border: none;
  background: transparent;
  font-family: inter, sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: #8890b8;
  cursor: pointer;
  transition: color 150ms;
}
.fe-vl-pill-filter--active {
  color: #40499a;
  font-weight: 600;
}
.fe-vl-pill-filter:hover:not(.fe-vl-pill-filter--active) {
  color: #5560b8;
}
.fe-vl-pill-filter:focus-visible {
  outline: 2px solid #40499a;
  outline-offset: 2px;
}

.fe-vl-restore-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 6px;
  border: 1px solid #c7d2fe;
  background: #eef2ff;
  color: #4338ca;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  align-self: center;
  transition: background 120ms, border-color 120ms;
}
.fe-vl-restore-btn:hover:not(:disabled) {
  background: #e0e7ff;
  border-color: #a5b4fc;
}
.fe-vl-restore-btn:disabled {
  opacity: 0.6;
  cursor: default;
}
.fe-vl-restore-btn.fe-vl-restore-btn--done {
  background: #d1fae5;
  border-color: #6ee7b7;
  color: #065f46;
  cursor: default;
}

/* ════════════════════════════════════════════════════════════════
   Open invoer modal — InputFieldOptions converted to qdnapro-wizard-modal
   (wm-with-info: left info panel + live dummy preview, right settings).
   Shell/chrome (wm-*) comes from style-v1.css; these are the modal-specific
   bits. [Kim + Claude 2026-06-18]
   ════════════════════════════════════════════════════════════════ */
.fe-oi-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 14px 16px 4px;
  flex-shrink: 0;
}

.fe-oi-title {
  font-family: "Inter", -apple-system, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
  color: #40499a;
}

.fe-oi-x {
  border: 0;
  background: transparent;
  padding: 4px;
  line-height: 1;
  color: #6b7280;
  cursor: pointer;
  border-radius: 8px;
  transition: background 120ms ease, color 120ms ease;
}
.fe-oi-x i {
  font-size: 20px;
}
.fe-oi-x:hover {
  background: rgba(64, 73, 154, 0.08);
  color: #40499a;
}

.fe-oi-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 4px 16px 8px;
}

.fe-oi-panel > p {
  color: #6b7280;
  margin-bottom: 12px;
}

.fe-oi-footer {
  flex-shrink: 0;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-top: 1px solid #e1e3e6;
}

.fe-oi-preview {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.fe-oi-preview-cap {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #9097b8;
}

.fe-oi-phone {
  background: #ffffff;
  border: 1px solid #d8daea;
  border-radius: 14px;
  padding: 14px;
  box-shadow: 0 6px 18px rgba(20, 24, 60, 0.1);
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.fe-oi-q {
  font-size: 14px;
  font-weight: 600;
  color: #1a1f4d;
  word-break: break-word;
}

.fe-oi-field {
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1.5px solid #c4c7cc;
  border-radius: 10px;
  padding: 8px 10px;
  background: #fbfbfd;
}

.fe-oi-field--counter {
  justify-content: space-between;
}

.fe-oi-step {
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  border: 1px solid #c4c7cc;
  border-radius: 8px;
  background: #ffffff;
  color: #40499a;
  font-size: 18px;
  line-height: 1;
  cursor: default;
  display: flex;
  align-items: center;
  justify-content: center;
}

.fe-oi-input {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 6px;
}

.fe-oi-cur {
  color: #40499a;
  font-weight: 600;
}

.fe-oi-val {
  color: #0b0b0d;
}

.fe-oi-ph {
  color: #9aa0b5;
}

.fe-oi-barcode {
  margin-left: auto;
  color: #40499a;
  font-size: 18px;
}

.fe-oi-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
}

.fe-oi-hint {
  font-size: 12px;
  color: #6b7280;
}

.fe-oi-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 600;
  color: #40499a;
  background: rgba(64, 73, 154, 0.1);
  border-radius: 20px;
  padding: 2px 8px;
}
.fe-oi-chip i {
  font-size: 13px;
}

.fe-oi-skip {
  align-self: flex-start;
  font-size: 13px;
  font-weight: 600;
  color: #40499a;
  text-decoration: underline;
  cursor: default;
}

/* ════════════════════════════════════════════════════════════════
   NodeOptions modal — converted to qdnapro-wizard-modal (fase 1).
   Shell/chrome (wm-*) comes from style-v1.css; these are the
   step-specific bits for the basis + advanced steps. [Kim + Claude 2026-06-18]
   ════════════════════════════════════════════════════════════════ */
.fe-no-illu {
  margin-top: 8px;
}
.fe-no-illu svg {
  width: 100%;
  height: auto;
  display: block;
}

.fe-no-desc {
  font-size: 14px;
  line-height: 22px;
  color: #1a1f4d;
  margin: 12px 0 0;
}

.fe-no-main {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.fe-no-hdr {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 12px 8px 16px;
  flex-shrink: 0;
}

.fe-no-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 20px;
  background: rgba(64, 73, 154, 0.1);
  border: 1px solid rgba(64, 73, 154, 0.18);
}

.fe-no-pill-icon {
  font-size: 15px;
  color: #40499a;
  line-height: 1;
}

.fe-no-pill-name {
  font-size: 12px;
  font-weight: 600;
  color: #2a2e5e;
}

.fe-no-pill-id {
  font-size: 11px;
  color: #9097b8;
}

.fe-no-x {
  margin-left: auto;
  border: 0;
  background: transparent;
  padding: 4px;
  line-height: 1;
  color: #6b7280;
  cursor: pointer;
  border-radius: 8px;
  transition: background 120ms ease, color 120ms ease;
}
.fe-no-x i {
  font-size: 20px;
}
.fe-no-x:hover {
  background: rgba(64, 73, 154, 0.08);
  color: #40499a;
}

.fe-no-back {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border: 0;
  background: transparent;
  padding: 4px 8px;
  color: #40499a;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  border-radius: 8px;
  transition: background 120ms ease;
}
.fe-no-back i {
  font-size: 18px;
}
.fe-no-back:hover {
  background: rgba(64, 73, 154, 0.08);
}

.fe-no > .wm-scrim {
  transition: background 220ms ease;
}

.fe-no.fe-no--stacked > .wm-scrim {
  background: rgba(11, 11, 13, 0.62);
}

.fe-no > .wm-scrim > .wm-dialog {
  transition: box-shadow 220ms ease;
}

.fe-no.fe-no--stacked > .wm-scrim > .wm-dialog {
  box-shadow: 0 10px 10px rgba(0, 0, 0, 0.34), 0 16px 24px 10px rgba(0, 0, 0, 0.22);
}

@media (prefers-reduced-motion: reduce) {
  .fe-no > .wm-scrim,
  .fe-no > .wm-scrim > .wm-dialog {
    transition: none;
  }
}
.fe-no-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 12px 16px 8px;
  position: relative;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.fe-no-body::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.fe-node-link .qdnapro-answer-option__label--static.is-empty {
  font-style: normal;
  color: #c2410c;
}

.fe-no-style-block {
  margin-bottom: 18px;
}
.fe-no-style-block .fe-nm-q-label {
  display: block;
  margin-bottom: 8px;
}

.fe-no-style {
  border: 1px solid #e6e8ef;
  border-radius: 12px;
  padding: 14px;
}

.fe-no-colors {
  display: flex;
  justify-content: flex-start;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--default {
  --qcp-bg: #3a4290;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--indigo {
  --qcp-bg: #4F46E5;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--default_dark {
  --qcp-bg: #7C3AED;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--purple {
  --qcp-bg: #DB2777;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--pink {
  --qcp-bg: #D97706;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--green {
  --qcp-bg: #059669;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--blue {
  --qcp-bg: #0284C7;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--grey {
  --qcp-bg: #475569;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--orange {
  --qcp-bg: #E05A38;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-grey {
  --qcp-bg: #f0f1f2;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-grey-2 {
  --qcp-bg: #c4c7cc;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-red {
  --qcp-bg: #fee3e3;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-red-2 {
  --qcp-bg: #fbaaaa;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-yellow {
  --qcp-bg: #fef6db;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-yellow-2 {
  --qcp-bg: #fde594;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-green {
  --qcp-bg: #e2faf1;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-green-2 {
  --qcp-bg: #8becc5;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-blue {
  --qcp-bg: #e6eff9;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-blue-2 {
  --qcp-bg: #b5ceed;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-bright-blue {
  --qcp-bg: #85a1ec;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-bright-blue-2 {
  --qcp-bg: #d6e0f9;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-pink {
  --qcp-bg: #f6e1e8;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-dark-pink {
  --qcp-bg: #e5a6b9;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-purple {
  --qcp-bg: #ebe9fb;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-dark-purple {
  --qcp-bg: #c4bcf3;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--qdna-purple {
  --qcp-bg: #3a4290;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--qdna-orange {
  --qcp-bg: #f59e0b;
}

.fe-no-img .fe-label-align-toolbar {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
  margin-left: auto;
}

.fe-no-ftr {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-top: 1px solid #e1e3e6;
}

.fe-no-ftr-left {
  flex: 1 1 0;
  display: flex;
  align-items: center;
}

.fe-no-ftr-right {
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}

.fe-no-adv-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid #d8daea;
  background: #fff;
  border-radius: 8px;
  padding: 6px 12px;
  color: #40499a;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background 120ms ease, border-color 120ms ease;
}
.fe-no-adv-btn i {
  font-size: 16px;
}
.fe-no-adv-btn:hover {
  background: rgba(64, 73, 154, 0.06);
  border-color: #b0b8e8;
}

.fe-no-play {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 50%;
  background: #40499a;
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(64, 73, 154, 0.35);
  transition: transform 120ms ease, box-shadow 120ms ease;
}
.fe-no-play i {
  font-size: 20px;
  margin-left: 2px;
}
.fe-no-play:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(64, 73, 154, 0.45);
}

/* ── Live "how it looks in the app" preview (fase 2) ──────────────
   Mirrors the app's qtypes.scss (.flow-question-*) at panel scale.
   Colors: primary #40499A, yes #6BB6AB, no #DE5066. [Kim + Claude 2026-06-18] */
.fe-no-preview {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 0;
}

.fe-no-preview-cap {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #9097b8;
}

.fe-pv {
  padding: 4px 0 8px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.fe-pv-screen {
  position: relative;
  background: #ffffff;
  border: 1px solid #d8daea;
  border-radius: 14px;
  padding: 14px;
  box-shadow: 0 6px 18px rgba(20, 24, 60, 0.1);
  flex: 0 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.fe-pv-screen::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.fe-pv-question {
  position: relative;
}

.fe-pv-title {
  color: #40499A;
}

.fe-pv-title--center {
  text-align: center;
}

.fe-pv-label {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.25;
  word-break: break-word;
}

.fe-pv-sub {
  font-size: 12px;
  margin-top: 2px;
  opacity: 0.85;
}

.fe-pv-body {
  margin-top: 12px;
}

.fe-pv-yesno-wrap {
  display: flex;
  flex-direction: column;
}

.fe-pv-yesno {
  display: flex;
  gap: 8px;
}

.fe-pv-yesno qdnapro-answer-button {
  flex: 1 1 0;
  min-width: 0;
}

.fe-pv-yesno--stacked {
  flex-direction: column;
}

.fe-pv-yesno--stacked qdnapro-answer-button {
  flex: 0 0 auto;
  width: 100%;
}

.fe-pv-btn {
  flex: 1 1 0;
  border-radius: 10px;
  padding: 12px 8px;
  text-align: center;
  color: #ffffff;
  font-weight: 600;
  font-size: 13px;
}

.fe-pv-btn--yes {
  background: #6BB6AB;
}

.fe-pv-btn--no {
  background: #DE5066;
}

.fe-pv-options {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.fe-pv-opts-wrap {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.fe-pv-opts-wrap.fe-pv-opts--cols2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}

.fe-pv-opt {
  position: relative;
  display: flex;
  align-items: center;
  gap: 6px;
  background: #40499A;
  color: #ffffff;
  border-radius: 10px;
  padding: 10px 28px 10px 14px;
  font-size: 13px;
  font-weight: 600;
  opacity: 0.5;
  word-break: break-word;
  cursor: pointer;
  transition: opacity 0.12s ease, background 0.12s ease;
}
.fe-pv-opt:hover {
  opacity: 0.75;
}

.fe-pv-opt-icon {
  flex-shrink: 0;
}

.fe-pv-opt--color-positive {
  background: var(--c-signal-green-text, #428b6e);
}

.fe-pv-opt--color-warning {
  background: var(--c-warn-amber-500, #d97706);
}

.fe-pv-opt--color-negative {
  background: var(--c-signal-red-text, #c65a5a);
}

.fe-pv-opt--color-neutral_alt {
  background: var(--c-signal-blue-text, #6a8ab4);
}

.fe-pv-score {
  padding: 6px 2px;
}
.fe-pv-score qdnapro-score-scale {
  display: block;
}

.fe-pv-comment {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed rgba(180, 188, 220, 0.55);
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.fe-pv-comment-label {
  font-size: 13px;
  font-weight: 500;
  color: #1f2430;
}

.fe-pv-smile {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  padding: 6px 2px;
}

.fe-pv-smile-face {
  cursor: pointer;
  line-height: 0;
  transition: transform 0.12s ease;
}
.fe-pv-smile-face img {
  width: 44px;
  height: 44px;
  object-fit: contain;
  display: block;
}
.fe-pv-smile-face:hover {
  transform: scale(1.08);
}

.fe-pv-smile-face--active {
  transform: scale(1.14);
}

.fe-pv-smile-face--active:hover {
  transform: scale(1.14);
}

.fe-pv-opt--empty {
  font-style: italic;
}

.fe-pv-opt--active {
  opacity: 1;
}
.fe-pv-opt--active::after {
  content: "\f012c";
  font-family: "Material Design Icons";
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 16px;
}

.fe-pv-options-empty {
  padding: 10px 2px;
}

.fe-pv-options-empty-title {
  font-size: 13px;
  font-weight: 600;
  color: #2a2c3a;
  margin-bottom: 2px;
}

.fe-pv-options-empty-hint {
  font-size: 12px;
  line-height: 1.4;
  color: #9aa0bd;
}

/* Multi-radio "Toon als dropdown" preview = the REAL qdnapro-select (it brings
   its own styling). Just let it sit flush in the preview card. [Kim 2026-06-20] */
.fe-pv-select {
  display: block;
}

/* ---- Import answer options (modal + trigger) ---- [Kim 2026-06-20] */
.fe-answeropts-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 20px 0 8px;
}
.fe-answeropts-head .qdnapro-modal-label {
  margin: 0;
}

.fe-answeropts-actions {
  display: flex;
  align-items: center;
  gap: 4px;
}

.fe-import-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  padding: 6px 4px;
  background: none;
  border: none;
  color: #40499A;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  border-radius: 8px;
}
.fe-import-trigger .mdi {
  font-size: 16px;
}
.fe-import-trigger:hover {
  color: #2f367a;
  text-decoration: underline;
}

.fe-import-trigger--head {
  margin-top: 0;
}

.fe-bulk-actions-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 8px;
  padding: 8px 10px;
  background: rgba(64, 73, 154, 0.06);
  border-radius: 10px;
}
.fe-bulk-actions-row qdnapro-icon {
  margin-right: 4px;
}

.fe-grade-row {
  display: flex;
  align-items: center;
  gap: 8px;
  border-radius: 10px;
  transition: background-color 120ms ease-out;
}
.fe-grade-row qdnapro-answer-option {
  flex: 1 1 auto;
  min-width: 0;
}

.fe-grade-row--checked {
  background: rgba(64, 73, 154, 0.06);
}

.fe-grade-select {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
}

.fe-answer-row-wrap {
  display: flex;
  align-items: center;
  gap: 2px;
  width: 100%;
  min-width: 0;
}
.fe-answer-row-wrap qdnapro-answer-option {
  flex: 1 1 auto;
  min-width: 0;
}

.fe-answer-appearance {
  position: relative;
  flex: 0 0 auto;
}

.fe-answer-pending-tag {
  flex: 0 0 auto;
  font-size: 11px;
  line-height: 1.2;
  color: var(--qdna-color-text-muted, #6b7280);
  background: rgba(107, 114, 128, 0.1);
  border-radius: 999px;
  padding: 3px 8px;
  white-space: nowrap;
}

.fe-answer-appearance-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 6px;
  border: 1px solid transparent;
  background: transparent;
  color: #8a8fb8;
  cursor: pointer;
  font-size: 14px;
  transition: background 120ms, color 120ms, border-color 120ms;
}
.fe-answer-appearance-trigger:hover, .fe-answer-appearance-trigger--active {
  background: #eef0ff;
  color: #40499a;
  border-color: #d4d8ee;
}

.fe-oa-modal {
  z-index: 9350;
}

.fe-oa-browse-body {
  display: flex;
  gap: 28px;
  height: 100%;
  min-height: 0;
}

.fe-oa-browse-left {
  flex: 0 0 296px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 22px;
  overflow-y: auto;
  padding: 2px 4px 2px 2px;
}

.fe-oa-browse-right {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.fe-oa-preview {
  padding: 12px;
  border-radius: 10px;
  background: #f4f5fb;
}
.fe-oa-preview qdnapro-answer-button {
  display: block;
}

[data-theme=dark] .fe-oa-preview {
  background: rgba(255, 255, 255, 0.04);
}

.fe-oa-block {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.fe-oa-nav {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: 16px;
  border-top: 1px solid #e5e5ea;
}

.fe-oa-nav-title {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 15px;
  font-weight: 600;
  color: #0b0b0d;
}

.fe-oa-nav-title-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fe-oa-dirty-dot {
  flex-shrink: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #c98a1f;
}

.fe-oa-nav-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.fe-oa-nav-counter {
  flex-shrink: 0;
  font-size: 12px;
  color: #6b7280;
  white-space: nowrap;
}

.fe-oa-nav-hint {
  margin: 0;
  font-size: 12px;
  line-height: 18px;
  color: #8a90ac;
}

[data-theme=dark] .fe-oa-nav {
  border-top-color: #40444d;
}

.fe-oa-icon-search {
  flex-shrink: 0;
}

.fe-oa-grid-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding-top: 12px;
  margin-top: -4px;
  border-top: 1px solid #e5e5ea;
}

[data-theme=dark] .fe-oa-grid-scroll {
  border-top-color: #40444d;
}

.fe-oa-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, 36px);
  gap: 8px;
  justify-content: start;
  padding-bottom: 4px;
}

.fe-oa-tile {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 1px solid #e1e3e6;
  border-radius: 6px;
  background: #ffffff;
  color: #565b66;
  cursor: pointer;
  outline: none;
  transition: background 120ms ease, border-color 120ms ease, box-shadow 150ms ease;
}
.fe-oa-tile qdnapro-icon {
  pointer-events: none;
}
.fe-oa-tile:hover {
  background: #ebedfb;
  border-color: #b8bde8;
}
.fe-oa-tile:focus-visible {
  border-color: #40499a;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.2);
}
.fe-oa-tile--selected {
  border-color: #4652f3;
  background: rgba(70, 82, 243, 0.06);
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.25);
  color: #40499a;
}

[data-theme=dark] .fe-oa-tile {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
  color: #d1d5db;
}
[data-theme=dark] .fe-oa-tile:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.18);
}
[data-theme=dark] .fe-oa-tile.fe-oa-tile--selected {
  border-color: #a5acff;
  background: rgba(70, 82, 243, 0.18);
  box-shadow: 0 0 0 2px rgba(70, 82, 243, 0.3);
  color: #a5acff;
}

.fe-oa-icon-empty {
  text-align: center;
  padding: 24px 8px;
  color: #6e6e73;
  font-size: 13px;
}

.fe-oa-icon-count {
  flex-shrink: 0;
  text-align: right;
  font-size: 11px;
  color: #6e6e73;
}

.fe-fi-anchor {
  flex: 0 0 auto;
}

.fe-fi-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 32px;
  padding: 0 10px;
  border-radius: 8px;
  border: 1px solid #e2e4ef;
  background: #ffffff;
  color: #40499a;
  cursor: pointer;
  font-size: 13px;
  transition: background 120ms, border-color 120ms;
}
.fe-fi-trigger:hover, .fe-fi-trigger--active {
  background: #eef0ff;
  border-color: #d4d8ee;
}

.fe-fi-trigger-label {
  max-width: 140px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fe-import {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 420px;
}

.fe-import-pane {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 170px;
}

/* qdnapro-modal toggles .modal-tab-panel(-active); supply the show/hide here
   (the modal build ships no tab-panel CSS of its own). [Kim 2026-06-20] */
.fe-import-pane.modal-tab-panel:not(.modal-tab-panel-active) {
  display: none;
}

/* Drop-zone resting content (it is an overlay wrapper, so it needs its own
   body for height + a click target). */
.fe-import-dz {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 28px 16px;
  text-align: center;
  color: #6B7192;
}
.fe-import-dz .mdi {
  font-size: 28px;
  color: #40499A;
}
.fe-import-dz-text {
  font-size: 14px;
  font-weight: 600;
  color: #2A2F45;
}
.fe-import-dz-hint {
  font-size: 12px;
  color: #8A90AC;
}
.fe-import-dz .fe-import-pick {
  margin-top: 8px;
}

.fe-import-hint {
  margin: 0;
  font-size: 12px;
  color: #8A90AC;
}

.fe-import-count {
  margin-left: 4px;
  color: #40499A;
  font-weight: 600;
}

.fe-import-file {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  background: #F4F5FB;
  border-radius: 10px;
}
.fe-import-file-name {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 13px;
  color: #2A2F45;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.fe-import-file-remove {
  flex: 0 0 auto;
  background: none;
  border: none;
  color: #8A90AC;
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
}
.fe-import-file-remove:hover {
  color: #40499A;
}

.fe-import-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 4px;
}

.fe-pv-field {
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1.5px solid #40499A;
  border-radius: 10px;
  padding: 10px 12px;
  background: #ffffff;
}

.fe-pv-field--counter {
  justify-content: space-between;
}

.fe-pv-step {
  flex: 0 0 auto;
  width: 26px;
  height: 26px;
  border: 1px solid #40499A;
  border-radius: 7px;
  background: #ffffff;
  color: #40499A;
  font-size: 16px;
  line-height: 1;
  padding: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 120ms ease;
}
.fe-pv-step:hover {
  background: rgba(64, 73, 154, 0.1);
}
.fe-pv-step:active {
  background: rgba(64, 73, 154, 0.18);
}

.fe-pv-input {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 6px;
}

.fe-pv-cur {
  color: #40499A;
  font-weight: 700;
}

.fe-pv-realinput {
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  background: transparent;
  outline: none;
  padding: 0;
  font-size: 14px;
  font-family: inherit;
  color: #0b0b0d;
}
.fe-pv-realinput::placeholder {
  color: #9aa0b5;
}

.fe-pv-ph {
  color: #9aa0b5;
  font-size: 14px;
}

.fe-pv-barcode {
  margin-left: auto;
  color: #40499A;
  font-size: 18px;
}

.fe-no input[type=date]::before,
.fe-no input[type=time]::before,
.fe-pv input[type=date]::before,
.fe-pv input[type=time]::before {
  content: none !important;
}

.fe-pv-imgaction {
  padding-bottom: 12px;
  margin-bottom: 14px;
  border-bottom: 1px solid #eceef5;
}

.fe-pv-photo {
  margin: 12px 0;
}
.fe-pv-photo img {
  display: block;
  width: 100%;
  max-height: 220px;
  object-fit: cover;
  border-radius: 14px;
}

.fe-pv-photo--s img,
.fe-pv-photo--m img {
  width: auto;
  max-width: 100%;
  margin: 0 auto;
  object-fit: contain;
}

.fe-pv-photo--s img {
  max-height: 75px;
}

.fe-pv-photo--m img {
  max-height: 130px;
}

.fe-pv-req {
  color: #DE5066;
  font-weight: 700;
  margin-left: 2px;
  cursor: help;
}

.fe-pv-single {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.fe-pv-field--error {
  border-color: #DE5066 !important;
}

.fe-pv-error {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: #DE5066;
}
.fe-pv-error .mdi {
  font-size: 14px;
}

.fe-pv-hint {
  font-size: 11px;
  color: #9aa0bd;
  line-height: 1.3;
}

.fe-pv-textarea {
  width: 100%;
  min-height: 96px;
  resize: none;
  text-align: left;
  line-height: 1.4;
  overflow: hidden;
}

.fe-pv-realinput--center {
  text-align: center;
}

.fe-pv-affix {
  color: #40499A;
  font-size: 18px;
  margin-left: 6px;
  flex: 0 0 auto;
  opacity: 0.8;
}

.fe-pv-sum {
  align-self: flex-end;
}

.fe-pv-units {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.fe-pv-unit-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 4px 0;
}

.fe-pv-unit-info {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
  width: 160px;
  min-width: 160px;
  max-width: 160px;
  overflow: hidden;
  cursor: pointer;
  user-select: none;
}

.fe-pv-unit-img {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: #eef0fa;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.fe-pv-unit-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.fe-pv-unit-img.fe-pv-unit-img--icon img {
  object-fit: contain;
  padding: 8px;
  box-sizing: border-box;
}

.fe-pv-units-empty {
  font-size: 12px;
  line-height: 1.4;
  color: #9aa0bd;
  padding: 8px 2px;
}

.fe-pv-unit-label {
  font-size: 13px;
  font-weight: 600;
  color: #2a2c3a;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fe-pv-unit-counter {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 0 0 auto;
}

.fe-pv-unit-input {
  width: 96px;
  text-align: center;
  border: 1px solid #ccc;
  border-radius: 8px;
  padding: 6px 8px;
  font: inherit;
  color: #2a2c3a;
  background: #fff;
}
.fe-pv-unit-input::placeholder {
  color: #9aa0bd;
}

.fe-pv-units-note {
  font-size: 11px;
  color: #9aa0bd;
  line-height: 1.3;
}

.fe-pv-unit-control {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1 1 auto;
  min-width: 0;
}

.fe-pv-unit-field {
  flex: 1 1 auto;
  min-width: 0;
}
.fe-pv-unit-field .input-field-row, .fe-pv-unit-field .input-field {
  min-width: 0;
}

.fe-pv-unit-control--yesno {
  flex-wrap: wrap;
}
.fe-pv-unit-control--yesno qdnapro-answer-button {
  flex: 1 1 0;
  min-width: 64px;
}
.fe-pv-unit-control--yesno qdnapro-answer-button .qdnapro-answer-button__tick,
.fe-pv-unit-control--yesno qdnapro-answer-button .qdnapro-answer-button__icon {
  display: none;
}

.fe-pv-unit-control--yesno-stacked {
  flex-direction: column;
  align-items: stretch;
}
.fe-pv-unit-control--yesno-stacked qdnapro-answer-button {
  flex: 1 1 auto;
}

.fe-pv-unit-control--photo {
  flex: 0 0 auto;
  justify-content: flex-end;
}
.fe-pv-unit-control--photo .fe-pv-camera-btn--mini {
  opacity: 1;
}

.fe-pv-unit-select {
  flex: 1 1 auto;
  min-width: 0;
}

.fe-pv-unit-scan {
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 8px;
  background: #40499A;
  color: #fff;
  cursor: pointer;
  transition: background-color 120ms ease-out;
}
.fe-pv-unit-scan qdnapro-icon {
  width: 18px;
  height: 18px;
}
.fe-pv-unit-scan:hover {
  background: #353d86;
}

.fe-pv-barcode-btn {
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 6px;
  background: #40499A;
  color: #fff;
  cursor: pointer;
}
.fe-pv-barcode-btn .mdi {
  font-size: 16px;
}

.fe-pv-scan-btn {
  margin-top: 10px;
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 14px;
  border: none;
  border-radius: 10px;
  background: #40499A;
  color: #fff;
  font: inherit;
  font-weight: 600;
  font-size: 13px;
  cursor: pointer;
  transition: background-color 120ms ease-out;
}
.fe-pv-scan-btn qdnapro-icon {
  width: 18px;
  height: 18px;
}
.fe-pv-scan-btn:hover {
  background: #353d86;
}

.fe-pv-photo-node {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.fe-pv-camera-btn {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 14px;
  border: none;
  border-radius: 10px;
  background: #40499A;
  color: #fff;
  font: inherit;
  font-weight: 600;
  font-size: 13px;
  cursor: pointer;
  transition: background-color 120ms ease-out;
}
.fe-pv-camera-btn qdnapro-icon {
  width: 18px;
  height: 18px;
}
.fe-pv-camera-btn:hover {
  background: #353d86;
}

.fe-pv-signature-pad {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 96px;
  padding: 16px;
  border: 1.5px dashed #b0b8e8;
  border-radius: 12px;
  background: #f5f6ff;
  color: #8b93c9;
}

.fe-pv-signature-line {
  width: 70%;
  height: 2px;
  border-radius: 2px;
  background: #d3d8f2;
}

.fe-pv-toast {
  position: absolute;
  left: 50%;
  bottom: 16px;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: calc(100% - 32px);
  padding: 10px 14px;
  border-radius: 10px;
  background: #2a2c3a;
  color: #fff;
  font-size: 12.5px;
  font-weight: 500;
  line-height: 1.3;
  box-shadow: 0 6px 20px rgba(20, 22, 40, 0.28);
  z-index: 5;
}
.fe-pv-toast qdnapro-icon {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
}

.fe-pv-toast-fade-enter-active,
.fe-pv-toast-fade-leave-active {
  transition: opacity 180ms ease-out, transform 180ms ease-out;
}

.fe-pv-toast-fade-enter-from,
.fe-pv-toast-fade-leave-to {
  opacity: 0;
  transform: translateX(-50%) translateY(8px);
}

.fe-pv-formcard-empty {
  font-size: 12.5px;
  color: #9aa0bd;
  padding: 8px 0;
}

.fe-pv-formcard-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.fe-pv-formcard-item {
  padding-top: 12px;
  border-top: 1px solid #eceef5;
}
.fe-pv-formcard-item:first-child {
  padding-top: 0;
  border-top: none;
}

.fe-pv-formcard-item-label {
  font-size: 13px;
  font-weight: 600;
  color: #2a2c3a;
  margin-bottom: 8px;
  word-break: break-word;
}

.fe-pv-formcard-item-label--has-sub {
  margin-bottom: 2px;
}

.fe-pv-formcard-item-sub {
  font-size: 12px;
  color: #6b7093;
  margin-bottom: 8px;
  word-break: break-word;
}

.fe-pv-yesno--mini .fe-pv-btn {
  padding: 8px 6px;
  font-size: 12px;
}

.fe-pv-opt--mini {
  padding: 8px 12px;
  font-size: 12px;
  cursor: default;
}

.fe-pv-formcard-input-mock {
  height: 36px;
  border: 1.5px solid #40499A;
  border-radius: 10px;
  background: #ffffff;
  opacity: 0.6;
}

.fe-pv-camera-btn--mini {
  padding: 8px 12px;
  font-size: 12px;
  opacity: 0.85;
  cursor: default;
}

.fe-pv-field--mini {
  padding: 8px 12px;
}

.fe-pv-formcard-smile {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 2px 0;
}
.fe-pv-formcard-smile img {
  width: 34px;
  height: 34px;
  object-fit: contain;
  display: block;
}

.fe-pv-formcard-scoremock {
  pointer-events: none;
}

.fe-pv-formcard-signature {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 40px;
  padding: 8px 12px;
  border: 1.5px dashed #b0b8e8;
  border-radius: 10px;
  background: #f5f6ff;
  color: #8b93c9;
}
.fe-pv-formcard-signature .fe-pv-signature-line {
  flex: 1;
  width: auto;
}

.fe-pv-display {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.fe-pv-display-content {
  color: #1f2430;
  font-size: 14px;
  line-height: 1.55;
}
.fe-pv-display-content h1, .fe-pv-display-content h2, .fe-pv-display-content h3 {
  color: #40499A;
  font-weight: 600;
  line-height: 1.25;
  margin: 0.9em 0 0.3em;
}
.fe-pv-display-content h1:first-child, .fe-pv-display-content h2:first-child, .fe-pv-display-content h3:first-child {
  margin-top: 0;
}
.fe-pv-display-content h1 {
  font-size: 20px;
}
.fe-pv-display-content h2 {
  font-size: 17px;
}
.fe-pv-display-content h3 {
  font-size: 15px;
}
.fe-pv-display-content p {
  margin: 0 0 0.7em;
}
.fe-pv-display-content p:last-child {
  margin-bottom: 0;
}
.fe-pv-display-content ul, .fe-pv-display-content ol {
  padding-left: 20px;
  margin: 0 0 0.7em;
}
.fe-pv-display-content li {
  margin: 0.2em 0;
}
.fe-pv-display-content a {
  color: #40499A;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
.fe-pv-display-content a:hover {
  color: #333a7b;
}
.fe-pv-display-content img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}

.fe-pv-display-video {
  display: block;
  width: 100%;
  max-height: 220px;
  border-radius: 10px;
  background: #000;
}

.fe-pv-display-empty {
  padding: 16px;
  border: 1px dashed #d0d4e8;
  border-radius: 10px;
  text-align: center;
}

.fe-pv-display-empty-title {
  font-size: 13px;
  font-weight: 600;
  color: #40499A;
  margin-bottom: 4px;
}

.fe-pv-display-empty-hint {
  font-size: 12px;
  color: #9aa0bd;
  line-height: 1.35;
}

.fe-rt-sublabel {
  margin: 2px 0 8px;
  font-size: 12px;
  line-height: 1.4;
  color: var(--qdna-color-text-muted, #6b7280);
}

.fe-video-block qdnapro-button {
  margin-right: 8px;
}

.fe-video-preview {
  display: flex;
  align-items: center;
  gap: 10px;
}

.fe-video-el {
  max-width: 260px;
  max-height: 160px;
  border-radius: 8px;
  background: #000;
}

.fe-video-errors {
  margin-top: 6px;
}

.fe-video-error {
  font-size: 12px;
  color: #c33a30;
  line-height: 1.35;
}

.fe-no .fe-set-divider {
  margin: 16px 0;
}
.fe-no .fe-set-divider .fe-set-divider-label {
  font-size: 12px;
  font-weight: 600;
  color: #6b6f78;
  margin-bottom: 8px;
}

.fe-no .fe-set-number-sub {
  display: block;
  font-size: 12px;
  line-height: 1.35;
  color: #6b6f78;
  margin: 2px 0 8px;
}

.fe-set-number-field {
  max-width: 120px;
}

.fe-form--compact-number .fe-set-number-field {
  max-width: 72px;
}

.fe-set-image {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-start;
}

.fe-set-image-preview {
  max-width: 220px;
  max-height: 160px;
  border-radius: 8px;
  border: 1px solid #e6e6ea;
  object-fit: contain;
}

.fe-set-image-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.fe-no .fe-set-disabled-hint {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin: 2px 0 6px;
  padding: 8px 10px;
  border-radius: 8px;
  background: #fdf4e3;
  color: #8a6100;
  font-size: 12px;
  line-height: 1.35;
}
.fe-no .fe-set-disabled-hint qdnapro-icon {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  margin-top: 1px;
  color: #c98a00;
}

.fe-no .wm-info {
  flex: 0 0 380px;
}

.fe-no--noprev .wm-info {
  flex: 0 0 260px;
}

.fe-no .fe-section {
  border-bottom: 0;
  padding: 10px 0;
}

.fe-no .fe-set-block {
  display: flex;
  flex-direction: column;
}

.fe-no .fe-set-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 0;
}

.fe-no .fe-ti-inputs {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 0 0 12px 2px;
}
.fe-no .fe-ti-inputs.fe-ti-inputs--multi {
  flex-direction: row;
  flex-wrap: wrap;
}
.fe-no .fe-ti-inputs.fe-ti-inputs--multi .fe-ti-field {
  flex: 1 1 140px;
}

.fe-no .fe-ti-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.fe-no .fe-ti-label {
  font-size: 12px;
  font-weight: 500;
  color: var(--qdna-color-text-muted, #6b7280);
}

.fe-no .fe-ti-input {
  height: 38px;
  padding: 0 12px;
  font-size: 14px;
  border: 1px solid #d8d6ea;
  border-radius: 8px;
  background: #fff;
  color: #1f2430;
  outline: none;
  transition: border-color 140ms ease, box-shadow 140ms ease;
}
.fe-no .fe-ti-input:focus {
  border-color: #40499a;
  box-shadow: 0 0 0 2px rgba(64, 73, 154, 0.15);
}

.fe-no .qdnapro-modal-toggle-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.fe-no .qdnapro-modal-toggle-label {
  font-size: 14px;
  line-height: 20px;
  font-weight: 600;
  color: #0b0b0d;
}

.fe-no .qdnapro-modal-toggle-sub {
  font-size: 12px;
  line-height: 16px;
  color: #6b7280;
}

.fe-no .qdnapro-modal-section-title,
.fe-no .fe-set-section {
  margin: 18px 0 2px;
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
  color: #40499a;
}

.fe-no .fe-no-tiles-block {
  margin: 8px 0 16px;
}
.fe-no .fe-no-tiles-block .qdnapro-modal-toggle-label {
  display: block;
  margin-bottom: 8px;
}

.fe-no-seg {
  flex: 1 1 auto;
  display: flex;
  justify-content: center;
}

.fe-no .wm-info .fe-no-pill {
  align-self: flex-start;
}

.fe-no .fe-no-inputtype {
  margin-top: 20px;
}
.fe-no .fe-no-inputtype .fe-no-inputtype-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.fe-no .fe-no-inputtype .fe-no-inputtype-head-text {
  min-width: 0;
}
.fe-no .fe-no-inputtype .fe-nm-q-label {
  display: block;
  margin-bottom: 4px;
}
.fe-no .fe-no-inputtype .fe-no-inputtype-hint {
  margin: 0;
  font-size: 12px;
  line-height: 1.4;
  color: var(--qdna-color-text-muted, #6b7280);
}

.fe-multi-next-step-hint {
  margin: 0 0 10px;
  font-size: 12px;
  line-height: 1.4;
  color: var(--qdna-color-text-muted, #6b7280);
}

.fe-scale-sync-hint {
  margin: 0 0 10px;
  font-size: 12px;
  line-height: 1.4;
  color: var(--qdna-color-text-muted, #6b7280);
}

.fe-link-list {
  position: relative;
}

.fe-drop-line {
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  background: #4652f3;
  border-radius: 1px;
  box-shadow: 0 0 10px rgba(70, 82, 243, 0.55);
  pointer-events: none;
  z-index: 5;
  transition: top 120ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.qdnapro-answer-option[data-fe-settle] {
  animation: fe-ao-settle 260ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

@keyframes fe-ao-settle {
  0% {
    box-shadow: 0 8px 20px rgba(70, 82, 243, 0.2);
  }
  100% {
    box-shadow: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .fe-drop-line {
    transition: none;
  }
  .qdnapro-answer-option[data-fe-settle] {
    animation: none;
  }
}
.fe-prop-warning {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin: 6px 0 0;
  padding: 8px 10px;
  border-radius: 8px;
  background: #fff3cd;
  border: 1px solid #f0d060;
  color: #9a6a10;
  font-size: 12px;
  line-height: 1.4;
}
.fe-prop-warning .mdi {
  font-size: 15px;
  line-height: 1.3;
  flex-shrink: 0;
}

.fe-prop-alert {
  margin: 6px 0 0;
}

.fe-no-preview-group {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.fe-no-preview-btn qdnapro-icon {
  margin-right: 6px;
}

.fe-no-noprev {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1 1 auto;
  min-height: 0;
}

.fe-no-noprev-illu {
  display: flex;
  justify-content: center;
}
.fe-no-noprev-illu .illustration-img {
  width: auto;
  max-width: 100%;
  max-height: min(42vh, 400px);
  margin: 0 auto;
}

.fe-no-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 8px;
  margin-bottom: 14px;
}

.fe-no .fe-no-typesettings-btn {
  flex-shrink: 0;
}
.fe-no .fe-no-typesettings-btn qdnapro-icon:first-child {
  margin-right: 6px;
}
.fe-no .fe-no-typesettings-btn qdnapro-icon:last-child {
  margin-left: 4px;
}

.fe-no .fe-no-format-row {
  margin-top: 12px;
}
.fe-no .fe-no-format-row .fe-no-format-select {
  display: block;
  width: 100%;
}

.fe-no .fe-no-startflow-btn {
  position: relative;
  overflow: hidden;
}
.fe-no .fe-no-startflow-btn qdnapro-icon {
  margin-right: 6px;
}
.fe-no .fe-no-startflow-btn::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 55%;
  background: linear-gradient(120deg, transparent 0%, rgba(255, 255, 255, 0.45) 50%, transparent 100%);
  transform: translateX(-200%);
  animation: fe-no-startflow-shimmer 3.4s ease-in-out infinite;
  pointer-events: none;
}
.fe-no .fe-no-startflow-btn[disabled]::after {
  content: none;
}

@keyframes fe-no-startflow-shimmer {
  0% {
    transform: translateX(-200%);
  }
  30% {
    transform: translateX(220%);
  }
  100% {
    transform: translateX(220%);
  }
}
.fe-no-img {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.fe-no-img-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
}

.fe-no-img-pos {
  position: relative;
  display: inline-flex;
}

.fe-no-img-pos-backdrop {
  position: fixed;
  inset: 0;
  z-index: 40;
}

.fe-no-img-pos-menu {
  position: fixed;
  z-index: 50;
  min-width: 200px;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(20, 24, 60, 0.18);
  padding: 4px;
}

.fe-no-img-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 7px 14px;
  font-size: 13px;
  font-weight: 600;
  color: #40499a;
  background: #fff;
  border: 1px solid #d8d6ea;
  border-radius: 8px;
  cursor: pointer;
  transition: background 140ms ease, border-color 140ms ease;
}
.fe-no-img-btn qdnapro-icon {
  color: #40499a;
}
.fe-no-img-btn:hover {
  background: #f4f3fb;
  border-color: #c3bfe4;
}

.fe-no-img-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  color: #b3261e;
  background: transparent;
  border: 1px solid #ecc9c6;
  border-radius: 8px;
  cursor: pointer;
}
.fe-no-img-remove:hover {
  background: #fdeceb;
}

.fe-logic-section .fe-logic-match {
  margin: 6px 0 12px;
}
.fe-logic-section .fe-logic-empty-hint {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 8px;
  background: #f4f5fb;
  color: #6b6f78;
  font-size: 13px;
  line-height: 1.4;
}
.fe-logic-section .fe-logic-add-if-btn {
  flex: 0 0 auto;
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 600;
  color: #4652f3;
  background: #fff;
  border: 1.5px solid rgba(70, 82, 243, 0.3);
  border-radius: 7px;
  cursor: pointer;
  transition: background 140ms ease, border-color 140ms ease;
}
.fe-logic-section .fe-logic-add-if-btn:hover {
  background: #f0f1fb;
  border-color: rgba(70, 82, 243, 0.55);
}
.fe-logic-section .fe-logic-rules {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.fe-logic-section .fe-logic-rule {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 8px;
  background: #f8f8fb;
}
.fe-logic-section .fe-logic-rule-prefix {
  flex: 0 0 auto;
  font-size: 13px;
  font-weight: 600;
  color: #40499a;
  min-width: 52px;
}
.fe-logic-section .fe-logic-rule-node {
  flex: 1 1 220px;
  min-width: 180px;
}
.fe-logic-section .fe-logic-rule-op {
  flex: 0 0 auto;
  min-width: 72px;
}
.fe-logic-section .fe-logic-rule-value {
  flex: 1 1 160px;
  min-width: 120px;
}
.fe-logic-section .fe-logic-rule-del {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  padding: 0;
  margin-left: auto;
  color: #9aa0cc;
  background: transparent;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  transition: color 140ms ease, background 140ms ease;
}
.fe-logic-section .fe-logic-rule-del:hover {
  color: #c8485b;
  background: rgba(200, 72, 91, 0.08);
}
.fe-logic-section .fe-logic-target-label {
  margin-top: 14px;
  display: block;
}

.fe-logic-section.fe-logic-section--focus {
  border-radius: 10px;
  animation: fe-logic-focus-flash 1300ms ease;
}

@keyframes fe-logic-focus-flash {
  0% {
    background: rgba(64, 73, 154, 0.14);
  }
  100% {
    background: transparent;
  }
}
.fe-fcq-empty-state {
  padding: 12px 0;
}

.fe-fcq-empty-illustration {
  max-height: 160px;
  width: auto;
}

.fe-fcq-add-row {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  margin-top: 8px;
  padding: 10px;
  border: 1px dashed #a8b2e8;
  border-radius: 8px;
  background: transparent;
  color: #40499a;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background 120ms ease, border-color 120ms ease;
}
.fe-fcq-add-row:hover {
  background: rgba(64, 73, 154, 0.06);
  border-color: #40499a;
}

.fe-fcq-add-row__icon {
  font-size: 15px;
}

.fe-typepicker-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 10px;
}

.fe-typepicker-tile {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 16px 10px;
  border: 1px solid #e2e4ef;
  border-radius: 8px;
  background: #f4f5fb;
  color: #2a2e5e;
  font-size: 13px;
  line-height: 1.3;
  text-align: center;
  cursor: pointer;
  transition: border-color 140ms, box-shadow 140ms, background 140ms;
}
.fe-typepicker-tile:hover, .fe-typepicker-tile:focus-visible {
  border-color: #a8b2e8;
  background: #eef0ff;
  box-shadow: 0 1px 5px rgba(64, 73, 154, 0.1);
}

.fe-typepicker-tile__icon {
  font-size: 22px;
  color: #40499a;
}

.fe-typepicker-tile__label {
  word-break: break-word;
}

.fe-fcq-jump-line {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 10px;
  padding: 10px 12px;
  border-radius: 8px;
  background: rgba(64, 73, 154, 0.07);
  color: #2a2e5e;
  font-size: 13px;
  line-height: 1.4;
}

.fe-fcq-jump-line__icon {
  flex-shrink: 0;
  margin-top: 1px;
  font-size: 15px;
  color: #40499a;
}

.fe-fcq-list {
  position: relative;
  padding: 0;
  margin: 0;
  list-style: none;
}
.fe-fcq-list > .fe-fcq-row + .fe-fcq-row {
  margin-top: 6px;
}

.fe-fcq-row {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 8px;
  position: relative;
  padding: 10px 10px 10px 18px;
  border-radius: 8px;
  border: 1px solid #e2e4ef;
  background: color-mix(in srgb, var(--theme-btn-color, #40499a) 12%, #fff);
  cursor: pointer;
  transition: border-color 140ms, box-shadow 140ms, background 140ms;
}
.fe-fcq-row:hover {
  border-color: #a8b2e8;
  box-shadow: 0 1px 5px rgba(64, 73, 154, 0.1);
}
.fe-fcq-row:hover .fe-fcq-row__drag {
  opacity: 1;
}
.fe-fcq-row:hover .fe-fcq-row__move {
  opacity: 1;
  pointer-events: all;
}
.fe-fcq-row:hover .fe-fcq-row__delete {
  opacity: 1;
  pointer-events: all;
}

.fe-fcq-row__text {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.fe-fcq-row__drag {
  position: absolute;
  left: 4px;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 22px;
  background: #4652f3;
  border-radius: 2px;
  opacity: 0;
  transition: opacity 150ms ease;
  pointer-events: none;
}

.fe-fcq-row__icon {
  flex-shrink: 0;
  font-size: 18px;
  color: #40499a;
}

.fe-fcq-row__label {
  min-width: 0;
  font-size: 15px;
  line-height: 1.4;
  color: #2a2e5e;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fe-fcq-row__chip {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  max-width: 100%;
  padding: 2px 8px;
  border: 1px solid rgba(64, 73, 154, 0.22);
  border-radius: 20px;
  background: rgba(64, 73, 154, 0.08);
  color: #40499a;
  font-size: 12px;
  line-height: 1.5;
  cursor: pointer;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: background 120ms ease, border-color 120ms ease;
}
.fe-fcq-row__chip:hover {
  background: rgba(64, 73, 154, 0.14);
  border-color: rgba(64, 73, 154, 0.34);
}

.fe-fcq-row__chip-icon {
  flex-shrink: 0;
  font-size: 12px;
}

.fe-fcq-row__required {
  flex-shrink: 0;
  color: #c65a5a;
  font-weight: 600;
}

.fe-fcq-row__move {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: #40499a;
  background: #eef0ff;
  border: 1px solid #c7cced;
  border-radius: 5px;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity 140ms, background 120ms, border-color 120ms;
}
.fe-fcq-row__move .mdi {
  font-size: 15px;
}
.fe-fcq-row__move:hover {
  background: #dde1ff;
  border-color: #a8b2e8;
}
.fe-fcq-row__move.fe-fcq-row__move--active {
  opacity: 1;
  pointer-events: all;
  background: #dde1ff;
  border-color: #40499a;
}

.fe-fcq-row__delete {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: #c94040;
  background: #fde8e8;
  border: 1px solid #e8b0b0;
  border-radius: 5px;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity 140ms, background 120ms, border-color 120ms;
}
.fe-fcq-row__delete .mdi {
  font-size: 15px;
}
.fe-fcq-row__delete:hover {
  background: #ffcccc;
  border-color: #c94040;
}

.fe-fcq-move-row {
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  padding: 10px;
  border-radius: 8px;
  border: 1px dashed #b0b8e8;
  background: #eef0ff;
}

.fe-fcq-move-select {
  flex: 1 1 220px;
  min-width: 160px;
}

.fe-fcq-move-empty {
  flex: 1;
  font-size: 13px;
  color: #6b6f78;
}

.fe-fcq-move-actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 8px;
}

.fe-fcq-move-cancel,
.fe-fcq-move-confirm {
  flex-shrink: 0;
  padding: 6px 12px;
  font-size: 13px;
  font-weight: 600;
  border-radius: 6px;
  cursor: pointer;
  transition: background 120ms ease, border-color 120ms ease, opacity 120ms ease;
}

.fe-fcq-move-cancel {
  color: #40499a;
  background: transparent;
  border: 1px solid transparent;
}
.fe-fcq-move-cancel:hover {
  background: rgba(64, 73, 154, 0.08);
}

.fe-fcq-move-confirm {
  color: #fff;
  background: #40499a;
  border: 1px solid #40499a;
}
.fe-fcq-move-confirm:hover {
  background: #333a7b;
}
.fe-fcq-move-confirm:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.fe-fcq-move-toast {
  position: sticky;
  bottom: 6px;
  z-index: 3;
  margin-top: 10px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: 100%;
  padding: 9px 14px;
  border-radius: 10px;
  background: #1f7a4d;
  color: #fff;
  font-size: 12.5px;
  font-weight: 500;
  line-height: 1.3;
  box-shadow: 0 6px 20px rgba(20, 22, 40, 0.24);
}

.fe-fcq-move-toast__icon {
  flex-shrink: 0;
  font-size: 16px;
}

.fe-fcq-move-toast-fade-enter-active,
.fe-fcq-move-toast-fade-leave-active {
  transition: opacity 180ms ease-out, transform 180ms ease-out;
}

.fe-fcq-move-toast-fade-enter-from,
.fe-fcq-move-toast-fade-leave-to {
  opacity: 0;
  transform: translateY(8px);
}

.fe2-handover-btn {
  position: relative;
}

.fe2-count-badge {
  position: absolute;
  top: -3px;
  right: -4px;
  min-width: 15px;
  height: 15px;
  padding: 0 4px;
  border-radius: 999px;
  background: #e14e47;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  line-height: 15px;
  text-align: center;
  pointer-events: none;
}

.qdnapro-modal.fe-ho-modal.modal-size-large .modal-dialog {
  height: auto;
  max-height: min(800px, 100vh - 48px);
}

.qdnapro-modal.fe-ho-modal.modal-size-large .modal-window {
  height: auto;
}

.fe-ho-summary {
  margin: 2px 2px 10px;
  font-size: 12px;
  color: #6b7192;
}

.fe-ho-group {
  padding: 12px 2px 14px;
}

.fe-ho-group + .fe-ho-group {
  border-top: 1px solid rgba(17, 24, 39, 0.08);
}

.fe-ho-group-head {
  display: flex;
  align-items: center;
  gap: 8px;
}
.fe-ho-group-head qdnapro-button {
  margin-left: auto;
}
.fe-ho-group-head qdnapro-icon {
  margin-right: 4px;
}

.fe-ho-group-dot {
  flex: 0 0 auto;
  width: 9px;
  height: 9px;
  border-radius: 3px;
  background: #e14e47;
}

.fe-ho-group-title {
  font-size: 13px;
  font-weight: 700;
  color: #1a1f4d;
  letter-spacing: 0.02em;
}

.fe-ho-group-source {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin: 4px 0 2px 1px;
  font-size: 12px;
  color: #6b7192;
}
.fe-ho-group-source qdnapro-icon {
  flex: 0 0 auto;
  margin-top: 2px;
  color: #9097b8;
}

.fe-ho-group-source:last-of-type {
  margin-bottom: 8px;
}

.fe-ho-none {
  margin: 4px 0 8px;
  font-size: 12px;
  color: #9097b8;
}

.fe-ho-add {
  margin-top: 8px;
}

.fe-ho-trailing {
  display: flex;
  align-items: center;
  gap: 10px;
}

.fe-ho-recipients {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  font-size: 12px;
  line-height: 1.35;
}

.fe-ho-recip {
  display: flex;
  align-items: baseline;
  gap: 6px;
  max-width: 220px;
}

.fe-ho-recip-key {
  flex: 0 0 auto;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #9097b8;
}

.fe-ho-recip-names {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #1a1f4d;
}

.fe-ho-recip--cc .fe-ho-recip-names {
  color: #6b7192;
}

.fe-ho-recip--none {
  color: #9097b8;
}

.fe-ho-source-text {
  min-width: 0;
  overflow-wrap: anywhere;
}

.fe-ho-source-text b {
  color: #3f3f56;
  font-weight: 600;
}

.fe-ho-source-prefix {
  margin-right: 4px;
}

.fe-ho-source-arrow {
  margin: 0 5px;
  color: #9097b8;
}

.fe-ho-source-option {
  color: #40499a;
  font-weight: 600;
}

.fe-score .fe-score-name {
  padding-bottom: 16px;
  margin-bottom: 16px;
  border-bottom: 1px solid #eceaf4;
}
.fe-score .fe-score-name-row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.fe-score .fe-score-name-row qdnapro-select {
  flex: 0 0 220px;
  max-width: 220px;
}
.fe-score .fe-score-name-input {
  flex: 0 0 220px;
  max-width: 220px;
  min-width: 0;
}
.fe-score .fe-score-input {
  flex: 0 0 72px;
  max-width: 72px;
}
.fe-score .fe-score-trailing {
  display: flex;
  align-items: center;
  gap: 6px;
}
.fe-score .fe-score-unit {
  font-size: 12px;
  color: #6b7192;
  flex: 0 0 auto;
  min-width: 14px;
}
.fe-score .fe-score-list {
  margin-top: 4px;
}
.fe-score .fe-score-summary {
  margin: 12px 0 0;
  padding: 9px 12px;
  background: #f5f4fb;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  color: #3f3f56;
}
.fe-score .fe-score-band-head,
.fe-score .fe-score-band-fields {
  display: grid;
  grid-template-columns: 72px 72px 72px auto;
  align-items: center;
  gap: 8px;
  justify-content: start;
}
.fe-score .fe-score-band-head {
  margin: 8px 0 4px;
}
.fe-score .fe-score-band-col {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: #8c91ab;
}
.fe-score .fe-score-band-row {
  padding: 8px 0;
  border-bottom: 1px solid #f0f0f6;
}
.fe-score .fe-score-band-row:last-of-type {
  border-bottom: 0;
}
.fe-score .fe-score-band-actions {
  display: flex;
  align-items: center;
  gap: 2px;
  margin-left: 8px;
}
.fe-score .fe-score-band-sentence {
  margin: 4px 0 0;
  font-size: 12px;
  color: #6b7192;
}
.fe-score .fe-score-band-sentence--problem {
  color: #b0561f;
  font-weight: 500;
}

/* ============================================================
   Dev X-ray — component/hand-rolled overlay (dev right only)
   ------------------------------------------------------------
   Driven by web/js/dev-xray.js. Markers are DATA ATTRIBUTES,
   never classes: several components rewrite their own className
   on re-render, which would wipe a class-based hook.

   The marker colours are DELIBERATELY off-system (lime + magenta).
   A dev overlay must never be mistaken for real UI, so it may not
   borrow brand or signal tokens. The panel itself does use tokens,
   because it is a normal surface.

   Line style carries the meaning too, not just hue, so the two
   states stay apart without relying on red/green:
     solid  = component
     dashed = hand-rolled
   ============================================================ */
[data-xray=component] {
  outline: 2px solid #00e07a !important;
  outline-offset: -2px !important;
}

[data-xray=handrolled] {
  outline: 2px dashed #ff2d95 !important;
  outline-offset: -2px !important;
}

/* Hover label. KNOWN LIMITATION: this borrows ::after, so an element
   that already draws an icon through ::after loses it while hovered
   with the overlay on. Hover-only keeps the blast radius small; the
   panel's clickable work list is the real way to navigate. */
[data-xray]:hover {
  position: relative;
}
[data-xray]:hover::after {
  content: attr(data-xray-tag);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2147483000;
  padding: 2px 6px;
  border-radius: 0 0 var(--radius-sm, 4px) 0;
  font: 600 10px/1.4 ui-monospace, "SF Mono", Menlo, monospace;
  letter-spacing: 0.02em;
  white-space: nowrap;
  pointer-events: none;
}

[data-xray=component]:hover::after {
  background: #00e07a;
  color: var(--c-grey-950, #0b0b0d);
}

[data-xray=handrolled]:hover::after {
  background: #ff2d95;
  color: #ffffff;
}

/* Pulse used by the "click a row to find it" jump. */
@keyframes dev-xray-pulse {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(255, 45, 149, 0);
  }
  50% {
    box-shadow: 0 0 0 8px rgba(255, 45, 149, 0.55);
  }
}
[data-xray-pulse] {
  animation: dev-xray-pulse 0.5s ease-in-out 3;
}

/* ---------------------------------------------------------- panel */
.dev-xray {
  position: fixed;
  right: var(--s-4, 16px);
  bottom: var(--s-4, 16px);
  z-index: 2147483001;
  display: flex;
  flex-direction: column;
  width: 320px;
  max-height: 70vh;
  overflow: hidden;
  border: 1px solid var(--c-border-card, #e1e3e6);
  border-radius: var(--radius-md, 8px);
  background: var(--c-bg-card, #ffffff);
  box-shadow: var(--shadow-card, 0 4px 16px rgba(20, 25, 80, 0.12));
  font-family: inherit;
  color: var(--c-text-body, #40444d);
}
.dev-xray__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--s-3, 12px) var(--s-4, 16px);
  border-bottom: 1px solid var(--c-border-soft, #f0f1f2);
}
.dev-xray__title {
  font-size: 13px;
  font-weight: 600;
  color: var(--c-text-heading, #0b0b0d);
}
.dev-xray__actions {
  display: flex;
  align-items: center;
  gap: var(--s-2, 8px);
}
.dev-xray__close, .dev-xray__min {
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  font-size: 20px;
  line-height: 1;
  color: var(--c-text-muted, #6b7280);
}
.dev-xray__close:hover, .dev-xray__min:hover {
  color: var(--c-text-heading, #0b0b0d);
}
.dev-xray__min {
  font-size: 18px;
}
.dev-xray {
  /* ------------------------------------------------ collapsed (pill) */
}
.dev-xray[data-min] {
  width: auto;
  max-height: none;
  border-radius: 999px;
}
.dev-xray__pill {
  display: flex;
  align-items: center;
  gap: var(--s-3, 12px);
  padding: 7px var(--s-3, 12px);
  border: 0;
  background: none;
  cursor: pointer;
}
.dev-xray__pilltitle {
  font-size: 12px;
  font-weight: 600;
  color: var(--c-text-heading, #0b0b0d);
}
.dev-xray__pillcount {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font: 700 11px/1.4 ui-monospace, "SF Mono", Menlo, monospace;
  color: var(--c-text-heading, #0b0b0d);
}
.dev-xray__pillcount::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
}
.dev-xray__pillcount[data-kind=component]::before {
  background: #00e07a;
}
.dev-xray__pillcount[data-kind=handrolled]::before {
  background: #ff2d95;
}
.dev-xray__stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--s-2, 8px);
  padding: var(--s-3, 12px) var(--s-4, 16px);
}
.dev-xray__stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: var(--s-2, 8px);
  border-radius: var(--radius-sm, 4px);
  border-left: 3px solid transparent;
  background: var(--c-bg-subtle-purple, #f0f1f2);
}
.dev-xray__stat[data-kind=component] {
  border-left-color: #00e07a;
}
.dev-xray__stat[data-kind=handrolled] {
  border-left-color: #ff2d95;
}
.dev-xray__num {
  font-size: 18px;
  font-weight: 700;
  color: var(--c-text-heading, #0b0b0d);
}
.dev-xray__label {
  font-size: 10px;
  line-height: 1.3;
  color: var(--c-text-muted, #6b7280);
}
.dev-xray__subhead {
  padding: var(--s-2, 8px) var(--s-4, 16px);
  border-top: 1px solid var(--c-border-soft, #f0f1f2);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--c-text-muted, #6b7280);
}
.dev-xray__list {
  margin: 0;
  padding: 0;
  list-style: none;
  overflow-y: auto;
  flex: 1 1 auto;
}
.dev-xray__row {
  margin: 0;
  padding: 0;
}
.dev-xray__rowbtn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-2, 8px);
  width: 100%;
  padding: 6px var(--s-4, 16px);
  border: 0;
  background: none;
  cursor: pointer;
  text-align: left;
}
.dev-xray__rowbtn:hover {
  background: var(--c-bg-card-hover, #f0f1f2);
}
.dev-xray__rowname {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font: 500 11px/1.4 ui-monospace, "SF Mono", Menlo, monospace;
  color: var(--c-text-body, #40444d);
}
.dev-xray__rowcount {
  flex: 0 0 auto;
  min-width: 20px;
  padding: 1px 5px;
  border-radius: var(--radius-pill, 999px);
  background: var(--c-bg-subtle-purple, #f0f1f2);
  font-size: 10px;
  font-weight: 600;
  text-align: center;
  color: var(--c-text-muted, #6b7280);
}
.dev-xray__more {
  padding: 6px var(--s-4, 16px);
  font-size: 10px;
  font-style: italic;
  color: var(--c-text-muted, #6b7280);
}
.dev-xray__foot {
  padding: var(--s-2, 8px) var(--s-4, 16px) var(--s-3, 12px);
  border-top: 1px solid var(--c-border-soft, #f0f1f2);
}
.dev-xray__btn {
  width: 100%;
  padding: 6px 10px;
  border: 1px solid var(--c-border-card, #e1e3e6);
  border-radius: var(--radius-sm, 4px);
  background: var(--c-bg-card, #ffffff);
  cursor: pointer;
  font-size: 11px;
  font-weight: 600;
  color: var(--c-text-body, #40444d);
}
.dev-xray__btn:hover {
  background: var(--c-bg-card-hover, #f0f1f2);
}

/* The panel must never mark itself. */
.dev-xray [data-xray] {
  outline: 0 !important;
}
.dev-xray [data-xray]::after {
  content: none;
}

/* ============================================================
   Dev tokens — hardcoded-colour overlay (dev right only)
   ------------------------------------------------------------
   Driven by web/js/dev-tokens.js. Marks elements whose colour
   comes from a literal value instead of var(--…), which is the
   real dark-mode readiness question.

   Runs ALONGSIDE the röntgen (_dev-xray.scss), so it must use a
   different visual channel: röntgen owns `outline`, this owns an
   inset box-shadow. Both can be on at once and stay readable.

   Marker colour is deliberately off-system (amber), same reason
   as in _dev-xray.scss: a dev overlay must never read as real UI.
   ============================================================ */
[data-tokens=hardcoded] {
  box-shadow: inset 0 0 0 2px #ffb300 !important;
}

@keyframes dev-tokens-pulse {
  0%, 100% {
    outline: 0 solid rgba(255, 179, 0, 0);
    outline-offset: 0;
  }
  50% {
    outline: 6px solid rgba(255, 179, 0, 0.6);
    outline-offset: 2px;
  }
}
[data-tokens-pulse] {
  animation: dev-tokens-pulse 0.5s ease-in-out 3;
}

/* ---------------------------------------------------------- panel */
.dev-tokens {
  position: fixed;
  left: var(--s-4, 16px);
  bottom: var(--s-4, 16px);
  z-index: 2147483001;
  display: flex;
  flex-direction: column;
  width: 300px;
  max-height: 70vh;
  overflow: hidden;
  border: 1px solid var(--c-border-card, #e1e3e6);
  border-radius: var(--radius-md, 8px);
  background: var(--c-bg-card, #ffffff);
  box-shadow: var(--shadow-card, 0 4px 16px rgba(20, 25, 80, 0.12));
  font-family: inherit;
  color: var(--c-text-body, #40444d);
}
.dev-tokens__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--s-3, 12px) var(--s-4, 16px);
  border-bottom: 1px solid var(--c-border-soft, #f0f1f2);
}
.dev-tokens__title {
  font-size: 13px;
  font-weight: 600;
  color: var(--c-text-heading, #0b0b0d);
}
.dev-tokens__actions {
  display: flex;
  align-items: center;
  gap: var(--s-2, 8px);
}
.dev-tokens__close, .dev-tokens__min {
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  font-size: 20px;
  line-height: 1;
  color: var(--c-text-muted, #6b7280);
}
.dev-tokens__close:hover, .dev-tokens__min:hover {
  color: var(--c-text-heading, #0b0b0d);
}
.dev-tokens__min {
  font-size: 18px;
}
.dev-tokens {
  /* ------------------------------------------------ collapsed (pill) */
}
.dev-tokens[data-min] {
  width: auto;
  max-height: none;
  border-radius: 999px;
}
.dev-tokens__pill {
  display: flex;
  align-items: center;
  gap: var(--s-3, 12px);
  padding: 7px var(--s-3, 12px);
  border: 0;
  background: none;
  cursor: pointer;
}
.dev-tokens__pilltitle {
  font-size: 12px;
  font-weight: 600;
  color: var(--c-text-heading, #0b0b0d);
}
.dev-tokens__pillcount {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font: 700 11px/1.4 ui-monospace, "SF Mono", Menlo, monospace;
  color: var(--c-text-heading, #0b0b0d);
}
.dev-tokens__pillcount::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
}
.dev-tokens__pillcount[data-kind=colours]::before {
  background: #ffb300;
}
.dev-tokens__pillcount[data-kind=elements]::before {
  box-shadow: inset 0 0 0 2px #ffb300;
}
.dev-tokens__stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--s-2, 8px);
  padding: var(--s-3, 12px) var(--s-4, 16px);
}
.dev-tokens__stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: var(--s-2, 8px);
  border-radius: var(--radius-sm, 4px);
  border-left: 3px solid #ffb300;
  background: var(--c-bg-subtle-purple, #f0f1f2);
}
.dev-tokens__num {
  font-size: 18px;
  font-weight: 700;
  color: var(--c-text-heading, #0b0b0d);
}
.dev-tokens__label {
  font-size: 10px;
  line-height: 1.3;
  color: var(--c-text-muted, #6b7280);
}
.dev-tokens__subhead {
  padding: var(--s-2, 8px) var(--s-4, 16px);
  border-top: 1px solid var(--c-border-soft, #f0f1f2);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--c-text-muted, #6b7280);
}
.dev-tokens__list {
  margin: 0;
  padding: 0;
  list-style: none;
  overflow-y: auto;
  flex: 1 1 auto;
}
.dev-tokens__row {
  margin: 0;
  padding: 0;
}
.dev-tokens__rowbtn {
  display: flex;
  align-items: center;
  gap: var(--s-2, 8px);
  width: 100%;
  padding: 5px var(--s-4, 16px);
  border: 0;
  background: none;
  cursor: pointer;
  text-align: left;
}
.dev-tokens__rowbtn:hover {
  background: var(--c-bg-card-hover, #f0f1f2);
}
.dev-tokens__swatch {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  border-radius: 3px;
  border: 1px solid var(--c-border-card, #c4c7cc);
  background-image: linear-gradient(45deg, #cccccc 25%, transparent 25%, transparent 75%, #cccccc 75%), linear-gradient(45deg, #cccccc 25%, transparent 25%, transparent 75%, #cccccc 75%);
  background-size: 8px 8px;
  background-position: 0 0, 4px 4px;
}
.dev-tokens__colour {
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font: 500 11px/1.4 ui-monospace, "SF Mono", Menlo, monospace;
  color: var(--c-text-body, #40444d);
}
.dev-tokens__count {
  flex: 0 0 auto;
  min-width: 20px;
  padding: 1px 5px;
  border-radius: var(--radius-pill, 999px);
  background: var(--c-bg-subtle-purple, #f0f1f2);
  font-size: 10px;
  font-weight: 600;
  text-align: center;
  color: var(--c-text-muted, #6b7280);
}
.dev-tokens__more {
  padding: 6px var(--s-4, 16px);
  font-size: 10px;
  font-style: italic;
  color: var(--c-text-muted, #6b7280);
}
.dev-tokens__foot {
  padding: var(--s-2, 8px) var(--s-4, 16px) var(--s-3, 12px);
  border-top: 1px solid var(--c-border-soft, #f0f1f2);
}
.dev-tokens__btn {
  width: 100%;
  padding: 6px 10px;
  border: 1px solid var(--c-border-card, #e1e3e6);
  border-radius: var(--radius-sm, 4px);
  background: var(--c-bg-card, #ffffff);
  cursor: pointer;
  font-size: 11px;
  font-weight: 600;
  color: var(--c-text-body, #40444d);
}
.dev-tokens__btn:hover {
  background: var(--c-bg-card-hover, #f0f1f2);
}

/* Neither panel may mark itself. */
.dev-tokens [data-tokens],
.dev-xray [data-tokens] {
  box-shadow: none !important;
}

/* ============================================================
   Dev dark mode (dev right only)
   ------------------------------------------------------------
   Driven by web/js/dev-dark-mode.js, which sets data-theme="dark"
   on <html>. That attribute is what LAYER B of
   components/v2/design-tokens/_design-tokens.scss already listens
   to, so every component that uses the semantic tokens flips by
   itself. Nothing is forced here.

   THAT IS THE WHOLE POINT: anything still painting a hardcoded
   hex stays light and therefore stands out. Light patches are the
   work list, not a bug in this file. Do NOT "fix" them by piling
   overrides in here; fix the component's own SCSS to use tokens.

   This file no longer paints anything. It used to force html/body
   to var(--c-bg-page), because those carried a compiled-away SCSS
   variable that no theme could reach. That is fixed at the source:
   partials/v1/base.scss now points html/body at --c-bg-page and
   --c-text-body, so the page surface flips on its own.
   ============================================================ */
html[data-theme=dark] {
  color-scheme: dark;
}

.inbox-container {
  height: calc(100vh - 76px);
  max-height: calc(100vh - 76px);
  overflow: hidden;
  padding: 8px 0 0 8px;
  display: flex;
  flex-direction: column;
}

.inbox-selection-group {
  display: flex;
  align-items: center;
  gap: 4px;
}

.inbox-count-display {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 40px;
  padding: 0 12px;
  border-radius: 8px;
  background: #e6e9ff;
  color: var(--c-brand-purple);
  font-size: 16px;
  font-weight: 400;
  white-space: nowrap;
  user-select: none;
  flex-shrink: 0;
}

.search-actions-bar {
  padding-bottom: 8px;
  display: flex;
  gap: 16px;
  align-items: center;
}
.search-actions-bar .search-section {
  flex: 0 1 400px;
  min-width: 160px;
  max-width: 400px;
}
.search-actions-bar .search-section .search-input-wrapper {
  position: relative;
}
.search-actions-bar .actions-section {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--c-brand-purple);
  flex: 1 1 auto;
  min-width: 0;
  animation: inbox-toolbar-in 180ms ease-out;
}
.search-actions-bar .actions-section .divider {
  height: 30px;
  border-left: 2px solid rgba(0, 0, 0, 0.05);
  margin: 0 4px;
}
.search-actions-bar .actions-section .actions-inline {
  display: flex;
  align-items: center;
  gap: 12px;
}
.search-actions-bar .actions-section .actions-overflow-anchor {
  display: none;
  position: relative;
}
.search-actions-bar .actions-section .actions-overflow-anchor .inbox-menu {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  z-index: 200;
}
.search-actions-bar .actions-section .actions-overflow-anchor.inbox-menu-open .inbox-menu {
  display: block;
  transform-origin: top right;
  animation: inbox-menu-in 140ms ease-out;
}

.main-content {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  overflow: hidden;
  gap: 8px;
}

.left-sidebar {
  flex: 0 0 180px;
  width: 180px;
  max-width: 180px;
  min-width: 0;
  overflow-x: hidden;
  overflow-y: auto;
  border-radius: 8px;
  background-color: var(--c-bg-card);
  border-right: 1px solid var(--c-border-card);
  padding: 4px 8px;
  font-weight: 400;
}
.left-sidebar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px 12px 20px;
  font-weight: 600;
  color: var(--c-brand-purple);
  font-size: 18px;
}
.left-sidebar hr {
  width: 90%;
  margin: 8px;
}
.left-sidebar .sidebar-section {
  margin-bottom: 8px;
}
.left-sidebar .sidebar-section .sidebar-items-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
}
.left-sidebar .sidebar-section .section-header {
  display: flex;
  align-items: center;
  padding: 6px 8px;
  font-weight: 600;
  color: var(--c-text-body);
  font-size: 0.75rem;
  border-radius: 8px;
  gap: 8px;
}
.left-sidebar .sidebar-section .section-header > i.collapse-btn {
  flex-shrink: 0;
  width: 20px;
  text-align: center;
  font-size: 14px;
  margin: 0;
  color: #5f6368;
  cursor: pointer;
}
.left-sidebar .sidebar-section .section-header.active {
  color: var(--c-brand-purple);
  background-color: #EEEFFA;
}
.left-sidebar .sidebar-section .section-header.active > i.collapse-btn {
  color: var(--c-brand-purple);
}
.left-sidebar .sidebar-section .section-header-title {
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  min-width: 0;
}
.left-sidebar .sidebar-section .section-header-title i {
  flex-shrink: 0;
  width: 16px;
  text-align: center;
  font-size: 14px;
  margin: 0;
}
.left-sidebar .sidebar-section .section-header-title .section-label {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1;
  min-width: 0;
}
.left-sidebar .sidebar-section .section-header-title .section-label .section-title {
  flex: 1;
  min-width: 0;
}
.left-sidebar .sidebar-section .section-header-title .section-label .count {
  font-size: 11px;
  color: var(--c-text-disabled-pp);
  flex-shrink: 0;
}
.left-sidebar .sidebar-section .sidebar-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 8px 6px 28px;
  color: var(--c-text-body);
  font-size: 12px;
  font-weight: 400;
  line-height: 20px;
  cursor: pointer;
  border-radius: 8px;
  user-select: none;
}
.left-sidebar .sidebar-section .sidebar-item i {
  font-size: 14px;
  flex-shrink: 0;
  width: 16px;
  text-align: center;
  margin: 0;
  color: var(--c-text-body);
}
.left-sidebar .sidebar-section .sidebar-item .sidebar-item-label {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.left-sidebar .sidebar-section .sidebar-item .sidebar-item-count {
  font-size: 11px;
  color: var(--c-text-disabled-pp);
  flex-shrink: 0;
}
.left-sidebar .sidebar-section .sidebar-item:hover {
  background-color: var(--c-bg-subtle-hover);
}
.left-sidebar .sidebar-section .sidebar-item.active {
  background-color: #EEEFFA;
  color: var(--c-brand-purple);
  font-weight: 500;
}
.left-sidebar .sidebar-section .sidebar-item.active i {
  color: var(--c-brand-purple);
}
.left-sidebar .sidebar-section .section-label {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}

.middle-panel {
  flex: 1 1 300px;
  width: auto !important;
  min-width: 300px;
  max-width: 380px;
  min-height: 0;
  border-right: 1px solid var(--c-border-card);
  display: flex;
  flex-direction: column;
  background-color: var(--c-bg-card);
  border-radius: 8px;
}
.middle-panel .panel-header {
  border-bottom: 1px solid var(--c-border-card);
  height: 56px;
  box-sizing: border-box;
  padding: 0 8px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.middle-panel .panel-header .filter-tabs {
  display: flex;
  gap: 4px;
  background-color: #e9e9e9;
  border-radius: 24px;
  padding: 6px 8px;
  font-weight: 400;
}
.middle-panel .panel-header .filter-tabs .filter-tab {
  padding: 4px 12px;
  border: none;
  background: none;
  color: var(--c-text-muted);
  font-size: 1rem;
  border-radius: 24px;
  box-shadow: none !important;
}
.middle-panel .panel-header .filter-tabs .filter-tab:hover:not(.active) {
  background-color: rgba(0, 0, 0, 0.05);
}
.middle-panel .panel-header .filter-tabs .filter-tab.active {
  background-color: var(--c-bg-card);
  color: var(--c-brand-purple);
}
.middle-panel .panel-header .panel-actions {
  display: flex;
  gap: 4px;
  padding: 0px 4px;
}
.middle-panel .panel-header .inbox-menu-anchor {
  position: relative;
}
.middle-panel .panel-header .inbox-menu-anchor .inbox-menu {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  z-index: 200;
}
.middle-panel .panel-header .inbox-menu-anchor.inbox-menu-open .inbox-menu {
  display: block;
  transform-origin: top right;
  animation: inbox-menu-in 140ms ease-out;
}
.middle-panel .multi-select-hint {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  padding: 6px 12px;
  font-size: 11px;
  color: var(--c-text-disabled-pp);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.middle-panel .multi-select-hint:empty {
  display: none;
}
.middle-panel .multi-select-hint .inbox-select-count {
  font-weight: 500;
  color: var(--c-brand-purple);
}
.middle-panel .multi-select-hint .inbox-select-clear {
  cursor: pointer;
  color: var(--c-brand-purple);
  font-weight: 500;
  padding: 2px 6px;
  border-radius: 6px;
}
.middle-panel .multi-select-hint .inbox-select-clear:hover {
  background: #EEEFFA;
}
.middle-panel .timeline-section {
  flex: 1;
  overflow-y: auto;
  padding: 4px 8px;
}
.middle-panel .timeline-section .timeline-header {
  font-weight: 600;
  color: var(--c-text-body);
  margin-bottom: 8px;
  font-size: 14px;
}
.middle-panel .timeline-section .message-item {
  padding: 4px 8px;
  margin-bottom: 4px;
  display: flex;
  border-radius: 8px;
  gap: 8px;
  cursor: pointer;
  border: none;
}
.middle-panel .timeline-section qdnapro-inbox-message.inbox-message-selected:hover {
  background: #daddf2 !important;
}

.right-panel {
  flex: 8 1 0;
  width: auto !important;
  min-width: 0;
  overflow-y: auto;
  background-color: var(--c-bg-card);
  border-radius: 8px;
}

/* Let the detail view fill the panel so its "nothing selected" empty state
   centres vertically like the other panel-3 empty states (which live in
   #inbox-detail-empty, a direct child of .right-panel). */
#notification_detail-view {
  height: 100%;
}

.inbox-skeleton-card {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 4px 8px;
  min-height: 108px;
  box-sizing: border-box;
}
.inbox-skeleton-card__avatar {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 50%;
}
.inbox-skeleton-card__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-top: 4px;
}
.inbox-skeleton-card__sender {
  height: 12px;
  width: 45%;
}
.inbox-skeleton-card__subject {
  height: 14px;
  width: 80%;
}
.inbox-skeleton-card__preview {
  height: 12px;
  width: 65%;
}
.inbox-skeleton-card__tag {
  height: 24px;
  width: 88px;
  border-radius: 12px;
}

@keyframes inbox-msg-enter {
  0% {
    opacity: 0;
    transform: translateY(6px) scale(0.98);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
.inbox-msg-stagger {
  opacity: 0;
  animation: inbox-msg-enter 240ms cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

.qdnapro-tooltip {
  z-index: 10001 !important;
}

qdnapro-inbox-message[data-deadline-status=overdue] .inbox-message-due,
qdnapro-inbox-message[data-deadline-status=overdue] .inbox-message-due qdnapro-icon {
  color: #d93025 !important;
}

qdnapro-inbox-message[data-deadline-status=due-soon] .inbox-message-due,
qdnapro-inbox-message[data-deadline-status=due-soon] .inbox-message-due qdnapro-icon {
  color: #e8810a !important;
}

.middle-panel .timeline-section .message-item:hover {
  background: var(--msg-bg-hover, var(--c-bg-subtle-hover)) !important;
}

.right-panel::-webkit-scrollbar,
.middle-panel .timeline-section::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
.right-panel::-webkit-scrollbar-track,
.middle-panel .timeline-section::-webkit-scrollbar-track {
  background: transparent;
}
.right-panel::-webkit-scrollbar-thumb,
.middle-panel .timeline-section::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 8px;
  transition: background 160ms ease;
}
.right-panel:hover::-webkit-scrollbar-thumb, .right-panel:focus-within::-webkit-scrollbar-thumb,
.middle-panel .timeline-section:hover::-webkit-scrollbar-thumb,
.middle-panel .timeline-section:focus-within::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.22);
}
.right-panel::-webkit-scrollbar-thumb:hover,
.middle-panel .timeline-section::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.34);
}

.left-sidebar {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.left-sidebar::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.inbox-body {
  padding: 0 20px 12px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.inbox-body qdnapro-message-header {
  display: block;
  position: sticky;
  top: 0;
  background: var(--c-bg-card);
  z-index: 10;
  margin: 0 -20px;
}
.inbox-body qdnapro-message-header .mh-title-actions qdnapro-icon[name=bookmark],
.inbox-body qdnapro-message-header .mh-title-actions qdnapro-icon[name=square-rounded-badge] {
  color: #4652f3;
}
.inbox-body qdnapro-message-header .mh-title-actions qdnapro-button.inbox-action-blocked {
  cursor: not-allowed;
}
.inbox-body qdnapro-message-header .mh-title-actions qdnapro-button.inbox-action-blocked qdnapro-icon {
  color: var(--c-text-disabled);
}
.inbox-body-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 56px;
  box-sizing: border-box;
  position: sticky;
  top: 0;
  background: var(--c-bg-card);
  z-index: 10;
  margin: 0 -20px;
  padding: 0 0 0 20px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
.inbox-body-title-label {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--c-brand-purple);
  font-size: 16px;
  font-weight: 600;
}
.inbox-body-title-actions {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  gap: 4px;
  color: var(--c-brand-purple);
}
.inbox-body-title-actions qdnapro-icon[name=bookmark],
.inbox-body-title-actions qdnapro-icon[name=square-rounded-badge] {
  color: #4652f3;
}
.inbox-body-title-actions qdnapro-button.inbox-action-blocked {
  cursor: not-allowed;
}
.inbox-body-title-actions qdnapro-button.inbox-action-blocked qdnapro-icon {
  color: var(--c-text-disabled);
}
.inbox-body-title-actions #inbox-dots-menu qdnapro-menu-item.inbox-dots-blocked {
  color: var(--c-text-disabled) !important;
  cursor: not-allowed;
  pointer-events: auto !important;
}
.inbox-body-title-actions #inbox-dots-menu qdnapro-menu-item.inbox-dots-blocked .menu-item-icon {
  color: var(--c-text-disabled) !important;
}
.inbox-body-title-actions .action-btn {
  display: flex;
  padding: 4px 10px;
}
.inbox-body-title-actions .action-btn:hover:not(.action-block) {
  cursor: pointer;
  background-color: #D9DBEB;
  border-radius: 8px;
}
.inbox-body-title-actions .action-btn i {
  font-size: 16px;
}
.inbox-body-title-actions .action-btn i.selected {
  color: #4852ea;
}
.inbox-body-title-actions .action-btn.action-block {
  opacity: 0.5;
}
.inbox-body-title-actions .divider {
  height: 30px;
  border-left: 2px solid rgba(0, 0, 0, 0.05);
  margin: 0 4px;
}
.inbox-body-header {
  animation: inbox-detail-in 200ms ease-out;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  margin: -6px -20px 0;
  padding-bottom: 6px;
}
.inbox-body-header .inbox-body-user {
  display: flex;
  gap: 16px;
  margin-bottom: 0;
  padding: 0 24px 0 24px;
}
.inbox-body-header .inbox-body-user .user-avatar .avatar-placeholder {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: #f9e69e;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #e29334;
}
.inbox-body-header .inbox-body-user .user-avatar .avatar-placeholder i {
  font-size: 20px;
}
.inbox-body-header .inbox-body-user .user-avatar img {
  width: 40px;
  height: 40px;
  border-radius: 50%;
}
.inbox-body-header .inbox-body-user .user-info {
  flex: 1;
  display: flex;
  padding: 6px 0px;
  gap: 12px;
  align-items: center;
}
.inbox-body-header .inbox-body-user .user-info-name {
  display: block;
  font-weight: 600;
  color: var(--c-text-body);
  font-size: 15px;
}
.inbox-body-header .inbox-body-user .user-info-email {
  display: block;
  color: var(--c-text-muted);
  font-size: 14px;
  font-weight: 500;
}
.inbox-body-header .inbox-body-user .inbox-body-meta {
  text-align: right;
  font-size: 12px;
  color: var(--c-text-muted);
  font-weight: 500;
  display: flex;
  gap: 4px;
  align-items: center;
  justify-content: center;
}
.inbox-body-header .inbox-body-user .inbox-body-meta .time {
  display: block;
  font-weight: 600;
}
.inbox-body-header .inbox-body-user .inbox-body-meta .days {
  display: block;
}
.inbox-body-header .inbox-body-details {
  flex: 1;
  display: flex;
  font-weight: 500;
  flex-wrap: wrap;
}
.inbox-body-header .inbox-body-details .email-to-block {
  display: flex;
  flex-wrap: wrap;
}
.inbox-body-header .inbox-body-details .email-cc-block {
  display: flex;
  flex-wrap: wrap;
}
.inbox-body-header .inbox-body-details .inbox-body-field {
  display: block;
  font-size: 12px;
  color: var(--c-text-muted);
  margin-bottom: 2px;
}
.inbox-body-header .inbox-body-details .inbox-body-field-bold {
  font-weight: 600;
  padding-right: 4px;
}
.inbox-body-header .status-badges {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
}
.inbox-body-header .status-badges .badge {
  font-size: 12px;
  display: flex;
  border-radius: 16px;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
}
.inbox-body-header .status-badges .badge.bg-danger {
  background-color: #efadac !important;
}
.inbox-body-header .status-badges .badge.bg-secondary {
  background-color: #c3bcef !important;
}
.inbox-body-header .status-badges .badge.bg-warning {
  background-color: #f9e69e !important;
}
.inbox-body-header .status-badges .badge.bg-info {
  background-color: #bacdea !important;
}
.inbox-body-header .status-badges .btn-sm {
  font-size: 12px;
  padding: 2px 8px;
  color: #4852ea;
  text-decoration: none;
}
.inbox-body-header .status-badges .btn-sm:hover {
  text-decoration: none;
}
.inbox-body-content {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.inbox-body-content .inbox-body-group {
  display: flex;
  font-size: 14px;
  padding: 4px 8px;
  flex-direction: column;
}
.inbox-body-content .inbox-body-group .inbox-body-label {
  display: flex;
  align-items: center;
  min-height: 20px;
  margin-bottom: 0;
  font-weight: 600;
  color: var(--c-brand-purple);
  font-size: 14px;
  line-height: 20px;
}
.inbox-body-content .inbox-body-group .inbox-body-label .inbox-q-type-icon {
  flex: 0 0 auto;
  margin-right: 6px;
  font-size: 18px;
  line-height: 1;
  color: #c2c2c2;
}
.inbox-body-content .inbox-body-group .inbox-body-label .inbox-q-node-id {
  flex: 0 0 auto;
  margin-left: 6px;
  font-size: 10px;
  font-weight: 400;
  line-height: 1;
  color: #c2c2c2;
}
.inbox-body-content .inbox-body-group .inbox-body-value {
  padding-left: 24px;
  color: #202124;
  font-weight: 400;
  font-size: 14px;
  line-height: 20px;
}
.inbox-body-content .inbox-body-group .inbox-body-value.sub-label {
  color: var(--c-brand-purple);
}
.inbox-body-content .task-status {
  position: relative;
  z-index: 1;
  padding: 8px 0;
  display: flex;
  justify-content: center;
  color: var(--c-text-disabled-pp);
  font-weight: 400;
  font-size: 14px;
  gap: 24px;
}
.inbox-body-content .task-status-block {
  display: flex;
  align-items: center;
  border: 1px solid #D9DBEB;
  border-radius: 12px;
  gap: 8px;
  padding: 6px 16px;
  background-color: var(--c-bg-card);
}
.inbox-body-content .task-status-block .status-badge {
  background-color: #bacdea;
  color: var(--c-brand-purple);
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 11px;
  margin-left: 8px;
}
.inbox-body-content .task-status-block .user-avatar .avatar-placeholder {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background-color: #f9e69e;
  display: flex;
  align-items: center;
  justify-content: center;
}
.inbox-body-content .task-status-block .user-avatar .avatar-placeholder i {
  font-size: 20px;
  color: #e29334;
}
.inbox-body-content .task-status-block .user-avatar .avatar-placeholder i:first {
  color: var(--c-brand-purple);
}
.inbox-body-content .task-status-block .user-avatar img {
  width: 28px;
  height: 28px;
  border-radius: 50%;
}
.inbox-body-content hr {
  border: 0;
  height: 1px;
  background: #D9DBEB;
  margin: -2rem -24px 28px;
}
.inbox-body-content qdnapro-message-actionbar {
  display: block;
  margin-top: 2rem;
  margin-bottom: 16px;
}
.inbox-body-content .input-footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #EEEFFA;
  color: var(--c-brand-purple);
  padding: 16px;
  border-radius: 8px;
  gap: 8px;
  margin-top: 2rem;
  margin-bottom: 16px;
}
.inbox-body-content .input-footer-info {
  display: flex;
  align-items: center;
  gap: 10px;
}
.inbox-body-content .input-footer-info i {
  cursor: pointer;
}
.inbox-body-content .input-footer-action-btn {
  display: flex;
  align-items: center;
  gap: 16px;
  font-weight: 500;
}
.inbox-body-content .input-footer-action-btn .inbox-secondary-btn {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 20px;
  cursor: pointer;
}
.inbox-body-content .input-footer-action-btn .inbox-primary-btn {
  color: white;
  background-color: var(--c-brand-purple);
  border-radius: 12px;
  padding: 8px 20px;
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
}

.multiple-selection {
  display: flex;
  justify-content: center;
  height: 72vh;
}
.multiple-selection-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
}
.multiple-selection-block-image {
  height: 175px;
  width: 175px;
}
.multiple-selection-block-message {
  color: #4852ea;
  font-weight: 600;
  font-size: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.custom-popup {
  position: fixed;
  top: 50px;
  left: 100px;
  width: 60%;
  background: var(--c-bg-card);
  border: 1px solid #ccc;
  border-radius: 10px;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.35);
  z-index: 9999;
  height: 90vh;
  overflow: hidden;
  resize: none;
}
.custom-popup .ui-resizable-se {
  width: 20px;
  height: 20px;
  right: 12px;
  bottom: 4px;
  cursor: se-resize;
  background: none;
}
.custom-popup .ui-resizable-se::after {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  margin: 5px 0 0 5px;
  border-right: 2px solid rgba(0, 0, 0, 0.25);
  border-bottom: 2px solid rgba(0, 0, 0, 0.25);
  border-radius: 0 0 3px 0;
}
.custom-popup .ui-resizable-se:hover::after {
  border-color: var(--c-brand-purple);
}
.custom-popup .ui-resizable-handle {
  z-index: 100;
}
.custom-popup-body {
  padding: 4px;
  height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  box-sizing: border-box;
}
.custom-popup-body .ui-draggable-handle {
  cursor: move;
}
.custom-popup-body .close-popup {
  padding: 6px 12px;
  border-radius: 10px;
}
.custom-popup-body .close-popup:hover {
  background-color: rgba(0, 0, 0, 0.05);
  cursor: pointer;
}

.popup-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #c3bcef;
  z-index: 9998;
  opacity: 0.2;
}

.title-bar {
  color: var(--c-brand-purple);
  font-weight: 600;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 24px;
  border-bottom: 1px solid var(--c-border-card);
}

.inbox-sidebar-toggle {
  display: none;
}

.inbox-mobile-back {
  display: none;
}

/* ── Phase 3: mobile (≤768px) — master-detail drill-down ───────────────────
   One pane at a time. The message list is the default ("master"); tapping a
   message slides in the detail with a ← back button to return. The Activity
   drawer (from the ≤1100 block above) still overlays via the ☰ toggle. This
   replaces the old three-panel vertical stack, which was impractical on a phone. */
@media (max-width: 768px) {
  .inbox-container {
    max-width: 768px;
    margin: 0 auto;
  }
  .search-actions-bar {
    flex-direction: row;
    align-items: center;
  }
  .search-actions-bar .search-section {
    flex: 1 1 auto;
    max-width: none;
  }
  .middle-panel,
  .right-panel {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 100% !important;
    min-width: 0;
    max-width: none;
    max-height: none;
    transition: transform 280ms cubic-bezier(0.2, 0.7, 0.3, 1);
    will-change: transform;
  }
  .middle-panel {
    transform: translateX(0);
    z-index: 2;
  }
  .right-panel {
    transform: translateX(100%);
    z-index: 3;
  }
  .inbox-container.mobile-detail-open .search-actions-bar {
    display: none;
  }
  .inbox-container.mobile-detail-open .middle-panel {
    transform: translateX(-100%);
  }
  .inbox-container.mobile-detail-open .right-panel {
    transform: translateX(0);
  }
  .inbox-mobile-back {
    display: inline-flex;
    margin: 8px 0 0 8px;
  }
}
@media (min-width: 769px) and (max-width: 1024px) {
  .left-sidebar {
    width: 180px;
  }
}
@media (min-width: 1025px) {
  .left-sidebar {
    width: 180px;
  }
}
/* ── Phase 2: tablet (769–1100px) — Activity sidebar becomes a slide-in drawer ──
   In this band the list + detail need the full row, so the Activity pane leaves
   the flow and opens on demand as an overlay from the left. A "☰ Activity" toggle
   in the list header opens it; the scrim or picking a filter closes it. Above
   1100px the sidebar is in-flow as usual and both toggle + scrim stay hidden. */
.inbox-sidebar-scrim {
  position: absolute;
  inset: 0;
  z-index: 40;
  background: rgba(20, 22, 40, 0.32);
  opacity: 0;
  visibility: hidden;
  transition: opacity 200ms ease, visibility 0s linear 200ms;
  cursor: pointer;
}

@media (max-width: 1100px) {
  .main-content {
    position: relative;
  }
  .inbox-sidebar-toggle {
    display: inline-flex;
    flex: 0 0 auto;
  }
  .left-sidebar {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 50;
    flex: 0 0 auto;
    width: 248px;
    max-width: 248px;
    max-height: none;
    border-radius: 0;
    transform: translateX(calc(-100% - 16px));
    transition: transform 240ms cubic-bezier(0.2, 0.7, 0.3, 1);
    box-shadow: 0 8px 28px rgba(20, 22, 40, 0.18);
    will-change: transform;
  }
  .main-content.sidebar-open .left-sidebar {
    transform: translateX(0);
  }
  .main-content.sidebar-open .inbox-sidebar-scrim {
    opacity: 1;
    visibility: visible;
    transition: opacity 200ms ease;
  }
}
/* Reduced-motion: no slide, just appear/disappear. */
@media (prefers-reduced-motion: reduce) {
  .left-sidebar {
    transition: none !important;
  }
  .inbox-sidebar-scrim {
    transition: opacity 1ms linear !important;
  }
  .middle-panel, .right-panel {
    transition: none !important;
  }
}
@keyframes inbox-toolbar-in {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* Detail (message-open): plugin content follows the sender block by 40ms. */
.inbox-body-content {
  animation: inbox-detail-in 200ms ease-out 40ms both;
}

.inbox-forwarded-notice {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 4px 0 14px;
  padding: 10px 14px;
  border-radius: 8px;
  background: #f3f1ff;
  border-left: 3px solid #c0c5ff;
  color: #4b4470;
  font-size: 13px;
  line-height: 1.4;
}
.inbox-forwarded-notice qdnapro-icon {
  flex-shrink: 0;
  color: #7a7fb0;
}

.inbox-text-body--rich hr {
  border: none;
  border-top: 1px solid #e1e3e6;
  margin: 18px 0;
}
.inbox-text-body--rich blockquote {
  margin: 18px 0 0;
  padding: 14px 0 2px 14px;
  border-top: 1px solid #e1e3e6;
  border-left: 3px solid #c0c5ff;
  color: #4b4470;
}

@keyframes inbox-detail-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes inbox-menu-in {
  from {
    opacity: 0;
    transform: scale(0.96) translateY(-4px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}
/* Right-click context menu on a message tile. The anchor is positioned fixed at
   the cursor (left/top set inline by JS); the menu sits at the anchor's top-left.
   Inbox runs at body{zoom:1}, so clientX/clientY map 1:1 — no zoom correction.
   qdnapro-menu provides its own surface/shadow; we only position + animate. */
.inbox-ctx-anchor {
  position: fixed;
  z-index: 1000;
}
.inbox-ctx-anchor .inbox-ctx-menu {
  position: absolute;
  top: 0;
  left: 0;
  transform-origin: top left;
  animation: inbox-menu-in 140ms ease-out;
}

/* Toolbar overflow swap: the ⋮ (and the inline row, on the way back) fade +
   scale in so the eye catches the change instead of a hard snap. Applied via JS
   only on the actual inline⇄overflow transition (see fitToolbar). */
@keyframes inbox-overflow-in {
  from {
    opacity: 0;
    transform: scale(0.7);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes inbox-inline-in {
  from {
    opacity: 0;
    transform: translateX(8px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
/* Secondary→all collapse: the ⋮ is already visible, so give it a tiny pulse
   to signal "more moved in here" rather than re-popping the whole button. */
@keyframes inbox-overflow-pulse {
  0% {
    transform: scale(1);
  }
  45% {
    transform: scale(1.18);
  }
  100% {
    transform: scale(1);
  }
}
/* Respect users who prefer less motion: drop all inbox entrance animations. */
@media (prefers-reduced-motion: reduce) {
  .actions-section,
  .inbox-body-header,
  .inbox-body-content,
  .inbox-menu-anchor.inbox-menu-open .inbox-menu,
  .inbox-msg-stagger {
    animation: none !important;
  }
}
/* ── Empty states ──────────────────────────────────────────────────────── */
/* Panel 2: message-list empty state */
.inbox-empty {
  /* display toggled to flex via JS */
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 16px;
  padding: 64px 24px 0;
  min-height: 320px;
  /* Target the element, not a class: qdnapro-illustration rewrites its own
     class attribute on render, so a custom class won't survive.
     The component sizes by WIDTH only; portrait illustrations (e.g. share)
     then blow up in height. Constrain by both max-width and max-height so
     any aspect ratio fits the same box. */
}
.inbox-empty qdnapro-illustration {
  opacity: 0.6;
  /* Pin the height, let width follow the aspect ratio. Reliable for
     both landscape and portrait art (the component only sizes width,
     which blows up tall illustrations like `share`). */
  width: auto !important;
  height: 190px !important;
}
.inbox-empty qdnapro-illustration img {
  width: auto !important;
  height: 100% !important;
}
.inbox-empty .inbox-empty-text {
  margin: 0;
  max-width: 260px;
  font-size: 15px;
  line-height: 1.4;
  color: var(--text-secondary, #6b7280);
}

/* Panel 3: detail empty state (Show all + Handover) */
.inbox-detail-empty {
  /* display toggled to flex via JS */
  align-items: center;
  justify-content: center;
  height: 100%;
  padding: 24px;
  /* Panel stays white; the empty-state card uses surface="solid"
     (light-purple) so it reads without needing a tinted backdrop. */
}
.inbox-detail-empty qdnapro-illustration {
  opacity: 0.6;
  /* Pin the height, width follows aspect ratio (see panel-2 note). */
  width: auto !important;
  height: 230px !important;
}
.inbox-detail-empty qdnapro-illustration img {
  width: auto !important;
  height: 100% !important;
}

/* ── Forward modal: recipient picker ─────────────────────────────────────── */
/* Hier stond `.qdnapro-modal, .qdnapro-select-popover { zoom: 1 !important }` om de counter-zoom
   van 1.25 uit `_modal.scss` te neutraliseren. Twee redenen om hem weg te halen (2026-08-03):
   de comment zei "page-scoped" maar de SELECTOR was dat niet — deze regel gold app-breed en
   bepaalde dus in elk scherm de maat van elk venster; en de 1.25 die hij neutraliseerde bestaat
   niet meer (zie de uitleg in `components/v2/modal/_modal.scss`). Netto verandert er niets: het
   was 1, en het blijft 1. */
/* Recipient picker — identical to the project "Managers" picker (pv2-bm-*).
   Values copied from projects-v2.html and scoped to the forward modal. */
#inbox-forward-modal {
  /* The candidate list is an absolute overlay dropdown (like projects), so the
     modal body must not clip it; reserve height so it doesn't cover the footer. */
}
#inbox-forward-modal .modal-body {
  overflow: visible;
  min-height: 360px;
}
#inbox-forward-modal .pv2-bm {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
#inbox-forward-modal .pv2-bm-subtitle {
  margin: 0 0 2px;
  font-size: 13px;
  color: var(--c-text-muted, var(--c-text-muted));
}
#inbox-forward-modal .pv2-bm-search-wrap {
  position: relative;
}
#inbox-forward-modal {
  /* Overlay dropdown card below the search field. */
}
#inbox-forward-modal .pv2-bm-results {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  z-index: 30;
  max-height: 260px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background: var(--c-bg-card);
  border: 1px solid #c4c7cc;
  border-radius: 8px;
  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.08), 0 1px 2px 0 rgba(0, 0, 0, 0.14);
  padding: 6px;
}
#inbox-forward-modal .pv2-bm-results[hidden] {
  display: none;
}
#inbox-forward-modal .pv2-bm-results-list {
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  min-height: 0;
}
#inbox-forward-modal .pv2-bm-results-list::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
#inbox-forward-modal .pv2-bm-results-list::-webkit-scrollbar-track {
  background: transparent;
}
#inbox-forward-modal .pv2-bm-results-list::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 8px;
  transition: background 160ms ease;
}
#inbox-forward-modal .pv2-bm-results-list:hover::-webkit-scrollbar-thumb, #inbox-forward-modal .pv2-bm-results-list:focus-within::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.22);
}
#inbox-forward-modal .pv2-bm-results-list::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.34);
}
#inbox-forward-modal .pv2-bm-result {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 8px;
  border-radius: 8px;
  cursor: pointer;
}
#inbox-forward-modal .pv2-bm-result:hover, #inbox-forward-modal .pv2-bm-result:focus-visible {
  background: var(--c-bg-hover, #f3f4fb);
  outline: none;
}
#inbox-forward-modal .pv2-bm-result-check {
  flex: 0 0 auto;
}
#inbox-forward-modal .pv2-bm-result-text {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  line-height: 1.25;
}
#inbox-forward-modal .pv2-bm-result-name {
  font-size: 14px;
  color: var(--c-text-body, #1c1e2a);
}
#inbox-forward-modal .pv2-bm-result-role {
  font-size: 12px;
  color: var(--c-text-muted, var(--c-text-muted));
}
#inbox-forward-modal .pv2-bm-row-you {
  font-size: 12px;
  color: var(--c-text-muted, var(--c-text-muted));
  margin-left: 4px;
}
#inbox-forward-modal .pv2-bm-result-added {
  opacity: 0.6;
  cursor: default;
}
#inbox-forward-modal .pv2-bm-result-added:hover {
  background: transparent;
}
#inbox-forward-modal .pv2-bm-results-empty {
  padding: 14px 10px;
  font-size: 13px;
  color: var(--c-text-muted, var(--c-text-muted));
  text-align: center;
}
#inbox-forward-modal .pv2-bm-loading {
  padding: 20px;
  text-align: center;
  font-size: 13px;
  color: var(--c-text-muted, var(--c-text-muted));
}
#inbox-forward-modal {
  /* Selected recipients (shown below the search, under the overlay dropdown). */
}
#inbox-forward-modal .inbox-forward-selected {
  display: flex;
  flex-direction: column;
  gap: 2px;
  max-height: 168px;
  overflow-y: auto;
}
#inbox-forward-modal .inbox-forward-selected::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
#inbox-forward-modal .inbox-forward-selected::-webkit-scrollbar-track {
  background: transparent;
}
#inbox-forward-modal .inbox-forward-selected::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 8px;
  transition: background 160ms ease;
}
#inbox-forward-modal .inbox-forward-selected:hover::-webkit-scrollbar-thumb, #inbox-forward-modal .inbox-forward-selected:focus-within::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.22);
}
#inbox-forward-modal .inbox-forward-selected::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.34);
}
#inbox-forward-modal .inbox-forward-selected-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 5px 6px;
  border-radius: 8px;
}
#inbox-forward-modal .inbox-forward-selected-row:hover {
  background: var(--c-bg-hover, #f3f4fb);
}
#inbox-forward-modal .inbox-forward-selected-name {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 14px;
  color: var(--c-text-body, #1c1e2a);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#inbox-forward-modal .inbox-forward-selected-remove {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  background: transparent;
  border-radius: 6px;
  color: var(--c-text-muted);
  cursor: pointer;
  transition: background 120ms ease, color 120ms ease;
}
#inbox-forward-modal .inbox-forward-selected-remove:hover {
  background: #eceef5;
  color: #c0392b;
}
#inbox-forward-modal {
  /* "X selected" count, pinned to the footer's left corner. Positioned
     absolutely so the global .modal-footer margin override can't clobber it. */
}
#inbox-forward-modal .modal-footer {
  position: relative;
}
#inbox-forward-modal .inbox-forward-count {
  position: absolute;
  left: 24px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 13px;
  color: var(--c-text-muted, var(--c-text-muted));
  pointer-events: none;
}

/* Pickup status badge in the handover detail */
.inbox-pickup-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  border-radius: 999px;
  padding: 4px 10px;
}
.inbox-pickup-status.is-open {
  color: #8a6d00;
  background: #fff4d6;
}
.inbox-pickup-status.is-pending {
  color: #2f6f3e;
  background: #e3f4e9;
}
.inbox-pickup-status.is-finished {
  color: #3a4290;
  background: #e4e6f8;
}

/* ════════════════════════════════════════════════════════════════════════
   Responsive — phased rework (industry-standard inbox patterns)
   Phase 1: bulk-action toolbar overflow ⋮ + empty-state art on small screens
   (Phase 2 = collapse Activity sidebar; Phase 3 = mobile drill-down.)
   ════════════════════════════════════════════════════════════════════════ */
/* The bulk-action toolbar collapses into the ⋮ overflow menu via JS overflow
   detection (fitToolbar()) the moment the inline buttons no longer fit — no
   magic breakpoint. The search box scales (flex) to give the actions room
   first. See .search-section / .actions-section above + fitToolbar() in JS. */
/* Detail empty-state cards reflow on the PANEL width, not the viewport: a wide
   window can still leave a narrow detail panel, which squeezes the 2-column
   grid until the illustration overlaps the copy. Container query → when the card
   is narrow, stack the illustration BELOW the centered copy (don't hide it). */
.inbox-detail-empty {
  container-type: inline-size;
}

@container (max-width: 520px) {
  .inbox-detail-empty .qdnapro-empty-state.empty-state-extended {
    grid-template-columns: 1fr;
    text-align: center;
    justify-items: center;
  }
  .inbox-detail-empty .empty-state-extended .empty-state-copy {
    align-items: center;
    order: 1;
  }
  .inbox-detail-empty .empty-state-extended .empty-state-illustration {
    display: flex;
    order: 2;
    margin-top: 8px;
  }
  .inbox-detail-empty .empty-state-illustration qdnapro-illustration,
  .inbox-detail-empty .empty-state-illustration img,
  .inbox-detail-empty .empty-state-illustration svg {
    max-width: 180px;
  }
}
/* Panel-2 (list) empty: drop the decorative art on mobile (revisit in Phase 3). */
@media (max-width: 768px) {
  .inbox-empty qdnapro-illustration {
    display: none;
  }
}
/* ── Nova melding-analyse (meldingen-classificatie Fase 4, 2026-07-11) ──
   Knop-slot rechtsboven in de handover-detail + het analysepaneel
   (samenvatting / toon / classificatie-suggestie / disclaimer). */
.inbox-nova-btn-slot {
  flex: none;
  margin-left: auto;
  align-self: flex-start;
}

.inbox-nova-panel {
  background: #f5f3ff;
  border: 1px solid #e3defa;
  border-radius: 12px;
  padding: 14px 16px;
  margin: 10px 0 14px;
  font-size: 13px;
  color: var(--c-text-heading);
}
.inbox-nova-panel.is-loading {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--c-text-muted);
}
.inbox-nova-panel.is-loading .mdi-creation {
  color: #7c6fe0;
  animation: inbox-nova-pulse 1.2s ease-in-out infinite;
}
.inbox-nova-panel .inbox-nova-head {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 700;
  color: #4f46a5;
  margin-bottom: 8px;
}
.inbox-nova-panel .inbox-nova-head .mdi {
  color: #7c6fe0;
}
.inbox-nova-panel .inbox-nova-head {
  /* "Opnieuw analyseren" (force) rechts in de kop */
}
.inbox-nova-panel .inbox-nova-head .js-inbox-nova-reanalyse {
  margin-left: auto;
}
.inbox-nova-panel .inbox-nova-summary {
  margin: 0 0 10px;
  white-space: pre-wrap;
}
.inbox-nova-panel .inbox-nova-row {
  margin: 4px 0;
}
.inbox-nova-panel .inbox-nova-label {
  font-weight: 600;
  color: #4f46a5;
  margin-right: 4px;
}
.inbox-nova-panel .inbox-nova-class {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: #e9e6fb;
  color: #4f46a5;
  border-radius: 999px;
  padding: 2px 10px;
  font-weight: 600;
}
.inbox-nova-panel .inbox-nova-class.is-none {
  background: #eeedf5;
  color: var(--c-text-muted);
  font-weight: 400;
}
.inbox-nova-panel .inbox-nova-rationale {
  color: var(--c-text-muted);
  font-size: 12.5px;
  margin-top: 6px;
}
.inbox-nova-panel .inbox-nova-disclaimer {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid #e3defa;
  color: var(--c-text-muted);
  font-size: 12px;
  font-style: italic;
}
.inbox-nova-panel .inbox-nova-disclaimer .mdi {
  flex: none;
  margin-top: 1px;
}

@keyframes inbox-nova-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.35;
  }
}
/* ── Classificatie-blok (meldingen-classificatie Fase 5, 2026-07-11) ──
   Huidig resultaat (chip + kans + score-badge in bandkleur + herkomst +
   AI-kalibratie-marker) en het inline classificatieformulier met live score. */
.inbox-mc {
  background: var(--c-bg-card);
  border: 1px solid #e6e4f0;
  border-radius: 12px;
  padding: 14px 16px;
  margin: 10px 0 14px;
  font-size: 13px;
  color: var(--c-text-heading);
}
.inbox-mc .inbox-mc-head {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 700;
  color: #4f46a5;
}
.inbox-mc .inbox-mc-head .mdi {
  color: #7c6fe0;
}
.inbox-mc .inbox-mc-head qdnapro-button {
  margin-left: auto;
}
.inbox-mc .inbox-mc-result {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
}
.inbox-mc .inbox-mc-rec {
  color: var(--c-text-muted);
}
.inbox-mc .inbox-mc-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 14px;
  margin-top: 8px;
  color: var(--c-text-muted);
  font-size: 12px;
}
.inbox-mc .inbox-mc-ai {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.inbox-mc .inbox-mc-ai .mdi {
  color: #7c6fe0;
}
.inbox-mc .inbox-mc-ai.is-match {
  color: #2e7d32;
}
.inbox-mc .inbox-mc-ai.is-deviated {
  color: #b06e00;
}
.inbox-mc .inbox-mc-empty {
  margin-top: 8px;
  color: var(--c-text-muted);
}
.inbox-mc .inbox-mc-form {
  margin-top: 12px;
}
.inbox-mc .inbox-mc-form-row {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.inbox-mc .inbox-mc-form-row qdnapro-select {
  flex: 1;
  min-width: 220px;
}
.inbox-mc .inbox-mc-form-foot {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
}
.inbox-mc .inbox-mc-form-foot .inbox-mc-live-score {
  flex: 1;
}

/* ── Melding-samenvatting (opening van het bericht, 2026-07-20) ──
   De prominente OPENING, op de plek onder de takenlijst-kop; de ingevulde velden
   eronder blijven als "bewijs". Bewust visueel GELIJK aan .inbox-nova-panel
   (zelfde kaart + fontgrootte) voor consistentie tussen samenvatting en analyse.
   Het bewerk-veld is een echt qdnapro-input (type=expanding), geen textarea. */
/* Verborgen invulling (2026-08-16, besluit 4): de melding bovenaan een overdracht waarvan
   de invulling is verborgen. Zelfde gedempte rood als de melding op de Antwoorden-pagina
   (#b3261e) — bewust geen signaalrood: dit is context bij het bericht, geen storing. */
.inbox-hidden-note {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin: 0 0 16px 0;
  padding: 10px 12px;
  border-left: 3px solid #b3261e;
  border-radius: 6px;
  background: rgba(179, 38, 30, 0.06);
}
.inbox-hidden-note .mdi {
  color: #b3261e;
  font-size: 18px;
  line-height: 1.3;
}
.inbox-hidden-note strong {
  color: #b3261e;
  font-size: 13.5px;
}

.inbox-hidden-meta {
  font-size: 12px;
  color: #6b7194;
  margin-top: 2px;
}

.inbox-hidden-reason {
  font-size: 13px;
  color: #282e64;
  margin-top: 4px;
  white-space: pre-wrap;
}

.inbox-summary {
  background: #f5f3ff;
  border: 1px solid #e3defa;
  border-radius: 12px;
  padding: 14px 16px;
  margin: 10px 0 14px;
  font-size: 13px;
  color: var(--c-text-heading);
}
.inbox-summary .inbox-summary-head {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 700;
  color: #4f46a5;
}
.inbox-summary .inbox-summary-head .mdi {
  color: #7c6fe0;
}
.inbox-summary .inbox-summary-title {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1;
  min-width: 0;
}
.inbox-summary .inbox-summary-src {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 1px 8px;
  border-radius: 999px;
  background: #e9e6fb;
  color: #4f46a5;
  font-size: 11px;
  font-weight: 600;
}
.inbox-summary .inbox-summary-src .mdi {
  font-size: 13px;
  color: #4f46a5;
}
.inbox-summary .inbox-summary-actions {
  display: flex;
  align-items: center;
  gap: 2px;
  margin-left: auto;
  flex-shrink: 0;
}
.inbox-summary .inbox-summary-body {
  margin-top: 8px;
}
.inbox-summary .inbox-summary-text {
  margin: 0;
  line-height: 1.5;
  white-space: pre-wrap;
}
.inbox-summary .inbox-summary-meta {
  margin-top: 8px;
  font-size: 12px;
  color: var(--c-text-muted);
}
.inbox-summary.is-collapsed .inbox-summary-body {
  display: none;
}
.inbox-summary .inbox-summary-add {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  color: #4f46a5;
  font-size: 13px;
  font-weight: 600;
}
.inbox-summary .inbox-summary-add .mdi {
  font-size: 18px;
}
.inbox-summary .inbox-summary-add:hover {
  text-decoration: underline;
}
.inbox-summary .inbox-summary-input {
  display: block;
  width: 100%;
  margin-top: 8px;
}
.inbox-summary .inbox-summary-form-foot {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
}
.inbox-summary .inbox-summary-form-foot .inbox-summary-spacer {
  flex: 1;
}

/* ── Incidentanalyse-blok (PRISMA/SIRE fase 1, 2026-07-20) ──
   Router-advies + Start-knop, of de bestaande analyse (methode-chip + status +
   deep-link naar het workbench op het meldingen-dashboard). Zelfde kaart-idioom
   als .inbox-mc erboven. */
.inbox-ia {
  background: var(--c-bg-card);
  border: 1px solid #e6e4f0;
  border-radius: 12px;
  padding: 14px 16px;
  margin: 10px 0 14px;
  font-size: 13px;
  color: var(--c-text-heading);
}
.inbox-ia .inbox-ia-head {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 700;
  color: #4f46a5;
}
.inbox-ia .inbox-ia-head .mdi {
  color: #7c6fe0;
}
.inbox-ia .inbox-ia-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
}
.inbox-ia .inbox-ia-row qdnapro-button {
  margin-left: auto;
}
.inbox-ia .inbox-ia-status {
  color: var(--c-text-muted);
}
.inbox-ia .inbox-ia-src {
  color: var(--c-text-muted);
  font-size: 12px;
}
.inbox-ia .inbox-ia-open {
  margin-left: auto;
  color: #4f46a5;
  font-weight: 600;
  text-decoration: none;
}
.inbox-ia .inbox-ia-open:hover {
  text-decoration: underline;
}
.inbox-ia .inbox-ia-muted {
  margin-top: 8px;
  color: var(--c-text-muted);
}

/* ── Classificatiemappen in de sidebar-tree (meldingen-classificatie Fase 6) ──
   Status-rij met uitklap-chevron + geneste sublijst: per set een vette kop, de
   classificaties en "Ongeclassificeerd". Bouwt voort op .sidebar-item. */
.left-sidebar .cls-status-row {
  padding-left: 8px;
}
.left-sidebar .cls-status-row .cls-collapse-btn {
  cursor: pointer;
  transition: color 0.12s;
}
.left-sidebar .cls-status-row .cls-collapse-btn:hover {
  color: var(--c-brand-purple);
}
.left-sidebar .cls-status-row .cls-collapse-spacer {
  visibility: hidden;
}
.left-sidebar .cls-sub-list {
  margin: 2px 0 4px;
}
.left-sidebar .cls-set-header {
  padding: 6px 8px 3px 30px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--c-text-disabled-pp);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.left-sidebar .cls-item {
  padding-left: 42px;
  font-size: 11.5px;
}
.left-sidebar .cls-item.cls-item-unclassified i, .left-sidebar .cls-item.cls-item-unclassified .sidebar-item-label {
  color: var(--c-text-disabled-pp);
}

/* ── Definitief-verwijderen bevestiging ────────────────────────────────────
   Het aantal krijgt bewust visueel gewicht: dit is het enige moment waarop een
   te ruime selectie nog opvalt vóór de berichten weg zijn. De map staat in de
   zin eronder, zodat "112 · berichten uit Prullenbak" als één blok leest.     */
.inbox-purge-body--many {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}
.inbox-purge-body--many .inbox-purge-count {
  font-size: 34px;
  font-weight: 700;
  line-height: 1.1;
  color: var(--c-warn-red-500, #dc2626);
  font-variant-numeric: tabular-nums;
}
.inbox-purge-body--many .inbox-purge-lead {
  color: var(--c-text-body, #1c1e2a);
}
.inbox-purge-body--many .inbox-purge-stray {
  margin-top: 8px;
  width: 100%;
}

#project-content-info {
  position: relative;
  background-color: #40499A;
}

#project-content-info-man {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#project-content-info-details {
  text-align: center;
  position: absolute;
  top: 62%;
  left: 45%;
  transform: translate(-50%, -50%);
  width: 40%;
}

.lightbulb-icon {
  width: 25%;
}

.essentials-button {
  padding: 4px 12px 4px 6px;
  border-radius: 10px;
  background-color: #40499a !important;
  color: #f1f1f1;
  justify-content: center;
  align-items: center;
  cursor: pointer;
}

.circle-count {
  padding-left: 3px;
  padding-right: 3px;
  background-color: #1E205C;
  width: 30px;
  height: 30px;
  align-items: center;
  justify-content: center;
}

.project-content-row {
  font-size: 14px;
  gap: 16px;
  flex-wrap: nowrap;
}
.project-content-row .card {
  background-color: #FFF !important;
}

.project-content-col {
  border-radius: 20px;
  background-color: #FFF;
  padding: 12px 16px;
}

.txt-vw-2 {
  font-size: 2vmin;
}

.txt-vw-3 {
  font-size: 3vmin;
}

.custom-text-blue {
  color: #40499A;
  text-align: center;
}

.abcd {
  border-radius: 20px;
  font-weight: normal;
}
.abcd .ts-primary-button {
  width: 200px;
  border-radius: 10px;
  padding: 8px;
  background-color: #40499A !important;
  color: #FFF;
  cursor: pointer;
}

.def {
  border-radius: 12px;
  background-color: #FFF;
  min-height: 124px;
  text-align: center;
  color: #40499A;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
  cursor: pointer;
}

.modal-backdrop {
  width: 100%;
  height: 100%;
}

.validate-error {
  color: red;
}

.ts-sort-placeholder {
  border: 2px dashed #c1c1c1;
  height: 75px;
  margin: 15px 0;
}

#home {
  gap: 12px;
  display: flex;
  flex-direction: column;
}
#home .blocks_background {
  background-color: #FFF;
  border-radius: 12px;
}
#home .block_heading {
  font-weight: 600;
}
#home .detail_block {
  font-weight: 400;
  padding: 24px 32px;
}
#home .detail_block-title {
  font-size: 25px;
  font-weight: 600;
}
#home .detail_block-description {
  font-size: 16px;
}
#home .detail_block-user_detail {
  padding-top: 8px;
  display: flex;
  align-items: center;
  gap: 72px;
}
#home .detail_block-user_detail-info {
  padding-top: 8px;
  display: flex;
  align-items: center;
  gap: 36px;
  border-radius: 8px;
}
#home .detail_block-user_detail-info img {
  width: 90px;
  border-radius: 16px;
}
#home .detail_block-user_detail-info .block_heading {
  font-size: 18px;
}
#home .project_count {
  display: flex;
  gap: 12px;
}
#home .project_count-cols {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 12px;
}
#home .project_count .star_block {
  display: flex;
  align-items: center;
  flex: 1;
  padding: 4px 0px;
}
#home .project_count .star_block-detail {
  display: flex;
  flex: 1;
  font-weight: 500;
}
#home .project_count .star_block-detail-icon {
  font-size: 48px;
  text-align: center;
  color: #40499a;
  padding: 0px 24px;
}
#home .project_count .star_block-detail-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
#home .project_count .star_block-detail-body-title {
  font-size: 20px;
}
#home .project_count .star_block-count {
  font-size: 48px;
  font-weight: 600;
  display: flex;
  justify-content: end;
  padding: 0px 40px;
}
#home .project_count .assesment_block {
  display: flex;
  flex: 1;
  padding: 0;
  flex-direction: column;
  padding: 0px 16px;
}
#home .project_count .assesment_block-icon {
  font-size: 60px;
  padding: 0px 24px;
  color: #40499a;
}
#home .project_count .assesment_block-body {
  padding: 0px 24px;
}
#home .project_count .assesment_block-body-title {
  font-size: 32px;
  font-weight: 700;
}
#home .project_count .assesment_block-body-description {
  font-size: 16px;
}
#home .project_count .assesment_block-body-count {
  font-size: 60px;
  font-weight: 700;
}
#home .graph_container i {
  font-size: 48px;
  padding: 8px;
  color: #40499a;
}
#home .graph_container-title {
  font-size: 16px;
  padding: 0px 8px;
  font-weight: 600;
}

.ov-root {
  display: flex;
  flex-direction: column;
  height: calc(100vh - var(--qdna-topbar-h));
  overflow: hidden;
  padding: 0;
}

.ov-body {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 0 8px;
}

.ov-ctrl-bar {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 0;
  padding: 8px 0 6px;
  transition: gap 220ms cubic-bezier(0.4, 0, 0.2, 1);
}

.ov-ctrl-sidebar {
  flex: 0 0 auto;
  width: 0;
  overflow: hidden;
  background: white;
  border-radius: 12px;
  transition: width 220ms cubic-bezier(0.4, 0, 0.2, 1), border-radius 220ms cubic-bezier(0.4, 0, 0.2, 1);
}

.ov-ctrl-sidebar-inner {
  width: 260px;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 0 6px 0 12px;
  min-height: 44px;
  font-size: 13px;
  font-weight: 500;
  color: #374151;
  white-space: nowrap;
  box-sizing: border-box;
}

.ov-ctrl-sidebar-title {
  flex: 1 1 auto;
}

.ov-ctrl-search {
  flex: 0 1 auto;
  width: 100%;
  max-width: 420px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.ov-ctrl-search qdnapro-input {
  flex: 1 1 auto;
}

.ov-workspace {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  gap: 0;
  padding-bottom: 8px;
  position: relative;
}

.ov-sidebar-wrap {
  flex: 0 0 auto;
  width: 0;
  overflow: hidden;
  margin-right: 0;
  background: white;
  border-radius: 12px;
  transition: width 220ms cubic-bezier(0.4, 0, 0.2, 1), border-radius 220ms cubic-bezier(0.4, 0, 0.2, 1), margin-right 220ms cubic-bezier(0.4, 0, 0.2, 1), margin-top 220ms cubic-bezier(0.4, 0, 0.2, 1);
}
.ov-sidebar-wrap qdnapro-sidebar {
  width: 260px;
  height: 100%;
}

.ov-content {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  background: white;
  border-radius: 12px;
  overflow: hidden;
}

.ov-root.split-open .ov-content {
  min-width: 560px;
}

.ov-table-area {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.ov-table-area qdnapro-table-wrapper,
.ov-table-area qdnapro-table {
  flex: 1 1 auto;
  min-height: 0;
}

.ov-btn-active {
  background: var(--c-purple-50, #e6e9ff) !important;
  color: var(--c-purple-500, #40499a) !important;
}

.ov-footer {
  flex: 0 0 auto;
  display: flex;
  justify-content: center;
  padding: 6px 8px;
}

.ov-footer[hidden] {
  display: none;
}

.ov-root.has-record-nav .qdnapro-table-wrapper {
  padding-bottom: 80px;
}

.ov-root.sidebar-open .ov-ctrl-bar {
  gap: 8px;
}
.ov-root.sidebar-open .ov-ctrl-sidebar {
  width: 260px;
  border-radius: 12px 12px 0 0;
  padding: 4px;
}
.ov-root.sidebar-open .ov-sidebar-wrap {
  width: 260px;
  border-radius: 0 0 12px 12px;
  margin-right: 8px;
  margin-top: -6px;
}

.ov-root.sidebar-collapsed .ov-ctrl-bar {
  gap: 8px;
}
.ov-root.sidebar-collapsed .ov-ctrl-sidebar {
  width: 260px;
  padding: 4px;
}

.ov-ctrl-page-switch {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  margin-left: 12px;
}
.ov-ctrl-page-switch[hidden] {
  display: none;
}
.ov-ctrl-page-switch {
  background: white;
  border-radius: 20px;
  padding: 3px;
}

.ov-split-resizer {
  position: relative;
  flex: 0 0 auto;
  width: 14px;
  margin: 0;
  cursor: col-resize;
  background: transparent;
}
.ov-split-resizer::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 4px;
  height: 36px;
  border-radius: 2px;
  background: rgba(64, 73, 154, 0.3);
  transition: background 120ms ease, height 200ms ease;
}
.ov-split-resizer:hover::after, .ov-split-resizer:active::after {
  background: rgba(64, 73, 154, 0.95);
  height: 56px;
}

body.ov-split-resizing,
body.ov-split-resizing * {
  cursor: col-resize !important;
}

.ov-split-panel {
  flex: 0 0 auto;
  min-width: 280px;
  display: flex;
  flex-direction: column;
  background: white;
  border-radius: 12px;
  overflow: hidden;
  transform: translateX(0);
  opacity: 1;
  transition: transform 220ms cubic-bezier(0.4, 0, 0.2, 1), opacity 160ms cubic-bezier(0.4, 0, 0.2, 1);
}
.ov-split-panel.is-sliding {
  transform: translateX(calc(100% + 8px));
  opacity: 0;
}

@media (prefers-reduced-motion: reduce) {
  .ov-split-panel {
    transition: none;
  }
}
.ov-split-toolbar {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 8px 0;
}
.ov-split-toolbar qdnapro-input {
  flex: 1 1 auto;
}

.ov-split-table-area {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.ov-split-table-area qdnapro-table-wrapper,
.ov-split-table-area qdnapro-table {
  flex: 1 1 auto;
  min-height: 0;
}

.ov-split-hint {
  flex: 0 0 auto;
  padding: 6px 14px 8px;
  font-size: 11px;
  color: var(--c-text-soft, #9299ad);
  text-align: right;
}

@keyframes ov-split-row-enter {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.ov-split-panel .qdnapro-table-list tbody tr.is-entering,
.ov-split-panel .qdnapro-table-list tbody tr.is-entering-flat {
  animation-name: ov-split-row-enter;
  animation-duration: 320ms;
  animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
  animation-delay: calc(var(--qdnapro-table-enter-i, 0) * 45ms);
  animation-fill-mode: both;
}

@media (prefers-reduced-motion: reduce) {
  .ov-split-panel .qdnapro-table-list tbody tr.is-entering,
  .ov-split-panel .qdnapro-table-list tbody tr.is-entering-flat {
    animation: none;
  }
}
.ov-split-empty {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  overflow: auto;
}

@media (max-width: 1024px) {
  .ov-root.split-open .ov-content {
    min-width: 0;
  }
  .ov-root.split-open .ov-split-panel {
    width: clamp(280px, 38%, 420px) !important;
  }
}
.settings-hub {
  position: relative;
}

.settings-hub__toolbar {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.settings-hub__heading {
  padding: 16px 16px 4px;
}

.settings-hub__block:first-of-type .settings-hub__heading {
  padding-top: 8px;
  padding-bottom: 8px;
  min-height: 40px;
  display: flex;
  align-items: center;
  padding-right: 360px;
}

@media (max-width: 900px) {
  .settings-hub__toolbar {
    position: static;
    margin-bottom: 8px;
  }
  .settings-hub__block:first-of-type .settings-hub__heading {
    padding-right: 16px;
  }
}
.settings-hub__search {
  width: 340px;
  max-width: 100%;
  flex: 0 0 auto;
}

.settings-hub__block[hidden],
.settings-hub__cell[hidden] {
  display: none;
}

.settings-hub__empty {
  padding: 40px 16px;
  text-align: center;
  color: var(--c-text-muted, #6e7280);
  font-size: 14px;
}

.settings-hub__empty-title {
  display: block;
  margin-bottom: 4px;
  font-size: 15px;
  font-weight: 600;
  color: var(--c-text-heading, #1a1f4d);
}

.alert.mdi::before,
.breadcrumb .mdi::before,
.btn.mdi::before,
.card-title.mdi::before,
.card-subtitle.mdi::before,
.card-link.mdi::before,
.dropdown-item.mdi::before,
.list-group-item.mdi::before,
.nav-link.mdi::before {
  font-size: 1.25em;
  line-height: initial;
  position: relative;
  top: 0.09rem;
}

.alert.mdi::before,
.breadcrumb .mdi:not(:empty)::before,
.btn.mdi:not(:empty)::before,
.card-title.mdi:not(:empty)::before,
.card-subtitle.mdi:not(:empty)::before,
.card-link.mdi:not(:empty)::before,
.dropdown-item.mdi:not(:empty)::before,
.nav-link.mdi:not(:empty)::before {
  margin-right: 0.25rem;
}

.list-group-item.mdi:not(:empty)::before {
  margin-right: 0.5rem;
}

.dropdown-item.mdi:not(:empty)::before {
  margin-left: -0.75rem;
}

.alert.mdi::before,
.list-group-item.mdi:not(:empty)::before {
  margin-left: -0.5rem;
}

.modal-title.mdi::before {
  font-size: 1.5em;
  line-height: 0.5;
  position: relative;
  top: 0.26rem;
  margin-right: 0.5rem;
}

fieldset[disabled] .multiselect {
  pointer-events: none;
}

.multiselect__spinner {
  position: absolute;
  right: 1px;
  top: 1px;
  width: 48px;
  height: 35px;
  background: #fff;
  display: block;
}

.multiselect__spinner:after, .multiselect__spinner:before {
  position: absolute;
  content: "";
  top: 50%;
  left: 50%;
  margin: -8px 0 0 -8px;
  width: 16px;
  height: 16px;
  border-radius: 100%;
  border: 2px solid transparent;
  border-top-color: #41b883;
  box-shadow: 0 0 0 1px transparent;
}

.multiselect__spinner:before {
  animation: spinning 2.4s cubic-bezier(0.41, 0.26, 0.2, 0.62);
  animation-iteration-count: infinite;
}

.multiselect__spinner:after {
  animation: spinning 2.4s cubic-bezier(0.51, 0.09, 0.21, 0.8);
  animation-iteration-count: infinite;
}

.multiselect__loading-enter-active, .multiselect__loading-leave-active {
  transition: opacity 0.4s ease-in-out;
  opacity: 1;
}

.multiselect__loading-enter, .multiselect__loading-leave-active {
  opacity: 0;
}

.multiselect, .multiselect__input, .multiselect__single {
  font-family: inherit;
  font-size: 16px;
  -ms-touch-action: manipulation;
  touch-action: manipulation;
}

.multiselect {
  box-sizing: content-box;
  display: block;
  position: relative;
  width: 100%;
  min-height: 40px;
  text-align: left;
  color: #35495e;
}

.multiselect * {
  box-sizing: border-box;
}

.multiselect:focus {
  outline: none;
}

.multiselect--disabled {
  background: #ededed;
  pointer-events: none;
  opacity: 0.6;
}

.multiselect--active {
  z-index: 50;
}

.multiselect--active:not(.multiselect--above) .multiselect__current, .multiselect--active:not(.multiselect--above) .multiselect__input, .multiselect--active:not(.multiselect--above) .multiselect__tags {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.multiselect--active .multiselect__select {
  transform: rotate(180deg);
}

.multiselect--above.multiselect--active .multiselect__current, .multiselect--above.multiselect--active .multiselect__input, .multiselect--above.multiselect--active .multiselect__tags {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.multiselect__input, .multiselect__single {
  position: relative;
  display: inline-block;
  min-height: 20px;
  line-height: 20px;
  border: none;
  border-radius: 5px;
  background: #fff;
  padding: 0 0 0 5px;
  width: 100%;
  transition: border 0.1s ease;
  box-sizing: border-box;
  margin-bottom: 8px;
  vertical-align: top;
}

.multiselect__input:-ms-input-placeholder {
  color: #35495e;
}

.multiselect__input::placeholder {
  color: #35495e;
}

.multiselect__tag ~ .multiselect__input, .multiselect__tag ~ .multiselect__single {
  width: auto;
}

.multiselect__input:hover, .multiselect__single:hover {
  border-color: #cfcfcf;
}

.multiselect__input:focus, .multiselect__single:focus {
  border-color: #a8a8a8;
  outline: none;
}

.multiselect__single {
  padding-left: 5px;
  margin-bottom: 8px;
}

.multiselect__tags-wrap {
  display: inline;
}

.multiselect__tags {
  min-height: 40px;
  display: block;
  padding: 8px 40px 0 8px;
  border-radius: 5px;
  border: 1px solid #e8e8e8;
  background: #fff;
  font-size: 14px;
}

.multiselect__tag {
  position: relative;
  display: inline-block;
  padding: 4px 26px 4px 10px;
  border-radius: 5px;
  margin-right: 10px;
  color: #fff;
  line-height: 1;
  background: #41b883;
  margin-bottom: 5px;
  white-space: nowrap;
  overflow: hidden;
  max-width: 100%;
  text-overflow: ellipsis;
}

.multiselect__tag-icon {
  cursor: pointer;
  margin-left: 7px;
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  font-weight: 700;
  font-style: normal;
  width: 22px;
  text-align: center;
  line-height: 22px;
  transition: all 0.2s ease;
  border-radius: 5px;
}

.multiselect__tag-icon:after {
  content: "×";
  color: #266d4d;
  font-size: 14px;
}

.multiselect__tag-icon:focus, .multiselect__tag-icon:hover {
  background: #369a6e;
}

.multiselect__tag-icon:focus:after, .multiselect__tag-icon:hover:after {
  color: #fff;
}

.multiselect__current {
  min-height: 40px;
  overflow: hidden;
  padding: 8px 30px 0 12px;
  white-space: nowrap;
  border-radius: 5px;
  border: 1px solid #e8e8e8;
}

.multiselect__current, .multiselect__select {
  line-height: 16px;
  box-sizing: border-box;
  display: block;
  margin: 0;
  text-decoration: none;
  cursor: pointer;
}

.multiselect__select {
  position: absolute;
  width: 40px;
  height: 38px;
  right: 1px;
  top: 1px;
  padding: 4px 8px;
  text-align: center;
  transition: transform 0.2s ease;
}

.multiselect__select:before {
  position: relative;
  right: 0;
  top: 65%;
  color: #999;
  margin-top: 4px;
  border-color: #999 transparent transparent;
  border-style: solid;
  border-width: 5px 5px 0;
  content: "";
}

.multiselect__placeholder {
  color: #adadad;
  display: inline-block;
  margin-bottom: 10px;
  padding-top: 2px;
}

.multiselect--active .multiselect__placeholder {
  display: none;
}

.multiselect__content-wrapper {
  position: absolute;
  display: block;
  background: #fff;
  width: 100%;
  max-height: 240px;
  overflow: auto;
  border: 1px solid #e8e8e8;
  border-top: none;
  border-bottom-left-radius: 5px;
  border-bottom-right-radius: 5px;
  z-index: 50;
  -webkit-overflow-scrolling: touch;
}

.multiselect__content {
  list-style: none;
  display: inline-block;
  padding: 0;
  margin: 0;
  min-width: 100%;
  vertical-align: top;
}

.multiselect--above .multiselect__content-wrapper {
  bottom: 100%;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  border-top-left-radius: 5px;
  border-top-right-radius: 5px;
  border-bottom: none;
  border-top: 1px solid #e8e8e8;
}

.multiselect__content::webkit-scrollbar {
  display: none;
}

.multiselect__element {
  display: block;
}

.multiselect__option {
  display: block;
  padding: 12px;
  min-height: 40px;
  line-height: 16px;
  text-decoration: none;
  text-transform: none;
  vertical-align: middle;
  position: relative;
  cursor: pointer;
  white-space: nowrap;
}

.multiselect__option:after {
  top: 0;
  right: 0;
  position: absolute;
  line-height: 40px;
  padding-right: 12px;
  padding-left: 20px;
  font-size: 13px;
}

.multiselect__option--highlight {
  background: #41b883;
  outline: none;
  color: #fff;
}

.multiselect__option--highlight:after {
  content: attr(data-select);
  background: #41b883;
  color: #fff;
}

.multiselect__option--selected {
  background: #f3f3f3;
  color: #35495e;
  font-weight: 700;
}

.multiselect__option--selected:after {
  content: attr(data-selected);
  color: silver;
}

.multiselect__option--selected.multiselect__option--highlight {
  background: #ff6a6a;
  color: #fff;
}

.multiselect__option--selected.multiselect__option--highlight:after {
  background: #ff6a6a;
  content: attr(data-deselect);
  color: #fff;
}

.multiselect--disabled .multiselect__current, .multiselect--disabled .multiselect__select {
  background: #ededed;
  color: #a6a6a6;
}

.multiselect__option--disabled {
  background: #ededed !important;
  color: #a6a6a6 !important;
  cursor: text;
  pointer-events: none;
}

.multiselect__option--group {
  background: #ededed;
  color: #35495e;
}

.multiselect__option--group.multiselect__option--highlight {
  background: #35495e;
  color: #fff;
}

.multiselect__option--group.multiselect__option--highlight:after {
  background: #35495e;
}

.multiselect__option--disabled.multiselect__option--highlight {
  background: #dedede;
}

.multiselect__option--group-selected.multiselect__option--highlight {
  background: #ff6a6a;
  color: #fff;
}

.multiselect__option--group-selected.multiselect__option--highlight:after {
  background: #ff6a6a;
  content: attr(data-deselect);
  color: #fff;
}

.multiselect-enter-active, .multiselect-leave-active {
  transition: all 0.15s ease;
}

.multiselect-enter, .multiselect-leave-active {
  opacity: 0;
}

.multiselect__strong {
  margin-bottom: 8px;
  line-height: 20px;
  display: inline-block;
  vertical-align: top;
}

[dir=rtl] .multiselect {
  text-align: right;
}

[dir=rtl] .multiselect__select {
  right: auto;
  left: 1px;
}

[dir=rtl] .multiselect__tags {
  padding: 8px 8px 0 40px;
}

[dir=rtl] .multiselect__content {
  text-align: right;
}

[dir=rtl] .multiselect__option:after {
  right: auto;
  left: 0;
}

[dir=rtl] .multiselect__clear {
  right: auto;
  left: 12px;
}

[dir=rtl] .multiselect__spinner {
  right: auto;
  left: 1px;
}

@keyframes spinning {
  0% {
    transform: rotate(0);
  }
  to {
    transform: rotate(2turn);
  }
}
.multiselect__tags {
  display: block;
  width: 100%;
  padding-top: 0.375rem;
  padding-left: 0.75rem;
  font-size: 1rem;
  color: #495057;
  background-clip: padding-box;
  border: 1px solid #ced4da;
  border-radius: 0.25rem;
  min-height: calc(2.25rem + 2px);
}

.multiselect__single,
.multiselect__placeholder,
.multiselect__input {
  color: #495057;
  padding-top: 0;
  margin-bottom: 0.375rem;
  font-weight: 400;
  padding-left: 0;
  line-height: 1.5;
}

.card-rules .multiselect__tags {
  border-color: #5a83ec;
}
.card-rules .multiselect__tag {
  background-color: #e8eefc;
  color: #495057;
  border: 1px solid #5a83ec;
  font-weight: 400;
  font-size: 0.875rem;
  margin-bottom: 2px;
}
.card-rules .multiselect__tag-icon:after {
  color: #495057;
}
.card-rules .multiselect__tag-icon {
  border-radius: 50%;
}
.card-rules .multiselect__tag-icon:focus, .card-rules .multiselect__tag-icon:hover {
  background: #5a83ec;
  color: #495057;
}
.card-rules .multiselect__tag-icon:focus:after, .card-rules .multiselect__tag-icon:hover:after {
  color: #fff;
}
.card-rules .multiselect--above .multiselect__content-wrapper {
  border-color: #5a83ec;
  font-size: 0.875rem;
}
.card-rules .multiselect__option--highlight {
  background: #44bcab;
}
.card-rules .multiselect__option--highlight:after {
  background: #44bcab;
}
.card-rules .multiselect__option--selected {
  background: #5a83ec;
  color: #fff;
}
.card-rules .multiselect__option--selected:hover {
  background: #d63b49;
}
.card-rules .multiselect__option--selected:hover:after {
  background: #d63b49;
}
.card-rules .multiselect__option--selected:after {
  background: #5a83ec;
}

.cropper-container {
  direction: ltr;
  font-size: 0;
  line-height: 0;
  position: relative;
  touch-action: none;
  -webkit-touch-callout: none;
  user-select: none;
}
.cropper-container img {
  backface-visibility: hidden;
  display: block;
  height: 100%;
  image-orientation: 0deg;
  max-height: none !important;
  max-width: none !important;
  min-height: 0 !important;
  min-width: 0 !important;
  width: 100%;
}
.cropper-wrap-box, .cropper-canvas, .cropper-drag-box, .cropper-crop-box, .cropper-modal {
  bottom: 0;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}
.cropper-wrap-box, .cropper-canvas {
  overflow: hidden;
}
.cropper-drag-box {
  background-color: #fff;
  opacity: 0;
}
.cropper-modal {
  background-color: #000;
  opacity: 0.5;
}
.cropper-view-box {
  display: block;
  height: 100%;
  outline: 1px solid #39f;
  outline-color: rgba(51, 153, 255, 0.75);
  overflow: hidden;
  width: 100%;
}
.cropper-dashed {
  border: 0 dashed #eee;
  display: block;
  opacity: 0.5;
  position: absolute;
}
.cropper-dashed.dashed-h {
  border-bottom-width: 1px;
  border-top-width: 1px;
  height: 33.3333333333%;
  left: 0;
  top: 33.3333333333%;
  width: 100%;
}
.cropper-dashed.dashed-v {
  border-left-width: 1px;
  border-right-width: 1px;
  height: 100%;
  left: 33.3333333333%;
  top: 0;
  width: 33.3333333333%;
}
.cropper-center {
  display: block;
  height: 0;
  left: 50%;
  opacity: 0.75;
  position: absolute;
  top: 50%;
  width: 0;
}
.cropper-center::before, .cropper-center::after {
  background-color: #eee;
  content: " ";
  display: block;
  position: absolute;
}
.cropper-center::before {
  height: 1px;
  left: -3px;
  top: 0;
  width: 7px;
}
.cropper-center::after {
  height: 7px;
  left: 0;
  top: -3px;
  width: 1px;
}
.cropper-face, .cropper-line, .cropper-point {
  display: block;
  height: 100%;
  opacity: 0.1;
  position: absolute;
  width: 100%;
}
.cropper-face {
  background-color: #fff;
  left: 0;
  top: 0;
}
.cropper-line {
  background-color: #39f;
}
.cropper-line.line-e {
  cursor: ew-resize;
  right: -3px;
  top: 0;
  width: 5px;
}
.cropper-line.line-n {
  cursor: ns-resize;
  height: 5px;
  left: 0;
  top: -3px;
}
.cropper-line.line-w {
  cursor: ew-resize;
  left: -3px;
  top: 0;
  width: 5px;
}
.cropper-line.line-s {
  bottom: -3px;
  cursor: ns-resize;
  height: 5px;
  left: 0;
}
.cropper-point {
  background-color: #39f;
  height: 5px;
  opacity: 0.75;
  width: 5px;
}
.cropper-point.point-e {
  cursor: ew-resize;
  margin-top: -3px;
  right: -3px;
  top: 50%;
}
.cropper-point.point-n {
  cursor: ns-resize;
  left: 50%;
  margin-left: -3px;
  top: -3px;
}
.cropper-point.point-w {
  cursor: ew-resize;
  left: -3px;
  margin-top: -3px;
  top: 50%;
}
.cropper-point.point-s {
  bottom: -3px;
  cursor: s-resize;
  left: 50%;
  margin-left: -3px;
}
.cropper-point.point-ne {
  cursor: nesw-resize;
  right: -3px;
  top: -3px;
}
.cropper-point.point-nw {
  cursor: nwse-resize;
  left: -3px;
  top: -3px;
}
.cropper-point.point-sw {
  bottom: -3px;
  cursor: nesw-resize;
  left: -3px;
}
.cropper-point.point-se {
  bottom: -3px;
  cursor: nwse-resize;
  height: 20px;
  opacity: 1;
  right: -3px;
  width: 20px;
}
@media (min-width: 768px) {
  .cropper-point.point-se {
    height: 15px;
    width: 15px;
  }
}
@media (min-width: 992px) {
  .cropper-point.point-se {
    height: 10px;
    width: 10px;
  }
}
@media (min-width: 1200px) {
  .cropper-point.point-se {
    height: 5px;
    opacity: 0.75;
    width: 5px;
  }
}
.cropper-point.point-se::before {
  background-color: #39f;
  bottom: -50%;
  content: " ";
  display: block;
  height: 200%;
  opacity: 0;
  position: absolute;
  right: -50%;
  width: 200%;
}
.cropper-invisible {
  opacity: 0;
}
.cropper-bg {
  background-image: url("../images/bg.png");
}
.cropper-hide {
  display: block;
  height: 0;
  position: absolute;
  width: 0;
}
.cropper-hidden {
  display: none !important;
}
.cropper-move {
  cursor: move;
}
.cropper-crop {
  cursor: crosshair;
}
.cropper-disabled .cropper-drag-box, .cropper-disabled .cropper-face, .cropper-disabled .cropper-line, .cropper-disabled .cropper-point {
  cursor: not-allowed;
}

.cropper-line {
  background-color: #3f499a;
}

:host,
:root {
  --vs-colors--lightest: rgba(60, 60, 60, 0.26);
  --vs-colors--light: rgba(60, 60, 60, 0.5);
  --vs-colors--dark: #333;
  --vs-colors--darkest: rgba(0, 0, 0, 0.15);
  --vs-search-input-color: inherit;
  --vs-search-input-bg: #fff;
  --vs-search-input-placeholder-color: inherit;
  --vs-font-size: 1rem;
  --vs-line-height: 1.4;
  --vs-state-disabled-bg: #f8f8f8;
  --vs-state-disabled-color: var(--vs-colors--light);
  --vs-state-disabled-controls-color: var(--vs-colors--light);
  --vs-state-disabled-cursor: not-allowed;
  --vs-border-color: var(--vs-colors--lightest);
  --vs-border-width: 1px;
  --vs-border-style: solid;
  --vs-border-radius: 4px;
  --vs-actions-padding: 4px 6px 0 3px;
  --vs-controls-color: var(--vs-colors--light);
  --vs-controls-size: 1;
  --vs-controls--deselect-text-shadow: 0 1px 0 #fff;
  --vs-selected-bg: #f0f0f0;
  --vs-selected-color: var(--vs-colors--dark);
  --vs-selected-border-color: var(--vs-border-color);
  --vs-selected-border-style: var(--vs-border-style);
  --vs-selected-border-width: var(--vs-border-width);
  --vs-dropdown-bg: #fff;
  --vs-dropdown-color: inherit;
  --vs-dropdown-z-index: 1000;
  --vs-dropdown-min-width: 160px;
  --vs-dropdown-max-height: 350px;
  --vs-dropdown-box-shadow: 0px 3px 6px 0px var(--vs-colors--darkest);
  --vs-dropdown-option-bg: #000;
  --vs-dropdown-option-color: var(--vs-dropdown-color);
  --vs-dropdown-option-padding: 3px 20px;
  --vs-dropdown-option--active-bg: #5897fb;
  --vs-dropdown-option--active-color: #fff;
  --vs-dropdown-option--deselect-bg: #fb5858;
  --vs-dropdown-option--deselect-color: #fff;
  --vs-transition-timing-function: cubic-bezier(1, -0.115, 0.975, 0.855);
  --vs-transition-duration: 150ms ;
}

.v-select {
  font-family: inherit;
  position: relative;
}

.v-select,
.v-select * {
  box-sizing: border-box;
}

:root {
  --vs-transition-timing-function: cubic-bezier(1, 0.5, 0.8, 1);
  --vs-transition-duration: 0.15s ;
}

@-webkit-keyframes vSelectSpinner {
  0% {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(1turn);
  }
}
@keyframes vSelectSpinner {
  0% {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(1turn);
  }
}
.vs__fade-enter-active,
.vs__fade-leave-active {
  pointer-events: none;
  transition: opacity var(--vs-transition-duration) var(--vs-transition-timing-function);
}

.vs__fade-enter,
.vs__fade-leave-to {
  opacity: 0;
}

:root {
  --vs-disabled-bg: var(--vs-state-disabled-bg);
  --vs-disabled-color: var(--vs-state-disabled-color);
  --vs-disabled-cursor: var(--vs-state-disabled-cursor) ;
}

.vs--disabled .vs__clear,
.vs--disabled .vs__dropdown-toggle,
.vs--disabled .vs__open-indicator,
.vs--disabled .vs__search,
.vs--disabled .vs__selected {
  background-color: var(--vs-disabled-bg);
  cursor: var(--vs-disabled-cursor);
}

.v-select[dir=rtl] .vs__actions {
  padding: 0 3px 0 6px;
}

.v-select[dir=rtl] .vs__clear {
  margin-left: 6px;
  margin-right: 0;
}

.v-select[dir=rtl] .vs__deselect {
  margin-left: 0;
  margin-right: 2px;
}

.v-select[dir=rtl] .vs__dropdown-menu {
  text-align: right;
}

.vs__dropdown-toggle {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: var(--vs-search-input-bg);
  border: var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);
  border-radius: var(--vs-border-radius);
  display: flex;
  padding: 0 0 4px;
  white-space: normal;
}

.vs__selected-options {
  display: flex;
  flex-basis: 100%;
  flex-grow: 1;
  flex-wrap: wrap;
  padding: 0 2px;
  position: relative;
}

.vs__actions {
  align-items: center;
  display: flex;
  padding: var(--vs-actions-padding);
}

.vs--searchable .vs__dropdown-toggle {
  cursor: text;
}

.vs--unsearchable .vs__dropdown-toggle {
  cursor: pointer;
}

.vs--open .vs__dropdown-toggle {
  border-bottom-color: transparent;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.vs__open-indicator {
  fill: var(--vs-controls-color);
  transform: scale(var(--vs-controls-size));
  transition: transform var(--vs-transition-duration) var(--vs-transition-timing-function);
  transition-timing-function: var(--vs-transition-timing-function);
}

.vs--open .vs__open-indicator {
  transform: rotate(180deg) scale(var(--vs-controls-size));
}

.vs--loading .vs__open-indicator {
  opacity: 0;
}

.vs__clear {
  fill: var(--vs-controls-color);
  background-color: transparent;
  border: 0;
  cursor: pointer;
  margin-right: 8px;
  padding: 0;
}

.vs__dropdown-menu {
  background: var(--vs-dropdown-bg);
  border: var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);
  border-radius: 0 0 var(--vs-border-radius) var(--vs-border-radius);
  border-top-style: none;
  box-shadow: var(--vs-dropdown-box-shadow);
  box-sizing: border-box;
  color: var(--vs-dropdown-color);
  display: block;
  left: 0;
  list-style: none;
  margin: 0;
  max-height: var(--vs-dropdown-max-height);
  min-width: var(--vs-dropdown-min-width);
  overflow-y: auto;
  padding: 5px 0;
  position: absolute;
  text-align: left;
  top: calc(100% - var(--vs-border-width));
  width: 100%;
  z-index: var(--vs-dropdown-z-index);
}

.vs__no-options {
  text-align: center;
}

.vs__dropdown-option {
  clear: both;
  color: var(--vs-dropdown-option-color);
  cursor: pointer;
  display: block;
  line-height: 1.42857143;
  padding: var(--vs-dropdown-option-padding);
  white-space: nowrap;
}

.vs__dropdown-option--highlight {
  background: var(--vs-dropdown-option--active-bg);
  color: var(--vs-dropdown-option--active-color);
}

.vs__dropdown-option--deselect {
  background: var(--vs-dropdown-option--deselect-bg);
  color: var(--vs-dropdown-option--deselect-color);
}

.vs__dropdown-option--disabled {
  background: var(--vs-state-disabled-bg);
  color: var(--vs-state-disabled-color);
  cursor: var(--vs-state-disabled-cursor);
}

.vs__selected {
  align-items: center;
  background-color: var(--vs-selected-bg);
  border: var(--vs-selected-border-width) var(--vs-selected-border-style) var(--vs-selected-border-color);
  border-radius: var(--vs-border-radius);
  color: var(--vs-selected-color);
  display: flex;
  line-height: var(--vs-line-height);
  margin: 4px 2px 0;
  padding: 0 0.25em;
  z-index: 0;
}

.vs__deselect {
  fill: var(--vs-controls-color);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: none;
  border: 0;
  cursor: pointer;
  display: inline-flex;
  margin-left: 4px;
  padding: 0;
  text-shadow: var(--vs-controls--deselect-text-shadow);
}

.vs--single .vs__selected {
  background-color: transparent;
  border-color: transparent;
}

.vs--single.vs--loading .vs__selected,
.vs--single.vs--open .vs__selected {
  opacity: 0.4;
  position: absolute;
}

.vs--single.vs--searching .vs__selected {
  display: none;
}

.vs__search::-webkit-search-cancel-button {
  display: none;
}

.vs__search::-ms-clear,
.vs__search::-webkit-search-decoration,
.vs__search::-webkit-search-results-button,
.vs__search::-webkit-search-results-decoration {
  display: none;
}

.vs__search,
.vs__search:focus {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: none;
  border: 1px solid transparent;
  border-left: none;
  box-shadow: none;
  color: var(--vs-search-input-color);
  flex-grow: 1;
  font-size: var(--vs-font-size);
  line-height: var(--vs-line-height);
  margin: 4px 0 0;
  max-width: 100%;
  outline: none;
  padding: 0 7px;
  width: 0;
  z-index: 1;
}

.vs__search::-moz-placeholder {
  color: var(--vs-search-input-placeholder-color);
}

.vs__search:-ms-input-placeholder {
  color: var(--vs-search-input-placeholder-color);
}

.vs__search::placeholder {
  color: var(--vs-search-input-placeholder-color);
}

.vs--unsearchable .vs__search {
  opacity: 1;
}

.vs--unsearchable:not(.vs--disabled) .vs__search {
  cursor: pointer;
}

.vs--single.vs--searching:not(.vs--open):not(.vs--loading) .vs__search {
  opacity: 0.2;
}

.vs__spinner {
  align-self: center;
  -webkit-animation: vSelectSpinner 1.1s linear infinite;
  animation: vSelectSpinner 1.1s linear infinite;
  border: 0.9em solid hsla(0, 0%, 39%, 0.1);
  border-left-color: rgba(60, 60, 60, 0.45);
  font-size: 5px;
  opacity: 0;
  overflow: hidden;
  text-indent: -9999em;
  transform: translateZ(0) scale(var(--vs-controls--spinner-size, var(--vs-controls-size)));
  transition: opacity 0.1s;
}

.vs__spinner,
.vs__spinner:after {
  border-radius: 50%;
  height: 5em;
  transform: scale(var(--vs-controls--spinner-size, var(--vs-controls-size)));
  width: 5em;
}

.vs--loading .vs__spinner {
  opacity: 1;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1vZHVsZXMvdjEvdHlwb2dyYXBoeS5zY3NzIiwicGFydGlhbHMvX2Zsb3dlZGl0b3Iuc2NzcyIsIm1vZHVsZXMvdjEvY29sb3JzLnNjc3MiLCJjb21wb25lbnRzL3YyL2Rlc2lnbi10b2tlbnMvX2Rlc2lnbi10b2tlbnMuc2NzcyIsImNvbXBvbmVudHMvdjIvb3ZlcmxheS1zaGVsbC9fb3ZlcmxheS1zaGVsbC5zY3NzIiwiY29tcG9uZW50cy92MS9idXR0b25zLnNjc3MiLCJjb21wb25lbnRzL3YxL2lucHV0LnNjc3MiLCJjb21wb25lbnRzL3YxL2xhYmVscy5zY3NzIiwiY29tcG9uZW50cy92MS9iYWRnZXMuc2NzcyIsImNvbXBvbmVudHMvdjEvdGFncy5zY3NzIiwiY29tcG9uZW50cy92MS9zaWRlYmFyLnNjc3MiLCJjb21wb25lbnRzL3YxL2Ryb3Bkb3duLnNjc3MiLCJjb21wb25lbnRzL3YxL2RpYWxvZy5zY3NzIiwiY29tcG9uZW50cy92MS9uYXZpZ2F0aW9uYnV0dG9uLnNjc3MiLCJjb21wb25lbnRzL3YxL21vZGFsLnNjc3MiLCJjb21wb25lbnRzL3YxL2NhcmQuc2NzcyIsImNvbXBvbmVudHMvdjEvdW5pdFR5cGUuc2NzcyIsImNvbXBvbmVudHMvdjEvbWVudUxhYmVsLnNjc3MiLCJjb21wb25lbnRzL3YxL3NlYXJjaGJhci5zY3NzIiwiY29tcG9uZW50cy92MS9jb2x1bW4uc2NzcyIsImNvbXBvbmVudHMvdjEvY2FsZW5kZXIvam9iLWNhcmQuc2NzcyIsImNvbXBvbmVudHMvdjEvY2FsZW5kZXIvZHJvcGRvd25fbWVudS5zY3NzIiwiY29tcG9uZW50cy92MS9jYWxlbmRlci90b2dnbGUuc2NzcyIsImNvbXBvbmVudHMvdjEvY2FsZW5kZXIvZHVlLWRhdGUuc2NzcyIsImNvbXBvbmVudHMvdjEvdG9vbHRpcC5zY3NzIiwiY29tcG9uZW50cy92MS9jaGVja2JveC5zY3NzIiwiY29tcG9uZW50cy92MS9yYWRpb0J1dHRvbi5zY3NzIiwiY29tcG9uZW50cy92MS9tZW51SXRlbS5zY3NzIiwiY29tcG9uZW50cy92MS9hdmF0YXIuc2NzcyIsImNvbXBvbmVudHMvdjIvYWNjb3VudC1jYXJkL19hY2NvdW50LWNhcmQuc2NzcyIsImNvbXBvbmVudHMvdjIvYWN0aW9uLWJhci9fYWN0aW9uLWJhci5zY3NzIiwiY29tcG9uZW50cy92Mi9hY3Rpdml0eS1jYXJkL19hY3Rpdml0eS1jYXJkLnNjc3MiLCJjb21wb25lbnRzL3YyL2FjdGl2aXR5LWljb24vX2FjdGl2aXR5LWljb24uc2NzcyIsImNvbXBvbmVudHMvdjIvYWN0aXZpdHktaWNvbi1waWNrZXIvX2FjdGl2aXR5LWljb24tcGlja2VyLnNjc3MiLCJjb21wb25lbnRzL3YyL2FjdGl2aXR5LWljb24tcGlja2VyLW92ZXJsYXkvX2FjdGl2aXR5LWljb24tcGlja2VyLW92ZXJsYXkuc2NzcyIsImNvbXBvbmVudHMvdjIvYWN0aXZpdHktcm93L19hY3Rpdml0eS1yb3cuc2NzcyIsImNvbXBvbmVudHMvdjIvYWdlbmRhLWxpc3QvX2FnZW5kYS1saXN0LnNjc3MiLCJjb21wb25lbnRzL3YyL2FsZXJ0L19hbGVydC5zY3NzIiwiY29tcG9uZW50cy92Mi9hbnN3ZXItb3B0aW9uL19hbnN3ZXItb3B0aW9uLnNjc3MiLCJjb21wb25lbnRzL3YyL2Fuc3dlci1idXR0b24vX2Fuc3dlci1idXR0b24uc2NzcyIsImNvbXBvbmVudHMvdjIvYXZhdGFyL19hdmF0YXIuc2NzcyIsImNvbXBvbmVudHMvdjIvYXZhdGFyLXN0YWNrL19hdmF0YXItc3RhY2suc2NzcyIsImNvbXBvbmVudHMvdjIvYmFja2dyb3VuZC1waWNrZXIvX2JhY2tncm91bmQtcGlja2VyLnNjc3MiLCJjb21wb25lbnRzL3YyL2JhdHRsZS1iYXIvX2JhdHRsZS1iYXIuc2NzcyIsImNvbXBvbmVudHMvdjIvYm90dG9tLXNoZWV0L19ib3R0b20tc2hlZXQuc2NzcyIsImNvbXBvbmVudHMvdjIvYm90dG9tLXNoZWV0LWJ1dHRvbi9fYm90dG9tLXNoZWV0LWJ1dHRvbi5zY3NzIiwiY29tcG9uZW50cy92Mi9wb3BvdmVyL19wb3BvdmVyLnNjc3MiLCJjb21wb25lbnRzL3YyL2JyZWFkY3J1bWIvX2JyZWFkY3J1bWIuc2NzcyIsImNvbXBvbmVudHMvdjIvYnV0dG9uL19idXR0b24uc2NzcyIsImNvbXBvbmVudHMvdjIvY2FsZW5kYXItc2VydmljZS1idXR0b24vX2NhbGVuZGFyLXNlcnZpY2UtYnV0dG9uLnNjc3MiLCJjb21wb25lbnRzL3YyL2NlbGVicmF0aW9uL19jZWxlYnJhdGlvbi5zY3NzIiwiY29tcG9uZW50cy92Mi9wYXJ0eS1zY2VuZS9fcGFydHktc2NlbmUuc2NzcyIsImNvbXBvbmVudHMvdjIvc2NvcmUtY291bnQvX3Njb3JlLWNvdW50LnNjc3MiLCJjb21wb25lbnRzL3YyL2NoZWNrYm94L19jaGVja2JveC5zY3NzIiwiY29tcG9uZW50cy92Mi9jb2xvci1waWNrZXIvX2NvbG9yLXBpY2tlci5zY3NzIiwiY29tcG9uZW50cy92Mi9jb2xvci1wYW5lbC9fY29sb3ItcGFuZWwuc2NzcyIsImNvbXBvbmVudHMvdjIvZGF0ZS1waWNrZXIvX2RhdGUtcGlja2VyLnNjc3MiLCJjb21wb25lbnRzL3YyL2RpdmlkZXIvX2RpdmlkZXIuc2NzcyIsImNvbXBvbmVudHMvdjIvZG9jdW1lbnQtdmlld2VyL19kb2N1bWVudC12aWV3ZXIuc2NzcyIsImNvbXBvbmVudHMvdjIvZHJvcC16b25lL19kcm9wLXpvbmUuc2NzcyIsImNvbXBvbmVudHMvdjIvZWRpdC1mcmFtZS9fZWRpdC1mcmFtZS5zY3NzIiwiY29tcG9uZW50cy92Mi9lbW9qaS1zaGVldC9fZW1vamktc2hlZXQuc2NzcyIsImNvbXBvbmVudHMvdjIvZW1wdHktc3RhdGUvX2VtcHR5LXN0YXRlLnNjc3MiLCJjb21wb25lbnRzL3YyL2V2ZW50LWNhcmQvX2V2ZW50LWNhcmQuc2NzcyIsImNvbXBvbmVudHMvdjIvZXhwb3J0LW1vZGFsL19leHBvcnQtbW9kYWwuc2NzcyIsImNvbXBvbmVudHMvdjIvbW9udGgtZ3JpZC9fbW9udGgtZ3JpZC5zY3NzIiwiY29tcG9uZW50cy92Mi9tb250aC1zdHJpcC9fbW9udGgtc3RyaXAuc2NzcyIsImNvbXBvbmVudHMvdjIvdGltZS1ncmlkL190aW1lLWdyaWQuc2NzcyIsImNvbXBvbmVudHMvdjIvdGltZS1waWNrZXIvX3RpbWUtcGlja2VyLnNjc3MiLCJjb21wb25lbnRzL3YyL3RpbWUtc2VsZWN0L190aW1lLXNlbGVjdC5zY3NzIiwiY29tcG9uZW50cy92Mi9xdWljay1ldmVudC9fcXVpY2stZXZlbnQuc2NzcyIsImNvbXBvbmVudHMvdjIvZXZlbnQtc2hlZXQvX2V2ZW50LXNoZWV0LnNjc3MiLCJjb21wb25lbnRzL3YyL2Zhdm9yaXRlLWJ1dHRvbi9fZmF2b3JpdGUtYnV0dG9uLnNjc3MiLCJjb21wb25lbnRzL3YyL2ZpbGUtaWNvbi9fZmlsZS1pY29uLnNjc3MiLCJjb21wb25lbnRzL3YyL2ZvbGRlci1pY29uL19mb2xkZXItaWNvbi5zY3NzIiwiY29tcG9uZW50cy92Mi9zdGF0dXMtYmFkZ2UvX3N0YXR1cy1iYWRnZS5zY3NzIiwiY29tcG9uZW50cy92Mi9zdGF0dXMtdHJhY2svX3N0YXR1cy10cmFjay5zY3NzIiwiY29tcG9uZW50cy92Mi9maWxlLXVwbG9hZC9fZmlsZS11cGxvYWQuc2NzcyIsImNvbXBvbmVudHMvdjIvZmlsdGVyLXNoZWV0L19maWx0ZXItc2hlZXQuc2NzcyIsImNvbXBvbmVudHMvdjIvY29tcG9zaXRpb24tYmFyL19jb21wb3NpdGlvbi1iYXIuc2NzcyIsImNvbXBvbmVudHMvdjIvY29udGV4dC1tZW51L19jb250ZXh0LW1lbnUuc2NzcyIsImNvbXBvbmVudHMvdjIvZm9ybS1jYXJkL19mb3JtLWNhcmQuc2NzcyIsImNvbXBvbmVudHMvdjIvZm9ybWF0LXJ1bGVzL19mb3JtYXQtcnVsZXMuc2NzcyIsImNvbXBvbmVudHMvdjIvZm9ybXVsYS1lZGl0b3IvX2Zvcm11bGEtZWRpdG9yLnNjc3MiLCJjb21wb25lbnRzL3YyL2dpZi1zaGVldC9fZ2lmLXNoZWV0LnNjc3MiLCJjb21wb25lbnRzL3YyL2dyaWQtdGlsZS9fZ3JpZC10aWxlLnNjc3MiLCJjb21wb25lbnRzL3YyL2h1Yi10aWxlL19odWItdGlsZS5zY3NzIiwiY29tcG9uZW50cy92Mi9pY29uLWZpZWxkL19pY29uLWZpZWxkLnNjc3MiLCJjb21wb25lbnRzL3YyL2hpc3RvcnktaXRlbS9faGlzdG9yeS1pdGVtLnNjc3MiLCJjb21wb25lbnRzL3YyL2ljb24vX2ljb24uc2NzcyIsImNvbXBvbmVudHMvdjIvaWNvbi1idG4vX2ljb24tYnRuLnNjc3MiLCJjb21wb25lbnRzL3YyL2lsbHVzdHJhdGlvbi9faWxsdXN0cmF0aW9uLnNjc3MiLCJjb21wb25lbnRzL3YyL2luZm8tY2FyZC9faW5mby1jYXJkLnNjc3MiLCJjb21wb25lbnRzL3YyL2ltYWdlLWNyb3AvX2ltYWdlLWNyb3Auc2NzcyIsImNvbXBvbmVudHMvdjIvdHlwb2dyYXBoeS9fdHlwb2dyYXBoeS5zY3NzIiwiY29tcG9uZW50cy92Mi9pbmJveC1tZXNzYWdlL19pbmJveC1tZXNzYWdlLnNjc3MiLCJjb21wb25lbnRzL3YyL2lucHV0L19pbnB1dC5zY3NzIiwiY29tcG9uZW50cy92Mi9sYWJlbC1jaXJjbGUvX2xhYmVsLWNpcmNsZS5zY3NzIiwiY29tcG9uZW50cy92Mi9sb2dvL19sb2dvLnNjc3MiLCJjb21wb25lbnRzL3YyL21lbWJlcnMvX21lbWJlcnMuc2NzcyIsImNvbXBvbmVudHMvdjIvbWVudS9fbWVudS5zY3NzIiwiY29tcG9uZW50cy92Mi9tZW51LWl0ZW0vX21lbnUtaXRlbS5zY3NzIiwiY29tcG9uZW50cy92Mi9tb2RhbC9fbW9kYWwuc2NzcyIsImNvbXBvbmVudHMvdjIvbmF2LWl0ZW0vX25hdi1pdGVtLnNjc3MiLCJjb21wb25lbnRzL3YyL25hdi1yYWlsL19uYXYtcmFpbC5zY3NzIiwiY29tcG9uZW50cy92Mi9ub2RlLXBpY2tlci9fbm9kZS1waWNrZXIuc2NzcyIsImNvbXBvbmVudHMvdjIvbm92YS9fbm92YS5zY3NzIiwiY29tcG9uZW50cy92Mi9ub3ZhLWxhdW5jaGVyL19ub3ZhLWxhdW5jaGVyLnNjc3MiLCJjb21wb25lbnRzL3YyL25vdmEtbWVzc2FnZS9fbm92YS1tZXNzYWdlLnNjc3MiLCJjb21wb25lbnRzL3YyL251bWJlci1pbmRpY2F0b3ItYmFkZ2UvX251bWJlci1pbmRpY2F0b3ItYmFkZ2Uuc2NzcyIsImNvbXBvbmVudHMvdjIvcGhvdG8tZ2FsbGVyeS9fcGhvdG8tZ2FsbGVyeS5zY3NzIiwiY29tcG9uZW50cy92Mi9waG90by10aWxlL19waG90by10aWxlLnNjc3MiLCJjb21wb25lbnRzL3YyL3BpY2tlci10aWxlL19waWNrZXItdGlsZS5zY3NzIiwiY29tcG9uZW50cy92Mi9waWNrZXItcm93L19waWNrZXItcm93LnNjc3MiLCJjb21wb25lbnRzL3YyL3BsYWNlaG9sZGVyLWltYWdlL19wbGFjZWhvbGRlci1pbWFnZS5zY3NzIiwiY29tcG9uZW50cy92Mi9wcm9ncmVzcy9fcHJvZ3Jlc3Muc2NzcyIsImNvbXBvbmVudHMvdjIvcHJvamVjdC1jYXJkL19wcm9qZWN0LWNhcmQuc2NzcyIsImNvbXBvbmVudHMvdjIvcHVsc2UtY2FyZC9fcHVsc2UtY2FyZC5zY3NzIiwiY29tcG9uZW50cy92Mi9wdWxzZS1jYW52YXMvX3B1bHNlLWNhbnZhcy5zY3NzIiwiY29tcG9uZW50cy92Mi9wdXNoLW5vdGlmaWNhdGlvbi9fcHVzaC1ub3RpZmljYXRpb24uc2NzcyIsImNvbXBvbmVudHMvdjIvcmFkaW8vX3JhZGlvLnNjc3MiLCJjb21wb25lbnRzL3YyL3JhZGlvLXRpbGUvX3JhZGlvLXRpbGUuc2NzcyIsImNvbXBvbmVudHMvdjIvcmFuZ2Utc2xpZGVyL19yYW5nZS1zbGlkZXIuc2NzcyIsImNvbXBvbmVudHMvdjIvcmVjaXBpZW50LXBpY2tlci9fcmVjaXBpZW50LXBpY2tlci5zY3NzIiwibW9kdWxlcy9fbWl4aW5zLnNjc3MiLCJjb21wb25lbnRzL3YyL3Jlc291cmNlLXRpbWVsaW5lL19yZXNvdXJjZS10aW1lbGluZS5zY3NzIiwiY29tcG9uZW50cy92Mi9yZXZlYWwtc3RhZ2UvX3JldmVhbC1zdGFnZS5zY3NzIiwiY29tcG9uZW50cy92Mi9yb3ctYnRuL19yb3ctYnRuLnNjc3MiLCJjb21wb25lbnRzL3YyL3NlZ21lbnQvX3NlZ21lbnQuc2NzcyIsImNvbXBvbmVudHMvdjIvc2VnbWVudC10aWxlcy9fc2VnbWVudC10aWxlcy5zY3NzIiwiY29tcG9uZW50cy92Mi9zY29yZS1zY2FsZS9fc2NvcmUtc2NhbGUuc2NzcyIsImNvbXBvbmVudHMvdjIvbGlrZXJ0LXNjYWxlL19saWtlcnQtc2NhbGUuc2NzcyIsImNvbXBvbmVudHMvdjIvc21pbGV5L19zbWlsZXkuc2NzcyIsImNvbXBvbmVudHMvdjIvc21pbGV5LXBpY2tlci9fc21pbGV5LXBpY2tlci5zY3NzIiwiY29tcG9uZW50cy92Mi9zZWxlY3QvX3NlbGVjdC5zY3NzIiwiY29tcG9uZW50cy92Mi9zaGFyZS9fc2hhcmUuc2NzcyIsImNvbXBvbmVudHMvdjIvc2hhcmUtbGluay9fc2hhcmUtbGluay5zY3NzIiwiY29tcG9uZW50cy92Mi9zaWRlYmFyL19zaWRlYmFyLnNjc3MiLCJjb21wb25lbnRzL3YyL3NsaWRlci9fc2xpZGVyLnNjc3MiLCJjb21wb25lbnRzL3YyL3NrZWxldG9uL19za2VsZXRvbi5zY3NzIiwiY29tcG9uZW50cy92Mi9za2VsZXRvbi1ib25lL19za2VsZXRvbi1ib25lLnNjc3MiLCJjb21wb25lbnRzL3YyL3NrZWxldG9uLWluYm94LXJvdy9fc2tlbGV0b24taW5ib3gtcm93LnNjc3MiLCJjb21wb25lbnRzL3YyL3NrZWxldG9uLXByb2plY3QtY2FyZC9fc2tlbGV0b24tcHJvamVjdC1jYXJkLnNjc3MiLCJjb21wb25lbnRzL3YyL3NvdXJjZS1waWxsL19zb3VyY2UtcGlsbC5zY3NzIiwiY29tcG9uZW50cy92Mi9zdGFyLXJhdGluZy9fc3Rhci1yYXRpbmcuc2NzcyIsImNvbXBvbmVudHMvdjIvc3RhdC1jYXJkL19zdGF0LWNhcmQuc2NzcyIsImNvbXBvbmVudHMvdjIvc3RpY2tlci1zaGVldC9fc3RpY2tlci1zaGVldC5zY3NzIiwiY29tcG9uZW50cy92Mi9zdWdnZXN0aW9uLWNoaXAvX3N1Z2dlc3Rpb24tY2hpcC5zY3NzIiwiY29tcG9uZW50cy92Mi90YWJsZS90YWJsZS5zY3NzIiwiY29tcG9uZW50cy92Mi90YWJsZS13cmFwcGVyL190YWJsZS13cmFwcGVyLnNjc3MiLCJjb21wb25lbnRzL3YyL3RhZy9fdGFnLnNjc3MiLCJjb21wb25lbnRzL3YyL3Rhc2tsaXN0LWNhcmQvX3Rhc2tsaXN0LWNhcmQuc2NzcyIsImNvbXBvbmVudHMvdjIvdGV4dC1saW5rL190ZXh0LWxpbmsuc2NzcyIsImNvbXBvbmVudHMvdjIvdGltZXN0YW1wL190aW1lc3RhbXAuc2NzcyIsImNvbXBvbmVudHMvdjIvdG9hc3QvX3RvYXN0LnNjc3MiLCJjb21wb25lbnRzL3YyL3RvZ2dsZS9fdG9nZ2xlLnNjc3MiLCJjb21wb25lbnRzL3YyL3Rvb2xiYXItYWN0aW9uLWJ0bi9fYWN0aW9uLWJ0bi5zY3NzIiwiY29tcG9uZW50cy92Mi90b29sdGlwL190b29sdGlwLnNjc3MiLCJjb21wb25lbnRzL3YyL3RvdWNoLWJ1dHRvbi9fdG91Y2gtYnV0dG9uLnNjc3MiLCJjb21wb25lbnRzL3YyL3RyYW5zbGF0aW9uLXBhbmVsL190cmFuc2xhdGlvbi1wYW5lbC5zY3NzIiwiY29tcG9uZW50cy92Mi90cmFuc2xhdGlvbi1tb2RhbC9fdHJhbnNsYXRpb24tbW9kYWwuc2NzcyIsImNvbXBvbmVudHMvdjIvdHJlZS1pdGVtL190cmVlLWl0ZW0uc2NzcyIsImNvbXBvbmVudHMvdjIvdW5pdC1pbnB1dC1yb3cvX3VuaXQtaW5wdXQtcm93LnNjc3MiLCJjb21wb25lbnRzL3YyL3VwZGF0ZS1yb3cvX3VwZGF0ZS1yb3cuc2NzcyIsImNvbXBvbmVudHMvdjIvd2l6YXJkLW1vZGFsL193aXphcmQtbW9kYWwuc2NzcyIsImNvbXBvbmVudHMvdjIvdW5pdC10eXBlL191bml0LXR5cGUuc2NzcyIsImNvbXBvbmVudHMvdjIvZGF0ZS1jYXJvdXNlbC9fZGF0ZS1jYXJvdXNlbC5zY3NzIiwiY29tcG9uZW50cy92Mi91bml0LWNhcmQvX3VuaXQtY2FyZC5zY3NzIiwiY29tcG9uZW50cy92Mi91bml0LWNvbnRleHQvX3VuaXQtY29udGV4dC5zY3NzIiwiY29tcG9uZW50cy92Mi9zdW1tYXJ5LWJhZGdlL19zdW1tYXJ5LWJhZGdlLnNjc3MiLCJjb21wb25lbnRzL3YyL3B3YS1tYWluLW1lbnUtaXRlbS9fcHdhLW1haW4tbWVudS1pdGVtLnNjc3MiLCJjb21wb25lbnRzL3YyL2JvdHRvbS1uYXYvYm90dG9tLW5hdi5zY3NzIiwiY29tcG9uZW50cy92Mi9wdWxsLXJlZnJlc2gvX3B1bGwtcmVmcmVzaC5zY3NzIiwiY29tcG9uZW50cy92Mi90YWItYmFyL190YWItYmFyLnNjc3MiLCJjb21wb25lbnRzL3YyL2FwcC1oZWFkZXIvYXBwLWhlYWRlci5zY3NzIiwiY29tcG9uZW50cy92Mi9zd2lwZS1yb3cvX3N3aXBlLXJvdy5zY3NzIiwiY29tcG9uZW50cy92Mi9saXN0LXJvdy9fbGlzdC1yb3cuc2NzcyIsImNvbXBvbmVudHMvdjIvc2VjdGlvbi1jYXJkL19zZWN0aW9uLWNhcmQuc2NzcyIsImNvbXBvbmVudHMvdjIvc2VhcmNoLW92ZXJsYXkvX3NlYXJjaC1vdmVybGF5LnNjc3MiLCJjb21wb25lbnRzL3YyL3NlYXJjaC1maWx0ZXItcGFuZWwvX3NlYXJjaC1maWx0ZXItcGFuZWwuc2NzcyIsImNvbXBvbmVudHMvdjIvdGFza2xpc3QtcnVuLWNhcmQvX3Rhc2tsaXN0LXJ1bi1jYXJkLnNjc3MiLCJjb21wb25lbnRzL3YyL3NlbGVjdGlvbi1iYXIvX3NlbGVjdGlvbi1iYXIuc2NzcyIsImNvbXBvbmVudHMvdjIvbWVzc2FnZS1oZWFkZXIvX21lc3NhZ2UtaGVhZGVyLnNjc3MiLCJjb21wb25lbnRzL3YyL2Fuc3dlci1yb3cvX2Fuc3dlci1yb3cuc2NzcyIsImNvbXBvbmVudHMvdjIvbWVzc2FnZS1hY3Rpb25iYXIvX21lc3NhZ2UtYWN0aW9uYmFyLnNjc3MiLCJjb21wb25lbnRzL3YyL3RpbWVsaW5lLW1hcmtlci9fdGltZWxpbmUtbWFya2VyLnNjc3MiLCJjb21wb25lbnRzL3YyL2xvdHRpZS9fbG90dGllLnNjc3MiLCJwYXJ0aWFscy92MS9iYXNlLnNjc3MiLCJwYXJ0aWFscy92MS9vdmVydmlldy9vdmVydmlldy5zY3NzIiwicGFydGlhbHMvdjEvYXV0b21ldHJpY3Muc2NzcyIsIm1vZHVsZXMvX2NvbG9ycy5zY3NzIiwicGFydGlhbHMvdjEvX2Rtcy1pZG9jLnNjc3MiLCJwYXJ0aWFscy92MS9fYnJpZWZpbmctZWRpdG9yLnNjc3MiLCJwYXJ0aWFscy92MS9fYmxvY2stc3RyaXAuc2NzcyIsInBhcnRpYWxzL3YxL190YXNrbGlzdC1zZXR0aW5ncy5zY3NzIiwicGFydGlhbHMvdjEvX3dlcmt2b29ycmFhZC12Mi5zY3NzIiwicGFydGlhbHMvdjEvX2RldGFpbC1wYWdlLnNjc3MiLCJwYXJ0aWFscy92MS9fcHVsc2Uuc2NzcyIsInBhcnRpYWxzL19kZXYteHJheS5zY3NzIiwicGFydGlhbHMvX2Rldi10b2tlbnMuc2NzcyIsInBhcnRpYWxzL19kZXYtZGFyay1tb2RlLnNjc3MiLCJwYXJ0aWFscy9faW5ib3guc2NzcyIsInBhZ2VzL19zdXJ2ZXlfdmlldy5zY3NzIiwicGFnZXMvX2hvbWUuc2NzcyIsInBhZ2VzL19vdmVydmlldy5zY3NzIiwicGFnZXMvX3NldHRpbmdzX2h1Yi5zY3NzIiwidmVuZG9yL19tYXRlcmlhbGRlc2lnbmljb25zLnNjc3MiLCJ2ZW5kb3IvX3Z1ZS1tdWx0aXNlbGVjdC5zY3NzIiwiVXNlcnMva2ltYmVybGV5ZGVydWl0ZXIvU2l0ZXMvcWRuYXYyL25vZGVfbW9kdWxlcy9jcm9wcGVyanMvc3JjL2Nzcy9jcm9wcGVyLnNjc3MiLCJ2ZW5kb3IvX2Nyb3BwZXIuc2NzcyIsInZlbmRvci9fdnVlLXNlbGVjdC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFHUTtBQ0RBO0FEUVI7RUFDSTtFQUNBO0VBQ0EsT0VpQ1M7OztBQzFDYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFjQTtBQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQUE7QUFBQTtFQUdBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7QUFBQTtBQUFBO0FBQUE7RUFJQTtBQUVBO0FBQUE7QUFBQTtFQUdBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFPQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFTQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFVQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUVBO0VBQ0E7QUFFQTtBQUFBO0FBQUE7QUFJQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFNQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU1BO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBT0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtFQUlBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBT0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBZUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7RUFDQTtBQUFBO0FBR0E7RUFDQTtFQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFBQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBR0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUFBO0FBQUE7RUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFFQTtBQUFBO0FBQUE7QUFBQTtFQUlBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7RUFDQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0VBR0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtFQUNJO0lBQVc7O0VBQ1g7SUFBVzs7RUFDWDtJQUFnQjs7RUFDaEI7SUFBVzs7O0FBRWY7RUFDSTs7O0FBRUo7RUFDSTtJQUFpQjs7O0FBR3JCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE0Q0E7RUFDSTtFQUNBO0VBR0E7OztBQUdKO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFFQTtFQUNJOzs7QUFHSjtBQUNBO0VBQWtEOzs7QUFDbEQ7RUFBeUQ7OztBQUV6RDtBQUFBO0FBRUE7RUFBNEQ7OztBQUU1RDtFQUNJO0FBQUE7SUFDc0I7OztBQUcxQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYUE7RUFDSTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0VBR0E7QUFDQTtBQUFBO0VBRUE7OztBQUVKO0VBQ0k7QUFDQTtBQUFBO0FBQUE7RUFHQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0VBSUE7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0VBR0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0FBQUE7QUFHQTtFQUF1Qzs7O0FBQ3ZDO0VBQXVDOzs7QUFDdkM7RUFBdUM7OztBQUN2QztFQUE2Qzs7O0FBRTdDO0FBQ0E7RUFDSTtBQUFBO0lBQ29COzs7QUN4cUJ4QjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7RUFFc0I7OztBQUd0QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUtBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFLQTtFQUNBOzs7QUFLSjtFQUFzQjs7O0FBRXRCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBT0o7RUFDSTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFJQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUFtQjs7O0FBS25CO0VBQW9COzs7QUFNcEI7RUFBaUM7RUFBWTs7O0FBQzdDO0VBQXVDOzs7QUFDdkM7RUFBd0M7OztBQUN4QztFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtFQUNxRDs7O0FBQ3JEO0VBQTZDOzs7QUFFN0M7RUFDSTtJQUFPOztFQUNQO0lBQU87OztBQUdYO0VBQ0k7SUFBTztJQUFZOztFQUNuQjtJQUFPO0lBQVk7OztBQUd2QjtFQUNJO0FBQUE7SUFDYzs7O0FBTWxCO0FBQUE7QUFBQTtBQUFBO0VBRzhCOzs7QUFFOUI7QUFBQTtFQUNrQzs7O0FDcElsQztFQUdJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBSUo7RUFDSTs7QUFHSjtFQUVJOztBQUdKO0VBRUk7RUFDQTtFQUNBOztBQUdKO0VBRUk7O0FBS0o7RUFFSTtFQUNBO0VBQ0E7RUFFQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLUjtBQUFBO0FBQUE7QUFBQTtBQUtJO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBRUk7O0FBR0o7RUFFSTtFQUNBOztBQUdKO0VBRUk7O0FBR0o7RUFFSTtFQUNBO0VBQ0E7RUFDQTs7O0FBMUJSO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBRUk7O0FBR0o7RUFFSTtFQUNBOztBQUdKO0VBRUk7O0FBR0o7RUFFSTtFQUNBO0VBQ0E7RUFDQTs7O0FBMUJSO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBRUk7O0FBR0o7RUFFSTtFQUNBOztBQUdKO0VBRUk7O0FBR0o7RUFFSTtFQUNBO0VBQ0E7RUFDQTs7O0FBMUJSO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBRUk7O0FBR0o7RUFFSTtFQUNBOztBQUdKO0VBRUk7O0FBR0o7RUFFSTtFQUNBO0VBQ0E7RUFDQTs7O0FBMUJSO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBRUk7O0FBR0o7RUFFSTtFQUNBOztBQUdKO0VBRUk7O0FBR0o7RUFFSTtFQUNBO0VBQ0E7RUFDQTs7O0FBMUJSO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBRUk7O0FBR0o7RUFFSTtFQUNBOztBQUdKO0VBRUk7O0FBR0o7RUFFSTtFQUNBO0VBQ0E7RUFDQTs7O0FBMUJSO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBRUk7O0FBR0o7RUFFSTtFQUNBOztBQUdKO0VBRUk7O0FBR0o7RUFFSTtFQUNBO0VBQ0E7RUFDQTs7O0FBMUJSO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBRUk7O0FBR0o7RUFFSTtFQUNBOztBQUdKO0VBRUk7O0FBR0o7RUFFSTtFQUNBO0VBQ0E7RUFDQTs7O0FDcE1aO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7QUFFQTtFQUNJOzs7QUFJUjtBQUFBO0VBRUk7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0VBRUk7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUN4S0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTs7QUFFSjtFQUNJOzs7QUFLSjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTs7QUFFQTtFQUNJOztBQUlSO0VBQ0k7OztBQWJSO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTs7O0FBYlI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBRUE7RUFDSTs7QUFJUjtFQUNJOzs7QUFiUjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTs7QUFFQTtFQUNJOztBQUlSO0VBQ0k7OztBQWJSO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTs7O0FBYlI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBRUE7RUFDSTs7QUFJUjtFQUNJOzs7QUFiUjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTs7QUFFQTtFQUNJOztBQUlSO0VBQ0k7OztBQ2pEWjtFQUNJO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBRUE7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7O0FBSUk7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBTFI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBTFI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBTFI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBTFI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBTFI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7OztBQVFoQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUVBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTs7O0FDM0NSO0VBR0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOzs7QUFOUjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOzs7QUFOUjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOzs7QUFOUjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOzs7QUFOUjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOzs7QUFOUjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOzs7QUFOUjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOzs7QUFOUjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOzs7QUFRWjtFQUNFO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0FBQUE7RUFFRTs7QUFJQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUtGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FDMUpOO0VBQ0ksWVIyQ1M7RVF6Q1Q7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUlKO0VBQ0k7O0FBRUE7RUFDSTs7QUFLUjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0ksWVJsQ0g7O0FRcUNEO0VBQ0ksWVIrRUc7O0FRN0VIO0VBQ0k7O0FBR0o7RUFDSTs7QUFHSjtFQUNJLFlSb0VEOztBUWhFQztFQUNJLE1SdERYOztBUTZEVDtFQUNJOztBQUVBO0VBQ0k7OztBQ3pHUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUlKO0VBQ0k7O0FBR0o7RUFDSTs7QUFHSjtFQUNJOztBQUlSO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUN2RHBCO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUN2Q0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFOzs7QUFJSjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQzs7O0FBS0g7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7O0FBRUE7RUFDRTs7QUFJSjtFQUNFO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7O0FBSUo7RUFDRTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFHSjtFQUNFO0VBQ0E7RUFDQTtFQUVBOztBQUVBO0FBQUE7QUFBQTtFQUdFOztBQUlKO0VBQ0U7RUFDQTs7QUFFQTtFQUNFOztBQUdGO0FBQUE7RUFFRTs7QUFHRjtFQUNFOztBQUtGO0VBQ0U7RUFDQTtFQUNBOztBQUVIO0VBQ0E7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBRUE7RUFDQTtFQUVBOztBQUVBO0VBQ0U7O0FBRUY7RUFDRTs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBOztBQUdKO0VBQ0U7OztBQUlKO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTs7O0FBSUo7QUNqUUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBR0E7RUFDQTs7O0FBSUY7QUFFQTtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQ2pFRjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSTtFQUNJOztBQURKO0VBQ0k7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7O0FBTVo7QUFBQTtFQUVDO0VBQ0E7RUFDQTs7O0FBS0U7RUFDQzs7QUFNRDtFQUNDOztBQUlIO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7O0FBRUQ7RUFDQztFQUNBOzs7QUFHRjtBQUFBO0VBRUM7RUFDQTtFQUNBOzs7QUFFRDtFQUNJO0lBQ0k7OztBQ3hHUjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FDekdSO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0lBQVE7OztBQ2xFVjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0s7RUFDQTs7O0FBRUw7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUMvRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUVFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFFRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQzlKRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBSUY7RUFDRTtFQUNBOzs7QUFHRjtBQUVBO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUlGO0FBQUE7RUFFRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUtGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQ3RIRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFBK0M7OztBQUMvQztFQUErQzs7O0FBQy9DO0VBQStDOzs7QUFFL0M7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQXdCOzs7QUFDeEI7RUFBMkI7RUFBcUI7OztBQUNoRDtFQUEyQjtFQUFjOzs7QUFFekM7RUFDRTtFQUNBOzs7QUFHRjtFQUFpRDs7O0FBQ2pEO0VBQXVEO0VBQWtCOzs7QUFFekU7RUFBbUI7RUFBZ0I7RUFBYTtFQUFlOzs7QUFDL0Q7RUFBaUI7RUFBZ0I7RUFBaUI7RUFBa0I7OztBQUVwRTtFQUNFOzs7QUFHRjtFQUNFO0lBQU87SUFBWTs7RUFDbkI7SUFBSztJQUFZOzs7QUMxRW5CO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQ25FRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFFRjtBQUFBO0VBRUU7OztBQUVGO0FBQUE7RUFFRTs7O0FBRUY7QUFBQTtFQUVFOzs7QUFHRjtBQUFBO0VBRUU7OztBQzFDRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUlGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7QUFBQTtFQUVFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBS0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTs7O0FBSUY7QUFBQTtFQUVFO0VBQ0E7OztBQUlGO0FBQUE7RUFFRTs7O0FBSUY7QUFBQTtFQUVFOzs7QUFJRjtBQUFBO0VBRUU7OztBQzlNRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQSxZQXpCSTtFQTBCSjtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFOztBQUlKO0VBQ0U7O0FBR0Y7RUFDRSxjQWhETTs7QUFtRFI7RUFFRTs7QUFHRjtFQUNFLFlBekRNO0VBMEROLGNBMURNOztBQTZEUjtFQUNFO0VBQ0E7RUFDQTtFQUNBLGtCQTFESTtFQTRESjtFQUNBOztBQUtBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUF6RUU7RUEwRUY7RUFDQTs7QUFLRjtFQUNFLGNBdEZJOztBQXlGTjtFQUNFLFlBekZPO0VBMEZQLGNBM0ZJOztBQXFGTjtFQUNFLGNBcEZFOztBQXVGSjtFQUNFLFlBdkZLO0VBd0ZMLGNBekZFOztBQXFHTjtFQUNFO0VBQ0E7O0FBRUE7RUFDRSxZQXRHUTtFQXVHUixjQXRHWTs7QUF5R2Q7RUFDRSxZQTVHRTs7QUErR0o7RUFDRSxrQkE3R1U7O0FBaUhkO0VBQ0U7OztBQ2hISjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBOztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlBbkNJO0VBb0NKO0VBQ0E7RUFDQTs7QUFDQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUE1Q0U7RUE4Q0Y7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7RUFDRSxjQWxFSzs7QUFxRVA7RUFDRSxZQXRFSztFQXVFTCxjQXZFSzs7QUEwRVA7RUFDRTs7QUFJQTtFQUNFLGNBNUVJOztBQStFTjtFQUNFLFlBaEZJO0VBaUZKLGNBakZJOztBQTJFTjtFQUNFLGNBM0VFOztBQThFSjtFQUNFLFlBL0VFO0VBZ0ZGLGNBaEZFOztBQTRGTjtFQUNFO0VBQ0E7O0FBRUE7RUFDRSxZQS9GUTtFQWdHUixjQS9GWTs7QUFrR2Q7RUFDRSxZQXpHRTtFQTBHRixjQXBHWTs7QUF1R2Q7RUFDRSxZQXZHUztFQXdHVDs7QUFJSjtFQUNFOzs7QUN2SEo7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUNuRUY7RUFDRTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUtKO0VBQWE7RUFBYTtFQUFjOzs7QUFDeEM7RUFBYTtFQUFhO0VBQWM7OztBQUN4QztFQUFhO0VBQWE7RUFBYzs7O0FBQ3hDO0VBQWE7RUFBYTtFQUFjOzs7QUFZdEM7RUFJRSxjQUhTO0VBSVQsWUFISzs7QUFLTDtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBOzs7QUFkSjtFQUlFLGNBSFM7RUFJVCxZQUhLOztBQUtMO0VBQ0U7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7OztBQWRKO0VBSUUsY0FIUztFQUlULFlBSEs7O0FBS0w7RUFDRTtFQUNBOztBQUdGO0VBQ0U7RUFDQTs7O0FBZEo7RUFJRSxjQUhTO0VBSVQsWUFISzs7QUFLTDtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBOzs7QUFkSjtFQUlFLGNBSFM7RUFJVCxZQUhLOztBQUtMO0VBQ0U7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7OztBQWRKO0VBSUUsY0FIUztFQUlULFlBSEs7O0FBS0w7RUFDRTtFQUNBOztBQUdGO0VBQ0U7RUFDQTs7O0FDL0NOO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FDMUVGO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFDSTtFQUVKO0VBQ0E7OztBQUVKO0VBQTBCOzs7QUFFMUI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7RUFFSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7SUFBTztJQUFZOztFQUNuQjtJQUFPO0lBQVk7OztBQUd2QjtBQUFBO0VBRUk7RUFDQTtFQUNBLFlBQ0k7OztBQ3ZEUjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVFGO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtFQUdFOzs7QUFLRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7SUFDRTtJQUNBO0lBQ0E7SUFDQTs7O0FBSUo7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF5QkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFhQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtBQUNBO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtBQUNBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUNBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtFQUVFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0lBQUs7O0VBQ0w7SUFBTTs7RUFDTjtJQUFNOztFQUNOO0lBQU87OztBQUdUO0VBQ0U7OztBQUdGO0VBQ0U7SUFDRTs7O0FBSUo7QUFDQTtFQUNFO0lBQUs7SUFBcUI7O0VBQzFCO0lBQU07SUFBeUI7O0VBQy9CO0lBQU87SUFBcUI7OztBQUc5QjtFQUNFOzs7QUFHRjtFQUNFO0lBQ0U7OztBQUlKO0FBQUE7QUFBQTtBQUdBO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQU1GO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFHQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFDQTtFQUNFO0lBQ0U7SUFDQTtJQUNBOztFQUdGO0lBQ0U7SUFDQTs7RUFHRjtJQUNFO0lBQ0E7OztBQ2hzQko7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQzVDRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtFQUFnQztFQUFlO0VBQXdCO0VBQVU7OztBQUNqRjtBQUFBO0FBQUE7RUFFeUM7OztBQUV6QztFQUNJO0VBQWU7RUFBdUM7OztBQUUxRDtFQUNJO0lBQTBDOzs7QUFHOUM7RUFDSTtFQUFzQjtFQUFxQjtFQUMzQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQWlCO0VBQ2pCOzs7QUFFSjtFQUFnRTtFQUFzQjs7O0FBQ3RGO0VBQ0k7RUFBdUM7RUFBcUM7OztBQUVoRjtFQUFpRDs7O0FBQ2pEO0VBQ0k7RUFBbUM7OztBQUV2QztFQUNJO0VBQW1DO0VBQ25DOzs7QUFFSjtFQUFrRTs7O0FBRWxFO0VBQ0k7RUFBZTtFQUFxQjtFQUNwQzs7O0FBRUo7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQ0k7RUFDQTs7O0FBRUo7QUFDQTtFQUNJOzs7QUFFSjtBQUFBO0FBRUE7RUFDSTs7O0FBRUo7QUFBQTtBQUFBO0FBR0E7RUFDSTtFQUNBOzs7QUFHSjtFQUE2QztFQUFlOzs7QUFFNUQ7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFBVztFQUFpQjtFQUM1QjtFQUFpQzs7O0FBR3JDO0FBQ0E7RUFBaUQ7OztBQUNqRDtFQUNJO0VBQXdDOzs7QUFFNUM7RUFDSTtJQUEyRDs7O0FBRS9EO0VBQ0k7SUFBMkQ7OztBQUUvRDtFQUEyRDs7O0FBQzNEO0VBQWlFOzs7QUFDakU7RUFDSTs7O0FDekdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7RUFBd0M7OztBQUN4QztBQUFBO0FBQUE7RUFFaUQ7OztBQUVqRDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFDSTtFQUVKO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBd0M7OztBQUN4QztFQUNJO0lBQU87SUFBWTs7RUFDbkI7SUFBTztJQUFZOzs7QUFHdkI7RUFDSTtFQUFlO0VBQXFCO0VBQ3BDO0VBQVc7RUFDWDtFQUFpRDs7O0FBRXJEO0VBQ0k7RUFBVztFQUFpQjtFQUFtQjtFQUFrQjs7O0FBRXJFO0VBQXFCOzs7QUFFckI7RUFDSTtFQUFlO0VBQXdCO0VBQ3ZDO0VBQTJCO0VBQWdCOzs7QUFFL0M7RUFDSTtFQUFlO0VBQXFCO0VBQVc7OztBQUVuRDtFQUFzQjtFQUFnQjs7O0FBQ3RDO0VBQ0k7RUFBZ0I7RUFBaUI7RUFBNEI7OztBQUdqRTtFQUNJO0VBQWdCO0VBQ2hCO0VBQWtCO0VBQ2xCO0VBQ0E7RUFBOEM7OztBQUVsRDtFQUF5Qzs7O0FBQ3pDO0VBQ0k7RUFBaUM7OztBQUVyQztFQUFxRDs7O0FBRXJEO0VBQ0k7RUFBZ0I7RUFBYTtFQUFpQjs7O0FBR2xEO0VBQ0k7RUFBb0I7RUFBbUI7OztBQUUzQztFQUNJO0VBQWlCO0VBQWtCO0VBQWdDOzs7QUFFdkU7RUFBeUI7RUFBaUI7OztBQUUxQztFQUNJO0VBQWU7RUFBcUI7RUFBMkI7RUFDL0Q7RUFBb0I7RUFBOEM7OztBQUd0RTtBQUNBO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFRSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUM3TUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTs7O0FBUUo7RUFDSTtFQUNBO0VBQ0E7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSUE7RUFDc0I7O0FBakIxQjtFQW1CSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUEsWUFDSTs7O0FBVVI7QUFBQTtFQUVJO0VBQ0EsWUFDSTs7O0FBSVI7QUFBQTtFQUVJOzs7QUFRSjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlBQ0k7OztBQU9SO0VBQ0k7RUFDQTtFQUNBOzs7QUFPSjtFQUNJOzs7QUFFSjtFQUNJOzs7QUFFSjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7OztBQWVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0VBRUk7RUFDQTs7O0FBS0o7RUFDSTtFQUNBOzs7QUFLSjtFQUNJLFlBQ0k7OztBQUlSO0VBQ0ksWUFDSTs7O0FBTVI7QUFBQTtFQUVJO0VBQ0E7RUFDQTs7O0FBT0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7RUFFSTs7O0FBS0o7QUFBQTtFQUVJOzs7QUFXSjtBQUFBO0FBQUE7QUFBQTtFQUlJOzs7QUFJSjtFQUNJOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQXFCOzs7QUFFckI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUFpQjs7O0FBRWpCO0VBQWM7RUFBZTs7O0FBQzdCO0VBQW9COzs7QUFJcEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBVUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7OztBQVNKO0VBQ0k7OztBQUtKO0VBQ0k7SUFBZ0I7OztBQUdwQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQVFKO0VBQWdCO0VBQWU7OztBQUUvQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU1KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0o7RUFBNkI7OztBQUs3QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFDSTs7O0FBTVI7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFLSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7O0FBT0o7RUFDSTtFQUNBOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtFQUNBOzs7QUFHSjtBQUFBO0VBRUk7RUFDQTs7O0FBR0o7RUFBNEM7OztBQUM1QztBQUFBO0VBQzRDOzs7QUFDNUM7RUFBNEM7OztBQUM1QztFQUE0Qzs7O0FBQzVDO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUE0Qzs7O0FBQzVDO0VBQTRDOzs7QUFDNUM7RUFBNEM7OztBQUM1QztFQUE0Qzs7O0FBQzVDO0VBQTRDOzs7QUFFNUM7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBb0JKO0VBQ0k7RUFDQTs7O0FBTUo7RUFDSTs7O0FBS0o7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBT0o7RUFDSTs7O0FBS0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQWlCSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQU9KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFLSjtFQUNJOzs7QUFtQko7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFnQko7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVVKO0FBQUE7QUFBQTtBQVNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBT0o7RUFDSTtBQUFBO0lBQ29COzs7QUFXeEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFPSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFZSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQWdCSjtFQUNJO0VBQ0E7RUFDQTtFQUlBO0VBQ0E7RUFDQTtFQUNBO0VBT0EsY0FDSTtFQUVKO0VBQ0EsTUFDSTtFQUVKO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtJQUFLOzs7QUFHVDtFQUNJOzs7QUFHSjtFQUNJO0lBQWlDOzs7QUFHckM7RUFDSTtFQUNBO0VBQ0E7RUFHQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFRSjtFQUFxQzs7O0FBQ3JDO0VBQXFDOzs7QUFDckM7RUFBcUM7OztBQUNyQztFQUFxQzs7O0FBQ3JDO0VBQXFDOzs7QUFDckM7RUFBcUM7OztBQUNyQztFQUFxQzs7O0FBQ3JDO0VBQXFDOzs7QUFFckM7RUFBeUQ7OztBQUN6RDtFQUF5RDs7O0FBQ3pEO0VBQXlEOzs7QUFDekQ7RUFBeUQ7OztBQUN6RDtFQUF5RDs7O0FBQ3pEO0VBQXlEOzs7QUFDekQ7RUFBeUQ7OztBQUN6RDtFQUF5RDs7O0FBeUJ6RDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBR0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQStDOzs7QUFDL0M7RUFBK0M7OztBQUkvQztFQUFtRTs7O0FBQ25FO0VBQW1FOzs7QUFFbkU7RUFBc0M7OztBQUN0QztFQUNJO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFLSjtFQUtJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtFQUNBOzs7QUFNSjtFQUNJOzs7QUFRSjtFQUNJOzs7QUFRSjtFQUNJO0lBQ0k7O0VBRUo7SUFDSTs7O0FBR1I7RUFDSTtBQUFBO0lBRUk7OztBQVFSO0VBQXNDOzs7QUFDdEM7RUFBc0M7OztBQUV0QztFQUNJO0VBQ0E7OztBQUdKO0VBQXlDOzs7QUFDekM7RUFBeUM7OztBQUN6QztFQUF5Qzs7O0FBQ3pDO0VBQXlDOzs7QUFJekM7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQzVyQ0o7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBVUY7RUFDRTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUMvRkY7RUFFRTtFQUNBO0VBQ0E7RUFFQTtFQUlBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUlBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7RUFDQTtFQUNBOzs7QUFRRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTs7O0FBTUY7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBS0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FDcEpGO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQXlCOztBQUl6QjtFQUVJO0VBQ0E7O0FBRUE7RUFBa0M7O0FBQ2xDO0VBQWtDO0VBQVk7O0FBQzlDO0VBQWtDO0VBQXFCOztBQUkzRDtFQUE2Qzs7QUFHN0M7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBK0I7O0FBSW5DO0VBQ0k7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7O0FBSUo7RUFDSTtFQUNBOztBQWpFUjtFQTZFSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7QUFVSjtFQUNJOztBQUdKO0VBQ0k7RUFDQTs7O0FBY1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQWFKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBU0E7RUFBVTs7QUFFVjtFQUNJO0VBQ0E7O0FBR0o7RUFBTTtFQUFhOztBQUVuQjtFQUNJO0VBQ0E7RUFDQTs7QUFpQko7RUFDSTtFQUNBO0VBQ0E7OztBQUlSO0VBQWlFOzs7QUFFakU7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQTJDO0VBQVk7OztBQUN2RDtFQUEyQztFQUFZOzs7QUFHbkQ7RUFBMkM7RUFBWTs7QUFDdkQ7RUFBMkM7RUFBWTs7O0FBRzNEO0VBQ0k7QUFBQTtBQUFBO0lBR0k7OztBQWNSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBYUo7RUFDSTs7O0FBUUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUVJO0VBQ0E7RUFDQTs7QUFHSjtFQUFjO0VBQTRCOzs7QUFLOUM7RUFDSTtFQUNBO0VBQ0E7O0FBR0E7RUFBYTtFQUFrQzs7O0FBYW5EO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBTTtFQUFhOztBQUVuQjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUlKO0VBQ0k7O0FBQ0E7RUFBVTs7QUFHZDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFBVTs7QUFNZDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTs7O0FBSWxCO0VBR0k7SUFBZ0I7O0VBQ2hCO0lBQU07O0VBQ047SUFBTTs7RUFDTjtJQUFNOztFQUNOO0lBQU07OztBQUdWO0VBQ0k7SUFBd0M7OztBQUk1QztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQU07RUFBYTs7QUFFbkI7RUFDSTtFQUNBO0VBQ0E7O0FBQ0E7RUFBVTtFQUF1Qzs7QUFHckQ7RUFDSTtFQUNBO0VBQ0E7O0FBQ0E7RUFBVTtFQUFxQzs7O0FBS3ZEO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQU07RUFBYTs7O0FBR3ZCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7QUFBQTtFQUVJOzs7QUMzZUo7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFTQTtFQUNBO0VBQ0E7RUFNQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBT0Y7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFLRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFNRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUFtQzs7O0FBR25DO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUFrRTtFQUEwQzs7O0FBRTVHO0VBQWdDO0VBQVM7OztBQUd6QztFQUNFOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7O0FBR1Q7RUFDRTtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOzs7QUFJVDtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBU0Y7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBTUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBVUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FDN1ZGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUVFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQWdCRjtFQUNFO0VBQ0E7RUFDQTs7O0FBVUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFFRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUVFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBS0Y7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQy9ORjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FDcEJGO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtFQUdJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFJSjtBQUFBO0FBQUE7QUFBQTtFQUlJOzs7QUFJSjtFQUNJOzs7QUFJSjtFQUNJOzs7QUEwQko7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQU1KO0VBQ0k7RUFDQTtFQUNBOzs7QUFVSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQWVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUdBOzs7QUFPSjtFQUNJOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU9KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQU9KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFRSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FDL1NKO0VBQ0k7RUFDQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUtKO0FBQUE7RUFFSTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBRUk7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTtFQUlBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUVBOzs7QUFFSjtFQUNJO0lBQ0k7OztBQUdSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBRUk7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFLQTtFQUNBOzs7QUM3Sko7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDRTtFQUNBO0VBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7QUFPRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtFQUlBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0VBR0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQU9GO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUtBO0FBQ0E7QUFBQTtBQUFBO0VBR0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0FBQ0E7RUFBbUQ7OztBQUVuRDtBQUFBO0FBQUE7QUFHQTtFQUErRDs7O0FBQy9EO0VBQWlGOzs7QUFDakY7RUFBNkU7OztBQUM3RTtFQUE2RTs7O0FBQzdFO0VBQTZFOzs7QUFFN0U7QUFBQTtBQUFBO0FBR0E7RUFBb0Q7OztBQUNwRDtFQUFtRDs7O0FBQ25EO0VBQW9EOzs7QUFDcEQ7RUFBdUQ7OztBQUN2RDtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUFrRDs7O0FBQ2xEO0VBQW1EOzs7QUFDbkQ7RUFBc0Q7OztBQUN0RDtBQUNBO0VBQ0U7SUFBbUQ7OztBQUdyRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBOzs7QUFFRjtBQUFBO0FBRUE7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUdBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUE7RUFDRTtJQUNFO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFBQTtJQUVBO0lBQ0E7OztBQUdKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjQTtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFNRTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0VBR0U7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0VBR0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBR0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtBQUFBO0VBR0U7OztBQUdGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0FBQ0E7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQVVBOzs7QUFFRjtFQUNFOzs7QUFFRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFhQTtFQUNFO0VBQ0E7QUFDQTtBQUFBO0VBRUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBS0E7QUFDQTtFQUNBO0FBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0VBQ0U7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTs7O0FBRUY7QUFBQTtBQUVBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0U7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtBQUFBO0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQ3h1QkY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBMEM7RUFBUzs7O0FBQ25EO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQXFEOzs7QUFJckQ7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQXdEOzs7QUFDeEQ7RUFBdUQ7OztBQUN2RDtFQUFtRDs7O0FBVW5EO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBb0Q7OztBQUNwRDtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFBMEQ7OztBQUMxRDtFQUFvRTs7O0FBR3BFO0VBQTRDO0VBQXlCO0VBQTRCOzs7QUFDakc7RUFBc0Y7RUFBOEI7OztBQUNwSDtFQUF1RDtFQUErQjtFQUEyQjs7O0FBQ2pIO0VBQXVEO0VBQXlCOzs7QUFDaEY7RUFBeUQ7RUFBeUI7RUFBMEI7OztBQUc1RztFQUE2QztFQUF5QjtFQUFnQzs7O0FBQ3RHO0VBQXVGO0VBQStCOzs7QUFDdEg7RUFBd0Q7RUFBK0I7RUFBMkI7OztBQUNsSDtFQUF3RDtFQUF5Qjs7O0FBQ2pGO0VBQTBEO0VBQXlCO0VBQTBCOzs7QUFHN0c7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBa0Q7OztBQUNsRDtFQUFtRDtFQUFZO0VBQWlCO0VBQW9COzs7QUFJcEc7RUFBa0Q7RUFBWTtFQUFxQjtFQUFVOzs7QUFDN0Y7RUFBaUQ7RUFBaUI7RUFBbUI7RUFBaUI7OztBQUN0RztBQUFBO0VBQzhEOzs7QUFHOUQ7RUFBZ0Q7RUFBZTtFQUFxQjs7O0FBQ3BGO0VBQTZFO0VBQTJCOzs7QUFHeEc7RUFBd0U7RUFBOEI7OztBQUN0RztFQUFpRzs7O0FBQ2pHO0VBQW1GO0VBQStCOzs7QUFHbEg7RUFBeUU7RUFBK0I7OztBQUN4RztFQUFrRzs7O0FBQ2xHO0VBQW9GO0VBQStCOzs7QUFHbkg7RUFBK0M7RUFBc0M7RUFBbUM7OztBQUN4SDtFQUF3RTs7O0FBQ3hFO0VBQTBEO0VBQW9DOzs7QUFDOUY7RUFBNEQ7RUFBOEI7RUFBMEI7OztBQUVwSDtFQUEyQztFQUF3QztFQUFxQzs7O0FBQ3hIO0VBQW9FOzs7QUFDcEU7RUFBc0Q7RUFBdUM7OztBQUM3RjtFQUF3RDtFQUE4QjtFQUEwQjs7O0FBRWhIO0VBQTJDO0VBQXVDO0VBQW1DOzs7QUFDckg7RUFBb0U7OztBQUNwRTtFQUFzRDtFQUFzQzs7O0FBQzVGO0VBQXdEO0VBQThCO0VBQTBCOzs7QUFJaEg7RUFBcUM7RUFBZ0I7RUFBd0I7RUFBMkI7OztBQUN4RztFQUFvRDs7O0FBQ3BEO0VBQW9EOzs7QUFDcEQ7RUFBa0U7RUFBNkI7RUFBb0I7OztBQUNuSDtFQUFpRztFQUFpQjs7O0FBQ2xIO0FBQUE7RUFDNkg7OztBQUM3SDtFQUErRjs7O0FBRy9GO0VBQXVJOzs7QUFDdkk7RUFBd0c7OztBQUV4RztFQUFpRjs7O0FBQ2pGO0VBQTRGO0VBQXlCOzs7QUFVckg7RUFBOEY7RUFBMEI7OztBQU14SDtBQUFBO0VBQzBGOzs7QUFHMUY7QUFBQTtBQUFBO0VBRW9EO0VBQXFCOzs7QUFFekU7RUFBcUQ7RUFBZ0I7OztBQUNyRTtFQUFrRTs7O0FBQ2xFO0FBQUE7RUFDdUc7OztBQUd2RztFQUNFO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOzs7QUFFVDtFQUNFO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87OztBQUVUO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FDck5GO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBc0JGO0VBQTZCOzs7QUFLN0I7RUFBb0M7OztBQUNwQztFQUE0Qjs7O0FBRTVCO0VBQTZCOzs7QUFTN0I7RUFDRTs7O0FBRUY7RUFDRTtJQUFPO0lBQVk7O0VBQ25CO0lBQU87SUFBWTs7O0FBT3JCO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtJQUFPO0lBQVk7O0VBQ25CO0lBQU87SUFBWTs7O0FBR3JCO0VBQ0U7QUFBQTtJQUVFOztFQUVGO0lBQ0U7OztBQWNKO0VBQWdDOzs7QUFJaEM7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBSUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFJRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQVdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7OztBQVVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFLRjtFQUNFO0VBQ0E7RUFHQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBVUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBSUY7RUFJRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUtGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBV0Y7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBTUU7OztBQU1GO0FBQUE7QUFBQTtFQUdFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQWNGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBWUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7OztBQVlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFLRjtFQUNFOzs7QUFJRjtFQUdFO0VBQ0E7RUFJQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFNRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFTRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBWUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVFGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFZRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFLRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQ3JyQkY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUMzREY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFJQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQU9GO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFNRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQTtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUE0QkY7RUFRRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFHQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFJQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBY0Y7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFJRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFLRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FDOW9CRjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0VBR0k7OztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTs7O0FBS0o7RUFDSTs7O0FBS0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBS0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQ3RISjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FDWkY7RUFBdUI7OztBQUV2QjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUF5QztFQUFZOzs7QUFFckQ7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQXNDOzs7QUFDdEM7RUFDRTtFQUNBO0VBQVM7RUFBUTtFQUNqQjtFQUNBO0VBQ0E7OztBQUVGO0VBQStCO0VBQW9CO0VBQVk7RUFBdUI7OztBQUN0RjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUEwQztFQUFZOzs7QUFDdEQ7RUFBdUM7RUFBcUM7OztBQUM1RTtFQUFpQztFQUFhO0VBQW9CO0VBQWlCO0VBQWtDOzs7QUFDckg7RUFBbUM7RUFBa0M7OztBQ2xGckU7RUFBdUI7RUFBZ0I7OztBQUV2QztFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUFzQzs7O0FBQ3RDO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtJQUFLOztFQUNMO0lBQU07O0VBQ047SUFBTzs7O0FBR1Q7RUFDRTtJQUFzQzs7O0FDekJ4QztFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBTUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFPRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7RUFDQTtFQUNBO0FBQ0E7QUFBQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FDM01GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtFQUdFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7RUFDQTs7O0FBR0Y7QUFDQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7QUFDQTtBQUFBO0VBRUE7RUFDQTtFQUNBOzs7QUFHRjtBQUNBO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FDM0lGO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7RUFHSTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFNQTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBR0E7RUFDQTtFQUNBOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUlBOzs7QUFHSjtFQUNJLFlBQ0k7OztBQWtCUjtFQUNJOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBSUo7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBS0o7RUFDSTtFQUNBOzs7QUMvTko7RUFLRTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBUUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0FBQUE7RUFFRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7QUFBQTtFQUVFOzs7QUFFRjtBQUFBO0VBRUU7OztBQUtGO0VBQ0U7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTs7O0FBRUY7QUFBQTtFQUVFOzs7QUFJRjtFQUNFOzs7QUFJRjtFQUNFO0VBQ0E7OztBQUtGO0VBQ0U7OztBQUVGO0FBQUE7RUFFRTtFQUNBO0VBQ0E7OztBQWVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7OztBQUtGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFJRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7SUFDRTs7O0FBcUJKO0VBQ0U7OztBQUlGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQzlQRjtBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQXNDO0VBQWE7OztBQUNuRDtFQUFzQztFQUFZO0VBQWM7OztBQUNoRTtFQUF5RDs7O0FBQ3pEO0VBQXlDOzs7QUFDekM7RUFBeUM7OztBQUV6QztBQUFBO0VBQzREOzs7QUFDNUQ7QUFBQTtFQUM0RDs7O0FDWDVEO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFHQTs7QUFFQTtFQUFZOztBQUdaO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFBK0I7O0FBQy9CO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUE4Qjs7QUFDOUI7RUFBc0M7O0FBQ3RDO0VBQWE7O0FBR2I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQXlCOztBQUN6QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFZSjtFQUNJO0VBQ0E7RUFDQTtFQUtBO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7RUFHQTtFQUNBOztBQUVBO0VBQXVCO0VBQVk7O0FBQ25DO0VBQTZCOztBQUM3QjtFQUNJO0VBQ0E7O0FBT1I7RUFDSTtJQUFZOzs7QUFJaEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUtBOztBQUVKO0VBQXFCOztBQUNyQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBRUE7RUFPQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFBMkI7O0FBQzNCO0VBQW9DOztBQUdwQztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQTZCOztBQUM3QjtFQUF5QjtFQUFxQzs7QUFDOUQ7RUFBaUM7O0FBR2pDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUFpQzs7QUFDakM7RUFBOEI7RUFBWTs7QUFDMUM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQWlDOztBQUNqQztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUFrQztFQUFvQzs7QUFHdEU7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUFxQjs7QUFDckI7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFBMkI7O0FBTzNCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBWTs7QUFFaEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVk7O0FBRWhCO0VBQTJCO0VBQW9DOztBQUkvRDtFQUNJO0VBQ0E7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVk7O0FBRWhCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBZTtFQUFnQjtFQUFrQzs7QUFFckU7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFpQjs7QUFDakI7RUFBVTs7QUFFZDtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUFvRDs7QUFHcEQ7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7O0FBS0o7RUF6ZEo7SUEwZFE7O0VBQ0E7SUFBdUI7O0VBQ3ZCO0lBQWU7Ozs7QUFJdkI7RUFDSTtJQUFLOzs7QUFHVDtFQUNJO0lBQU87O0VBQ1A7SUFBSzs7O0FBSVQ7QUFBQTtFQUVJOzs7QUNwZko7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtJQUNFOzs7QUFHSjtFQUNFO0lBQ0U7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOztFQUVGO0lBQ0U7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOztFQUVGO0lBQ0U7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOzs7QUFHSjtFQUNFO0lBQ0U7O0VBRUY7SUFDRTs7O0FDOVBKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBV0Y7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBLFlBQ0U7OztBQ3hDSjtFQUNFOzs7QUFNRjtFQUNFOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLRjtBQUFBO0FBQUE7QUFBQTtFQUlFOzs7QUFJRjtFQUFvQjtFQUFhO0VBQWM7RUFBZ0I7OztBQUMvRDtFQUE0QjtFQUFhOzs7QUFHekM7RUFDRTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUE4QjtFQUFjOzs7QUFDNUM7RUFBa0M7OztBQUdsQztFQUE0Qjs7O0FBQzVCO0VBQTJDOzs7QUFDM0M7RUFBeUM7OztBQUV6QztFQUFpQzs7O0FBQ2pDO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBeUM7OztBQUN6QztFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQXlDO0VBQVU7RUFBVzs7O0FBRTlEO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBNEI7OztBQUc1QjtFQUFvQzs7O0FBQ3BDO0VBQXVCOzs7QUFFdkI7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBMEI7OztBQUMxQjtFQUE2QjtFQUFhOzs7QUFPMUM7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7RUFDcUM7OztBQUVyQztBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtFQUM0Qjs7O0FBaUI1QjtFQUNFO0VBQ0E7RUFDQTs7O0FBS0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQXlDO0VBQVU7RUFBVzs7O0FBSzlEO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUEyQztFQUFVO0VBQVc7OztBQUVoRTtFQUNFO0VBQ0E7RUFDQTs7O0FBS0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUlGO0VBQThCOzs7QUFFOUI7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBNkI7OztBQUc3QjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUErQjs7O0FDN1YvQjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBR0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7RUFDRTs7O0FBRUY7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7SUFDRTs7RUFFRjtJQUNFOzs7QUFJSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTs7O0FBR0Y7QUFDQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7RUFJRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0lBQ0U7O0VBRUY7SUFDRTs7O0FBR0o7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQ3pRRjtFQUVFO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTs7O0FBY0Y7RUFDRTtFQUNBOzs7QUFVRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTtFQUNBOzs7QUFLRjtFQUNFO0VBQ0E7OztBQUlGO0VBQ0U7OztBQUVGO0FBQUE7RUFFRTtFQUNBLFlBQ0U7OztBQVdKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFVRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQVdGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQ2hPRjtFQUNJOztBQU1BO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBVUo7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQU1KO0VBQ0k7RUFDQTs7QUFHSjtFQUFZOztBQUlaO0VBQWE7O0FBT2I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7RUFDSTtFQUNBOztBQUlKO0VBQ0k7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFRSjtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFZOztBQUVaO0VBQWdCO0VBQVM7O0FBRzdCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFLQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUFrQjs7QUFJbEI7RUFBWTs7QUFJWjtFQUNJO0VBQ0E7O0FBT1I7QUFBQTtFQUVJO0VBQ0E7O0FBRUE7QUFBQTtFQUNJO0VBQ0E7RUFDQTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBTUo7RUFBZ0Q7O0FBS2hEO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQU1KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBS0o7RUFDSTtJQUNJOztFQUVKO0lBQ0k7SUFDQTs7OztBQzdRWjtFQUVFO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVFGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQU9GO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFNRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBV0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0EsT0ExSmU7RUEySmYsUUEzSmU7RUE0SmY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFPRjtFQUNFO0VBQ0E7OztBQWFGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBWUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7OztBQUVGO0VBR0U7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBSUE7OztBQWFGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUtGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBRUU7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU1GO0FBQUE7RUFFRTs7O0FDallGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFJQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFPRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7OztBQU1GO0VBQTJDOzs7QUFDM0M7RUFBMkM7OztBQUMzQztFQUNFO0lBQU87SUFBbUI7O0VBQzFCO0lBQU87SUFBZ0I7OztBQUV6QjtFQUNFO0lBQU87SUFBb0I7O0VBQzNCO0lBQU87SUFBZ0I7OztBQUd6QjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFHQTs7O0FBTUY7RUFDRTtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7O0FBRVQ7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBWUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFJRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFJRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUlGO0VBQWtDOzs7QUFDbEM7RUFDRSxZQUNFOzs7QUFXSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFNRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFJQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQXNDOzs7QUFDdEM7RUFDRSxZQUNFOzs7QUFJSjtFQUNFO0lBQTZCOztFQUM3QjtJQUE2Qjs7RUFDN0I7SUFBNEI7O0VBQzVCO0lBQTZEOztFQUM3RDtBQUFBO0lBQzJDOzs7QUNoUTdDO0VBRUU7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUFrRDtFQUFVO0VBQVc7OztBQVF2RTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBU0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFPRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUtGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7OztBQUtGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQU1BO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0EsWUFDRTs7O0FBS0o7RUFDRTtFQUNBOzs7QUFNRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQU9BO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUFrRDtFQUFVO0VBQVc7OztBQUV2RTtFQUNFO0VBQ0E7RUFDQTs7O0FBS0Y7RUFDRTtFQUNBO0VBQ0E7RUFRQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFPRjtFQUFtRDs7O0FBQ25EO0VBQWdFOzs7QUFHaEU7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFPRjtFQUNFOzs7QUFFRjtBQUFBO0VBRUU7OztBQUVGO0VBQ0U7RUFDQTtFQUNBLFlBQ0U7RUFFRjs7O0FBRUY7RUFDRTs7O0FBYUY7RUFDRTtJQUNFO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBR0E7O0VBR0Y7SUFDRTtJQUNBO0lBQ0E7SUFDQTs7O0FBR0o7RUFDRTtFQUNBO0VBQ0E7RUFDQSxZQUNFO0VBRUY7OztBQUlGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBTUY7RUFDRTtFQUNBOzs7QUFJRjtBQUFBO0VBRUU7RUFDQTs7O0FBRUY7QUFBQTtFQUVFOzs7QUFFRjtFQUNFO0lBQWdFOztFQUNoRTtJQUE2Qjs7O0FBSS9CO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FDcGRGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFJRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQWtDOzs7QUFDbEM7RUFDRSxZQUNFOzs7QUFJSjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFHRjtFQUNFO0lBQTZCOzs7QUNyRi9CO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBTUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7QUFBQTtFQUVFOzs7QUFFRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUlGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFNRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7QUFBQTtFQUVFOzs7QUNsUEY7RUFDRTtFQUNBO0VBSUE7RUFDQTs7O0FBS0Y7QUFBQTtFQUVFO0VBQ0E7OztBQUlGO0VBQ0U7OztBQVlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQU9GO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQVNGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQVVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLRjtFQUNFOzs7QUN2SUY7RUFBc0I7OztBQU90QjtFQUNFO0VBQ0E7OztBQUdGO0VBQWdEOzs7QUFFaEQ7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFXRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUE2RDtFQUFVO0VBQVc7OztBQUdsRjtFQUF5QztFQUFlO0VBQXFCOzs7QUFDN0U7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBMkM7OztBQUMzQztFQUE0Qzs7O0FBSzVDO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQTZDOzs7QUFDN0M7RUFBOEM7OztBQUM5QztFQUErQzs7O0FBRS9DO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBeUM7RUFBZTtFQUFnQjs7O0FBQ3hFO0VBQThEOzs7QUFFOUQ7RUFDRTtFQUNBO0VBQ0E7OztBQUlGO0VBQTRFOzs7QUFHNUU7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQW1FOzs7QUFHbkU7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQXdEO0VBQWtCOzs7QUFDMUU7RUFBOEM7OztBQUM5QztBQUFBO0VBQ2tFOzs7QUFJbEU7QUFBQTtFQUN1RTs7O0FBR3ZFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUE2Qzs7O0FBQzdDO0VBQThDOzs7QUFFOUM7RUFBaUQ7RUFBOEI7OztBQUcvRTtFQUFtRTs7O0FBRW5FO0VBQTBDOzs7QUFHMUM7RUFBMkM7OztBQUMzQztFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFBNkQ7OztBQUc3RDtFQUNFO0lBQVc7O0VBQ1g7SUFBTTs7RUFDTjtJQUFNOztFQUNOO0lBQU07O0VBQ047SUFBTTs7O0FBRVI7RUFBdUM7OztBQUV2QztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtJQUFzQzs7RUFDdEM7QUFBQTtBQUFBO0lBRXlDOztFQUN6QztJQUF1Qzs7O0FDblJ6QztFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7O0FBR1Q7RUFDRTtJQUNFO0lBQ0E7O0VBRUY7SUFDRTtJQUNBOzs7QUFHSjtFQUNFO0FBQUE7SUFFRTs7RUFFRjtBQUFBO0lBRUU7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOzs7QUFHSjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFHRjtBQUFBO0FBRUE7QUFBQTtBQUFBO0VBR0U7OztBQUVGO0FBQUE7RUFFRTs7OztBQ3pLRjtBQUFBO0FBQUE7QUFJQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7RUFJQTs7O0FBRUo7RUFBa0M7RUFBYTs7O0FBQy9DO0VBQWtDO0VBQWE7OztBQUMvQztFQUFrQztFQUFhOzs7QUFDL0M7RUFBa0M7RUFBYTs7O0FBRS9DO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFFQTtFQUNJOzs7QUN2REo7QUFBQTtBQUFBO0FBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQUE7QUFBQTtFQUdBOzs7QUFHSjtBQUFBO0FBQUE7QUFHQTtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQ3JCSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUNBO0VBQ0k7OztBQUdKO0FBQUE7QUFFQTtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtBQUNJO0FBQUE7RUFFQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0VBQ0k7RUFDQTtFQUNBOzs7QUN6Rko7RUFFSTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFFQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUdBOztBQVdBO0VBQ0k7RUFDQTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUlKO0VBQ0k7RUFDQTs7QUFxQko7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFLSjtFQUNJO0VBQ0E7O0FBSUo7RUFDSTtJQUNJOzs7O0FDdEdaO0VBQ0k7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFZOzs7QUFFaEI7RUFBa0M7RUFBZ0I7RUFBaUI7OztBQUNuRTtFQUF5Qzs7O0FBTXpDO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNrQjtFQUFtQztFQUF1Qzs7QUFHNUY7RUFDSTtFQUNBLFlBQ0k7RUFFSjs7QUFHSjtFQUNJLFlBQ0k7RUFFSjs7O0FBR1I7RUFBa0M7RUFBa0M7OztBQUdwRTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUdKO0VBQ0k7SUFBSzs7O0FBRVQ7RUFBOEI7RUFBaUI7RUFBaUI7RUFBa0I7OztBQUNsRjtFQUE4QjtFQUFXO0VBQWlCOzs7QUFDMUQ7RUFBOEI7RUFBaUI7RUFBaUI7OztBQU1oRTtFQUE2Qjs7O0FBRzdCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFZOzs7QUFFaEI7RUFBa0M7RUFBZ0I7RUFBOEI7OztBQUNoRjtFQUFrQztFQUFnQjtFQUFpQjtFQUFrQzs7O0FBQ3JHO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUFhO0VBQ2I7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVU7RUFBb0M7OztBQUlsRDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVk7OztBQUloQjtFQUNJO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7SUFBa0M7OztBQzdKdEM7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLRjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUF3Qko7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQWlCRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FDdEZGO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFHQTs7QUFFQTtFQUF5Qjs7QUFDekI7RUFBeUI7O0FBQ3pCO0VBQXlCOztBQUN6QjtFQUF5Qjs7QUFDekI7RUFBeUI7O0FBQ3pCO0VBQXlCOztBQUc3QjtFQUNJO0lBQ0k7Ozs7QUM5Qlo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQ0NKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUFvQzs7O0FBQ3BDO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBdUM7OztBQUd2QztFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUF1Qzs7O0FBRXZDO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQXFDOzs7QUFHckM7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBRUY7RUFBb0Q7OztBQ25LcEQ7RUFDSTs7QUFNQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQWM7O0FBTWQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBZTtFQUFnQjtFQUF1Qzs7QUFJMUU7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUtKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBS0o7RUFBWTs7QUFDWjtFQUFZOztBQUNaO0VBQVk7RUFBbUI7O0FBUS9CO0VBQVk7RUFBbUI7O0FBRS9CO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTs7QUFNZDtFQUNJO0VBR0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVU7RUFBK0M7O0FBQ3pEO0VBQWtCO0VBQStDOztBQUtyRTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFBWTs7QUFJaEI7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQW1COztBQUduQjtFQUErQjs7QUFDL0I7RUFBcUM7O0FBQ3JDO0VBQXFDO0VBQWdDOztBQUNyRTtFQUFZO0VBQXVCOztBQUVuQztFQUNJO0lBQW9COztFQUNwQjtJQUFlOzs7O0FDaE92QjtFQUNJOztBQU9BO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7RUFBYzs7QUFPZDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBS0o7RUFDSTtFQUNBOztBQUlSO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQTZCOztBQUM3QjtFQUE2Qjs7QUFDN0I7RUFBNkI7O0FBSzdCO0VBQStCOztBQUMvQjtFQUFxQzs7QUFDckM7RUFDSTtFQUNBOztBQUVKO0VBQVk7RUFBdUI7O0FBR25DO0VBQ0k7SUFBWTs7RUFDWjtJQUFZOztFQUNaO0lBQVk7Ozs7QUM3SnBCO0VBQ0U7OztBQVFGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQU9GO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUlFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFVRjtFQUNFO0VBQ0E7RUFDQTs7O0FBTUY7RUFDRTtFQUNBO0VBQ0E7OztBQVdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUEwQjs7O0FBQzFCO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBV0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQW9DO0VBQVU7RUFBVzs7O0FBUXpEO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQVFGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBS0Y7RUFBaUI7OztBQUNqQjtFQUFvQzs7O0FBQ3BDO0VBQW1DOzs7QUFXbkM7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBZ0M7RUFBVTtFQUFXOzs7QUFpQnJEO0VBQ0U7RUFDQTtFQUNBOzs7QUFLRjtFQUFtQjs7O0FBRW5CO0VBQ0U7SUFBeUI7OztBQUUzQjtFQUNFO0lBQXlCOzs7QUFHM0I7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUFrQjs7O0FBQ2xCO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFPRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFBdUI7OztBQUN2QjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUlGO0VBQW9COzs7QUFDcEI7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQU9GO0VBQ0U7OztBQzdRRjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQVNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBSUk7RUFDQTs7QUFNSjtFQUNJOztBQUdKO0VBQ0k7RUFHQTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFFSTtFQUNBLFlBQ0k7O0FBSVI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQTdGSjtJQThGUTs7RUFDQTtJQUNJOztFQUVKO0lBQ0k7SUFDQTs7O0FBS1I7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7O0FBU1I7RUFDSTs7QUFFQTtFQUFlO0VBQWE7O0FBQzVCO0VBQW9CO0VBQWE7O0FBQ2pDO0VBQWE7O0FBQ2I7RUFBWTs7O0FBR2hCO0VBQ0k7O0FBRUE7RUFBZTtFQUFhOztBQUM1QjtFQUFvQjtFQUFhOztBQUNqQztFQUFhOztBQUNiO0VBQVk7OztBQUdoQjtFQUNJOztBQUVBO0VBQWU7RUFBYTs7QUFDNUI7RUFBb0I7RUFBYTs7QUFDakM7RUFBYTs7QUFDYjtFQUFZOzs7QUFJaEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU1KO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0VBRUk7RUFDQTtFQUNBOzs7QUFTSjtFQUF3QjtFQUEyQzs7O0FBQ25FO0VBQXdCO0VBQW9DOzs7QUFDNUQ7RUFBd0I7RUFBMEM7OztBQUNsRTtFQUF3QjtFQUEyQzs7O0FBQ25FO0VBQXdCO0VBQTBDOzs7QUFDbEU7RUFBd0I7RUFBMkM7OztBQUNuRTtFQUF3QjtFQUFrRDs7O0FBQzFFO0VBQXdCO0VBQTJDOzs7QUFFbkU7RUFBMEM7RUFBMkI7OztBQUNyRTtFQUEwQztFQUEyQjs7O0FBQ3JFO0VBQTBDO0VBQTJCOzs7QUFDckU7RUFBMEM7RUFBMkI7OztBQUNyRTtFQUEwQztFQUEyQjs7O0FBQ3JFO0VBQTBDO0VBQTJCOzs7QUFDckU7RUFBMEM7RUFBMkI7OztBQUNyRTtFQUEwQztFQUEyQjs7O0FBY3JFO0VBQ0k7OztBQVNKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOzs7QUF1QlI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFJSjtFQUNJO0VBQ0E7O0FBRUE7RUFBaUI7OztBQU9yQjtFQUNJO0VBQ0E7O0FBRUE7RUFBaUI7OztBQUdyQjtFQUdJO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFJQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFPSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBU0o7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFBb0I7O0FBQ3BCO0VBQW9COztBQUtwQjtFQUFtQjs7QUFDbkI7RUFBbUI7OztBQVF2QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUEyQko7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7O0FBRUE7RUFDSTtFQUNBOztBQVFKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7O0FBYUo7RUFDSTs7O0FBaUJKO0VBQWU7O0FBQ2Y7RUFBb0I7RUFBYTs7QUFDakM7RUFBOEI7RUFBYTs7QUFDM0M7RUFBYTs7QUFDYjtFQUFZOzs7QUFJWjtFQUFlOztBQUNmO0VBQW9CO0VBQWE7O0FBQ2pDO0VBQThCO0VBQWE7O0FBQzNDO0VBQWE7O0FBQ2I7RUFBWTs7O0FBSVo7RUFBZTs7QUFDZjtFQUFvQjtFQUFhOztBQUNqQztFQUE4QjtFQUFhOztBQUMzQztFQUFhOztBQUNiO0VBQVk7OztBQ3hnQmhCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBSUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFZQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBSUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBUVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBR0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUFVOztBQUVWO0VBQ0k7RUFDQTtFQUNBOzs7QUFrQlI7RUFDSTs7QUFFQTtFQUNJOzs7QUFLUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQWFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLSTtFQUNBO0VBQ0E7O0FBSUo7QUFBQTtFQUVJOzs7QUFRUjtFQUNJOzs7QUFZSjtFQUNJO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFHSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFpQko7RUFDSTtFQUNBO0VBQ0E7RUFLQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7OztBQW1CSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOzs7QUFPUjtFQUNJOztBQUVBO0VBQ0k7RUFDQTs7O0FBVVI7RUFBd0I7RUFBdUM7OztBQUMvRDtFQUF3QjtFQUFnQzs7O0FBQ3hEO0VBQXdCO0VBQXNDOzs7QUFDOUQ7RUFBd0I7RUFBdUM7OztBQUMvRDtFQUF3QjtFQUFzQzs7O0FBQzlEO0VBQXdCO0VBQXVDOzs7QUFDL0Q7RUFBd0I7RUFBOEM7OztBQUN0RTtFQUF3QjtFQUF1Qzs7O0FBRS9EO0VBQTBDO0VBQXVCOzs7QUFDakU7RUFBMEM7RUFBdUI7OztBQUNqRTtFQUEwQztFQUF1Qjs7O0FBQ2pFO0VBQTBDO0VBQXVCOzs7QUFDakU7RUFBMEM7RUFBdUI7OztBQUNqRTtFQUEwQztFQUF1Qjs7O0FBQ2pFO0VBQTBDO0VBQXVCOzs7QUFDakU7RUFBMEM7RUFBdUI7OztBQUlqRTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBUUo7RUFDSTs7O0FBTUo7RUFDSTtJQUNJOztFQUdKO0lBQ0k7OztBQ2piUjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7O0FDcENSO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUNqSkY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FDekJGO0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUdGO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFHRjtBQUNBO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7QUFDQTtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUdGO0FBQ0E7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFHRjtBQUNBO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7QUFDQTtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7QUFDQTtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUdGO0FBQUE7QUFFQTtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUdGO0FBQ0E7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFDQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFDQTtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUdGO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0FBQ0E7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUdGO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0FBQ0E7RUFDRTs7O0FBR0Y7QUFDQTtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFHRjtBQUNBO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUM5YUY7QUFBQTtBQUFBO0FBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFNSjtFQUNJOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTs7O0FDL0NKO0VBRUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUFrQzs7O0FBQ2xDO0VBQWtDOzs7QUFDbEM7RUFBa0M7OztBQUNsQztFQUFrQzs7O0FBQ2xDO0VBQWtDOzs7QUFDbEM7RUFBa0M7OztBQUNsQztFQUFrQzs7O0FBQ2xDO0VBQWtDOzs7QUFHbEM7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFFQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQzlGRjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUF5Qjs7QUFHekI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFLSjtFQUNJO0VBQ0E7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUFVO0VBQ1Y7RUFDQTtFQUFhO0VBQ2I7RUFDQTs7QUFFSjtFQUFxRDs7QUFHckQ7RUFBcUQ7RUFBYzs7QUFHbkU7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQSxZQUNJOztBQUtSO0VBQXVEOztBQUd2RDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUE4Qjs7QUFDOUI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFPQTtBQUFBO0VBQ2dCOztBQUNoQjtFQUE2Qjs7QUFHN0I7QUFBQTtFQUNnQjs7QUFDaEI7RUFBNkI7O0FBT2pDO0VBQW9COztBQUNwQjtBQUFBO0VBQ2lCOztBQUNqQjtFQUFrQzs7QUFDbEM7RUFBaUI7RUFBaUM7O0FBQ2xEO0VBQWM7OztBQU1sQjtFQUNJO0lBQStCOztFQUMvQjtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7RUFFSjtJQUNJO0lBQ0E7SUFDQTs7O0FBT1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVVKO0FBQUE7QUFBQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0FBQUE7QUFBQTtFQUF1Qzs7QUFDdkM7QUFBQTtBQUFBO0VBQTBFOzs7QUNzSTlFO0VBNVVJLGFBckZtQjtFQXNGbkI7RUFNQSxhQW5GcUI7RUFvRnJCLFdBNURtQjtFQTZEbkIsYUF2Q3FCOzs7QUEyV3pCO0VBN1VJLGFBckZtQjtFQXNGbkI7RUFhQSxhQTFGcUI7RUEyRnJCLFdBcEVtQjtFQXFFbkIsYUEvQ3FCOzs7QUE2V3pCO0VBOVVJLGFBckZtQjtFQXNGbkI7RUFvQkEsYUFqR3FCO0VBa0dyQixXQTVFbUI7RUE2RW5CLGFBdkRxQjs7O0FBK1d6QjtFQS9VSSxhQXJGbUI7RUFzRm5CO0VBMkJBLGFBeEdxQjtFQXlHckIsV0FwRm1CO0VBcUZuQixhQS9EcUI7OztBQWlYekI7RUFoVkksYUFyRm1CO0VBc0ZuQjtFQWtDQSxhQS9HcUI7RUFnSHJCLFdBNUZtQjtFQTZGbkIsYUF2RXFCOzs7QUFtWHpCO0VBalZJLGFBckZtQjtFQXNGbkI7RUF5Q0EsYUF0SHFCO0VBdUhyQixXQXBHbUI7RUFxR25CLGFBL0VxQjs7O0FBc1h6QjtFQW5WSSxhQXJGbUI7RUFzRm5CO0VBaURBLGFBaElxQjtFQWlJckIsV0F2SGtCO0VBd0hsQixhQWpHK0I7OztBQWlZbkM7RUFwVkksYUFyRm1CO0VBc0ZuQjtFQXdEQSxhQXZJcUI7RUF3SXJCLFdBN0hrQjtFQThIbEIsYUF4RytCOzs7QUFrWW5DO0VBclZJLGFBckZtQjtFQXNGbkI7RUErREEsYUE5SXFCO0VBK0lyQixXQW5Ja0I7RUFvSWxCLGFBN0crQjs7O0FBaVluQztFQXRWSSxhQXJGbUI7RUFzRm5CO0VBc0VBLGFBckpxQjtFQXNKckIsV0F6SWtCO0VBMElsQixhQXJIK0I7OztBQW1ZbkM7RUF2VkksYUFyRm1CO0VBc0ZuQjtFQTZFQSxhQTVKcUI7RUE2SnJCLFdBL0lrQjtFQWdKbEIsYUExSCtCOzs7QUNQbkM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBT0E7O0FBQ0E7RUFBeUI7O0FBYjdCO0VBZUk7RUFDQTtFQUNBO0VBSUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFLQTtFQUNJOztBQU1KO0VBQ0k7RUFDQTs7QUFnQko7RUFDSTtFQUNBO0VBRUE7O0FBT0o7RUFBVTs7QUFDVjtFQUVJO0VBQ0EsWUFDSTs7QUFPUjtFQUVJLFlBQ0k7O0FBb0NSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBU0o7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFLQTtFQUFtQjtFQUFhO0VBQWM7O0FBQzlDO0VBQW1CO0VBQWE7RUFBYzs7QUFDOUM7RUFBbUI7RUFBYTtFQUFjOztBQUU5QztFQUFtQjtFQUFhO0VBQWM7O0FBQzlDO0VBQW1CO0VBQWE7RUFBYzs7QUFDOUM7RUFBbUI7RUFBYTtFQUFjOztBQVlsRDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RURuSkosYUFyRm1CO0VBc0ZuQjtFQTJLQSxhQXZQcUI7RUF3UHJCLFdBL09rQjtFQWdQbEIsYUF6TitCO0VDZ00zQjtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFRDNKQSxhQXJGbUI7RUFzRm5CO0VBbUdBLGFBakxxQjtFQWtMckIsV0F2S2tCO0VBd0tsQixhQWpKK0I7O0FDaU4vQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBUUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQU9KO0VBQXdCOztBQWN4QjtFQUVJO0VBQ0E7RUFDQTs7QUFFSjtFQUlJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFFSTs7QUFhQTtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFjUjtFQUNJOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0FBQUE7RUFFSTs7QUFHSjtFQUVJO0VBQ0E7O0FBR0o7RUFJSTs7QUFLUjtFQUNJO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQU1JOzs7QUFhUjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFRHJXSixhQXJGbUI7RUFzRm5CO0VBbUdBLGFBakxxQjtFQWtMckIsV0F2S2tCO0VBd0tsQixhQWpKK0I7RUNrWjNCO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VENVdBLGFBckZtQjtFQXNGbkI7RUEyS0EsYUF2UHFCO0VBd1ByQixXQS9Pa0I7RUFnUGxCLGFBek4rQjtFQ3laM0I7O0FBRUo7RUFDSTtFRGpYSixhQXJGbUI7RUFzRm5CO0VBNEZBLGFBMUtxQjtFQTJLckIsV0FqS2tCO0VBa0tsQixhQTVJK0I7RUNnYTNCOztBQUVKO0VEclhBLGFBckZtQjtFQXNGbkI7RUFvS0EsYUFoUHFCO0VBaVByQixXQXpPa0I7RUEwT2xCLGFBcE4rQjtFQ29hM0I7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RURuWUosYUFyRm1CO0VBc0ZuQjtFQXdEQSxhQXZJcUI7RUF3SXJCLFdBN0hrQjtFQThIbEIsYUF4RytCO0VDa2IzQjtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VEOVlKLGFBckZtQjtFQXNGbkI7RUF3REEsYUF2SXFCO0VBd0lyQixXQTdIa0I7RUE4SGxCLGFBeEcrQjtFQzZiM0I7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7O0FBS1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQVNKO0VBRUksT0E5ZGdCOztBQWdlcEI7RUFFSSxPQWplZ0I7O0FBdWVwQjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBU0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtBQUFBO0VBRUk7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBR0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFLQTtBQUFBO0VBRUk7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7O0FBUVI7RUFFUTtBQUFBO0lBRUk7SUFDQTs7RUFFSjtJQUNJO0lBQ0E7OztBQWVaO0VBQ0k7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7O0FBR0E7RUFFSTs7O0FBWVo7RUFDSTs7O0FBUUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFJQTs7QUFHSjtFQUVJLFlBQ0k7O0FBSVI7RUFFSSxZQUNJOzs7QUNockJaO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQVFGO0VBQ0U7RUFDQTs7O0FBT0Y7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBb0JBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBVUY7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0VBSUU7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYUE7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQVdGO0FBQUE7QUFBQTtBQUFBO0VBSUU7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUtGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQTtBQUNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU1BO0VBQ0E7RUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0VBSUE7OztBQUVGO0FBQUE7QUFFQTtBQUFBO0FBRUE7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtJQUNFOzs7QUFHSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWdCQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7QUFBQTtBQUVBO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0VBSUU7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0VBSUU7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtFQUlFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtFQUlFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtFQUlFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFPRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtBQUFBO0VBRUU7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7RUFFRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTs7O0FBRUY7QUFBQTtFQUVFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTs7O0FBRUY7QUFBQTtFQUVFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7RUFFRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtBQUFBO0VBRUU7OztBQUVGO0FBQUE7RUFFRTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTtFQUNBOzs7QUFFRjtBQUNBO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7QUFDQTtFQUNFO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBR0Y7QUFDQTtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUdGO0FBQ0E7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtFQUVFOzs7QUFFRjtBQUFBO0VBRUU7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7QUFDQTtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjQTtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0JBO0VBQ0U7OztBQUdGO0FBQUE7QUFFQTtFQUNFOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBO0VBQ0U7RUFDQTs7O0FDM3BDRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUN0TUY7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FDakJBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFDQTtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFDQTtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FDN0dGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0VBSUU7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBT0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQVFBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQ3hJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtFQUdFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7RUFHRTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7QUFHQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQXFDOzs7QUFDckM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQW9DOzs7QUFDcEM7RUFBdUQ7OztBQUN2RDtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBeUQ7OztBQUN6RDtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtFQUM0RTs7O0FBQzVFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtFQUdFOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7RUFHRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7RUFHRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0FBQ0E7QUFBQTtBQUFBO0VBR0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFDQTtFQUFxQjs7O0FBQ3JCO0VBQXVDOzs7QUFDdkM7RUFBNEM7OztBQUM1QztFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0FBRUE7QUFBQTtBQUFBO0FBR0E7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ3ZYQTtFQUE4Qjs7O0FBTTlCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBNEI7RUFBZTs7O0FBRTNDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7RUFDMEM7OztBQUUxQztBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQStCOzs7QUFDL0I7RUFBK0I7OztBQUUvQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBcUJBO0VBQ0U7RUFBb0I7RUFDcEI7RUFBZTtFQUFxQjtFQUNwQztFQUNBO0VBQ0E7OztBQUdGO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlBQ0U7RUFFRjtFQUNBO0VBQWE7RUFBa0I7RUFDL0I7OztBQUVGO0VBQWtEOzs7QUFDbEQ7RUFBa0Q7OztBQUNsRDtFQUFrRDs7O0FBQ2xEO0VBQWtEOzs7QUFDbEQ7RUFBa0Q7OztBQUVsRDtBQUNBO0VBQXNEOzs7QUFDdEQ7QUFDRTtBQUFBO0VBRUE7RUFBc0M7RUFBYztFQUNwRDtFQUFlO0VBQXdCO0VBQ3ZDO0VBQ0E7RUFBaUI7RUFBbUI7RUFDcEM7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7RUFBNEI7RUFBYTs7O0FBRTNDO0VBQ0U7RUFBVztFQUFpQjtFQUFtQjtFQUFrQjs7O0FBRW5FO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7RUFHRTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjQTtFQUFrRDs7O0FBQ2xEO0VBQ0U7RUFDQTs7O0FBRUY7QUFBQTtFQUVFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7RUFDRTs7O0FBRUY7QUFBQTtFQUVFOzs7QUFHRjtBQUNBO0VBQ0U7RUFBVztFQUFpQjtFQUFtQjtFQUFrQjs7O0FBRW5FO0VBQ0U7RUFBaUI7RUFBaUI7RUFBbUI7RUFBNEI7OztBQUVuRjtFQUNFO0VBQWU7RUFBZ0M7OztBQUVqRDtFQUNFO0VBQWU7RUFBcUI7RUFBVTtFQUM5QztFQUFpQjtFQUFtQjtFQUFrQjs7O0FBRXhEO0VBQTBEO0VBQWdCOzs7QUFFMUU7RUFDRTtFQUFlO0VBQXFCOzs7QUFFdEM7RUFBb0U7OztBQUVwRTtFQUNFO0VBQWU7RUFBeUI7RUFDeEM7RUFBVzs7O0FBRWI7RUFDRTtFQUFlO0VBQXdCOzs7QUFFekM7RUFDRTtFQUFpQjtFQUFtQjtFQUFrQjs7O0FBRXhEO0VBQ0U7RUFBaUI7RUFBbUI7RUFBMEI7OztBQUVoRTtFQUNFO0VBQXNCO0VBQXFCO0VBQzNDO0VBQWlCO0VBQW1CO0VBQ3BDO0VBQWlDOzs7QUFHbkM7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFDQTtBQUFBO0FBQUE7QUFBQTtFQUlFOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtFQUdzRDs7O0FBQ3REO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFPc0Q7OztBQUN0RDtBQUFBO0FBQUE7QUFBQTtFQUlFO0VBQWdCO0VBQWU7QUFDL0I7QUFBQTtBQUFBO0FBQUE7RUFJQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFBeUQ7OztBQUN6RDtFQUF5RDs7O0FBQ3pEO0FBQUE7RUFDeUQ7OztBQUN6RDtFQUF5RDtFQUFnQjtFQUFlOzs7QUFDeEY7QUFBQTtBQUFBO0FBR0E7QUFBQTtFQUVFO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0U7OztBQWtCRjtFQUFxQztFQUFZOzs7QUFDakQ7RUFBMkM7OztBQUMzQztFQUE0Qzs7O0FBQzVDO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0VBQ3lEOzs7QUFDekQ7RUFBaUQ7OztBQUVqRDtFQUFpQjs7O0FBQ2pCO0VBQXdEOzs7QUFFeEQ7RUFDRTtFQUFlO0VBQXFCO0VBQ3BDO0VBQVc7OztBQUViO0VBQ0U7RUFBVztFQUNYO0VBQ0E7RUFBaUI7RUFBbUI7RUFDcEM7OztBQUVGO0VBQThCOzs7QUFFOUI7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUFpQjtFQUNqQjs7O0FBRUY7RUFBcUM7OztBQUNyQztFQUNFO0VBQWdCO0VBQ2hCO0VBQWlCO0VBQW1COzs7QUFHdEM7RUFDRTtFQUFlO0VBQTJCO0VBQzFDO0VBQVc7OztBQUdiO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0U7OztBQUVGO0VBQ0U7RUFBZTtFQUF1Qjs7O0FBR3hDO0FBQ0E7RUFBcUQ7OztBQUNyRDtFQUNFO0VBQ0E7RUFDQSxZQUNFOzs7QUFHSjtFQUNFO0VBQ0E7OztBQUVGO0VBQStEOzs7QUFDL0Q7RUFBK0Q7OztBQUMvRDtFQUErRDs7O0FBQy9EO0VBQStEOzs7QUFDL0Q7QUFBQTtFQUNvRTs7O0FBQ3BFO0VBQWtFOzs7QUFDbEU7RUFBa0U7OztBQUNsRTtFQUFrRTs7O0FBQ2xFO0VBQWtFOzs7QUFDbEU7RUFBa0U7OztBQUNsRTtFQUFrRTs7O0FBQ2xFO0VBQWtFOzs7QUFDbEU7RUFBa0U7OztBQUVsRTtFQUF1QztJQUFPOztFQUFjO0lBQUs7OztBQUNqRTtFQUNFO0lBQU87SUFBWTs7RUFDbkI7SUFBTztJQUFZOzs7QUFFckI7RUFDRTtJQUErRDs7O0FDdmJqRTtBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFDSTs7O0FBT1I7QUFBQTtBQUFBO0VBRTZCOzs7QUFFN0I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFDSTs7O0FBTVI7RUFNSTtFQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFDSTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFBMEI7OztBQUMxQjtBQUFBO0VBRUk7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBTUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUtJO0VBQ0E7RUFDQTs7O0FBRUo7RUFFSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUNqTEE7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtFQUU2Qjs7O0FBTzdCO0VBQTJDOzs7QUFDM0M7RUFBMkM7OztBQUUzQztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFJQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7RUFDMkM7RUFBYTtFQUFjO0VBQW9COzs7QUFFMUY7RUFBcUM7OztBQUVyQztFQUNJO0VBQ0E7RUFDQSxZQUNJOzs7QUFHUjtFQUEwRDs7O0FBQzFEO0VBQTBEOzs7QUFDMUQ7RUFDSTtFQUNBOzs7QUFHSjtFQUlJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQTJDOzs7QUFDM0M7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQU1BOzs7QUFFSjtFQUFnRTs7O0FBQ2hFO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQW9FOzs7QUFFcEU7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUdBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0VBR0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUMvTUE7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7RUFFZ0M7OztBQUdoQztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVNKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFVO0VBQXFDOztBQUcvQztFQUFjOztBQUVkO0VBQ0k7RUFDQTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUFJO0VBQWlCOzs7QUFNekI7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFBaUI7RUFBNkI7O0FBQzlDO0VBQWlCOztBQUNqQjtFQUM2Qzs7O0FBTWpEO0VBQ0k7SUFBTztJQUFpRjs7RUFDeEY7SUFBTztJQUFrRjs7RUFDekY7SUFBTztJQUFrRjs7O0FBRTdGO0VBQ0k7OztBQUVKO0VBQ0k7SUFBOEQ7OztBQVNsRTtFQUNJOzs7QUFFSjtFQUNJO0lBQW1GOzs7QUFJdkY7RUFDSTtFQUNBO0VBQ0E7RUFVQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7O0FBQ0E7RUFBWTs7QUFFaEI7RUFBVzs7QUFDWDtFQUNJO0VBQ0E7O0FBVUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBS0E7RUFRQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlSO0VBQ0k7SUFBSzs7O0FBR1Q7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUFROzs7QUFHWjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQWtCOzs7QUFHdEI7RUFDSTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFJQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFLQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUFlOztBQUNmO0VBQ0k7O0FBQ0E7RUFBWTs7QUFFaEI7RUFBVzs7QUFDWDtFQUNJO0VBQ0E7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQUk7RUFBaUI7OztBQUV6QjtFQUNJO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtJQUE4Qjs7RUFDOUI7SUFBeUM7OztBQzdZN0M7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFZRjtFQUNJOzs7QUFHSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtJQUNFOztFQUVGO0lBQ0U7OztBQUdKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7SUFDRTtJQUNBO0lBQ0E7O0VBRUY7SUFDRTtJQUNBO0lBQ0E7O0VBRUY7SUFDRTtJQUNBO0lBQ0E7O0VBRUY7SUFDRTtJQUNBO0lBQ0E7O0VBRUY7SUFDRTtJQUNBO0lBQ0E7OztBQUdKO0VBQ0U7SUFDRTtJQUNBO0lBQ0E7O0VBRUY7SUFDRTs7O0FBR0o7RUFDRTtJQUNFOztFQUVGO0lBQ0U7OztBQUdKO0VBQ0U7SUFDRTs7RUFFRjtJQUNFOzs7QUFHSjtFQUNFO0lBQ0U7SUFDQTs7RUFFRjtJQUNFO0lBQ0E7O0VBRUY7SUFDRTtJQUNBOzs7QUFHSjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0lBQ0U7SUFDQTs7RUFFRjtJQUNFO0lBQ0E7OztBQUdKO0VBQ0U7OztBQUVGO0VBQ0U7QUFBQTtBQUFBO0FBQUE7SUFJRTs7O0FBR0o7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBU0Y7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7QUFBQTtJQUVFOzs7QUFHSjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtJQUNFO0lBQ0E7OztBQUdKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtFQUdFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtJQUFXOztFQUNYO0lBQVk7OztBQUVkO0VBQ0U7SUFDRTtJQUNBO0lBQ0E7OztBQU1KO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0lBQU87O0VBQ1A7SUFBTzs7O0FBRVQ7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0lBQThDO0lBQWlCOzs7QUFHakU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7RUFHRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFHRjtBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7QUFDQTtBQUFBO0FBQUE7RUFHQTs7O0FBRUY7QUFDQTtFQUNFOzs7QUFHRjtFQUNFO0lBQ0U7SUFDQTtBQUNBO0FBQUE7QUFBQTtJQUdBO0lBQ0E7SUFDQTtJQUNBOztBQUVGO0VBQ0E7SUFDRTs7O0FDbDdDSjtBQUFBO0FBQUE7QUFJQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZQUNJO0VBR0osWUFDSTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQTBEOzs7QUFDMUQ7RUFBMEQ7OztBQUUxRDtBQUFBO0VBRUk7RUFDQSxZQUNJOzs7QUFJUjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7RUFFSTtFQUNBLFlBQ0k7RUFHSjs7O0FBRUo7RUFBK0I7OztBQUMvQjtBQUFBO0VBRUk7RUFDQTtFQUNBLFlBQ0k7OztBQU1SO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlBQ0k7OztBQUlSO0FBQUE7RUFFSSxZQUNJOzs7QUFJUjtBQUFBO0VBRUk7OztBQUVKO0FBQUE7RUFFSSxZQUNJOzs7QUFJUjtBQUFBO0VBRUksWUFDSTs7O0FBTVI7RUFDSTtFQUNBO0VBQ0EsWUFDSTs7O0FBSVI7QUFBQTtFQUVJLFlBQ0k7OztBQUlSO0VBQ0k7RUFDQTtFQUNBLFlBQ0k7OztBQUtSO0VBQ0k7SUFBVzs7RUFDWDtJQUFXOzs7QUFFZjtFQUNJO0lBQVc7O0VBQ1g7SUFBVzs7O0FBRWY7RUFDSTtJQUFPO0lBQXVCOztFQUM5QjtJQUFPO0lBQXVCOztFQUM5QjtJQUFPO0lBQXVCOzs7QUFFbEM7RUFDSTtJQUFPOztFQUNQO0lBQU87OztBQUdYO0VBQ0k7QUFBQTtBQUFBO0FBQUE7SUFHdUM7OztBQ3hLM0M7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7QUFBQTtFQUVFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU1FO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7SUFDRTtJQUNBOztFQUVGO0lBQ0U7SUFDQTs7RUFFRjtJQUNFO0lBQ0E7O0VBRUY7SUFDRTtJQUNBOztFQUVGO0lBQ0U7SUFDQTs7O0FBR0o7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7RUFFRTtFQUNBOzs7QUM5WEY7RUFHSTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBSUE7RUFHQTtFQUVBO0VBQ0E7RUFDQTtFQUNBOztBQUlBO0VBQ0k7RUFDQTs7QUFRSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBRUE7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBS0o7RUFBMEM7O0FBQzFDO0VBQTBDOztBQUMxQztFQUEwQzs7QUFLMUM7RUFDSTtFQUNBOztBQUlKO0VBQ0k7RUFDQTtFQUNBOztBQUlKO0VBQ0k7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7O0FBSUo7RUFDSTtFQUNBOztBQUlKO0VBQ0k7RUFDQTs7QUFNSjtFQUNJO0VBQ0E7O0FBS0o7RUFDSTtFQUNBOztBQVNKO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQU1KO0VBQXNDOzs7QUFTMUM7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFtQztFQUFhO0VBQWM7O0FBQzlEO0VBQW1DO0VBQWE7RUFBYzs7QUFDOUQ7RUFBbUM7RUFBYTtFQUFjOztBQUM5RDtFQUFtQztFQUFhO0VBQWM7OztBQWU5RDtFQUNJO0VBQ0E7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7O0FBSUo7RUFDSTtFQUNBOztBQUlKO0VBQ0k7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7O0FBSUo7RUFDSTtFQUNBOztBQUtKO0VBQ0k7RUFDQTs7QUFNSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUFzQzs7O0FDdFAxQztFQUNJO0VBQ0E7RUFHQTs7QUFFQTtFQUFJOztBQUVKO0VBQ0k7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBUUE7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQTBDOztBQUMxQztFQUFtQztFQUFtRDs7QUFJdEY7RUFDSTs7QUFJSjtFQUEyQzs7QUFDM0M7RUFBZ0U7O0FBTWhFO0VBQ0k7RUFDQTs7QUFFSjtFQUFrRTs7QUFFbEU7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUEwQzs7QUFPMUM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOztBQVNKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7RUFBb0I7O0FBRXBCO0VBQ0k7RUFFQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7SUFBSzs7RUFDTDtJQUFPOzs7QUFHWDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBSztFQUFXOztBQUNoQjtFQUFJO0VBQVc7O0FBR25CO0VBQWU7OztBQVdmO0VBQ0k7RUFDQTtFQUNBOztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUE0Qjs7QUFDNUI7RUFBNkI7O0FBQzdCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7QUFFSjtFQUF3Qzs7QUFReEM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQWlDOztBQUdqQztFQUNJO0lBQWlCOzs7QUFJckI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQXFDOztBQUNyQztFQUEyQzs7QUFDM0M7RUFBZ0M7RUFBYzs7QUFDOUM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUEwQjs7QUFFMUI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUFxQjtFQUEwRDs7QUFFL0U7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUFrQjtFQUFrQjtFQUF1Qzs7QUFDM0U7RUFBaUY7O0FBS2pGO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUEyQjs7QUFJM0I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJOztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQXVDO0VBQXVDO0VBQTRCOztBQUMxRztFQUFxRTs7QUFDckU7RUFBd0I7RUFBZTtFQUFxQjtFQUFpQjs7QUFDN0U7RUFBdUI7RUFBcUM7O0FBRTVEO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQWtCOztBQU1sQjtFQUNJOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQU1SO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBWTs7QUFHaEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFBcUI7RUFBZ0I7O0FBQ3JDO0VBQW1CO0VBQWdCOztBQUNuQztFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7O0FBSUo7RUFBd0I7O0FBQ3hCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFBdUI7RUFBZ0I7O0FBT3ZDO0VBQ0k7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQXdDOztBQUN4QztFQUFxQzs7QUFDckM7RUFDd0M7O0FBQ3hDO0VBRThDOztBQUM5QztFQUEwQzs7QUFNMUM7RUFBd0Q7O0FBQ3hEO0VBQThEOzs7QUFPOUQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUFvQzs7QUFDcEM7RUFBZ0Q7RUFBYTtFQUFjO0VBQWlCOztBQUM1RjtFQUNJO0VBQ0E7RUFDQTs7O0FDdmxCUjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFBQTtFQUVBOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQU1BOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQThEOzs7QUFDOUQ7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7RUFDRSxZQUNFOzs7QUFHSjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0EsWUFDRTs7O0FBR0o7RUFBNEI7OztBQUM1QjtBQUFBO0VBRUU7RUFDQSxZQUNFOzs7QUFHSjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUNySEY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7SUFDRTs7O0FBR0o7RUFDRTtJQUNFOzs7QUFJSjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUM3RUY7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7RUFHSTs7O0FBSUo7RUFDSTs7O0FBR0o7QUFBQTtFQUVJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQVFKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtFQUdJOzs7QUFRSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtFQUdJOzs7QUFHSjtBQUFBO0FBQUE7RUFHSTtFQUNBOzs7QUFRSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFXSjtFQUE2Qjs7O0FBQzdCO0VBQTZCOzs7QUFDN0I7RUFBNkI7OztBQUM3QjtFQUE2Qjs7O0FBQzdCO0VBQTZCOzs7QUFDN0I7RUFBNkI7OztBQUM3QjtFQUE2Qjs7O0FBQzdCO0VBQTZCOzs7QUFFN0I7RUFBK0M7OztBQUMvQztFQUErQzs7O0FBQy9DO0VBQStDOzs7QUFDL0M7RUFBK0M7OztBQUMvQztFQUErQzs7O0FBQy9DO0VBQStDOzs7QUFDL0M7RUFBK0M7OztBQUMvQztFQUErQzs7O0FBSS9DO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTtBQUFBO0FBQUE7QUFBQTtJQUlJOzs7QUFRUjtFQUNJO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtFQUdJOzs7QUFHSjtFQUE4Qjs7O0FBQzlCO0VBQThCOzs7QUN0UTlCO0FBQUE7QUFBQTtBQUlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0FBQ0E7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FDakNKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUE0Qzs7O0FBQzVDO0VBQTRDOzs7QUFDNUM7RUFBNEM7OztBQUU1QztFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0U7SUFBTzs7RUFDUDtJQUFPOzs7QUFRVDtFQUNFO0lBQ0U7O0VBRUY7SUFDRTs7O0FBUUo7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7SUFBTzs7RUFDUDtJQUFPOzs7QUFJVDtFQUNFO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7O0VBRUY7SUFBaUU7OztBQUtuRTtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFBdUU7OztBQUN2RTtFQUF1RTs7O0FBQ3ZFO0VBQXVFOzs7QUFDdkU7RUFBdUU7OztBQUN2RTtFQUErRDs7O0FBQy9EO0VBQ0U7RUFDQTs7O0FBRUY7RUFBNkQ7OztBQ25IN0Q7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUFBO0FBQUE7RUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWNBO0FBQUE7QUFBQTtBQUFBO0VBSUU7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQU1BO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUVBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7OztBQUdGO0FBQUE7RUFFRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtFQUVFOzs7QUFHRjtBQUNBO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7OztBQUdGO0FBQUE7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFDQTtBQUFBO0VBRUU7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTtFQUNBOzs7QUFHRjtFQUNFO0lBQ0U7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOzs7QUFHSjtFQUNFO0FBQUE7QUFBQTtBQUFBO0lBSUU7SUFDQTs7RUFFRjtJQUNFO0lBQ0E7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOztBQUVGO0VBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQUtFO0lBQ0E7O0VBRUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0lBTUU7OztBQUdKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFOzs7QUM3bkJGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU9GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU1FOzs7QUFNRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBSUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBT0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFBMEM7OztBQUMxQztFQUFxRDs7O0FBTXJEO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBU0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUlBO0VBRUE7OztBQUVGO0VBQXdEO0VBQWlCOzs7QUFDekU7RUFDRTtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7O0FBRVQ7RUFDRTtJQUE0QjtJQUFpQjs7O0FBTy9DO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFBcUQ7OztBQUdyRDtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFNRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0lBQW1DO0lBQVc7OztBQUVoRDtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7OztBQWFGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFNRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQW1FOzs7QUFDbkU7RUFBcUU7OztBQUVyRTtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQXVEOzs7QUFNdkQ7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtFQUVFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBbUU7OztBQUduRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFBMkQ7OztBQUszRDtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLRjtFQUFvRDs7O0FBQ3BEO0VBQ0U7OztBQUtGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUErQzs7O0FBQy9DO0VBQTZDOzs7QUFDN0M7RUFDRTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUF1RDs7O0FDamR2RDtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQU9BO0VBQ0E7RUFHQTtFQUVBO0VBQ0E7OztBQUVGO0VBQ0U7SUFBd0I7SUFBVzs7O0FBSXJDO0VBQ0U7RUFDQTs7O0FBUUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFRRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtFQUVFOzs7QUFVRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFhRjtFQUFvRDs7O0FBQ3BEO0VBQW9EOzs7QUFDcEQ7RUFBb0Q7OztBQUNwRDtFQUFvRDs7O0FBQ3BEO0VBQW9EOzs7QUFVcEQ7RUFDRTs7O0FBRUY7RUFDRTs7O0FBaUJGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBLGFBQ0U7OztBQVdKO0VBQ0U7OztBQVNGO0VBQ0U7RUFDQTs7O0FBV0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBUUY7RUFDRTtFQUNBO0VBQ0E7OztBQVFGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUN0T0Y7RUFFRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUlBO0VBU0E7RUFDQTtFQUNBO0VBS0E7RUFDQTtFQUNBO0VBQ0E7OztBQU9GO0VBQ0U7RUFHQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUFzQzs7O0FBQ3RDO0VBQXNDOzs7QUFDdEM7RUFBc0M7OztBQUN0QztFQUFzQzs7O0FBS3RDO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQU9GO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUdBOzs7QUFJRjtFQUNFO0VBQ0E7OztBQUtGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBV0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFNRjtBQUFBO0VBRUU7RUFDQTs7O0FBT0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFTRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBSUE7OztBQU9GO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQU1GO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUlGO0VBQ0U7OztBQ3JTRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FDMUhGO0VBQ0k7RUFDQTtFQUNBOztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUtBOztBQU1KO0VBQ0k7OztBQUtSO0VBQ0k7SUFDSTs7O0FBSVI7RUFDSTtJQUNJOzs7QUFRUjtFQUtJO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlBQ0k7O0FBS0o7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUtKO0VBQ0k7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFLSjtFQUFxQjs7QUFDckI7RUFBcUI7O0FBR3pCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBWTs7QUFLaEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0VBQ0k7O0FBT1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0FBQUE7QUFBQTtFQUlJO0VBQ0E7RUFDQTs7QUFJSjtFQUVJO0VBQ0E7O0FBSUo7RUFFSTtFQUNBOztBQUlKO0VBQVU7O0FBRVY7RUFFSTtFQUNBO0VBQ0E7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFFSTs7QUFJSjtFQUVJOztBQUtSO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQW1COzs7QUFLM0I7RUFDSTtJQUNJO0lBQ0E7SUFDQTs7O0FBUVI7RUFDSTtBQUFBO0FBQUE7QUFBQTtJQUlJOztFQUdKO0FBQUE7SUFFSTs7O0FBWVI7RUFHSTtFQUNBOztBQU1JO0VBQWlCOztBQU1yQjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUVJOztBQUlKO0VBRUk7OztBQVNaO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFTQSxjQUNJO0VBRUo7RUFDQSxNQUNJO0VBRUo7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0lBQUs7OztBQUlUO0VBQ0k7RUFDQTs7O0FBS0o7RUFDSTs7O0FBR0o7RUFDSTtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7O0FBS1g7RUFDSTtFQUdBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFPQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0lBQ0k7SUFDQTs7RUFFSjtJQUNJO0lBQ0EsV0FDSTs7RUFHUjtJQUNJO0lBQ0EsV0FDSTs7RUFHUjtJQUNJO0lBQ0EsV0FDSTs7O0FBV1I7QUFBQTtFQUNJOztBQUdKO0FBQUE7RUFDSTtFQUNBOztBQUVBO0FBQUE7RUFBb0I7O0FBQ3BCO0FBQUE7RUFBb0I7O0FBRXBCO0FBQUE7QUFBQTtFQUVJO0VBQ0E7O0FBR0o7QUFBQTtBQUFBO0VBRUk7O0FBR0o7QUFBQTtFQUNJO0VBQ0E7O0FBRUE7QUFBQTtBQUFBO0VBRUk7O0FBTVI7QUFBQTtFQUNJO0VBQ0E7O0FBRUE7QUFBQTtBQUFBO0VBRUk7OztBQ2xmaEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQXlDOzs7QUFDekM7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUE0Qzs7O0FBRTVDO0VBQ0k7RUFDQTs7O0FDeERKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQWtCSjtFQUNJOztBQUVBO0VBQ0k7OztBQVVSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FDeEVBO0VBQXVCO0VBQVk7O0FBQ25DO0VBQTZCOztBQUM3QjtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUMwQzs7QUFDMUM7RUFBbUM7OztBRG1FdkM7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7SUFBSzs7O0FBR1Q7RUFDSTtJQUNJOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTs7O0FBS1o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU9KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBRWpNSjtFQU9FO0VBQ0E7RUFFQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBUUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUdBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVNGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQU1GO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFNRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFLRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0Y7RUFDRTs7O0FBSUY7QUFBQTtFQUVFO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBS0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQU1BO0VBQ0E7RUFDQTtFQUlBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBTUU7OztBQUVGO0VBQ0U7OztBQWdCRjtBQUFBO0VBRUU7OztBQU1GO0VBQ0U7OztBQUVGO0VBQ0U7OztBQXlCRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0Esa0JBQ0U7RUFJRjtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtJQUNFOzs7QUFLSjtFQUNFO0lBQ0U7OztBQWdCSjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBTUY7RUFDRTtFQUNBOzs7QUFZRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQWFGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBLFlBQ0U7OztBQU9KO0FBQUE7RUFFRTs7O0FDcGJGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTs7QUFHRjtFQUNFOzs7QUFJSjtFQUNFO0lBQVc7O0VBQ1g7SUFBTTs7RUFDTjtJQUFNOztFQUNOO0lBQU07O0VBQ047SUFBTTs7O0FBTVI7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTs7O0FBSUo7RUFDRTtJQUFLOztFQUNMO0lBQU87OztBQUdUO0VBR0U7SUFDRTs7O0FBT0o7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFOzs7QUFJSjtFQUNFO0lBQVc7O0VBQ1g7SUFBTTs7O0FBR1I7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtJQUFXOztFQUNYO0lBQU07OztBQUdSO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0FBQUE7SUFFRTs7O0FBT0o7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtJQUFLOztFQUNMO0lBQU87OztBQUdUO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBOztBQUdGO0VBQ0U7RUFDQTs7O0FBT0o7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQWtCO0VBQVU7O0FBQzVCO0VBQWtCO0VBQVU7OztBQUk1QjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBOzs7QUFJSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQU1GO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOztBQUVBO0VBQ0U7OztBQUlKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUY7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7OztBQU9KO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7OztBQU1GO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FDMWZGO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUF5Qjs7QUFHekI7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQU07O0FBR047RUFDSTtFQUNBOztBQUNBO0FBQUE7RUFDZTtFQUFhOztBQVFoQztFQUNJO0VBQ0E7O0FBQ0E7QUFBQTtFQUNlO0VBQWE7O0FBSWhDO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0FBQUE7RUFDZTtFQUFhOztBQUloQztFQUNJO0VBQ0E7O0FBSUo7RUFDSTs7QUFJSjtFQUNJOztBQUtKO0VBQ0k7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7O0FBSUo7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTs7O0FBT1I7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7O0FDekZSO0VBQ0k7RUFDQTtFQUNBLEtBaEM0QjtFQWlDNUIsU0F2QzRCO0VBd0M1QixZQTNCNEI7RUE0QjVCLGVBN0M0QjtFQThDNUI7RUFFQTs7QUFFQTtFQUNJLGVBbER3Qjs7QUFxRDVCO0VBQ0k7RUFDQTs7QUFHSjtFQUVJLFlBM0N3Qjs7QUE2Q3hCO0VBQ0k7OztBQVVaO0VBQ0k7RUFDQSxLQXhFNEI7RUF5RTVCO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsZUEvRTRCO0VBZ0Y1QixZQS9ENEI7RUFnRTVCLFlBOUQ0QjtFQStENUI7RUFDQTtFQUVBLFlBQ0k7O0FBR0o7RUFDSSxlQXpGd0I7O0FBNEY1QjtFQUVJLFlBN0V3QjtFQThFeEIsWUFDSTs7O0FBU1o7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdBM0c0QjtFQTRHNUIsUUE5RzRCO0VBK0c1QjtFQUNBO0VBR0E7RUFDQTtFQUdBLGVBMUg0QjtFQTZINUI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLE9BNUc0QjtFQStHNUI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFDSTs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFNSjtFQUNJOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBS1I7RUFDSTtFQUNBLFlBcEp3Qjs7QUF3SjVCO0VBQ0ksWUF2SndCO0VBd0p4Qjs7QUFJSjtFQUNJLFlBQ0k7O0FBT1I7RUFDSSxPQTlLd0I7RUErS3hCO0VBQ0E7O0FBRUE7RUFDSSxZQUNJOztBQU1aO0VBQ0ksT0F2THdCO0VBd0x4QjtFQUNBO0VBQ0E7O0FBWUo7RUFDSTtFQUNBLE9BN053QjtFQThOeEI7RUFDQTs7QUFFQTtFQUFzQjs7QUFXMUI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBUVI7RUFDSSxRQWxRd0I7RUFtUXhCO0VBQ0EsZUF2UXdCO0VBd1F4QjtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUNJLE9BOVFvQjtFQStRcEI7O0FBUVI7RUFFSSxPQXRRd0I7O0FBd1F4QjtFQUNJO0VBQ0EsWUF0UW9COztBQXlReEI7RUFDSSxZQXhRb0I7RUF5UXBCOztBQUdKO0VBQ0ksT0FyUm9COztBQXdSeEI7RUFDSSxPQXJSb0I7RUFzUnBCOzs7QUFZWjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOztBQU1BO0VBQ0k7O0FBTUo7RUFDSTs7QUFPSjtFQUNJOztBQUdKO0VBQ0k7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7OztBQW9CWjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFJQTs7QUFHSjtFQUNJO0VBQ0E7O0FBRUE7RUFBd0I7O0FBRXhCO0VBQ0k7RUFDQTs7QUFNSjtFQUlJOztBQUdKO0VBQTRDOzs7QUFVcEQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0o7RUFBa0Q7OztBQUNsRDtFQUFrRDs7O0FDMWNsRDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7O0FBS1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFDSTs7O0FBS1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7O0FBS0E7RUFBaUI7O0FBQ2pCO0VBQWlCO0VBQTRCOztBQUs3QztFQUFpQjs7QUFDakI7RUFBaUI7O0FBS3JCO0VBQ0k7RUFDQTs7QUFFQTtFQUFpQjs7QUFDakI7RUFBaUI7OztBQVdyQjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBaUI7OztBQVF6QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlBQ0k7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlBQ0k7O0FBS1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUtSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7O0FBRUE7RUFBZTs7QUFLdkI7RUFDSTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFNWjtFQUNJOzs7QUFTQTtBQUFBO0VBQ0k7O0FBSUE7QUFBQTtFQUFpQjs7QUFDakI7QUFBQTtFQUFpQjs7QUFHYjtBQUFBO0VBQWlCOztBQUNqQjtBQUFBO0VBQWlCO0VBQThCOztBQUkvQztBQUFBO0VBQWlCOztBQUNqQjtBQUFBO0VBQWlCOztBQUlqQjtBQUFBO0VBQWlCOztBQUNqQjtBQUFBO0VBQWlCOztBQUtyQjtBQUFBO0VBQ0k7O0FBRUE7QUFBQTtFQUNJO0VBQ0E7O0FBS0o7QUFBQTtFQUFlOztBQUVmO0FBQUE7RUFDSTtFQUNBOztBQUVBO0FBQUE7RUFBZTs7QUFLbkI7QUFBQTtFQUFTOztBQUNUO0FBQUE7RUFBUzs7O0FDNVVyQjtFQUdFO0VBQ0E7RUFJQTtFQUNBO0VBQ0E7RUFHQTtFQUVBO0VBSUE7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFJQTtFQUNBO0VBR0E7RUFDQTtFQUtBOzs7QUFNRjtFQUNFOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlBQ0U7OztBQVdKO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQVdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBT0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQU1GO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtFQUVFOzs7QUFFRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBUUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQU9GO0VBQ0U7SUFDRTs7O0FBUUo7RUFDRTtJQUNFOzs7QUN0UEo7RUFPRTtFQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUlBOztBQUVBO0FBQUE7QUFBQTtFQUdFOzs7QUFLSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBSUE7RUFJQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTs7O0FBRUY7RUFDRTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTs7O0FBU0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBLFlBQ0U7OztBQVVKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0EsV0FDRTs7O0FBR0o7RUFDRTtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7O0FBRVQ7RUFDRTtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOzs7QUFHVDtFQUNFO0lBQ0U7SUFDQTs7O0FBR0o7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUtGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBTUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBSUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBVUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFhRjtFQUNFO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7O0VBRUY7SUFDRTtJQUNBO0lBQ0E7O0VBRUY7SUFDRTs7RUFFRjtJQUNFO0lBQ0E7SUFDQTtJQUNBO0lBSUE7SUFDQTs7RUFFRjtJQUE2Qjs7RUFDN0I7SUFDRTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBSUY7SUFBaUM7O0VBQ2pDO0lBQ0U7SUFDQTtJQUNBOzs7QUFLSjtFQUNFO0lBQ0U7OztBQzlWSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU1KO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFRSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUF3RTs7O0FBQ3hFO0VBQXdFOzs7QUFDeEU7RUFBdUU7OztBQUN2RTtFQUEwRTs7O0FBQzFFO0VBQXdFOzs7QUFFeEU7RUFDSTtJQUFXOztFQUNYO0lBQU07OztBQUVWO0VBQ0k7SUFBVzs7RUFDWDtJQUFNOzs7QUFFVjtFQUNJO0lBQVc7O0VBQ1g7SUFBTTs7O0FBRVY7RUFDSTtJQUFXOztFQUNYO0lBQU07OztBQUVWO0VBQ0k7SUFBZ0I7O0VBQ2hCO0lBQU07O0VBQ047SUFBTTs7O0FBS1Y7RUFBb0Y7OztBQUNwRjtFQUFvRjs7O0FBQ3BGO0VBQW1GOzs7QUFDbkY7RUFBc0Y7OztBQUN0RjtFQUFvRjs7O0FBRXBGO0VBQ0k7SUFBSzs7RUFDTDtJQUFNOztFQUNOO0lBQU07O0VBQ047SUFBTTs7RUFDTjtJQUFNOztFQUNOO0lBQU87OztBQUVYO0VBQ0k7SUFBSzs7RUFDTDtJQUFNOztFQUNOO0lBQU07O0VBQ047SUFBTzs7O0FBRVg7RUFDSTtJQUFLOztFQUNMO0lBQU07O0VBQ047SUFBTTs7RUFDTjtJQUFPOzs7QUFFWDtFQUNJO0lBQUs7O0VBQ0w7SUFBTTs7RUFDTjtJQUFNOztFQUNOO0lBQU07O0VBQ047SUFBTzs7O0FBRVg7RUFDSTtJQUFLOztFQUNMO0lBQU07O0VBQ047SUFBTTs7RUFDTjtJQUFNOztFQUNOO0lBQU07O0VBQ047SUFBTTs7RUFDTjtJQUFPOzs7QUFHWDtFQUNJO0lBQTBCOzs7QUNuSDlCO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSjtFQUNJOzs7QUFRSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtJQUFvQzs7RUFDcEM7SUFBb0M7OztBQ3BFeEM7QUFBQTtBQUFBO0FBSUE7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0VBR0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFDSTtFQUVKO0VBQ0E7RUFDQTtBQUNBO0FBQUE7QUFBQTtFQUdBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0k7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0k7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7QUFDQTtBQUFBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBLFlBQ0k7OztBQUdSO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWVBO0FBQUE7QUFFQTtBQUNJO0FBQUE7QUFBQTtFQUdBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0FBQ0E7QUFBQTtBQUFBO0VBR0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFHQTtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFHSjtBQUNBO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7OztBQ3pNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQU1KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBa0I7RUFBc0I7O0FBRXhDO0VBQ0k7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBS1I7RUFDSTtFQUNBOztBQUNBO0VBQVc7O0FBQ1g7RUFBVzs7O0FBSWY7RUFDSTtFQUNBOztBQUNBO0VBQWtCOztBQUNsQjtFQUFVOzs7QUFJZDtFQUNJO0VBQ0E7RUFDQTs7QUFDQTtFQUFrQjs7QUFDbEI7RUFBVTs7O0FBTWQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBeUM7RUFBZTtFQUF3Qjs7O0FBQ2hGO0VBQ0k7RUFBbUI7RUFDbkI7RUFBMkI7RUFBdUI7OztBQUV0RDtFQUNJO0VBQWlCO0VBQThCO0VBQXdDO0VBQ3ZGO0VBQXFCO0VBQW1CO0VBQWE7OztBQUV6RDtFQUEyQztFQUFlOzs7QUFFMUQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTs7QUFDVjtFQUNJO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOzs7QUFJUjtFQUE2Qjs7O0FBQzdCO0VBQThCOzs7QUFFOUI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FDN1BKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7RUFHRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFO0VBQ0E7OztBQzFHRjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQU9BO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFRSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQWFKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZQUNJOztBQVNSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZQUNJOztBQU9SO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBS0o7RUFDSTtFQUNBOzs7QUFVUjtFQUNJOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTs7QUFJSjtFQUNJO0VBQ0E7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOzs7QUNoTFI7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7OztBQU9GO0VBQXFEOzs7QUFDckQ7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBT0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUErQjtFQUFhO0VBQWM7OztBQUcxRDtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBUUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTs7O0FBRUY7RUFBbUM7OztBQUNuQztFQUNFOzs7QUFhRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBSUY7RUFDRTtFQUNBOzs7QUFNRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFVRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQ25QRjtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFzQkE7RUFDRTtJQUNFOztFQUVGO0lBQ0U7OztBQUdKO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFHQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFHQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0lBQ0U7OztBQ3BFSjtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUE7RUFDRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUNBRjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQU1BO0VBQ0E7O0FBR0k7RUFDSTs7QUFESjtFQUNJOztBQURKO0VBQ0k7O0FBREo7RUFDSTs7QUFESjtFQUNJOztBQURKO0VBQ0k7O0FBREo7RUFDSTs7QUFESjtFQUNJOztBQURKO0VBQ0k7O0FBREo7RUFDSTs7QUFESjtFQUNJOztBQURKO0VBQ0k7O0FBS1I7RUFDSTs7O0FBSVI7RUFDSTtJQUFPO0lBQVk7O0VBQ25CO0lBQU87SUFBWTs7O0FBR3ZCO0VBQ0k7SUFDSTtJQUNBOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFVSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQ3pHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUNuQ0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7RUFFRTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7OztBQ3RPRjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUVKO0VBQ0k7O0FBR0o7RUFDSTs7QUFHSjtFQUNJOztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQU9KO0VBQ0k7OztBQUlSO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOztBQUVKO0VBQ0k7OztBQ3BDUjtFQUNFO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFBMkM7RUFBa0M7RUFBc0M7OztBQUNuSDtFQUEyQztFQUF1QztFQUFxQzs7O0FBQ3ZIO0VBQTJDO0VBQXNDO0VBQW1DOzs7QUFDcEg7RUFBMkM7RUFBOEM7RUFBc0M7OztBQUMvSDtFQUEyQztFQUF1QztFQUFzQzs7O0FBQ3hIO0VBQTJDO0VBQWdDO0VBQW1DOzs7QUFHOUc7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBT0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQU1GO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFPRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQU1GO0VBQTREOzs7QUFDNUQ7RUFBNEQ7RUFBaUI7OztBQUM3RTtFQUE0RDtFQUFpQjs7O0FBQzdFO0VBQW9GO0VBQWlCOzs7QUFFckc7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQTJEOzs7QUFDM0Q7RUFBMkQ7RUFBaUI7OztBQUM1RTtFQUEyRDtFQUFpQjs7O0FBQzVFO0VBQW1GO0VBQWlCOzs7QUFJcEc7RUFBcUY7OztBQUNyRjtFQUFxRjs7O0FBR3JGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTs7O0FBSUY7RUFBMkI7OztBQUMzQjtFQUNFO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBOzs7QUFJRjtBQUFBO0VBRUU7RUFDQTs7O0FBRUY7QUFBQTtFQUVFOzs7QUFFRjtBQUFBO0VBRUU7OztBQUVGO0FBQUE7RUFFRTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTs7O0FDblJGO0VBQ0U7OztBQVVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQU9GO0VBQ0U7RUFDQTtFQUNBOzs7QUFLRjtFQUtFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQThCO0VBQVU7RUFBVzs7O0FBZW5EO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBOzs7QUFFRjtFQUFnQztFQUFVO0VBQVc7OztBQUVyRDtFQUNFO0VBQ0E7RUFDQTs7O0FBU0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBT0Y7RUFBbUI7OztBQUNuQjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUFrQjs7O0FBTWxCO0FBQUE7RUFFRTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQVFGO0VBQXNCOzs7QUFDdEI7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQ3JNRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUNyRUY7RUFFUTtBQUFBO0lBRUksT0FQaUI7SUFRakIsY0FQbUI7SUFRbkIsZUFSbUI7OztBQWEvQjtFQUNJO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBTUE7RUFDQTtFQUNBOzs7QUFpQko7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQWtCOztBQUVsQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlSO0VBR0k7SUFBTzs7RUFDUDtJQUFPOzs7QUFLWDtFQUNJO0lBQ0k7SUFDQTtJQUNBOzs7QUFNUjtFQUNJO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBUUk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBTUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSSxPQTNJYTtFQTRJYjs7QUFnQko7RUFDSTs7QUFFQTtFQUNJOztBQUVBO0VBQWlCOztBQUdyQjtFQUFpQzs7QUFFakM7RUFDSTtFQUNBO0VBQ0E7O0FBT1I7RUFDSTs7QUFFQTtFQUFXOztBQUdmO0VBQWdCOztBQUVoQjtFQUFnQjs7QUFDaEI7RUFBZ0I7O0FBR2hCO0VBQ0k7RUFDQTtFQUNBOztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQVdoQjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFBZ0I7O0FBSWhCO0VBQXNCOztBQUl0QjtFQUFxQzs7QUFDckM7RUFBcUM7O0FBR3JDO0VBQXFDOztBQUtyQztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJQTtFQUNJO0VBQ0E7O0FBT0E7RUFBVTs7QUFFVjtFQUFnQjs7QUFPaEI7RUFBYzs7QUFFZDtFQUFpQjs7QUFHYjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUtaO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBT0E7RUFDSSxPQTdTYTtFQThTYjs7QUFFQTtFQUFnQjs7QUFHcEI7RUFBYzs7QUFXZDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBS0o7RUFDSTtFQUNBOztBQU1BO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlSO0VBQ0k7RUFDQTtFQUNBOztBQVFBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQVdKO0VBQ0k7RUFDQTtFQUNBOztBQWFKO0VBQ0k7RUFDQTtFQUtBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFPSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFNSjtFQUNJO0VBQ0E7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7O0FBWUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFTQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBTUo7RUFDSTs7QUFPSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUF5Qjs7QUFDekI7RUFBeUI7O0FBQ3pCO0VBQXlCOztBQUN6QjtFQUF5Qjs7QUFDekI7RUFBeUI7O0FBQ3pCO0VBQXlCOztBQUN6QjtFQUF5Qjs7QUFDekI7RUFBeUI7O0FBRXpCO0VBQ0k7RUFDQTtFQUNBOztBQWVSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUlBO0VBQ0E7O0FBT0o7QUFBQTtFQUVJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBS0E7O0FBSVI7RUFDSTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBYTs7O0FBVWpDO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFNQTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUErQko7RUFDSTtJQUFPO0lBQVk7O0VBQ25CO0lBQU87SUFBWTs7O0FBR3ZCO0VBQ0k7SUFBTzs7RUFDUDtJQUFPOzs7QUFHWDtBQUFBO0VBRUk7RUFDQTs7O0FBR0o7RUFDSTs7O0FBS0o7RUFDSTtBQUFBO0lBRUk7OztBQThDSjtBQUFBO0VBRUksWUFDSTs7O0FBVVo7RUFFUTtBQUFBO0lBQ1c7OztBQUtmO0VBQ0ksYUF4QzRCO0VBeUM1QixnQkF6QzRCOztBQTRDaEM7RUFDSSxhQS9DNEI7RUFnRDVCLGdCQWhENEI7RUFpRDVCLFdBaEQ0Qjs7QUFrRDVCO0VBQ0ksYUFwRHdCO0VBcUR4QixnQkFyRHdCOztBQTJEaEM7QUFBQTtBQUFBO0FBQUE7RUFJSSxXQTlENEI7O0FBbUVoQztBQUFBO0FBQUE7QUFBQTtBQUFBO0VBS0k7RUFDQTs7QUFHSjtFQUEwQzs7O0FBa0IxQztFQUNJLGFBakc0QjtFQWtHNUIsZ0JBbEc0QjtFQW1HNUIsY0FyRzRCO0VBc0c1QixlQXRHNEI7O0FBeUdoQztFQUNJLGFBM0c0QjtFQTRHNUIsZ0JBNUc0QjtFQTZHNUIsY0E1RzRCO0VBNkc1QixlQTdHNEI7RUE4RzVCLFdBN0c0Qjs7QUErRzVCO0VBQ0ksYUFsSHdCO0VBbUh4QixnQkFuSHdCOztBQXVIaEM7QUFBQTtBQUFBO0FBQUE7RUFJSSxXQXpINEI7O0FBOEhoQztFQUNJOztBQUtKO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLSTtFQUNBOztBQUlKO0VBQTBDOztBQUMxQztFQUEwQzs7O0FDNzBCOUM7RUFDSTtFQUNBO0VBSUE7O0FBRUE7RUFDSTtFQUNBOzs7QUFpQlI7RUFDSTtFQUNBO0VBQ0E7RUFNQTtFQUNBO0VBa0JBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBS1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBa0JKO0VBQ0k7SUFBTztJQUFZOztFQUNuQjtJQUFPO0lBQVk7OztBQUd2QjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7SUFBMEM7OztBQUs5QztFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQW9COzs7QUFHeEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVNKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVk7OztBQUtoQjtFQUNJO0VBQ0E7OztBQVdKO0VBQ0k7OztBQWNBO0VBQ0k7RUFDQTs7QUFLSjtFQUNJOzs7QUFnQlI7RUFHSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFJQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVk7OztBQUdoQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBWTs7QUFFWjtFQUFVOztBQUlWO0VBQWdCOztBQUNoQjtFQUFnQjs7QUFDaEI7RUFBZ0I7O0FBRWhCO0VBQWlCOztBQUNqQjtFQUE2Qjs7O0FBR2pDO0FBQUE7RUFFSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQWU7RUFBYTs7QUFFNUI7RUFBaUI7RUFBd0M7O0FBQ3pEO0VBQWtCO0VBQXdDOzs7QUFHOUQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFlO0VBQWE7O0FBRTVCO0VBQWtCOztBQUNsQjtFQUFrQjtFQUF3Qzs7O0FDN1k5RDtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtBQUNBO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQUE7RUFFQTs7O0FBR0Y7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQ3BkRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFBQTtFQUVBOzs7QUFHRjtBQUFBO0FBQUE7RUFHRTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7RUFDRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUNBO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQTtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUNBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFHRjtBQUNBO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFBQTtFQUVFO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtBQUFBO0FBRUE7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtBQUNBO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTs7O0FDNVlGO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTs7QUFLQTtFQUFZOztBQWRoQjtFQWVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBT0E7RUFBVTs7QUFDVjtFQUVJO0VBQ0E7RUFDQTs7QUFJSjtFQUVJO0VBQ0E7O0FBQ0E7RUFDZ0I7RUFBZ0M7O0FBSXBEO0VBQ0k7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7QUFJSjtFQUFpQjtFQUFpQjs7QUFDbEM7RUFBaUI7RUFBaUI7O0FBQ2xDO0VBQWlCO0VBQWlCOztBQUNsQztFQUFpQjtFQUFpQjs7QUFDbEM7RUFBaUI7RUFBaUI7O0FBR2xDO0VBQThCOztBQUM5QjtFQUE4Qjs7QUFDOUI7RUFBOEI7O0FBQzlCO0VBQThCOztBQUc5QjtFQUVJOztBQU1KO0VBRUk7O0FBR0o7RUFFSTtFQUNBO0VBQ0E7O0FBR0o7RUFFSTtFQUNBOztBQVNKO0VBR0k7RUFDQTtFQUNBOztBQUtKO0VBR0k7RUFDQTs7QUFHSjtFQUdJO0VBQ0E7RUFDQTs7QUFHSjtFQUdJO0VBQ0E7RUFDQTs7O0FBV1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7QUFJSjtFQUVJO0VBQ0E7RUFDQTs7QUFFSjtFQUVJO0VBQ0E7RUFDQTs7QUFJSjtFQUdJO0VBQ0E7RUFDQTs7QUFFSjtFQUdJO0VBQ0E7RUFDQTs7O0FDblNSO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FDNURGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUFxQzs7O0FBQ3JDO0VBQXNDOzs7QUFFdEM7QUFBQTtFQUN1RDs7O0FBQ3ZEO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFLRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0lBQ0U7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOzs7QUNsSEo7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FDckdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtFQUdFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtFQUVFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtFQUVFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQ25PRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUlFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQ2xKRjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFTQTtFQUNBO0VBRUE7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFJQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQU1KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFLQTs7O0FBc0NKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBU0o7RUFDSTtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7O0FBRVg7RUFDSTs7O0FBR0o7RUFDSTtJQUFnQjs7O0FBSXBCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7RUFHQTtFQUNBOzs7QUFLSjtBQUFBO0VBRUk7RUFDQTs7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7OztBQUlKO0VBQ0k7OztBQU1KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLSjtFQUNJO0lBQ0k7OztBQzlWUjtFQUNJOzs7QUFRQTtBQUFBO0FBQUE7RUFHSTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQUk7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJOzs7QUFPSjtFQUNJO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUlBO0VBQ0E7RUFDQTs7O0FBR1I7RUFDSTtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7O0FBTVg7RUFBZTs7O0FBQ2Y7RUFBcUI7OztBQUVyQjtFQUNJO0lBQU87O0VBQ1A7SUFBTzs7O0FBSVg7RUFDSTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdSO0VBQ0k7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTs7O0FBR1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7O0FBQ0E7RUFBdUI7RUFBVTs7O0FBRXJDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBOztBQUVBO0VBQ0k7O0FBSUo7RUFFSTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7RUFDQTs7QUFDQTtFQUFZO0VBQXVDOzs7QUFJM0Q7RUFDSTtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7O0FBU1A7RUFBYTs7QUFDYjtFQUFhOzs7QUFJakI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQW9COzs7QUFHcEI7RUFDSTtFQUNBO0VBQ0E7RUFHQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7OztBQUdSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUFZOztBQUNaO0VBQVk7O0FBQ1o7RUFBWTs7O0FBSWhCO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0VBQWE7O0FBQ2I7RUFDSTtFQUNBO0VBQ0E7OztBQVFSO0VBQ0k7RUFDQTs7O0FBT0o7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlBO0VBQ0k7RUFDQTs7O0FBR1I7RUFDSTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7OztBQU9KO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQ3hmSjtFQUNJOzs7QUFHSjtFQUNJOztBQUNBO0VBQUk7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBb0I7RUFBa0M7OztBQUd0RDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOzs7QUFLUjtFQUNJO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBSUE7RUFDQTtFQUNBOztBQUdKO0VBQXFCOzs7QUFFekI7RUFDSTtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7O0FBRVg7RUFBZTs7O0FBQ2Y7RUFBcUI7OztBQUNyQjtFQUNJO0lBQU87O0VBQ1A7SUFBTzs7O0FBSVg7RUFBK0I7OztBQUMvQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR1I7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBOzs7QUFHUjtFQUNJO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTs7O0FDcExKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBRUY7QUFBQTtFQUVFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0VBR0U7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUMzS0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtBQUNBO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFNRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtBQUVBO0VBQ0U7RUFDQTs7O0FBTUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFHRjtFQUNFO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOzs7QUFFVDtFQUNFO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87OztBQUdUO0VBQ0U7RUFDQTs7O0FBTUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBTUY7RUFDRTs7O0FBTUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQU1BOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBZUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtJQUNFOztBQUVGO0VBQ0E7SUFDRTs7QUFFRjtBQUFBO0FBQUE7RUFHQTtJQUNFOztFQUVGO0lBQ0U7OztBQUlKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7RUFDRTs7O0FBU0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUlGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFrQkY7QUFBQTtFQUNxRjs7O0FBRXJGO0FBQUE7RUFDc0Y7RUFBYTtFQUFjOzs7QUFFakg7QUFBQTtFQUNvRztFQUFTO0VBQWE7OztBQUsxSDtFQUlJO0FBQUE7SUFBMkI7O0VBSTdCO0lBQXVFOztFQUN2RTtJQUF1RTs7O0FBV3pFO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLRTs7O0FBSUY7RUFDRTtJQUNFO0lBQ0E7SUFDQTs7RUFLRjtJQUNFO0lBQ0E7SUFDQTtJQUNBOzs7QUM5V0o7RUFDSTtFQU1BO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQU1BO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7QUFHSjtFQUNJO0VBQ0EsWUFDSTs7O0FBT1o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0k7OztBQVFKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBVUo7RUFDSTs7O0FBRUo7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQ2pMSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7OztBQUtGO0VBQWdDOzs7QUFHaEM7QUFBQTtBQUVBO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUNBO0VBQ0U7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBS0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQW9DO0VBQWlCOzs7QUFDckQ7RUFBb0M7RUFBOEI7RUFBWTs7O0FBQzlFO0VBQW9DO0VBQThCO0VBQVk7OztBQUU5RTtBQUFBO0FBQUE7QUFHQTtFQUFhO0VBQWU7RUFBeUI7RUFBdUI7OztBQUU1RTtBQUFBO0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBZ0I7RUFBZTtFQUFxQjs7O0FBQ3BEO0VBQTZCOzs7QUFDN0I7RUFBaUI7RUFBaUI7RUFBbUI7RUFBa0I7OztBQUN2RTtFQUFnQjtFQUFpQjtFQUFtQjs7O0FBQ3BEO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFBQTtFQUVBOzs7QUFFRjtBQUFBO0FBQUE7RUFFNEI7RUFBZ0I7RUFBaUI7OztBQUM3RDtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQTBDO0VBQWE7RUFBbUI7RUFBbUI7OztBQUM3RjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQ25JRjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7O0FBSVI7QUFBQTtBQUFBO0VBR0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUM5R0o7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQU9BOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFPRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBT0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0lBQ0U7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOzs7QUFHSjtFQUNFO0lBQ0U7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOztFQUVGO0lBQ0U7O0VBRUY7SUFDRTs7O0FBR0o7RUFDRTtJQUNFOztFQUVGO0lBQ0U7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOzs7QUFHSjtFQUNFO0lBQ0U7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOztFQUVGO0lBQ0U7O0VBRUY7SUFDRTs7O0FBR0o7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0lBQ0U7SUFDQTs7RUFFRjtJQUNFO0lBQ0E7O0VBRUY7SUFDRTtJQUNBOzs7QUFHSjtFQUNFO0lBQ0U7SUFDQTs7RUFFRjtJQUNFO0lBQ0E7O0VBRUY7SUFDRTtJQUNBOzs7QUMzUko7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUtBOzs7QUFLRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUlBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7QUFBQTtJQUNpQztJQUFrQjs7O0FBSXJEO0FBQUE7RUFFRTs7O0FBRUY7QUFBQTtFQUlFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7QUFBQTtFQUVFO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQU9GO0FBQUE7RUFFRTtFQUNBO0VBQ0E7OztBQU9GO0VBQ0U7OztBQUVGO0FBQUE7RUFFRTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUtGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQXNFOzs7QUFDdEU7RUFBc0U7OztBQUN0RTtFQUFzRTs7O0FBQ3RFO0VBQXNFOzs7QUFHdEU7QUFBQTtFQUVFOzs7QUFlRjtFQUNFO0VBQ0E7OztBQU9GO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7O0FBR1Q7RUFDRTtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOzs7QUFFVDtBQUFBO0VBRUU7RUFDQTs7O0FBVUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUlGO0FBQUE7RUFFRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FDallGO0VBQXdCOzs7QUFDeEI7RUFBaUM7OztBQUdqQztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBbUM7OztBQUNuQztFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFxQzs7O0FBR3JDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQXlDOzs7QUFFekM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBO0VBQ0E7OztBQU1KO0VBQXlFOzs7QUFDekU7RUFDSTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFPSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOzs7QUFTWDtFQUNJO0VBQ0E7OztBQVFKO0VBQ0k7RUFNQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUFnQzs7O0FBR2hDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQXNDOzs7QUFFdEM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBdUM7OztBQUl2QztFQUNJO0lBQ0k7SUFDQTtJQUNBOztFQUVKO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7OztBQzVPUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FDVEo7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0FBQUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0FBQUE7RUFDSTtFQUNBO0VBQ0E7O0FBSVI7QUFBQTtBQUFBO0FBQUE7RUFFSTs7QUFHSjtBQUFBO0FBQUE7QUFBQTtFQUVJOztBQUdKO0FBQUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUNqQlI7RUFDSTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBTUE7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUVBOztBQUNBO0VBQXlCOztBQXhCN0I7RUEwQkk7OztBQUtKO0VBQ0k7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUVBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBb0JKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQWFKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFXSjtFQUNJOztBQUlKO0VBRVE7SUFDSTs7O0FBUVI7RUFDSTtFQUNBOztBQUtSO0VBQ0k7O0FBRUE7RUFDSTs7QUFHSjtFQUNJOztBQUtSO0VBRVE7SUFDSTs7O0FBUVI7RUFDSTtFQUNBOztBQUtSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7RUFBbUI7O0FBQ25CO0VBQ0k7RUFDQTtFQUNBOztBQUlKO0VBQ0k7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZQUNJO0VBRUosWUFDSTs7QUFJSjtFQUFNOztBQUdWO0VBRVE7SUFDSTtJQUNBO0lBQ0EsWUFDSTs7O0FBUVo7RUFDSTtFQUNBO0VBQ0EsWUFDSTs7QUFLWjtFQUNJOztBQUVBO0VBQWdDO0VBQXFCOztBQUNyRDtFQUFnQzs7QUFHcEM7RUFDSTtFQUNBOzs7QUFVWjtFQUNJO0VBQ0E7RUFDQTs7QUFDQTtFQUFXOztBQUdYO0VBQXdEOztBQUN4RDtFQUF3RDs7QUFHeEQ7RUFBb0M7O0FBR3BDO0VBQ0k7RUFDQTtFQUNBO0VBRUE7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlBQ0k7RUFFSjtFQUNBO0VBQ0E7RUFDQTs7O0FBU1I7QUFBQTtFQUVJO0VBQ0E7RUFzQkE7RUFDQTtFQUNBO0VBRUE7RUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlBQ0k7RUFLSjtFQUNBO0VBR0E7O0FBQ0E7QUFBQTtFQUFXOztBQUtYO0FBQUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7QUFBQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0E7QUFBQTtFQUFjOztBQUlkO0FBQUE7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7QUFBQTtFQUFNO0VBQWE7O0FBSXZCO0FBQUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtBQUFBO0VBQWlDOztBQUNqQztBQUFBO0VBQWlDOztBQUdqQztFQUNJO0FBQUE7SUFBMEQ7OztBQUU5RDtBQUFBO0FBQUE7RUFFSTtFQUNBOztBQUdKO0FBQUE7RUFDSTs7QUFDQTtBQUFBO0VBQWdDOztBQVFoQztBQUFBO0VBQWdDOztBQUNoQztBQUFBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7QUFBQTtFQUFzQzs7QUFLOUM7QUFBQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBV1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlBQ0k7O0FBR0o7RUFBaUM7O0FBQ2pDO0VBQW9DOztBQUdwQztFQUE0Qjs7QUFPNUI7RUFBOEQ7O0FBRzlEO0VBQThGOzs7QUFRbEc7RUFDSTtJQUFPO0lBQTZCOztFQUNwQztJQUFPO0lBQTZCOzs7QUFHeEM7RUFDSTtJQUFPO0lBQThCOztFQUNyQztJQUFPO0lBQThCOzs7QUFHekM7RUFDSTtJQUFPO0lBQTZCOztFQUNwQztJQUFPO0lBQTZCOzs7QUFHeEM7RUFDSTtJQUFPO0lBQTRCOztFQUNuQztJQUFPO0lBQTRCOzs7QUFHdkM7RUFDSTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUNqbEJKO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFRQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFBQTtFQUVBOzs7QUFHSjtBQUFBO0VBRUk7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0VBQ0E7OztBQUdKO0FBQ0k7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtJQUFLOzs7QUFLVDtFQUNJO0lBQXdCOztFQUN4QjtJQUFvQztJQUFpQjs7O0FDckd6RDtFQUNFO0VBT0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0lBQW1COzs7QUFNckI7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZQUNFOzs7QUFLSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0Y7RUFDRTtFQUNBOzs7QUFJRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFZRjtBQUFBO0FBQUE7RUFHRTtFQUNBOzs7QUMvRkY7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBRUE7RUFDQTtFQWFBO0VBRUE7O0FBQ0E7RUFBeUI7OztBQUs3QjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7QUFFQTtFQUFZOzs7QUFRaEI7RUFDSTtFQUNBO0VBRUE7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFFQTtFQUNBOztBQUVBO0VBQVU7OztBQVlkO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTs7O0FBR2Q7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7QUFFQTtFQUFVOzs7QUF1QmQ7QUFBQTtBQUFBO0FBQUE7RUFJSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFVOzs7QUFhZDtFQUNJO0VBQ0E7RUFDQTtFQVlBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTs7QUFNVjtFQUNJO0VBQ0E7RUFDQTs7O0FBZVI7RUFDSTs7O0FBaURKO0VBQ0k7OztBQUdKO0VBQ0k7SUFDSTs7RUFFQTtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBR0o7SUFDSTs7RUFHSjtBQUFBO0lBRUk7OztBQUtaO0VBQ0k7SUFDSTs7O0FBSVI7RUFDSTtJQUNJOzs7QUFPUjtBQUFBO0VBRUk7RUFFQTtFQUNBO0VBQ0E7O0FBRUE7QUFBQTtFQUFVOzs7QUFNVjtFQUFVOzs7QUFRZDtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7OztBQU9KO0VBQ0k7RUFDQTtFQUNBOzs7QUFxQko7RUFDSTs7QUFFQTtFQUNJOztBQVVKO0FBQUE7RUFFSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFXSjtFQUNJO0VBQ0E7O0FBVUo7RUFDSTs7QUFHSjtBQUFBO0VBRUk7OztBQUlSO0VBQ0k7SUFDSTs7O0FBSVI7RUFDSTtJQUNJOzs7QUFtQlI7RUFlSTtFQUNBOztBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU1JOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7QUFHSjtFQUNJOzs7QUFPUjtFQUNJO0lBQ0k7SUFDQTs7RUFHSjtJQUFhOzs7QUFHakI7RUFDSTtJQUNJOzs7QUNuaEJSO0VBQ0k7RUFDQTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0VBR0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBRUE7RUFDSTs7O0FBRUo7RUFDSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtFQUVJOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtFQUF1Qzs7O0FBQ3ZDO0VBQXVDOzs7QUFDdkM7RUFBdUM7OztBQUN2QztFQUF1Qzs7O0FBQ3ZDO0VBQ0k7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0k7QUFBQTtJQUVJOzs7QUM5SVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBTUE7RUFNQTtFQUNBO0VBQ0E7RUFpQkE7RUFDQTtFQUlBO0VBQ0E7RUFNQTtFQUNBO0VBR0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBT0E7RUFDSTs7QUF0RVI7RUF3RUk7RUFLQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFFSTtFQUNBLFlBQ0k7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7O0FBWUo7RUFDSTs7QUFFQTtFQUNJOztBQUVKO0VBQ0k7O0FBRUo7RUFDSTtFQUNBOztBQUtSO0VBQ0k7O0FBRUo7RUFDSTs7QUFTSjtFQUNJOztBQUVKO0VBQ0k7O0FBV0o7RUFHSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQU1JO0VBQ0E7RUFDQTtFQUNBOzs7QUFpQ1I7QUFBQTtFQU1JO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUVBO0VBSUE7RUFDQTtFQUNBO0VBQ0E7OztBQVVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7SUFDSTs7O0FBUVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBUUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOztBQUVKO0VBQ0k7RUFDQSxZQUNJOzs7QUFLWjtFQUNJO0VBQ0E7RUFHQTs7O0FBTUo7RUFDSTs7O0FBUUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBYUo7RUFDSTs7O0FBZ0JKO0VBQThCO0VBQXdDOzs7QUFDdEU7RUFBOEI7RUFBaUM7OztBQUMvRDtFQUE4QjtFQUF1Qzs7O0FBQ3JFO0VBQThCO0VBQXdDOzs7QUFDdEU7RUFBOEI7RUFBdUM7OztBQUNyRTtFQUE4QjtFQUF3Qzs7O0FBQ3RFO0VBQThCO0VBQStDOzs7QUFDN0U7RUFBOEI7RUFBd0M7OztBQUV0RTtFQUFnRDtFQUF3Qjs7O0FBQ3hFO0VBQWdEO0VBQXdCOzs7QUFDeEU7RUFBZ0Q7RUFBd0I7OztBQUN4RTtFQUFnRDtFQUF3Qjs7O0FBQ3hFO0VBQWdEO0VBQXdCOzs7QUFDeEU7RUFBZ0Q7RUFBd0I7OztBQUN4RTtFQUFnRDtFQUF3Qjs7O0FBQ3hFO0VBQWdEO0VBQXdCOzs7QUFzQnBFO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBS0o7RUFDSTtFQUNBOzs7QUFLUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBZ0JKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFnQko7RUFJSTtFQUlBOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUVBOztBQW1CSjtFQUNJOztBQU1KO0VBQ0k7O0FBS0o7RUFDSTs7O0FBS1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOzs7QUF3QlI7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBUUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBVUo7RUFDSTtFQUVBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOzs7QUFhUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQU9KO0VBQ0k7O0FBRUE7RUFDSTs7O0FBT1I7RUFDSTs7O0FBR0o7RUFDSTs7O0FBUUo7RUFDSTtFQUNBO0VBQ0E7O0FBTUE7RUFDSTs7O0FBUVI7RUFDSTs7O0FDMXhCSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBTUE7RUFDQTtFQUNBO0VBSUE7RUFDQTs7QUFLQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBTUE7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBUUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTs7QUFZQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7QUFJSjtFQUNJOztBQVFSO0VBQ0k7O0FBUUo7RUFDSTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7O0FBV0o7RUFFSTs7O0FDaklSO0VBQTBCOzs7QUFXMUI7RUFBdUM7OztBQUd2QztFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUF1Qjs7O0FBRXZCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQWVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFJQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUFxQzs7O0FBQ3JDO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtBQUFBO0lBRUk7OztBQUtSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQVFBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQU9KO0VBQ0k7OztBQUlKO0VBQ0k7RUFDQTs7O0FBRUo7RUFBa0I7OztBQUdsQjtFQUdJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFVQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFBdUI7OztBQUV2QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUtBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUE0Qjs7O0FBQzVCO0VBQ0k7RUFDQTtFQUNBO0VBR0E7OztBQWFKO0VBQ0k7RUFLQTtFQUNBO0VBQ0E7OztBQUdKO0VBQXFCOzs7QUFDckI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVNKO0VBQ0k7RUFDQTs7O0FBT0o7RUFDSTtJQUNJO0lBQ0E7SUFDQTs7RUFFSjtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7OztBQXlCUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBUUo7RUFDSTs7O0FBaUJKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFNQTtFQUNBO0VBSUE7RUFDQTs7O0FBWUo7RUFDSTs7O0FBR0o7RUFDSTtFQUNBOzs7QXREbFdBO0VBQXVCO0VBQVk7O0FBQ25DO0VBQTZCOztBQUM3QjtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUMwQzs7QUFDMUM7RUFBbUM7OztBc0Q4WHZDO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7OztBQWVKO0VBQ0k7OztBQWFKO0VBQ0k7OztBQWtCSjtFQUNJOzs7QUFhSjtFQU9JOzs7QUFZSjtFQUNJOzs7QUN2Zko7RUFDSTs7O0FBR0o7RUFDSTs7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7O0FBS1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBTUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFQUFJOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFBWTs7O0FBR2hCO0VBQ0k7RUFDQTs7QUFFQTtFQUFZOzs7QUFJaEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlBO0VBQVU7O0FBQ1Y7RUFBWTs7O0FBSWhCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBSUE7RUFDQTtFQUNBOztBQUVBO0VBQXVCOztBQUN2QjtFQUE2Qjs7QUFDN0I7RUFDSTtFQUNBOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBR0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFLSjtFQUNJO0VBQ0E7O0FBRUE7RUFBTTtFQUFhOzs7QUFHdkI7RUFDSTtJQUFvQjs7O0FBSXhCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUN4Tko7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7RUFHRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtJQUNFOzs7QUFJSjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFpQkE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFDQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBV0U7OztBQUdGO0FBQUE7RUFFRTs7O0FBR0Y7QUFDQTtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7SUFDRTs7O0FBSUo7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FDdFdGO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFLQTtFQUlBO0VBRUE7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUVBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFLQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0VBRWtDOzs7QUFLbEM7RUFBaUM7OztBQUtqQztFQUNJO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7O0FBbURKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFPQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBT0o7RUFDSTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFPSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtFQUNBOzs7QUFHSjtBQUFBO0VBRUk7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFTQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUo7RUFHSTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBRUE7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBTUE7RUFDQTtFQUNBOzs7QUFNSjtFQUNJO0lBQ0k7SUFDQTs7O0FBSVI7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUlKO0VBQ0k7OztBQUdKO0VBQ0k7SUFDSTtJQUNBOzs7QUFJUjtFQUNJO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFPSjtBQUFBO0FBQUE7RUFHSTs7O0FBR0o7QUFBQTtBQUFBO0VBR0k7OztBQUdKO0FBQUE7QUFBQTtFQUdJOzs7QUFHSjtBQUFBO0FBQUE7RUFHSTs7O0FBR0o7RUFDSTtJQUE2Qjs7O0FBbUJqQztFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBR0k7SUFBeUI7O0VBQ3pCO0lBQStDOzs7QUF3Qm5EO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFPQTtFQUNBO0VBSUE7OztBQVFKO0VBQ0k7OztBQVFKO0FBQUE7QUFBQTtFQUdJO0VBQ0E7RUFDQTtFQUNBOzs7QUM3aEJKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQVVBO0VBRUE7O0FBQ0E7RUFBeUI7OztBQUk3QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFLQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTs7O0FBUWQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUlBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU9KO0FBQUE7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUN4S0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBRUE7O0FBQ0E7RUFBeUI7OztBQUc3QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFPSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFLSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBS0E7RUFDQTs7O0FDaEZKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBOztBQUNBO0VBQXlCOzs7QUFHN0I7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTs7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTs7O0FDNUNkO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7O0FBQ0E7RUFBeUI7OztBQUc3QjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBS0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVFKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFPSjtFQUNJO0VBR0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUNqR0o7RUFJSTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTs7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFLSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTs7O0FDdkVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0k7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFBOEI7OztBQUM5QjtFQUE4Qjs7O0FBQzlCO0VBQTZCO0lBQU87O0VBQWM7SUFBSzs7O0FBRXZEO0FBQUE7RUFDdUM7OztBQUV2QztFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQWNBO0VBQ0k7OztBQVFKO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQTtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOzs7QUFJUjtFQUNJOztBQUVBO0VBQ0k7OztBQUlSO0VBQ0k7RUFDQTtFQU1BOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUlBOztBQW5CUjtBQXNCSTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFPQTtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBTUE7OztBQUlSO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7RUFBZ0U7OztBQUVoRTtFQUNJO0VBRUE7RUFDQTs7O0FBUUo7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBTUE7RUFNQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJLE96THhNQztFeUx5TUQ7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBSUE7RUFDSTs7QUFPaEI7RUFDSTtFQUNBO0VBQ0E7OztBQVFSO0FBQUE7QUFBQTtFQUdJLE96TC9MUzs7QXlMaU1UO0FBQUE7QUFBQTtFQUNJLGtCekw3RVc7OztBeUx3Rm5CO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBOztBQUdBO0VBQVk7OztBQUdoQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFVO0VBQXVDOztBQUVqRDtFQUNJO0VBQ0E7RUFDQTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFBVTtFQUF1Qzs7O0FBS3JEO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZQUNJO0VBRUo7RUFDQTtFQUNBO0VBQ0E7RUFHQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBR3VCOzs7QUFHM0I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBUUo7QUFBQTtBQUFBO0VBR0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUd1Qjs7O0FBTzNCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUF4Qko7SUF3QjhDOzs7QUFFMUM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQVU7RUFBZ0I7O0FBRTFCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVU7O0FBQ1Y7RUFBVzs7QUFJZjtFQUVJO0VBQ0E7RUFDQTtFQUNBOzs7QUFNUjtFQUNJO0lBQVc7O0VBQ1g7SUFBVzs7O0FBR2Y7RUFDSTtFQUNBOztBQUVBO0VBQVU7OztBQUdkO0VBQ0k7SUFBb0M7OztBQUt4QztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBOztBQUNBO0VBQXVCOztBQUN2QjtFQUE2Qjs7QUFDN0I7RUFBNkI7RUFBcUM7O0FBQ2xFO0VBQW1DOzs7QUFJbkM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0EsT3pMbmhCSztFeUxvaEJMOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSSxZekwvYU87O0F5TG1iZjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUNJOzs7QUFPcEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR1I7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0lBQ0k7SUFDQTs7RUFFSjtJQUNJO0lBQ0E7OztBQUdSO0VBQ0k7SUFDSTtJQUNBOztFQUVKO0lBQ0k7SUFDQTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7OztBQVFSO0VBQ0k7RUFDQTs7O0FBU0o7QUFBQTtFQUVJOzs7QUF1Q0E7QUFBQTtBQUFBO0VBQ0k7RUFDQTs7QUFFSjtBQUFBO0FBQUE7RUFDSTs7QUFFSjtBQUFBO0FBQUE7RUFDSTs7QUFFSjtBQUFBO0FBQUE7RUFDSTtFQUNBOztBQUtKO0FBQUE7QUFBQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUlKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUVJO0VBQ0E7O0FBRUo7QUFBQTtBQUFBO0VBQ0k7O0FBRUo7QUFBQTtBQUFBO0VBQWlCOztBQUdqQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFFSTs7QUFFSjtBQUFBO0FBQUE7RUFDSTs7QUFLSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFRSTtFQUNBOztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUVJOztBQUVKO0FBQUE7QUFBQTtFQUNJOztBQUlKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQVlJOztBQUVKO0FBQUE7QUFBQTtFQUNJO0VBQ0E7O0FBRUo7QUFBQTtBQUFBO0VBQ0k7RUFDQTs7QUFJSjtBQUFBO0FBQUE7RUFDSTs7QUFFSjtBQUFBO0FBQUE7RUFDSTtFQUNBOztBQUVKO0FBQUE7QUFBQTtFQUFtRDs7QUFDbkQ7QUFBQTtBQUFBO0VBQStDOztBQUMvQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFFSTs7QUFFSjtBQUFBO0FBQUE7RUFBc0M7RUFBcUM7O0FBSTNFO0FBQUE7QUFBQTtFQUEyRTs7QUFDM0U7QUFBQTtBQUFBO0VBQStGOztBQUMvRjtBQUFBO0FBQUE7RUFBNEY7O0FBQzVGO0FBQUE7QUFBQTtFQUEyQzs7QUFDM0M7QUFBQTtBQUFBO0VBQXVFOztBQUN2RTtBQUFBO0FBQUE7RUFBMkQ7O0FBQzNEO0FBQUE7QUFBQTtFQUFtQzs7O0FBWXZDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUFvQjs7QUFFcEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSVI7RUFBb0M7OztBQUVwQztFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQVU7OztBQUdsQjtFQUFtQjs7O0FBRW5CO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQXFCO0VBQVc7RUFBbUI7OztBQUNuRDtFQUFxQjtFQUFpQjtFQUFpQjs7O0FBQ3ZEO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQU07RUFBYztFQUFhOzs7QUFFckM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0lBQ0k7SUFDQTs7RUFFQTtJQUFNOzs7QUM1aUNkO0VBQ0k7RUFDQTtFQVFBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBRUE7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBU0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFJUjtFQUNJOztBQUVBO0VBQ0k7O0FBRUE7RUFDSTs7QUFHSjtFQUNJOztBQVJSO0VBV0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFLWjtFQUNJOztBQUdJO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBS1o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUlKO0VBQ0k7O0FBS1o7RUFDSTs7QUFLWjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTs7QUFJUjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBSVI7RUFDSTs7QUFHSjtFQUNJOztBQU1aO0VBQ0k7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFNUjtFQUNJO0VBQ0E7O0FBSVI7RUFDSTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFLWjtFQUNJOztBQUdKO0VBQ0k7O0FBRUE7RUFDSTs7QUFLWjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7SUFBTzs7RUFDUDtJQUFPOzs7QUFNWDtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUtSO0VBQ0k7O0FBRUE7RUFDSTtFQUNBOztBQVNaO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS1o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7O0FBS0o7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFLSjtFQUNJOztBQUdKO0VBQ0k7OztBQUlSO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQU9KO0VBQ0k7OztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFZSjtFQUNJOzs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0E7RUFFUTtBQUFBO0lBRUk7SUFDQTs7RUFHSjtBQUFBO0lBRUk7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOzs7QUN0Z0JaO0FBQUE7QUFBQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7QUFBQTtBQUFBO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0FBQUE7QUFBQTtFQUNJO0VBQ0E7O0FBRUo7QUFBQTtBQUFBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLE9DbEJBO0VEbUJBO0VBQ0E7OztBQUlSO0VBQ0ksWUF4Q2U7RUF5Q2Y7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQSxPQXhEZTtFQXlEZjtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGtCQ3REQTs7QUR3REE7RUFSSjtJQVNRO0lBQ0E7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlDcEVBOztBRHNFQTtFQUNJLFlBcEZPO0VBcUZQO0VBQ0E7RUFDQSxPQzFFSjtFRDJFSTs7QUFFQTtFQUFnQjs7QUFFaEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFzQjs7QUFFdEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFJUjtFQUNJO0VBQ0E7O0FBSVI7RUFBMkI7O0FBRTNCO0VBQ0k7RUFDQTtFQUNBLE9DbEhSO0VEbUhRO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVU7O0FBRVY7RUFDSTtFQUNBOztBQUNBO0VBRUk7RUFDQTs7QUFTckI7RUFDQzs7QUFFRDtFQUNDO0VBQ0E7RUFDQTs7QUFDQTtFQUNDOztBQUdGO0VBQ0M7RUFDQTs7QUFHQTtFQUNDO0VBQ0E7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDQztFQUNBOztBQUlIO0VBQ0M7O0FBSUQ7RUFDQztFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQUk7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBUTs7QUFDUjtFQUFROzs7QUFJaEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBLFlDeE9KOztBRDBPSTtFQUNJLFlBL1BHO0VBZ1FILE9DNU9SO0VENk9RO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ1c7OztBQU8vQjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0VBQWdCOztBQUNoQjtFQUFnQjs7QUFHcEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFnQjs7QUFDaEI7RUFBZ0I7O0FBQ2hCO0VBQWdCOztBQUNoQjtFQUFnQjs7QUFDaEI7RUFDSTtFQUNBO0VBQ0E7OztBQU1SO0FBQUE7RUFFSTtFQUNBO0VBQ0E7O0FBRUo7RUFBMkI7O0FBQzNCO0VBQ0k7RUFDQTtFQUNBOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0EsWUM5VUE7RUQrVUE7RUFDQTtFQUNBO0VBQ0E7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQVBKO0lBUVE7SUFDQTs7OztBQUlSO0VBQ0k7RUFDQSxPQ3JXSTtFRHNXSjtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUVJO0VBQ047RUFDTTtFQUNBOztBQUVBO0VBQW1DOztBQUd2QztFQUVJO0VBQ0E7RUFDQTs7QUFHSjtFQUVJO0VBQ0E7RUFDQTs7QUFHSTtFQUNJO0VBQ0E7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFBVTs7QUFJbEI7RUFDSTtFQUNBO0VBQ0E7RUFDQSxrQkN4WkE7RUR5WkE7RUFDQTtFQUNBO0VBQ0EsT0EvYVc7RUFnYlg7RUFDQTtFQUNBOztBQUVOO0VBQ0M7O0FBR0Q7RUFDQyxPQXpiZ0I7RUEwYmhCOzs7QUFLSDtFQUNJO0VBQ0E7RUFDQSxrQkMvYUk7RURnYko7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFZOzs7QUFJcEI7RUFFSSxZQzliSTtFRCtiSjs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQWdCOztBQUVoQjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUFXOztBQUVYO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBUTtFQUFvQjs7QUFDNUI7RUFBUTs7QUFHWjtFQUVJLFlBM2ZXO0VBNGZYO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVM7O0FBRVQ7RUFDSTtFQUNBO0VBQ0E7OztBQUtaO0VBQ0k7RUFDQSxPQzlmSTtFRCtmSjtFQUNBO0VBQ0EsWUEvZ0JlO0VBZ2hCZjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFzQjs7QUFDdEI7RUFDSSxPQzVnQkE7RUQ2Z0JBOztBQUdKO0VBQVE7O0FBRVI7RUFDSTtFQUNBOztBQUNBO0VBRUk7RUFDQTs7QUFJUjtFQUNJO0VBQ0E7O0FBQ0E7RUFFSTtFQUNBOzs7QUFLWjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0ksT0MxZks7O0FEMmZMO0VBQVU7OztBQUlsQjtFQUNJO0VBQ0E7RUFDQTs7O0FBSUE7RUFBYzs7QUFFZDtFQUVJOztBQUNBO0VBQVc7O0FBRWY7RUFFSTs7QUFDQTtFQUFXOzs7QUFRWDtBQUFBO0VBQVc7O0FBSVg7QUFBQTtFQUFXOzs7QUFJbkI7RUFBa0I7OztBQUdkO0VBQ0k7RUFDQTtFQUNBO0VBQ0EsT0M5bEJBO0VEK2xCQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVzs7QUFDWDtFQUFXOzs7QUFLZjtFQURKO0lBRVE7SUFDQTs7OztBQUlSO0VBQ0k7RUFDQTs7QUFFQTtFQUFNO0VBQWE7RUFBYzs7QUFDakM7RUFBTTtFQUFrQjs7O0FBSXhCO0VBQTJCOztBQUUzQjtFQUNJO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFJUjtFQUNJOzs7QUFJUjtFQUNJOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUlSO0VBQ0ksa0JBdnFCZTtFQXdxQmY7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLE9BNXJCTztFQTZyQlA7O0FBSVI7RUFBb0IsWUE1ckJMOztBQThyQmY7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFBbUI7O0FBQ25CO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7QUFBQTtFQUVJOztBQUNBO0FBQUE7RUFBTTs7QUFLVjtFQUNJO0VBQ0E7O0FBQ0E7RUFBdUI7RUFBWTs7QUFJM0M7QUFBQTtFQUVJO0VBQ0E7O0FBR0o7RUFBdUI7O0FBQ3ZCO0VBQTRCLE9BMXVCYjs7QUE0dUJmO0VBQ0k7RUFDQTtFQUNBOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0ksWUEzdkJXO0VBNHZCWDtFQUNBO0VBQ0EsT0MxdUJBO0VEMnVCQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFzQjs7QUFFdEI7RUFDSTs7QUFDQTtFQUFVLE9DcHZCZDs7QUR3dkJKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVU7O0FBRVY7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBS1o7RUFBaUI7OztBQUdoQjtFQUNDO0VBQ0E7RUFDQTs7O0FFdnhCRjtFQU1JO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtJQUNJO0lBQ0E7SUFDQTs7O0FBSVI7RUFBa0I7OztBQUVsQjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQUk7O0FBQ0o7RUFBZTs7QUFFZjtBQUFBO0VBRUk7RUFDQTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFVSjtFQUNJO0VBQ0E7OztBQVVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQStCSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7SUFBTzs7RUFDUDtJQUFPOzs7QUFLWDtFQUNJO0lBQXNCOzs7QUFNMUI7RUFBdUI7OztBQUV2QjtFQUF5Qjs7O0FBSXpCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFVOztBQUNWO0VBQVc7OztBQU9mO0FBQUE7QUFBQTtBQUFBO0VBRytDOzs7QUFFL0M7RUFBeUM7OztBQUN6QztFQUEwQzs7O0FBQzFDO0VBQXlDO0VBQVk7OztBQUVyRDtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFBd0I7OztBQUt4QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTs7QUFFVjtFQUFlO0VBQWdCOzs7QUFPbkM7RUFDSTtFQUNBO0VBQ0E7OztBQW9CSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFzQko7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUVBOztBQUtKO0VBQWlCOzs7QUFvQnJCO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBVUo7RUFBbUI7OztBQUVuQjtFQUF5Qjs7O0FBRXpCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFVOztBQUVWO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQVU7OztBQVNsQjtFQUNJO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFNQTtFQVFBO0VBZUE7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUtKO0VBQWdDOzs7QUFFaEM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQVNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBd0I7OztBQUV4QjtFQUF1QjtFQUFlOzs7QUFFdEM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQWU7OztBQUduQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFVO0VBQXFCOzs7QUFRbkM7RUFBb0I7OztBQUNwQjtFQUFzQjs7O0FBWXRCO0VBc0JJO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFQUVKO0lBQWtDOztFQUVsQztJQUNJOztFQUlKO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7RUFFQTtJQUFVO0lBQXFCOztFQUduQztJQUNJO0lBQ0E7O0VBS0o7SUFDSTs7RUFXSjtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBRUE7SUFBVTs7RUFJZDtJQUFzRDs7O0FBVTFEO0VBQXdCOzs7QUFFeEI7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFVOzs7QUFRZDtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQStDOzs7QUFFL0M7RUFDSTtJQUEwQjs7O0FBRzlCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFBOEM7OztBQUk5QztFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVU7O0FBRVY7RUFBTzs7QUFFUDtFQUEwQjs7O0FBRzlCO0VBQW9EOzs7QUFFcEQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFBa0Q7OztBQUlsRDtFQUNJO0VBQ0E7RUFDQTs7O0FBWUo7RUFDSTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBOztBQUVBO0VBS0k7OztBQUlSO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtJQUNJOztFQUNBO0lBQ2tCOzs7QUFJMUI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSjtFQUNJOzs7QUFHSjtFQUNJO0VBV0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQWdDOzs7QUFFaEM7RUFDSTtFQUNBOzs7QUFFSjtFQUF3Qzs7O0FBRXhDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFVOztBQUVWO0VBQWU7OztBQWNuQjtFQUNJO0lBQ0k7SUFDQTs7RUFFSjtJQUNJO0lBQ0E7OztBQUdSO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtJQUFrQjs7O0FBVXRCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFlO0VBQWdCOzs7QUFHbkM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVU7O0FBQ1Y7RUFBaUI7O0FBR2pCO0VBQWtDOzs7QUFHdEM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFpQzs7O0FBQ2pDO0VBQWlDOzs7QUFFakM7RUFDSTtFQUNBO0VBQ0E7OztBQVNKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFnQko7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFBeUI7OztBQUN6QjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFPSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7SUFBa0I7O0VBQ2xCO0lBQ0k7SUFDQTs7RUFLSjtBQUFBO0FBQUE7SUFHSTtJQUNBOztFQU1KO0lBQW9CO0lBQWdCOzs7QUFZeEM7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFlOztBQUVmO0VBQVc7O0FBRVg7RUFDSTtFQUNBOzs7QUFJUjtFQUNJO0VBQ0E7O0FBRUE7RUFBZTs7QUFFZjtFQUFVOzs7QUFHZDtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUFlOztBQUVmO0VBQVU7OztBQU1kO0VBQ0k7RUFDQTs7QUFFQTtFQUFVOztBQUNWO0VBQVc7OztBQUVmO0VBQTBEOzs7QUFDMUQ7RUFBNEQ7OztBQU01RDtFQUNJO0VBQ0E7O0FBRUE7RUFBVTs7QUFDVjtFQUFXOzs7QUFFZjtFQUF5RDs7O0FBQ3pEO0VBQTJEOzs7QUFFM0Q7RUFDSTtJQUFtQjs7O0FBR3ZCO0VBQ0k7RUFDQTs7O0FBRUo7RUFBZ0M7OztBQU9oQztFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBWUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7SUFBTztJQUFZOztFQUNuQjtJQUFPO0lBQVk7OztBQU12QjtFQUNJO0VBQ0E7OztBQzF5Q0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQThCO0VBQWU7RUFBd0I7OztBQUNyRTtFQUF1QjtFQUFlO0VBQWdCOzs7QUFDdEQ7RUFDSTtFQUFnQjtFQUFjO0VBQzlCO0VBQWU7OztBQUVuQjtBQUFBO0VBRUk7RUFBZ0I7RUFDaEI7RUFBZTs7O0FBRW5CO0VBQStCO0VBQWdCOzs7QUFFL0M7QUFDQTtFQUNJO0VBQ0E7RUFBYztFQUNkO0VBQWU7RUFDZjtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUFlO0VBQXFCO0VBQ3BDO0VBQ0E7RUFDQTs7O0FBRUo7RUFBZ0I7RUFBaUI7RUFBa0I7OztBQUNuRDtFQUNJO0VBQWU7RUFBVTtFQUN6QjtFQUFxQjtFQUFvQjs7O0FBRTdDO0VBQ0k7RUFBc0I7RUFBcUI7RUFDM0M7RUFBYTtFQUNiO0VBQVc7RUFBeUI7RUFDcEM7RUFBZ0I7RUFDaEI7OztBQUVKO0VBQW1COzs7QUFDbkI7RUFDSTtFQUFrQjtFQUNsQjs7O0FBRUo7RUFDSTtFQUFpQjtFQUNqQjtFQUNBO0VBQWlCOzs7QUFFckI7RUFDSTtFQUFnQjtFQUNoQjtFQUNBO0VBQWU7RUFBeUI7RUFDeEM7OztBQUVKO0VBQVk7RUFBb0I7OztBQUNoQztFQUNJO0VBQW9CO0VBQVE7RUFDNUI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFpRDs7O0FBQ2pEO0VBQWlEOzs7QUFDakQ7RUFBaUQ7OztBQUNqRDtFQUNJO0VBQWE7RUFDYjtFQUFXO0VBQWdCOzs7QUFFL0I7RUFBNEM7RUFBcUI7OztBQUNqRTtFQUE0Qzs7O0FBQzVDO0VBQW9DOzs7QUFDcEM7RUFBd0M7OztBQUN4QztFQUEyQztFQUFxQjs7O0FBRWhFO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBd0I7RUFBZTtFQUF3Qjs7O0FBQy9EO0VBQXlCO0VBQWlCO0VBQWtCOzs7QUFDNUQ7RUFBeUI7RUFBbUI7OztBQUM1QztFQUE2Qzs7O0FBQzdDO0VBQTZDOzs7QUFDN0M7QUFBQTtBQUVBO0VBQWtDOzs7QUFFbEM7QUFDQTtFQUFtQjtFQUFvQjtFQUFpQjs7O0FBQ3hEO0VBQXdDOzs7QUFDeEM7RUFBd0M7RUFBZ0I7OztBQUN4RDtFQUF3Qzs7O0FBQ3hDO0VBQTZDOzs7QUFDN0M7RUFBdUM7OztBQ3BJdkM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWNBO0FBQ0E7RUFBa0I7RUFBb0I7RUFBZTtFQUF5Qjs7O0FBQzlFO0VBQ0k7RUFBYTtFQUFjO0VBQzNCO0VBQTRCO0VBQWtCO0VBQzlDO0VBQWU7RUFBcUI7RUFDcEM7RUFBaUI7RUFBWTtFQUM3Qjs7O0FBRUo7QUFBQTtFQUMyQztFQUFZO0VBQXVCOzs7QUFFOUU7QUFBQTtBQUFBO0FBR0E7RUFDSTtFQUFvQjtFQUFnQjtFQUNwQzs7O0FBRUo7RUFBd0I7RUFBYzs7O0FBQ3RDO0VBQTRDOzs7QUFFNUM7RUFDSTtFQUFvQjtFQUFhO0VBQVc7RUFBVztFQUN2RDtFQUFrQjtFQUFxQjtFQUN2QztFQUFjO0VBQWU7RUFBd0I7OztBQUV6RDtFQUF3QjtFQUFXOzs7QUFDbkM7RUFDSTtFQUFlO0VBQXFCO0VBQ3BDO0VBQW1CO0VBQWM7RUFBa0I7RUFDbkQ7RUFBaUI7RUFBZ0I7RUFBa0I7OztBQUV2RDtFQUFnQztFQUFxQjs7O0FBRXJEO0FBQ0E7RUFDSTtFQUFlO0VBQXdCO0VBQXNCO0VBQzdEO0VBQWtCO0VBQW9CO0VBQ3RDO0VBQTJCOzs7QUFFL0I7RUFBb0I7RUFBZTtFQUFxQjtFQUFVOzs7QUFDbEU7RUFBcUI7OztBQUNyQjtFQUF3QjtFQUFxQjs7O0FBQzdDO0VBQTBDO0VBQWM7OztBQUN4RDtFQUF1Qjs7O0FBQ3ZCO0VBQXNCO0VBQWdCO0VBQWM7OztBQUVwRDtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYUE7RUFBZ0M7OztBQUNoQztBQUFBO0FBRUE7RUFBMEI7OztBQUMxQjtFQUFvQjtFQUFnQjs7O0FBQ3BDO0VBQ0k7RUFBZ0I7RUFBYztFQUFpQjtFQUMvQztFQUFrQjtFQUF5Qjs7O0FBRS9DO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7RUFHVztFQUFtQjtFQUFnQjtFQUFrQjtFQUFxQjs7O0FBQ3JGO0FBQUE7QUFBQTtBQUdBO0VBQXNCO0VBQWU7RUFBcUI7RUFBVTs7O0FBRXBFO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFBYztFQUFrQjtFQUNoQztFQUNBOzs7QUFFSjtFQUNJO0VBQWM7RUFBdUI7RUFDckM7RUFBc0I7RUFBb0I7RUFDMUM7OztBQUdKO0FBQ0E7RUFDSTtFQUFlO0VBQXFCO0VBQ3BDO0VBQWdCO0VBQWE7RUFBWTs7O0FBRTdDO0FBQUE7RUFDNEM7OztBQUU1QztFQUNJO0VBQWU7RUFBcUI7RUFBVztFQUMvQztFQUFtQjtFQUFxQjtFQUN4QztFQUFzQzs7O0FBRTFDO0VBQ0k7RUFBc0I7RUFBcUI7RUFBVTtFQUNyRDtFQUFtQjtFQUFjO0VBQ2pDO0VBQXFCO0VBQWdCOzs7QUFFekM7RUFBd0I7OztBQUN4QjtFQUE0QjtFQUFlO0VBQXFCO0VBQVU7OztBQUMxRTtBQUFBO0FBQUE7QUFHQTtFQUFnRTs7O0FDNUhoRTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFFQTs7O0FBT1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQWdCQTs7QUFFQTtFQXRCSjtJQXVCUTs7OztBQVFSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUlBO0VBQ0E7O0FBRUE7RUFmSjtJQWdCUTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU1SO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBR0k7OztBQUtKO0VBQ0k7OztBQVVKO0FBQUE7QUFBQTtFQUdJOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7OztBQVFSO0VBQ0k7RUFDQTtFQUNBO0VBR0E7O0FBeUJBO0VBQ0k7O0FBVUo7QUFBQTtFQUVJOztBQWNKO0VBQ0k7OztBQU9SO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTs7QUFFQTtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBM0JKO0lBNEJROzs7O0FBTVI7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7O0FBU1I7RUFDSTtFQUNBO0VBQ0E7OztBQWNKO0VBTUk7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUVBOztBQU1KO0VBQ0k7OztBQy9SUjtFQUdJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFVOztBQUNWO0VBQWtCO0VBQWlDOztBQUd2RDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTs7QUFDVjtFQUFrQjtFQUFpQzs7QUFRdkQ7RUFDSTtFQUNBO0VBQ0E7O0FBS0E7RUFSSjtJQVNROzs7QUFUUjtFQVdJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBUUo7RUFqQko7SUFvQlE7O0VBRUE7SUFDSTtJQUNBOzs7QUFLWjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBS0o7RUFDSTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQU1KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUlSO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUVJOztBQVdKO0VBQ0k7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7OztBQUlSO0VBQ0k7SUFBTztJQUFZOztFQUNuQjtJQUFPO0lBQVk7OztBQUd2QjtFQUNJO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPO0lBQVk7SUFBVztJQUFlO0lBQWtCO0lBQWdCOzs7QUFNL0U7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7OztBQWFSO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0FBQUE7QUFBQTtFQUdJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7QUFBQTtBQUFBO0VBQ0k7RUFDQTtFQUNBOztBQUlSO0VBQVc7O0FBR2Y7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQVdSO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBR0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FDL2RaO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUlKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBSUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQVFKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBZ0M7OztBQUNoQztFQUFnQzs7O0FBQ2hDO0VBQWdDOzs7QUFDaEM7RUFBZ0M7OztBQUNoQztFQUFnQzs7O0FBQ2hDO0VBQWdDOzs7QUFDaEM7RUFBZ0M7OztBQUNoQztFQUFnQzs7O0FBQ2hDO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBSUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FDdlpKO0FBQUE7QUFHQTtBQUNBO0FBQUE7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7RUFDSTtBQUNBO0FBQUE7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU1BLFlBQ0k7OztBQVlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBeUI7OztBQUN6QjtFQUFnQzs7O0FBRWhDO0VBQ0k7RUFDQTtFQUNBO0FBQ0E7QUFBQTtFQUVBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFrQztFQUFhOzs7QUFFL0M7QUFBQTtBQUFBO0FBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQXFDOzs7QUFFckM7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBNEI7OztBQUM1QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQXVDOzs7QUFFdkM7QUFBQTtBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0VBQW1COzs7QUFDbkI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBMkI7OztBQUUzQjtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0VBRUk7QUFDQTtBQUFBO0FBQUE7RUFHQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNJO0lBQ0k7SUFDQTtJQUNBOztFQUVKO0lBQ0k7SUFDQTtJQUNBOzs7QUFHUjtFQUNJOzs7QUFFSjtFQUNJO0lBQXFCOzs7QUFHekI7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFNQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7SUFBSzs7O0FBRVQ7RUFDSTtJQUFnRDs7O0FBR3BEO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTs7O0FBR0o7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQ0k7SUFBYztJQUF1Qjs7RUFDckM7SUFBbUI7OztBQUV2QjtFQUNJO0lBQWM7SUFBdUI7O0VBQ3JDO0lBQW1COztFQUNuQjtJQUFvQjtJQUFpQjs7RUFDckM7SUFBc0I7SUFBYztJQUFhOztFQUNqRDtJQUFtQjtJQUFXO0lBQVk7SUFBYTs7O0FBRzNEO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBMEI7OztBQUMxQjtFQUErQjtFQUFnQjtFQUFnQjs7O0FBQy9EO0VBQXFCO0VBQWlCOzs7QUFDdEM7RUFBcUI7OztBQUVyQjtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQVFBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFFQTtFQUNJOzs7QUFHSjtBQUNBO0VBQ0k7QUFDQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQVlBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7SUFBcUI7OztBQUd6QjtBQUFBO0FBQUE7QUFHQTtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFHQTtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNJO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFlQTtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW1CQTtFQUNJO0VBQ0E7OztBQUdKO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW1CQTtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJOzs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7RUFBeUQ7OztBQUN6RDtFQUNJO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0k7OztBQUVKO0VBQ0k7OztBQUdKO0VBQ0k7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBUUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFBNkI7OztBQUM3QjtFQUE2Qjs7O0FBQzdCO0VBQTZCOzs7QUFDN0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtFQUE2Qjs7O0FBQzdCO0VBQTZCOzs7QUFDN0I7RUFBNkI7OztBQUM3QjtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQTZCOzs7QUFDN0I7RUFBNkI7OztBQUM3QjtBQUNBO0VBQW1CO0VBQWE7RUFBYzs7O0FBRTlDO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXdCQTtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQStCOzs7QUFDL0I7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBNkI7RUFBcUI7OztBQUdsRDtFQUFvQjtFQUFrQjtFQUFlO0VBQXFCO0VBQVc7OztBQUNyRjtFQUFvQjtFQUFpQjs7O0FBRXJDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBSTZDOzs7QUFFN0M7QUFBQTtBQUFBO0FBR0E7RUFBbUM7RUFBZ0I7OztBQUVuRDtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUdKO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFtQzs7O0FBRW5DO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUVBO0VBQXFCOzs7QUFDckI7RUFBdUM7OztBQUN2QztFQUEwQzs7O0FBRTFDO0FBQUE7QUFBQTtBQUdBO0FBQUE7RUFFSTs7O0FBRUo7QUFBQTtBQUVBO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQWdDOzs7QUFDaEM7RUFBbUM7OztBQUNuQztFQUEyRDs7O0FBQzNEO0VBQThEOzs7QUFFOUQ7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQTtBQUFBO0VBRUk7OztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDSTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFHQTtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDSTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDSTtBQUNBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0VBSUE7RUFDQTs7O0FBRUo7RUFDSTtJQUFvQjs7O0FBRXhCO0FBQUE7QUFBQTtBQUdBO0VBQW1COzs7QUFDbkI7RUFBeUI7OztBQUN6QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0VBR0E7OztBQUVKO0VBQTBCO0VBQStDO0FBQ3pFO0VBQTBCO0VBQTRDOzs7QUFDdEU7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUF5Qjs7O0FBQ3pCO0VBQ0k7RUFDQTs7O0FBRUo7RUFBeUI7RUFBaUI7RUFBa0I7RUFBdUM7OztBQUNuRztFQUF5QjtFQUFtQjtFQUFtQjtFQUFtQzs7O0FBQ2xHO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUdBO0VBQW1COzs7QUFDbkI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQW9DOzs7QUFDcEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7RUFFMkM7OztBQUUzQztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7OztBQUVKO0FBQ0E7RUFBd0I7OztBQUV4QjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0VBRUk7RUFDQTs7O0FBRUo7QUFBQTtFQUNrRDs7O0FBQ2xEO0VBQ0k7RUFDQTs7O0FBRUo7QUFDQTtFQUFrRDs7O0FBRWxEO0FBQ0E7QUFBQTtBQUFBO0FBR0E7RUFDSTtFQUNBOzs7QUFHSjtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUFrQztFQUFlOzs7QUFDakQ7RUFDSTtFQUNBO0VBQ0E7QUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLQTtFQUNBOzs7QUFFSjtBQUNJO0FBQUE7QUFBQTtFQUdBO0lBQWtCOztFQUNsQjtJQUFnQzs7RUFDaEM7SUFBZ0I7OztBQUdwQjtFQUNJO0VBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtFQUlBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFBeUI7RUFBZTs7O0FBRXhDO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBRUE7RUFBeUM7OztBQUV6QztBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7RUFBK0M7RUFBbUI7RUFBZTs7O0FBQ2pGO0VBQXdDO0VBQWdCOzs7QUFDeEQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0VBQXVEOzs7QUFDdkQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtFQUF3Rjs7O0FBRXhGO0FBQ0E7QUFBQTtBQUFBO0FBR0E7RUFBZ0I7RUFBZ0I7OztBQUVoQztFQUFjO0VBQWU7RUFBd0I7RUFBVTs7O0FBQy9EO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQ0E7RUFBbUM7RUFBZ0I7OztBQUNuRDtFQUFtQjtFQUFlO0VBQXdCO0VBQVU7OztBQUNwRTtFQUFtQjtFQUFpQjs7O0FBQ3BDO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUE0Qjs7O0FBRTVCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUE7RUFDSTtFQUNBO0VBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtFQUlBOzs7QUFFSjtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUFxQztFQUFlOzs7QUFDcEQ7RUFBcUM7OztBQUNyQztBQUNJO0FBQUE7QUFBQTtFQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUVBO0VBQ0k7SUFDSTtJQUNBOztFQUVKO0lBQXlDOzs7QUFHN0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtFQUNJO0FBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0FBQUE7QUFHQTtBQUFBO0VBRUk7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUFnQjtFQUFlO0VBQVc7RUFBeUI7OztBQUNuRTtFQUFvQjtFQUFhOzs7QUFDakM7RUFBa0I7OztBQUNsQjtFQUEwQjs7O0FBQzFCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQTBCOzs7QUFDMUI7RUFBaUI7RUFBaUI7RUFBbUI7OztBQUNyRDtFQUFrQjtFQUFpQjtFQUFtQjs7O0FBQ3REO0VBQTBCOzs7QUFDMUI7RUFBbUI7RUFBaUI7RUFBbUI7OztBQUN2RDtFQUEyQjs7O0FBRTNCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFFQTtFQUF5Qjs7O0FBRXpCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFpQzs7O0FBRWpDO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFDQTtBQUFBO0FBQUE7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBaUM7OztBQUNqQztFQUE0Qzs7O0FBQzVDO0VBQWtEOzs7QUFDbEQ7RUFDSTtFQUNBOzs7QUFFSjtFQUF5QjtFQUF1Qjs7O0FBRWhEO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBaUM7OztBQUNqQztFQUE0Qjs7O0FBQzVCO0VBQW9DO0VBQStDOzs7QUFDbkY7RUFBbUM7RUFBZ0I7OztBQUNuRDtFQUF1QjtFQUFjOzs7QUFDckM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUEyQjs7O0FBQzNCO0VBQWdDOzs7QUFDaEM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQ0k7RUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7RUFDQTs7O0FBbUJKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFTQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFBb0M7OztBQUNwQztFQUF5QztFQUFzQjtFQUFhO0VBQWM7OztBQUUxRjtBQUNJO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNBO0VBUUE7QUFDQTtBQUFBO0FBQUE7RUFHQTs7O0FBRUo7QUFBQTtFQUMyQjs7O0FBWTNCO0FBQUE7QUFFQTtFQUF3Qzs7O0FBRXhDO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7RUFDSTtFQUNBO0VBSUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUFBO0FBQUE7RUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUF3Qzs7O0FBQ3hDO0FBQUE7QUFFQTtFQUFrQjs7O0FBQ2xCO0FBQ0E7QUFBQTtBQUFBO0VBRTJCOzs7QUFDM0I7RUFBd0M7OztBQUN4QztFQUFnRDs7O0FBQ2hEO0FBQ0E7QUFBQTtBQUFBO0VBRXNEOzs7QUFDdEQ7QUFDQTtFQUFnRDs7O0FBYWhEO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBNkJKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBOEI7OztBQUU5QjtBQUFBO0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQTJCOzs7QUFDM0I7RUFDSTtFQUNBO0VBQ0E7OztBQVNJO0FBQUE7RUFFSTs7QUFRSjtFQUF5Qjs7QUFDekI7RUFBa0I7O0FBQ2xCO0FBQUE7RUFFSTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFBaUI7OztBQVN6QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFhQTtBQUFBO0VBRUk7RUFDQTs7O0FBTUo7RUFDSTtFQUNBOzs7QUE0Q0o7RUFDSTs7O0FBRUo7RUFDSTtFQUlBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJOzs7QUFHSjtBQUFBO0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQThCOzs7QUFPOUI7RUFBaUI7OztBQVFqQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVdKO0VBQ0k7OztBQUVKO0VBSUk7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFHSjtBQUNBO0VBQWtCO0VBQWU7RUFBcUI7OztBQUN0RDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFzQjtFQUFhO0VBQWM7RUFBbUI7OztBQUNwRTtFQUEwQjtFQUFlO0VBQVU7OztBQUVuRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUNBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWNBO0FBQUE7QUFBQTtBQUdBO0VBQXNCOzs7QUFFdEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBdUI7RUFBVztFQUFpQjtFQUFrQjs7O0FBRXJFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0k7RUFDQTs7O0FBa0NKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFBUzs7O0FBRWI7RUFBMkI7RUFBZ0I7RUFBc0I7OztBQUNqRTtFQUF1QjtFQUFrQjs7O0FBR3JDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFBcUI7OztBQUd6QjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUF1QjtFQUFlOzs7QUFDdEM7QUFBQTtBQUVBO0VBQW1DOzs7QUFDbkM7RUFBbUM7OztBQUVuQztBQUFBO0FBRUE7RUFDSTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUtBO0VBQ0E7OztBQUVKO0VBQ0k7SUFBbUI7OztBQUV2QjtFQUFpQjtFQUFlO0VBQXdCO0VBQVc7OztBQUNuRTtBQUFBO0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU9BO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBNkJBOzs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtFQUF5QjtFQUErQztBQUN4RTtFQUF5QjtFQUE0Qzs7O0FBQ3JFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUE7RUFBd0I7OztBQUN4QjtBQUNJO0FBQUE7QUFBQTtFQUdBO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFDSTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBS0E7RUFDQTs7O0FBRUo7QUFBQTtBQUFBO0FBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQWdEOzs7QUFFaEQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBNEJBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBR0E7RUFBOEI7OztBQUM5QjtFQUNJO0VBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBS0E7OztBQUVKO0VBQWdEO0VBQWdCO0VBQWE7RUFBYzs7O0FBQzNGO0VBQXVCO0VBQWU7RUFBd0I7OztBQUM5RDtFQUEyQzs7O0FBRTNDO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0FBQUE7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUFBO0FBR0E7RUFBcUM7OztBQUNyQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0E7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYUE7RUFDSTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBT0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFDQTtBQUFBO0FBQUE7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0lBQW1COzs7QUFHdkI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUE7RUFBMEI7OztBQUMxQjtFQUNJO0lBQTBCOzs7QUFFOUI7RUFDSTtFQUNBO0VBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7O0FBU0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUE4Qjs7O0FBQzlCO0VBQTBDOzs7QUFFMUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0k7RUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQStCO0VBQWE7RUFBYztFQUFtQjs7O0FBQzdFO0FBQ0E7RUFBeUI7RUFBZ0I7RUFBdUI7RUFBaUI7RUFBa0I7OztBQUNuRztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7RUFBeUI7RUFBZ0I7RUFBcUI7RUFBbUI7RUFBbUI7RUFBbUM7OztBQUN2STtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQWdDO0VBQWU7RUFBeUI7OztBQUN4RTtFQUFvQztFQUFhO0VBQWM7OztBQUMvRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUF1QjtFQUFlO0VBQXlCOzs7QUFDL0Q7QUFBQTtFQUNtQjtFQUFpQjtFQUFjOzs7QUFDbEQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0VBQ2dDO0VBQWE7OztBQUM3QztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7QUFBQTtBQUFBO0VBR0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUVBO0FBQUE7QUFBQTtFQUdJO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUFBO0FBR0E7RUFBa0M7OztBQUNsQztFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFBZ0M7RUFBZTtFQUFxQjs7O0FBQ3BFO0VBQW9DO0VBQWE7RUFBYzs7O0FBQy9EO0VBQTZCO0VBQWU7RUFBd0I7RUFBVTtFQUFxQjs7O0FBQ25HO0VBQW1EOzs7QUFFbkQ7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtBQUNJO0FBQUE7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUE4Qzs7O0FBQzlDO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtFQUdJOzs7QUFFSjtFQUNJO0lBQXVDOzs7QUFHM0M7QUFBQTtBQUFBO0FBR0E7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7RUFDSTs7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQTtFQUNJO0VBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBS0E7RUFDQTs7O0FBRUo7RUFBbUQ7OztBQUVuRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtBQUdBO0VBQXlCOzs7QUFDekI7RUFBaUM7OztBQUVqQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7RUFDSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZUE7RUFDSTs7O0FBRUo7RUFDSTs7O0FBR0o7QUFBQTtBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7RUFDSTtFQUNBOzs7QUFFSjtBQUFBO0VBRUk7RUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7QUFDQTtBQUFBOzs7QUFHSjtFQUFpQzs7O0FBQ2pDO0VBQTRDOzs7QUFDNUM7QUFDQTtFQUFxRDs7O0FBRXJEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjQTtBQUFBO0FBQUE7RUFFa0M7OztBQUVsQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7RUFFcUM7OztBQUNyQztBQUFBO0FBRUE7RUFBd0M7OztBQWtDeEM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBWTs7QUFFWjtFQWhCSjtJQWlCUTs7OztBQUdSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFBUzs7QUFFVDtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFBUTtFQUFpQjs7O0FBRTdCO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFBOEI7OztBQUM5QjtFQUFzQzs7O0FBa0N0QztFQUE2Qjs7O0FBQzdCO0VBQTJCOzs7QUFDM0I7RUFBMkI7OztBQUMzQjtFQUVJO0lBQ0k7SUFDQTtJQUNBOztFQUVKO0lBQXNCOztFQUN0QjtJQUF1Qjs7RUFPdkI7SUFBMkI7SUFBZ0I7SUFBdUI7O0VBQ2xFO0lBQTJDO0lBQWE7O0VBRXhEO0lBQXVEOztFQUV2RDtJQUE2QjtJQUFzQjs7RUFDbkQ7SUFBMkI7O0VBQzNCO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFHQTtJQUNBOztFQUVKO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFJQTs7RUFFSjtJQUNJO0lBQ0E7SUFDQTtJQUNBOzs7QUFJUjtBQUFBO0FBQUE7QUFHQTtFQUF5Qjs7O0FBRXpCO0FBQUE7QUFBQTtBQUdBO0VBQTBCOzs7QUFFMUI7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNJO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUdBO0VBQW1COzs7QUFDbkI7RUFBMkI7OztBQUMzQjtFQUFtQzs7O0FBQ25DO0VBQXdCOzs7QUFDeEI7RUFBa0M7OztBQUVsQztBQUNBO0VBQXNCOzs7QUFDdEI7RUFBZ0M7OztBQUNoQztFQUF3Qjs7O0FBQ3hCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFvQztFQUFnQjs7O0FBQ3BEO0VBQXVCO0VBQWtCO0VBQWU7RUFBcUI7RUFBVzs7O0FBQ3hGO0VBQXlCO0VBQW1COzs7QUFDNUM7RUFBaUM7OztBQUNqQztFQUF3QjtFQUFtQjs7O0FBQzNDO0VBQWdDOzs7QUFFaEM7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBaUM7OztBQUNqQztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUF1QjtFQUFpQjtFQUFpQjtFQUFtQjs7O0FBQzVFO0VBQXNCO0VBQW1CO0VBQW1COzs7QUFDNUQ7RUFBbUM7OztBQUNuQztBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQXVCO0VBQW9COzs7QUFDM0M7QUFBQTtBQUVBO0VBQTJCO0VBQWlCO0VBQWtCOzs7QUFFOUQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBT0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLQTtFQUNBOzs7QUFHSjtBQUFBO0FBRUE7RUFDSTtFQUFlO0VBQXFCO0VBQ3BDO0VBQWtCO0VBQ2xCO0VBQXFCO0VBQ3JCO0VBQW1CO0VBQW1COzs7QUFFMUM7RUFBb0M7OztBQUNwQztFQUF5QjtFQUFlO0VBQXdCO0VBQVU7OztBQUMxRTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBMkI7RUFBNEM7OztBQUN2RTtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQWlDO0VBQThDOzs7QUFDL0U7RUFBZ0M7RUFBdUI7RUFBcUI7OztBQUM1RTtFQUFnQztFQUF1QjtFQUFxQjs7O0FBQzVFO0VBQWtDOzs7QUFDbEM7QUFBQTtBQUFBO0FBR0E7RUFBK0I7OztBQUMvQjtFQUF1Qzs7O0FBQ3ZDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQWtDOzs7QUFDbEM7RUFBc0I7RUFBa0I7RUFBaUI7OztBQUN6RDtFQUF1QjtFQUFtQjtFQUFvQjs7O0FBRTlEO0FBQ0E7QUFBQTtBQUFBO0FBR0E7QUFDQTtBQUFBO0FBQUE7QUFHQTtFQUFtQjs7O0FBRW5CO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQTBCO0VBQWU7RUFBd0I7RUFBVTtFQUFrQjs7O0FBQzdGO0VBQTJCO0VBQW1CO0VBQWtCOzs7QUFDaEU7RUFBMkI7RUFBaUI7RUFBZ0I7OztBQUM1RDtFQUE2QjtFQUFlO0VBQXFCO0VBQVc7OztBQUU1RTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFXQTtBQUFBO0VBQzZDO0VBQWdCOzs7QUFDN0Q7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQTJCOzs7QUFFM0I7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBNkI7OztBQUM3QjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBd0I7RUFBbUI7RUFBZ0I7OztBQUUzRDtFQUFrQjtFQUFlO0VBQXdCO0VBQVc7OztBQUNwRTtFQUF3QjtFQUFtQjtFQUFnQjs7O0FBRTNEO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUF3QjtFQUFxQjs7O0FBQzdDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQXNCO0VBQW1CO0VBQWtCOzs7QUFDM0Q7RUFBc0I7RUFBbUI7OztBQUN6QztFQUFzQjs7O0FBQ3RCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUE0QztFQUFnQjs7O0FBQzVEO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQWlDO0VBQWdCOzs7QUFFakQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQW1CO0VBQWU7RUFBeUI7RUFBaUI7OztBQUM1RTtFQUFpQztFQUFpQjs7O0FBQ2xEO0VBQWtDO0VBQWdCOzs7QUFFbEQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUF5QjtFQUFpQjtFQUFtQjs7O0FBQzdEO0VBQWlDOzs7QUFFakM7RUFBc0I7RUFBZTtFQUF3Qjs7O0FBQzdEO0VBQThCOzs7QUFDOUI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0lBQWtCOzs7QUFFdEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQTJCOzs7QUFDM0I7RUFBZ0M7OztBQUNoQztFQUF3Qjs7O0FBQ3hCO0VBQWtCO0VBQW1CO0VBQWdCOzs7QUFLckQ7QUFBQTtBQUFBOztBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXlFQTtFQUNJO0VBQ0E7RUFDQTs7QUFDQTtFQUNJOzs7QUFHUjtBQUFBO0FBQUE7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUdKO0FBQUE7RUFFSTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0VBR0E7OztBQUVKO0FBQ0k7QUFBQTtBQUFBO0VBR0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7QUFBQTtBQUFBO0FBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7RUFDSTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0VBR0E7OztBQUVKO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7QUFDQTtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUFBO0FBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtFQUVJO0VBQ0E7OztBQUVKO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtFQUVJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtBQUFBO0FBQUE7QUFHQTtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFDQTtFQUNJO0VBQ0E7OztBQUVKO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0FBRUE7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0lBQUs7O0VBQ0w7SUFBTzs7O0FBRVg7RUFDSTtJQUNJOzs7QUFHUjtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7QUFBQTtFQUVJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFFQTtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7RUFFSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNJOzs7QUFHSjtBQUFBO0FBRUE7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0VBRUk7OztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtFQUVJO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUFBO0FBR0E7QUFBQTtFQUVJOzs7QUFFSjtBQUFBO0VBRUk7RUFDQTtBQUNBO0FBQUE7RUFFQTtFQUNBOzs7QUFFSjtBQUNBO0VBQ0k7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQUtJOzs7QUFHUjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0VBSUE7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFFQTtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0FBQ0E7RUFDSTs7O0FBRUo7RUFDSTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7SUFDSTs7O0FBSVI7QUFDSTtBQUFBO0FBQUE7QUFBQTtFQUlBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtJQUNJO0lBQ0E7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtJQUNJOzs7QUFHUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtJQUNJO0lBQ0E7OztBQUlSO0VBQXFCOzs7QUFFckI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUFxQjs7O0FBQ3JCO0VBQTZCOzs7QUFDN0I7RUFBd0M7OztBQUN4QztFQUF1Qzs7O0FBRXZDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBR0E7RUFBcUI7RUFBZTs7O0FBQ3BDO0VBQTZCOzs7QUFFN0I7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBNEI7OztBQUM1QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUFvQjtFQUFlO0VBQXdCOzs7QUFDM0Q7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFzQztFQUFnQjs7O0FBQ3REO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQXdCO0VBQWM7RUFBc0I7OztBQUM1RDtFQUF3RDs7O0FBRXhEO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0E7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBRUE7RUFBZTtFQUFlO0VBQXdCO0VBQWtCOzs7QUFDeEU7RUFBcUI7RUFBZTs7O0FBRXBDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUF5QjtFQUFpQjs7O0FBQzFDO0VBQStCOzs7QUFDL0I7RUFBc0Q7OztBQUV0RDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQ0E7RUFBdUM7OztBQUV2QztFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFxQzs7O0FBQ3JDO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBbUM7OztBQUVuQztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFFQTtFQUE0Qjs7O0FBQzVCO0VBQXlCOzs7QUFFekI7QUFBQTtBQUVBO0VBQ0k7SUFDSTtJQUNBOztFQUVKO0lBQXFCOztFQUNyQjtJQUFzQjs7O0FBRzFCO0FBQUE7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFtQzs7O0FBRW5DO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBNEI7OztBQUU1QjtBQUFBO0FBQUE7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUE4Qjs7O0FBQzlCO0VBQW1DOzs7QUFFbkM7QUFBQTtBQUVBO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUFnQzs7O0FBQ2hDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQTBCOzs7QUFDMUI7RUFBMEI7RUFBZTs7O0FBQ3pDO0VBQ0k7SUFBTzs7RUFDUDtJQUFPOzs7QUFFWDtFQUNJO0lBQW9COzs7QUFHeEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBNkI7OztBQUM3QjtFQUFrQzs7O0FBQ2xDO0VBQTBCOzs7QUFLMUI7QUFBQTtBQUFBO0FBSUE7QUFDQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQTtFQUFjO0VBQWlCOzs7QUFDL0I7RUFBYztFQUFlO0VBQXlCO0VBQVc7RUFBaUI7OztBQUNsRjtFQUFxQjtFQUFTOzs7QUFDOUI7RUFBaUI7RUFBaUI7RUFBdUM7OztBQUN6RTtFQUF5QjtFQUFnQjtFQUFpQjs7O0FBRTFEO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDSTtFQUFlO0VBQXFCO0VBQ3BDO0VBQVc7RUFBcUI7OztBQUVwQztFQUFzQjtFQUFlO0VBQXFCO0VBQVc7OztBQUNyRTtFQUF1QjtFQUFlO0VBQXFCO0VBQVc7OztBQUN0RTtFQUFnQjtFQUFjO0VBQWlCOzs7QUFDL0M7RUFBa0I7OztBQUVsQjtBQUFBO0FBRUE7QUFBQTtBQUFBO0VBR0k7RUFDQTtFQUNBOzs7QUFFSjtFQUF3Qjs7O0FBQ3hCO0VBQXNCO0VBQWlCOzs7QUFFdkM7QUFDQTtFQUFtQjtFQUFpQjs7O0FBQ3BDO0VBQTJCOzs7QUFFM0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFzQzs7O0FBQ3RDO0VBQWlDOzs7QUFDakM7RUFBd0I7OztBQUN4QjtFQUFnQzs7O0FBRWhDO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFBZ0U7OztBQUNoRTtBQUFBO0FBRUE7RUFBd0Y7OztBQUV4RjtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtFQUNJOzs7QUFHSjtBQUNBO0VBQ0k7SUFBTztJQUFZOztFQUNuQjtJQUFPO0lBQVk7OztBQUV2QjtFQUNJOzs7QUFHSjtBQUFBO0FBRUE7RUFDSTtJQUFPO0lBQVk7O0VBQ25CO0lBQU87SUFBWTs7O0FBRXZCO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFHSjtBQUNBO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtBQUNBO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUF1QjtFQUFlO0VBQVU7OztBQUNoRDtFQUFvQjtFQUFpQjtFQUFpQjs7O0FBQ3REO0VBQXdDOzs7QUFDeEM7RUFBcUI7RUFBaUI7RUFBbUI7OztBQUN6RDtFQUE2Qjs7O0FBQzdCO0VBQXNCO0VBQWlCO0VBQW1COzs7QUFDMUQ7RUFBOEI7OztBQUU5QjtBQUFBO0FBQUE7QUFHQTtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFHSjtBQUNBO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQWtCO0VBQWU7RUFBNEI7OztBQUU3RDtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQXNDOzs7QUFDdEM7RUFBd0Q7OztBQUN4RDtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFrQjtFQUFpQjtFQUFtQjs7O0FBQ3REO0VBQTZFOzs7QUFDN0U7RUFBc0M7OztBQUV0QztBQUFBO0FBRUE7RUFBaUI7RUFBaUI7RUFBaUI7OztBQUNuRDtFQUF5Qjs7O0FBQ3pCO0VBQW1CO0VBQW9CO0VBQW1COzs7QUFDMUQ7RUFBMkI7OztBQUMzQjtFQUFxQzs7O0FBRXJDO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQStCOzs7QUFFL0I7QUFBQTtBQUVBO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBb0I7OztBQUNwQjtFQUFrQzs7O0FBRWxDO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQThCOzs7QUFDOUI7RUFBeUM7OztBQUN6QztFQUErQzs7O0FBQy9DO0VBQ0k7RUFDQTs7O0FBRUo7RUFBc0I7RUFBdUI7OztBQUU3QztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQThCOzs7QUFDOUI7RUFBeUI7OztBQUN6QjtFQUFpQztFQUErQzs7O0FBQ2hGO0VBQWdDO0VBQWdCOzs7QUFDaEQ7RUFBeUI7RUFBYzs7O0FBQ3ZDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFHQTtFQUFxQjtFQUFlO0VBQXdCOzs7QUFDNUQ7RUFBNkI7OztBQUM3QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBZ0M7OztBQUNoQztFQUF5QjtFQUFjOzs7QUFDdkM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUEyQzs7O0FBRTNDO0VBQW1CO0VBQWlCO0VBQWlCO0VBQW1COzs7QUFDeEU7RUFBMkI7OztBQUMzQjtBQUFBO0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFpQztFQUFnQjtFQUFnQjs7O0FBQ2pFO0VBQXVDOzs7QUFFdkM7QUFBQTtBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQTJCOzs7QUFDM0I7RUFDSTtFQUNBO0VBQWE7RUFDYjtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBNkI7SUFBSzs7O0FBQ2xDO0VBQ0k7SUFBc0I7OztBQUcxQjtFQUFvQjtFQUFvQjtFQUFtQjs7O0FBQzNEO0VBQTRCOzs7QUFFNUI7QUFDQTtBQUFBO0FBRUE7RUFDSTtFQUFpQjtFQUFhO0VBQVc7RUFDekM7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQWU7RUFBd0I7OztBQUUzQztFQUF3QjtFQUFlOzs7QUFDdkM7RUFDSTtJQUFPO0lBQVk7O0VBQ25CO0lBQU87SUFBWTs7O0FBRXZCO0VBQ0k7RUFBZTtFQUFxQjtFQUNwQztFQUFXO0VBQ1g7RUFBa0M7OztBQUV0QztFQUFrQjtFQUFXO0VBQWlCO0VBQW1CO0VBQWtCOzs7QUFDbkY7RUFDSTtFQUFnQjtFQUFXO0VBQWtCO0VBQzdDO0VBQWM7RUFBb0I7RUFDbEM7RUFBc0I7RUFBcUI7OztBQUUvQztFQUF3Qjs7O0FBQ3hCO0VBQ0k7RUFBZTtFQUFxQjtFQUNwQztFQUEyQjs7O0FBRS9CO0VBQW1CO0VBQWdCOzs7QUFDbkM7RUFBa0I7RUFBZ0I7RUFBaUI7RUFBZ0I7OztBQUNuRTtFQUNJO0VBQWdCO0VBQ2hCO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBdUI7OztBQUN2QjtFQUErQjs7O0FBQy9CO0VBQWtCO0VBQWE7RUFBYztFQUFtQjs7O0FBQ2hFO0VBQW1DOzs7QUFDbkM7RUFDSTtFQUFvQjtFQUFVO0VBQzlCO0VBQWE7RUFBYztFQUczQjtFQUFrQjtFQUNsQjtFQUFlO0VBQXFCO0VBQ3BDOzs7QUFFSjtFQUFtRDs7O0FBQ25EO0VBQ0k7RUFDQTtFQUFlO0VBQ2Y7RUFBcUM7OztBQUd6QztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBc0M7RUFBZ0I7RUFBZ0I7OztBQUV0RTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUFrQztFQUF3Qjs7O0FBQzFEO0VBQWtDO0VBQWM7OztBQUNoRDtFQUFrQzs7O0FBQ2xDO0VBQWtCOzs7QUFDbEI7RUFBNkI7OztBQUM3QjtFQUFxQjtFQUFtQjtFQUFrQjtFQUF1Qzs7O0FBQ2pHO0VBQW9CO0VBQWlCO0VBQW1CO0VBQWdCOzs7QUFFeEU7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUFxQjs7O0FBQ3JCO0VBQXlDOzs7QUFDekM7RUFBb0I7RUFBZTtFQUF3QjtFQUFVOzs7QUFDckU7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQW1COzs7QUFDbkI7RUFBbUI7OztBQUVuQjtFQUNJO0VBQ0E7RUFDQTtBQUNBO0VBQ0E7OztBQUVKO0VBQW1DOzs7QUFDbkM7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBMEI7OztBQUMxQjtFQUErQjtFQUFnQjtFQUFnQjs7O0FBQy9EO0VBQW1COzs7QUFFbkI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBMkI7OztBQUUzQjtBQUFBO0FBRUE7RUFBMEI7OztBQUMxQjtFQUE2Qzs7O0FBQzdDO0VBQW1EOzs7QUFDbkQ7RUFBbUQ7RUFBcUI7OztBQUN4RTtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtFQUMwQjs7O0FBQzFCO0VBQWtDOzs7QUFDbEM7RUFBc0I7RUFBa0I7RUFBa0I7OztBQUMxRDtFQUF1QjtFQUF1QztFQUFrQjs7O0FBQ2hGO0VBQTZCOzs7QUFDN0I7RUFBa0I7RUFBZ0I7RUFBc0I7OztBQUV4RDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUE2QjtFQUFxQjs7O0FBQ2xEO0VBQTZCO0VBQXFCOzs7QUFDbEQ7RUFBNkI7RUFBcUI7OztBQUVsRDtBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBMEI7OztBQUMxQjtFQUFvQjtFQUFnQjs7O0FBQ3BDO0VBQW9CO0VBQWU7RUFBdUI7RUFBVzs7O0FBQ3JFO0VBQXFCO0VBQW1CO0VBQWtCOzs7QUFDMUQ7RUFBbUI7RUFBbUI7RUFBa0I7OztBQUN4RDtFQUEyQjs7O0FBQzNCO0VBQTJCOzs7QUFDM0I7RUFBMkI7OztBQUMzQjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFBeUM7OztBQUN6QztFQUEwQjs7O0FBQzFCO0VBQTBCOzs7QUFDMUI7RUFBMEI7OztBQUMxQjtFQUFvQjtFQUFnQjs7O0FBRXBDO0FBQ0E7RUFBaUI7RUFBZTtFQUFXOzs7QUFDM0M7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBdUI7RUFBaUI7RUFBa0I7OztBQUMxRDtFQUF1QjtFQUFpQjtFQUFrQjs7O0FBQzFEO0VBQXVCO0VBQWlCOzs7QUFFeEM7QUFDQTtFQUNJO0FBQUE7QUFBQTtBQUFBO0lBR29COztFQUNwQjtJQUFtQjs7O0FBR3ZCO0FBQUE7QUFFQTtFQUF3QjtFQUFlO0VBQXdCOzs7QUFDL0Q7RUFBNEI7RUFBaUI7OztBQUM3QztFQUFrQzs7O0FBQ2xDO0VBQWtEO0VBQXNCO0VBQXFCOzs7QUFDN0Y7RUFBMEI7RUFBa0M7RUFBZ0I7OztBQUM1RTtFQUE0RDs7O0FBQzVEO0VBQXdCO0VBQWtCO0VBQW1DOzs7QUFDN0U7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQW1DOzs7QUFDbkM7RUFBK0M7RUFBa0I7OztBQUVqRTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNJO0VBQ0E7OztBQUVKO0VBQWdCOzs7QUFDaEI7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQThCOzs7QUFDOUI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFDQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWNBO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUF1Qzs7O0FBRXZDO0VBQWdCOzs7QUFFaEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQTBDOzs7QUFFMUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7RUFDSTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0VBR0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQTRCOzs7QUFFNUI7QUFDQTtBQUFBO0VBRUk7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBT0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBaUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0FBQUE7QUFHQTtFQUNJO0VBQ0E7OztBQUlKO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQ0k7RUFDQTs7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDSTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFDSTtFQUNBO0lBQ0k7O0FBR0o7QUFBQTtFQUVBO0FBQUE7SUFFSTs7RUFFSjtBQUFBO0lBRUk7O0FBR0o7QUFBQTtFQUVBO0lBQ0k7SUFDQTs7RUFFSjtJQUNJO0lBQ0E7O0FBR0o7QUFBQTtFQUVBO0lBQ0k7O0FBR0o7QUFBQTtFQUVBO0lBQ0k7O0VBRUo7SUFDSTtJQUNBOztBQUdKO0VBQ0E7SUFDSTs7RUFFSjtJQUNJOzs7QUFJUjtFQUNJO0lBQU87SUFBWTs7RUFDbkI7SUFBTztJQUFZOzs7QUFFdkI7RUFDSTtJQUFPO0lBQVk7O0VBQ25CO0lBQU87SUFBWTs7O0FBRXZCO0VBQ0k7SUFBTzs7RUFDUDtJQUFPOzs7QUFHWDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQ0k7OztBcE1qbE1KO0VBQ0k7RUFDQTtFQUNBOztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVU7O0FBRVY7RUFBTztFQUFpQjs7O0FBS2hDO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFlSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBTUE7RUFDQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7RUFJQTtFQUNBOzs7QUFPSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUFROzs7QUFHWjtFQUNJO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFk2TDdLSTtFN0w4S0o7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQVlBO0VBQ0k7O0FBT0o7RUFDSTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBR0E7RUFDQTs7QUFFQTtBQUFBO0VBQ0k7O0FBRUo7QUFBQTtFQUNJOztBQUVKO0FBQUE7RUFDSTtFQUNBOztBQUNBO0FBQUE7RUFBVTs7O0FBSWxCO0VBQ0k7RUFDQTs7O0FBSUo7RUFFSTtBQUFBO0lBRUk7SUFDQTs7O0FBSVI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOzs7QUFNaEI7RUFDSTs7O0FBS0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtBQUFBO0VBRUk7RUFDQTs7QUFFQTtBQUFBO0VBQ0k7RUFDQTs7O0FBVVI7RUFDSTtFQUNBO0FBQ0E7RUFFQTtFQUNBO0VBRUE7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUdBO0VBQ0k7OztBQUlSO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQSxPNkwzaUJJOzs7QTdMOGlCUjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFJSjtFQUNJOztBQUlKO0VBQ0k7O0FBSUo7RUFDSTs7O0FBTVI7QUFBQTtFQUVJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBS0o7RUFDSTtFQUNBLE82TG5xQkk7RTdMb3FCSjtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUVBOztBQU9BO0VBQ0k7OztBQVFoQjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUdJOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBS0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7OztBQUlSO0VBQ0k7RUFDQSxPNkxsMkJJO0U3TG0yQko7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0o7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBS0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBSUo7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBTUo7RUFHSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFlOztBQUVmO0VBQVU7OztBQUlkO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUlBO0FBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUVKO0VBQ0k7OztBQUtaO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUtKO0FBQUE7QUFBQTtBQUlBO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBSUo7RUFDSTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7O0FBS1I7QUFBQTtFQUVJOzs7QUFFSjtBQUFBO0FBQUE7RUFHSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTs7O0FBRUo7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsTUEvNENVOztBQWs1Q2Q7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsTUF4NUNVOzs7QUFtNkNkO0VBQ0k7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsZUFaUTtFQWFSOztBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFJUjtFQUNJO0VBQ0E7O0FBR0o7RUFDSSxlQWpDSTtFQWtDSixPNkwvNkNSO0U3TGc3Q1E7RUFDQSxZQXRDSTtFQXVDSjs7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0ksWUFqREM7O0FBbUVUO0VBQ0k7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFLUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUtBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7O0FBR0o7RUFFSTtFQUNBOztBQUdKO0VBRUk7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOzs7QUEwQnhCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxNQTFtRGM7RUEybURkOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSjtBQUtJO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFjQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVVKO0FBQUE7RUFFSTs7O0FBS0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQU87RUFBaUI7O0FBRXhCO0VBQVU7RUFBcUM7OztBQUtuRDtFQUNJO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBUUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0VBRUk7RUFDQTs7O0FBU0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQU9KO0VBQVc7O0FBQ1g7RUFBYTs7QUFNYjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBSUE7RUFDQTtFQUNBOzs7QUFJUjtFQUNJO0lBQVU7O0VBQ1Y7SUFBVTs7O0FBVWQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFRQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0VBRUk7RUFDQTs7O0FBR0o7RUFDSTtJQUFLOzs7QUFJVDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtJQUFPO0lBQVk7O0VBQ25CO0lBQU87SUFBWTs7O0FBR3ZCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBTztFQUFpQjs7QUFFeEI7RUFBVTtFQUFxQzs7O0FBS25EO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7SUFBa0I7OztBQUd0QjtFQUNJO0lBQTJDO0lBQWtCOztFQUM3RDtJQUFtQjtJQUFpQjs7O0FBR3hDO0VBQW1CO0VBQWU7OztBQWM5QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQWFJO0VBQ0k7O0FBQ0E7RUFBa0I7O0FBR3RCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUFpQjs7QUFFckI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFBTztFQUEwQztFQUFpQjs7QUFDbEU7RUFBZTs7QUFJdkI7RUFDSTtFQUNBOztBQVFKO0VBQ0k7RUFDQTs7QUFHSjtFQUEwQjtFQUFnQjs7QUFDMUM7RUFBZ0M7RUFBZ0I7O0FBT2hEO0VBQ0k7O0FBRUo7QUFBQTtFQUVJOztBQU9KO0VBQ0k7O0FBRUo7QUFBQTtFQUVJOztBQVNKO0VBQ0k7RUFDQTtFQUNBOzs7QUFTUjtFQUNJOzs7QUFLSjtFQUNJO0lBQU87SUFBWTs7RUFDbkI7SUFBTztJQUFZOzs7QUFHdkI7RUFDSTtJQUFPOztFQUNQO0lBQU87OztBQUdYO0VBQ0k7SUFBTztJQUFZOztFQUNuQjtJQUFPO0lBQVk7OztBQUd2QjtFQU9JOztBQUdBO0VBRUksTzZMOW5FQTtFN0wrbkVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsZUFiWTtFQWNaOztBQUVBO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFFSTs7QUFHSjtFQUNJOztBQVFaO0VBQ0ksT0E5Q007RUErQ047RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7O0FBRUE7RUFDSTs7QUFFSjtFQUNJOztBQUVKO0VBQ0k7RUFDQTs7QUFDQTtFQUFVOztBQXRCbEI7RUF3Qkk7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBSUo7RUFFSTtFQUNBOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTs7QUFHSjtFQUVJOztBQUtaO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTs7QUFHQTtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQVFoQjtFQUNJO0VBQ0E7OztBQVNJO0VBQ0k7O0FBS1o7RUFDSTs7O0FBaUNSO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7QUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7QUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBLE82TGwzRUo7RTdMbTNFSTtFQUNBO0VBQ0E7RUFDQTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7QUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTs7O0FBS1I7RUFDSTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7QUFDQTtBQUFBO0FBQUE7RUFHQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFLSjtFQUVJOzs7QUFHSjtBQUFBO0VBRUk7RUFDQTtFQUNBOzs7QUFLSjtBQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtFQUdJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7QUFDSTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtBQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtBQUFBO0VBRUk7RUFDQTtFQUNBOzs7QUFXSjtFQUNJLE9BTEk7OztBQVFSO0VBQ0ksa0JBUFk7RUFRWjtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJLE9BaEJBO0VBaUJBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0ksY0EzQkE7O0FBNkJBO0VBQ0k7O0FBR0o7RUFDSTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBLE9BMUNBO0VBMkNBO0VBQ0E7RUFDQTs7QUFFQTtFQUVJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0ksa0JBdERJO0VBdURKO0VBQ0E7RUFDQTtFQUNBOztBQUlKO0VBQ0ksY0FqRUo7RUFrRUksT0FsRUo7RUFtRUk7O0FBRUE7RUFDSSxrQkF0RVI7RUF1RVEsY0F2RVI7RUF3RVEsTzZMandGUjs7QTdMb3dGSTtFQUNJOztBQUdKO0VBRUksTzZMMXdGUjtFN0wyd0ZRLGtCQWxGUjtFQW1GUSxjQW5GUjs7QUF1RkE7RUFqREo7SUFrRFE7OztBQUlSO0VBQ0k7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLE9BOUdBO0VBK0dBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0ksa0JBcEhFOzs7QUEwSGQ7RUFDSSxrQkExSFk7RUEySFosT0E3SEk7RUE4SEosY0E5SEk7O0FBZ0lKO0VBQ0ksTzZMMXpGQTtFN0wyekZBLGtCQWxJQTtFQW1JQSxjQW5JQTs7QUFzSUo7RUFDSTs7QUFHSjtFQUNJLE82THAwRkE7RTdMcTBGQSxrQkE1SUE7RUE2SUEsY0E3SUE7OztBQWlKUjtFQUNJLGtCQWpKVTtFQWtKVixPQW5KSTtFQW9KSixjQW5KVTs7QUFxSlY7RUFDSSxrQkF2SkE7RUF3SkEsTzZMajFGQTtFN0xrMUZBLGNBekpBOztBQTRKSjtFQUNJOztBQUdKO0VBQ0ksTzZMMTFGQTtFN0wyMUZBLGtCQWxLQTtFQW1LQSxjQW5LQTs7O0FBdUtSO0VBQ0k7O0FBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlBO0VBQ0ksa0I2THozRlI7RTdMMDNGUTs7QUFLWjtFQUNJOztBQUdKO0VBQ0k7O0FBRUE7RUFDSTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7O0FBTVo7RUFDSTtFQUNBO0VBQ0Esa0JBOU5ZO0VBK05aOztBQUVBO0VBQ0k7RUFDQSxPQXJPQTtFQXNPQTtFQUNBOztBQUVBO0VBQ0k7O0FBRUE7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTs7QUFLWjtFQUNJLGtCQTFQRTs7O0FBK1BkO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHQTtFQUdJOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJOzs7QUFLUjtFQUVJLE9BRFU7RUFFVjtFQUNBOzs7QUFJSjtFQVFJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJQTtFQUNJLFlBakJNOztBQW9CVjtFQUNJO0VBQ0E7RUFDQSxPQXZCTTs7QUF5Qk47RUFDSSxZQTFCRTtFQTJCRjs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBLE9BbkNNO0VBb0NOO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSSxZQS9DTTtFQWdETixjQWhETTtFQWlETjs7QUFFQTtFQUNJLFlBbkRRO0VBb0RSLGNBcERROztBQXdEaEI7RUFDSSxZQXhEUTtFQXlEUjtFQUNBOztBQUVBO0VBQ0ksWUE1RFU7O0FBZ0VsQjtFQUNJO0VBQ0E7RUFDQSxPQXRFTTs7QUF3RU47RUFDSSxZQXpFRTtFQTBFRjs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsT0FuRk07RUFvRk47RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBSVI7RUFDSSxZQTFGTTtFQTJGTjtFQUNBOztBQUVBO0VBQ0ksWUE5RlE7OztBQW9HaEI7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFPQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQU1KO0VBQ0k7RUFDQTtFQUNBOztBQUtKO0VBQ0k7RUFDQTtFQUNBOzs7QUFLWjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUVJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7O0FBQ0E7RUFBdUI7RUFBVTtFQUFXOztBQW9CNUM7QUFBQTtFQUVJOztBQVlKO0FBQUE7RUFFSTs7QUFLUjtFQUNJOztBQXhEUjtBQTZESTs7QUFDQTtFQUNJOztBQS9EUjtBQWtFSTs7QUFDQTtFQUNJO0VBQ0E7O0FBckVSO0FBd0VJOztBQUNBO0VBQ0k7OztBQU9KO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7O0FBVVo7RUFDSTtFQUNBOztBQUdKO0VBQ0k7OztBQUlSO0VBQ0k7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUNJOzs7QUFNSjtFQUNJO0VBQ0E7O0FBS0k7RUFDSTtFQUVBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7O0FBS0o7RUFDSTs7QUFFQTtFQUNJOzs7QUFlaEI7RUFDSTs7O0FBSVI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSTtFQUNJOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQU9oQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS1I7RUFDSTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0EsTUF0OEdjOztBQXc4R2Q7RUFFSTs7QUFHQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0E7RUFDSTtFQUNBOztBQUtSO0VBQ0k7RUFDQTtFQUNBOztBQUdBO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFLSjtFQUNJO0VBQ0E7OztBQVNoQjtFQUVJO0VBQ0E7RUFDQTs7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUlKO0VBQ0k7RUFDQTs7O0FBT1o7RUFHSTtFQUNBO0VBQ0EsT0FKVTtFQUtWO0VBQ0E7O0FBRUE7RUFDSTtFQUVBO0VBQ0E7RUFDQSxrQkFiTTtFQWNOOzs7QUFLUjtFQUNJO0VBR0E7RUFDQTtFQUNBO0VBSUE7OztBQVNKO0VBQ0k7OztBQUVKO0VBQ0k7OztBQVNKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7OztBQVdSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBRUk7RUFDQTs7O0FBR0o7QUFBQTtFQUVJOzs7QUFHSjtFQUNJO0VBR0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFHQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBR0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBR0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQWNKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBU0o7RUFDSTs7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTtFQUNBOzs7QUFRSjtFQUNJO0VBQ0E7RUFDQTtFQUlBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBR0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQU9KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7O0FBV0E7QUFBQTtBQUFBO0FBQUE7RUFJSTtFQUVBO0VBQ0E7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFFSTs7QUFLSjtFQUNJOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBRUk7O0FBR0o7RUFDSTs7QUFNUjtFQUNJO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0VBQ0k7RUFDQTs7QUFFQTtFQUVJO0VBQ0E7RUFDQTs7QUFRUjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBS0o7RUFDSTs7QUFLSjtBQUFBO0VBRUk7O0FBSUo7RUFDSTs7QUFFQTtFQUNJOztBQUtKO0VBQ0k7O0FBT2hCO0VBQ0k7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBS1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUVJOztBQUdKO0VBRUk7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFFSTtFQUNBO0VBQ0E7RUFDQTs7O0FBa0NaO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFFSTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFTSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSjtFQUNJOzs7QUFHSjtFQU1JO0VBTUE7RUFDQTtFQWNBO0VBQ0E7OztBQUdKO0VBR0k7OztBQUdKO0VBTUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBV0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBWUo7RUFDSTs7O0FBT0o7QUFBQTtBQUFBO0FBQUE7RUFJSTs7O0FBSUo7RUFDSTtFQWVBOzs7QUFxQkE7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7OztBQVVSO0VBQ0k7RUFDQTs7O0FBVUo7RUFDSTtFQUNBOzs7QUFNSjtFQUtJOzs7QUFHSjtFQUNJO0VBR0E7OztBQVFKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQVdKO0VBQ0k7OztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQVFKO0VBQ0k7O0FBRUE7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtFQUVJOzs7QUFFSjtBQUFBO0FBQUE7RUFHSTs7O0FBRUo7QUFBQTtBQUFBO0VBR0k7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7OztBQUtSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFBTzs7QUFDUDtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7OztBQUlSO0VBQ0k7SUFBTzs7RUFDUDtJQUFPOzs7QUFFWDtFQUNJO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQU87O0FBRVg7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFBTzs7O0FBR2Y7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFBVTs7QUFDVjtFQUNJO0VBQ0E7RUFDQTs7QUFDQTtFQUFVOztBQUVkO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0VBQVU7OztBQUtsQjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBOzs7QUFLUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7OztBQUdSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUVKO0VBQ0k7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOzs7QUFJUjtFQUNJO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOzs7QUFJWDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUFZOztBQUNaO0VBQVk7O0FBQ1o7RUFBWTs7O0FBSWhCO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTs7O0FBS1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTs7QUFHUjtFQUNJO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBOztBQUdSO0VBQ0k7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOzs7QUFLUjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7O0FBQ0E7RUFBWTs7O0FBRWhCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZQUNJOztBQUtKO0VBQ0k7RUFDQTtFQUNBOzs7QUFLUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQVNKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0FBQUE7RUFBVTtFQUFxQzs7QUFFL0M7QUFBQTtFQUFPOzs7QUFHWDtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHQTtFQUNJOztBQUtKO0VBQ0k7RUFDQTtFQUNBOztBQUtKO0VBQ0k7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0E7RUFDSTtFQUNBOztBQU9SO0VBQ0k7OztBQUtSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBTzs7QUFFUDtFQUNJO0VBQ0E7RUFDQTs7O0FBSVI7QUFBQTtFQUVJO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBR0o7RUFBTzs7O0FBSVg7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBQ0E7RUFBVTs7QUFHZDtFQUNJO0VBQ0E7RUFDQTs7QUFDQTtFQUFVO0VBQXFCOzs7QUFTdkM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHQTtFQUNJO0VBQ0E7O0FBRUE7RUFBcUI7RUFBWTs7QUFDakM7QUFBQTtFQUN5QjtFQUFxQjs7QUFJbEQ7RUFDSTtFQUNBOztBQUlKO0VBQ0k7RUFDQTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUFjO0VBQWdCOzs7QUFJbEM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBS0o7RUFDSTs7QUFFQTtFQUFVOztBQUdkO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFVOzs7QUFLbEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVU7O0FBRVY7RUFBTzs7O0FBT1g7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlSO0VBQ0k7SUFBTzs7RUFDUDtJQUFPOzs7QUFRWDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQVU7RUFBcUI7O0FBR25DO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQVU7RUFBa0I7OztBQUtwQztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0VBQVU7O0FBR2Q7RUFDSTtFQUNBOztBQUNBO0VBQVU7OztBQU1sQjtBQUFBO0VBQzJCOzs7QUFDM0I7QUFBQTtFQUMwQjs7O0FBRTFCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFVO0VBQW9DOztBQUU5QztFQUNJO0VBQ0E7RUFDQTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFBVTtFQUFvQzs7O0FBSWxEO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZQUNJO0VBRUo7RUFDQTtFQUNBO0VBQ0E7RUFHQTs7QUFHQTtFQUNJO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBSUk7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7O0FBT1I7QUFBQTtBQUFBO0VBR0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUlJOzs7QUFLUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0VBQVU7OztBQUlkO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFPOztBQUVQO0VBQ0k7RUFDQTs7O0FBS1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7O0FBS1o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7SUFBVzs7RUFDWDtJQUFZOzs7QUFLaEI7RUFDSTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7RUFHSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtBQUFBO0FBQUE7RUFBTzs7O0FBR1g7RUFBZTs7O0FBR2Y7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQWU7OztBQUduQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFVOztBQUVWO0VBQ0k7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBUzs7O0FBR2I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBOztBQUVBO0VBQXlCOzs7QUFHN0I7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBZTs7QUFDZjtFQUFVOzs7QUFHZDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHQTtFQUFnQztFQUFxQjs7QUFDckQ7RUFBZ0M7RUFBcUI7O0FBQ3JEO0VBQWtDO0VBQXFCOztBQUd2RDtFQUNpQztFQUFxQjs7QUFHdEQ7RUFBZ0M7RUFBcUI7O0FBR3JEO0VBQ2dDO0VBQXFCOztBQUNyRDtFQUNnQztFQUFxQjs7QUFHckQ7RUFBZ0M7RUFBcUI7O0FBQ3JEO0VBQWdDO0VBQXFCOztBQUNyRDtFQUFnQztFQUFxQjs7O0FBR3pEO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTs7O0FBSUo7RUFDSTtJQUFPO0lBQVk7O0VBQ25CO0lBQU87SUFBWTs7O0FBR3ZCO0VBQ0k7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7OztBQUtSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUFhO0VBQWM7O0FBRTNCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUlSO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFJOztBQUNKO0VBQVU7RUFBcUM7OztBQUduRDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQXdCOzs7QUFDeEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFhO0VBQWdCOzs7QUFDN0I7RUFBYTs7O0FBQ2I7RUFBYTs7O0FBQ2I7RUFBaUI7RUFBbUI7RUFBZ0I7OztBQUNwRDtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFjO0VBQWlCOzs7QUFDL0I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBSTs7O0FBRVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtFQUNJOztBQUVBO0VBQU07RUFBYTtFQUFjOzs7QUFFckM7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFtQjtFQUFpQjtFQUFnQjs7O0FBQ3BEO0VBQW1CO0VBQWlCO0VBQWtCOzs7QUFDdEQ7RUFBbUI7RUFBaUI7OztBQUVwQztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFJOztBQUNKO0VBQVU7RUFBcUM7OztBQUVuRDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFJOztBQUNKO0VBQVU7OztBQXVCZDtFQUNJOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJLFlBQ0k7OztBQVFSO0VBQ0k7QUFBQTtJQUVJOzs7QUFLUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7O0FBQ0E7RUFBdUI7RUFBVTtFQUFXOzs7QUFJaEQ7RUFDSTtFQUNBOzs7QUFPSjtFQUNJOztBQUVBO0VBQWlCO0VBQWdCOzs7QUFFckM7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7QUFLQTtFQUFrRDs7QUFDbEQ7RUFBa0Q7O0FBQ2xEO0VBQWtEOztBQUNsRDtFQUFrRDs7QUFDbEQ7RUFBa0Q7O0FBQ2xEO0VBQWtEOztBQUNsRDtFQUFrRDs7QUFDbEQ7RUFBa0Q7O0FBQ2xEO0VBQWtEOztBQUdsRDtFQUF1RDs7QUFDdkQ7RUFBdUQ7O0FBQ3ZEO0VBQXVEOztBQUN2RDtFQUF1RDs7QUFDdkQ7RUFBdUQ7O0FBQ3ZEO0VBQXVEOztBQUN2RDtFQUF1RDs7QUFDdkQ7RUFBdUQ7O0FBQ3ZEO0VBQXVEOztBQUN2RDtFQUF1RDs7QUFDdkQ7RUFBdUQ7O0FBQ3ZEO0VBQXVEOztBQUN2RDtFQUF1RDs7QUFDdkQ7RUFBdUQ7O0FBQ3ZEO0VBQXVEOztBQUN2RDtFQUF1RDs7QUFFdkQ7RUFBdUQ7O0FBQ3ZEO0VBQXVEOzs7QUFTM0Q7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBbUI7RUFBYTtFQUFlOzs7QUFDL0M7RUFBbUI7RUFBYTtFQUFlO0VBQXFCO0VBQTJCOzs7QUFDL0Y7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBSTs7QUFDSjtFQUFVO0VBQXFDOzs7QUFFbkQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFJO0VBQWlCOztBQUNyQjtFQUFVO0VBQTZCOzs7QUFHM0M7QUFBQTtBQUFBO0FBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUtBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU1KO0VBQ0k7RUFDQTtFQUlBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFVQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFBdUI7RUFBVTtFQUFXOzs7QUFNaEQ7RUFDSTs7O0FBRUo7RUFBZTs7O0FBSWY7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQWM7OztBQU9kO0VBQW9CO0VBQWU7OztBQUNuQztFQUFlO0VBQWU7OztBQUM5QjtFQUFxQztFQUFhOzs7QUFTbEQ7RUFDSTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFrQjs7O0FBQ2xCO0VBQWtCOzs7QUFHbEI7RUFBaUI7RUFBZTtFQUF3Qjs7O0FBRXhEO0VBQW1CO0VBQWU7RUFBd0I7OztBQUMxRDtFQUFxQztFQUFlO0VBQWdDOzs7QUFDcEY7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVU7OztBQUdkO0VBQWtCOzs7QUFLbEI7RUFBZ0M7OztBQUNoQztFQUFnQzs7O0FBQ2hDO0VBQWdDOzs7QUFDaEM7RUFBZ0M7OztBQUloQztFQUNJOztBQUVBO0VBQXNCOzs7QUFPMUI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFBVTs7O0FBRWQ7RUFBNEI7OztBQUM1QjtFQUFrQzs7O0FBR2xDO0VBQW9COzs7QUFDcEI7RUFDSTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFRUjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUVBO0VBQWdCOzs7QUFFaEI7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBdUI7OztBQU8zQjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBTzs7QUFDUDtFQUFVO0VBQWdCOzs7QUFFOUI7RUFBMkI7OztBQVEzQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBZTs7O0FBUW5CO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFZQTtFQUNJO0VBQ0E7OztBQUdSO0VBQXlCOzs7QUFNekI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQWNKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFPQTtFQUNJO0VBQ0E7OztBQU9SO0VBQ0k7RUFDQTs7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUVJO0VBQ0E7RUFDQTs7O0FBa0JSO0VBQ0k7OztBQU1KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFPSjtFQUNJO0VBQ0E7RUFDQTs7QUFNQTtFQUNJOzs7QUFHUjtFQUNJOzs7QUFVSjtFQUNJO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBUUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUVKO0VBQ0k7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR1I7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQU9KO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBRUk7RUFDQTs7O0FBR1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUVBO0VBQ0k7OztBQUVKO0FBQUE7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBTztFQUFpQjs7QUFDeEI7RUFBUztFQUFpQjtFQUFrQjs7QUFDNUM7RUFBUztFQUFpQjs7QUFFMUI7RUFBa0I7OztBQUV0QjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUFVOzs7QUFHbEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBd0I7OztBQUN4QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFVOztBQUNWO0VBQVc7OztBQUVmO0VBQWU7RUFBZ0I7RUFBYztFQUFlO0VBQXFCOzs7QUFDakY7RUFBYTtFQUFnQjs7O0FBQzdCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQWlCOzs7QUFFckI7RUFBYTtFQUFnQjs7O0FBQzdCO0VBQWlCO0VBQW1CO0VBQWdCOzs7QUFNcEQ7QUFBQTtBQUFBO0FBQUE7RUFHb0M7OztBQUlwQztFQUNJO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVdSO0FBQUE7RUFFSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBc0I7OztBQUN0QjtFQUFzQjs7O0FBSXRCO0VBQWE7RUFBZ0I7RUFBa0I7RUFBa0I7OztBQUVqRTtFQUFnQjtFQUFlO0VBQXdCOzs7QUFJdkQ7RUFBc0I7OztBQUN0QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBTzs7O0FBRVg7RUFBYztFQUFpQjtFQUFnQjs7O0FBRy9DO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUEyQjs7O0FBRzNCO0VBQWU7RUFBZ0I7RUFBaUI7RUFBa0I7RUFBZ0I7OztBQUlsRjtFQUFhOzs7QUFHYjtFQUFlO0VBQWU7RUFBd0I7OztBQUl0RDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFLQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0VBQU07RUFBYTtFQUFjO0VBQW1COztBQUVwRDtFQUE2QjtFQUFxQjtFQUFjOzs7QUFHcEU7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQXNCO0VBQWU7RUFBcUI7RUFBVTs7O0FBQ3BFO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFpQjs7O0FBRXJCO0VBQW9CO0VBQWlCO0VBQWdCOzs7QUFLckQ7RUFBc0I7RUFBZTtFQUFxQjtFQUFVO0VBQWdCOzs7QUFDcEY7RUFDSTtFQUNBOztBQUdBO0VBQWlDOzs7QUFNckM7RUFDSTs7QUFDQTtFQUF3QjtFQUFhOztBQU9yQztBQUFBO0VBRUk7OztBQUdSO0VBQ0k7RUFDQTs7QUFDQTtFQUF3Qjs7O0FBTTVCO0VBQ0k7RUFDQTs7QUFDQTtFQUEwQjs7O0FBSTlCO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBZTtFQUFhOztBQUM1QjtFQUFVOzs7QUFFZDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBTzs7O0FBS1g7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFlO0VBQWE7O0FBQzVCO0VBQVU7OztBQU1kO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFlO0VBQWE7O0FBQzVCO0VBQVU7OztBQUtkO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQWU7RUFBYTtFQUFjOzs7QUFFOUM7QUFBQTtFQUNpQzs7O0FBQ2pDO0FBQUE7RUFDNkI7RUFBWTs7O0FBUXpDO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7O0FBR1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUFzQzs7O0FBQ3RDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQWdDO0VBQWtCOzs7QUFDbEQ7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBcUI7OztBQUNyQjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdSO0VBSUk7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7O0FBUVI7RUFDSTtFQUNBO0VBQ0E7OztBQU1KO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBZ0I7O0FBRXBCO0VBQUs7O0FBQ0w7RUFBSzs7QUFDTDtFQUFLOztBQUVMO0VBQUk7O0FBQW1CO0VBQWU7O0FBQ3RDO0VBQVM7RUFBb0I7O0FBQzdCO0VBQUs7O0FBRUw7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUFVOztBQUVWO0VBQU07RUFBaUI7RUFBYzs7O0FBRXpDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUtBO0VBQWlCOzs7QUFFckI7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFLSjtFQUNJOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUtSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBT0o7RUFDSTs7O0FBU0o7RUFDSTs7O0FBUUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFlO0VBQWdCO0VBQWE7RUFBYztFQUFpQjs7O0FBSy9FO0VBQ0k7OztBQU1KO0VBQ0k7OztBQUtKO0VBQ0k7RUFDQTs7O0FBT0o7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0E7RUFDSTtFQUNBOztBQUVBO0VBQWU7OztBQUd2QjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7O0FBR1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJOztBQUVBO0VBQ0k7RUFDQTs7O0FBTVI7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUlKO0VBQ0k7O0FBS0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQTZCOztBQUM3QjtFQUNJO0VBQ0E7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBT1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBUUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUlBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtJQUFPOztFQUNQO0lBQU87OztBQUVYO0VBQ0k7SUFBZ0I7O0VBQ2hCO0lBQXlDOzs7QUFLN0M7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQU87RUFBaUI7RUFBa0I7OztBQU85QztFQUNJOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0E7RUFBZTs7O0FBT25CO0VBQ0k7RUFDQTtFQUNBO0VBSUE7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOztBQVFBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUtSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTs7QUFFQTtFQUEyQjs7QUFDM0I7RUFBMkI7OztBQU0vQjtFQUNJOztBQUNBO0VBQXVCO0VBQWdCOzs7QUFLM0M7RUFDSTtFQUNBOztBQUVBO0VBQWU7O0FBRWY7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFLSjtFQUNJOzs7QUFHUjtFQUNJO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOzs7QUFRWDtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUtJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQWU7O0FBRWY7RUFDSTtFQUNBOzs7QUFHUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTs7O0FBUVY7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUlSO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBSVI7RUFDSTtFQUNBOzs7QUFPUjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7SUFBSzs7RUFDTDtJQUFPOzs7QUFhWDtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7OztBQVNKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOzs7QUFHUjtFQUNJOzs7QUFPSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7OztBQUdSO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTs7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFJQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUVBO0VBQW9COztBQUNwQjtFQUFvQjtFQUFZOztBQUNoQztFQUFzQjtFQUFZOzs7QUFLMUM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOzs7QUFHUjtFQUNJO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFPOztBQUVQO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFPOztBQUVQO0VBQ0k7RUFDQTs7O0FBUVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUFVOzs7QUFFZDtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUFVOztBQUVWO0VBQ0k7RUFDQTs7O0FBdUJSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7QUFBQTtFQUN1Qzs7O0FBQ3ZDO0FBQUE7RUFDbUM7RUFBWTs7O0FBVy9DO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBT0o7RUFDSTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBRUo7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFFSjtFQUNJOzs7QUFHUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOzs7QUFJUjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJOzs7QUFLSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQWdCQTtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFJQTtFQUNJO0VBQ0E7O0FBTVI7RUFDSTtFQUNBO0VBQ0E7O0FBS0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUdBO0VBQ0E7O0FBR0o7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQVlKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBR0E7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7O0FBTUo7RUFDSTtFQUNBOzs7QXFNMWtTUjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXVCQTtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNJOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSVI7RUFDSSxZQXRDaUI7RUF1Q2pCOzs7QUFHSjtFQUNJLFlBMUNrQjtFQTJDbEI7OztBQUdKO0FBQ0E7RUFDSTtJQUFXOztFQUNYO0lBQVc7OztBQUdmO0VBQ0k7OztBQUdKO0FBS0E7RUFJSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFLUjtFQUNJOztBQXpEUjtBQTRESTs7QUFLQTtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0ksWUF0S1M7O0FBeUtiO0VBQ0ksWUF6S1U7O0FBNktsQjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSSxtQkEvTFM7O0FBa01iO0VBQ0ksbUJBbE1VOztBQXNNbEI7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7O0FBS1o7QUFDQTtFQUNJOztBQUVBO0VBQ0k7OztBQ25VUjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQW9CQTtFQUNJOzs7QUFHSjtFQUNJO0lBQVc7SUFBdUM7O0VBQ2xEO0lBQVc7SUFBMkM7OztBQUcxRDtFQUNJOzs7QUFHSjtBQUtBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVU7O0FBSWQ7RUFDSTs7QUFwRFI7QUF1REk7O0FBS0E7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJLFlBMUhNOztBQTZIVjtFQUNJOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTs7QUFHZDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQSxrQkFDSTtFQUVKO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTs7O0FBSWxCO0FBQ0E7QUFBQTtFQUVJOzs7QUNyUko7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFxQkE7RUFLSTs7O0FDWUo7RUFHQztFQUNBO0VBQ0E7RUFJQTtFQUNBO0VBQ0E7OztBQUdEO0VBQ0M7RUFDQTtFQUNBOzs7QUFFRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBR0M7RUFDQTtFQUNBOztBQUNBO0VBQ0M7O0FBR0Y7RUFDQztFQUNBO0VBQ0E7RUFDTSxPQW5GQTtFQW9GQTtFQUNBO0VBR0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7O0FBS0o7RUFDSTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBTWhCO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDRzs7O0FBR0o7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGtCQXpIcUI7RUEwSHJCO0VBQ0E7RUFDRzs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxPQXRKQTtFQXVKQTs7QUFFSjtFQUNJO0VBQ0E7O0FBRVA7RUFDQzs7QUFDQTtFQUNDO0VBQ0E7RUFDQTtFQUNBOztBQUVEO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQSxPQXRLTztFQXVLUDtFQUNTO0VBQ0E7O0FBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsT0FuTE47RUFvTE07O0FBRUo7RUFDSSxPQTFMUjtFQTJMUSxrQkFsTEs7O0FBbUxMO0VBQW1CLE9BNUwzQjs7QUE4TEk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUFpQjtFQUFTOztBQUMxQjtFQUFTO0VBQWlCLE9BNU1wQztFQTRNcUQ7O0FBSTdEO0VBQ0M7RUFDQTtFQUNBO0VBRUE7RUFDQSxPQXpOTztFQTBOUDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsT0F0T007O0FBd09QO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFRDtFQUNDO0VBQ0EsT0E5T007RUErT047O0FBRUQ7RUFDQzs7QUFFUTtFQUNJLGtCQW5QSztFQW9QTCxPQTdQUjtFQThQSjs7QUFDQTtFQUFJLE9BL1BBOztBQWtRQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFLWjtFQUdDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxrQkFwUXFCO0VBcVFyQjs7QUFDQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0M7RUFDQTtFQUNTLGtCQXJSUztFQXNSVDtFQUNBO0VBQ0E7O0FBQ1Q7RUFDQztFQUNBO0VBQ0E7RUFDQSxPQTVTTTtFQTZTTjtFQUNBO0VBQ1k7O0FBRVg7RUFDQyxrQkF2U2U7O0FBMlNsQjtFQUNDLGtCQTFTaUI7RUEyU2pCLE9BdlRJOztBQTBUTjtFQUNDO0VBQ0E7RUFDUzs7QUFFVjtFQUNDOztBQUNBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFRDtFQUNDO0VBRUE7RUFDQTs7QUFJSDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLE9BaFZRO0VBaVZSOztBQUNBO0VBQVU7O0FBQ1Y7RUFDQztFQUNBLE9BNVZLOztBQThWTjtFQUNDO0VBQ0EsT0FoV0s7RUFpV0w7RUFDQTtFQUNBOztBQUNBO0VBQVUsWUEzVlE7O0FBOFZwQjtFQUNDO0VBQ0E7RUFDQTs7QUFDQTtFQUNDO0VBQ0EsT0F6V087RUEwV1A7RUFDQTs7QUFLRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQU1EO0VBQ0M7OztBQUtIO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDRyxrQkExWGtCO0VBMlhsQjs7O0FBR0o7QUFBQTtBQUFBO0FBR0E7RUFDQzs7O0FBSUQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFBYTtFQUFlO0VBQVk7RUFBYTs7QUFDckQ7RUFBYTtFQUFRO0VBQWE7RUFBYztFQUF1QjtFQUFTOztBQUNoRjtFQUFhO0VBQWE7O0FBQzFCO0VBQWE7RUFBYTs7QUFDMUI7RUFBYTtFQUFhOztBQUMxQjtFQUFhO0VBQWE7RUFBWTs7O0FBRzFDO0VBQ0k7SUFBTztJQUFXOztFQUNsQjtJQUFPO0lBQVc7OztBQUV0QjtFQUNJO0VBQ0E7OztBQUtKO0VBQW1COzs7QUFJZjtBQUFBO0VBQ2tDOzs7QUFHbEM7QUFBQTtFQUNrQzs7O0FBTXRDO0VBQ0k7OztBN0UvYUE7QUFBQTtFQUF1QjtFQUFZOztBQUNuQztBQUFBO0VBQTZCOztBQUM3QjtBQUFBO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0FBQUE7QUFBQTtFQUMwQzs7QUFDMUM7QUFBQTtFQUFtQzs7O0E2RSthdkM7RTdFM2FJO0VBQ0E7O0FBQ0E7RUFBdUI7RUFBVTtFQUFXOzs7QTZFNGFoRDtFQUVJO0VBQ0E7RUFDQTtFQUNBOztBQW9CQTtFQUNJO0VBQ0E7RUFDQTtFQUNBLFlBemRjO0VBMGRkO0VBQ0E7O0FBR0k7QUFBQTtFQUVJOztBQUVKO0VBQ0k7O0FBQ0E7RUFBZTs7QUFLM0I7RUFDSTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBSUE7RUFDQTtFQUNBLFlBcmZjO0VBc2ZkO0VBRUE7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLE9BbmhCSjtFQW9oQkk7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsT0E1aEJKOztBQStoQkk7QUFBQTtFQUVJOztBQUlKO0VBQ0k7O0FBQ0E7RUFBZTs7QUFJL0I7RUFDSTtFQUNBO0VBQ0E7O0FBQ0E7RUFBa0I7O0FBRVY7RUFDSTtFQUNBOztBQUNBO0VBQ0k7RUFDQSxrQkF6aUJDO0VBMGlCRDs7QUFFSjtFQUNJOztBQUNBO0VBQ0ksT0F0akJkOztBQXlqQk07RUFDSTs7QUFHUjtFQUNJO0VBQ0E7RUFDQTs7QUFJWjtFQUVJO0VBRUE7RUFLQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUk7RUFDSTtFQUNBO0VBQ0E7RUFDQSxrQkExa0JFO0VBMmtCRjtFQUNBO0VBQ0E7RUFDQSxPQTNsQlQ7O0FBNGxCUztFQUNJOztBQUdSO0VBQ0k7RUFDQTtFQUNBOztBQUdSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQSxPQW5uQlY7RUFvbkJVOztBQUVKO0VBQ0k7RUFDQSxPQTduQlY7RUE4bkJVO0VBQ0E7O0FBR1I7RUFDSTtFQUNBO0VBQ0EsT0Fyb0JOO0VBc29CTTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTs7QUFFSjtFQUNJOztBQUlaO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQSxPQXBxQk47RUFxcUJNOztBQUNBO0VBQ0k7RUFDQTs7QUFJWjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOztBQUVKO0VBQ0k7O0FBRUo7RUFDSTtFQUNBO0VBQ0EsT0Fqc0JOO0VBa3NCTTs7QUFDQTtFQUNJOztBQUtoQjtFQUVJO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFFQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLE9BaHVCUjtFQWl1QlE7RUFDQTs7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR1I7RUFHSTtFQUNBLE9BMXZCTjtFQTJ2Qk07RUFDQTtFQUNBOztBQUNBO0VBQ0ksT0Fqd0JaOztBQXF3QkE7RUFJSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsT0F2d0JGO0VBd3dCRTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxrQkE3d0JLOztBQTh3Qkw7RUFDSSxrQkFyd0JFO0VBc3dCRixPQTV4Qlo7RUE2eEJZO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0Esa0JBbHhCRjtFQW14QkU7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQSxPQXJ5QmpCOztBQXN5QmlCO0VBQ0ksT0EveUJ4Qjs7QUFtekJZO0VBQ0k7RUFDQTtFQUNBOztBQUtoQjtFQVVJO0VBQ0E7RUFDQSxZQTF6QlM7RUEyekJUOztBQVNKO0VBQ0k7RUFDQTtFQUNBOztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0Esa0JBcDFCUztFQXExQlQsT0E5MUJKO0VBKzFCSTtFQUNBO0VBQ0E7RUFJQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0VBQ0k7O0FBR1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSSxPQTMzQlY7RUE0M0JVLGtCQTczQlo7RUE4M0JZO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBTXBCO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7O0FBRUo7RUFDSSxPQWw1QkY7RUFtNUJFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtaO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUtBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJLGNBdDhCSjs7QUF5OEJKO0VBQXVCOztBQUN2QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTs7QUFFSjtFQUNJO0VBQ0E7O0FBQ0E7RUFDSSxrQkE3OEJLO0VBODhCTDs7O0FBTWhCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlBcDlCaUI7RUFxOUJqQjtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLSjtFQUF3Qjs7O0FBQ3hCO0VBQXdCOzs7QUFFeEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0M7SUFDQztJQUNBOztFQU1EO0lBQ0M7SUFDQTs7RUFFRDtJQUNDO0lBQ0E7O0VBS0Q7QUFBQTtJQUVDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFQUVEO0lBQWdCO0lBQTZCOztFQUM3QztJQUFnQjtJQUE2Qjs7RUFLNUM7SUFBc0I7O0VBQ3RCO0lBQWdCOztFQUNoQjtJQUFnQjs7RUFJakI7SUFDQztJQUNBOzs7QUFJRjtFQUNDO0lBQ0M7OztBQUlGO0VBQ0M7SUFDQzs7O0FBSUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Q7RUFDQztJQUFnQjs7RUFHaEI7SUFDQztJQUNBOztFQUdEO0lBQ0M7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7RUFJQTtJQUFnQjs7RUFDaEI7SUFDQztJQUNBO0lBQ0E7OztBQUtIO0FBQ0E7RUFDQztJQUFnQjs7RUFDaEI7SUFBdUI7O0VBQ3ZCO0lBQThCOzs7QUFHL0I7RUFDQztJQUFPO0lBQVk7O0VBQ25CO0lBQU87SUFBWTs7O0FBR3BCO0FBQ0E7RUFDQzs7O0FBTUQ7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0M7RUFDQTs7O0FBVUQ7RUFDQztFQUNBO0VBQ0E7O0FBRUQ7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNDO0lBQU87SUFBWTs7RUFDbkI7SUFBTztJQUFZOzs7QUFHcEI7RUFDQztJQUFPO0lBQVk7O0VBQ25CO0lBQU87SUFBWTs7O0FBR3BCO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDQztFQUNBOztBQUNBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7QUFBQTtBQUFBO0FBR0E7RUFDQztJQUFPO0lBQVk7O0VBQ25CO0lBQU87SUFBWTs7O0FBRXBCO0VBQ0M7SUFBTztJQUFZOztFQUNuQjtJQUFPO0lBQVk7OztBQUVwQjtBQUFBO0FBRUE7RUFDQztJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7O0FBR1I7QUFDQTtFQUNDO0FBQUE7QUFBQTtBQUFBO0FBQUE7SUFLQzs7O0FBSUY7QUFDQTtBQUNBO0FBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBS0E7RUFDQztBQUNBO0FBQUE7QUFBQTtFQUdBO0VBQ0E7O0FBRUE7RUFDQztFQUNBOztBQUlGO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7QUFDQTtBQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUFBOztBQUdBO0VBQ0M7QUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDQztFQUNBOzs7QUFLSDtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFFQTtBQUNDO0FBQUE7O0FBRUE7RUFBYztFQUFtQjs7QUFFakM7RUFBVTtFQUFlO0VBQXdCOztBQUVqRDtFQUNDO0VBQ0E7RUFDQTs7QUFHRDtFQUFzQjs7QUFidkI7QUFlQzs7QUFDQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBLFlBQ0M7RUFFRDs7QUFFQTtFQUFZOztBQUdiO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7O0E3RXAwQ0U7RUFBdUI7RUFBWTs7QUFDbkM7RUFBNkI7O0FBQzdCO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQzBDOztBQUMxQztFQUFtQzs7QTZFK3pDdEM7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDa0I7RUFBd0M7O0FBRzNEO0VBQXVCOztBQUV2QjtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0Q7RUFBc0I7RUFBaUI7O0FBQ3ZDO0VBQXNCO0VBQWlCOztBQUN2QztFQUFrQjtFQUFpQjtFQUFpRDs7QUFFcEY7RUFDQztFQUNBOztBQUNBO0VBQVU7O0FBR1g7RUFDQztFQUNBO0VBQ0E7RUFDQTs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBOztBQXpGRjtBQTRGQzs7QUFDQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0E3RTUzQ0U7RUFBdUI7RUFBWTs7QUFDbkM7RUFBNkI7O0FBQzdCO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQzBDOztBQUMxQztFQUFtQzs7QTZFczNDdEM7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVU7O0FBRVg7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVU7RUFBcUI7O0FBdElqQztBQXlJQztBQUFBOztBQUVBO0VBQWdCOztBQUNoQjtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtBQUNBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBaUI7RUFBZ0I7O0FBQ2pDO0VBQWlCO0VBQWdCOztBQUNqQztFQUFpQjtFQUFnQjs7O0FBR2xDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFBc0I7OztBQUV0QjtFQUNDO0lBQ0M7SUFDQTtJQUNBOztFQUVEO0lBQ0M7SUFDQTs7RUFFRDtJQUNDO0lBQ0E7SUFDQTs7RUFHRDtBQUFBO0FBQUE7SUFFb0Q7OztBQUdyRDtBQUNBO0VBQ0M7SUFBb0M7OztBQUdyQztBQUFBO0FBQUE7QUFHQTtFQUNDO0VBQ0E7RUFDQTs7O0FBRUQ7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNDO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQWdCO0VBQWdCOztBQUdqQztFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUFPOztBQVBSO0FBUUM7O0FBQ0E7RUFBMkI7O0FBRTVCO0VBQXNCO0VBQWtCOztBQUN4QztFQUFrQjs7QUFDbEI7RUFBb0I7RUFBa0I7RUFBZ0I7O0FBQ3REO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUFZO0VBQXFCO0VBQTRCOztBQUU5RDtFQUF3QjtFQUE0QjtFQUFtQjs7QUFDdkU7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFBTztFQUFZOzs7QUFHckI7RUFDQztJQUFXOztFQUNYO0lBQU07OztBQUdQO0FBQUE7QUFBQTtBQUdBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQU87O0FBQ1A7RUFBaUI7O0FBRWxCO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFRDtFQUFnQjs7QUFDaEI7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFRDtFQUNDO0VBQ0E7RUFDQTs7QUFDQTtFQUFPOztBQUNQO0VBQWE7O0FBQ2I7RUFBZ0I7O0FBRWpCO0VBQWtCO0VBQWlCOztBQUNuQztFQUFpQjs7QUFDakI7RUFDQztFQUNBO0VBQ0E7O0FBQ0E7RUFBaUI7RUFBUzs7QUFFM0I7RUFDQztFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUF1Qjs7O0FBSXpCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBTztFQUFnQjtFQUFpQjs7QUFDeEM7RUFBUztFQUFnQjs7O0FBRTdCO0VBQXVCO0VBQWlCO0VBQWdCOzs7QUFDeEQ7RUFBdUI7RUFBaUI7RUFBZ0I7RUFBaUI7OztBQUV6RTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUFPOztBQUVSO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUFPO0VBQWlCOztBQUV6QjtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUQ7RUFBc0I7O0FBQ3RCO0VBQ0M7RUFDQTtFQUNBOztBQUVEO0VBQ0M7RUFDQTtFQUNBOztBQUVEO0VBQXFDOztBQUVyQztFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQU87O0FBQ1A7RUFBVTs7QUFHWDtFQUNDO0VBQ0E7RUFDQTs7QUFFRDtFQUNDO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQXdCOzs7QUFJMUI7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUFPOztBQUVSO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUFpQjs7QUFFbEI7RUFBbUI7O0FBQ25CO0VBQWdCO0VBQTRCOztBQUM1QztFQUNDO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQVU7O0FBRVg7RUFBa0I7RUFBaUI7OztBQUdwQztBQUFBO0FBQUE7QUFJQztFQUVDOztBQUNBO0VBQ0M7RUFDQTs7QUFDQTtFQUFVLE9BbHlETDs7QUFveUROO0VBQXVCOztBQUV4QjtFQUVDOztBQUVEO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLE9BenlEUTtFQTB5RFI7RUFDQTtFQUNBOztBQUVEO0VBRUM7RUFDQTs7QUFDQTtFQUM4QyxPQW56RHRDOzs7QUF1ekRWO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDQztFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0Q7RUFDQzs7QUFHRDtFQUNDO0VBQ0E7OztBQzcxREY7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0VBQ0k7OztBQUlSO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUtKO0VBQ0k7RUFDQTtFQUNBOzs7QUNsSEo7RUFDSTtFQUNBO0VBQ0E7O0FBQ0g7RUFDQztFQUNBOztBQUVFO0VBQ0k7O0FBRVA7RUFDQztFQUNBOztBQUNBO0VBQ0M7RUFDRzs7QUFFSjtFQUNDOztBQUVLO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTs7QUFFSjtFQUNJOztBQU1oQjtFQUNJO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7QUFDQTtFQUNJOztBQUtaO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTs7QUFDQTtFQUNJO0VBQ0E7O0FBRUo7RUFDSTs7QUFFSjtFQUNJO0VBQ0E7O0FBT1o7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQ3ZHWjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxlQWxEaUI7RUFtRGpCLFlBQ0k7OztBQUlSO0VBQ0ksT0ExRGdCO0VBMkRoQjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBSUo7RUFLSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7O0FBTVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBSUE7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGVBakhpQjtFQWtIakIsWUFDSTs7QUFLSjtFQUNJLE9BMUhZO0VBMkhaOzs7QUFNUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxlQXRJaUI7RUF1SWpCOzs7QUFPSjtFQUFrQyxXQXhJUDs7O0FBaUozQjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0FBQUE7RUFFSTtFQUNBOzs7QUFNUjtFQUNJO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQWFKO0VBQ0k7OztBQWFKO0VBQ0k7OztBQU1BO0VBQW9COztBQUNwQjtFQUFvQixPQXROSjtFQXNOOEI7RUFBMEQ7O0FBQ3hHO0VBQW9CLE9Bdk5KO0VBdU44QjtFQUEwRDtFQUFtQjs7O0FBTTNIO0VBQW9COztBQUNwQjtFQUFvQixPQTlOSjtFQThOOEI7OztBQU9sRDtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQU1BO0VBQVk7O0FBVmhCO0VBaUJJO0VBQ0E7RUFDQTs7O0FBU0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUVJO0VBQ0E7OztBQU1SO0FBQUE7RUFDMkI7OztBQUkzQjtFQUNJO0VBQ0EsV0FqU2tCO0VBa1NsQjtFQUNBO0VBQ0E7RUFDQSxlQXpTaUI7RUEwU2pCO0VBT0E7RUFDQTtFQUNBLFlBQ0k7O0FBTUo7RUFDSTtFQUNBOzs7QUFLUjtFQUNJO0lBQWtCOzs7QUFHdEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7QUFBQTtFQUVJO0VBQ0E7OztBQVdSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBUUo7RUFDSTtJQUFPO0lBQVk7O0VBQ25CO0lBQU87SUFBWTs7O0FBSW5CO0FBQUE7RUFFSTtFQUNBO0VBRUE7RUFDQTtFQUNBOzs7QUFJUjtFQUNJO0FBQUE7SUFFSTs7O0FBT1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBZUo7RUFFUTtJQUFjOztFQU1kO0lBQ0k7OztBQ3BhWjtFQUNJOzs7QUFXSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSjtFQUNJOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTtJQUNJO0lBQ0E7O0VBR0o7SUFDSTs7O0FBSVI7RUFJSTtFQUNBO0VBQ0E7OztBQVlKO0FBQUE7RUFFSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUN0R0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBU0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFRSTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTs7O0FBRUo7QUFBQTtFQUVJOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQ3ZDSjtFQUFnQzs7O0FBQW9CO0VBQXNCO0VBQWtCO0VBQVU7RUFBUTtFQUFXO0VBQVk7RUFBZ0I7OztBQUFjO0VBQXlEO0VBQWtCO0VBQVc7RUFBUTtFQUFTO0VBQXFCO0VBQVc7RUFBWTtFQUFtQjtFQUE2QjtFQUF5Qjs7O0FBQWlDO0VBQTZCO0VBQXFEOzs7QUFBbUM7RUFBNEI7RUFBcUQ7OztBQUFtQztFQUFzRTtFQUFtQzs7O0FBQVU7RUFBK0Q7OztBQUFVO0VBQXNEO0VBQW9CO0VBQWU7RUFBOEI7OztBQUEwQjtFQUFhO0VBQXVCO0VBQWM7RUFBa0I7RUFBVztFQUFnQjtFQUFnQjs7O0FBQWM7RUFBZTs7O0FBQXNCO0VBQW1COzs7QUFBYTtFQUF1QjtFQUFtQjtFQUFvQjs7O0FBQVc7RUFBcUI7OztBQUFXO0VBQXVNO0VBQTRCOzs7QUFBNkI7RUFBMEM7OztBQUF5QjtFQUFxTDtFQUF5Qjs7O0FBQTBCO0VBQXlDO0VBQWtCO0VBQXFCO0VBQWdCO0VBQWlCO0VBQVk7RUFBa0I7RUFBZ0I7RUFBa0I7RUFBVztFQUEyQjtFQUFzQjtFQUFrQjs7O0FBQW1CO0VBQTBDOzs7QUFBYztFQUFpQzs7O0FBQWM7RUFBNkU7OztBQUFXO0VBQXFEOzs7QUFBcUI7RUFBcUQ7RUFBcUI7OztBQUFhO0VBQXFCO0VBQWlCOzs7QUFBa0I7RUFBd0I7OztBQUFlO0VBQW1CO0VBQWdCO0VBQWM7RUFBdUI7RUFBa0I7RUFBeUI7RUFBZ0I7OztBQUFlO0VBQWtCO0VBQWtCO0VBQXFCO0VBQTBCO0VBQWtCO0VBQWtCO0VBQVc7RUFBYztFQUFtQjtFQUFrQjtFQUFtQjtFQUFnQjtFQUFlOzs7QUFBdUI7RUFBdUI7RUFBZTtFQUFnQjtFQUFrQjtFQUFRO0VBQU07RUFBUztFQUFnQjtFQUFrQjtFQUFXO0VBQWtCO0VBQWlCO0VBQXdCOzs7QUFBa0I7RUFBNkI7RUFBYztFQUFjOzs7QUFBZTtFQUEwRDs7O0FBQW1CO0VBQXNFOzs7QUFBVztFQUFzQjtFQUFnQjtFQUFnQjtFQUF3QjtFQUFtQjtFQUFrQjs7O0FBQXlCO0VBQTJDO0VBQWlCO0VBQXNCO0VBQWM7RUFBUztFQUFxQjs7O0FBQWU7RUFBcUI7RUFBa0I7RUFBVztFQUFZO0VBQVU7RUFBUTtFQUFnQjtFQUFrQjs7O0FBQThCO0VBQTRCO0VBQWtCO0VBQVE7RUFBUTtFQUFXO0VBQWU7RUFBMEM7RUFBbUI7RUFBdUI7OztBQUFXO0VBQTBCO0VBQWM7RUFBcUI7RUFBbUI7OztBQUFnQjtFQUErQzs7O0FBQWE7RUFBOEI7RUFBa0I7RUFBYztFQUFnQjtFQUFXO0VBQWlCO0VBQWM7RUFBeUI7RUFBZ0I7RUFBOEI7RUFBK0I7RUFBVzs7O0FBQWlDO0VBQXNCO0VBQWdCO0VBQXFCO0VBQVU7RUFBUztFQUFlOzs7QUFBbUI7RUFBa0Q7RUFBWTtFQUE0QjtFQUE2QjtFQUEyQjtFQUE0QjtFQUFtQjs7O0FBQTZCO0VBQXdDOzs7QUFBYTtFQUFzQjs7O0FBQWM7RUFBcUI7RUFBYztFQUFhO0VBQWdCO0VBQWlCO0VBQXFCO0VBQW9CO0VBQXNCO0VBQWtCO0VBQWU7OztBQUFtQjtFQUEyQjtFQUFNO0VBQVE7RUFBa0I7RUFBaUI7RUFBbUI7RUFBa0I7OztBQUFlO0VBQWdDO0VBQW1CO0VBQWE7OztBQUFXO0VBQXNDO0VBQTBCO0VBQW1COzs7QUFBVztFQUErQjtFQUFtQjtFQUFjOzs7QUFBZ0I7RUFBcUM7RUFBNEI7OztBQUFhO0VBQThEO0VBQW1COzs7QUFBVztFQUFvRTtFQUFtQjtFQUE0Qjs7O0FBQVc7RUFBeUY7RUFBbUI7OztBQUFjO0VBQStCO0VBQTZCO0VBQXdCO0VBQVk7OztBQUFvQjtFQUE0QjtFQUFtQjs7O0FBQWM7RUFBMkQ7RUFBbUI7OztBQUFXO0VBQWlFOzs7QUFBbUI7RUFBOEQ7OztBQUFtQjtFQUFvRTtFQUFtQjs7O0FBQVc7RUFBMEU7RUFBbUI7RUFBNEI7OztBQUFXO0VBQW9EOzs7QUFBeUI7RUFBNkM7OztBQUFVO0VBQXFCO0VBQWtCO0VBQWlCO0VBQXFCOzs7QUFBbUI7RUFBdUI7OztBQUFpQjtFQUErQjtFQUFXOzs7QUFBUztFQUE2Qjs7O0FBQXVCO0VBQWdDOzs7QUFBaUI7RUFBcUM7RUFBVzs7O0FBQU87RUFBOEI7RUFBVzs7O0FBQVU7RUFBZ0M7RUFBVzs7O0FBQVM7RUFBb0I7SUFBRzs7RUFBb0I7SUFBRzs7O0FBRzc5TjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7RUFHSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlBO0VBQ0k7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOztBQUNBO0VBRUk7RUFDQTs7QUFDQTtFQUNJOztBQUtaO0VBRUk7RUFDQTs7QUFFSjtFQUNJOztBQUNBO0VBQ0k7O0FBR1I7RUFDSTtFQUNBOztBQUNBO0VBQ0k7O0FBQ0E7RUFDSTs7QUFHUjtFQUNJOzs7QUN4RVY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUtFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFFRTs7QUFHRjtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUVFO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUdFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUlKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQVJGO0lBU0k7SUFDQTs7O0FBR0Y7RUFiRjtJQWNJO0lBQ0E7OztBQUdGO0VBbEJGO0lBbUJJO0lBQ0E7SUFDQTs7O0FBSUo7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7RUFDRTs7QUFHRjtFQUNFOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFOztBQUdGO0VBQ0U7O0FBR0Y7RUFJRTs7O0FDN1JKO0VBQ0k7OztBQ0hKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0FBQUE7RUFFSTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0lBQ0k7O0VBR0o7SUFDSTs7O0FBSVI7RUFDSTtJQUNJOztFQUdKO0lBQ0k7OztBQUlSO0FBQUE7RUFFSTtFQUNBOzs7QUFHSjtBQUFBO0VBRUk7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBS0k7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtBQUFBO0VBRUk7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7RUFJSTs7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJIiwic291cmNlc0NvbnRlbnQiOlsiQHVzZSBcImNvbG9yc1wiO1xuXG5cbkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUludGVyOml0YWwsb3Bzeix3Z2h0QDAsMTQuLjMyLDEwMC4uOTAwOzEsMTQuLjMyLDEwMC4uOTAwJmRpc3BsYXk9c3dhcCcpO1xuXG4kdGV4dC1ib2R5LWNvbG9yOiBjb2xvcnMuJGJhc2UtYmxhY2s7XG4kdGl0bGUtYm9keS1jb2xvcjogY29sb3JzLiRwdXJwbGUtNTAwO1xuXG4kcGFnZS1yZXNvbHV0aW9uOiA4MCU7XG5cbmgxLnBhZ2UtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkdGl0bGUtYm9keS1jb2xvcjtcblxufSIsIkB1c2UgJy4uL21vZHVsZXMvX2NvbG9ycy5zY3NzJztcbkB1c2UgXCJzYXNzOmNvbG9yXCI7XG5AaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1JbnRlcjppdGFsLG9wc3osd2dodEAwLDE0Li4zMiwxMDAuLjkwMDsxLDE0Li4zMiwxMDAuLjkwMCZkaXNwbGF5PXN3YXAnKTtcblxuJHBhZ2UtcmVzb2x1dGlvbjogODAlO1xuXG4vLyBCb3JkZXItYmVhbSBhbmdsZSBmb3IgdGhlIHYyIHRvb2xiYXIncyBwbGF5IGJ1dHRvbiAoLmZlMi1wbGF5OjpiZWZvcmUpLlxuLy8gTVVTVCBiZSBhIHRvcC1sZXZlbCBAcHJvcGVydHkg4oCUIHJlZ2lzdGVyaW5nIGl0IGFzIGFuIDxhbmdsZT4gaXMgd2hhdCBsZXRzIHRoZVxuLy8gYnJvd3NlciBpbnRlcnBvbGF0ZSBpdCBmcmFtZS1ieS1mcmFtZSwgb3RoZXJ3aXNlIHRoZSBjb25pYy1ncmFkaWVudCBzbmFwc1xuLy8gaW5zdGVhZCBvZiByb3RhdGluZy4gU2FtZSBtZWNoYW5pc20gYXMgLS1xbnAtYmVhbS1hbmdsZSBpbiB0aGUgbm9kZS1waWNrZXIuXG5AcHJvcGVydHkgLS1mZTItYmVhbS1hbmdsZSB7XG4gICAgc3ludGF4OiBcIjxhbmdsZT5cIjtcbiAgICBpbmhlcml0czogZmFsc2U7XG4gICAgaW5pdGlhbC12YWx1ZTogMGRlZztcbn1cblxuLy8gTWluaW1hbCBicmVhZGNydW1iIGJhciBhYm92ZSB0aGUgZmxvdyBlZGl0b3IgY2FudmFzXG4uZmUtZm9udC1wcmVsb2FkIHtcbiAgICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5mZS1icmVhZGNydW1iLWJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDZweCAxNnB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgLmZlLWJyZWFkY3J1bWItYmFjayB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGNvbG9yOiAjNDE0OTlhO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXMgZWFzZTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoNjUsIDczLCAxNTQsIDAuMSk7IH1cblxuICAgICAgICAubWRpIHsgZm9udC1zaXplOiAyMHB4OyBsaW5lLWhlaWdodDogMTsgfVxuICAgIH1cblxufVxuXG4uZmxvd2VkaXRvcl9tb2RhbCAudGFibGUtcmVzcG9uc2l2ZSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG59XG5cbi5mbG93ZWRpdG9yX2hvbGRlciB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi8vIHFkbmFwcm8tbm9kZS1waWNrZXIgcmFpbCAob3B0LWluID9ub2RlcGlja2VyPXYyLCBzZWUgSG9sZGVyLnZ1ZSkuIEEgREVESUNBVEVEXG4vLyB3cmFwcGVyIGFyb3VuZCBqdXN0IDxub2RlYmFyPis8bWFpbj4g4oCUIE5PVCBkaXNwbGF5OmZsZXggb24gLmZsb3dlZGl0b3JfaG9sZGVyXG4vLyBpdHNlbGYsIHdoaWNoIHdvdWxkIGFsc28gdHVybiA8bW9kYWxzPiAodGhlIG5vZGUtb3B0aW9ucyBcIndoaXRlIHdpbmRvd1wiKSxcbi8vIDxsb2FkaW5nPiwgPG5ldz4sIDx2ZXJzaW9ucz4sIDxwcmV2aWV3LW1vZGFsPiBpbnRvIGZsZXggaXRlbXMgYW5kIGRyYWcgdGhlbVxuLy8gaW50byB0aGUgcm93IGluc3RlYWQgb2Ygb3ZlcmxheWluZyAoYnVnIGZvdW5kIDE2LjA3LjIwMjYpLiBUaGUgcmFpbCBnZXRzIGFcbi8vIEZJWEVEIDU2cHggc2xvdCAobWF0Y2hlcyB0aGUgY29tcG9uZW50J3MgLS1ucC1yYWlsLXcsIHNocnVuayBmcm9tIDY4cHhcbi8vIDE2LjA3LjIwMjYpIHNvIGl0IHJlc2VydmVzIHJlYWwgc3BhY2UgaW5zdGVhZCBvZiBmbG9hdGluZyBvbiB0b3Agb2YgdGhlXG4vLyBjYW52YXM7IC5mbG93ZWRpdG9yIHRha2VzIHRoZSByZXN0LiBUaGUgcmFpbCdzIGV4cGFuZCBwYW5lbCAoMjA4cHggd2hlbiBhXG4vLyBjYXRlZ29yeSBpcyBvcGVuKSBpcyBOT1QgcGFydCBvZiB0aGlzIHJlc2VydmVkIHdpZHRoIOKAlCBpdCBzaW1wbHkgb3ZlcmZsb3dzXG4vLyB0aGUgNTZweCBzbG90IHdoZW4gb3BlbiAobm9cbi8vIG92ZXJmbG93OmhpZGRlbiBoZXJlIHRvIGNsaXAgaXQpLCBzbyBvcGVuaW5nL2Nsb3NpbmcgYSBjYXRlZ29yeSBuZXZlclxuLy8gY2hhbmdlcyAuZmxvd2VkaXRvcidzIHNpemUgYW5kIG5ldmVyIHRyaWdnZXJzIGEgR29KUyBjYW52YXMgcmVzaXplLlxuLmZsb3dlZGl0b3JfaG9sZGVyX19jYW52YXMtcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cbi5mbG93ZWRpdG9yX2hvbGRlcl9fY2FudmFzLXJvdyA+IC5mbG93ZWRpdG9yLW5vZGVwaWNrZXItdjIge1xuICAgIGZsZXg6IDAgMCA1NnB4O1xuICAgIC8vIFdpdGhvdXQgdGhpcywgdGhlIGl0ZW0ncyBkZWZhdWx0IG1pbi13aWR0aDphdXRvIHJlc29sdmVzIHRvIGl0cyBvd25cbiAgICAvLyBtaW4tY29udGVudCBzaXplIOKAlCByYWlsICg1NnB4KSBQTFVTIGFuIG9wZW4gcGFuZWwgKH4yMDhweCkg4oCUIHdoaWNoXG4gICAgLy8gc2lsZW50bHkgb3ZlcnJpZGVzIGZsZXgtc2hyaW5rOjAgYW5kIGZvcmNlcyB0aGUgYm94IHBhc3QgaXRzIDU2cHhcbiAgICAvLyBiYXNpcywgc2hvdmluZyAuZmxvd2VkaXRvciBvdmVyIGluc3RlYWQgb2YgbGV0dGluZyB0aGUgcGFuZWwgZmxvYXRcbiAgICAvLyBvdmVyIHRoZSBjYW52YXMgKGZvdW5kIHZpYSBLaW0ncyBzY3JlZW5zaG90LCAxNi4wNy4yMDI2KS5cbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvLyBzdGFja2luZyBjb250ZXh0IGZvciB0aGUgb3ZlcmZsb3dpbmcgcGFuZWxcbiAgICB6LWluZGV4OiAxMDtcbn1cbi8vIFJpZ2h0IGNvbHVtbiA9IGJyZWFkY3J1bWIgaG9zdCAoYXV0byBoZWlnaHQpIHN0YWNrZWQgYWJvdmUgdGhlIGNhbnZhc1xuLy8gKGZsZXg6MSkuIFNpdHMgdG8gdGhlIFJJR0hUIG9mIHRoZSBmdWxsLWhlaWdodCByYWlsLCBzbyB0aGUgcmFpbCBydW5zIHRoZVxuLy8gZnVsbCBwYWdlIGhlaWdodCBhbmQgdGhlIGJyZWFkY3J1bWIgc3RhcnRzIG5leHQgdG8gaXQgKEtpbSAxNi4wNy4yMDI2OlxuLy8gXCJoZWxlbWFhbCB0b3QgYm92ZW4gbGF0ZW4gZG9vcmxvcGVuLCBicmVhZGNydW1iIGV2ZW4gb3BzY2h1aXZlblwiKS5cbi5mbG93ZWRpdG9yX2hvbGRlcl9fY2FudmFzLXJvdyA+IC5mZS1yaWdodC1jb2wge1xuICAgIGZsZXg6IDEgMSAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLmZsb3dlZGl0b3JfaG9sZGVyX19jYW52YXMtcm93IC5mZS1icmVhZGNydW1iLWhvc3Qge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xufVxuLmZsb3dlZGl0b3JfaG9sZGVyX19jYW52YXMtcm93IC5mZS1yaWdodC1jb2wgPiAuZmxvd2VkaXRvciB7XG4gICAgZmxleDogMSAxIDAlO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgLy8gT3ZlcnJpZGVzIHRoZSBjbGFzc2ljIHdpZHRoOjEwMCUgYmVsb3csIHdoaWNoIHdvdWxkIGZpZ2h0IGZsZXgtYmFzaXM6XG4gICAgLy8gYXV0byAoaXQgcmVhZHMgdGhlIHdpZHRoIHByb3BlcnR5KSBhbmQgcHJvZHVjZSBhIGh1Z2VseSBuZWdhdGl2ZVxuICAgIC8vIGZyZWUtc3BhY2UgY2FsYyBpbnN0ZWFkIG9mIFwicmVtYWluaW5nIHNwYWNlIGFmdGVyIHRoZSByYWlsXCIuXG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4vLyDilIDilIAgRm9ybSBlZGl0b3IgZW1wdHktc3RhdGUgY2FsbG91dCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIENlbnRyZWQgb3ZlciB0aGUgY2FudmFzLCBsaWZ0ZWQgYWJvdmUgdGhlIChhdXRvLWNlbnRyZWQpIGZsb3cgcm93IHNvIGl0cyB0YWlsXG4vLyBwb2ludHMgZG93biBhdCB0aGUgXCIrXCIgYmV0d2VlbiBzdGFydCBhbmQgZmluaXNoLiBQdXJlbHkgaW5zdHJ1Y3Rpb25hbCwgc28gaXRcbi8vIG5ldmVyIGludGVyY2VwdHMgcG9pbnRlciBldmVudHMgb24gdGhlIGNhbnZhcyBiZW5lYXRoIGl0LlxuLmZlLWZvcm0tZW1wdHktaGludCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0b3A6IDUwJTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCBjYWxjKC0xMDAlIC0gNDZweCkpO1xuICAgIHdpZHRoOiAyNjRweDtcbiAgICBtYXgtd2lkdGg6IDc4JTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYm94LXNoYWRvdzogMCAxOHB4IDQ0cHggcmdiYSgzOCwgNDIsIDkyLCAwLjIwKTtcbiAgICBwYWRkaW5nOiAxNnB4IDE2cHggMThweDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE2MG1zIGVhc2U7XG5cbiAgICAvLyBEb3dud2FyZCB0YWlsIChyb3RhdGVkIHNxdWFyZSkgcG9pbnRpbmcgYXQgdGhlIFwiK1wiLlxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIGJvdHRvbTogLTdweDtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCAzcHggMDtcbiAgICAgICAgYm94LXNoYWRvdzogM3B4IDNweCA3cHggcmdiYSgzOCwgNDIsIDkyLCAwLjEwKTtcbiAgICB9XG59XG4uZmUtZm9ybS1lbXB0eS1oaW50X190aXRsZSB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICMyYTJlNWU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyAvLyBbS2ltIDE2LjA3XSBjZW50cmVlciBkZSB0ZWtzdCBvcCBkZSBlbXB0eS1zdGF0ZSBjYXJkXG59XG4uZmUtZm9ybS1lbXB0eS1oaW50X19zdWIge1xuICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgIGNvbG9yOiAjNmM3MDk5O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMTRweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uZmUtZm9ybS1lbXB0eS1oaW50X19jYXJkIHtcbiAgICBib3JkZXI6IDEuNXB4IHNvbGlkICNlNmU3ZWY7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDM4LCA0MiwgOTIsIDAuMDgpO1xuICAgIHBhZGRpbmc6IDEwcHg7XG59XG4uZmUtZm9ybS1lbXB0eS1oaW50X19jYXJkLWhlYWRlciB7XG4gICAgYmFja2dyb3VuZDogI2VjZWVmYjtcbiAgICBjb2xvcjogIzNhNDI5MDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuLmZlLWZvcm0tZW1wdHktaGludF9fY2FyZC1maWVsZCB7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGJvcmRlcjogMS41cHggc29saWQgI2U2ZTdlZjtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZiZmJmZTtcbiAgICAmICsgJiB7IG1hcmdpbi10b3A6IDhweDsgfVxufVxuXG4uZmxvd2VkaXRvci1kaWFncmFtLWhvbGRlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG59XG5cbi5mbG93ZWRpdG9yX2VtcHR5X3N0YXRlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJhY2tncm91bmQ6IGNvbG9ycy4kd2hpdGU7XG4gICAgei1pbmRleDogMjM7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgY29sb3I6IHJnYmEoIzAwMCwgLjQpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5mbG93ZWRpdG9yX2VtcHR5X3N0YXRlX3RleHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgcGFkZGluZzogMTAwcHg7XG59XG5cbi5mbG93ZWRpdG9yX2VtcHR5X3N0YXRlX3RleHQ6aG92ZXIge1xuICAgIGNvbG9yOiAjMTU4YjZjO1xufVxuXG4uZmxvd2VkaXRvcl9lbXB0eV9zdGF0ZV9pY29uIHtcbiAgICBmb250LXNpemU6IDQwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5mbG93ZWRpdG9yLW92ZXJmbG93LWF1dG8ge1xuICAgIG1heC1oZWlnaHQ6IDUwMHB4O1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG59XG5cbi5mbG93ZWRpdG9yX21vZGFsLWhvbGRlciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAxMDAxO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAvLyBBIGxlZ2FjeSBtb2RhbCB0aGF0IG9wZW5zIE9OIFRPUCBvZiBhbm90aGVyIG1vZGFsIGluc3RlYWQgb2YgcmVwbGFjaW5nIGl0LlxuICAgIC8vIHFkbmFwcm8td2l6YXJkLW1vZGFsIHNpdHMgYXQgei1pbmRleCA5MDAwLCBzbyB0aGUgMTAwMSBhYm92ZSB3b3VsZCBoaWRlIHN1Y2ggYVxuICAgIC8vIGRpYWxvZyBiZWhpbmQgaXQgd2hpbGUgaXQgaXMgc3RpbGwgY2xpY2thYmxlIOKAlCB0aGUgd29yc3Qgb2YgYm90aC4gT25seSB0aGVcbiAgICAvLyBtb2RpZmllciBpcyByYWlzZWQsIHNvIHRoZSBvdGhlciBsZWdhY3kgbW9kYWxzIGtlZXAgdGhlaXIgb2xkIHN0YWNraW5nLlxuICAgIC8vXG4gICAgLy8g4pqg77iPIE5VIE9OR0VCUlVJS1QgKDA0LjA4LjIwMjYpLiBEZSBlbmlnZSBnZWJydWlrZXIgd2FzIGRlIHJlZ2VsLWVkaXRvciwgZW4gZGllXG4gICAgLy8gc3RhYXQgc2luZHNkaWVuIGluIGVlbiBlY2h0ZSBgcWRuYXByby1tb2RhbGAgKHppZSBgLmZlLXJ1bGUtbW9kYWxgLCBkYXQgZGVcbiAgICAvLyA5MTAwIGhlZWZ0IG92ZXJnZW5vbWVuKS4gQmV3dXN0IGxhdGVuIHN0YWFuOiBkaXQgaXMgaGV0IHdlcmtlbmRlIHJlY2VwdCB2b29yXG4gICAgLy8gZGUgdm9sZ2VuZGUgbGVnYWN5LW1vZGFsIGRpZSBvdmVyIGVlbiBhbmRlcmUgaGVlbiBtb2V0LCBlbiBkYXQgcmVjZXB0IGlzIG1ldFxuICAgIC8vIGBlbGVtZW50RnJvbVBvaW50YCBnZW1ldGVuIGluIHBsYWF0cyB2YW4gYmVyZWRlbmVlcmQuIFtLaW0gMDQuMDguMjAyNl1cbiAgICAmLi1zdGFja2VkIHtcbiAgICAgICAgei1pbmRleDogOTEwMDtcbiAgICB9XG5cbiAgICAvLyBEZSBiZXZlc3RpZ2luZ3N2cmFhZyB2YW4gYCRwcm9tcHRgIChwbHVnaW5zL3Byb21wdC9Cb3gudnVlKS4gTW9ldCBib3ZlbiBBTExFU1xuICAgIC8vIHVpdDogYm92ZW4gaGV0IG5vZGUtbW9kYWwgKDkwMDApLCBkZSByZWdlbC1lZGl0b3IgKDkxMDApIGVuIGRlIGRyb3Bkb3dubGFhZ1xuICAgIC8vICg5MjAwKS4gWm9uZGVyIGRpdCBzdG9uZCBkZSB2cmFhZyBvcCAxMDAxLCBkdXMgb256aWNodGJhYXIgb25kZXIgaGV0IHZlbnN0ZXJcbiAgICAvLyB3YWFyIGhpaiBvdmVyIGdpbmcg4oCUIGdlbWV0ZW4sIG5pZXQgYmVyZWRlbmVlcmQuIFtLaW0gMDUuMDguMjAyNl1cbiAgICAmLi1wcm9tcHQtaG9sZGVyIHtcbiAgICAgICAgei1pbmRleDogOTMwMDtcbiAgICB9XG59XG5cbi5mbG93ZWRpdG9yX21vZGFsLWJhY2tncm91bmQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZDogcmdiYSgjMDAwLCAuNSk7XG4gICAgei1pbmRleDogMTAwMztcbiAgICBhbmltYXRpb246IG1vZGFsLWZhZGUtaW4gMjAwbXMgZWFzZS1vdXQgYm90aDtcbn1cblxuLmZsb3dlZGl0b3JfbW9kYWwsXG4uZmxvd2VkaXRvcl9tZW51IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNDksIDI0OSwgMjQ5LCAwLjc1KTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTZweCk7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTZweCk7XG4gICAgYW5pbWF0aW9uOiBtb2RhbC1zY2FsZS1pbiAyMDBtcyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKSBib3RoO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDMxLCAxNCwgMTQsIDAuMTUpO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICB6LWluZGV4OiAxMDA0O1xuICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDJyZW07XG5cbiAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAvLyBNb2Rlcm4gdGhpbiBzY3JvbGxiYXJcbiAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47XG4gICAgc2Nyb2xsYmFyLWNvbG9yOiByZ2JhKDY1LCA3MywgMTU0LCAwLjMpIHRyYW5zcGFyZW50O1xuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICB3aWR0aDogNHB4O1xuICAgIH1cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNjUsIDczLCAxNTQsIDAuMyk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoNjUsIDczLCAxNTQsIDAuNSk7IH1cbiAgICB9XG59XG5cbi5mbG93ZWRpdG9yX21lbnV7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgIFxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTAwMHB4KSB7XG5cbiAgICAuZmxvd2VkaXRvcl9tZW51LFxuICAgIC5mbG93ZWRpdG9yX21vZGFsIHtcbiAgICAgICAgbGVmdDogNTAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHRvcDogNTAlICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4uZmxvd2VkaXRvcl9tb2RhbC10aXRsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLmljb24td3JhcHBlciB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcblxuICAgICAgICAudHMtcm91bmRlZC1ib3JkZXItc21hbGwge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICAgICAgICAgIGhlaWdodDogMzVweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogMzVweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IC4yMjVyZW07XG5cbiAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uZmxvd2VkaXRvcl9tZW51Li1hZGQtbm9kZSB7XG4gICAgd2lkdGg6IDM3MHB4O1xufVxuXG4uZmxvd2VkaXRvcl9tb2RhbCB7fVxuXG4uZmxvd2VkaXRvcl9tb2RhbC4tdHJhbnNsYXRlLWxhYmVsIHtcbiAgICBtaW4td2lkdGg6IDUwMHB4O1xufVxuXG4uZmxvd2VkaXRvcl9tb2RhbC4tdGVtcGxhdGUtbWFuYWdlciB7XG4gICAgd2lkdGg6IDgwJTtcbiAgICBtaW4td2lkdGg6IDEwNzVweDtcbn1cblxuLmZsb3dlZGl0b3JfbW9kYWwuLWFjdGl2aXRpZXMtbWFuYWdlciB7XG4gICAgbWluLXdpZHRoOiA1MDBweDtcbn1cblxuLmZsb3dlZGl0b3JfbW9kYWwuLWNvbmRpdGlvbnMtbWFuYWdlciB7XG4gICAgbWluLXdpZHRoOiA5NTBweDtcbn1cblxuLmZsb3dlZGl0b3JfbW9kYWwuLW5vZGUtb3B0aW9ucyB7XG4gICAgbWluLXdpZHRoOiA5NTBweDtcbn1cblxuLmZsb3dlZGl0b3JfbW9kYWwuLXByb21wdCB7XG4gICAgcGFkZGluZzogMjBweDtcbn1cblxuLmZsb3dlZGl0b3JfbW9kYWwuLXN1YmZsb3ctbG9naWMtYW5kLXJ1bGVzLFxuLmZsb3dlZGl0b3JfbW9kYWwuLWFjdGlvbi1ub2RlLW9wdGlvbnMge1xuICAgIHdpZHRoOiA5MCU7XG4gICAgbWF4LXdpZHRoOiA5NjBweDtcblxuICAgIC5mbG93ZWRpdG9yX21vZGFsLWJvZHkge1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBtYXgtaGVpZ2h0OiA4MHZoO1xuICAgIH1cbn1cblxuLy8gKEhpZXIgc3RvbmQgYC5mbG93ZWRpdG9yX21vZGFsLi1mbG93LWxvZ2ljYCwgZGUgYnJlZGVyZSBsZWdhY3ktc2NoaWwgdmFuIGRlXG4vLyByZWdlbHNldHMtbW9kYWwgdmFuIGRlIGxvZ2ljYS1ub2RlLiBEaWUgbW9kYWwgaXMgb3AgMDUuMDguMjAyNiB2ZXJkd2VuZW46IGRlXG4vLyBsb2dpY2Etbm9kZSBoZWVmdCBudSBlZW4gcmVnZWxsaWpzdCBtZXQgZWVuIGBxZG5hcHJvLW1vZGFsYCBwZXIgcmVnZWwsIHByZWNpZXNcbi8vIHpvYWxzIGRlIG92ZXJkcmFjaHQtbm9kZS4gWmlqbiBsYWF0c3RlIGNvbnN1bWVudCB3YXMgYEZsb3dMb2dpY09wdGlvbnMudnVlYCwgZHVzIGRlXG4vLyBoZWxlIG1vZGlmaWVyIGlzIG1lZWdlZ2FhbiBpbiBwbGFhdHMgdmFuIGFscyBkb2RlIENTUyB0ZSBibGlqdmVuIHN0YWFuLilcblxuLmZsb3dlZGl0b3JfbW9kYWwtaGVhZGVyIHtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzMxMzg3YTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgLyptYXJnaW46IDE1cHggMDsqL1xuICAgIC8vIG1hcmdpbjogMCAwIDE1cHggMDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIC8vIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIC5mZS1jYXJkIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cblxuICAgIC50cy1yb3VuZGVkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgIH1cblxuICAgIC5zdWJ0aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgfVxufVxuXG4uZmxvd2VkaXRvcl9tb2RhbC1jbG9zZSB7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgb3BhY2l0eTogLjU7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuLmZsb3dlZGl0b3JfbW9kYWwtY2xvc2U6aG92ZXIge1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIG9wYWNpdHk6IC43NTtcbn1cblxuLmZsb3dlZGl0b3JfbW9kYWwtY2xvc2U6YmVmb3JlIHtcbiAgICBmb250LWZhbWlseTogXCJNYXRlcmlhbCBEZXNpZ24gSWNvbnNcIjtcbiAgICBjb250ZW50OiAnXFxGMDE1Nic7XG59XG5cbi5mbG93ZWRpdG9yX21vZGFsLWJvZHkge1xuICAgIHBhZGRpbmc6IDFyZW1cbn1cblxuLy8gSGVhZGVyIGNvbG9yIHBpY2tlciAobW92ZWQgZnJvbSBHZWF2YW5jZWVyZGUgaW5zdGVsbGluZ2VuKVxuLmZlLWhlYWRlci1jb2xvci1waWNrZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG59XG5cbi5mZS1oZWFkZXItY29sb3ItbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xufVxuXG4uZmUtaGVhZGVyLWNvbG9yLWlucHV0IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmUtaGVhZGVyLWNvbG9yLWRvdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2UsIGJvcmRlci1jb2xvciAwLjE1cyBlYXNlO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcbiAgICB9XG59XG5cbi5mZS1oZWFkZXItY29sb3ItaW5wdXQ6Y2hlY2tlZCArIC5mZS1oZWFkZXItY29sb3ItZG90IHtcbiAgICBib3JkZXItY29sb3I6ICNmZmY7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjE1KTtcbn1cblxuLmZsb3dlZGl0b3JfbW9kYWwtZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgcGFkZGluZy10b3A6IDFyZW07XG5cblxuICAgIC5idG46bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBtYXJnaW4tbGVmdDogLjVyZW07XG4gICAgfVxufVxuXG4uZmxvd2VkaXRvcl9tb2RhbC1sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5mbG93ZWRpdG9yX21vZGFsLWxhYmVsLi1lcnJvcjphZnRlciB7XG4gICAgZm9udC1mYW1pbHk6IFwiTWF0ZXJpYWwgRGVzaWduIEljb25zXCI7XG4gICAgY29udGVudDogJ1xcRjA3ODcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjb2xvcjogI2UzMzI0NDtcbiAgICByaWdodDogN3B4O1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB0b3A6IDNweDtcbn1cblxuLmZsb3dlZGl0b3JfbW9kYWwtZXJyb3Ige1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5mbG93ZWRpdG9yX21vZGFsLWxhYmVsLi1lcnJvciAuZmxvd2VkaXRvcl9tb2RhbC1lcnJvciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29sb3I6ICNkZjkyOTI7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIG1hcmdpbjogNXB4IDAgMCAyMCU7XG59XG5cbi5mbG93ZWRpdG9yX21vZGFsLWxhYmVsLi1lcnJvciAuZmxvd2VkaXRvcl9tb2RhbC1pbnB1dCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RmOTI5Mjtcbn1cblxuLmZsb3dlZGl0b3JfbW9kYWwtbGFiZWxfdGV4dCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDIwJTtcbiAgICBtYXJnaW46IDZweCAwIDA7XG59XG5cbi5mbG93ZWRpdG9yX21vZGFsLWlucHV0IHtcbiAgICB3aWR0aDogODAlO1xufVxuXG5pbnB1dC5mbG93ZWRpdG9yX21vZGFsLXNlcGFyYXRvci1jaGVja2JveCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG5cbi5mbG93ZWRpdG9yX21vZGFsLXNlcGFyYXRvciB7XG4gICAgbWFyZ2luOiAxMHB4IDAgMTBweCAwO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZmxvd2VkaXRvcl9jb25kaXRpb25zLW1hbmFnZXJfbGlzdC1ob2xkZXIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA0NSU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZmxvd2VkaXRvcl9jb25kaXRpb25zLW1hbmFnZXJfbGlzdCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U0ZTRlNDtcbiAgICBoZWlnaHQ6IDQwMHB4O1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG59XG5cbi5mbG93ZWRpdG9yX2NvbmRpdGlvbnMtbWFuYWdlcl9saXN0LWxvYWRpbmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDc1cHg7XG4gICAgbGVmdDogMXB4O1xuICAgIHJpZ2h0OiAxcHg7XG4gICAgYm90dG9tOiAxcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShjb2xvcnMuJHdoaXRlLCAuOCk7XG59XG5cbi5mbG93ZWRpdG9yX2NvbmRpdGlvbnMtbWFuYWdlcl9saXN0LXNwaW5uZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgY29sb3I6ICMwZWE1N2Y7XG4gICAgZm9udC1zaXplOiAyNHB4O1xufVxuXG4uZmxvd2VkaXRvcl9jb25kaXRpb25zLW1hbmFnZXJfbGlzdC1pdGVtIHtcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcbn1cblxuLmZsb3dlZGl0b3JfY29uZGl0aW9ucy1tYW5hZ2VyX2xpc3QtaXRlbS4tc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICMxYWFlODg7XG4gICAgY29sb3I6IGNvbG9ycy4kd2hpdGU7XG59XG5cbi5mbG93ZWRpdG9yX2NvbmRpdGlvbnMtbWFuYWdlcl9saXN0LWVtcHR5IHtcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgY29sb3I6ICNhMzlmOWY7XG59XG5cbi5mbG93ZWRpdG9yX2NvbmRpdGlvbnMtbWFuYWdlcl9saXN0LXNlYXJjaCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAxMHB4IDA7XG59XG5cbi5mbG93ZWRpdG9yX2NvbmRpdGlvbnMtbWFuYWdlcl9idXR0b25zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTAlO1xuICAgIG1hcmdpbi10b3A6IDIwMHB4O1xufVxuXG4uZmxvd2VkaXRvcl9jb25kaXRpb25zLW1hbmFnZXJfYnV0dG9uIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDAgMCAxNXB4IDIycHg7XG59XG5cbi5mbG93ZWRpdG9yX21vZGFsLXNlcGFyYXRvci4tY2xpY2thYmxlOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICMxNThiNmM7XG59XG5cbi5mbG93ZWRpdG9yX21lbnUtb3B0aW9uLWhvbGRlciB7XG4gICAgbWF4LWhlaWdodDogNDAwcHg7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbn1cblxuLmZsb3dlZGl0b3JfbWVudS1vcHRpb24ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiAuMjVyZW07XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAmI21lbnUtbm9kZS10eXBlLTEwIC5mbG93ZWRpdG9yX21lbnUtaWNvbiB7XG4gICAgICAgIGNvbG9yOiAjZjU2MDVhXG4gICAgfVxuXG4gICAgLy8gaXNzdWVzXG4gICAgJiNtZW51LW5vZGUtdHlwZS0xNCAuZmxvd2VkaXRvcl9tZW51LWljb24ge1xuICAgICAgICBjb2xvcjogIzRjYjhhYlxuICAgIH1cblxuICAgIC8vIG9rXG4gICAgJiNtZW51LW5vZGUtdHlwZS0xNSAuZmxvd2VkaXRvcl9tZW51LWljb24ge1xuICAgICAgICBjb2xvcjogI2Y2YTg1NVxuICAgIH1cblxuICAgIC8vIGZ1dHVyZSBmaXhcbiAgICAmI21lbnUtbm9kZS10eXBlLTE2IC5mbG93ZWRpdG9yX21lbnUtaWNvbiB7XG4gICAgICAgIGNvbG9yOiAjZjE0MTY3XG4gICAgfVxuXG4gICAgLy8gbm90IG9rXG59XG5cbi5mbG93ZWRpdG9yX21lbnUtb3B0aW9uOmhvdmVyLFxuLmZsb3dlZGl0b3JfbWVudS1vcHRpb24uYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWVlZWVlO1xufVxuXG4uZmxvd2VkaXRvcl9tZW51LWljb24ge1xuICAgIGZvbnQtZmFtaWx5OiBcIk1hdGVyaWFsIERlc2lnbiBJY29uc1wiO1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5cbi5mbG93ZWRpdG9yX21lbnUtbGFiZWwge1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5mbG93ZWRpdG9yX21lbnVfaW5wdXQtaG9sZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLmZsb3dlZGl0b3JfbWVudV9pbnB1dC1ob2xkZXIuLWVycm9yOmFmdGVyIHtcbiAgICBmb250LWZhbWlseTogXCJNYXRlcmlhbCBEZXNpZ24gSWNvbnNcIjtcbiAgICBjb250ZW50OiAnXFxGMDc4Nyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGNvbG9yOiAjZTMzMjQ0O1xuICAgIHJpZ2h0OiA3cHg7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIHRvcDogM3B4O1xufVxuXG4uZmxvd2VkaXRvcl9tZW51X2lucHV0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmZsb3dlZGl0b3JfbWVudV9pbnB1dC1ob2xkZXIuLWVycm9yIC5mbG93ZWRpdG9yX21lbnVfaW5wdXQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZjkyOTI7XG59XG5cbi5mbG93ZWRpdG9yX21lbnVfaW5wdXQtZXJyb3ItbWVzc2FnZSB7XG4gICAgY29sb3I6ICNkZjkyOTI7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5mbG93ZWRpdG9yX21lbnVfaW5wdXQtaG9sZGVyLi1lcnJvciAuZmxvd2VkaXRvcl9tZW51X2lucHV0LWVycm9yLW1lc3NhZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5cblxuLmZsb3dlZGl0b3JfbWVudS1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1YzgyZWQ7XG4gICAgY29sb3I6IGNvbG9ycy4kd2hpdGU7XG4gICAgYm9yZGVyLXJhZGl1czogLjI1cmVtO1xuICAgIHBhZGRpbmc6IDhweCAxNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAubm9kZWJhciAmIHtcbiAgICAgICAgd2lkdGg6IDIyMnB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAuNXJlbTtcbiAgICB9XG5cbiAgICAmLmhlYWRlci1jb2xsYXBzZSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlxcZjBkN1wiO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgRnJlZVwiO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcblxuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuXG4gICAgICAgIH1cblxuICAgICAgICAmLmNvbGxhcHNlZCB7XG5cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxmMGQ4XCI7XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4uZmxvd2VkaXRvcl9tZW51LXN1YmhlYWRlciB7XG4gICAgcGFkZGluZzogOHB4IDE1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBjb2xvcnMuJGJvcmRlci1jb2xvcjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgY29sb3JzLiRib3JkZXItY29sb3I7XG59XG5cbi5mbG93ZWRpdG9yX21lbnUtaG9sZGVyIHtcbiAgICAvLyBkaXNwbGF5OiBmbGV4O1xuICAgIC8vIGZsZXgtd3JhcDogd3JhcDtcbiAgICBwYWRkaW5nOiA4cHggMDtcblxufVxuXG4uZmxvd2VkaXRvcl9tZW51LXRlbXBsYXRlcy1vcHRpb25zIHtcbiAgICBtYXJnaW46IDEwcHggMDtcbiAgICB3aWR0aDogNTUwcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcbn1cblxuLmZsb3dlZGl0b3JfbWVudS10ZW1wbGF0ZXMtb3B0aW9uczphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5mbG93ZWRpdG9yX21lbnUtbGFiZWwtdGVtcGxhdGVzIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgcGFkZGluZy10b3A6IDdweDtcbn1cblxuLmZsb3dlZGl0b3JfbWVudS1sYWJlbC1pbnB1dCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgcGFkZGluZzogM3B4IDZweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xufVxuXG4uZmxvd2VkaXRvcl9tZW51LXJhZGlvIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDdweCA1cHggMCAxMHB4O1xufVxuXG4uZmxvd2VkaXRvcl9tZW51LXJhZGlvLWlucHV0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDJweCA1cHggMCAxMHB4O1xufVxuXG4uZmxvd2VkaXRvcl9tZW51LWxvYWRpbmcsXG4uZmxvd2VkaXRvcl9tZW51LWVtcHR5IHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgcGFkZGluZzogMTBweCAwO1xufVxuXG4uZmxvd2VkaXRvcl9tZW51LWxvYWRlciB7XG4gICAgY29sb3I6ICMwZWE1N2Y7XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXItbGFiZWwtaG9sZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyLWxhYmVsLWhvbGRlci4tZXJyb3I6YWZ0ZXIge1xuICAgIGZvbnQtZmFtaWx5OiBcIk1hdGVyaWFsIERlc2lnbiBJY29uc1wiO1xuICAgIGNvbnRlbnQ6ICdcXEYwNzg3JztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY29sb3I6ICNlMzMyNDQ7XG4gICAgcmlnaHQ6IDdweDtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgdG9wOiAzcHg7XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXItbGFiZWwtaW5wdXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDIyMHB4O1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyLWxhYmVsLWhvbGRlci4tZXJyb3IgLmZsb3dlZGl0b3ItdG9vbGJhci1sYWJlbC1pbnB1dCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RmOTI5Mjtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhci1sYWJlbC1idXR0b24ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyNSU7XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXItbGFiZWwtZXJyb3ItbWVzc2FnZSB7XG4gICAgY29sb3I6ICNkZjkyOTI7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBib3RoO1xuICAgIG1hcmdpbjogMCAwIDEwcHggMDtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhci10cmFuc2xhdGUtbGluayB7XG4gICAgY29sb3I6ICMzZjQ2OWM7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG1hcmdpbjogMCAwIDEwcHggMDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBjbGVhcjogYm90aDtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyLXRyYW5zbGF0ZS1saW5rOmhvdmVyIHtcbiAgICBjb2xvcjogIzJkMzM2Zjtcbn1cblxuXG5cbi5mbG93ZWRpdG9yLXRvb2xiYXItdHJhbnNsYXRlLWxpbmsuLWVycm9yIHtcbiAgICBjb2xvcjogI2RmOTI5Mjtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhci10cmFuc2xhdGUtbGluay4tZXJyb3I6aG92ZXIge1xuICAgIGNvbG9yOiAjZTMzMjQ0O1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyLXRyYW5zbGF0ZS1saW5rLi1lcnJvcjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICdcXEYwMkZDJztcbiAgICBjb2xvcjogI2UzMzI0NDtcbn1cblxuLmZsb3dlZGl0b3JfYWN0aXZpdGllcy1tYW5hZ2VyX3NlYXJjaC1ob2xkZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG5cbi5mbG93ZWRpdG9yX2FjdGl2aXRpZXMtbWFuYWdlcl9zZWFyY2gtbG9hZGluZyB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4uZmxvd2VkaXRvcl9hY3Rpdml0aWVzLW1hbmFnZXJfc2VhcmNoLXNwaW5uZXIge1xuICAgIGNvbG9yOiAjMGVhNTdmO1xufVxuXG4uZmUtc2VjdGlvbiB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMzMTM4N2E7XG4gICAgcGFkZGluZzogMi41ZW0gMCAyZW07XG5cbiAgICAmLm5vLWJvcmRlciB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIH1cbn1cblxuLmZlLXNlY3Rpb24taGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWE1YTVhO1xuICAgIGNvbG9yOiBjb2xvcnMuJHdoaXRlO1xuICAgIHBhZGRpbmc6IC41cmVtIDFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogLjVyZW07XG59XG5cbi5mZS1pdGVtIHt9XG5cbi5mZS1pdGVtLXRleHQ6YWZ0ZXIsXG4uZmUtaXRlbS10ZXh0OmJlZm9yZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiTWF0ZXJpYWwgRGVzaWduIEljb25zXCI7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIG1hcmdpbjogLTJweCA1cHggMCAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLmZlLWl0ZW0tdGV4dC4tc21pbGUtdGV2cmVkZW46YmVmb3JlIHtcbiAgICBjb2xvcjogIzlhYjQ5ODtcbiAgICBjb250ZW50OiAnXFxGMDFGNSc7XG59XG5cbi5mZS1pdGVtLXRleHQuLXNtaWxlLW9udGV2cmVkZW46YmVmb3JlIHtcbiAgICBjb2xvcjogI2RmOTI5MjtcbiAgICBjb250ZW50OiAnXFxGMDFGOCc7XG59XG5cbi5mZS1pdGVtLXRleHQuLXNtaWxlLXplZXItdGV2cmVkZW46YmVmb3JlIHtcbiAgICBjb2xvcjogIzlhYjQ5ODtcbiAgICBjb250ZW50OiAnXFxGMDFGMic7XG59XG5cbi5mZS1pdGVtLXRleHQuLXNtaWxlLXplZXItb250ZXZyZWRlbjpiZWZvcmUge1xuICAgIGNvbG9yOiAjZGY5MjkyO1xuICAgIGNvbnRlbnQ6ICdcXEYwQzZBJztcbn1cblxuLmZlLWl0ZW0tdGV4dC4tc21pbGUtbmV1dHJhYWw6YmVmb3JlIHtcbiAgICBjb2xvcjogI2RmOTI5MjtcbiAgICBjb250ZW50OiAnXFxGMDFGNic7XG59XG5cbi5mZS1pdGVtLXRleHQuLXllcy1ub2RlOmJlZm9yZSB7XG4gICAgY29sb3I6ICM5YWI0OTg7XG4gICAgY29udGVudDogJ1xcRjA1MTMnO1xufVxuXG4uZmUtaXRlbS10ZXh0Li1uby1ub2RlOmJlZm9yZSB7XG4gICAgY29sb3I6ICNkZjkyOTI7XG4gICAgY29udGVudDogJ1xcRjA1MTEnO1xufVxuXG4uZmUtaXRlbS10ZXh0Li1lbXB0eSB7XG4gICAgY29sb3I6ICNkZjkyOTI7XG59XG5cbi5mZS1pdGVtLXRleHQuLWVtcHR5OmFmdGVyIHtcbiAgICBjb250ZW50OiAnXFxGMDJGQyc7XG4gICAgY29sb3I6ICNlMzMyNDQ7XG59XG5cbi5mZS1pdGVtLWFjdGlvbnMtaWNvbiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBjb2xvcjogIzNjNDE0NDtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xufVxuXG4uZmUtaXRlbS1hY3Rpb25zLWljb246aG92ZXIge1xuICAgIGNvbG9yOiAjMTgxYTFjO1xufVxuXG4uZmUtaXRlbS1hY3Rpb25zLWljb24tc2VkIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGNvbG9yOiAjM2M0MTQ0O1xuICAgIG1hcmdpbjogNXB4IDBweCA1cHggNXB4O1xufVxuXG4uZmUtaXRlbS1hY3Rpb25zLWljb24tc2VkOmhvdmVyIHtcbiAgICBjb2xvcjogIzE4MWExYztcbn1cblxuLmZlLWl0ZW0tYWN0aW9ucy1pY29uOmJlZm9yZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiTWF0ZXJpYWwgRGVzaWduIEljb25zXCI7XG59XG5cbi5mZS1pdGVtLWFjdGlvbnMtaWNvbi4tYWRkLWRhdGFwb2ludDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICdcXEYwNDE5Jztcbn1cblxuLmZlLWl0ZW0tYWN0aW9ucy1pY29uLi1yZW1vdmUtZGF0YXBvaW50OmJlZm9yZSB7XG4gICAgY29udGVudDogJ1xcRjAzNzcnO1xufVxuXG5cblxuLmZlLWl0ZW0tYWN0aW9ucy1pY29uLi11bmxpbmstbGluayB7XG4gICAgY29sb3I6ICNmODcwNzA7XG59XG5cbi5mZS1pdGVtLWFjdGlvbnMtaWNvbi4tdW5saW5rLWxpbms6aG92ZXIge1xuICAgIGNvbG9yOiAjZTMzMjQ0O1xufVxuXG4uZmUtaXRlbS1hY3Rpb25zLWljb24uLXVubGluay1ub2RlOmJlZm9yZSB7XG4gICAgY29udGVudDogJ1xcRjAzM0EnO1xufVxuXG4uZmUtaXRlbS1hY3Rpb25zLWljb24uLWxpbmstbGluayB7XG4gICAgY29sb3I6ICMzZjQ2OWM7XG59XG5cbi5mZS1pdGVtLWFjdGlvbnMtaWNvbi4tbGluay1saW5rOmhvdmVyIHtcbiAgICBjb2xvcjogIzJkMzM3MTtcbn1cblxuLmZlLWl0ZW0tYWN0aW9ucy1pY29uLi1saW5rLW5vZGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnXFxGMDMzOSc7XG59XG5cblxuLmZlLWl0ZW0tYWN0aW9ucy1pY29uLi1yZW1vdmUtbGluayB7XG4gICAgY29sb3I6ICMzZjQ2OWM7XG59XG5cbi5mZS1pdGVtLWFjdGlvbnMtaWNvbi4tcmVtb3ZlLWxpbms6aG92ZXIge1xuICAgIGNvbG9yOiAjMmQzMzcxO1xufVxuXG4uZmUtaXRlbS1hY3Rpb25zLWljb24uLXJlbW92ZS1saW5rOmJlZm9yZSB7XG4gICAgY29udGVudDogJ1xcRjBBN0EnO1xufVxuXG4uZmUtY3JlYXRlLWRhdGFwb2ludC1ob2xkZXIge1xuICAgIHBhZGRpbmc6IDEwcHggMDtcbn1cblxuXG5cblxuLmZlLWRhdGFwb2ludHMtbGlzdCB7XG4gICAgLy8gcG9zaXRpb246IGZpeGVkIOKAlCBKUyBzZXRzIGxlZnQvdG9wL2JvdHRvbS93aWR0aCB2aWEgcG9zaXRpb25Ecm9wZG93bigpXG4gICAgLy8gc28gdGhlIGRyb3Bkb3duIGVzY2FwZXMgdGhlIG92ZXJmbG93OmhpZGRlbiBtb2RhbC9saXN0IGFuY2VzdG9yc1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiA0cHggMCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgyMCwgMjUsIDgwLCAwLjE4KSwgMCAwIDAgMXB4IHJnYmEoNjQsIDczLCAxNTQsIDAuMTIpO1xuICAgIG1heC1oZWlnaHQ6IDIyMHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgei1pbmRleDogOTIwMDsgLy8gYWJvdmUgbW9kYWwgKDkxMDApXG59XG5cbi5mZS1hZGQtZGF0YXBvaW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogN3B4IDEycHg7XG4gICAgbWFyZ2luOiAwIDRweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmMGYxZjg7XG5cbiAgICAmOmxhc3QtY2hpbGQgeyBib3JkZXItYm90dG9tOiBub25lOyB9XG5cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogI2YwZjFmODsgfVxufVxuXG4vLyBBdXRvY29tcGxldGUgc3VnZ2VzdGlvbiB0ZXh0IGVsZW1lbnRzXG4uZmUtZHAtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzJhMmU1ZTtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmZlLWRwLXR5cGUge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogIzg4OTBiODtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uZmUtdGFiIHtcbiAgICBmb250LXNpemU6IDI1cHg7XG4gICAgcGFkZGluZzogMTBweCAxNXB4O1xuICAgIGNvbG9yOiByZ2JhKCMwMDAsIC41KTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5mZS10YWI6aG92ZXIge1xuICAgIGNvbG9yOiAjMGVhNTdmO1xufVxuXG4uZmUtc2F2ZS1tZXRob2RzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xufVxuXG4uZmUtZGVsZXRlLXRlbXBsYXRlIHtcbiAgICBmb250LWZhbWlseTogXCJNYXRlcmlhbCBEZXNpZ24gSWNvbnNcIjtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgY29sb3I6ICNlMzMyNDQ7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmZlLWRlbGV0ZS10ZW1wbGF0ZTpob3ZlciB7XG4gICAgY29sb3I6ICM4NDM1MzQ7XG59XG5cbi5mZS1kZWxldGUtdGVtcGxhdGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnXFxmMWMwJztcbn1cblxuLmZlLW5vZGUtaWNvbiB7XG4gICAgZm9udC1mYW1pbHk6IFwiTWF0ZXJpYWwgRGVzaWduIEljb25zXCI7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDQ0cHg7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItcmFkaXVzOiAuNjI1cmVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xufVxuXG4uZmUtdmVyc2lvbnMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTVweDtcbiAgICBsZWZ0OiAxNXB4O1xuICAgIHotaW5kZXg6IDEwO1xuICAgIHBhZGRpbmc6IDdweCA1cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbn1cblxuLyouZmUtdmVyc2lvbnMtdGV4dCxcbi5mZS12ZXJzaW9ucy1pdGVtIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgcGFkZGluZzogN3B4IDVweDtcbn0qL1xuXG4vKi5mZS12ZXJzaW9ucy10ZXh0IHtcbiAgICBwYWRkaW5nOiA3cHggMCA3cHggMTBweDtcbn0qL1xuXG4udHMtZWRpdG9yLWJpZy1idG4ge1xuICAgIC8qbGluZS1oZWlnaHQ6IDUwcHg7Ki9cbn1cblxuLmZlLXZlcnNpb25zLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBwYWRkaW5nOiAwIDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLmZlLXZlcnNpb25zLWl0ZW06bm90KC4tYWN0aXZlKSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIGNvbG9yOiAjMWFhZTg4O1xufVxuXG4uZmUtdmVyc2lvbnMtaXRlbTpub3QoLi1hY3RpdmUpOmhvdmVyIHtcbiAgICBjb2xvcjogIzE1OGI2Yztcbn1cblxuLmZlLXZlcnNpb25zLWl0ZW0uLWFjdGl2ZSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5mZS12ZXJzaW9ucy1hY3RpdmF0ZSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uZmUtdmVyc2lvbnMtc2VsZWN0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIG1hcmdpbjogMCAwIDAgMTBweDtcbiAgICBoZWlnaHQ6IGF1dG87XG59XG5cbi5mZS1wcm9wZXJ0aWVzLWVycm9ycyB7XG4gICAgY29sb3I6ICNkZjkyOTI7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLmZlLXByb3BlcnRpZXMtZXJyb3I6YmVmb3JlIHtcbiAgICBmb250LWZhbWlseTogXCJNYXRlcmlhbCBEZXNpZ24gSWNvbnNcIjtcbiAgICBjb250ZW50OiAnXFxmMmZjJztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBmb250LXNpemU6IDE3cHg7XG4gICAgbWFyZ2luOiAtMnB4IDVweCAwIDA7XG4gICAgY29sb3I6ICNlMzMyNDQ7XG59XG5cbi5mZS1wcm9wZXJ0aWVzLWltYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDVweCAwIDEwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NiZDVkZDtcbn1cblxuLmZlLW1vZGFsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaW5zZXQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHotaW5kZXg6IDk5OTk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA1MHZoO1xuXG4gICAgLm1vZGFsLWRpYWxvZyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgLmNyb3BwZXItY3JvcC1ib3gsIC5jcm9wcGVyLXZpZXctYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICB9XG4gICAgICAgIC5jcm9wcGVyLWxpbmUsIC5jcm9wcGVyLXBvaW50LCAuY3JvcHBlci1mYWNlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZmUtcHJvcGVydGllcy1uby1tZXRhIHtcbiAgICBtYXJnaW46IDVweCAwIDEwcHg7XG4gICAgY29sb3I6ICNkZjkyOTI7XG59XG5cbi5mZS1wcm9wZXJ0aWVzLW5vLW1ldGE6YmVmb3JlIHtcbiAgICBmb250LWZhbWlseTogXCJNYXRlcmlhbCBEZXNpZ24gSWNvbnNcIjtcbiAgICBjb250ZW50OiAnXFxmMmZjJztcbiAgICBjb2xvcjogI2UzMzI0NDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBmb250LXNpemU6IDE3cHg7XG4gICAgbWFyZ2luOiAtMnB4IDVweCAwIDA7XG59XG5cbnRleHRhcmVhLmZlLXByb3BlcnRpZXMtdGV4dGFyZWEge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMTBweCAwO1xuICAgIGhlaWdodDogMTUwcHg7XG59XG5cblxuXG4vKlxuTWFyeCdzIHN0dWZmXG4gKi9cblxuLmZsb3dlZGl0b3JfbW9kYWwtYnV0dG9uIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDEwcHggMCAwIDA7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gNXB4KTtcbn1cblxuLmZsb3dlZGl0b3JfbW9kYWwtYnV0dG9uLTEwMCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiAxMHB4IDAgMCAwO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uZmxvd2VkaXRvcl9tb2RhbC1idXR0b24uLXllcyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1hZGQtbWFyZ2luLTEwIHtcbiAgICBtYXJnaW46IDFlbTtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtYWRkLW1hcmdpbi0xMiB7XG4gICAgbWFyZ2luOiAxLjJlbTtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtYWRkLW1hcmdpbi0xNSB7XG4gICAgbWFyZ2luOiAxLjVlbTtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtYWRkLW1hcmdpbi0yMCB7XG4gICAgbWFyZ2luOiAyLjBlbTtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtYWRkLXBhZGRpbmctMTIge1xuICAgIHBhZGRpbmc6IDEuMmVtO1xufVxuXG4vLyBLZWVwIC5mbG93ZWRpdG9yLW1vZGFsIG92ZXJsYXkgc2hhZG93ICh1c2VkIGVsc2V3aGVyZSlcbi5mbG93ZWRpdG9yLW1vZGFsIC5mZS1tLWNvbnRlbnQge1xuICAgIGJveC1zaGFkb3c6IDBweCAwcHggNjBweCAxMHB4IHJnYmEoIzAwMCwgLjMpO1xufVxuXG4vLyBTbWFsbCBcIldvcmtpbmfigKZcIiBpbmRpY2F0b3Ig4oCUIHJlcGxhY2VzIHRoZSBvbGQgZnVsbC1zY3JlZW4gb3ZlcmxheVxuLy8gVGFyZ2V0IHNwYW4gbGl2ZXMgaW4gdGhlIGJyZWFkY3J1bWIgYmFyOyBhdXRvLW1hcmdpbiBwdXNoZXMgaXQgdG8gdGhlIHJpZ2h0XG4jZmUtd29ya2luZy10YXJnZXQge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmZlLXdvcmtpbmctaW5kaWNhdG9yIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogN3B4O1xuICAgIHBhZGRpbmc6IDRweCAxMnB4IDRweCA4cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSg2NSwgNzMsIDE1NCwgMC44Mik7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCk7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc3lzdGVtLXVpLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIC5tZGkge1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIH1cbn1cblxuLy8gRmFkZSB0cmFuc2l0aW9uXG4uZmUtd29ya2luZy1mYWRlLWVudGVyLWFjdGl2ZSxcbi5mZS13b3JraW5nLWZhZGUtbGVhdmUtYWN0aXZlIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE4MG1zIGVhc2UsIHRyYW5zZm9ybSAxODBtcyBlYXNlO1xufVxuLmZlLXdvcmtpbmctZmFkZS1lbnRlcixcbi5mZS13b3JraW5nLWZhZGUtZW50ZXItZnJvbSxcbi5mZS13b3JraW5nLWZhZGUtbGVhdmUtdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02cHgpO1xufVxuXG4uZmxvd2VkaXRvci1jb250cm9scyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMTVweDtcbiAgICBsZWZ0OiAxNXB4O1xuICAgIHdpZHRoOiAxNTBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLmZsb3dlZGl0b3ItY29udHJvbHMgLmZsb3dlZGl0b3Item9vbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG59XG5cbi5mbG93ZWRpdG9yLXN0YXR1cyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTVweDtcbiAgICBsZWZ0OiAxNXB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5mbG93ZWRpdG9yLXN0YXR1cyBwIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgY29sb3I6ICM2NzY3Njc7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4vLyBQdXNoIHRoZSBlbnRpcmUgcGFnZSB3aGVuIHRoZSB0cmFuc2xhdGlvbiBwYW5lbCBpcyBvcGVuXG5ib2R5IHtcbiAgICB0cmFuc2l0aW9uOiBtYXJnaW4tcmlnaHQgMjQwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cbmJvZHkuZmUtdHAtb3BlbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA0MjBweDtcbn1cblxuLmZsb3dlZGl0b3Ige1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5mbG93ZWRpdG9yIC5mb3JtLWNvbnRyb2wge1xuICAgIGJvcmRlci1yYWRpdXM6IC42MjVyZW07XG4gICAgcGFkZGluZzogLjc1cmVtIC44cmVtO1xuICAgIGhlaWdodDogYXV0bztcbn1cblxuLmZsb3dlZGl0b3ItY2FudmFzIHtcbiAgICBiYWNrZ3JvdW5kOiAjZTZlOWZmO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5mbG93ZWRpdG9yLXB1Ymxpc2gge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5mbG93ZWRpdG9yLWNhbnZhcyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlNmU5ZmY7XG4gICAgfVxuXG4gICAgLmZsb3dlZGl0b3ItYnV0dG9ucyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICB9XG59XG5cblxuLmZsb3dlZGl0b3ItdG9vbGJhciB7XG4gICAgJi5ub2RlYmFyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDFlbTtcbiAgICAgICAgbGVmdDogMWVtO1xuICAgICAgICB6LWluZGV4OiAxMDsgICAgICAgIFxuICAgICAgICB6b29tOiAkcGFnZS1yZXNvbHV0aW9uO1xuICAgIH1cblxuICAgICYudG9vbGJhciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxZW07XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgem9vbTogJHBhZ2UtcmVzb2x1dGlvbjtcbiAgICB9XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXIudG9vbGJhciB7XG4gICAgJHByaW1hcnk6ICM0MTQ5OWE7XG4gICAgJHByaW1hcnktaG92ZXI6ICMzYjI1N2E7XG4gICAgJHByaW1hcnktYWN0aXZlOiAjMWYyMDVjO1xuICAgICRib3JkZXItcmFkaXVzOiAxZW07XG4gICAgJHNlY29uZGFyeV9vZmZzZXQ6IDIwcHg7XG5cbiAgICAudG9vbGJhcl9tZW51LXdyYXBwZXIge1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG5cbiAgICAgICAgLnRvb2xiYXJfbWVudSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDY1LCA3MywgMTU0LCAwLjU1KTtcbiAgICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxNHB4KTtcbiAgICAgICAgICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE0cHgpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IC41ZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cblxuICAgICAgICAgICAgLnRvb2xiYXJfc3ViX21lbnUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZ2FwOiAuMmVtO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4ICNkZmUyZmIgc29saWQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAuNzVlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5tZW51LWl0ZW0ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZ2FwOiAxZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5tZW51LWJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICAgICAgY29sb3I6IGNvbG9ycy4kd2hpdGU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogLjVlbSAxZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktaG92ZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG5cbiAgICAgICAgICAgICAgICAmLmJ1dHRvbi1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjZlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMGVtIC4yNWVtO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1hY3RpdmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEhpc3RvcnkgKHZ7bn0pIGFuZCBQdWJsaXNoIGFyZSByZWFsIHFkbmFwcm8tYnV0dG9uIGluc3RhbmNlcyBub3dcbiAgICAgICAgICAgIC8vICgxNy4wNy4yMDI2OiBcIm1vZXRlbiBidXR0b24gY29tcG9uZW50cyB3b3JkZW5cIiDigJQgS2ltKSwgdHlwZVxuICAgICAgICAgICAgLy8gb24tcHVycGxlIC8gb24tcHVycGxlLXNvbGlkLCBzaXplIGNvbXBhY3QsIHBpbGwg4oCUIHRob3NlIHR3byB0eXBlc1xuICAgICAgICAgICAgLy8gYXJlIEJVSUxUIGZvciBhIHB1cnBsZS9kYXJrIHN1cmZhY2UgZXhhY3RseSBsaWtlIHRoaXMgdG9vbGJhciwgc29cbiAgICAgICAgICAgIC8vIG5vIGxvY2FsIGJ1dHRvbiBzdHlsaW5nIHJlbWFpbnMgaGVyZS4gVGhlIFwidW5wdWJsaXNoZWQgY2hhbmdlc1wiXG4gICAgICAgICAgICAvLyBkb3QgbGl2ZXMgb24gdGhlIHN1cnJvdW5kaW5nIC5tZW51LWl0ZW0gd3JhcHBlciwgbm90IHRoZSBidXR0b25cbiAgICAgICAgICAgIC8vIGNvbXBvbmVudCBpdHNlbGY6IHFkbmFwcm8tYnV0dG9uJ3MgaW5pdGlhbGl6ZUNsYXNzZXMoKSByZWJ1aWxkc1xuICAgICAgICAgICAgLy8gaXRzIG93biBjbGFzc05hbWUgZnJvbSBhIG9uZS10aW1lIFwib3JpZ2luYWxDbGFzc2VzXCIgc25hcHNob3RcbiAgICAgICAgICAgIC8vIHdoZW5ldmVyIGFuIE9CU0VSVkVEIGF0dHJpYnV0ZSBjaGFuZ2VzICh0eXBlL3NpemUvZGlzYWJsZWQvcGlsbC9cbiAgICAgICAgICAgIC8vIGJhZGdlL2FjdGl2ZSkg4oCUIGEgY2xhc3MgYWRkZWQgZXh0ZXJuYWxseSB2aWEgVnVlJ3MgOmNsYXNzIHdvdWxkXG4gICAgICAgICAgICAvLyBiZSBzYWZlIGhlcmUgdG9kYXkgKG5vbmUgb2YgdGhpcyBidXR0b24ncyBvYnNlcnZlZCBhdHRyaWJ1dGVzXG4gICAgICAgICAgICAvLyBjaGFuZ2UgYWZ0ZXIgbW91bnQpIGJ1dCBpcyBmcmFnaWxlIHRvIHJlbHkgb24sIHNvIHRoZSBkb3QgaXMga2VwdFxuICAgICAgICAgICAgLy8gb25lIGxldmVsIHVwIHdoZXJlIGl0IGNhbiBuZXZlciBiZSB3aXBlZCBieSB0aGUgY29tcG9uZW50LlxuICAgICAgICAgICAgLmZlLXZlcnNpb24taXRlbSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJi5mZS12ZXJzaW9uLWl0ZW0tLWRpcnR5OjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogLTRweDtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IC00cHg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA5cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogOXB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmNTllMGI7XG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogZmUtcHVibGlzaC1wdWxzZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBTZWFyY2ggcGlsbCDigJQgYWx3YXlzIGluIERPTSwgYW5pbWF0ZXMgYmV0d2VlbiBpY29uLW9ubHkgYW5kIGZ1bGwtd2lkdGhcbiAgICAgICAgICAgIC5mZS1zZWFyY2gtd3JhcCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjsgICAvLyB2ZXJ0aWNhbGx5IGNlbnRlciB3aXRoaW4gdGhlIHRvb2xiYXIgcm93XG4gICAgICAgICAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDRweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEuNWVtOyAgICAgICAgLy8gbWF0Y2ggYnV0dG9uLWljb24gbGluZS1oZWlnaHQgc28gaGVpZ2h0cyBhcmUgZXF1YWxcbiAgICAgICAgICAgICAgICB3aWR0aDogMS42ZW07ICAgICAgICAgLy8gY29sbGFwc2VkOiBzYW1lIHdpZHRoIGFzIG90aGVyIGJ1dHRvbi1pY29uIGJ1dHRvbnNcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAyNDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQgMjAwbXMgZWFzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3IgMjAwbXMgZWFzZTtcblxuICAgICAgICAgICAgICAgIC8vIEV4cGFuZGVkIHN0YXRlXG4gICAgICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIxMHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMwKTtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDhweCAwIDZweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBJbnB1dCBhbmQgY2xvc2U6IGludmlzaWJsZSB3aGVuIGNvbGxhcHNlZCwgZmFkZSBpbiBhZnRlciB3aWR0aCBzdGFydHMgZ3Jvd2luZ1xuICAgICAgICAgICAgICAgIC5mZS1zZWFyY2gtaW5wdXQsXG4gICAgICAgICAgICAgICAgLmZlLXNlYXJjaC1jbG9zZSB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE0MG1zIGVhc2UgODBtczsgLy8gODBtcyBkZWxheSBzbyB3aWR0aCBsZWFkc1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYtLWFjdGl2ZSAuZmUtc2VhcmNoLWlucHV0LFxuICAgICAgICAgICAgICAgICYtLWFjdGl2ZSAuZmUtc2VhcmNoLWNsb3NlIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmZlLXNlYXJjaC1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ29sbGFwc2VkOiBtYXRjaCBvdGhlciBidXR0b24taWNvbiBidXR0b25zIGV4YWN0bHlcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IGNvbG9ycy4kd2hpdGUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjZlbTtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIEV4cGFuZGVkOiBzbWFsbGVyIHByZWZpeCBpY29uLCBtdXRlZFxuICAgICAgICAgICAgICAgICYtLWFjdGl2ZSAuZmUtc2VhcmNoLWljb24ge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMWVtO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5mZS1zZWFyY2gtaW5wdXQge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDAuODVlbTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAgICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTApICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuZmUtc2VhcmNoLWNsb3NlIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42NSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAgICAgICAgIC5tZGkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42NSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIC5tZGkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyB2MiBUT09MQkFSIENPTkNFUFQgKDE3LjA3LjIwMjYsIEtpbStKYW4gcmV2aWV3LCBvcHQtaW4gdmlhID90b29sYmFyPXYyKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBURU1QT1JBUlkuIE9uY2UgYXBwcm92ZWQgZm9yIGZ1bGwgcm9sbG91dDogZGVsZXRlIHRoaXMgZW50aXJlIGJsb2NrIFBMVVNcbi8vIHRoZSBjbGFzc2ljIC5mbG93ZWRpdG9yLXRvb2xiYXIudG9vbGJhciBydWxlcyBhYm92ZSBpdCwgY29udmVyZ2UgdG8gb25lXG4vLyBpbXBsZW1lbnRhdGlvbiAoS2ltLCAxNy4wNy4yMDI2OiBcImFscyB3ZSB2b2xsZWRpZyBpbnRlZ3JlcmVuIG1vZXRlbiB3ZVxuLy8gZGUgdjIgdmVyc2llIG9vayB3ZWVyIG9wcnVpbWVuXCIg4oCUIHJlYWQgbGl0ZXJhbGx5OiBvbiBmdWxsIGludGVncmF0aW9uLFxuLy8gVEhJUyB2MiBibG9jayArIGl0cyBmbGFnIGdldCBmb2xkZWQgaW50byB0aGUgc2luZ2xlIHJlbWFpbmluZyB2ZXJzaW9uLFxuLy8gbm90IGtlcHQgYXMgYSBwZXJtYW5lbnQgc2Vjb25kIG5hbWVzcGFjZSkuXG4vL1xuLy8gT25lIGdsYXNzIGJhciAobm90IHNwbGl0IGludG8gcGFuZWxzIOKAlCBLaW0sIDE3LjA3OiBcImhvdSAnbSBpbiAxIGJhbGtcIilcbi8vIHdpdGggYW4gaW50ZXJuYWwgZGl2aWRlciBiZXR3ZWVuIGNhbnZhcy1hY3Rpb25zIGFuZCBmbG93LWFjdGlvbnMsIHJvdW5kXG4vLyBpY29uIGJ1dHRvbnMgKEtpbSwgMTcuMDc6IFwiZGllIG1vZ2VuIHdlbCByb25kIGJsaWp2ZW5cIiksIFYxL1B1Ymxpc2ggcmV1c2Vcbi8vIHRoZSBTQU1FIHFkbmFwcm8tYnV0dG9uIG1hcmt1cCBhbHJlYWR5IGxpdmUgaW4gdGhlIGNsYXNzaWMgYmFyLiBab29tIG1vdmVzXG4vLyB0byBhIGNvcm5lciBkb2NrIHRoYXQgaXMgbmVhci1pbnZpc2libGUgYXQgcmVzdCBhbmQgZXhwYW5kcyBvbiBob3ZlciDigJRcbi8vIEphbidzIGJpZ2dlc3Qgd29ycnkgd2FzIHRoYXQgYSBjb3JuZXIgem9vbSBjbHVzdGVyIHdvdWxkIGZlZWwgaW50cnVzaXZlXG4vLyBhbmQgaW50ZXJydXB0IHRoZSB3b3JrZmxvdywgc28gdGhpcyByZXVzZXMgdGhlIEVYQUNUIGV4cGFuZCBpZGlvbSB0aGVcbi8vIHNlYXJjaCBiYXIgYWxyZWFkeSBoYXMgKHdpZHRoL29wYWNpdHkgdHJhbnNpdGlvbiksIG5vdCBhIG5ldyBwYXR0ZXJuLlxuLmZsb3dlZGl0b3ItdG9vbGJhci12MiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvLyBjaGlsZHJlbiBvcHQgYmFjayBpbiBpbmRpdmlkdWFsbHlcbiAgICB6LWluZGV4OiAxMDtcbiAgICB6b29tOiAkcGFnZS1yZXNvbHV0aW9uOyAvLyBzYW1lIHpvb20gY29udGV4dCBhcyB0aGUgY2xhc3NpYyBiYXJcbiAgICBmb250LWZhbWlseTogSW50ZXIsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBzYW5zLXNlcmlmO1xufVxuXG4uZ2xhc3MyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzIpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxNHB4KSBzYXR1cmF0ZSgxLjQpO1xuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE0cHgpIHNhdHVyYXRlKDEuNCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xuICAgIGJveC1zaGFkb3c6IDAgMTJweCAzMHB4IHJnYmEoMzgsIDQyLCA5MiwgMC4xNCksIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4vLyBUb3AgY2x1c3RlcjogdGhlIGJhciAod2l0aCB0aGUgY29udGV4dHVhbCBwaWxsIGhhbmdpbmcgdW5kZXIgaXQpICsgdGhlIGxvb3NlXG4vLyBwbGF5IGNpcmNsZSBiZXNpZGUgaXQuIE9uZSBjZW50cmVkIGZsZXggcm93LCBzbyB0aGUgcGxheSBidXR0b24gc2l0cyBuZXh0IHRvXG4vLyB0aGUgYmFyIHdpdGhvdXQgYWJzb2x1dGUtcG9zaXRpb25pbmcgZ3Vlc3N3b3JrLiBbS2ltIDE3LjA3LjIwMjZdXG4uZmUyLXRvcHJvdyB7XG4gICAgLy8gV2lkdGggdGhlIHpvb20gY2x1c3RlciBnYWlucyB3aGVuIGl0cyBleHRyYXMgc2xpZGUgb3V0LiBTSU5HTEUgc291cmNlIG9mXG4gICAgLy8gdHJ1dGg6IHRoZSBleHRyYXMgY29udGFpbmVyIGlzIHBpbm5lZCB0byBleGFjdGx5IHRoaXMgd2lkdGgsIGFuZCB0aGUgcm93XG4gICAgLy8gc2hpZnRzIGJ5IGV4YWN0bHkgaGFsZiBvZiBpdCAoYmVsb3cpLCB3aGljaCBpcyB3aGF0IGtlZXBzIOKIki8lLysgdmlzdWFsbHlcbiAgICAvLyBzdGlsbC4gMyDDlyA0MHB4IGJ1dHRvbnMgKyAyIMOXIDNweCBnYXBzID0gMTI2cHgsIHJvdW5kZWQgdXAgZm9yIHNsYWNrLlxuICAgIC8qIEJyZWVkdGUgd2Fhcm92ZXIgZGUgem9vbS1leHRyYSdzIHVpdHNjaHVpdmVuLiDimqDvuI8gTU9FVCBtZWVncm9laWVuIG1ldCBoZXRcbiAgICAgICBhYW50YWwga25vcHBlbiBlcmluOiBkZSBncm9lcCBoZWVmdCBgb3ZlcmZsb3c6IGhpZGRlbmAsIGR1cyB3YXQgbmlldCBwYXN0XG4gICAgICAgdmVyZHdpam50IFpPTkRFUiBzcG9vciDigJQgZ2VlbiBzY3JvbGxiYXIsIGdlZW4gZm91dG1lbGRpbmcuIEdlbWV0ZW5cbiAgICAgICAyMDI2LTA4LTA4IG5hZGF0IGRlIHR3ZWUgZXhwb3J0a25vcHBlbiBlcmJpaiBrd2FtZW46IDUga25vcHBlbiB2YW4gMzIgcHhcbiAgICAgICBtZXQgNCB0dXNzZW5ydWltdGVzIHZhbiAzIHB4ID0gMTcyIHB4IG5vZGlnLCBlbiBvcCAxMjkgcHggd2FyZW4gZGUgbGFhdHN0ZVxuICAgICAgIHR3ZWUgc2ltcGVsd2VnIG9uemljaHRiYWFyIChtZWxkaW5nIEphbjogXCJpayB6aWUgZGUga25vcCBuZXJnZW5zXCIpLiBFeGFjdFxuICAgICAgIDE3MiB3YXMgbm9nIHRlIGtyYXAg4oCUIG9wIGRlIHN1YnBpeGVsIHZpZWwgZGUgbGFhdHN0ZSBlciBuZXQgYnVpdGVuIOKAlCBkdXNcbiAgICAgICBlZW4gcGFhciBwaXhlbHMgbHVjaHQuXG4gICAgICAg4pqg77iPIERlemUgcGFydGlhbCBrb210IGluIFRXRUUgc3R5bGVzaGVldHMgdGVyZWNodCAoc3R5bGUuY3NzIMOpbiBzdHlsZS12MS5jc3MpXG4gICAgICAgZW4gZGUgZmxvdyBlZGl0b3IgbGFhZHQgemUgQkVJREUsIG1ldCBzdHlsZS12MS5jc3MgYWxzIGxhYXRzdGUuIEFsbGVlblxuICAgICAgIGBndWxwIHNhc3NgIGRyYWFpZW4gdmVyYW5kZXJ0IGR1cyBuaWV0cyB6aWNodGJhYXJzOiBgZ3VscCBzYXNzLXYxYCBtb2V0IGVyXG4gICAgICAgb29rIGxhbmdzLiBEYXQga29zdHRlIGhpZXIgZWVuIHJvbmRlLlxuICAgICAgIFplbGZkZSB2YXJpYWJlbGUgc3R1dXJ0IG9vayBkZSB0ZWdlbi12ZXJzY2h1aXZpbmcgZGllIGRlIGtub3BwZW4gb25kZXIgZGVcbiAgICAgICBjdXJzb3IgaG91ZHQsIGR1cyBkaWUgYmxpamZ0IGF1dG9tYXRpc2NoIGtsb3BwZW4uICovXG4gICAgLS1mZTItem9vbS1leHRyYS13OiAxODBweDtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDFlbTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDE0cHg7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIyMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG5cbi8vIEtlZXAgZXZlcnkgYnV0dG9uIHVuZGVyIHRoZSBjdXJzb3Igd2hpbGUgdGhlIHpvb20gZXh0cmFzIGV4cGFuZCAoS2ltXG4vLyAxNy4wNy4yMDI2OiBcInBsdXMgZW4gbWluIGVuIDcwJSBtb2V0ZW4gb3AgZGV6ZWxmZGUgcGxlayBibGlqdmVuIHN0YWFuXCIpLlxuLy8gVGhlIGJhciBpcyBjZW50cmUtYW5jaG9yZWQsIHNvIGdyb3dpbmcgaXQgYnkgWCBtb3ZlcyBldmVyeXRoaW5nIGJ5IFgvMiDigJRcbi8vIHdoaWNoZXZlciBzaWRlIHRoZSBleHRyYXMgYXBwZWFyIG9uLiBUaGUgZXh0cmFzIHNpdCBGSVJTVCBpbiB0aGUgRE9NIChncm93XG4vLyBsZWZ0d2FyZCkgYW5kIHRoaXMgc2hpZnRzIHRoZSB3aG9sZSByb3cgbGVmdCBieSBYLzIsIGNhbmNlbGxpbmcgdGhhdCBvdXRcbi8vIGV4YWN0bHk6IG5ldCBtb3ZlbWVudCBmb3Ig4oiSLyUvKywgc2VhcmNoLCBQdWJsaWNlcmVuIGFuZCB0aGUgcGxheSBidXR0b24gaXNcbi8vIHplcm8sIGFuZCBvbmx5IHRoZSBleHRyYXMgdGhlbXNlbHZlcyBhbmltYXRlIGludG8gdmlldy5cbi5mZTItdG9wcm93OmhhcyguZmUyLXpvb206aG92ZXIpLFxuLmZlMi10b3Byb3c6aGFzKC5mZTItem9vbTpmb2N1cy13aXRoaW4pIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygtNTAlIC0gKHZhcigtLWZlMi16b29tLWV4dHJhLXcpIC8gMikpKTtcbn1cblxuLy8gQW5jaG9yIGZvciB0aGUgY29udGV4dHVhbCBwaWxsIHNvIGl0IGNlbnRyZXMgdW5kZXIgdGhlIEJBUiwgbm90IHVuZGVyIHRoZVxuLy8gYmFyK3BsYXkgY29tYmluYXRpb24uXG4uZmUyLWJhcndyYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLy8gY2hpbGRyZW4gb3B0IGJhY2sgaW5cbn1cblxuLmZlMi1iYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDNweDtcbiAgICBwYWRkaW5nOiA4cHg7XG59XG5cbi5mZTItZGl2aWRlciB7XG4gICAgd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDI2cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgzOCwgNDIsIDkyLCAwLjE0KTtcbiAgICBtYXJnaW46IDAgN3B4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xufVxuXG4vLyBCdW1wZWQgYSBub3RjaCBhY3Jvc3MgdGhlIGJvYXJkIChLaW0sIDE3LjA3LjIwMjY6IFwibWFnIGFsbGVzIGVjaHQgZmYgZWVuXG4vLyB0aWtraWUgZ3JvdGVyXCIpIOKAlCB3YXMgMzRweC8xOXB4LlxuLmZlMi1pY29uLWJ0biB7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIG1pbi13aWR0aDogNDBweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGNvbG9yOiAjNTI1NzljO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLCBjb2xvciAxMjBtcyBlYXNlO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuXG4gICAgLm1kaSB7IGZvbnQtc2l6ZTogMjJweDsgbGluZS1oZWlnaHQ6IDE7IH1cblxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDY1LCA3MywgMTU0LCAwLjEwKTsgY29sb3I6ICMyZjM1NzA7IH1cbn1cblxuLy8gVW5kby9yZWRvICgyMDI2LTA4LTA4KTogdGhlIGJ1dHRvbnMga2VlcCB0aGVpciBzbG90IHdoZW4gdGhlIGhpc3RvcnkgaXMgZW1wdHlcbi8vICh2LWlmIHdvdWxkIHNoaWZ0IHRoZSBjZW50cmUtYW5jaG9yZWQgYmFyKSwgc28gZGlzYWJsZWQgaXMgYSBsb29rLCBub3QgcmVtb3ZhbC5cbi5mZTItaWNvbi1idG4tLWRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjM1O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vLyBJY29uICsgdGV4dCB2YXJpYW50IChWZXJ0YWxpbmdlbikg4oCUIGEgcGlsbCBpbnN0ZWFkIG9mIGEgZml4ZWQgY2lyY2xlLlxuLmZlMi1pY29uLWJ0bi0tbGFiZWxsZWQge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBwYWRkaW5nOiAwIDE0cHggMCAxMHB4O1xuICAgIGdhcDogN3B4O1xufVxuXG4uZmUyLWJ0bi1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLy8g4pSA4pSAIFpvb20gY2x1c3RlciwgSU5TSURFIHRoZSBiYXIsIGNvbGxhcHNlZCBhdCByZXN0IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gS2ltIDE3LjA3LjIwMjY6IHpvb20gcmV0dXJucyB0byB0aGUgYmFyICh0aGUgY29ybmVyIGRvY2sgaXMgZ29uZSksIGJ1dCBrZWVwc1xuLy8gdGhlIGhvdmVyLWV4cGFuZCBzaGUgZXhwbGljaXRseSBsaWtlZCDigJQgXCJkYXQgc2NoZWVsdCBlZW4gaG9vcCBydWlzXCIuIEF0IHJlc3Rcbi8vIG9ubHkg4oiSLyUvKyBzaG93OyAxOjEgLyBmaXQgLyByYXN0ZXIgc2xpZGUgb3V0IG9uIGhvdmVyLiBTYW1lIGlkaW9tIGFzIHRoZVxuLy8gc2VhcmNoIGZpZWxkLCBzbyBub3RoaW5nIG5ldyB0byBsZWFybi5cbi5mZTItem9vbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogM3B4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4uZmUyLXpvb20tY29yZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogM3B4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xufVxuXG4uZmUyLXpvb20tcGN0IHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzQxNDk5YTtcbiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIG1pbi13aWR0aDogNDJweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZmxleDogMCAwIGF1dG87XG59XG5cbi8vIFVzZXMgYW4gZXhwbGljaXQgYHdpZHRoYCAobm90IG1heC13aWR0aCkgc28gdGhlIGdyb3duIHNpemUgaXMgRVhBQ1RMWVxuLy8gLS1mZTItem9vbS1leHRyYS13LiBUaGUgcm93J3MgY29tcGVuc2F0aW5nIHNoaWZ0IGlzIGhhbGYgdGhhdCB2YWx1ZTsgd2l0aFxuLy8gbWF4LXdpZHRoIHRoZSByZWFsIHdpZHRoIHdvdWxkIHN0YXkgdW5rbm93biBhbmQgdGhlIGNvbXBlbnNhdGlvbiB3b3VsZCBkcmlmdC5cbi5mZTItem9vbS1leHRyYSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogM3B4O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgd2lkdGg6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE0MG1zIGVhc2UgNjBtcywgd2lkdGggMjIwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cblxuLmZlMi16b29tOmhvdmVyIC5mZTItem9vbS1leHRyYSxcbi5mZTItem9vbTpmb2N1cy13aXRoaW4gLmZlMi16b29tLWV4dHJhIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHdpZHRoOiB2YXIoLS1mZTItem9vbS1leHRyYS13KTtcbn1cblxuLy8g4pSA4pSAIExvb3NlIHBsYXkgY2lyY2xlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gRGV0YWNoZWQgYmVzaWRlIHRoZSBiYXIgKEtpbSdzIG93biBjYWxsLCAxNy4wNy4yMDI2OiBcImxla2tlciBvcHZhbGxlbmRcIikuXG4vLyBTdXJmYWNlIGlzIHRoZSBTQU1FIGdsYXNzIGFzIHRoZSBiYXIvcGFuZWwg4oCUIGl0IGNhcnJpZXMgdGhlIGBnbGFzczJgIGNsYXNzLCBzb1xuLy8gdGhlIGZpbGwvYmx1ci9zaGFkb3cgY29tZSBmcm9tIHRoZXJlIGFuZCB0aGlzIHJ1bGUgb25seSBkb2VzIHNoYXBlICsgaWNvblxuLy8gKEtpbSAxNy4wNy4yMDI2OiBcImRlemVsZmRlIHN1cmZhY2Uga2xldXIgYWxzIGRlIHBhbmVsXCIpLiBBdHRlbnRpb24gY29tZXMgZnJvbVxuLy8gaXRzIGRldGFjaGVkIHBvc2l0aW9uIHBsdXMgYW4gb2NjYXNpb25hbCBzaGltbWVyLCBub3QgZnJvbSBhIGxvdWQgZmlsbC5cbi5mZTItcGxheSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47ICAgLy8gY2xpcHMgdGhlIHNoaW1tZXIgc3dlZXAgdG8gdGhlIGNpcmNsZVxuICAgIHdpZHRoOiA1MnB4O1xuICAgIGhlaWdodDogNTJweDtcbiAgICBtaW4td2lkdGg6IDUycHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjb2xvcjogIzFlMWYyMDsgICAvLyBzYW1lIG5lYXItYmxhY2sgYXMgZXZlcnkgb3RoZXIgdG9vbGJhciBpY29uXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE0MG1zIGVhc2UsIHRyYW5zZm9ybSAxMDBtcyBlYXNlO1xuXG4gICAgLm1kaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAycHg7ICAgLy8gb3B0aWNhbCBjZW50cmluZyBvZiB0aGUgdHJpYW5nbGVcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAvLyBzdGF5IGFib3ZlIHRoZSBzaGltbWVyIGxheWVyXG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuXG4gICAgLy8gTm8gaG92ZXIgdGludCAoS2ltIDE3LjA3LjIwMjY6IFwibmlldCB6byB0ZXZyZWRlbiBtZXQgZGUgaG92ZXIga2xldXIsIGRlXG4gICAgLy8gZmxldHMuLi4gbWlzc2NoaWVuIGdld29vbiBhbGxlZW4gZGUgYm9yZGVyIGJlYW1cIikuIEEgdHJhbnNsdWNlbnQgcHVycGxlXG4gICAgLy8gd2FzaCBvdmVyIHRyYW5zbHVjZW50IGdsYXNzIGp1c3QgbXVkZGllZCBpdDsgdGhlIGJlYW0gYWxvbmUgaXMgdGhlIGhvdmVyXG4gICAgLy8gc2lnbmFsLCBzbyB0aGUgc3VyZmFjZSBzdGF5cyBjbGVhbi5cbiAgICAmOmFjdGl2ZSB7IHRyYW5zZm9ybTogc2NhbGUoMC45NCk7IH1cbiAgICAmLS1sb2FkaW5nIHsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuICAgIC8vIFNwYXJzZSBzaGltbWVyOiB0aGUgc3dlZXAgb25seSBvY2N1cGllcyB0aGUgbGFzdCB+MTIlIG9mIGEgOXMgY3ljbGUsIHNvIGl0XG4gICAgLy8gY2F0Y2hlcyB0aGUgZXllIHJvdWdobHkgZXZlcnkgOSBzZWNvbmRzIGluc3RlYWQgb2YgYW5pbWF0aW5nIGNvbnN0YW50bHlcbiAgICAvLyAoS2ltOiBcIm5pZXQgdGUgdmFhaywgYW5kZXJzIGludHJ1c2l2ZVwiKS4gUHVycGxlLXRpbnRlZCwgYmVjYXVzZSBhIHdoaXRlXG4gICAgLy8gc2hlZW4gd291bGQgYmUgaW52aXNpYmxlIG9uIHRoaXMgd2hpdGUgZ2xhc3Mgc3VyZmFjZS5cbiAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMTVkZWcsXG4gICAgICAgICAgICByZ2JhKDEwOCwgOTIsIDIzMSwgMCkgMzglLFxuICAgICAgICAgICAgcmdiYSgxMDgsIDkyLCAyMzEsIDAuMzApIDUwJSxcbiAgICAgICAgICAgIHJnYmEoMTA4LCA5MiwgMjMxLCAwKSA2MiUpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEzMCUpO1xuICAgICAgICBhbmltYXRpb246IGZlMi1wbGF5LXNoaW1tZXIgOXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBmZTItcGxheS1zaGltbWVyIHtcbiAgICAwJSwgODglIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMzAlKTsgfVxuICAgIDEwMCUgICAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTMwJSk7IH1cbn1cblxuLy8gQm9yZGVyIGJlYW0gb24gaG92ZXIgKEtpbSAxNy4wNy4yMDI2OiBcImRhdCBlciBlZW4gaGlnaGxpZ2h0IG9tIGRlIGtub3AgaGVlblxuLy8gbG9vcHQuLi4gZGF0IGRpZSBrbm9wIGVjaHQgdG90IGxldmVuIGtvbXRcIikuIFNhbWUgcmVjaXBlIGFzIHRoZSBub2RlLXBpY2tlclxuLy8gZm9ybS1jYXJkJ3MgYmVhbSDigJQgYSByb3RhdGluZyBjb25pYy1ncmFkaWVudCBtYXNrZWQgZG93biB0byBqdXN0IHRoZSBib3JkZXJcbi8vIHJpbmcgdmlhIG1hc2stY29tcG9zaXRlOiBleGNsdWRlLCBzbyBpdCB0cmFjZXMgdGhlIGVkZ2Ugd2l0aG91dCBjb3ZlcmluZyB0aGVcbi8vIGljb24uIFJldXNlcyA6OmJlZm9yZSBiZWNhdXNlIDo6YWZ0ZXIgaXMgYWxyZWFkeSB0aGUgc2hpbW1lciBsYXllci5cbi8vIFRoZSBhbmdsZSBuZWVkcyBpdHMgb3duIHJlZ2lzdGVyZWQgQHByb3BlcnR5IChiZWxvdykgb3IgaXQgc25hcHMgaW5zdGVhZCBvZlxuLy8gcm90YXRpbmcuIEhvdmVyLW9ubHkgaGVyZSwgc28gaXQgc3RheXMgY2FsbSB1bnRpbCB5b3UgcmVhY2ggZm9yIGl0LlxuLmZlMi1wbGF5OjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gICAgcGFkZGluZzogMnB4O1xuICAgIGJhY2tncm91bmQ6IGNvbmljLWdyYWRpZW50KFxuICAgICAgICBmcm9tIHZhcigtLWZlMi1iZWFtLWFuZ2xlKSxcbiAgICAgICAgdHJhbnNwYXJlbnQgMGRlZyxcbiAgICAgICAgdHJhbnNwYXJlbnQgMjUwZGVnLFxuICAgICAgICByZ2JhKDcwLCA4MiwgMjQzLCAwLjk1KSAzMDVkZWcsXG4gICAgICAgICNiOWMwZjcgMzM1ZGVnLFxuICAgICAgICB0cmFuc3BhcmVudCAzNjBkZWdcbiAgICApO1xuICAgIC13ZWJraXQtbWFzazogbGluZWFyLWdyYWRpZW50KCNmZmYgMCAwKSBjb250ZW50LWJveCwgbGluZWFyLWdyYWRpZW50KCNmZmYgMCAwKTtcbiAgICAtd2Via2l0LW1hc2stY29tcG9zaXRlOiB4b3I7XG4gICAgbWFzazogbGluZWFyLWdyYWRpZW50KCNmZmYgMCAwKSBjb250ZW50LWJveCwgbGluZWFyLWdyYWRpZW50KCNmZmYgMCAwKTtcbiAgICBtYXNrLWNvbXBvc2l0ZTogZXhjbHVkZTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTYwbXMgZWFzZTtcbiAgICB6LWluZGV4OiAwO1xufVxuXG4uZmUyLXBsYXk6aG92ZXI6OmJlZm9yZSxcbi5mZTItcGxheTpmb2N1cy12aXNpYmxlOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgYW5pbWF0aW9uOiBmZTItcGxheS1iZWFtIDEuNnMgbGluZWFyIGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIGZlMi1wbGF5LWJlYW0ge1xuICAgIHRvIHsgLS1mZTItYmVhbS1hbmdsZTogMzYwZGVnOyB9XG59XG5cbi8vIOKUgOKUgCBDb250ZXh0dWFsIGRlbGV0ZSBwaWxsIChvbmx5IHdoaWxlIGEgbm9kZSBpcyBzZWxlY3RlZCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4uZmUyLWNvbnRleHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGNhbGMoMTAwJSArIDEwcHgpO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICBhbmltYXRpb246IGZlMi1jb250ZXh0LWluIDE2MG1zIGVhc2Utb3V0O1xufVxuXG5Aa2V5ZnJhbWVzIGZlMi1jb250ZXh0LWluIHtcbiAgICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTRweCk7IH1cbiAgICB0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMCk7IH1cbn1cblxuLmZlMi1jb250ZXh0LWJ0biB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogN3B4O1xuICAgIGhlaWdodDogMzRweDtcbiAgICBwYWRkaW5nOiAwIDE0cHggMCAxMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGNvbG9yOiAjYzAzOTJiO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLCBjb2xvciAxMjBtcyBlYXNlO1xuXG4gICAgLm1kaSB7IGZvbnQtc2l6ZTogMTlweDsgbGluZS1oZWlnaHQ6IDE7IH1cblxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDE5MiwgNTcsIDQzLCAwLjEwKTsgY29sb3I6ICM5NjI4MWI7IH1cbn1cblxuLy8g4pSA4pSAIEhlYWRlciBhY3Rpb25zIChWZXJzaWVnZXNjaGllZGVuaXMgKyBIZWxwKSwgcmVsb2NhdGVkIGludG8gdGhlIGJyZWFkY3J1bWJcbi8vICAgIHJvdyBieSBUb29sYmFyLnZ1ZSdzIF9yZWxvY2F0ZUhlYWRlckFjdGlvbnMoKS4g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4uZmUyLWhlYWRlci1hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87IC8vIHB1c2ggdG8gdGhlIHJpZ2h0IGVuZCBvZiB0aGUgYnJlYWRjcnVtYiByb3dcbiAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG59XG5cbi5mZTItaGVhZGVyLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xufVxuXG4vLyBVbnB1Ymxpc2hlZC1jaGFuZ2VzIGRvdCwgSU5MSU5FIGluc2lkZSB0aGUgdmVyc2lvbiBidXR0b24gKHNlZSB0aGUgdGVtcGxhdGVcbi8vIGNvbW1lbnQpLiBFZGdlLWFuY2hvcmluZyBpdCBmYWlsZWQgaGVyZTogdGhpcyBidXR0b24gdmFyaWFudCBpcyB0cmFuc3BhcmVudCxcbi8vIHNvIHRoZXJlIGlzIG5vIHZpc2libGUgYm9yZGVyIGZvciB0aGUgZG90IHRvIHNpdCBhZ2FpbnN0IGFuZCBpdCBqdXN0IGZsb2F0ZWRcbi8vIGluIHRoZSBwaWxsJ3MgZW1wdHkgcGFkZGluZy4gUmlkaW5nIGFsb25nIHdpdGggdGhlIGxhYmVsIHNvbHZlcyB0aGF0LlxuLmZlMi1pbmxpbmUtZG90IHtcbiAgICB3aWR0aDogOHB4O1xuICAgIGhlaWdodDogOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAjZjU5ZTBiO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGFuaW1hdGlvbjogZmUtcHVibGlzaC1wdWxzZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAuZmUyLWlubGluZS1kb3QgeyBhbmltYXRpb246IG5vbmU7IH1cbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAuZmUyLXpvb20tZXh0cmEsIC5mZTItcGxheSwgLmZlMi1jb250ZXh0IHsgdHJhbnNpdGlvbjogbm9uZTsgYW5pbWF0aW9uOiBub25lOyB9XG4gICAgLmZlMi1wbGF5OjphZnRlciB7IGFuaW1hdGlvbjogbm9uZTsgb3BhY2l0eTogMDsgfVxufVxuXG4uZmUyLXNlYXJjaC1pdGVtIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4vLyBUaGUgY2xhc3NpYyAuZmUtc2VhcmNoLXdyYXAgY29sbGFwc2UvZXhwYW5kIG1lY2hhbmljcyAod2lkdGggdHJhbnNpdGlvbixcbi8vIG92ZXJmbG93OmhpZGRlbiwgb3BhY2l0eSBmYWRlcykgYXJlIG5lc3RlZCA0IGxldmVscyBkZWVwIHVuZGVyXG4vLyAuZmxvd2VkaXRvci10b29sYmFyLnRvb2xiYXIgLnRvb2xiYXJfbWVudS13cmFwcGVyIC50b29sYmFyX21lbnVcbi8vIC50b29sYmFyX3N1Yl9tZW51LCBpLmUuIFBSSVZBVEUgdG8gdGhhdCBleGFjdCBhbmNlc3RvciBjaGFpbiDigJQgcmV1c2luZyB0aGVcbi8vIGJhcmUgY2xhc3MgbmFtZSB1bmRlciAuZmUyLWJhciBpbmhlcml0cyBOT05FIG9mIHRoYXQgKGNvbmZpcm1lZCBsaXZlLFxuLy8gMTcuMDcuMjAyNjogdGhlIHYyIHNlYXJjaCBib3ggcmVuZGVyZWQgcGVybWFuZW50bHkgZXhwYW5kZWQsIHVuc3R5bGVkLFxuLy8gYmVjYXVzZSBvbmx5IGNvbG91cnMgd2VyZSBvdmVycmlkZGVuIGhlcmUgb3JpZ2luYWxseSBhbmQgdGhlIGFjdHVhbFxuLy8gbGF5b3V0IHJ1bGVzIG5ldmVyIG1hdGNoZWQpLiBTbyB0aGlzIGlzIGEgZnVsbCwgc2VsZi1jb250YWluZWRcbi8vIHJlLWltcGxlbWVudGF0aW9uIG9mIHRoZSBzYW1lIGJlaGF2aW91ciBmb3IgdGhlIGxpZ2h0IGdsYXNzIHN1cmZhY2UsIG5vdFxuLy8ganVzdCBhIHJlY29sb3VyIOKAlCB2ZXJiYXRpbSBkaW1lbnNpb25zL3RpbWluZ3MgZnJvbSB0aGUgY2xhc3NpYyB2ZXJzaW9uLFxuLy8gUFVSUExFLU9OLUdMQVNTIGNvbG91cnMgaW5zdGVhZCBvZiB3aGl0ZS1vbi1wdXJwbGUuXG4uZmUyLWJhciB7XG4gICAgLmZlLXNlYXJjaC13cmFwIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAgIC8vIGxldHMgdGhlIGljb24gYmUgb3B0aWNhbGx5IGNlbnRyZWQgd2hpbGUgY29sbGFwc2VkXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMnB4O1xuICAgICAgICBwYWRkaW5nOiAwIDRweDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDI0MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQgMjAwbXMgZWFzZSxcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yIDIwMG1zIGVhc2U7XG5cbiAgICAgICAgLy8gQ09MTEFQU0VEIHN0YXRlIOKAlCBpdCByZWFkcyBhcyBhIHBsYWluIGljb24gYnV0dG9uIGhlcmUsIHNvIGl0IG5lZWRzXG4gICAgICAgIC8vIGJvdGggYSBob3ZlciB0aW50IChLaW06IFwiaGVlZnQgZ2VlbiBob3ZlciBzdGF0ZVwiKSBhbmQgYSBwcm9wZXJseVxuICAgICAgICAvLyBjZW50cmVkIGljb24gKEtpbTogXCJzdGFhdCBuaWV0IGluIGhldCBtaWRkZW5cIikuIFRoZSBpY29uIGhhcyB0byBiZVxuICAgICAgICAvLyBjZW50cmVkIEFCU09MVVRFTFk6IHRoZSBpbnB1dCBhbmQgY2xlYXItbGluayBhcmUgb25seSBvcGFjaXR5OjAsIHNvXG4gICAgICAgIC8vIHRoZXkgc3RpbGwgb2NjdXB5IGZsZXggc3BhY2UgYW5kIHNob3ZlIHRoZSBpY29uIG9mZi1jZW50cmUg4oCUXG4gICAgICAgIC8vIGp1c3RpZnktY29udGVudCBjYW4ndCBmaXggdGhhdCBiZWNhdXNlIHRoZSBpbnB1dCdzIHdpZHRoOjEwMCVcbiAgICAgICAgLy8gY29uc3VtZXMgYWxsIHRoZSBmcmVlIHNwYWNlLiBXcml0dGVuIGFzIGFuIGV4cGxpY2l0IDpub3QoKSByYXRoZXJcbiAgICAgICAgLy8gdGhhbiBhIG5lc3RlZCBgJmAgc28gdGhlIGNvbXBpbGVkIHNlbGVjdG9yIHN0YXlzIHNpbXBsZS5cbiAgICAgICAgJjpub3QoLmZlLXNlYXJjaC13cmFwLS1hY3RpdmUpIHtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNjUsIDczLCAxNTQsIDAuMTApO1xuICAgICAgICAgICAgICAgIC5mZS1zZWFyY2gtaWNvbiB7IGNvbG9yOiAjMmYzNTcwICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmZlLXNlYXJjaC1pY29uIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIHdpZHRoOiAyMjBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNjUsIDczLCAxNTQsIDAuMDgpO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDY1LCA3MywgMTU0LCAwLjIwKTtcbiAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMTBweCAwIDhweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mZS1zZWFyY2gtaW5wdXQsIC5mZS1zZWFyY2gtY2xvc2Uge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNDBtcyBlYXNlIDgwbXM7XG4gICAgICAgIH1cbiAgICAgICAgJi0tYWN0aXZlIC5mZS1zZWFyY2gtaW5wdXQsICYtLWFjdGl2ZSAuZmUtc2VhcmNoLWNsb3NlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE5lYXItYmxhY2ssIG1hdGNoaW5nIGV2ZXJ5IG90aGVyIHRvb2xiYXIgaWNvbiAoS2ltIDE3LjA3LjIwMjY6IGl0IHdhc1xuICAgICAgICAvLyB0aGUgb25seSBwdXJwbGUgb25lKS4gIWltcG9ydGFudCBiZWNhdXNlIHRoZSBjbGFzc2ljIGJhcidzIG93blxuICAgICAgICAvLyB3aGl0ZS1vbi1wdXJwbGUgcnVsZSB1c2VzIGl0IHRvby5cbiAgICAgICAgLmZlLXNlYXJjaC1pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAjMWUxZjIwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB9XG4gICAgICAgICYtLWFjdGl2ZSAuZmUtc2VhcmNoLWljb24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICAgICAgY29sb3I6ICM2ZDcyYTggIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mZS1zZWFyY2gtaW5wdXQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgY29sb3I6ICMyNjJhNWMgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICY6OnBsYWNlaG9sZGVyIHsgY29sb3I6IHJnYmEoMzgsIDQyLCA5MiwgMC40MCkgIWltcG9ydGFudDsgfVxuICAgICAgICB9XG4gICAgICAgIC5mZS1zZWFyY2gtY2xvc2Uge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAubWRpIHsgY29sb3I6IHJnYmEoMzgsIDQyLCA5MiwgMC40NSkgIWltcG9ydGFudDsgZm9udC1zaXplOiAxNXB4OyBsaW5lLWhlaWdodDogMTsgfVxuICAgICAgICAgICAgJjpob3ZlciAubWRpIHsgY29sb3I6ICMyZjM1NzAgIWltcG9ydGFudDsgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZlLXRyYW5zbGF0ZS1idG4tLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNjUsIDczLCAxNTQsIDAuMTQpO1xuICAgICAgICBjb2xvcjogIzJmMzU3MCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC8vIEluY29tcGxldGUtdHJhbnNsYXRpb25zIGRvdDogcHVsbGVkIE9OVE8gdGhlIGJ1dHRvbiAoS2ltIDE3LjA3LjIwMjYsXG4gICAgLy8gXCJzdGFhdCBlZW4gYmVldGplIGF3a3dhcmRcIikuIFRoZSBzaGFyZWQgcnVsZSBhbmNob3JzIGl0IGF0IC00cHgvLTRweCxcbiAgICAvLyB3aGljaCBpcyByaWdodCBmb3IgdGhlIGNsYXNzaWMgYmFyJ3MgQ0lSQ1VMQVIgaWNvbiBidXR0b24g4oCUIGJ1dCB0aGlzXG4gICAgLy8gdmFyaWFudCBpcyBhIHRleHQgUElMTCwgc28gdGhhdCBjb3JuZXIgZG9lc24ndCB2aXN1YWxseSBleGlzdCBhbmQgdGhlIGRvdFxuICAgIC8vIGZsb2F0ZWQgZGlhZ29uYWxseSBvZmYgaW50byBzcGFjZS4gU2l0cyBvbiB0aGUgdG9wLXJpZ2h0IGN1cnZlIG5vdy5cbiAgICAuZmUtdHJhbnNsYXRlLWJ0bi0taW5jb21wbGV0ZTo6YWZ0ZXIge1xuICAgICAgICB0b3A6IDJweDtcbiAgICAgICAgcmlnaHQ6IDRweDtcbiAgICB9XG5cbiAgICAuZmUtcHJldmlldy10b29sYmFyLWJ0biB7IGNvbG9yOiAjNTI1NzljOyBvcGFjaXR5OiAxOyB9XG4gICAgLmZlLXByZXZpZXctdG9vbGJhci1idG46aG92ZXIgeyBjb2xvcjogIzJmMzU3MDsgYmFja2dyb3VuZDogcmdiYSg2NSwgNzMsIDE1NCwgMC4xMCk7IH1cblxuICAgIC8vIFYxL2hpc3RvcnkgaXMgcWRuYXByby1idXR0b24gdHlwZT1cIm9uLXB1cnBsZVwiIOKAlCB0cmFuc3BhcmVudCBiZyArIFdISVRFXG4gICAgLy8gdGV4dC9pY29uIChkZXNpZ25lZCBmb3IgYSBwdXJwbGUgc3VyZmFjZSkuIE9uIHRoaXMgbGlnaHQgZ2xhc3MgYmFyIHRoYXRcbiAgICAvLyB3YXMgaW52aXNpYmxlIChLaW0sIDE3LjA3LjIwMjY6IFwiZGUgdmVyc2lvbiBidXR0b24gaXMgb256aWNodGJhYXJcIikuXG4gICAgLy8gUmVjb2xvdXIgdG8gdGhlIGJyYW5kIHB1cnBsZTsgc3RheXMgYSBnaG9zdC9vaG9zdCAodHJhbnNwYXJlbnQgYmcpLCBqdXN0XG4gICAgLy8gZGFyay1vbi1saWdodCBpbnN0ZWFkIG9mIGxpZ2h0LW9uLWRhcmsuXG4gICAgLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1vbi1wdXJwbGUge1xuICAgICAgICBjb2xvcjogIzQxNDk5YSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAucWRuYXByby1idXR0b24uYnV0dG9uLW9uLXB1cnBsZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCksXG4gICAgLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1vbi1wdXJwbGU6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNjUsIDczLCAxNTQsIDAuMTApICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLy8gUHVibGlzaCwgRU5BQkxFRDogcWRuYXByby1idXR0b24gdHlwZT1cIm9uLXB1cnBsZS1zb2xpZFwiIGZpbGxzICMyYTMyNjggKGFcbiAgICAvLyBkYXJrIG5hdnkgdHVuZWQgZm9yIGEgcHVycGxlL2Rhcmsgc3VyZmFjZSkg4oCUIG9uIGxpZ2h0IGdsYXNzIGl0IHJlYWQgYXNcbiAgICAvLyBuZWFyLWJsYWNrIHJhdGhlciB0aGFuIFwicHVycGxlXCIuIEtpbSwgMTcuMDcuMjAyNjogXCJhbHMgaGlqIHB1YmxpY2VlcmJhYXJcbiAgICAvLyBpcyBnZXdvb24gcGFhcnNcIiDigJQgb3ZlcnJpZGUgdG8gdGhlIHJlYWwgYnJhbmQgcHVycGxlLlxuICAgIC5xZG5hcHJvLWJ1dHRvbi5idXR0b24tb24tcHVycGxlLXNvbGlkOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICM0MTQ5OWEgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1vbi1wdXJwbGUtc29saWQ6aG92ZXI6bm90KC5idXR0b24tZGlzYWJsZWQpLFxuICAgIC5xZG5hcHJvLWJ1dHRvbi5idXR0b24tb24tcHVycGxlLXNvbGlkOmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMmYzNTcwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLy8gUHVibGlzaCwgRElTQUJMRUQ6IEtpbSwgMTcuMDcuMjAyNiDigJQgXCJ3aWwgaWsgdHJhbnNwYXJhbnQgYWxzIGhpalxuICAgIC8vIGRpc2FibGVkIGlzXCIgKG5vdCB0aGUgZmlsbGVkIGdyZXkgYm94IGZyb20gdGhlIGZpcnN0IHBhc3MsIHdoaWNoIGZpeGVkXG4gICAgLy8gdGhlIGNvbnRyYXN0IHByb2JsZW0gYnV0IG92ZXJzaG90IGludG8gYSBzb2xpZCBib3gpLiBUcmFuc3BhcmVudCBmaWxsLFxuICAgIC8vIGEgaGFpcmxpbmUgYm9yZGVyIGZvciBkZWZpbml0aW9uIHNvIGl0IHN0aWxsIHJlYWRzIGFzIGEgYnV0dG9uIG91dGxpbmUsXG4gICAgLy8gbXV0ZWQgdGV4dC4gU2NvcGVkICsgIWltcG9ydGFudCB0byB3aW4gb3ZlciB0aGUgZ2xvYmFsIC5idXR0b24tZGlzYWJsZWRcbiAgICAvLyBydWxlIChhbHNvICFpbXBvcnRhbnQpIHdpdGhvdXQgdG91Y2hpbmcgaXQgYW55d2hlcmUgZWxzZSBpbiB0aGUgYXBwLlxuICAgIC5xZG5hcHJvLWJ1dHRvbi5idXR0b24tZGlzYWJsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogcmdiYSgzOCwgNDIsIDkyLCAwLjM2KSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXI6IDEuNXB4IHNvbGlkIHJnYmEoMzgsIDQyLCA5MiwgMC4xOCkgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi8vIChUaGUgYm90dG9tLXJpZ2h0IGNvcm5lciB6b29tIGRvY2sgbGl2ZWQgaGVyZSB1bnRpbCAxNy4wNy4yMDI2LiBLaW0gbW92ZWRcbi8vIHZlcnNpb24gKyBoZWxwIHRvIHRoZSBoZWFkZXIsIHdoaWNoIGZyZWVkIGVub3VnaCByb29tIHRvIGJyaW5nIHpvb20gYmFja1xuLy8gSU5UTyB0aGUgYmFyIGFzIGEgY29sbGFwc2VkIGNsdXN0ZXIg4oCUIHNlZSAuZmUyLXpvb20gYWJvdmUg4oCUIHNvIHRoZSBjb3JuZXIgaXNcbi8vIGVtcHR5IGFnYWluIGFuZCBKYW4ncyBcIm5pZXQgaW4gZGUgd2VnXCIgY29uY2VybiBpcyBtb290LilcblxuLmZsb3dlZGl0b3ItdG9vbGJhciAubm9kZWJhcl9tZW51LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8vIC5mZS1zZWFyY2gtb3ZlcmxheSBpcyBpbmplY3RlZCBpbnRvIHRoZSBHb0pTIGRpdiB2aWEgSlMgKGFwcGx5U2VhcmNoIGluIGRpYWdyYW0vaW5kZXguanMpXG5cbkBrZXlmcmFtZXMgbm9kZWJhci1zbGlkZS1pbiB7XG4gICAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7IH1cbiAgICB0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG59XG5cbkBrZXlmcmFtZXMgbW9kYWwtZmFkZS1pbiB7XG4gICAgZnJvbSB7IG9wYWNpdHk6IDA7IH1cbiAgICB0byAgIHsgb3BhY2l0eTogMTsgfVxufVxuXG5Aa2V5ZnJhbWVzIG1vZGFsLXNjYWxlLWluIHtcbiAgICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMC45NSk7IH1cbiAgICB0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMSk7IH1cbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAubm9kZWJhcl9tZW51IHtcbiAgICAkcHJpbWFyeTogIzQxNDk5YTtcbiAgICAkcHJpbWFyeS1ob3ZlcjogIzNiMjU3YTtcbiAgICAkcHJpbWFyeS1hY3RpdmU6ICMxZjIwNWM7XG4gICAgJGJvcmRlci1yYWRpdXM6IDFlbTtcbiAgICAkc2Vjb25kYXJ5X29mZnNldDogMjBweDtcblxuICAgIGZvbnQtc2l6ZTogLjhlbTtcblxuXG4gICAgJi5wcmltYXJ5LW1lbnUge1xuXG4gICAgICAgIGNvbG9yOiBjb2xvcnMuJHdoaXRlO1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMjAwcHggKyAkc2Vjb25kYXJ5X29mZnNldCk7XG4gICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxNHB4KTtcbiAgICAgICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTRweCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIC5ub2RlYmFyX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDY1LCA3MywgMTU0LCAwLjU1KTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMgJGJvcmRlci1yYWRpdXMgMCAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkYm9yZGVyLXJhZGl1cyAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAzNywgMTIyLCAwLjcwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMzEsIDMyLCA5MiwgMC44MCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuXG5cbiAgICB9XG5cbiAgICAmLnNlY29uZGFyeS1tZW51IHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICBtYXgtaGVpZ2h0OiA2MHZoO1xuICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNlY29uZGFyeV9vZmZzZXQ7XG5cbiAgICAgICAgLy8gTW9kZXJuIHRoaW4gc2Nyb2xsYmFyXG4gICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiByZ2JhKDY1LCA3MywgMTU0LCAwLjMpIHRyYW5zcGFyZW50O1xuXG4gICAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgICAgIHdpZHRoOiA0cHg7XG4gICAgICAgIH1cbiAgICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg2NSwgNzMsIDE1NCwgMC4zKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDY1LCA3MywgMTU0LCAwLjUpOyB9XG4gICAgICAgIH1cbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAkYm9yZGVyLXJhZGl1cyAkYm9yZGVyLXJhZGl1cyAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcyKTtcbiAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE2cHgpO1xuICAgICAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxNnB4KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMjRweCByZ2JhKDY1LCA3MywgMTU0LCAwLjEyKTtcblxuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGFuaW1hdGlvbjogbm9kZWJhci1zbGlkZS1pbiAxODBtcyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSkgYm90aDtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgLm5vZGViYXJfbWVudS1pdGVtIHtcblxuICAgICAgICAgICAgY3Vyc29yOiBtb3ZlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgJGJvcmRlci1yYWRpdXMgMCAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkYm9yZGVyLXJhZGl1cyAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzNSwgMjM1LCAyMzUsIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubm9kZWJhcl9tZW51LWl0ZW0ge1xuICAgICAgICBwYWRkaW5nOiAuNzVlbSAxZW07XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogLjc1ZW07XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG5cbiAgICAgICAgJi5vcHRpb24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMzcsIDEyMiwgMC42NSk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggcmdiYSgzMSwgMzIsIDkyLCAwLjYwKSBzb2xpZDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDBlbSAxZW07XG5cbiAgICAgICAgICAgIC5ub2RlYmFyX21lbnUtaWNvbiB7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwiTWF0ZXJpYWwgRGVzaWduIEljb25zXCI7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogIzkzOWFjZDtcblxuICAgICAgICAgICAgICAgIC5tZGkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG5cbiAgICB9XG5cbiAgICAubm9kZWJhcl9tZW51LWljb24ge1xuICAgICAgICBmb250LWZhbWlseTogXCJNYXRlcmlhbCBEZXNpZ24gSWNvbnNcIjtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgIH1cbn1cblxuLy8gbWluaW1pemVkIG5vZGViYXJcbi5mbG93ZWRpdG9yLXRvb2xiYXIubm9kZWJhci5taW5pbWl6ZWQge1xuXG4gICAgLnByaW1hcnktbWVudSB7XG4gICAgICAgIC5ub2RlYmFyX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBzcGFuLm5vZGViYXJfbWVudS10aXRsZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zZWNvbmRhcnktbWVudSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICAgfVxuXG59XG5cblxuLy8gLmZsb3dlZGl0b3ItdG9vbGJhciB7XG4vLyAgICAgYmFja2dyb3VuZDogI2ZmZjtcbi8vICAgICBkaXNwbGF5OiBmbGV4O1xuLy8gICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4vLyAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTRlNGU0O1xuXG4vLyAgICAgJi5ub2RlYmFye1xuXG4vLyAgICAgICAgIG1heC13aWR0aDogMjcycHg7XG5cblxuLy8gICAgICAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7IC8qIGlPUyBTYWZhcmkgKi9cbi8vICAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgLyogU2FmYXJpICovXG4vLyAgICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsgLyogSW50ZXJuZXQgRXhwbG9yZXIvRWRnZSAqL1xuLy8gICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbi8vICAgICB9XG4vLyAgICAgJi4tdG9vbGJhci1pbi1tb2RhbHtcbi8vICAgICAgICAgbWF4LXdpZHRoOmF1dG87XG4vLyAgICAgICAgIHdpZHRoOjEwMCU7XG4vLyAgICAgICAgIC5mZS1zZWN0aW9uLXdyYXBwZXJ7XG4vLyAgICAgICAgICAgICBtYXgtaGVpZ2h0OiA1MDBweDtcbi8vICAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4vLyAgICAgICAgIH1cblxuLy8gICAgIH1cbi8vIH1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtdGFicyB7XG4gICAgZmxleC1iYXNpczogNTBweDtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlZmVmZWY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtdGFicyAuZmUtd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIC8qaGVpZ2h0OiAxMDB2aDsqL1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtdGFicyAuZmUtd3JhcHBlciB1bCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtdGFicyAuZmUtd3JhcHBlciB1bDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogNjVweDtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtdGFicyAuZmUtd3JhcHBlciB1bDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1yaWdodCB7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbiAgICAvKmhlaWdodDogMTAwdmg7Ki9cbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgIGNvbG9yOiAjNjY1ODRlO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1yaWdodCAuZmUtZW1wdHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAvKmhlaWdodDogMTAwdmg7Ki9cbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXIgLmZlLXJpZ2h0IC5mZS1lbXB0eSBwIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBjb2xvcjogcmdiYSgjMDAwLCAuNCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1yaWdodCAuZmUtZW1wdHkgcCBpIHtcbiAgICBmb250LXNpemU6IDQwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXIge1xuICAgIC5mZS1ub2RlLWZyYW1lIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgzMSwgMTQsIDE0LCAwLjE1KTtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgcGFkZGluZzogMTVweCAxMHB4IDEwcHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGNvbG9yOiAjNzc3O1xuXG4gICAgICAgIC50cy1yb3VuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjNWM1YzU7XG4gICAgICAgICAgICBjb2xvcjogY29sb3JzLiR3aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogLjM3NXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiA0NHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA0NHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZlLW5vZGUtdHlwZSB7XG4gICAgICAgIGNvbG9yOiAjYWNhY2FjO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC41cmVtO1xuICAgIH1cbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtcmlnaHQgLmZlLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgLypoZWlnaHQ6IDEwMHZoOyovXG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1yaWdodCAuZmUtd3JhcHBlciBmb290ZXIge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWFlYWVhO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1yaWdodCAuZmUtd3JhcHBlciBmb290ZXIgLmZlLWNhcmQtYm9keSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXIgLmZlLXNlY3Rpb24td3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICA+LmZlLXJpZ2h0IHtcbiAgICAgICAgb3ZlcmZsb3cteDogdmlzaWJsZTtcbiAgICB9XG5cbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtc2VjdGlvbiAuZmUtY2FyZC1ib2R5IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1zZWN0aW9uLmZlLW9wZW4gLmZlLWNhcmQtYm9keSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWluLWhlaWdodDogMzRweDtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtc2VjdGlvbiAuZmUtY2FyZC1ib2R5IGkge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtc2VjdGlvbiAuZmUtY2FyZC1ib2R5IC5mZS1jYXJkLWFjdGlvbi1iYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlYWVhZWE7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXIgLmZlLXNlY3Rpb24gLmZlLWNhcmQtYm9keSAuZmUtY2FyZC1vdmVybGF5IHtcbiAgICBwYWRkaW5nOiAwIDEycHg7XG4gICAgYm94LXNoYWRvdzogMHB4IDVweCA1MHB4IDJweCByZ2JhKCMwMDAsIC4xKTtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtc2VjdGlvbiAuZmUtY2FyZC1ib2R5IC5mZS1jYXJkLW92ZXJsYXkgLmZlLXRpdGxlIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBib3JkZXItdG9wOiBub25lO1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXIgLmZlLXNlY3Rpb24gLmZlLWNhcmQtYm9keSAuZmUtY2FyZC1vdmVybGF5IC5mZS10aXRsZSBpIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXIgLmZlLXNlY3Rpb24gdWwge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAxZW0gMCAwIDA7XG4gICAgcGFkZGluZzogMDtcbiAgICAvKm92ZXJmbG93LXk6IGF1dG87XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIG1heC1oZWlnaHQ6IDIyM3B4OyovXG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtc2VjdGlvbiAuZmUtY2FyZC1ib2R5IHVsIGxpIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMWVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtc2VjdGlvbiAuZmUtY2FyZC1ib2R5IHVsIGxpIHNwYW4uZmUtaXRlbS10ZXh0IHt9XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXIgLmZlLXNlY3Rpb24gLmZlLWNhcmQtYm9keSB1bCBsaSBzcGFuLmZlLWl0ZW0tc3VidGV4dCB7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtc2VjdGlvbiAuZmUtdGFiLXRpdGxlLFxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtc2VjdGlvbiAuZmUtdGl0bGUge1xuICAgIHBhZGRpbmc6IDAuOGVtIDEuMmVtO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjJweDtcbiAgICBjb2xvcjogIzYzNjM2Mztcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtc2VjdGlvbiAuZmUtY2FyZC1ib2R5IC5mZS1pdGVtLWlubmVyIHt9XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXIgLmZlLXNlY3Rpb24gLmZlLWNhcmQtYm9keSAuZmUtaXRlbS1jb250ZW50IC5mZS1pdGVtLWFjdGlvbnMgYSB7XG4gICAgLyptYXJnaW4tcmlnaHQ6IDEwcHg7Ki9cbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtc2VjdGlvbiAuZmUtY2FyZC1ib2R5IC5mZS1pdGVtLWNvbnRlbnQgLmZlLWl0ZW0tYWN0aW9ucyBhOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtc2VjdGlvbiAuZmUtY2FyZC1ib2R5IC5mZS1pdGVtLWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1zZWN0aW9uIC5mZS10YWItdGl0bGUge1xuICAgIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gICAgY29sb3I6IHJnYmEoIzAwMCwgLjYpO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1zZWN0aW9uIC5mZS10YWItdGl0bGUgc3Bhbixcbi5mbG93ZWRpdG9yLW1vZGFsIC5mZS1tLWNvbnRlbnQgLmZlLW0tYm9keSAuZmUtc2VjdGlvbnMtb3ZlcnZpZXcgdWwgbGkgYSBzcGFuLFxuLmZsb3dlZGl0b3ItbW9kYWwgLmZlLW0tY29udGVudCAuZmUtbS1ib2R5IC5mZS1vci1saW5lIHtcbiAgICBjb2xvcjogcmdiYSgjMDAwLCAuNCk7XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXIgLmZlLXNlY3Rpb24gLmZlLXRhYi10aXRsZSBzcGFuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXIgLmZlLXNlY3Rpb24gLmZlLXRpdGxlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmFmYWZhO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1zZWN0aW9uLmZlLW9wZW4gLmZlLXRpdGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmM2YzO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1zZWN0aW9uIC5mZS1idG4ge1xuICAgIG1hcmdpbi1ib3R0b206IDAuOGVtO1xufVxuXG4uZmxvd2VkaXRvci1tb2RhbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogMTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5mbG93ZWRpdG9yLW1vZGFsLmZlLW9wZW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZmxvd2VkaXRvci1tb2RhbCAuZmUtbS1jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICAgIG1hcmdpbjogMTAlIGF1dG87XG4gICAgcGFkZGluZzogMzBweCAyNXB4O1xuICAgIHdpZHRoOiA4MCU7XG59XG5cbi5mbG93ZWRpdG9yLW1vZGFsIC5mZS1tLWNvbnRlbnQgLmZlLW0taGVhZGVyIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U0ZTRlNDtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xufVxuXG4uZmxvd2VkaXRvci1tb2RhbCAuZmUtbS1jb250ZW50IC5mZS1tLWhlYWRlciBoMiB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIG1hcmdpbjogMTVweCAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi5mbG93ZWRpdG9yLW1vZGFsIC5mZS1tLWNvbnRlbnQgLmZlLW0taGVhZGVyIGgyIHNwYW4ge1xuICAgIGNvbG9yOiByZ2JhKCMwMDAsIC40KTtcbn1cblxuLmZsb3dlZGl0b3ItbW9kYWwgLmZlLW0tY29udGVudCAuZmUtbS1ib2R5IC5mZS1zZWN0aW9ucy1vdmVydmlldyB7XG4gICAgLyogUmVzZXJ2ZWQgKi9cbn1cblxuXG5cbi5mZS1zYXZlLW1ldGhvZHMgdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG59XG5cbi5mZS1zYXZlLW1ldGhvZHMgdWwgbGkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMTVweDtcbn1cblxuLmZlLXNhdmUtbWV0aG9kcyB1bCBsaTpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi5mZS1zYXZlLW1ldGhvZCB7XG4gICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgjMDAwLCAuMSk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC8qcGFkZGluZzogMzBweCAxNXB4OyovXG4gICAgcGFkZGluZzogMTVweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICMyMjIyMjI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZmUtc2F2ZS1tZXRob2Q6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTQsIDE2NSwgMTI3LCAuMik7XG59XG5cbi5mZS1zYXZlLW1ldGhvZCBzcGFuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb2xvcjogIzljOWM5Yztcbn1cblxuLmZsb3dlZGl0b3ItbW9kYWwgLmZlLW0tY29udGVudCAuZmUtbS1ib2R5IC5mZS1zZWN0aW9ucy1vdmVydmlldyAuZmUtb3RoZXItdG9vbHMge1xuICAgIC8qIFJlc2VydmVkICovXG59XG5cbi5mZS1vci1saW5lIHtcbiAgICBtYXJnaW4tdG9wOiAzNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNGU0ZTQ7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmZlLW9yLWxpbmU6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwib3JcIjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTFlbTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgcGFkZGluZzogMCAwLjk1ZW07XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG59XG5cbi5mZS1vdGhlci10b29scyB1bCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmZlLW90aGVyLXRvb2xzIHVsIGxpIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmZlLW90aGVyLXRvb2xzIHVsIGxpIGEge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoIzAwMCwgLjEpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAzMHB4IDE1cHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uZmxvd2VkaXRvci1tb2RhbCAuZmUtbS1jb250ZW50IC5mZS1tLWJvZHkgLmZlLXNlY3Rpb25zIHtcbiAgICAvKiBSZXNlcnZlZCAqL1xufVxuXG4uZmxvd2VkaXRvci1tb2RhbCAuZmUtbS1jb250ZW50IC5mZS1tLWJvZHkgLmZlLXNlY3Rpb25zIC5mZS1zZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmxvd2VkaXRvci1tb2RhbCAuZmUtbS1jb250ZW50IC5mZS1tLWJvZHkgLmZlLXNlY3Rpb25zIC5mZS1zZWN0aW9uLmZlLW9wZW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZmxvd2VkaXRvci1tb2RhbCAuZmUtbS1jb250ZW50IC5mZS1tLWJvZHkgLmZlLXNlY3Rpb25zIC5mZS1zZWN0aW9uIC5mZS10YWJsZS13cmFwcGVyIHtcbiAgICBtYXgtaGVpZ2h0OiAzMDBweCAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbn1cblxuLmZsb3dlZGl0b3ItbW9kYWwgLmZlLW0tY29udGVudCAuZmUtbS1mb290ZXIge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTRlNGU0O1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgcGFkZGluZy10b3A6IDE1cHg7XG59XG5cbi5mbG93ZWRpdG9yLW1vZGFsIC5mZS1tLWNsb3NlIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4uZmxvd2VkaXRvci1tb2RhbCAuZmUtbS1jbG9zZTpob3Zlcixcbi5mbG93ZWRpdG9yLW1vZGFsIC5mZS1tLWNsb3NlOmZvY3VzIHtcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLy8gXG4vLyBTdWJmbG93IExvZ2ljIGFuZCBSdWxlc1xuLy8gXG5cbiRydWxlczogIzVhODNlYztcbiRydWxlcy1saWdodDogY29sb3IuYWRqdXN0KCRydWxlcywgJGxpZ2h0bmVzczogMjQlKTtcbiRydWxlcy1saWdodGVyOiBjb2xvci5hZGp1c3QoJHJ1bGVzLCAkbGlnaHRuZXNzOiAzMSUpO1xuXG4udGV4dC1ydWxlcyB7XG4gICAgY29sb3I6ICRydWxlcztcbn1cblxuLmNhcmQtcnVsZXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRydWxlcy1saWdodGVyO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRydWxlcztcbiAgICBwYWRkaW5nOiAxLjI1cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IC4yNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBoNiB7XG4gICAgICAgIGNvbG9yOiAkcnVsZXM7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICB9XG5cbiAgICAudG9wLXJpZ2h0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC41cmVtO1xuICAgICAgICByaWdodDogLjVyZW07XG4gICAgfVxuXG4gICAgLmZvcm0tY29udHJvbCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHJ1bGVzO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoJHJ1bGVzLCAuMjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpkaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci5hZGp1c3QoJHJ1bGVzLWxpZ2h0ZXIsICRsaWdodG5lc3M6IDMlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ydWxlLWhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICAgICAgY29sb3I6ICRydWxlcztcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAkcnVsZXM7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRydWxlcy1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHJ1bGVzO1xuICAgICAgICAgICAgcGFkZGluZzogLjM3NXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogLjI1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgLmJ0bi1vdXRsaW5lLXByaW1hcnkge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcnVsZXM7XG4gICAgICAgICAgICBjb2xvcjogJHJ1bGVzO1xuICAgICAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcnVsZXM7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcnVsZXM7XG4gICAgICAgICAgICAgICAgY29sb3I6IGNvbG9ycy4kd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKCRydWxlcywgLjUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSxcbiAgICAgICAgICAgICY6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogY29sb3JzLiR3aGl0ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcnVsZXM7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcnVsZXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucnVsZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAuYnRuLWNpcmNsZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogLTQwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYnRuLWNpcmNsZSB7XG4gICAgICAgIHdpZHRoOiAzNnB4O1xuICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgY29sb3I6ICRydWxlcztcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjE1cyBlYXNlLWluLW91dDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJ1bGVzLWxpZ2h0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBCdXR0b25zXG4uYnRuLXJ1bGVzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcnVsZXMtbGlnaHRlcjtcbiAgICBjb2xvcjogJHJ1bGVzO1xuICAgIGJvcmRlci1jb2xvcjogJHJ1bGVzO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBjb2xvcnMuJHdoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcnVsZXM7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHJ1bGVzO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgkcnVsZXMsIC41KTtcbiAgICB9XG5cbiAgICAmOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiBjb2xvcnMuJHdoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcnVsZXM7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHJ1bGVzO1xuICAgIH1cbn1cblxuLmJ0bi1ydWxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcnVsZXMtbGlnaHQ7XG4gICAgY29sb3I6ICRydWxlcztcbiAgICBib3JkZXItY29sb3I6ICRydWxlcy1saWdodDtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcnVsZXM7XG4gICAgICAgIGNvbG9yOiBjb2xvcnMuJHdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRydWxlcztcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoJHJ1bGVzLCAuNSk7XG4gICAgfVxuXG4gICAgJjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUge1xuICAgICAgICBjb2xvcjogY29sb3JzLiR3aGl0ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJ1bGVzO1xuICAgICAgICBib3JkZXItY29sb3I6ICRydWxlcztcbiAgICB9XG59XG5cbi5mbG93ZWRpdG9yX21vZGFsIHsgICAgXG4gICAgem9vbTogODAlO1xuICAgIC50YWJzLWNvbXBvbmVudCB7fVxuXG4gICAgLnRhYnMtY29tcG9uZW50LXRhYnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLnRhYnMtY29tcG9uZW50LXRhYiB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViO1xuICAgICAgICAgICAgY29sb3I6ICNhY2FjYWM7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcnMuJHdoaXRlO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjNWE4M2VjO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnRhYnMtY29tcG9uZW50LXBhbmVscyB7XG4gICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgfVxuXG4gICAgLnRzLWZvcm0tY2hlY2sge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuXG4gICAgICAgIC50cy1lbGVtZW50LWxhYmVsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIH1cblxuICAgICAgICAudHMtbGFiZWwtdGV4dDo6YmVmb3JlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSsudHMtbGFiZWwtdGV4dDpiZWZvcmUge1xuICAgICAgICAgICAgY29sb3I6ICM1YTgzZWM7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIEFjdGlvbiBub2RlIG9wdGlvbnNcbi5zZWxlY3RlZC1xdWVzdGlvbnMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRydWxlcztcbiAgICBib3JkZXItcmFkaXVzOiAuMjVyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHJ1bGVzLWxpZ2h0ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIHRhYmxlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGNvbG9yOiAkcnVsZXM7XG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcblxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAuM3JlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5idG4tcmVtb3ZlIHtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgLjE1cyBlYXNlLWluLW91dDtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogY29sb3IuYWRqdXN0KCRydWxlcywgJGxpZ2h0bmVzczogLTEwJSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHkgdHI6bnRoLW9mLXR5cGUoZXZlbikge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJ1bGVzLWxpZ2h0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZmUtbm9kZS10aXRsZS1jYXJkIHtcblxuICAgIGJhY2tncm91bmQ6ICMzZjQ2OWM7XG4gICAgcGFkZGluZzogLjc1ZW07XG4gICAgYm9yZGVyLXJhZGl1czogMWVtO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgZ2FwOiAxZW07XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXG4gICAgLmZlLW5vZGUtdGl0bGUtaWNvbiB7XG5cblxuICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICB9XG5cbiAgICAuZmUtbm9kZS10aXRsZS1uYW1lIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgfVxuXG4gICAgLmZlLW5vZGUtdGl0bGUtaWQge1xuICAgICAgICBmb250LXNpemU6IC43NWVtO1xuICAgIH1cblxufVxuXG4uZmUtY2FyZC10aXRsZSB7XG4gICAgJHByaW1hcnk6ICMzZjQ2OWM7XG4gICAgY29sb3I6ICRwcmltYXJ5O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG5cbn1cblxuLmJ0biB7XG4gICAgJHByaW1hcnk6ICMzZjQ2OWM7XG4gICAgJHByaW1hcnktaG92ZXI6ICMzMzNhN2I7XG4gICAgJHNlY29uZGFyeTogI2YwZjFmMjtcbiAgICAkc2Vjb25kYXJ5LWhvdmVyOiAjYzRjN2NjO1xuICAgICR3YXJuaW5nOiAjZjBmMWYyO1xuICAgICR3YXJuaW5nLWhvdmVyOiAjYzRjN2NjO1xuXG4gICAgcGFkZGluZzogLjc1cmVtIDJyZW07XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IC43NWVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG5cblxuICAgICYuYnRuLXByaW1hcnkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeVxuICAgIH1cblxuICAgICYuYnRuLW91dGxpbmUge1xuICAgICAgICBib3JkZXI6IDFweCAkcHJpbWFyeSBzb2xpZDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5O1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmJ0bi1saW5rIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cblxuICAgICYuYnRuLXNpemUtc20ge1xuICAgICAgICBwYWRkaW5nOiAuNXJlbSAxcmVtO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgfVxuXG4gICAgJi5idG4tY29sb3ItcHJpbWFyeSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5O1xuICAgICAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5O1xuICAgICAgICBjb2xvcjogI2ZmZjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWhvdmVyO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcHJpbWFyeS1ob3ZlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuYnRuLWNvbG9yLXNlY29uZGFyeSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZWNvbmRhcnk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAjMGIwYjBkO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNlY29uZGFyeS1ob3ZlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuYnRuLWNvbG9yLXNlY29uZGFyeS1vdXRsaW5lIHtcbiAgICAgICAgYm9yZGVyOiAxcHggJHByaW1hcnkgc29saWQ7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHByaW1hcnk7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeTtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5idG4tY29sb3Itc2Vjb25kYXJ5LXdoaXRlIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBjb2xvcjogJHByaW1hcnk7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogY29sb3IuYWRqdXN0KCRwcmltYXJ5LCAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuYnRuLWNvbG9yLXdhcm5pbmcge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkd2FybmluZztcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICNDNjVBNUE7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkd2FybmluZy1ob3ZlcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmZlLWZvcm0uZm9ybS1yb3cge1xuICAgIGxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGNvbG9yOiAjNDA0OTlBO1xuICAgIH1cblxuICAgIC5mb3JtLWNvbnRyb2wge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAuNjI1cmVtO1xuICAgICAgICBwYWRkaW5nOiAuNzVyZW0gLjhyZW07XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG59XG5cbi5pbnB1dC1ncm91cCB7XG4gICAgLmlucHV0LWdyb3VwLXByZXBlbmQuaW5saW5lIHtcblxuICAgICAgICAuaW5wdXQtZ3JvdXAtdGV4dCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5pbnB1dC1ncm91cC1hcHBlbmQuaW5saW5lIHtcblxuICAgICAgICAuaW5wdXQtZ3JvdXAtdGV4dCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICY6aGFzKC5pbnB1dC1ncm91cC1wcmVwZW5kLmlubGluZSkge1xuICAgICAgICAuZm9ybS1jb250cm9sIHtcbiAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpoYXMoLmlucHV0LWdyb3VwLWFwcGVuZC5pbmxpbmUpIHtcbiAgICAgICAgLmZvcm0tY29udHJvbCB7XG4gICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmZlLWxhbmctaW5kaWNhdG9yIHtcbiAgICBjb2xvcjogIzZjNWY1NTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLmZlLWxhbmd1YWdlLWZpZWxkcyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgZ2FwOiAxZW07XG59XG5cbi5mZS1pdGVtcyB7XG4gICAgLy8gUmVzZXQgYnJvd3NlciBkZWZhdWx0IGxpc3QgaW5kZW50IHNvIGFuc3dlciByb3dzIGFsaWduIHdpdGggdGhlIHRleHQgZmllbGRzIGFib3ZlLlxuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICAmLmZlLWxpbmstbGlzdCB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDMwMHB4O1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgLy8gSW52aXNpYmxlIHNjcm9sbGJhcjoga2VlcCBzY3JvbGxpbmcsIGhpZGUgdGhlIGJhci4gW0tpbSAyMi4wNi4yMDI2XVxuICAgICAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gICAgICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbiAgICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogMDsgaGVpZ2h0OiAwOyBkaXNwbGF5OiBub25lOyB9XG5cbiAgICAgICAgLy8gNHB4IHZlcnRpY2FsIGdhcCBiZXR3ZWVuIGNvbnNlY3V0aXZlIGFuc3dlci1vcHRpb24gcm93cy4gVGhlIGxpc3QgaXMgYVxuICAgICAgICAvLyBwbGFpbiBibG9jayA8dWw+IChub3QgZmxleCksIHNvIHVzZSBhZGphY2VudC1zaWJsaW5nIG1hcmdpbi4gQWxzbyBzcGFjZXNcbiAgICAgICAgLy8gdGhlIGlubGluZSBhZGQtZGF0YXBvaW50IG92ZXJsYXkgcm93IGZyb20gdGhlIGxhc3QgYW5zd2VyLiBUaGUgZGFzaGVkXG4gICAgICAgIC8vIFwiK1wiIGFkZC1iYXIga2VlcHMgaXRzIG93biBtYXJnaW4gYW5kIGlzIGludGVudGlvbmFsbHkgZXhjbHVkZWQuIFtLaW0gMjAyNi0wNi0yMF1cbiAgICAgICAgLy9cbiAgICAgICAgLy8gUkVHUkVTU0lPTiBGSVggKFBoYXNlIDVCIE1lZXJrZXV6ZSBwZXItb3B0aW9uIGFwcGVhcmFuY2UsIDExLjA3LjIwMjYpOlxuICAgICAgICAvLyBMaW5rLnZ1ZSdzIHRlbXBsYXRlIHJvb3QgdXNlZCB0byBCRSBxZG5hcHJvLWFuc3dlci1vcHRpb24gaXRzZWxmLCBzbyBpdFxuICAgICAgICAvLyBsYW5kZWQgYXMgdGhlIGRpcmVjdCBjaGlsZCBvZiB0aGlzIDx1bD4gYW5kIHRoaXMgc2VsZWN0b3IgbWF0Y2hlZC4gU2luY2VcbiAgICAgICAgLy8gUGhhc2UgNUIsIExpbmsudnVlIEFMV0FZUyB3cmFwcyBpdCBpbiBhIGAuZmUtYW5zd2VyLXJvdy13cmFwYCBkaXYgKGZvclxuICAgICAgICAvLyBldmVyeSBub2RlIHR5cGUsIG5vdCBqdXN0IE1lZXJrZXV6ZSDigJQgc2VlIHRoYXQgY2xhc3MncyBvd24gY29tbWVudCBpblxuICAgICAgICAvLyB0aGlzIGZpbGUpLCBzbyB0aGUgZGlyZWN0IDx1bD4gY2hpbGQgaXMgbm93IGAuZmUtYW5zd2VyLXJvdy13cmFwYCBhbmRcbiAgICAgICAgLy8gYHFkbmFwcm8tYW5zd2VyLW9wdGlvbmAgc2l0cyBvbmUgbGV2ZWwgZGVlcGVyLiBUaGUgb2xkXG4gICAgICAgIC8vIGBxZG5hcHJvLWFuc3dlci1vcHRpb24gKyBxZG5hcHJvLWFuc3dlci1vcHRpb25gIHNlbGVjdG9yIG5vIGxvbmdlciBoYXNcbiAgICAgICAgLy8gYW55IHR3byBhZGphY2VudCBtYXRjaGVzICh0aGVyZSBJUyBubyBiYXJlIHFkbmFwcm8tYW5zd2VyLW9wdGlvbiBkaXJlY3RcbiAgICAgICAgLy8gY2hpbGQgbGVmdCksIHNvIGl0IHNpbGVudGx5IHN0b3BwZWQgbWF0Y2hpbmcg4oCUIHRoYXQncyB0aGUgeWVzL25vXG4gICAgICAgIC8vIChhbmQgYW55IG90aGVyIHBsYWluLCBub24tLmZlLWdyYWRlLXJvdyByb3cgdHlwZSwgZS5nLiBNZWVya2V1emUgd2hpbGVcbiAgICAgICAgLy8gaW4gTVVMVEkvY2hlY2tib3ggbW9kZSwgZml4ZXMsIHNrdV9kZXRhaWxfZGVzY3JpcHRpb24pIHplcm8tZ2FwIGJ1Z1xuICAgICAgICAvLyBmcm9tIEtpbSdzIHNjcmVlbnNob3QuIFRhcmdldCB0aGUgbmV3IHdyYXBwZXIgaW5zdGVhZC4gW0tpbSAxMS4wNy4yMDI2XVxuICAgICAgICA+IC5mZS1hbnN3ZXItcm93LXdyYXAgKyAuZmUtYW5zd2VyLXJvdy13cmFwLFxuICAgICAgICA+IC5mZS1hbnN3ZXItcm93LXdyYXAgKyAuZmUtYW5zd2VyLXJvdy0tYWRkaW5nIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgICAgfVxuICAgICAgICAvLyBncmFkZV9ub2RlL25wc19ub2RlIHJvd3MgKGFuZCwgc2luY2UgdGhlIGxpbmtzLWVkaXRvciByZXZpZXcgYmF0Y2gsXG4gICAgICAgIC8vIE1lZXJrZXV6ZSByb3dzIGluIHJhZGlvIG1vZGUpIGFyZSB3cmFwcGVkIGluIC5mZS1ncmFkZS1yb3cgKGNoZWNrYm94ICtcbiAgICAgICAgLy8gdGhlIGFuc3dlci1vcHRpb24pLCBzbyB0aGV5IGFyZSB0aGUgRElSRUNUIGNoaWxkIGluc3RlYWQg4oCUIHNhbWUgNHB4XG4gICAgICAgIC8vIHJoeXRobSwgaW5jbC4gdGhlIGdhcCBiZWZvcmUgdGhlIGFkZC1kYXRhcG9pbnQgb3ZlcmxheSByb3cgKE1lZXJrZXV6ZVxuICAgICAgICAvLyBpcyB0aGUgZmlyc3QgYnVsay1zZWxlY3RhYmxlIHR5cGUgdGhhdCBhbHNvIGhhcyBzaG93QWRkRGF0YXBvaW50KCkpLlxuICAgICAgICAvLyAuZmUtZ3JhZGUtcm93IGl0c2VsZiB3YXMgTk9UIHRvdWNoZWQgYnkgdGhlIFBoYXNlIDVCIHdyYXBwZXIgY2hhbmdlXG4gICAgICAgIC8vIChMaW5rLnZ1ZSdzIG5ldyBgLmZlLWFuc3dlci1yb3ctd3JhcGAgbmVzdHMgSU5TSURFIGAuZmUtZ3JhZGUtcm93YCxcbiAgICAgICAgLy8gbm90IGluc3RlYWQgb2YgaXQpLCBzbyB0aGlzIHJ1bGUga2VwdCBtYXRjaGluZyBhbmQgbmVlZHMgbm8gY2hhbmdlIOKAlFxuICAgICAgICAvLyBrZXB0IGhlcmUgb25seSBzbyB0aGUgNHB4IHJoeXRobSBzdGF5cyBkZWNsYXJlZCBuZXh0IHRvIGl0cyBzaWJsaW5nXG4gICAgICAgIC8vIHJ1bGUgYWJvdmUuIFtQaGFzZSAyIFNjb3JlL05QUyBvdmVyaGF1bCwgMjAyNi0wNy0xMV1cbiAgICAgICAgPiAuZmUtZ3JhZGUtcm93ICsgLmZlLWdyYWRlLXJvdyxcbiAgICAgICAgPiAuZmUtZ3JhZGUtcm93ICsgLmZlLWFuc3dlci1yb3ctLWFkZGluZyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgd2lkdGg6IDhweDtcblxuXG4gICAgfVxuXG4gICAgLyogVHJhY2sgKi9cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC8qIEhhbmRsZSAqL1xuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzNiMjU3YTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIH1cblxuICAgIC8qIEhhbmRsZSBvbiBob3ZlciAqL1xuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzNiMjU3YTtcbiAgICB9XG59XG5cbi5mZS1zZWxlY3RhYmxlLXdyYXBwZXIge1xuXG5cbiAgICAuZmUtc2VsZWN0YWJsZSB7XG5cbiAgICAgICAgYm9yZGVyOiAxcHggIzNmNDY5YyBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogLjYyNXJlbTtcbiAgICAgICAgcGFkZGluZzogMS4yNWVtO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbiAgICAgICAgZ2FwOiAxZW07XG5cbiAgICAgICAgLmZlLXNlbGVjdGFibGUtLWltYWdlIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwcHg7XG5cbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxZW07XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuZmUtc2VsZWN0YWJsZS0tdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6ICMzZjQ2OWM7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgICAgIH1cblxuICAgICAgICAuZmUtc2VsZWN0YWJsZS0tZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgY29sb3I6ICM2NjU4NGU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbWVkaXVtO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5mZS1zZWxlY3RhYmxlLWJpZy1pY29uIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgLmZlLXNlbGVjdGFibGUtLWltYWdlIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDFlbTtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgLmZlLXNlbGVjdGFibGUtYm9keSB7fVxuXG4gICAgfVxuXG4gICAgLmZlLXNlbGVjdGFibGUtaW5wdXQ6Y2hlY2tlZCsuZmUtc2VsZWN0YWJsZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlNmU4ZmY7XG4gICAgICAgIGJvcmRlcjogMnB4ICMzZjQ2OWMgc29saWQ7XG4gICAgfVxuXG4gICAgLmZlLXNlbGVjdGFibGUtaW5wdXQge1xuICAgICAgICBkaXNwbGF5OiBub25lXG4gICAgfVxufVxuXG4uZmUtaGVyby1idXR0b24ge1xuICAgIGJvcmRlcjogMXB4ICMzZjQ2OWMgc29saWQ7XG4gICAgYmFja2dyb3VuZDogI2U2ZThmZjtcblxuICAgIGJvcmRlci1yYWRpdXM6IC42MjVyZW07XG4gICAgcGFkZGluZzogMmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogIzNmNDY5YztcblxuICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXI6IDFweCAjM2Y0NjljIHNvbGlkO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZDNkOGZmO1xuICAgIH1cblxuICAgIC5tZGkge1xuICAgICAgICBmb250LXNpemU6IDJlbTtcbiAgICB9XG5cbn1cblxuLmZlLXByb3BlcnR5LWNvbG9yIHtcbiAgICAuZmUtY29sb3ItbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogLjVlbTtcblxuICAgICAgICAuZmUtY29sb3Itd3JhcHBlciB7XG5cblxuICAgICAgICAgICAgLmZlLWNvbG9yIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMzBweDtcblxuICAgICAgICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcblxuICAgICAgICAgICAgICAgIGJvcmRlcjogMnB4ICNmZmZmZmYgc29saWQ7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogI2ZmZmZmZiBzb2xpZDtcblxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5mZS1jb2xvci1zZWxlY3RvciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgICAgICY6Y2hlY2tlZCsuZmUtY29sb3Ige1xuICAgICAgICAgICAgICAgICAgICBvdXRsaW5lOiAjM2Q0NDlkIHNvbGlkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgIH1cblxuXG5cblxuXG4gICAgfVxufVxuXG4uZ2FwIHtcbiAgICAmLTEge1xuICAgICAgICBnYXA6IDFlbTtcbiAgICB9XG59XG5cbi5mZS1zZXR0aW5ncy10aXRsZSB7XG4gICAgY29sb3I6ICM0MTQ2OTY7XG4gICAgZm9udC1zaXplOiAxZW07XG5cbiAgICAuZmUtc2V0dGluZ3MtZGVzY3JpcHRpb24taWNvbiB7XG4gICAgICAgIGNvbG9yOiAjRkZGO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWU4ZTAxO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG59XG5cbi5mZS1zZXR0aW5ncy1zd2l0Y2gge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDYwcHg7XG4gICAgaGVpZ2h0OiAzNHB4O1xuXG4gICAgaW5wdXQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAmKy5zbGlkZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0MTQ2OTY7XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI2cHgpO1xuICAgICAgICAgICAgICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI2cHgpO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjZweCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2xpZGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U4ZThlODtcbiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiAuMXM7XG4gICAgICAgIHRyYW5zaXRpb246IC4xcztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMzRweDtcbiAgICB9XG5cbiAgICAuc2xpZGVyOmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgbGVmdDogM3B4O1xuICAgICAgICBib3R0b206IDNweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLjRzO1xuICAgICAgICB0cmFuc2l0aW9uOiAuNHM7XG4gICAgICAgIGJveC1zaGFkb3c6IDFweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgfVxuXG59XG5cbi5mZS1kZWJ1Zy1ob2xkZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBjb2xvcjogIzAwMDtcblxuICAgIHRvcDogMWVtO1xuICAgIHJpZ2h0OiAxZW07XG4gICAgei1pbmRleDogMTAwO1xuICAgIHpvb206ICRwYWdlLXJlc29sdXRpb247XG5cbiAgICAuZmUtZGVidWcge1xuXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFlbTtcblxuXG4gICAgICAgIC5mZS1kZWJ1Zy1jb250cm9scyB7XG5cbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjM2IyNTdhO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgY29sb3I6ICNGRkY7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAuNWVtIC41ZW0gMCAwO1xuXG5cbiAgICAgICAgICAgIC5mZS1kZWJ1Zy1jb250cm9sLW9wdGlvbiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogLjVlbSAxZW07XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAuZmUtZGVidWctaXRlbSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRkZGO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4ICM3MjcyOTkgc29saWQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAuMmVtIC41ZW07XG5cblxuICAgICAgICAgICAgJi0tdGl0bGUge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjMjAyNDRkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb250ZW50IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbWVkaXVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICM0MTQ5OWE7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMC40ZW0gMC44ZW07XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBlbTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IC43NWVtO1xuICAgICAgICAgICAgfVxuXG5cblxuICAgICAgICAgICAgJi0tY2hpbGQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNiNGJiZDg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMC4yZW0gMmVtO1xuXG5cblxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uZmUtY2FyZCAuZmUtY2FyZC10YWJzIHtcblxuICAgIGJhY2tncm91bmQ6ICM0MDQ5OWE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nOiAwIDFlbTtcblxuXG4gICAgLmZlLWNhcmQtdGFiIHtcbiAgICAgICAgY29sb3I6ICNGZmY7XG4gICAgICAgIGJhY2tncm91bmQ6ICM0MDQ5OWE7XG4gICAgICAgIHBhZGRpbmc6IDEuNWVtIDEuMjVlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIG1hcmdpbjogMCAxZW07XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMzNTNkODM7XG5cbiAgICAgICAgfVxuXG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI0ZGRjtcblxuICAgICAgICB9XG4gICAgfVxuXG59XG5cbi5mZS1kaXZpZGVyIHtcbiAgICAkcHJpbWFyeTogIzNmNDY5YztcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjb2xvcjogJHByaW1hcnk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAxLjJlbTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG5cbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgcGFkZGluZzogMXB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeTtcbiAgICAgICAgbWFyZ2luOiA1cHg7XG4gICAgfVxufVxuXG4vLyBSZXBsYWNlZCBieSB0aGUgcWRuYXByby1zbGlkZXIgY29tcG9uZW50IChzZWUgQWJzdHJhY3RSYW5nZS52dWUpLiBbS2ltIDExLjA3LjIwMjZdXG4uZmUtcmFuZ2UtY3VycmVudC12YWx1ZSB7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIC8vIFJlc2V0IHRoZSA8cD4gdGFnJ3MgaW5oZXJpdGVkIGJvb3RzdHJhcCBtYXJnaW4tYm90dG9tIHNvIGl0IGRvZXNuJ3QgYWRkXG4gICAgLy8gZXh0cmEgd2hpdGVzcGFjZSBiZWxvdyB0aGUgcm93IG9uIHRvcCBvZiAuZmUtcmFuZ2Utcm93J3Mgb3duIHBhZGRpbmcuXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAvLyBCcmFuZCBwdXJwbGUsIGhhcmRjb2RlZCBsaWtlIHRoZSBvdGhlciBvbmUtb2ZmIGNvbG9ycyBpbiB0aGlzIGZpbGUg4oCUIG5vXG4gICAgLy8gZ2xvYmFsICRwcmltYXJ5IHZhcmlhYmxlIGlzIGluIHNjb3BlIGhlcmUgKHNlZSAuZmUtZGl2aWRlciBhYm92ZSwgd2hvc2VcbiAgICAvLyAkcHJpbWFyeSBpcyBhIExPQ0FMIHZhcmlhYmxlIHNjb3BlZCB0byB0aGF0IG9uZSBibG9jayBvbmx5KS5cbiAgICBjb2xvcjogIzQwNDk5YTtcbn1cblxuLy8gQ29tcGFjdCB2ZXJ0aWNhbCByaHl0aG0gZm9yIHRoZSByYW5nZS9zbGlkZXIgc2V0dGluZyByb3cgKFBob3RvLnBocCdzXG4vLyBpbWFnZV9xdWFsaXR5KSwgdGlnaHRlbmVkIHBlciBLaW0ncyByZXZpZXcgMTEuMDcuMjAyNjogdGl0bGUvc3ViIHNhdCAxNnB4XG4vLyAoYm9vdHN0cmFwIG1iLTMpIGFib3ZlIHRoZSBzbGlkZXIgYW5kIHRoZSB3aG9sZSByb3cgY2FycmllZCBhIDI0cHhcbi8vIG1iLTQvbXQtNCBnYXAg4oCUIGJvdGggZmFyIGxvb3NlciB0aGFuIGV2ZXJ5IG90aGVyIHNldHRpbmcgcm93IGluIHRoaXMgbW9kYWwuXG4vLyBNYXRjaCAuZmUtc2V0LXJvdydzIDEycHggdG9wL2JvdHRvbSByaHl0aG0gKHNlZSBmdXJ0aGVyIGRvd24gdGhpcyBmaWxlKVxuLy8gaW5zdGVhZCBvZiB0aGUgb2xkIGJvb3RzdHJhcCB1dGlsaXR5IGNsYXNzZXMuXG4uZmUtbm8gLmZlLXJhbmdlLXJvdyB7XG4gICAgcGFkZGluZzogMTJweCAwO1xufVxuLmZlLW5vIC5mZS1yYW5nZS1ibG9jayAucWRuYXByby1tb2RhbC10b2dnbGUtdGV4dCB7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xufVxuXG4vLyBIYW5kb3ZlciB0cmlnZ2VyIGxpc3QuIFJlcGxhY2VkIHRoZSBoYW5kLXJvbGxlZCBgdGFibGUuZmUtaGFuZG92ZXItdHJpZ2dlci1saXN0YFxuLy8gKHJlbW92ZWQgMDQuMDguMjAyNiB0b2dldGhlciB3aXRoIGl0cyBtYXJrdXAsIHRoZSBjbGFzcyBoYWQgbm8gb3RoZXIgY29uc3VtZXIpOlxuLy8gdGhlIHJvd3MgYXJlIHFkbmFwcm8tbGlzdC1yb3cgbm93LCBzbyB0aGUgcm93IHN1cmZhY2UsIGhvdmVyLCBkaXZpZGVycyBhbmQgdGhlXG4vLyB0cmFpbGluZy1zbG90IGxheW91dCBhbGwgY29tZSBmcm9tIHRoZSBjb21wb25lbnQuIFdoYXQgaXMgbGVmdCBoZXJlIGlzIG9ubHkgdGhlXG4vLyBoZWFkZXIgcm93IGFib3ZlIHRoZSBsaXN0IGFuZCB0aGUgcmVjaXBpZW50cyBibG9jayBpbnNpZGUgdGhlIHRyYWlsaW5nIHNsb3QuXG4vLyBbS2ltIDA0LjA4LjIwMjZdXG4uZmUtaHQtaGVhZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDE2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcblxuICAgIC5mZS1jYXJkLXRpdGxlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIHFkbmFwcm8taWNvbiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgIH1cbn1cblxuLy8gWm9lay0gZW4gZmlsdGVyYmFsayBib3ZlbiBkZSByZWdlbGxpanN0IChmYXNlIEQsIDA1LjA4LjIwMjYpLiBWZXJzY2hpam50IHZhbmFmXG4vLyBhY2h0IHJlZ2VsczsgemllIEFic3RyYWN0SGFuZG92ZXJUcmlnZ2Vycy52dWUgdm9vciB3YWFyb20gZGllIGRyZW1wZWwgZXIgaXMuXG4vL1xuLy8gw4nDiU4gcmVnZWw6IHpvZWt2ZWxkLCBmaWx0ZXJrbm9wLCBvbnR2YW5nZXJrZXV6ZSAoS2ltIDA1LjA4LjIwMjYsIG5hIGRlIGVlcnN0ZVxuLy8gdmVyc2llIG1ldCBlZW4gc2VnbWVudGJhbGsgZXJvbmRlcjogXCJudSBoZWJiZW4gd2UgMiByZWdlbHMgYWFuIHJ1aW10ZSBpbiBiZXNsYWcsXG4vLyBpayB3aWwgYmVpZGUgZmlsdGVyIG9wdGllcyBnZXdvb24gbmFhc3QgZGUgc2VhcmNoIGhlYmJlbiBzdGFhblwiKS4gQWxsZSBkcmllIHppam5cbi8vIDQwcHggaG9vZy4gRGUgdGVsbGVycmVnZWwgZXJvbmRlciBiZXN0YWF0IGFsbGVlbiB0aWpkZW5zIGZpbHRlcmVuLlxuLmZlLWh0LXRvb2xiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xufVxuXG4uZmUtaHQtc2VhcmNoIHtcbiAgICAvLyBIZXQgem9la3ZlbGQgZWV0IGRlIHJlc3QgdmFuIGRlIHJlZ2VsOyBkZSB0d2VlIGZpbHRlcnMgaG91ZGVuIGh1biBlaWdlbiBtYWF0LlxuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLmZlLWh0LWZpbHRlci1idG4sXG4uZmUtaHQtYWRkLWJ0biB7XG4gICAgZmxleDogMCAwIGF1dG87XG59XG5cbi5mZS1odC1yZWNpcC1maWx0ZXIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIC8vIEdlbm9lZyB2b29yIGxhbmdlIG5hbWVuLCBtYWFyIG5pZXQgem8gYnJlZWQgZGF0IGVyIHZhbiBoZXQgem9la3ZlbGQgbmlldHNcbiAgICAvLyBvdmVyYmxpamZ0LlxuICAgIHdpZHRoOiAyMjBweDtcbn1cblxuLmZlLWh0LXRvb2xiYXItbWV0YSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDhweDtcbiAgICAvLyBUcmVrdCBkZSByZWdlbCBvcCB0ZWdlbiBkZSBiYWxrOiBoaWogaG9vcnQgYmlqIGhldCBmaWx0ZXIgZXJib3ZlbiwgbmlldCBiaWogZGVcbiAgICAvLyBsaWpzdCBlcm9uZGVyLlxuICAgIG1hcmdpbjogLTRweCAwIDhweDtcbn1cblxuLmZlLWh0LWNvdW50IHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICM2YjcxOTI7XG59XG5cbi5mZS1odC10cmFpbGluZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbn1cblxuLmZlLWh0LXJlY2lwaWVudHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAvLyBSaWdodC1hbGlnbmVkOiB0aGUgdHJhaWxpbmcgc2xvdCBzaXRzIGFnYWluc3QgdGhlIHJvdydzIHJpZ2h0IGVkZ2UgaW4gdGhlXG4gICAgLy8gYHdyYXBgIHZhcmlhbnQsIHNvIGxlZnQtYWxpZ25pbmcgdGhlIHR3byBsaW5lcyB3b3VsZCBsZWF2ZSB0aGVtIGZsb2F0aW5nLlxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBnYXA6IDJweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMzU7XG59XG5cbi5mZS1odC1yZWNpcCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgZ2FwOiA2cHg7XG4gICAgLy8gQSB0cmlnZ2VyIGNhbiBhZGRyZXNzIHNldmVyYWwgcGVvcGxlOyBjYXAgdGhlIGxpbmUgcmF0aGVyIHRoYW4gbGV0IGl0IHB1c2hcbiAgICAvLyB0aGUgcm93IHdpZGVyIHRoYW4gdGhlIHBhbmVsLlxuICAgIG1heC13aWR0aDogMjIwcHg7XG59XG5cbi5mZS1odC1yZWNpcC1rZXkge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzkwOTdiODtcbn1cblxuLmZlLWh0LXJlY2lwLW5hbWVzIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGNvbG9yOiAjMWExZjRkO1xufVxuXG4uZmUtaHQtcmVjaXAtLWNjIC5mZS1odC1yZWNpcC1uYW1lcyB7XG4gICAgY29sb3I6ICM2YjcxOTI7XG59XG5cbi5mZS1odC1yZWNpcC0tbm9uZSB7XG4gICAgY29sb3I6ICM5MDk3Yjg7XG59XG5cbi8vIOKUgOKUgCBSZWdlbGxpanN0IHZhbiBkZSBMT0dJQ0Etbm9kZSAoMDUuMDguMjAyNikg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBaZWxmZGUgb3Bib3V3IGFscyBkZSBvdmVyZHJhY2h0LWxpanN0IGhpZXJib3ZlbiAoYC5mZS1odC0qYCk6IGRlIHJpamVuIHppam5cbi8vIHFkbmFwcm8tbGlzdC1yb3csIGR1cyBkZSByaWp2b3JtLCBkZSBob3ZlciwgZGUgc2NoZWlkaW5nc2xpam5lbiBlbiBkZVxuLy8gdHJhaWxpbmctbGF5b3V0IGtvbWVuIHZhbiBoZXQgY29tcG9uZW50LiBXYXQgaGllciBzdGFhdCBpcyBhbGxlZW4gZGUga29wLXJlZ2VsLFxuLy8gZGUgc3BlbHJlZ2VsIGVyYm92ZW4gZW4gaGV0IGJlc3RlbW1pbmdzYmxvayBpbiBkZSB0cmFpbGluZy1zbG90LlxuLy9cbi8vIEVpZ2VuIGAuZmUtbHItKmAtcHJlZml4IGVuIG5pZXQgbWVlbGlmdGVuIG9wIGAuZmUtaHQtKmA6IGRlIHR3ZWUgbGlqc3RlbiBMSUpLRU5cbi8vIG9wIGVsa2FhciBtYWFyIHplZ2dlbiBpZXRzIGFuZGVycyAoQUFOL0NDIHRlZ2VuIHBhZCArIGJlc3RlbW1pbmcpLCBlbiDDqcOpblxuLy8gZ2VkZWVsZGUgcHJlZml4IHpvdSBiZXRla2VuZW4gZGF0IGVlbiB3aWp6aWdpbmcgYWFuIGRlIGVuZSBsaWpzdCBkZSBhbmRlcmVcbi8vIHN0aWxsZXRqZXMgbWVlbmVlbXQuIERlIGtvcHJlZ2VsIGlzIHfDqWwgZ2VkZWVsZCAoYC5mZS1odC1oZWFkYCkg4oCUIGRhdCBpc1xuLy8gbGV0dGVybGlqayBkZXplbGZkZSByaWogbWV0IGRlemVsZmRlIGtub3AuXG4uZmUtbHItaGludCB7XG4gICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICM2YjcxOTI7XG59XG5cbi5mZS1sci10cmFpbGluZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbn1cblxuLy8gRGUgdGVydWd2YWwgaGVlZnQgZ2VlbiB2ZXJ3aWpkZXJrbm9wLCBkdXMgemlqbiBiZXN0ZW1taW5nIHNjaG9vZiAzNHB4IHZlcmRlciBuYWFyXG4vLyByZWNodHMgZGFuIGRpZSB2YW4gZGUgcmVnZWxzIGVyYm92ZW4gZW4gc3RvbmQgZGUga29sb20gbmlldCBtZWVyIG9wIMOpw6luIGxpam4gKGdlbWV0ZW5cbi8vIGluIGVlbiBoYXJuYXM6IHJlY2h0ZXJyYW5kIDcyOCB0ZWdlbiA2OTQpLiBEaWUgMzRweCBpcyBkZSBrbm9wIHBsdXMgZGUgdHVzc2VucnVpbXRlXG4vLyB2YW4gZGV6ZSByaWo6IHFkbmFwcm8taWNvbi1idG4gc2l6ZT1cInNtYWxsXCIgaXMgMjRweCBicmVlZCBlbiBkZSBgZ2FwYCBoaWVyYm92ZW4gaXNcbi8vIDEwcHguIEJld3VzdCBlZW4gdWl0c3BhcmluZyBlbiBnZWVuIG9uemljaHRiYXJlIG5lcGtub3A6IGVlbiBlbGVtZW50IGRhdCBlciBhbGxlZW5cbi8vIHN0YWF0IG9tIHJ1aW10ZSB0ZSB2dWxsZW4gbGVlc3Qgdm9vciBlZW4gc2NoZXJtbGV6ZXIgYWxzIGVlbiBrbm9wIGRpZSBuaWV0cyBkb2V0LlxuLmZlLWxyLXRyYWlsaW5nLS1uby1hY3Rpb24ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDM0cHg7XG59XG5cbi8vIFBhZG51bW1lciBtZXQgZGUgYmVzdGVtbWluZyBlcm9uZGVyIChTQ09QRSBiZXNsaXNzaW5nIDMpLCBvcCBkZSBwbGVrIHdhYXIgZGVcbi8vIG92ZXJkcmFjaHQtbGlqc3QgQUFOL0NDIGxhYXQgemllbi4gUmVjaHRzIHVpdGdlbGlqbmQ6IGRlIHRyYWlsaW5nLXNsb3Qgc3RhYXQgaW5cbi8vIGRlIGB3cmFwYC12YXJpYW50IHRlZ2VuIGRlIHJlY2h0ZXJyYW5kLCBkdXMgbGlua3MgdWl0bGlqbmVuIHpvdSBkZSB0d2VlIHJlZ2Vsc1xuLy8gbGF0ZW4gendldmVuLlxuLmZlLWxyLWV4aXQtY2VsbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBnYXA6IDJweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMzU7XG59XG5cbi5mZS1sci1wYXRoIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMWExZjRkO1xufVxuXG4uZmUtbHItZGVzdCB7XG4gICAgbWF4LXdpZHRoOiAyMjBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgY29sb3I6ICM2YjcxOTI7XG59XG5cbi8vIFwibm9nIG5pZXQgdmVyYm9uZGVuXCIgaXMgZ2VlbiBiZXN0ZW1taW5nIG1hYXIgaGV0IG9udGJyZWtlbiBlcnZhbjsgbGljaHRlciwgZW5cbi8vIGJld3VzdCBnZWVuIHJvb2Qg4oCUIGVlbiBwYWQgZGF0IGplIG5vZyBuaWV0IGdldHJva2tlbiBoZWJ0IGlzIGVlbiBub3JtYWxlXG4vLyB0dXNzZW5zdGFuZCB0aWpkZW5zIGhldCBib3V3ZW4uXG4uZmUtbHItZGVzdC0tbm9uZSB7XG4gICAgY29sb3I6ICM5MDk3Yjg7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vLyBEZSBEQU4tcmlqIGluIGhldCByZWdlbHZlbnN0ZXI6IGFsbGVlbiB0ZWtzdCwgZ2VlbiBrZXV6ZXZlbGQgKGJlc2xpc3NpbmcgNSkuXG4vLyBEZXplbGZkZSBrb2xvbWJyZWVkdGUgYWxzIGRlIHZlbGRrb2xvbW1lbiBlcmJvdmVuLCB6b2RhdCBkZSByYWlsIMOpw6luIGJsb2sgYmxpamZ0LlxuLmZlLWxyLWV4aXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG4vLyBCZXd1c3QgRVhBQ1QgZGUgbWFhdCB2YW4gaGV0IGxhYmVsIHZhbiBlZW4gdmVsZCBlcm5hYXN0XG4vLyAoYC5xZG5hcHJvLWlucHV0IC5pbnB1dC1oZWFkZXIgLmlucHV0LWxhYmVsYDogZ2XDq3JmZGUgZ3Jvb3R0ZSwgZ2V3aWNodCA1MDAsIDRweFxuLy8gZXJvbmRlcikuIE1ldCBlZW4gZWlnZW4ga2xlaW5lciBsYWJlbCB3YXMgZGUgREFOLXJpaiA1OHB4IGhvb2cgdGVnZW4gNjhweCB2b29yIGVlblxuLy8gdmVsZHJpaiwgZW4gZGFuIHN0YWF0IGRlIHJhaWwgbmlldCBtZWVyIGluIGhldHplbGZkZSByaXRtZSAoZ2VtZXRlbiBpbiBlZW4gaGFybmFzKS5cbi8vIFwiR2FhdCBuYWFyXCIgSVMgZWVuIHZlbGRrb3AsIGFsbGVlbiB6b25kZXIgdmVsZCBlcmFjaHRlci5cbi5mZS1sci1leGl0LWxhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgMCA0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAvLyAxLjUgaXMgZGUgcmVnZWxob29ndGUgZGllIGhldCBsYWJlbCB2YW4gcWRuYXByby1pbnB1dCB2YW4gZGUgcGFnaW5hIGVyZnQ7IGV4cGxpY2lldFxuICAgIC8vIGhpZXIsIHdhbnQgem9uZGVyIGRpZSByZWdlbCBpcyBkaXQgbGFiZWwgMjJweCBob29nIHRlZ2VuIDI4cHggdm9vciBlZW4gdmVsZGtvcCBlbiBpc1xuICAgIC8vIGRlIERBTi1yaWogNnB4IGtvcnRlciBkYW4gZWVuIHZlbGRyaWogKGdlbWV0ZW46IDYyIHRlZ2VuIDY4KS5cbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGNvbG9yOiAjMGIwYjBkO1xufVxuXG4uZmUtbHItZXhpdC12YWx1ZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgZ2FwOiA2cHg7XG4gICAgLy8gR2VsaWprIGFhbiBkZSB2ZWxkaG9vZ3RlIGVybmFhc3QgKHFkbmFwcm8tKiBzaXplPVwic21hbGxcIiBpcyA0MHB4KSwgem9kYXQgZGVcbiAgICAvLyBwaWwgdmFuIGRlIHJhaWwgb3AgZGV6ZWxmZGUgbGlqbiBibGlqZnQgc3RhYW4gYWxzIGJpaiBkZSByaWplbiBlcmJvdmVuLlxuICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICMxYTFmNGQ7XG59XG5cbi5mZS1sci1leGl0LWFycm93IHtcbiAgICBjb2xvcjogIzkwOTdiODtcbn1cblxuLmZlLWxyLWV4aXQtdmFsdWUgZW0ge1xuICAgIGNvbG9yOiAjOTA5N2I4O1xufVxuXG5cblxuXG5cbi5mZS10cmlnZ2VyLWVkaXRvci13cmFwcGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjJmMmYyO1xuICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgcGFkZGluZy10b3A6IDFyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgbWluLXdpZHRoOiA5MDBweDtcblxuICAgIG1heC1oZWlnaHQ6IDYwdmg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuXG4gICAgLy8gQm90aCBjaXJjbGVzIGFyZSBmbGV4IGl0ZW1zLCBzbyB0aGV5IE1VU1QgcmVmdXNlIHRvIHNocmluazogYSBmbGV4IGl0ZW1cbiAgICAvLyBkZWZhdWx0cyB0byBmbGV4LXNocmluayAxLCBhbmQgYSBzcXVlZXplZCAyNXB4IGNpcmNsZSBiZWNvbWVzIGEgMTkuNnB4LXdpZGVcbiAgICAvLyBvdmFsIHdoaWxlIGtlZXBpbmcgaXRzIDI1cHggaGVpZ2h0LiBUaGF0IGlzIGV4YWN0bHkgd2hhdCBoYXBwZW5lZCB0byB0aGVcbiAgICAvLyByZW1vdmUgYnV0dG9uIHdoZW4gaXQgbW92ZWQgZnJvbSBpbnNpZGUgdGhlIHZhbHVlIGNvbHVtbiB0byByb3cgbGV2ZWxcbiAgICAvLyAobWVhc3VyZWQgYXQgdGhlIDkwMHB4IG1pbi13aWR0aCBvZiB0aGlzIHdyYXBwZXIpLiBbS2ltIDA0LjA4LjIwMjZdXG4gICAgLy8gLmZlLXJjLSogYXJlIHRoZSBTQU1FIHR3byBjaXJjbGVzIGFzIHFkbmFwcm8taWNvbi1idG4gKFJ1bGVDaGFpbi9SdWxlUm93LFxuICAgIC8vIDA0LjA4LjIwMjYpOyAuYnRuLSotdHJpZ2dlciBhcmUgdGhlIGhhbmQtcm9sbGVkIG9uZXMgRmxvd0xvZ2ljT3B0aW9ucy52dWVcbiAgICAvLyBzdGlsbCBjYXJyaWVzLiBCb3RoIG5lZWQgdGhpcyB1bnRpbCB0aGF0IG1vZGFsIGlzIGNvbnZlcnRlZCB0b28uXG4gICAgLmJ0bi1hZGQtdHJpZ2dlcixcbiAgICAuYnRuLXJlbW92ZS10cmlnZ2VyLFxuICAgIC5mZS1yYy1hZGQsXG4gICAgLmZlLXJjLXJlbW92ZSB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAvLyBBYm92ZSB0aGUgZGFzaGVkIGNvbm5lY3RvciBsaW5lIHRoZSByYWlsIGRyYXdzIGJlaGluZCB0aGUgcm93LlxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgIH1cblxuXG5cbiAgICAuYnRuLWFkZC10cmlnZ2VyIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2NiY2NjYjtcbiAgICAgICAgY29sb3I6ICNGRkY7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICB3aWR0aDogMzVweDtcbiAgICAgICAgaGVpZ2h0OiAzNXB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuXG4gICAgICAgICY6aG92ZXIge1xuXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjYmRiZGJkO1xuXG5cbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICM5Nzk3OTc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYnRuLXJlbW92ZS10cmlnZ2VyIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2NkNWU2ODtcbiAgICAgICAgY29sb3I6ICNGRkY7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgd2lkdGg6IDI1cHg7XG4gICAgICAgIGhlaWdodDogMjVweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAxMDtcblxuICAgICAgICAmOmhvdmVyIHtcblxuICAgICAgICAgICAgYmFja2dyb3VuZDogIzk5NDU0ZDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICM4MDNhNDE7XG4gICAgICAgIH1cbiAgICB9XG5cblxuXG4gICAgLnRyaWdnZXItY29uZGl0aW9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAxcmVtO1xuXG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG5cblxuICAgICAgICAudHJpZ2dlci1jb2x1bW4ge1xuICAgICAgICAgICAgZmxleDogMSAxIDUwJTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMjAwcHg7XG5cbiAgICAgICAgICAgICYuY29sdW1uLWZsZXgge1xuXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBnYXA6IDFyZW07XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXG4gICAgICAgICAgICB9XG5cblxuICAgICAgICB9XG5cbiAgICAgICAgLnNlcGFyYXRvciB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDJweCBkYXNoZWQgI2QxZDRlNlxuICAgICAgICB9XG5cbiAgICAgICAgLnRyaWdnZXItY29uZGl0aW9uLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEyMHB4O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgICAgIGhlaWdodDogMjAwJTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogMnB4IGRhc2hlZCAjZDFkNGU2O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5sYXN0LXRyaWdnZXIge1xuICAgICAgICAgICAgLnRyaWdnZXItY29uZGl0aW9uLXdyYXBwZXI6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi50cmlnZ2VyLXJlbW92YWJsZSB7XG4gICAgICAgICAgICAuYnRuLXJlbW92ZS10cmlnZ2VyLFxuICAgICAgICAgICAgLmZlLXJjLXJlbW92ZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZWNlY2VjO1xuXG4gICAgICAgICAgICAgICAgLmJ0bi1yZW1vdmUtdHJpZ2dlciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gcWRuYXByby1pY29uLWJ0biBpcyBpbmxpbmUtZmxleCBieSBkZWZhdWx0OyBmb3JjaW5nIGBmbGV4YFxuICAgICAgICAgICAgICAgIC8vIGhlcmUgd291bGQgc3RyZXRjaCBpdCB0byB0aGUgcm93IGhlaWdodC5cbiAgICAgICAgICAgICAgICAuZmUtcmMtcmVtb3ZlIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29uZGl0aW9uLXNlbGVjdCB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgICAgIC52c19fZHJvcGRvd24tdG9nZ2xlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IC43NXJlbSAxLjMwcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzQzNDc5NjtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC52c19fc2VsZWN0ZWQtb3B0aW9ucyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuXG5cbiAgICAgICAgfVxuXG4gICAgICAgIC52c19fc2VsZWN0ZWQge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAjRkZGO1xuICAgICAgICB9XG5cbiAgICAgICAgJi52cy0tb3BlbiAudnNfX3NlbGVjdGVkIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC52c19fYWN0aW9ucyBzdmcge1xuICAgICAgICAgICAgZmlsbDogI0ZGRjtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgLmNvbmRpdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IC43NXJlbSAxLjMwcmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjNDM0Nzk2O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmLmNvbmRpdGlvbi1zZWNvbmRhcnkge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2I0YjRiNDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZTZlOGZkO1xuICAgICAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyOiAycHggIzQzNDc5NiBzb2xpZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuY29uZGl0aW9uLXNlY29uZGFyeTo6YmVmb3JlLFxuICAgICAgICAmLmNvbmRpdGlvbi1zZWNvbmRhcnk6OmFmdGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMnB4ICNiNGI0YjQgc29saWQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLmNvbmRpdGlvbi1jb25uZWN0aW9uLXRvcDo6YmVmb3JlLFxuICAgICAgICAmLmNvbmRpdGlvbi1jb25uZWN0aW9uLXk6OmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHRvcDogLTVweDtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuY29uZGl0aW9uLWNvbm5lY3Rpb24tYm90dG9tOjphZnRlcixcbiAgICAgICAgJi5jb25kaXRpb24tY29ubmVjdGlvbi15OjphZnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGJvdHRvbTogLTVweDtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4vLyDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbi8vIFJlZ2VsLWVkaXRvciAob3ZlcmRyYWNodC1ub2RlKSDigJQgb3ZlcmhhdWwgZmFzZSAxLCAwNC4wOC4yMDI2XG4vLyDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbi8vIEFsbGVlbiBkZSBCSU5ORU5LQU5UIHZhbiBIYW5kb3ZlclRyaWdnZXIudnVlLiBEZSByYWlsIHplbGYgKHBpbGxlbixcbi8vIHN0aXBwZWxsaWpuZW4sIHBsdXMvbWluLWNpcmtlbHMpIGJsaWpmdCBgLmZlLXRyaWdnZXItZWRpdG9yLXdyYXBwZXJgXG4vLyBoaWVyYm92ZW4sIGdlZGVlbGQgbWV0IGRlIGxvZ2ljYS1ub2RlLiBEaXQgYmxvayByZWdlbHQgdWl0c2x1aXRlbmQgZGVcbi8vIGluZGVsaW5nIHZhbiBkZSB2ZWxkZW4gZXJpbiwgcGx1cyBoZXQgbmFhbXZlbGQgZXJvbmRlci5cbi8vXG4vLyBEZSB2ZWxkZW4gemlqbiBxZG5hcHJvLXNlbGVjdCAvIHFkbmFwcm8taW5wdXQuIERpZSB6ZXR0ZW4gemVsZlxuLy8gYGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogMTAwJWAgb3AgaHVuIGhvc3QsIGR1cyBpbiBlZW4gZmxleHJpaiBtb2V0IGRlXG4vLyBicmVlZHRlIHZpYSBmbGV4LWJhc2lzIGdlcmVnZWxkIHdvcmRlbiDigJQgd2lkdGggYWxsZWVuIGRvZXQgbmlldHMuXG5cbi8vIOKUgOKUgCBEZSBzY2hpbDogcWRuYXByby1tb2RhbCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFR3ZWUgZGluZ2VuIGRpZSBkaXQgdmVuc3RlciB2YW4gZGUgc3RhbmRhYXJkLW1vZGFsIGFmd2lqa3QsIGJlaWRlIHZvbGdlbnMgZWVuXG4vLyBwYXRyb29uIGRhdCBhbCBpbiBfbW9kYWwuc2NzcyBzdGFhdCBlbiBkYXQgS2ltIGRhYXIgZWVyZGVyIGhlZWZ0IGdvZWRnZWtldXJkOlxuLy9cbi8vIDEuIFNUQVBFTElORy4gSGV0IG5vZGUtbW9kYWwgZXJvbmRlciBpcyBlZW4gcWRuYXByby13aXphcmQtbW9kYWwgb3Agei1pbmRleFxuLy8gICAgOTAwMCBlbiBgLnFkbmFwcm8tbW9kYWxgIHN0YWF0IMOzw7NrIG9wIDkwMDAuIEJpaiBnZWxpamtzcGVsIGJlc2xpc3QgZGVcbi8vICAgIERPTS12b2xnb3JkZSwgZW4gZGFhciB3aWwgamUgcm91dGVyaW5nIG5pZXQgdmFuIGxhdGVuIGFmaGFuZ2VuOiBkYW4gbGlndCBkZVxuLy8gICAgZWRpdG9yIG9uemljaHRiYWFyIG9uZGVyIGhldCBub2RlLW1vZGFsIGVuIGlzIGhpaiB0b2NoIGFhbmtsaWtiYWFyLiA5MTAwIGlzXG4vLyAgICBkZXplbGZkZSB0aWVyIGRpZSBkZSBvdWRlIGxlZ2FjeS1zY2hpbCBoaWVyIGdlYnJ1aWt0ZSAoYC1zdGFja2VkYCksIG9uZGVyIGRlXG4vLyAgICBkcm9wZG93bmxhYWcgKDkyMDApIGVuIG9uZGVyIGhldCBjb25maXJtLXZlbnN0ZXIgKDkzMDAsIGAuZmUtY29uZmlybS1tb2RhbGApXG4vLyAgICBkYXQgaW4gZmFzZSAyIG92ZXIgZGV6ZSBlZGl0b3IgaGVlbiBtb2V0IGt1bm5lbi5cbi8vIDIuIEhPT0dURS4gYHNpemU9XCJ4eGxhcmdlXCJgIGR3aW5ndCBgaGVpZ2h0OiBtaW4oODAwcHgsIDEwMHZoIC0gNDhweClgIGFmLCBkdXNcbi8vICAgIGVlbiByZWdlbCBtZXQgw6nDqW4gdm9vcndhYXJkZSB6b3UgaW4gZWVuIHZlbnN0ZXIgdmFuIDgwMHB4IGhvb2cgc3RhYW4gbWV0XG4vLyAgICBkcmlla3dhcnQgbGVlZ3RlLiBaZWxmZGUgb3Bsb3NzaW5nIGFscyBgLmZlLWltcG9ydC1tb2RhbGAgKEtpbSAyMi4wNi4yMDI2KTpcbi8vICAgIGhvb2d0ZSBuYWFyIGRlIGluaG91ZCwgbWV0IDgwMHB4IGFscyBwbGFmb25kIOKAlCBkYWFybmEgc2Nyb2xsdCBkZSBib2R5LCBkaWVcbi8vICAgIHZhbiB4eGxhcmdlIGFsIGBvdmVyZmxvdy15OiBhdXRvYCBtZWVrcmlqZ3QuXG4ucWRuYXByby1tb2RhbC5mZS1ydWxlLW1vZGFsIHtcbiAgICB6LWluZGV4OiA5MTAwO1xufVxuXG4ucWRuYXByby1tb2RhbC5mZS1ydWxlLW1vZGFsLm1vZGFsLXNpemUteHhsYXJnZSAubW9kYWwtZGlhbG9nIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LWhlaWdodDogbWluKDgwMHB4LCBjYWxjKDEwMHZoIC0gNDhweCkpO1xufVxuXG4ucWRuYXByby1tb2RhbC5mZS1ydWxlLW1vZGFsLm1vZGFsLXNpemUteHhsYXJnZSAubW9kYWwtd2luZG93IHtcbiAgICBoZWlnaHQ6IGF1dG87XG59XG5cbi5mZS1yZSB7XG4gICAgLy8gSGV0IG5hYW12ZWxkIGhhbmd0IG9uZGVyIGRlIHJhaWw7IHJ1aW10ZSBlcnR1c3NlbiB6aXQgb3AgLmZlLXJlLW5hbWUuXG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vIEhldCBsaW5rZXJwYW5lZWwuIERlIGlsbHVzdHJhdGllIHN0YWF0IG9uZGVyYWFuIHpvZGF0IGVyIGJvdmVuaW4gcnVpbXRlXG4vLyBvdmVyYmxpamZ0IHZvb3IgZGUgbWVlbGV6ZW5kZSB6aW4gKGZhc2UgMykuXG4uZmUtcmUtaW5mbyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAwO1xufVxuXG4vLyBIZXQgcGFuZWVsIGlzIDIwMHB4IChgaW5mby13aWR0aGApLCBkdXMgZGUgaWxsdXN0cmF0aWUga3JpbXB0IG1lZS4gYG1hcmdpbi10b3A6XG4vLyBhdXRvYCBvcCBkZSBpbGx1c3RyYXRpZS13cmFwcGVyIGR1d3QgaGVtIG5hYXIgZGUgb25kZXJrYW50LCB6b2RhdCBkZSBiZWdlbGVpZGVuZGVcbi8vIHRla3N0IGJvdmVuYWFuIHN0YWF0IGVuIGRlIG1lZWxlemVuZGUgemluIHZhbiBmYXNlIDMgZGFhciBub2cgb25kZXIgcGFzdC5cbi5mZS1yZS1pbmZvIC5xZG5hcHJvLW1vZGFsLWluZm8taWxsdXN0cmF0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xufVxuXG4uZmUtcmUtaW5mbyBxZG5hcHJvLWlsbHVzdHJhdGlvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4vLyBEZSBtZWVsZXplbmRlIHppbiAoZmFzZSAzKS4gSGV0IHBhbmVlbCBpcyAyMDBweCBicmVlZCwgZHVzIGRpdCBpcyBlZW4gc21hbGxlXG4vLyBrb2xvbSBtZXQgbG9wZW5kZSB0ZWtzdDogYG92ZXJmbG93LXdyYXA6IGFueXdoZXJlYCBpcyBlciB2b29yIGRlIHdhYXJkZW4gZGllIHVpdFxuLy8gZGUgZGF0YSBrb21lbiAoZWVuIGxvY2F0aWVuYWFtIG9mIGVlbiB2cmFhZ2xhYmVsIHZhbiDDqcOpbiBsYW5nIHdvb3JkIGthbiBoaWVyIG5pZXRcbi8vIGFmZ2Vicm9rZW4gd29yZGVuIGVuIHpvdSBhbmRlcnMgdWl0IGhldCBwYW5lZWwgbG9wZW4pLCBlbiBgaHlwaGVuczogYXV0b2AgbGFhdCBkZVxuLy8gYnJvd3NlciBub3JtYWxlIHdvb3JkZW4gbmV0amVzIGFmYnJla2VuIGluIHBsYWF0cyB2YW4gZXIgZ2F0ZW4gaW4gZGUgcmVnZWwgdGVcbi8vIGxhdGVuIHZhbGxlbi5cbi5mZS1yZS1zZW50ZW5jZSB7XG4gICAgbWFyZ2luLXRvcDogLjc1cmVtO1xuICAgIHBhZGRpbmctdG9wOiAuNzVyZW07XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMTcsIDI0LCAzOSwgLjA4KTtcbn1cblxuLmZlLXJlLXNlbnRlbmNlLXRpdGxlIHtcbiAgICBtYXJnaW46IDAgMCAuMjVyZW07XG4gICAgZm9udC1zaXplOiAuNjg3NXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDRlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjNmI3MjgwO1xufVxuXG4uZmUtcmUtc2VudGVuY2UtYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogLjgxMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDU7XG4gICAgY29sb3I6ICMzNzQxNTE7XG4gICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gICAgaHlwaGVuczogYXV0bztcbn1cblxuLy8gRGUgYOKApmAgb3AgZGUgcGxlayB2YW4gaWV0cyBkYXQgbm9nIG5pZXQgaXMgaW5nZXZ1bGQuIEdlZGVtcHQgZW4gTklFVCByb29kOiBlciBpc1xuLy8gbm9nIG5pZXRzIGZvdXQsIGVyIGlzIGFsbGVlbiBub2cgbmlldHMgZ2Vrb3plbi4gRGUgbWVsZGluZ3NiYWxrICguZmUtcmUtZXJyb3IpIGlzXG4vLyBkZSBwbGVrIHZvb3Igd2F0IHfDqWwgZm91dCBpcy5cbi5mZS1yZS1zZW50ZW5jZS10b2RvIHtcbiAgICBjb2xvcjogIzljYTNhZjtcbn1cblxuLmZlLXJlLXJhaWwge1xuICAgIC8vIERlIDkwMHB4IG1pbi13aWR0aCB2YW4gZGUgd3JhcHBlciB3YXMgZXIgdm9vciBkZSBvdWRlLCBuaWV0LWtyaW1wZW5kZVxuICAgIC8vIGJvb3RzdHJhcC12ZWxkZW4uIERlIGNvbXBvbmVudGVuIGtyaW1wZW4gd8OpbCBuZXRqZXMsIGVuIGAudHJpZ2dlci1jb2x1bW5gXG4gICAgLy8gYnJlbmd0IHppam4gZWlnZW4gYG1pbi13aWR0aDogMjAwcHhgIG1lZSDigJQgZGF0IGlzIG51IGRlIG9uZGVyZ3JlbnMuIFpvbmRlclxuICAgIC8vIGRpdCBsb29wdCBkZSByYWlsIG9wIGVlbiBzbWFsIHNjaGVybSBob3Jpem9udGFhbCB1aXQgZGUgbW9kYWwsIHdhbnQgZGVcbiAgICAvLyB3cmFwcGVyIHNjcm9sbHQgYWxsZWVuIHZlcnRpY2FhbC5cbiAgICBtaW4td2lkdGg6IDA7XG5cbiAgICAvLyDDicOJTiBzY3JvbGxlci4gRGUgd3JhcHBlciBicmFjaHQgemlqbiBlaWdlbiBgbWF4LWhlaWdodDogNjB2aDsgb3ZlcmZsb3cteTpcbiAgICAvLyBhdXRvYCBtZWU7IGJpbm5lbiBxZG5hcHJvLW1vZGFsIHNjcm9sbHQgZGUgYm9keSBhbCwgZW4gdHdlZSBnZW5lc3RlXG4gICAgLy8gc2Nyb2xsZ2ViaWVkZW4gaW4gw6nDqW4gdmVuc3RlciBpcyBwcmVjaWVzIHdhYXJvbSBgLWZsb3ctbG9naWNgIGhpZXJib3ZlblxuICAgIC8vIGRlemVsZmRlIHJlc2V0IGRvZXQuXG4gICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuXG4gICAgLy8gQ09NUEFDVEVSIChLaW0gMDQuMDguMjAyNiwgbmEgZGUgZWVyc3RlIGxpdmUgYmxpayk6IFwiZGUgaGVsZSByYWlsIGlzIFZFRUwgdGVcbiAgICAvLyBncm9vdCwgb253aWpzIHZlZWwgcGFkZGluZywgaGV0IHN0YWF0IHdlbCA2MHB4IHZhbiBkZSByYW5kXCIuIEtsb3B0LCBlbiBkZVxuICAgIC8vIG9vcnphYWsgaXMgdGUgaGVybGVpZGVuOiBkZSByYWlsLW1hdGVuIHppam4gZ2V0ZWtlbmQgaW4gZGUgb3VkZSBsZWdhY3ktc2NoaWwsXG4gICAgLy8gZGllIGB6b29tOiA4MCVgIG9wIGAuZmxvd2VkaXRvcl9tb2RhbGAgaGFkIHN0YWFuLiBBbGxlcyB3YXQgZGFhciAxLjFyZW0gd2FzLFxuICAgIC8vIGt3YW0gb3AgaGV0IHNjaGVybSBhbHMgMC44OHJlbS4gSW4gcWRuYXByby1tb2RhbCBpcyBkaWUgem9vbSB3ZWcsIGR1c1xuICAgIC8vIGRlemVsZmRlIHdhYXJkZW4gdmFsbGVuIGluZWVucyAyNSUgZ3JvdGVyIHVpdC5cbiAgICAvL1xuICAgIC8vIEFsbGVzIGhpZXJvbmRlciBpcyBCRVdVU1Qgb3AgYC5mZS1yZS1yYWlsYCBnZWhhbmdlbiBlbiBuaWV0IG9wXG4gICAgLy8gYC5mZS10cmlnZ2VyLWVkaXRvci13cmFwcGVyYDogZGllIHdyYXBwZXIgaXMgZ2VkZWVsZCBtZXQgRmxvd0xvZ2ljT3B0aW9ucyAoZGVcbiAgICAvLyBsb2dpY2Etbm9kZSksIGVuIGRpZSB6aXQgbm9nIHfDqWwgaW4gZGUgZ2V6b29tZGUgbGVnYWN5LXNjaGlsLiBEYWFyIHpvdSBkaXQgZGVcbiAgICAvLyByYWlsIGR1cyBqdWlzdCB0ZSBrbGVpbiBtYWtlbi4gQWxzIGRlIGxvZ2ljYS1ub2RlIG9wIGRlemUgcmFpbCBvdmVyZ2FhdCxcbiAgICAvLyB2ZXJodWl6ZW4gZGV6ZSByZWdlbHMgbWVlIG5hYXIgZGUgd3JhcHBlci5cbiAgICBwYWRkaW5nLXRvcDogLjI1cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAuMjVyZW07XG59XG5cbi5mZS1yZS1yYWlsIC50cmlnZ2VyLWNvbmRpdGlvbiB7XG4gICAgLy8gV2FzIDFyZW0gYm92ZW4gw6luIG9uZGVyOyBtZXQgZGUga29wIHZhbiBoZXQgdmVsZCBlcmJpaiBnYWYgZGF0IGRlIDYwcHggZGllXG4gICAgLy8gS2ltIHphZy4gSWV0cyBydWltZXIgZGFuIC4zNzVyZW0gbmEgS2ltcyBcImRpayBvcCBlbGthYXJcIiAoMDUuMDguMjAyNikuXG4gICAgbWFyZ2luOiAuNXJlbSAwO1xufVxuXG4uZmUtcmUtcmFpbCAuY29uZGl0aW9uIHtcbiAgICAvLyBXYXMgcGFkZGluZyAuNzVyZW0gMS4zMHJlbSArIGZvbnQtc2l6ZSAxLjFyZW0g4oCUIGVlbiBwaWwgdmFuIH45NXg2NnB4IHZvb3IgaGV0XG4gICAgLy8gd29vcmQgXCJJRlwiLlxuICAgIC8vIERlIEhPT0dURSBpcyBnZWxpamsgYWFuIGVlbiBgcWRuYXByby1pbnB1dCBzaXplPVwic21hbGxcImAgKDQwcHgpLiBNZXQgZWVuXG4gICAgLy8gZWlnZW4gaG9vZ3RlIHN0b25kIGVsa2UgcGlsIG5ldCBpZXRzIGFuZGVycyBkYW4gaGV0IHZlbGQgZXJuYWFzdCwgZW4gZGF0XG4gICAgLy8gbWFha3RlIGRlIGhlbGUgcmFpbCBvbnJ1c3RpZyAoS2ltIDA1LjA4LjIwMjYpLlxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHBhZGRpbmc6IDAgLjdyZW07XG4gICAgZm9udC1zaXplOiAuODEyNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAuNXJlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogLjAyZW07XG59XG5cbi8vIFZFUlZPTEdSSUpFTjogaGV0IHZvZWd3b29yZCwgZ2VlbiBrb3AuXG4vLyBLaW0gMDUuMDguMjAyNjogXCJkaWUgVEhFTiBBTkQgQU5EIHN0YWFuIHdlbCBoZWVsIHByb21pbmVudCBlbiBkaWsgb3AgZWxrYWFyXCIuXG4vLyBEcmllIGdldnVsZGUgcGlsbGVuIG9wIGVsa2FhciB6aWpuIGRyaWUga2VlciBoZXR6ZWxmZGUgd29vcmQgbWV0IGV2ZW52ZWVsXG4vLyBnZXdpY2h0LiBEZSBlZXJzdGUgcGlsIHZhbiBlZW4gYmxvayBiZW5vZW10IGhldCBibG9rOyBkZSByaWplbiBlcm9uZGVyIHpldHRlblxuLy8gZGUgdm9yaWdlIHJlZ2VsIHZvb3J0LiBEdXMgcmlqIDAgaG91ZHQgZGUgcGlsLCBkZSByZXN0IHdvcmR0IGhldHplbGZkZSBwYWFyc1xuLy8gYWxzIGtsZWluIHdvb3JkIG9wIGRlIHJhaWwuXG4vLyBOSUVUIGJlc2xpc3NpbmcgMjAgdGVydWdkcmFhaWVuOiBkaWUgZ2luZyBvdmVyIEtMRVVSIChncmlqcyA9IFwibWluZGVyXG4vLyBiZWxhbmdyaWprXCIpLiBEZSBrbGV1ciBibGlqZnQgaWRlbnRpZWsgcGFhcnMsIGFsbGVlbiBkZSB2b3JtIHZlcnNjaGlsdC5cbi5mZS1yZS1yYWlsIC5jb25kaXRpb24uZmUtcmMtY29uaiB7XG4gICAgY29sb3I6ICM0MzQ3OTY7XG4gICAgZm9udC1zaXplOiAuNjg3NXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDZlbTtcbiAgICBwYWRkaW5nOiAwIC4zNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4vLyBHRUVOIFZFUkJJTkRJTkdTTElKTiBFTiBHRUVOIEJPTExFVEpFUyAoS2ltIDA1LjA4LjIwMjY6IFwiZGllIHN0aXBwZWxsaWpudGplc1xuLy8ga3VubmVuIGVyIHdlbCBoZWxlbWFhbCB1aXRcIikuIFplIHZlcmJvbmRlbiBkZSBwaWxsZW4gdG9lbiBkaWUgYWxsZSB2aWVyIGdldnVsZGVcbi8vIGJsb2trZW4gd2FyZW47IG51IGRlIHZlcnZvbGdyaWplbiBlZW4gd29vcmQgb3AgZGUgcmFpbCB6aWpuLCB2ZXJib25kZW4gemUgbmlldHNcbi8vIG1lZXIgZW4gZ2F2ZW4gemUgYWxsZWVuIHJ1aXMuIE1ldCBkZSBsaWpuIHdlZyB2ZXJkd2lqbnQgb29rIGRlIHJlZGVuIHZvb3IgZGVcbi8vIGRla3ZsYWtqZXMgb3AgZGUgcGx1c2tub3AgZW4gaGV0IHZvZWd3b29yZCAoZGllIG1hc2tlZXJkZW4gYWxsZWVuIGRpZSBsaWpuKS5cbi8vXG4vLyBBbGxlZW4gdm9vciBERVpFIHJhaWwgdWl0Z2V6ZXQsIG5pZXQgaW4gYC5mZS10cmlnZ2VyLWVkaXRvci13cmFwcGVyYCB6ZWxmOlxuLy8gRmxvd0xvZ2ljT3B0aW9ucyAoZGUgbG9naWNhLW5vZGUpIGRlZWx0IGRpZSB3cmFwcGVyIGVuIGhvdWR0IHppam4gZWlnZW4gbGlqblxuLy8gdG90ZGF0IGRpZSBub2RlIG92ZXJnYWF0LlxuLmZlLXJlLXJhaWwgLnRyaWdnZXItY29uZGl0aW9uIC50cmlnZ2VyLWNvbmRpdGlvbi13cmFwcGVyOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIOKaoO+4jyBEcmllIGNsYXNzZXMgbm9kaWcuIERlIGJhc2lzcmVnZWxzIHppam5cbi8vIGAuZmUtdHJpZ2dlci1lZGl0b3Itd3JhcHBlciAuY29uZGl0aW9uLmNvbmRpdGlvbi1jb25uZWN0aW9uLSo6OmJlZm9yZS9hZnRlcmAsIGR1c1xuLy8gMyBjbGFzc2VzOyBlZW4gMi1jbGFzcy1yZWdlbCBoaWVyIHZlcmxvb3IgZW4gaGV0IE9OREVSU1RFIGJvbGxldGplIGJsZWVmIHN0YWFuXG4vLyAoZ2VtZXRlbjogOjphZnRlciBub2cgYGRpc3BsYXk6IGJsb2NrYCkuXG4uZmUtcmUtcmFpbCAuY29uZGl0aW9uLmNvbmRpdGlvbi1jb25uZWN0aW9uLXRvcDo6YmVmb3JlLFxuLmZlLXJlLXJhaWwgLmNvbmRpdGlvbi5jb25kaXRpb24tY29ubmVjdGlvbi15OjpiZWZvcmUsXG4uZmUtcmUtcmFpbCAuY29uZGl0aW9uLmNvbmRpdGlvbi1jb25uZWN0aW9uLWJvdHRvbTo6YWZ0ZXIsXG4uZmUtcmUtcmFpbCAuY29uZGl0aW9uLmNvbmRpdGlvbi1jb25uZWN0aW9uLXk6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vLyBEZSBwaWwta29sb20gd2FzIDEyMHB4IGJyZWVkIHZvb3IgdHdlZSB0b3QgdmllciBsZXR0ZXJzLlxuLmZlLXJlLXJhaWwgLnRyaWdnZXItY29uZGl0aW9uIC50cmlnZ2VyLWNvbmRpdGlvbi13cmFwcGVyIHtcbiAgICBtaW4td2lkdGg6IDY4cHg7XG5cbiAgICAvLyBEZSBwaWwgb25kZXJhYW4gaW4gcGxhYXRzIHZhbiBnZWNlbnRyZWVyZCwgem9kYXQgaGlqIG9wIMOpw6luIGxpam4gc3RhYXQgbWV0IGRlXG4gICAgLy8gaW52b2VydmVsZGVuLiBPcCBkZSBFRVJTVEUgcmlqIHN0YWF0IGVyIGVlbiBrb3AgYm92ZW4gZGUgdmVsZGVuOyBnZWNlbnRyZWVyZFxuICAgIC8vIG92ZXIgZGUgaGVsZSByaWpob29ndGUga3dhbSBkZSBwaWwgZGFhciB0ZSBob29nLiBaZWxmZGUgcmVkZW4gYWxzIGJpaiBkZVxuICAgIC8vIG1pbi1rbm9wLiBCZXd1c3Qgb3AgZGUgd3JhcHBlciBlbiBuaWV0IG9wIGRlIHBpbCB6ZWxmOiBkZSB3cmFwcGVyIGhvdWR0IHpvXG4gICAgLy8gemlqbiB2b2xsZSBob29ndGUsIGVuIGRpZSB0cmVrdCBtZXQgYDo6YmVmb3JlYCBkZSBnZXN0aXBwZWxkZVxuICAgIC8vIHZlcmJpbmRpbmdzbGlqbiB0dXNzZW4gZGUgcmlqZW4uIFtLaW0gMDUuMDguMjAyNl1cbiAgICAvL1xuICAgIC8vIGBhbGlnbi1zZWxmOiBmbGV4LWVuZGAgb3AgZGUgV1JBUFBFUiwgZW4gbmlldCBgc3RyZXRjaGAgKyBgYWxpZ24taXRlbXNgIGVyaW4uXG4gICAgLy8gTWV0IHN0cmV0Y2ggd2Vya3RlIGRlIHVpdGxpam5pbmcgb29rLCBtYWFyIGRhbiBsaWVwIGRlIGdlc3RpcHBlbGRlIGxpam4gdmFuXG4gICAgLy8gYDo6YmVmb3JlYCB2YW5hZiBkZSB3cmFwcGVyLVRPUCDigJQgZHVzIHZhbmFmIGRlIGtvcCBib3ZlbiBoZXQgdmVsZCDigJQgZW4gc3RhayBlclxuICAgIC8vIGVlbiBsb3Mgc3R1a2plIGxpam4gYsOzdmVuIGRlIGVlcnN0ZSBwaWwgdWl0LiBOdSBpcyBkZSB3cmFwcGVyIHByZWNpZXMgem8gaG9vZ1xuICAgIC8vIGFscyBkZSBwaWwgZW4gaGFuZ3QgaGlqIG9uZGVyYWFuIGRlIHJpajogZGUgcGlsIHN0YWF0IG9wIGRlIHZlbGRob29ndGUgw6luIGRlXG4gICAgLy8gbGlqbiBiZWdpbnQgYmlqIGRlIHBpbCwgem9hbHMgYmVkb2VsZC4gW0tpbSAwNS4wOC4yMDI2XVxuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xufVxuXG4vLyBLb2xvbXZlcmRlbGluZy4gYC50cmlnZ2VyLWNvbHVtbmAgZGVlbHQgZGUgcmlqIHN0YW5kYWFyZCA1MC81MCwgZW4gZGF0IGdhZiBkZVxuLy8gd2FhcmRlLWtvbG9tIHRlIHdlaW5pZzogbWV0IGRlIG9wZXJhdG9yIHZhbiAxNzBweCBlcm5hYXN0IGJsZWVmIGVyIDIyOHB4IG92ZXJcbi8vIGVuIGthcHRlIFwiV29vbnpvcmdjZW50cnVtIEJha2VuXCIgYWYgKGdlbWV0ZW4gaW4gZWVuIGhhcm5lc3MsIG5pZXQgZ2VzY2hhdCkuXG4vLyBOdSBoZWVmdCBkZSBsaW5rZXJrb2xvbSBlZW4gdmFzdGUgbWFhdCBlbiBrcmlqZ3QgZGUgcmVjaHRlciBkZSByZXN0LiBEZXplbGZkZVxuLy8gdHdlZSBjbGFzc2VzIG9wIGRlIHZvb3J3YWFyZGVuLSDDqW4gZGUgb250dmFuZ2Vyc3JpamVuLCB6b2RhdCBkZSBrb2xvbW1lbiB2YW5cbi8vIGJlaWRlIGJsb2trZW4gb3Agw6nDqW4gbGlqbiBzdGFhbi5cbi8vXG4vLyDimqDvuI8gRGV6ZSB0d2VlIE1PRVRFTiBnZW5lc3Qgc3RhYW4uIGAuZmUtdHJpZ2dlci1lZGl0b3Itd3JhcHBlclxuLy8gLnRyaWdnZXItY29uZGl0aW9uIC50cmlnZ2VyLWNvbHVtbiB7IGZsZXg6IDEgMSA1MCUgfWAgaGllcmJvdmVuIGhlZWZ0IGRyaWVcbi8vIGNsYXNzZXM7IGVlbiBsb3NzZSBgLmZlLXJlLWNvbC1hYCBoZWVmdCBlciDDqcOpbiBlbiB2ZXJsaWVzdCBnZXdvb24g4oCUIGVlcnN0IHpvXG4vLyBnZXNjaHJldmVuIGVuIGRlIGtvbG9tbWVuIGJsZXZlbiBwcmVjaWVzIGV2ZW4gYnJlZWQuIGAuZmUtcmUtcmFpbGAgeml0IG9wXG4vLyBoZXR6ZWxmZGUgZWxlbWVudCBhbHMgYC5mZS10cmlnZ2VyLWVkaXRvci13cmFwcGVyYCwgZHVzIGRpdCBpcyBkZXplbGZkZVxuLy8gc3BlY2lmaWNpdGVpdCBlbiBzdGFhdCBsYXRlciBpbiBoZXQgYmVzdGFuZC5cbi5mZS1yZS1yYWlsIC50cmlnZ2VyLWNvbmRpdGlvbiB7XG4gICAgLy8gMzAwcHggd2FzIGRlIG1hYXQgWk9OREVSIGxpbmtlcnBhbmVlbC4gTWV0IGBsYXlvdXQ9XCJ3aXRoLWluZm9cImAga29zdCBoZXRcbiAgICAvLyBwYW5lZWwgMjgwcHggZW4gaG91ZHQgaGV0IHdpdHRlIHZlbnN0ZXIgNzk1cHggb3ZlcjogZGUgd2FhcmRlLWtvbG9tIGt3YW1cbiAgICAvLyBkYWFyZG9vciBvcCAxMTZweCB1aXQgZW4ga2FwdGUgXCJXb29uem9yZ2NlbnRydW0gQmFrZW5cIiB3ZWVyIGFmIChnZW1ldGVuKS5cbiAgICAvLyAyNDAgaGllciBsYWF0IGdlbm9lZyBvdmVyIHZvb3IgZGUgb3BlcmF0b3IgcGx1cyBlZW4gbGVlc2JhcmUgd2FhcmRlLlxuICAgIC5mZS1yZS1jb2wtYSB7XG4gICAgICAgIGZsZXg6IDAgMSAyNDBweDtcbiAgICB9XG5cbiAgICAuZmUtcmUtY29sLWIge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cbn1cblxuLy8gRGUgbWluLWtub3Agc3RvbmQgc2NoZWVmIChLaW0gMDUuMDguMjAyNjogXCJuaWV0IGdlY2VudHJlZXJkIG1ldCBoZXQgaW5wdXQgZmllbGRcIikuXG4vLyBPb3J6YWFrOiBoaWogaXMgZWVuIGRpcmVjdCBraW5kIHZhbiBkZSByaWosIGVuIGRpZSBjZW50cmVlcnQgdmVydGljYWFsIG92ZXIgZGVcbi8vIEhFTEUgcmlqaG9vZ3RlIOKAlCBkdXMgaW5jbHVzaWVmIGRlIGtvcCBib3ZlbiBkZSB2ZWxkZW4uIEhldCBpbnZvZXJ2ZWxkIHplbGYgeml0XG4vLyBvbmRlciBkaWUga29wLCBkdXMgZGUga25vcCBrd2FtIHRlIGhvb2cuIE9uZGVybGlqbmVuIGVuIGRhbiBtZXQgZWVuIGhhbHZlXG4vLyBpbnZvZXJob29ndGUgdGVydWcgb21ob29nOiBkYW4gc3RhYXQgaGlqIHByZWNpZXMgb3AgaGV0IG1pZGRlbiB2YW4gaGV0IHZlbGQuXG4vLyBEZSA4cHggaXMgKDQwIC0gMjQpIC8gMiDigJQgaW52b2VydmVsZCBzaXplPVwic21hbGxcIiBpcyA0MHB4LCBkZSBrbm9wIDI0cHguXG4uZmUtcmUtcmFpbCAudHJpZ2dlci1jb25kaXRpb24gLmZlLXJjLXJlbW92ZSB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4vLyBEZSBvcGVyYXRvciBzdG9uZCBuaWV0IG9wIMOpw6luIGxpam4gbWV0IGRlIHZlbGRlbiBlcm5hYXN0IChLaW0pLiBPb3J6YWFrOiBkZSByaWpcbi8vIGNlbnRyZWVydCB6aWpuIGtvbG9tbWVuIHZlcnRpY2FhbCwgZW4gZGUgb3BlcmF0b3IgaXMgaGV0IGVuaWdlIHZlbGQgWk9OREVSIGtvcCDigJRcbi8vIGhpaiBpcyBkdXMgbGFnZXIsIGVuIGdlY2VudHJlZXJkIGtvbXQgemlqbiBtaWRkZW4gb3AgaGV0IG1pZGRlbiB2YW4gZWVuIHZlbGRcbi8vIG3DqXQga29wIHRlIGxpZ2dlbiwgZHVzIHRlIGhvb2cuXG4vLyBPbmRlcmxpam5lbiBpbiBwbGFhdHMgdmFuIGVlbiBrb3AgdmVyemlubmVuOiBkYW4gbGlqbmVuIGRlIGludm9lcnZha2tlbiB6ZWxmIHVpdCxcbi8vIGVuIGJsaWpmdCBkZSBvcGVyYXRvciBlZW4gcnVzdGlnZSBrZXV6ZWxpanN0IHpvbmRlciBsYWJlbC1ydWlzIGVyYm92ZW4uXG4vLyA0IGNsYXNzZXMsIHdhbnQgZGUgYmVzdGFhbmRlIGBhbGlnbi1pdGVtczogY2VudGVyYCBoZWVmdCBkYXQgb29rIOKAlCBkZXplIHN0YWF0IGxhdGVyLlxuLmZlLXJlLXJhaWwgLnRyaWdnZXItY29uZGl0aW9uIC50cmlnZ2VyLWNvbHVtbi5jb2x1bW4tZmxleCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGdhcDogLjc1cmVtO1xufVxuXG4vLyBEZSBvcGVyYXRvci4gV2FzIGVlbiBQQUFSU0Ugdi1zZWxlY3QsIG5ldCB6byBoYXJkIGFscyBkZSByYWlsLXBpbCBlcm5hYXN0O1xuLy8gbnUgZWVuIHJ1c3RpZ2Uga2V1emVsaWpzdCBvcCBlZW4gdmFzdGUsIHNtYWxsZSBicmVlZHRlIHpvZGF0IGRlIHdhYXJkZS1rb2xvbVxuLy8gZGUgcmVzdCBrcmlqZ3QuIFwiSVMgT1IgSElHSEVSXCIgaXMgZGUgbGFuZ3N0ZSBvcHRpZSBlbiBwYXN0IGhpZXJpbi5cbi5mZS1yZS1vcCB7XG4gICAgLy8gNzIgaW4gcGxhYXRzIHZhbiAxNDAgKDEyLjA4LjIwMjYpOiBkZSBvcGVyYXRvcnMgemlqbiBzeW1ib2xlbiBnZXdvcmRlbiAoPSDiiaAg4omkIOKJpSkgb21kYXRcbiAgICAvLyBcImlzIG9mIGxhZ2VyXCIgaW4gZGUgbWVlbGV6ZW5kZSB6aW4gZ2VlbiBOZWRlcmxhbmRzIG9wbGV2ZXJkZSAoXCJBbHMgQWRlbWhhbGluZyBpcyBvZiBsYWdlclxuICAgIC8vIDhcIikuIEXDqW4gdGVrZW4gcGx1cyBkZSBjaGV2cm9uIGhlZWZ0IGdlZW4gMTQwcHggbm9kaWcsIGVuIGFsbGVzIHdhdCBoaWVyIG92ZXJibGlqZnQgZ2FhdFxuICAgIC8vIG5hYXIgZGUgd2FhcmRlLWtvbG9tIGVybmFhc3Qg4oCUIGRpZSBpcyBpbiBkZSBwcmFrdGlqayBkZSBrcmFwc3RlIHZhbiBkZSBkcmllLlxuICAgIGZsZXg6IDAgMCA3MnB4O1xufVxuXG4uZmUtcmUtdmFsIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAvLyBab25kZXIgZGl0IHdlaWdlcnQgZWVuIGZsZXgtaXRlbSBvbmRlciB6aWpuIGluaG91ZCB0ZSBrcmltcGVuIGVuIGR1d3QgZWVuXG4gICAgLy8gbGFuZ2UgZ2VicnVpa2Vyc25hYW0gZGUgcmlqIGJyZWRlciBkYW4gZGUgbW9kYWwuXG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4vLyBOYWFtIE9OREVSIGRlIHJlZ2VsIChLaW0sIGJlc2xpc3NpbmcgMTQpLiBCZXd1c3QgbmlldCBvdmVyIGRlIHZvbGxlIGJyZWVkdGU6XG4vLyBoZXQgaXMgZWVuIGtvcnQgbGFiZWwsIGVuIGVlbiAxMDAwcHgtYnJlZWQgaW52b2VydmVsZCBzdWdnZXJlZXJ0IGVlbiBsYW5nZSB0ZWtzdC5cbi8vIFwiRGV6ZSByZWdlbCBnZWxkdCBhbHRpamRcIiwgb25kZXIgaGV0IHZvb3J3YWFyZGVuYmxvayB6b2xhbmcgZXIgbmlldHMgaXNcbi8vIGluZ2V2dWxkLiBVaXRnZWxpam5kIG1ldCBkZSB2ZWxkZW4gKDY4cHggcGlsLWtvbG9tICsgMXJlbSBnYXQpIGluIHBsYWF0cyB2YW5cbi8vIG1ldCBkZSBwaWwsIHdhbnQgaGV0IGdhYXQgb3ZlciBkZSB2ZWxkZW4uXG4uZmUtcmUtYWx3YXlzLWhpbnQge1xuICAgIG1hcmdpbjogMCAwIC4yNXJlbSBjYWxjKDY4cHggKyAxcmVtKTtcbiAgICBmb250LXNpemU6IC44MTI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgY29sb3I6ICM2YjcyODA7XG59XG5cbi8vIERlIGxvZ2ljYS12YXJpYW50IHZhbiBkaWV6ZWxmZGUgbWVkZWRlbGluZy4gRGVlbHQgZGUgdm9ybSAoemVsZmRlIHBsZWssIHplbGZkZVxuLy8gbWFhdCkgbWFhciB6ZWd0IGhldCBPTUdFS0VFUkRFOiBiaWogZWVuIG92ZXJkcmFjaHQgdnV1cnQgZWVuIHJlZ2VsIHpvbmRlclxuLy8gdm9vcndhYXJkZW4gYWx0aWpkLCBiaWogZGUgbG9naWNhLW5vZGUgZ2FhdCBoaWogbm9vaXQgZ2VsZGVuIChGbG93TG9naWMgcmVnZWwgNCkuXG4vLyBEYWFyb20gYW1iZXIgZW4gbmlldCBncmlqcyDigJQgaGV0IGlzIGVlbiB3YWFyc2NodXdpbmcgZW4gZ2VlbiBtZWRlZGVsaW5nLlxuLy9cbi8vIOKaoO+4jyBNT0VUIE5BIGAuZmUtcmUtYWx3YXlzLWhpbnRgIHN0YWFuLiBCZWlkZSB6aWpuIMOpw6luIGNsYXNzLCBkdXMgYmlqIGdlbGlqa2Vcbi8vIHNwZWNpZmljaXRlaXQgd2ludCBkZSBsYWF0c3RlIHJlZ2VsOyBzdG9uZCBkaXQgYmxvayBlZXJzdCBob2dlciBpbiBoZXQgYmVzdGFuZCBlblxuLy8gYmxlZWYgZGUgdGVrc3QgZ3JpanMuIEdlbWV0ZW4sIG5pZXQgYmVyZWRlbmVlcmQuXG4uZmUtbHItbmV2ZXItaGludCB7XG4gICAgY29sb3I6ICM4YTZkMWY7XG59XG5cbi8vIEXDqW4gbWVsZGluZ3NiYWxrIGJvdmVuIGRlIHJhaWwuIFZlcnZhbmd0IGRlIG91ZGUgbmVwLWZvdXRtZWxkaW5nIG9uZGVyIGhldFxuLy8gbmFhbXZlbGQsIGRpZSBvcCBgOmNsYXNzPVwieyAnLWVycm9yJzogZmFsc2UgfVwiYCBzdG9uZCBlbiBkdXMgbm9vaXQga29uIGFhbmdhYW4uXG4uZmUtcmUtZXJyb3Ige1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiAuNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAuNzVyZW07XG4gICAgcGFkZGluZzogLjYyNXJlbSAuNzVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogLjVyZW07XG4gICAgYmFja2dyb3VuZDogI2ZlZjJmMjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmVjYWNhO1xuICAgIGNvbG9yOiAjYjkxYzFjO1xuICAgIGZvbnQtc2l6ZTogLjgxMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuLmZlLXJlLWVycm9yIHFkbmFwcm8taWNvbiB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luLXRvcDogMXB4O1xufVxuXG4uZmUtcmUtbmFtZSB7XG4gICAgbWFyZ2luLXRvcDogLjc1cmVtO1xuICAgIG1heC13aWR0aDogNDIwcHg7XG59XG5cblxuLy8g4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4vLyBUcmFuc2xhdGlvbiBQYW5lbCDigJQgcmlnaHQtc2lkZSBzbGlkZS1pbiBwYW5lbFxuLy8g4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG5cbi5mZS10cmFuc2xhdGUtYnRuIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmLS1hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJi0taW5jb21wbGV0ZTo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC00cHg7XG4gICAgICAgIHJpZ2h0OiAtNHB4O1xuICAgICAgICB3aWR0aDogOXB4O1xuICAgICAgICBoZWlnaHQ6IDlweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWY0NDQ0O1xuICAgICAgICBhbmltYXRpb246IGZlLXB1Ymxpc2gtcHVsc2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgfVxufVxuXG4uZmUtdHJhbnNsYXRpb24tcGFuZWwge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiA0MjBweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzMiwgMjM1LCAyNTIsIDAuNzgpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KTtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KTtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40MCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHotaW5kZXg6IDEwNTA7XG4gICAgYm94LXNoYWRvdzogLThweCAwIDMycHggcmdiYSg0MCwgNDYsIDEwMCwgMC4xOCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFwiU2Vnb2UgVUlcIiwgc2Fucy1zZXJpZjtcbn1cblxuLmZlLXRwLXNsaWRlLWVudGVyLWFjdGl2ZSxcbi5mZS10cC1zbGlkZS1sZWF2ZS1hY3RpdmUge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xufVxuLmZlLXRwLXNsaWRlLWVudGVyLFxuLmZlLXRwLXNsaWRlLWVudGVyLWZyb20sXG4uZmUtdHAtc2xpZGUtbGVhdmUtdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbn1cbi5mZS10cC1zbGlkZS1lbnRlci10byxcbi5mZS10cC1zbGlkZS1sZWF2ZSxcbi5mZS10cC1zbGlkZS1sZWF2ZS1mcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG59XG5cbi8vIOKUgOKUgCBIZWFkZXIg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4uZmUtdHAtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMTFweCAxNnB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNjUsIDczLCAxNTQsIDAuNTUpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxNHB4KTtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxNHB4KTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBnYXA6IDlweDtcbn1cbi5mZS10cC1oZWFkZXItaWNvbiB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpO1xufVxuLmZlLXRwLWhlYWRlci10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZmxleDogMTtcbn1cbi5mZS10cC1jbG9zZSB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42NSk7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBwYWRkaW5nOiA0cHggNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxufVxuXG4vLyDilIDilIAgQXV0by10cmFuc2xhdGUgYnV0dG9uIChpbiBoZWFkZXIpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLmZlLXRwLWF0LWJ0biB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMS41cHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMwKTtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg1KTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC1mYW1pbHk6IGludGVyLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBwYWRkaW5nOiA0cHggOHB4O1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAxNjBtcywgYmFja2dyb3VuZCAxNjBtcywgY29sb3IgMTYwbXM7XG4gICAgLm1kaSB7IGZvbnQtc2l6ZTogMTVweDsgfVxuICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42NSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMCk7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbiAgICAmLS1hY3RpdmUsICY6YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzApO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTU7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgZmUtdHAtcm90YXRlIHtcbiAgICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgICB0byAgIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxufVxuLmZlLXRwLWF0LXNwaW4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBhbmltYXRpb246IGZlLXRwLXJvdGF0ZSAwLjhzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuLy8g4pSA4pSAIEF1dG8tdHJhbnNsYXRlIGJhciAoY29uZmlybSAvIHJlc3VsdCBzdHJpcCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4uZmUtdHAtYXQtYmFyIHtcbiAgICBwYWRkaW5nOiA5cHggMTRweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDY1LCA3MywgMTU0LCAwLjEyKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSg2NSwgNzMsIDE1NCwgMC4xNSk7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAjM2Y0OTlhO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgJi0tZG9uZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMzQsIDE0MCwgOTAsIDAuMTApO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDM0LCAxNDAsIDkwLCAwLjE4KTtcbiAgICAgICAgY29sb3I6ICMxYTdhNTA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNnB4O1xuICAgICAgICAubWRpIHsgZm9udC1zaXplOiAxNXB4OyB9XG4gICAgfVxuICAgICYtLWVycm9yIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxOTYsIDU0LCA0MiwgMC4xMCk7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMTk2LCA1NCwgNDIsIDAuMTgpO1xuICAgICAgICBjb2xvcjogI2M0MzYyYTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIC5tZGkgeyBmb250LXNpemU6IDE1cHg7IH1cbiAgICB9XG59XG4uZmUtdHAtYXQtYmFyLXF1ZXN0aW9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiA3cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5mZS10cC1hdC1iYXItYnRucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDZweDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG59XG4uZmUtdHAtYXQtYmFyLWJ0biB7XG4gICAgYmFja2dyb3VuZDogIzNmNDk5YTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LWZhbWlseTogaW50ZXIsIHNhbnMtc2VyaWY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjMzEzOTdlOyB9XG4gICAgJi0tYWxsIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg2NSwgNzMsIDE1NCwgMC4xNSk7XG4gICAgICAgIGNvbG9yOiAjM2Y0OTlhO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDY1LCA3MywgMTU0LCAwLjMwKTtcbiAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoNjUsIDczLCAxNTQsIDAuMjUpOyB9XG4gICAgfVxuICAgICYtLWNhbmNlbCB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGNvbG9yOiByZ2JhKDYzLCA3MywgMTU0LCAwLjY1KTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAmOmhvdmVyIHsgY29sb3I6ICMzZjQ5OWE7IH1cbiAgICB9XG59XG5cbi8vIFNsaWRlIHRyYW5zaXRpb24gZm9yIHRoZSBiYXJcbi5mZS10cC1hdC1zbGlkZS1lbnRlci1hY3RpdmUsIC5mZS10cC1hdC1zbGlkZS1sZWF2ZS1hY3RpdmUge1xuICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMjAwbXMgZWFzZSwgb3BhY2l0eSAyMDBtcyBlYXNlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4uZmUtdHAtYXQtc2xpZGUtZW50ZXIsIC5mZS10cC1hdC1zbGlkZS1sZWF2ZS10byB7XG4gICAgbWF4LWhlaWdodDogMDtcbiAgICBvcGFjaXR5OiAwO1xufVxuLmZlLXRwLWF0LXNsaWRlLWVudGVyLXRvLCAuZmUtdHAtYXQtc2xpZGUtbGVhdmUge1xuICAgIG1heC1oZWlnaHQ6IDEyMHB4O1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi8vIOKUgOKUgCBMYW5ndWFnZSBwaWxscyAoc2xpZGluZyBpbmRpY2F0b3IsIG1pcnJvcnMgdmVyc2lvbi1sb2cgZmlsdGVyIGJhcikg4pSAXG4uZmUtdHAtbGFuZy1iYXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDRweDtcbiAgICBwYWRkaW5nOiA4cHggMTRweCA4cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUwKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyMTYsIDIxOSwgMjM3LCAwLjcwKTtcbiAgICBmbGV4LXNocmluazogMDtcbn1cbi5mZS10cC1sYW5nLWluZGljYXRvciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6ICNlOGVhZmQ7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4OiAwO1xuICAgIC8vIHRyYW5zaXRpb24gYXJtZWQgYnkgSlMgYWZ0ZXIgZmlyc3QgcG9zaXRpb25cbn1cbi5mZS10cC1sYW5nLXRhYiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgcGFkZGluZzogNXB4IDEzcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICM4ODkwYjg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDE1MG1zO1xuICAgICYtLWFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgIH1cbn1cblxuLy8g4pSA4pSAIENvbHVtbiBoZWFkZXJzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLmZlLXRwLWNvbC1oZWFkZXJzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTApO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCByZ2JhKDIxNiwgMjE5LCAyMzcsIDAuNzApO1xufVxuLmZlLXRwLWNvbC1oIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzQxNDk5YTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA3ZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZDhkYmVkO1xuICAgIH1cbn1cbi5mZS10cC1taXNzaW5nLXBpbGwge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmRmMGRjO1xuICAgIGNvbG9yOiAjYjQ3YTE0O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBwYWRkaW5nOiAycHggNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlOGEzMjA7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbn1cblxuLy8g4pSA4pSAIENhcmQgbGlzdCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5mZS10cC1ib2R5IHtcbiAgICBmbGV4OiAxO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogN3B4O1xufVxuXG4uZmUtdHAtY2FyZCB7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMGQzZWE7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tbm9kZS1jb2xvciwgIzQxNDk5YSk7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAxMjBtcztcbiAgICBmbGV4LXNocmluazogMDtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBib3gtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoNjUsIDczLCAxNTQsIDAuMTQpO1xuICAgIH1cbiAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1ub2RlLWNvbG9yLCAjNDE0OTlhKTtcbiAgICB9XG4gICAgJi0tbWlzc2luZyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZWZkZmI7XG4gICAgfVxuICAgICYtLXNwb3RsaWdodCB7XG4gICAgICAgIGFuaW1hdGlvbjogZmUtdHAtc3BvdGxpZ2h0IDkwMG1zIGVhc2Utb3V0IGZvcndhcmRzO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBmZS10cC1zcG90bGlnaHQge1xuICAgIDAlICAgeyBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSg2NSwgNzMsIDE1NCwgMC41NSk7IH1cbiAgICA2MCUgIHsgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoNjUsIDczLCAxNTQsIDAuMjUpOyB9XG4gICAgMTAwJSB7IGJveC1zaGFkb3c6IG5vbmU7IH1cbn1cblxuLy8gQ2FyZCBoZWFkZXI6IHR5cGUgYmFkZ2UgKyBub2RlIGlkXG4uZmUtdHAtbWV0YSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogN3B4O1xuICAgIHBhZGRpbmc6IDZweCAxMHB4IDZweCA4cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSg2NSwgNzMsIDE1NCwgMC4wNik7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNGU2ZjQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmZlLXRwLWJhZGdlIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgcGFkZGluZzogM3B4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmZlLXRwLW5vZGUtaWQge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogIzkwOTljMDtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuLmZlLXRwLXNhdmUtaW5kaWNhdG9yIHtcbiAgICB3aWR0aDogN3B4O1xuICAgIGhlaWdodDogN3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAmLS1zYXZpbmcgeyBiYWNrZ3JvdW5kOiAjZThhMzIwOyB9XG4gICAgJi0tc2F2ZWQgIHsgYmFja2dyb3VuZDogIzNlOWU2ZTsgfVxuICAgICYtLWVycm9yICB7IGJhY2tncm91bmQ6ICNjNDM2MmE7IH1cbn1cblxuLy8g4pSA4pSAIFR3by1jb2x1bW4gbGF5b3V0IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLmZlLXRwLWNvbHMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xufVxuXG4uZmUtdHAtY29sIHtcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA2cHg7XG4gICAgbWluLWhlaWdodDogNTBweDtcbiAgICAmLS10YXJnZXQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjRmNWZiO1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlNGU2ZjQ7XG4gICAgfVxufVxuXG4vLyDilIDilIAgSW5wdXRzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLmZlLXRwLWlucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIHBhZGRpbmc6IDRweCA3cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NkZDBlODtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBjb2xvcjogIzFlMjQ2MCAhaW1wb3J0YW50O1xuICAgIHJlc2l6ZTogbm9uZTtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFwiU2Vnb2UgVUlcIiwgc2Fucy1zZXJpZjtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDM2cHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDEyMG1zLCBiYWNrZ3JvdW5kIDEyMG1zO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzQxNDk5YTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoNjUsIDczLCAxNTQsIDAuMTIpO1xuICAgIH1cbiAgICAmLS1zdWIge1xuICAgICAgICBmb250LXNpemU6IDhweDtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICBjb2xvcjogIzY2NzBhMDtcbiAgICAgICAgbWluLWhlaWdodDogMjRweDtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBkYXNoZWQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2Q4ZGJlZDtcbiAgICB9XG4gICAgJi0tYW5zIHtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICBtaW4taGVpZ2h0OiAyOHB4O1xuICAgIH1cbiAgICAmLS1taXNzaW5nIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZThhMzIwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmY2YzO1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogI2M4OTQzMDtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZmUtdHAtY29sLS10YXJnZXQgJiB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlZWYwZmE7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2M4Y2JkZjtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjNDE0OTlhO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5mZS10cC1jb2wtLXRhcmdldCAmLmZlLXRwLWlucHV0LS1taXNzaW5nIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmNmMztcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZThhMzIwO1xuICAgIH1cbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAjYjBiNWNjO1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgfVxuICAgICYtLXN1Yjo6cGxhY2Vob2xkZXIge1xuICAgICAgICBmb250LXNpemU6IDhweDtcbiAgICB9XG4gICAgJi0tYW5zOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICB9XG59XG5cbi8vIOKUgOKUgCBBbnN3ZXIgb3B0aW9ucyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5mZS10cC1hbnMtZGl2aWRlciB7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYmFja2dyb3VuZDogI2U0ZTZmNDtcbiAgICBtYXJnaW46IDJweCAwO1xufVxuLmZlLXRwLWFucy1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiA2cHg7XG4gICAgJi0tdGFyZ2V0IHsgcGFkZGluZy1sZWZ0OiAwOyB9XG59XG4uZmUtdHAtYW5zLWRvdCB7XG4gICAgd2lkdGg6IDZweDtcbiAgICBoZWlnaHQ6IDZweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luLXRvcDogMTFweDtcbn1cblxuLy8g4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4vLyBGRS1OTSAg4oCUICBOb2RlIGVkaXQgbW9kYWwgIChmcm9zdGVkIGdsYXNzLCB0d28tY29sdW1uIGxheW91dClcbi8vIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuXG4uZmUtbm0taG9sZGVyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgaW5zZXQ6IDA7XG4gICAgei1pbmRleDogOTEwMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8vIGhvbGRlciBpcyBwYXNzLXRocm91Z2g7IGNoaWxkcmVuIHJlLWVuYWJsZVxufVxuXG4uZmUtbm0tYmFja2Ryb3Age1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBpbnNldDogMDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIwLCAyNCwgNjAsIDAuMzUpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigycHgpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgei1pbmRleDogMDtcbn1cblxuLy8g4pSA4pSAIE1vZGFsIHNoZWxsIOKUgOKUgFxuLmZlLW5tIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB3aWR0aDogbWluKDg2MHB4LCA5NHZ3KTtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDhweCk7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLy8gRnJvc3RlZCBnbGFzc1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjQ1LCAyNDYsIDI1MiwgMC44NCk7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpIHNhdHVyYXRlKDEuNCk7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCkgc2F0dXJhdGUoMS40KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTUpO1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAgIDAgMjRweCA2NHB4IHJnYmEoMjAsIDI0LCA2MCwgMC4yMiksXG4gICAgICAgIDAgMnB4IDhweCByZ2JhKDIwLCAyNCwgNjAsIDAuMTApLFxuICAgICAgICBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43MCk7XG5cbiAgICAvLyBBbm5vdGF0aW9uIHZhcmlhbnQ6IG5hcnJvd2VyLCB5ZWxsb3ctdGludGVkXG4gICAgJi5mZS1ubS0tYW5ub3RhdGlvbiB7XG4gICAgICAgIHdpZHRoOiBtaW4oNDgwcHgsIDk0dncpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjUzLCAyMzUsIDAuOTIpO1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjI0LCAyMDAsIDY0LCAwLjQ1KTtcbiAgICB9XG59XG5cbi8vIOKUgOKUgCBIZWFkZXIg4pSA4pSAXG4uZmUtbm0taGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogMTJweCAxNHB4IDEycHggMTZweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgxODAsIDE4OCwgMjIwLCAwLjM1KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDUpO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uZmUtbm0tdHlwZS1waWxsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSg2NCwgNzMsIDE1NCwgMC4xMCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg2NCwgNzMsIDE1NCwgMC4xOCk7XG59XG5cbi5mZS1ubS10eXBlLWljb24ge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBjb2xvcjogIzQwNDk5YTtcbiAgICBsaW5lLWhlaWdodDogMTtcbn1cblxuLmZlLW5tLXR5cGUtbmFtZSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMyYTJlNWU7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjtcbn1cblxuLmZlLW5tLXR5cGUtaWQge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogIzkwOTdiODtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmO1xufVxuXG4vLyAoUmVtb3ZlZCB0aGUgbGVnYWN5IC5mZS1ubS1jb2xvcnMgYmxvY2s6IGl0IGR1cGxpY2F0ZWQgdGhlIGJhc2UgY29sb3ItcGlja2VyXG4vLyBDU1Mgd2l0aCBhbiBvdXRkYXRlZCwgY29udHJhc3QtdW5hd2FyZSBzZWxlY3Qgc3RhdGUuIFRoZSBmZS1ubSBtb2RhbCBpcyBnb25lXG4vLyDigJQgTm9kZU9wdGlvbnMgaXMgdGhlIHdpemFyZCAoLmZlLW5vKSBub3csIGFuZCBzdHlsZS12MS5jc3MgYWxyZWFkeSBwcm92aWRlc1xuLy8gdGhlIHVwZGF0ZWQgcWRuYXByby1jb2xvci1waWNrZXIuIFRoZSBmbG93ZWRpdG9yIG9ubHkgb3ZlcnJpZGVzIHN3YXRjaFxuLy8gY29sb3Vycywgc2VlIC5mZS1uby1jb2xvcnMgYmVsb3cuIFtLaW0gMjAyNi0wNi0xOF0pXG5cbi5mZS1ubS1jbG9zZS1idG4sXG4uZmUtbm0tYmFjay1idG4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA1cHg7XG4gICAgcGFkZGluZzogNXB4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjNjY3O1xuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEyMG1zLCBjb2xvciAxMjBtcztcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAwLjA4KTsgY29sb3I6ICMyYTJlNWU7IH1cblxuICAgIC5tZGkgeyBmb250LXNpemU6IDE2cHg7IH1cbn1cblxuLmZlLW5tLWNsb3NlLWJ0biB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgcGFkZGluZzogNXB4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBjb2xvcjogIzg4ODtcbn1cblxuLy8g4pSA4pSAIEJvZHkg4pSA4pSAXG4uZmUtbm0tYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAxO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWluLWhlaWdodDogMDtcbiAgICAvLyBVbmlmb3JtIHBhZGRpbmcgc28gdGhlIHdoaXRlIGNvbnRlbnQgY2FyZCAoYW5kIHRoZSBpbmZvIHBhbmVsKSBoYXZlXG4gICAgLy8gYnJlYXRoaW5nIHJvb20gZnJvbSB0aGUgZnJvc3RlZC1nbGFzcyBtb2RhbCBlZGdlIG9uIGFsbCBzaWRlcy5cbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGdhcDogMTBweDtcbn1cblxuLy8gSW5mbyBwYW5lbCDigJQgbGVmdCBjb2x1bW5cbi5mZS1ubS1pbmZvIHtcbiAgICB3aWR0aDogMjIwcHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgcGFkZGluZzogMjBweCAxNnB4IDIwcHggMjBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNHB4O1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMTgwLCAxODgsIDIyMCwgMC4zMCk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMwKTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4uZmUtbm0taW5mby1pbGx1IHtcbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIH1cbn1cblxuLmZlLW5tLWluZm8tZGVzYyB7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBjb2xvcjogIzU1NWU4ODtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmO1xuICAgIG1hcmdpbjogMDtcbn1cblxuLy8gQ29udGVudCBwYW5lbCDigJQgcmlnaHQgY29sdW1uLCB3aGl0ZSByb3VuZGVkIGNhcmQgKG1pcnJvcnMgLm1vZGFsLXdpbmRvdylcbi5mZS1ubS1jb250ZW50IHtcbiAgICBmbGV4OiAxO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHBhZGRpbmc6IDIwcHggMjRweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMC41cHggc29saWQgI2M0YzdjYztcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuXG4gICAgLy8gRnVsbCB3aWR0aCBmb3IgYW5ub3RhdGlvbiAobm8gaW5mbyBwYW5lbCkg4oCUIHNhbWUgY2FyZCB0cmVhdG1lbnRcbiAgICAmLmZlLW5tLWNvbnRlbnQtLWZ1bGwge1xuICAgICAgICBwYWRkaW5nOiAyMHB4IDI0cHg7XG4gICAgfVxuXG4gICAgLy8gTmV1dHJhbGlzZSB0aGUgb2xkIGxlZ2FjeSB0b29sYmFyIC5mZS1zZWN0aW9uIGNocm9tZSAoYm9yZGVyLCBwYWRkaW5nKS5cbiAgICAvLyBJbiB0aGUgbmV3IG1vZGFsIHRoZSBzZWN0aW9uIHdyYXBwZXIgaXMgcHVyZWx5IHN0cnVjdHVyYWwuXG4gICAgLmZlLXNlY3Rpb24ge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGNsZWFyOiBub25lO1xuICAgIH1cblxuICAgIC8vIFRoZSBmZS1jYXJkIGFuZCBmZS1jYXJkLWJvZHkgd3JhcHBlcnMgZG9uJ3QgbmVlZCBleHRyYSBzcGFjaW5nIGhlcmUg4oCUXG4gICAgLy8gdGhlIGNvbnRlbnQgcGFuZWwgcGFkZGluZyBhbHJlYWR5IHByb3ZpZGVzIHRoZSBicmVhdGhpbmcgcm9vbS5cbiAgICAuZmUtY2FyZC1ib2R5IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAvLyBxZG5hcHJvLW1vZGFsLWxhYmVsIOKAlCBzY29wZWQgaGVyZSBiZWNhdXNlIHRoZSBydWxlIGluIHN0eWxlLXYxLmNzc1xuICAgIC8vIG9ubHkgYXBwbGllcyBpbnNpZGUgLnFkbmFwcm8tbW9kYWwgKHdoaWNoIHRoZSBmbG93IGVkaXRvciBpcyBub3QpLlxuICAgIGxhYmVsLnFkbmFwcm8tbW9kYWwtbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICAgICAgY29sb3I6ICMwYjBiMGQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcblxuICAgICAgICAvLyBSZXF1aXJlZCBhc3RlcmlzayDigJQgbWF0Y2hlcyB0aGUgcWRuYXByby1pbnB1dCAuaW5wdXQtcmVxdWlyZWQgY29sb3VyLlxuICAgICAgICAuZmUtbGFiZWwtcmVxdWlyZWQge1xuICAgICAgICAgICAgY29sb3I6ICNjNjVhNWE7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUHVzaCB0aGUgcXVlc3Rpb24gaGVhZGVyICsgZmllbGQgZG93biBzbyB0aGUgZmllbGQgY2xlYXJzIHRoZSBmbG9hdGVkXG4gICAgLy8gY29sb3VyIHBpY2tlciwgZ2l2aW5nIHN5bW1ldHJpYyBzcGFjaW5nOiAoZnJhbWUtdG9wIOKGkiBjb2xvdXIgcGlja2VyKSDiiYhcbiAgICAvLyAoY29sb3VyIHBpY2tlciDihpIgZmllbGQpLiBUaGUgY29sb3VyIHBpY2tlciBzdGF5cyBhbmNob3JlZCB0b3AtcmlnaHQuXG4gICAgbGFiZWwucWRuYXByby1tb2RhbC1sYWJlbC5mZS1ubS1xLWxhYmVsIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjJweDtcbiAgICB9XG59XG5cbi8vIOKUgOKUgCBGb290ZXIg4pSA4pSAXG4uZmUtbm0tZm9vdGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7ICAgICAgICAgLy8gYW5jaG9yIGZvciB0aGUgY2VudGVyZWQgcGxheSBidXR0b25cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHBhZGRpbmc6IDEwcHggMTRweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgxODAsIDE4OCwgMjIwLCAwLjM1KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDApO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGdhcDogOHB4O1xufVxuXG4vLyBDZW50ZXJlZCByb3VuZCBcIlN0YXJ0IHZhbmFmIGhpZXJcIiBwbGF5IGJ1dHRvbiBpbiB0aGUgZm9vdGVyXG4uZmUtbm0tZm9vdGVyLXBsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogIzQwNDk5YTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNDBtcywgdHJhbnNmb3JtIDE0MG1zLCBib3gtc2hhZG93IDE0MG1zO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDY0LCA3MywgMTU0LCAwLjMwKTtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgLm1kaSB7IGxpbmUtaGVpZ2h0OiAxOyB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzM1M2U4YztcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHNjYWxlKDEuMDgpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoNjQsIDczLCAxNTQsIDAuNDApO1xuICAgIH1cbn1cblxuLmZlLW5tLWZvb3Rlci1sZWZ0LFxuLmZlLW5tLWZvb3Rlci1yaWdodCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xufVxuXG4vLyBBZHZhbmNlZCBzZXR0aW5ncyBidXR0b25cbi5mZS1ubS1hZHYtYnRuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBib3JkZXI6IDEuNXB4IHNvbGlkIHJnYmEoNjQsIDczLCAxNTQsIDAuMzUpO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXMsIGJvcmRlci1jb2xvciAxMjBtcztcblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAwLjA4KTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNDA0OTlhO1xuICAgIH1cblxuICAgIC5tZGkgeyBmb250LXNpemU6IDE0cHg7IH1cbn1cblxuLy8gQ2FuY2VsIC8gU2F2ZSBidXR0b25zXG4uZmUtbm0tYnRuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcywgYm94LXNoYWRvdyAxMjBtcztcblxuICAgICYtLWNhbmNlbCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNjQsIDczLCAxNTQsIDAuMDgpO1xuICAgICAgICBjb2xvcjogIzQwNDk5YTtcbiAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoNjQsIDczLCAxNTQsIDAuMTQpOyB9XG4gICAgfVxuXG4gICAgJi0tc2F2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICM0MDQ5OWE7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSg2NCwgNzMsIDE1NCwgMC4zMCk7XG4gICAgICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjMzMzZDg4OyBib3gtc2hhZG93OiAwIDNweCAxMnB4IHJnYmEoNjQsIDczLCAxNTQsIDAuNDApOyB9XG4gICAgfVxufVxuXG5cbi8vIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuLy8gRkUtQU5TV0VSICDigJQgIEFuc3dlciBvcHRpb24gcm93cyBpbiB0aGUgbm9kZSBtb2RhbFxuLy8g4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG5cbi5mZS1hbnN3ZXItcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlNGVmO1xuICAgIGJhY2tncm91bmQ6ICNmYWZiZmY7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgbWluLWhlaWdodDogMzhweDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMTQwbXMsIGJveC1zaGFkb3cgMTQwbXM7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLy8gU2hvdyBhY3Rpb25zIG9uIGhvdmVyXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2E4YjJlODtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoNjQsIDczLCAxNTQsIDAuMTApO1xuXG4gICAgICAgIC5mZS1hbnN3ZXItYWN0aW9ucyB7IG9wYWNpdHk6IDE7IHBvaW50ZXItZXZlbnRzOiBhbGw7IH1cbiAgICAgICAgLmZlLWFuc3dlci1hY3QtLWRlbGV0ZSxcbiAgICAgICAgLmZlLWFuc3dlci1hY3QtLXVubGluayB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IG9wYWNpdHk6IDE7IH1cbiAgICB9XG5cbiAgICAvLyBVbmxpbmtlZCBzdGF0ZTogYW1iZXIgdGludFxuICAgICYtLXVubGlua2VkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZGRiODRhO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmYmYwO1xuICAgIH1cblxuICAgIC8vIENvbmZpcm0tZGVsZXRlIHN0YXRlOiByZWQgdGludFxuICAgICYtLWNvbmZpcm1pbmcge1xuICAgICAgICBib3JkZXItY29sb3I6ICNlNGEwYTA7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY1ZjU7XG4gICAgfVxufVxuXG4uZmUtYW5zd2VyLWRyYWcge1xuICAgIHBhZGRpbmc6IDAgNXB4IDAgOHB4O1xuICAgIGNvbG9yOiAjY2NjO1xuICAgIGN1cnNvcjogZ3JhYjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4uZmUtYW5zd2VyLWxhYmVsIHtcbiAgICBmbGV4OiAxO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjMmEyZTVlO1xuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHBhZGRpbmc6IDlweCA2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBtaW4td2lkdGg6IDA7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDEuNXB4ICM0MDQ5OWE7XG4gICAgfVxuXG4gICAgJltyZWFkb25seV0geyBjb2xvcjogIzZhNmU5YTsgY3Vyc29yOiBkZWZhdWx0OyB9XG59XG5cbi8vIENvbm5lY3Rpb24gcGlsbFxuLmZlLWFuc3dlci1jb25uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogM3B4O1xuICAgIHBhZGRpbmc6IDNweCA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7XG5cbiAgICAmLS1saW5rZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWVmMGZmO1xuICAgICAgICBjb2xvcjogIzQwNDk5YTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuXG4gICAgLy8gTGlua2VkIHBpbGwgdGhhdCBoYXMgYSByZXNvbHZhYmxlIHRhcmdldCBxdWVzdGlvbjogc3VidGxlIGhvdmVyIGhpZ2hsaWdodFxuICAgIC8vIChjdXJzb3Igc3RheXMgZGVmYXVsdCDigJQgdGhlIHRvb2x0aXAgYXBwZWFyaW5nIGlzIGN1ZSBlbm91Z2gpLlxuICAgICYtLWxpbmtlZC5mZS1hbnN3ZXItY29ubi0taGFzLXRpcCB7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXM7XG5cbiAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6ICNlMGUzZmY7IH1cbiAgICB9XG5cbiAgICAmLS1lbXB0eSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmYzY2Q7XG4gICAgICAgIGNvbG9yOiAjOGE2YTEwO1xuICAgICAgICBib3JkZXI6IDFweCBkYXNoZWQgI2RkYjg0YTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEyMG1zO1xuXG4gICAgICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjZmZlZWEwOyB9XG4gICAgfVxufVxuXG4vLyBOZXh0LXN0ZXAgcm93IChPcGVuIGludm9lciAvIHNpbmdsZS1saW5rIG5vZGVzKVxuLmZlLW5leHQtc3RlcC1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG59XG5cbi5mZS1uZXh0LXN0ZXAtcmVtb3ZlIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjb2xvcjogI2M0MzYyYTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmO1xuICAgIHBhZGRpbmc6IDNweCA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXM7XG5cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSgxOTYsIDU0LCA0MiwgMC4wOCk7IH1cblxuICAgIC5tZGkgeyBmb250LXNpemU6IDEzcHg7IH1cbn1cblxuLy8gVG9vbHRpcCBvbiB0aGUgY29ubmVjdGlvbiBwaWxsIOKAlCBzaG93cyB0aGUgdGFyZ2V0IG5vZGUncyBxdWVzdGlvbi5cbi8vIHBvc2l0aW9uOmZpeGVkIChKUy1wb3NpdGlvbmVkIGZyb20gdGhlIHBpbGwncyBib3VuZGluZyByZWN0KSBzbyBpdCBpcyBuZXZlclxuLy8gY2xpcHBlZCBieSAuZmUtbm0tY29udGVudCdzIG92ZXJmbG93LiBObyB0cmFuc2Zvcm1lZCBhbmNlc3RvciBleGlzdHMsIHNvXG4vLyBmaXhlZCByZXNvbHZlcyBhZ2FpbnN0IHRoZSB2aWV3cG9ydC5cbi5mZS1jb25uLXRpcCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDkzMDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgY2FsYygtMTAwJSAtIDEwcHgpKTtcbiAgICBtYXgtd2lkdGg6IDI4MHB4O1xuICAgIHBhZGRpbmc6IDdweCAxMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDQyLCA0NiwgOTQsIDAuOTYpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjtcbiAgICBib3gtc2hhZG93OiAwIDZweCAyMHB4IHJnYmEoMjAsIDI0LCA2MCwgMC4yOCk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIGFuaW1hdGlvbjogZmUtY29ubi10aXAtaW4gMTIwbXMgZWFzZTtcblxuICAgIC8vIGRvd253YXJkIGFycm93IGNlbnRlcmVkIHVuZGVyIHRoZSBidWJibGVcbiAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgYm9yZGVyOiA1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6IHJnYmEoNDIsIDQ2LCA5NCwgMC45Nik7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZlLWNvbm4tdGlwLWluIHtcbiAgICBmcm9tIHsgb3BhY2l0eTogMDsgfVxuICAgIHRvICAgeyBvcGFjaXR5OiAxOyB9XG59XG5cbi8vICNmZS1kdXAtdGlwIHJlbW92ZWQg4oCUIGR1cGxpY2F0ZS1saW5rcyBiYWRnZSB0b29sdGlwIG5vdyB1c2VzIEdvSlMgbmF0aXZlXG4vLyB0b29sVGlwIChkdXBUb29sdGlwIGFkb3JubWVudCBpbiBkdXBsaWNhdGVfbGlua3MuanMpLCB3aGljaCBwb3NpdGlvbnMgaXRzZWxmXG4vLyB3aXRoaW4gdGhlIGRpYWdyYW0gbGF5ZXIgYW5kIGlzIHVuYWZmZWN0ZWQgYnkgYm9keSB7IHpvb206MC44IH0uXG5cbi8vIEhvdmVyIGFjdGlvbiBidXR0b25zIChzbGlkZS1pbiBmcm9tIHJpZ2h0KVxuLmZlLWFuc3dlci1hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAycHg7XG4gICAgcGFkZGluZzogMCA1cHggMCAwO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNDBtcztcbn1cblxuLmZlLWFuc3dlci1hY3Qge1xuICAgIHdpZHRoOiAyNnB4O1xuICAgIGhlaWdodDogMjZweDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcywgYm9yZGVyLWNvbG9yIDEyMG1zLCBjb2xvciAxMjBtcztcbiAgICBmbGV4LXNocmluazogMDtcblxuICAgICYtLXVubGluayB7XG4gICAgICAgIGNvbG9yOiAjOWE2YTEwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmM2NkO1xuICAgICAgICBib3JkZXItY29sb3I6ICNmMGQwNjA7XG5cbiAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6ICNmZGU4YTA7IGJvcmRlci1jb2xvcjogI2QwYTgyMDsgfVxuICAgIH1cblxuICAgICYtLWRlbGV0ZSB7XG4gICAgICAgIGNvbG9yOiAjYzk0MDQwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmRlOGU4O1xuICAgICAgICBib3JkZXItY29sb3I6ICNlOGIwYjA7XG5cbiAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6ICNmY2M7IGJvcmRlci1jb2xvcjogI2M5NDA0MDsgfVxuICAgIH1cbn1cblxuLy8gSW5saW5lIGRlbGV0ZSBjb25maXJtIGJhclxuLmZlLWFuc3dlci1jb25maXJtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgZmxleDogMTtcbiAgICBwYWRkaW5nOiA2cHggMTBweDtcbn1cblxuLmZlLWFuc3dlci1jb25maXJtLWljb24ge1xuICAgIGNvbG9yOiAjYzk0MDQwO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLmZlLWFuc3dlci1jb25maXJtLXRleHQge1xuICAgIGZsZXg6IDE7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICNjOTQwNDA7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjtcbn1cblxuLmZlLWFuc3dlci1idG4ge1xuICAgIHBhZGRpbmc6IDRweCAxMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEyMG1zO1xuXG4gICAgJi0tY2FuY2VsIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2YwZjFmNDtcbiAgICAgICAgY29sb3I6ICM1NTU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMGQyZGI7XG4gICAgICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjZTRlNmVmOyB9XG4gICAgfVxuXG4gICAgJi0tZGVsZXRlIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2M5NDA0MDtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjYTgzMDMwOyB9XG4gICAgfVxufVxuXG4vLyDilIDilIDilIAgRmxvdyBFZGl0b3IgUHJldmlldyBNb2RhbCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLmZlLXBtLWZhZGUtZW50ZXItYWN0aXZlLFxuLmZlLXBtLWZhZGUtbGVhdmUtYWN0aXZlIHsgdHJhbnNpdGlvbjogb3BhY2l0eSAxODBtcyBlYXNlOyB9XG4uZmUtcG0tZmFkZS1lbnRlci1mcm9tLFxuLmZlLXBtLWZhZGUtbGVhdmUtdG8gICAgeyBvcGFjaXR5OiAwOyB9XG5cbi5mZS1wbS1iYWNrZHJvcCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGluc2V0OiAwO1xuICAgIHotaW5kZXg6IDEwMTAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTAsIDEyLCA0MCwgMC43Mik7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgLy8gS2VlcCB0aGUgYmFja2Ryb3AncyBvd24gc2Nyb2xsIGZyb20gY2hhaW5pbmcgdG8gdGhlIHBhZ2UgYmVoaW5kIGl0LlxuICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG59XG5cbi5mZS1wbS1zaGVsbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxNnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAzMnB4O1xufVxuXG4vLyBEZXZpY2Ugc3dpdGNoZXIgKyBjbG9zZSBiYXJcbi5mZS1wbS1jaHJvbWUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG59XG5cbi5mZS1wbS1kZXZpY2VzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjEwKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTYpO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiAzcHg7XG59XG5cbi5mZS1wbS1kZXZpY2UtYnRuIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDM0cHg7XG4gICAgaGVpZ2h0OiAzNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC42NSk7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE0MG1zLCBjb2xvciAxNDBtcztcblxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpOyBjb2xvcjogI2ZmZjsgfVxuXG4gICAgJi0tYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjIwKTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKDAsMCwwLDAuMjUpO1xuICAgIH1cbn1cblxuLmZlLXBtLWNsb3NlLWJ0biB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzNHB4O1xuICAgIGhlaWdodDogMzRweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjE4KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpO1xuICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNzUpO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNDBtcywgY29sb3IgMTQwbXM7XG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4xNik7IGNvbG9yOiAjZmZmOyB9XG59XG5cbi8vIFRoaW4gZGl2aWRlciBiZXR3ZWVuIGRldmljZSBidXR0b25zIGFuZCB0aGUgem9vbSB0b2dnbGUgaW5zaWRlIC5mZS1wbS1kZXZpY2VzXG4uZmUtcG0tZGV2aWNlLXNlcCB7XG4gICAgd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjIwKTtcbiAgICBtYXJnaW46IDAgMnB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG5cbi8vIERldmljZSBmcmFtZXNcbi5mZS1wbS1zdGFnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmZlLXBtLWZyYW1lIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogIzFhMWIyZTtcbiAgICBib3JkZXI6IDNweCBzb2xpZCAjM2EzYjU1O1xuICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCAwIDAgMXB4IHJnYmEoMjU1LDI1NSwyNTUsMC4wNiksXG4gICAgICAgIDAgMjRweCA4MHB4IHJnYmEoMCwwLDAsMC43KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAyODBtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxcbiAgICAgICAgICAgICAgICBoZWlnaHQgMjgwbXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1cyAyODBtcztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLy8gUGhvbmUgcG9ydHJhaXQgKGRlZmF1bHQpXG4gICAgJi0tcGhvbmUge1xuICAgICAgICB3aWR0aDogMzc1cHg7XG4gICAgICAgIGhlaWdodDogODEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDQ0cHg7XG4gICAgfVxuXG4gICAgLy8gVGFibGV0IHBvcnRyYWl0XG4gICAgJi0tdGFibGV0LXBvcnRyYWl0IHtcbiAgICAgICAgd2lkdGg6IDc2OHB4O1xuICAgICAgICBoZWlnaHQ6IDEwMjRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICB9XG5cbiAgICAvLyBUYWJsZXQgbGFuZHNjYXBlXG4gICAgJi0tdGFibGV0LWxhbmRzY2FwZSB7XG4gICAgICAgIHdpZHRoOiAxMDI0cHg7XG4gICAgICAgIGhlaWdodDogNzY4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgfVxuXG4gICAgLy8gUGhvbmUgbGFuZHNjYXBlXG4gICAgJi0tcGhvbmUtbGFuZHNjYXBlIHtcbiAgICAgICAgd2lkdGg6IDgxMnB4O1xuICAgICAgICBoZWlnaHQ6IDM3NXB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzMnB4O1xuICAgIH1cblxuICAgIC8vIERlc2t0b3Ag4oCUIG5lYXJseSB2aWV3cG9ydC1maWxsaW5nIChubyBmaXhlZCBhc3BlY3QsIG5vIHpvb207IENTUyBzaXplcyBpdCkuXG4gICAgJi0tZGVza3RvcCB7XG4gICAgICAgIHdpZHRoOiBtaW4oMTY4MHB4LCA5NnZ3KTtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTQwcHgpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMTAwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgfVxufVxuXG4uZmUtcG0tbm90Y2gge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHdpZHRoOiAxMjBweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgbWFyZ2luLXRvcDogNnB4O1xuICAgIGJhY2tncm91bmQ6ICMxYTFiMmU7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDE4cHggMThweDtcbiAgICB6LWluZGV4OiAyO1xuXG4gICAgLmZlLXBtLWZyYW1lLS10YWJsZXQtcG9ydHJhaXQgJixcbiAgICAuZmUtcG0tZnJhbWUtLXRhYmxldC1sYW5kc2NhcGUgJixcbiAgICAuZmUtcG0tZnJhbWUtLXBob25lLWxhbmRzY2FwZSAmLFxuICAgIC5mZS1wbS1mcmFtZS0tZGVza3RvcCAmIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5mZS1wbS1zY3JlZW4ge1xuICAgIGZsZXg6IDE7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIC5mZS1wbS1mcmFtZS0tcGhvbmUgJiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7XG4gICAgfVxufVxuXG4vLyBOb24tcGhvbmUtcG9ydHJhaXQgZnJhbWVzIGhpZGUgdGhlIG5vdGNoL2hvbWUtYmFyIOKGkiBpbnNldCB0aGUgKHdoaXRlKSBzY3JlZW4gYVxuLy8gbGl0dGxlIHNvIGNvbnRlbnQgaXNuJ3QgZmx1c2ggYWdhaW5zdCAvIGNsaXBwZWQgYnkgdGhlIGZyYW1lIGVkZ2UuIE1pcnJvcnMgdGhlXG4vLyBhcHAtbGF1bmNoIG92ZXJsYXkgKC5hbC1zY3JlZW4pLiBQaG9uZS1wb3J0cmFpdCBrZWVwcyBpdHMgbm90Y2gvaG9tZS1iYXIgYmV6ZWwuXG4uZmUtcG0tZnJhbWUtLXRhYmxldC1wb3J0cmFpdCA+IC5mZS1wbS1zY3JlZW4sXG4uZmUtcG0tZnJhbWUtLXRhYmxldC1sYW5kc2NhcGUgPiAuZmUtcG0tc2NyZWVuLFxuLmZlLXBtLWZyYW1lLS1kZXNrdG9wID4gLmZlLXBtLXNjcmVlbiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiAyMnB4O1xufVxuLmZlLXBtLWZyYW1lLS1waG9uZS1sYW5kc2NhcGUgPiAuZmUtcG0tc2NyZWVuIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IDE2cHg7XG59XG5cbi5mZS1wbS1pZnJhbWUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5mZS1wbS1ob21lLWJhciB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgd2lkdGg6IDEyMHB4O1xuICAgIGhlaWdodDogNXB4O1xuICAgIG1hcmdpbjogOHB4IGF1dG87XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjI1KTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG5cbiAgICAuZmUtcG0tZnJhbWUtLXRhYmxldC1wb3J0cmFpdCAmLFxuICAgIC5mZS1wbS1mcmFtZS0tdGFibGV0LWxhbmRzY2FwZSAmLFxuICAgIC5mZS1wbS1mcmFtZS0tcGhvbmUtbGFuZHNjYXBlICYsXG4gICAgLmZlLXBtLWZyYW1lLS1kZXNrdG9wICYge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLy8gTG9hZGluZyAvIGVycm9yIHN0YXRlIGluc2lkZSB0aGUgc2NyZWVuXG4uZmUtcG0tbG9hZGluZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIGNvbG9yOiAjNDA0OTlhO1xufVxuXG4uZmUtcG0tc3Bpbm5lciB7XG4gICAgZm9udC1zaXplOiA0MHB4O1xufVxuXG4uZmUtcG0tZXJyb3ItaWNvbiB7XG4gICAgZm9udC1zaXplOiA0MHB4O1xuICAgIGNvbG9yOiAjYzk0MDQwO1xufVxuXG4uZmUtcG0tbG9hZGluZy10ZXh0IHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICM2YjcyODA7XG59XG5cbi8vIFRvb2xiYXIgcGxheSBidXR0b25cbi5mZS1wcmV2aWV3LXRvb2xiYXItYnRuIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDEuNmVtO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgICAmOmhvdmVyIHsgb3BhY2l0eTogMTsgfVxufVxuXG4vLyBOb2RlIG1vZGFsIFwiU3RhcnQgdmFuYWYgaGllclwiIGJ1dHRvblxuLmZlLW5tLXByZXZpZXctYnRuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNXB4O1xuICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBib3JkZXI6IDEuNXB4IHNvbGlkIHJnYmEoNjQsNzMsMTU0LDAuMzUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNjQsNzMsMTU0LDAuMDcpO1xuICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE0MG1zLCBib3JkZXItY29sb3IgMTQwbXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBtYXJnaW4tcmlnaHQ6IDRweDtcblxuICAgIC5tZGkgeyBmb250LXNpemU6IDE1cHg7IH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDY0LDczLDE1NCwwLjEzKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDY0LDczLDE1NCwwLjU1KTtcbiAgICB9XG59XG5cbi8vIOKUgOKUgCBBZGQtYmFyOiByZXBsYWNlcyBcIlRvZXZvZWdlbiBBbnR3b29yZG9wdGllXCIgYnV0dG9uIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLmZlLWFkZC1iYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtaW4taGVpZ2h0OiAzOHB4O1xuICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgYm9yZGVyOiAxLjVweCBkYXNoZWQgcmdiYSg3MCwgODIsIDI0MywgMC4zMCk7XG4gICAgYmFja2dyb3VuZDogI2ZhZmJmZjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICM0NjUyZjM7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDE1MG1zLCBiYWNrZ3JvdW5kIDE1MG1zO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmMGYxZmI7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg3MCwgODIsIDI0MywgMC41NSk7XG5cbiAgICAgICAgLmZlLWFkZC1iYXItY2lyY2xlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICM0NjUyZjM7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5mZS1hZGQtYmFyLWNpcmNsZSB7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjEyKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY29sb3I6ICM0NjUyZjM7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNTBtcywgY29sb3IgMTUwbXM7XG59XG5cbkBrZXlmcmFtZXMgZmUtcHVibGlzaC1wdWxzZSB7XG4gICAgMCUsIDEwMCUgeyBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMjQ1LCAxNTgsIDExLCAwLjcpOyB9XG4gICAgNTAlICAgICAgIHsgYm94LXNoYWRvdzogMCAwIDAgNXB4IHJnYmEoMjQ1LCAxNTgsIDExLCAwKTsgfVxufVxuXG4vLyDilIDilIAgVmVyc2lvbiBsb2cgbW9kYWwgKC5mZS12bC0qKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLmZlLXZsLXdyYXAge1xuICAgIGZvbnQtZmFtaWx5OiBpbnRlciwgc2Fucy1zZXJpZjtcbiAgICBtaW4taGVpZ2h0OiAxMjBweDtcbn1cblxuLmZlLXZsLWxvYWRpbmcsXG4uZmUtdmwtZXJyb3IsXG4uZmUtdmwtZW1wdHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiA0OHB4IDE2cHg7XG4gICAgY29sb3I6ICM4ODkwYjg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGdhcDogOHB4O1xuXG4gICAgLm1kaSB7IGZvbnQtc2l6ZTogMThweDsgfVxufVxuXG4uZmUtdmwtZXJyb3IgeyBjb2xvcjogI2M0MzYyYTsgfVxuXG4vLyBWZXJzaW9uIHNlY3Rpb25cbi5mZS12bC1zZWN0aW9uIHtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNGU3ZjU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG5cbiAgICAmOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG59XG5cbi5mZS12bC1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiAxMHB4IDE0cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQ6ICNmNWY2ZmQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXM7XG5cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogI2VjZWZmZTsgfVxuXG4gICAgLmZlLXZsLXNlY3Rpb24tLW9wZW4gJiB7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICNlNGU3ZjU7XG4gICAgfVxufVxuXG4uZmUtdmwtY2hldnJvbiB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGNvbG9yOiAjODg5MGI4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNTBtcztcbn1cblxuLmZlLXZsLXRpdGxlIHtcbiAgICBmbGV4OiAxO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzJhMmU1ZTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuXG4gICAgc3Ryb25nIHsgZm9udC13ZWlnaHQ6IDYwMDsgfVxufVxuXG4uZmUtdmwtdGFnIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgICBwYWRkaW5nOiAxcHggN3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgYmFja2dyb3VuZDogI2UwZTNmZjtcbiAgICBjb2xvcjogIzQwNDk5YTtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uZmUtdmwtdGFnLXB1YiB7XG4gICAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBjb2xvcjogIzg4OTBiODtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uZmUtdmwtY291bnQge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogI2EwYTRiODtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vLyBFdmVudHMgbGlzdCDigJQgaGlkZGVuIHdoZW4gY29sbGFwc2VkXG4uZmUtdmwtZXZlbnRzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBhZGRpbmc6IDZweCAwO1xuXG4gICAgLmZlLXZsLXNlY3Rpb24tLW9wZW4gJiB7IGRpc3BsYXk6IGJsb2NrOyB9XG59XG5cbi5mZS12bC1ldmVudC1lbXB0eSB7XG4gICAgcGFkZGluZzogMTZweCAxNHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogI2EwYTRiODtcbn1cblxuLmZlLXZsLWV2ZW50IHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjgwcHggMWZyIGF1dG87XG4gICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDdweCAxNHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjBmMWY4O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTAwbXM7XG5cbiAgICAmOmxhc3QtY2hpbGQgeyBib3JkZXItYm90dG9tOiBub25lOyB9XG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6ICNmOWY5ZmQ7IH1cbn1cblxuLmZlLXZsLWV2ZW50LW1ldGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA1cHg7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4uZmUtdmwtcGlsbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGJhY2tncm91bmQ6ICNlOGVhZjg7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG5cbiAgICAvLyBOb2RlIGV2ZW50cyDigJQgYmx1ZS1pc2hcbiAgICAmLmZlLXZsLXBpbGwtLW5vZGUtY3JlYXRlZCAgICB7IGJhY2tncm91bmQ6ICNkMWZhZTU7IGNvbG9yOiAjMDY1ZjQ2OyB9XG4gICAgJi5mZS12bC1waWxsLS1ub2RlLWRlbGV0ZWQgICAgeyBiYWNrZ3JvdW5kOiAjZmVlMmUyOyBjb2xvcjogIzk5MWIxYjsgfVxuICAgICYuZmUtdmwtcGlsbC0tbm9kZS10eXBlLWNoYW5nZWQgeyBiYWNrZ3JvdW5kOiAjZWRlOWZlOyBjb2xvcjogIzViMjFiNjsgfVxuXG4gICAgLy8gTGFiZWwgZXZlbnRzIOKAlCBwdXJwbGVcbiAgICAmLmZlLXZsLXBpbGwtLWxhYmVsLWNoYW5nZWQsXG4gICAgJi5mZS12bC1waWxsLS1zdWJsYWJlbC1jaGFuZ2VkIHsgYmFja2dyb3VuZDogI2VkZTlmZTsgY29sb3I6ICM1YjIxYjY7IH1cblxuICAgIC8vIE1ldGFcbiAgICAmLmZlLXZsLXBpbGwtLW1ldGEtY2hhbmdlZCAgICB7IGJhY2tncm91bmQ6ICNmZWYzYzc7IGNvbG9yOiAjOTI0MDBlOyB9XG5cbiAgICAvLyBMaW5rc1xuICAgICYuZmUtdmwtcGlsbC0tbGluay1jcmVhdGVkLFxuICAgICYuZmUtdmwtcGlsbC0tbGluay1jb25uZWN0ZWQgIHsgYmFja2dyb3VuZDogI2QxZmFlNTsgY29sb3I6ICMwNjVmNDY7IH1cbiAgICAmLmZlLXZsLXBpbGwtLWxpbmstZGlzY29ubmVjdGVkLFxuICAgICYuZmUtdmwtcGlsbC0tbGluay1kZWxldGVkICAgIHsgYmFja2dyb3VuZDogI2ZlZTJlMjsgY29sb3I6ICM5OTFiMWI7IH1cblxuICAgIC8vIEFuc3dlcnNcbiAgICAmLmZlLXZsLXBpbGwtLWFuc3dlci1hZGRlZCAgICB7IGJhY2tncm91bmQ6ICNkMWZhZTU7IGNvbG9yOiAjMDY1ZjQ2OyB9XG4gICAgJi5mZS12bC1waWxsLS1hbnN3ZXItY2hhbmdlZCAgeyBiYWNrZ3JvdW5kOiAjZmVmM2M3OyBjb2xvcjogIzkyNDAwZTsgfVxuICAgICYuZmUtdmwtcGlsbC0tYW5zd2VyLWRlbGV0ZWQgIHsgYmFja2dyb3VuZDogI2ZlZTJlMjsgY29sb3I6ICM5OTFiMWI7IH1cbn1cblxuLmZlLXZsLXRpbWUge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogI2EwYTRiODtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uZmUtdmwtdXNlciB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiAjNmI3MjgwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgbWF4LXdpZHRoOiAxMjBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4uZmUtdmwtZXZlbnQtZGV0YWlsIHtcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi5mZS12bC1ub2RlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICM2YjcyODA7XG4gICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLmZlLXZsLWZpZWxkIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBjb2xvcjogIzRiNTU2MztcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuXG4uZmUtdmwtZmllbGQtbmFtZSB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzM3NDE1MTtcbn1cblxuLmZlLXZsLWJlZm9yZSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgY29sb3I6ICM5Y2EzYWY7XG59XG5cbi5mZS12bC1hcnJvdyB7XG4gICAgY29sb3I6ICNkMWQ1ZGI7XG4gICAgZm9udC1zaXplOiAxMXB4O1xufVxuXG4uZmUtdmwtYWZ0ZXIge1xuICAgIGNvbG9yOiAjMTExODI3O1xufVxuXG4vLyDilIDilIAgVmVyc2lvbiBsb2cgcm93IGVudGVyIGFuaW1hdGlvbiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbkBrZXlmcmFtZXMgZmUtdmwtcm93LWluIHtcbiAgICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpOyB9XG4gICAgdG8gICB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxufVxuXG4uZmUtdmwtZXZlbnQtLWVudGVyaW5nIHtcbiAgICBhbmltYXRpb246IGZlLXZsLXJvdy1pbiAxODBtcyBjdWJpYy1iZXppZXIoMC4yLCAwLCAwLjM4LCAxKSBib3RoO1xufVxuXG4vLyDilIDilIAgVmVyc2lvbiBsb2cgZmlsdGVyIGJhciDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5mZS12bC1maWx0ZXItYmFyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIGFuY2hvciBmb3IgdGhlIGFic29sdXRlIGluZGljYXRvclxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA0cHg7XG4gICAgcGFkZGluZzogMCAwIDEycHggMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTRlN2Y1O1xufVxuXG4uZmUtdmwtZmlsdGVyLWluZGljYXRvciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6ICNlOGVhZmQ7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4OiAwO1xuICAgIC8vIGxlZnQvdG9wL3dpZHRoL2hlaWdodCB0cmFuc2l0aW9uIGFkZGVkIGJ5IEpTIGFmdGVyIGluaXRpYWwgc25hcC1wbGFjZW1lbnRcbn1cblxuLmZlLXZsLXBpbGwtZmlsdGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTsgLy8gYWJvdmUgdGhlIGluZGljYXRvclxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBwYWRkaW5nOiA1cHggMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBmb250LWZhbWlseTogaW50ZXIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICM4ODkwYjg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDE1MG1zO1xuXG4gICAgJi0tYWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuXG4gICAgJjpob3Zlcjpub3QoLmZlLXZsLXBpbGwtZmlsdGVyLS1hY3RpdmUpIHtcbiAgICAgICAgY29sb3I6ICM1NTYwYjg7XG4gICAgfVxuXG4gICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkICM0MDQ5OWE7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gICAgfVxufVxuXG4vLyBSZXN0b3JlIGJ1dHRvblxuLmZlLXZsLXJlc3RvcmUtYnRuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzdkMmZlO1xuICAgIGJhY2tncm91bmQ6ICNlZWYyZmY7XG4gICAgY29sb3I6ICM0MzM4Y2E7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXMsIGJvcmRlci1jb2xvciAxMjBtcztcblxuICAgICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZTBlN2ZmO1xuICAgICAgICBib3JkZXItY29sb3I6ICNhNWI0ZmM7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCB7IG9wYWNpdHk6IDAuNjsgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbiAgICAmLmZlLXZsLXJlc3RvcmUtYnRuLS1kb25lIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2QxZmFlNTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNmVlN2I3O1xuICAgICAgICBjb2xvcjogIzA2NWY0NjtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cbn1cblxuLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4gICBPcGVuIGludm9lciBtb2RhbCDigJQgSW5wdXRGaWVsZE9wdGlvbnMgY29udmVydGVkIHRvIHFkbmFwcm8td2l6YXJkLW1vZGFsXG4gICAod20td2l0aC1pbmZvOiBsZWZ0IGluZm8gcGFuZWwgKyBsaXZlIGR1bW15IHByZXZpZXcsIHJpZ2h0IHNldHRpbmdzKS5cbiAgIFNoZWxsL2Nocm9tZSAod20tKikgY29tZXMgZnJvbSBzdHlsZS12MS5jc3M7IHRoZXNlIGFyZSB0aGUgbW9kYWwtc3BlY2lmaWNcbiAgIGJpdHMuIFtLaW0gKyBDbGF1ZGUgMjAyNi0wNi0xOF1cbiAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuXG4vLyDilIDilIAgUmlnaHQgY29sdW1uOiBoZWFkZXIgLyB0YWJiYXIgLyBzY3JvbGxpbmcgYm9keSAvIGZvb3RlciDilIDilIBcbi5mZS1vaS1oZWFkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDE0cHggMTZweCA0cHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG4uZmUtb2ktdGl0bGUge1xuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG59XG4uZmUtb2kteCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6IDRweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogIzZiNzI4MDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXMgZWFzZSwgY29sb3IgMTIwbXMgZWFzZTtcblxuICAgIGkgeyBmb250LXNpemU6IDIwcHg7IH1cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSg2NCwgNzMsIDE1NCwgMC4wOCk7IGNvbG9yOiAjNDA0OTlhOyB9XG59XG5cbi5mZS1vaS1ib2R5IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDRweCAxNnB4IDhweDtcbn1cbi5mZS1vaS1wYW5lbCA+IHAge1xuICAgIGNvbG9yOiAjNmI3MjgwO1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG59XG5cbi5mZS1vaS1mb290ZXIge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMWUzZTY7XG59XG5cbi8vIOKUgOKUgCBMZWZ0IGNvbHVtbjogbGl2ZSBkdW1teSBwcmV2aWV3IG9mIHRoZSBxdWVzdGlvbiBpbiB0aGUgYXBwIOKUgOKUgFxuLmZlLW9pLXByZXZpZXcge1xuICAgIG1hcmdpbi10b3A6IGF1dG87ICAgICAgICAgIC8vIHBpbiB0byB0aGUgYm90dG9tIG9mIHRoZSBpbmZvIHBhbmVsXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xufVxuLmZlLW9pLXByZXZpZXctY2FwIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICM5MDk3Yjg7XG59XG4uZmUtb2ktcGhvbmUge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q4ZGFlYTtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIHBhZGRpbmc6IDE0cHg7XG4gICAgYm94LXNoYWRvdzogMCA2cHggMThweCByZ2JhKDIwLCAyNCwgNjAsIDAuMTApO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG59XG4uZmUtb2ktcSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMxYTFmNGQ7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbn1cbi5mZS1vaS1maWVsZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGJvcmRlcjogMS41cHggc29saWQgI2M0YzdjYztcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmYmZiZmQ7XG59XG4uZmUtb2ktZmllbGQtLWNvdW50ZXIgeyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbi5mZS1vaS1zdGVwIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2M0YzdjYztcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBjb2xvcjogIzQwNDk5YTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5mZS1vaS1pbnB1dCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbn1cbi5mZS1vaS1jdXIgeyBjb2xvcjogIzQwNDk5YTsgZm9udC13ZWlnaHQ6IDYwMDsgfVxuLmZlLW9pLXZhbCB7IGNvbG9yOiAjMGIwYjBkOyB9XG4uZmUtb2ktcGggIHsgY29sb3I6ICM5YWEwYjU7IH1cbi5mZS1vaS1iYXJjb2RlIHsgbWFyZ2luLWxlZnQ6IGF1dG87IGNvbG9yOiAjNDA0OTlhOyBmb250LXNpemU6IDE4cHg7IH1cbi5mZS1vaS1tZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4IDEwcHg7XG59XG4uZmUtb2ktaGludCB7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6ICM2YjcyODA7IH1cbi5mZS1vaS1jaGlwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNjQsIDczLCAxNTQsIDAuMTApO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgcGFkZGluZzogMnB4IDhweDtcblxuICAgIGkgeyBmb250LXNpemU6IDEzcHg7IH1cbn1cbi5mZS1vaS1za2lwIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4gICBOb2RlT3B0aW9ucyBtb2RhbCDigJQgY29udmVydGVkIHRvIHFkbmFwcm8td2l6YXJkLW1vZGFsIChmYXNlIDEpLlxuICAgU2hlbGwvY2hyb21lICh3bS0qKSBjb21lcyBmcm9tIHN0eWxlLXYxLmNzczsgdGhlc2UgYXJlIHRoZVxuICAgc3RlcC1zcGVjaWZpYyBiaXRzIGZvciB0aGUgYmFzaXMgKyBhZHZhbmNlZCBzdGVwcy4gW0tpbSArIENsYXVkZSAyMDI2LTA2LTE4XVxuICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG5cbi8vIExlZnQgaW5mbyBwYW5lbCBjb250ZW50IChzaXRzIGluc2lkZSB0aGUgd20taW5mbyBiYXNlIHBhbmVsKVxuLmZlLW5vLWlsbHUge1xuICAgIG1hcmdpbi10b3A6IDhweDtcblxuICAgIHN2ZyB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IGF1dG87IGRpc3BsYXk6IGJsb2NrOyB9XG59XG4uZmUtbm8tZGVzYyB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgIGNvbG9yOiAjMWExZjRkO1xuICAgIG1hcmdpbjogMTJweCAwIDA7XG59XG5cbi8vIFJpZ2h0IGNvbHVtbiDigJQgZ2V0cyB3bS1tYWluICh3aGl0ZSB3aW5kb3cpIG9uIG5vcm1hbCBub2Rlczsgb24gYW5ub3RhdGlvbiBpdFxuLy8gaXMgYSBiYXJlIGZsZXggY29sdW1uIGluc2lkZSB0aGUgcGxhaW4gd2hpdGUgc3RlcC5cbi5mZS1uby1tYWluIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWluLWhlaWdodDogMDtcbn1cblxuLy8gSGVhZGVyIHJvd1xuLmZlLW5vLWhkciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDEycHggMTJweCA4cHggMTZweDtcbiAgICBmbGV4LXNocmluazogMDtcbn1cbi5mZS1uby1waWxsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSg2NCwgNzMsIDE1NCwgMC4xMCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg2NCwgNzMsIDE1NCwgMC4xOCk7XG59XG4uZmUtbm8tcGlsbC1pY29uIHsgZm9udC1zaXplOiAxNXB4OyBjb2xvcjogIzQwNDk5YTsgbGluZS1oZWlnaHQ6IDE7IH1cbi5mZS1uby1waWxsLW5hbWUgeyBmb250LXNpemU6IDEycHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiAjMmEyZTVlOyB9XG4uZmUtbm8tcGlsbC1pZCAgIHsgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogIzkwOTdiODsgfVxuXG4uZmUtbm8teCB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6IDRweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogIzZiNzI4MDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXMgZWFzZSwgY29sb3IgMTIwbXMgZWFzZTtcblxuICAgIGkgeyBmb250LXNpemU6IDIwcHg7IH1cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSg2NCwgNzMsIDE1NCwgMC4wOCk7IGNvbG9yOiAjNDA0OTlhOyB9XG59XG4uZmUtbm8tYmFjayB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZzogNHB4IDhweDtcbiAgICBjb2xvcjogIzQwNDk5YTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXMgZWFzZTtcblxuICAgIGkgeyBmb250LXNpemU6IDE4cHg7IH1cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSg2NCwgNzMsIDE1NCwgMC4wOCk7IH1cbn1cblxuLy8gRm9ybSBlZGl0b3IgZmFzZSA0IGRlbGl2ZXJ5IDIgKHBsYW4gRDUtUkVWSVNFRCwgXCJ2aXN1ZWVsIGdlc3RhcGVsZFwiKTogYVxuLy8gcXVlc3Rpb24gb3BlbmVkIEZST00gYSBjYXJkJ3MgVnJhZ2VuIHRhYiByZW5kZXJzIGluIHRoZSBTQU1FIE5vZGVPcHRpb25zXG4vLyBtb2RhbCBpbnN0YW5jZSAobm8gc2Vjb25kIG1vZGFsIGVsZW1lbnQpIOKAlCB0aGUgXCJzdGFja2VkIHNlY29uZCB3aW5kb3dcIiByZWFkXG4vLyBpcyBwdXJlbHkgdmlzdWFsOiBhIGRhcmtlciBiYWNrZHJvcCAoYXMgaWYgdGhlIGNhcmQgbW9kYWwgZGltbWVkIGZ1cnRoZXJcbi8vIGJlaGluZCBpdCkgKyBhIHNsaWdodGx5IGhlYXZpZXIgc2hhZG93LCBwbHVzIHRoZSAuZmUtbm8tYmFjayBoZWFkZXJcbi8vIGFmZm9yZGFuY2Ugd2lyZWQgYWJvdmUuIHdtLXNjcmltL3dtLWRpYWxvZyBhcmUgZGlyZWN0IGNoaWxkcmVuIHRoZVxuLy8gd2l6YXJkLW1vZGFsIGN1c3RvbSBlbGVtZW50IGFwcGVuZHMgdG8gaXRzZWxmIChzZWUgcWRuYS13aXphcmQtbW9kYWwuanMpLFxuLy8gc28gYC5mZS1uby0tc3RhY2tlZGAgb24gdGhlIGhvc3Qgc2NvcGVzIGNsZWFubHkg4oCUIGV2ZXJ5IE9USEVSIHdpemFyZC1tb2RhbFxuLy8gb24gdGhlIHNpdGUgaXMgdW50b3VjaGVkLiBbS2ltIGZhc2UgNCBkZWxpdmVyeSAyXVxuLy9cbi8vIFJFV09SS0VEIChLaW0gZmFzZSA0IGRlbGl2ZXJ5IDMsIDEwLjA3LjIwMjYpOiB0aGUgZW50cmFuY2UvcmV0dXJuIFNDQUxFICtcbi8vIE9QQUNJVFkgbW90aW9uIG9uIC53bS1kaWFsb2cgbm93IHBsYXlzIHZpYSBFbGVtZW50LmFuaW1hdGUoKSBmcm9tXG4vLyBOb2RlT3B0aW9ucy52dWUncyBoYXNSZXR1cm5BbmNob3Igd2F0Y2hlciAoX3BsYXlTdGFja1RyYW5zaXRpb24pLCBub3QgYSBDU1Ncbi8vIGtleWZyYW1lIGhlcmUg4oCUIGEga2V5ZnJhbWUgdGllZCB0byBgLmZlLW5vLS1zdGFja2VkYCAoYSBjbGFzcyB0aGF0IHN0YXlzXG4vLyBhcHBsaWVkIGZvciB0aGUgd2hvbGUgdGltZSBhIHF1ZXN0aW9uIGlzIHN0YWNrZWQpIG9ubHkgcGxheXMgb25jZSwgb25cbi8vIGNsYXNzLWFkZDsgaXQgY2FuIG5ldmVyIHJlcGxheSBmb3IgYSBTRUNPTkQgcXVlc3Rpb24gb3BlbmVkIHdoaWxlIG9uZSBpc1xuLy8gYWxyZWFkeSBzdGFja2VkLCBhbmQgaXQgbmV2ZXIgaGFkIGEgcmV2ZXJzZSAoXCJyZXR1cm4gdG8gY2FyZFwiKSB2YXJpYW50IGF0XG4vLyBhbGwuIFdoYXQgc3RheXMgQ1NTLWRyaXZlbiBpcyB0aGUgc2NyaW0gZGltbWluZzogYSBgdHJhbnNpdGlvbmAgKG5vdCBhblxuLy8gYGFuaW1hdGlvbmApIG5hdHVyYWxseSByZXBsYXlzIGNvcnJlY3RseSBpbiBCT1RIIGRpcmVjdGlvbnMgZXZlcnkgdGltZSB0aGVcbi8vIGNsYXNzIHRvZ2dsZXMsIHNvIHRoZXJlJ3Mgbm8gcmVhc29uIHRvIG1vdmUgaXQgdG8gSlMuXG4uZmUtbm8gPiAud20tc2NyaW0ge1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjIwbXMgZWFzZTtcbn1cbi5mZS1uby5mZS1uby0tc3RhY2tlZCA+IC53bS1zY3JpbSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMSwgMTEsIDEzLCAwLjYyKTtcbn1cbi5mZS1ubyA+IC53bS1zY3JpbSA+IC53bS1kaWFsb2cge1xuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMjIwbXMgZWFzZTtcbn1cbi5mZS1uby5mZS1uby0tc3RhY2tlZCA+IC53bS1zY3JpbSA+IC53bS1kaWFsb2cge1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAgIDAgMTBweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4zNCksXG4gICAgICAgIDAgMTZweCAyNHB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjIyKTtcbn1cbi8vIFJlZHVjZWQgbW90aW9uOiBOb2RlT3B0aW9ucy52dWUncyBfcGxheVN0YWNrVHJhbnNpdGlvbiBhbHJlYWR5IHNraXBzIHRoZVxuLy8gRWxlbWVudC5hbmltYXRlKCkgY2FsbCBlbnRpcmVseSB3aGVuIHRoaXMgaXMgc2V0LiBUaGUgc2NyaW0vc2hhZG93XG4vLyB0cmFuc2l0aW9ucyBhYm92ZSBhcmUgY29tcGFyYXRpdmVseSBzdWJ0bGUgKG5vIG1vdmVtZW50LCBubyBzY2FsZSkgYnV0IGFyZVxuLy8gc3RpbGwgbW90aW9uIOKAlCBkcm9wIHRoZW0gdG9vIHNvIGEgcmVkdWNlZC1tb3Rpb24gdXNlciBnZXRzIGFuIGluc3RhbnRcbi8vIHN3YXAsIG1hdGNoaW5nIHRoZSBKUyBoYWxmIG9mIHRoaXMgc2FtZSBmZWF0dXJlLiBbS2ltIGZhc2UgNCBkZWxpdmVyeSAzXVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAuZmUtbm8gPiAud20tc2NyaW0sXG4gICAgLmZlLW5vID4gLndtLXNjcmltID4gLndtLWRpYWxvZyB7XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxufVxuXG4vLyBTY3JvbGxpbmcgYm9keVxuLmZlLW5vLWJvZHkge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgcGFkZGluZzogMTJweCAxNnB4IDhweDsgICAvLyB0b3AgcGFkZGluZyBzbyB0aGUgY29sb3VyLXBpY2tlcidzIHNlbGVjdGVkIGdsb3cgaXNuJ3QgY2xpcHBlZFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC8vIEludmlzaWJsZSBzY3JvbGxiYXIuIFtLaW0gMjIuMDYuMjAyNl1cbiAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgd2lkdGg6IDA7IGhlaWdodDogMDsgZGlzcGxheTogbm9uZTsgfVxufVxuLy8gTm9kZS1saW5rIGVtcHR5IHN0YXRlOiB0aGUgXCJEZXplIG5vZGUgaXMgbmlldCBnZWtvcHBlbGRcIiBwbGFjZWhvbGRlciBzaG91bGRcbi8vIHJlYWQgYXMgYSBjbGVhciBkYXJrLW9yYW5nZSBtZXNzYWdlLCBub3QgYSBtdXRlZCBpdGFsaWMgZmFsbGJhY2suIFtLaW0gMjIuMDYuMjAyNl1cbi5mZS1ub2RlLWxpbmsgLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fbGFiZWwtLXN0YXRpYy5pcy1lbXB0eSB7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGNvbG9yOiAjYzI0MTBjO1xufVxuXG4vLyBOb2RlIGNvbG91ciBwaWNrZXIg4oCUIGEgY2xlYW4gcmlnaHQtYWxpZ25lZCByb3cgYXQgdGhlIHRvcCBvZiBcIkFhbnBhc3NlblwiXG4vLyAobm8gZmxvYXQsIHNvIGl0IGNhbid0IHNsaXAgdW5kZXIgdGhlIGhlYWRlcikuIERlZXBlciBzd2F0Y2ggY29sb3VycyBtYXRjaFxuLy8gSmFuJ3Mgb3JpZ2luYWxzLiBbS2ltIDIwMjYtMDYtMThdXG4vLyBcIlN0aWpsXCIgZnJhbWVkIHNlY3Rpb24gKG1pcnJvcnMgdGhlIHRhc2tsaXN0IGVkaXQgbW9kYWwncyAucHYyLWN0bC1zdHlsZSkuXG4uZmUtbm8tc3R5bGUtYmxvY2sge1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XG5cbiAgICAuZmUtbm0tcS1sYWJlbCB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tYm90dG9tOiA4cHg7IH1cbn1cbi5mZS1uby1zdHlsZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U2ZThlZjtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIHBhZGRpbmc6IDE0cHg7XG59XG4uZmUtbm8tY29sb3JzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblxuICAgIC8vIEZsYXQgcmVwcmVzZW50YXRpdmUgaGV4IHBlciB0aGVtZSAodGhlIHRoZW1lIGBiYWNrZ3JvdW5kYCkuIEtlcHQgZmxhdCAtIG5vdFxuICAgIC8vIGEgZ3JhZGllbnQgLSBzbyB0aGUgcGlja2VyJ3Mgb3duIGNoZWNrbWFyay1jb250cmFzdCBkZXRlY3RvclxuICAgIC8vIChnZXRDb21wdXRlZFN0eWxlKCkuYmFja2dyb3VuZENvbG9yKSByZWFkcyBhIHJlYWwgY29sb3VyLiBbMjIuMDYuMjAyNl1cbiAgICAucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLWRlZmF1bHQgICAgICB7IC0tcWNwLWJnOiAjM2E0MjkwOyB9IC8vIEtpbSdzIGRlZmF1bHRcbiAgICAucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLWluZGlnbyAgICAgICB7IC0tcWNwLWJnOiAjNEY0NkU1OyB9IC8vIEluZGlnbyAoc2VwYXJhdGUgb3B0aW9uKVxuICAgIC5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tZGVmYXVsdF9kYXJrIHsgLS1xY3AtYmc6ICM3QzNBRUQ7IH0gLy8gVmlvbGV0XG4gICAgLnFkbmFwcm8tY29sb3ItcGlja2VyIC5xY3Atc3dhdGNoLS1wdXJwbGUgICAgICAgeyAtLXFjcC1iZzogI0RCMjc3NzsgfSAvLyBSb3NlXG4gICAgLnFkbmFwcm8tY29sb3ItcGlja2VyIC5xY3Atc3dhdGNoLS1waW5rICAgICAgICAgeyAtLXFjcC1iZzogI0Q5NzcwNjsgfSAvLyBBbWJlclxuICAgIC5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tZ3JlZW4gICAgICAgIHsgLS1xY3AtYmc6ICMwNTk2Njk7IH0gLy8gU2FnZVxuICAgIC5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tYmx1ZSAgICAgICAgIHsgLS1xY3AtYmc6ICMwMjg0Qzc7IH0gLy8gU2t5XG4gICAgLnFkbmFwcm8tY29sb3ItcGlja2VyIC5xY3Atc3dhdGNoLS1ncmV5ICAgICAgICAgeyAtLXFjcC1iZzogIzQ3NTU2OTsgfSAvLyBTbGF0ZVxuICAgIC5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tb3JhbmdlICAgICAgIHsgLS1xY3AtYmc6ICNFMDVBMzg7IH0gLy8gQ29yYWxcblxuICAgIC8vIHFkbmFwcm8tdGFnIHBhbGV0dGUgZXhwZXJpbWVudCAoMjIuMDYuMjAyNikgLSBzd2F0Y2ggPSB0aGUgZmxhdCAtLXRhZy1iZy5cbiAgICAucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLXRhZy1ncmV5ICAgICAgICAgIHsgLS1xY3AtYmc6ICNmMGYxZjI7IH1cbiAgICAucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLXRhZy1ncmV5LTIgICAgICAgIHsgLS1xY3AtYmc6ICNjNGM3Y2M7IH1cbiAgICAucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLXRhZy1yZWQgICAgICAgICAgIHsgLS1xY3AtYmc6ICNmZWUzZTM7IH1cbiAgICAucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLXRhZy1yZWQtMiAgICAgICAgIHsgLS1xY3AtYmc6ICNmYmFhYWE7IH1cbiAgICAucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLXRhZy15ZWxsb3cgICAgICAgIHsgLS1xY3AtYmc6ICNmZWY2ZGI7IH1cbiAgICAucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLXRhZy15ZWxsb3ctMiAgICAgIHsgLS1xY3AtYmc6ICNmZGU1OTQ7IH1cbiAgICAucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLXRhZy1ncmVlbiAgICAgICAgIHsgLS1xY3AtYmc6ICNlMmZhZjE7IH1cbiAgICAucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLXRhZy1ncmVlbi0yICAgICAgIHsgLS1xY3AtYmc6ICM4YmVjYzU7IH1cbiAgICAucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLXRhZy1ibHVlICAgICAgICAgIHsgLS1xY3AtYmc6ICNlNmVmZjk7IH1cbiAgICAucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLXRhZy1ibHVlLTIgICAgICAgIHsgLS1xY3AtYmc6ICNiNWNlZWQ7IH1cbiAgICAucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLXRhZy1icmlnaHQtYmx1ZSAgIHsgLS1xY3AtYmc6ICM4NWExZWM7IH1cbiAgICAucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLXRhZy1icmlnaHQtYmx1ZS0yIHsgLS1xY3AtYmc6ICNkNmUwZjk7IH1cbiAgICAucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLXRhZy1waW5rICAgICAgICAgIHsgLS1xY3AtYmc6ICNmNmUxZTg7IH1cbiAgICAucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLXRhZy1kYXJrLXBpbmsgICAgIHsgLS1xY3AtYmc6ICNlNWE2Yjk7IH1cbiAgICAucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLXRhZy1wdXJwbGUgICAgICAgIHsgLS1xY3AtYmc6ICNlYmU5ZmI7IH1cbiAgICAucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLXRhZy1kYXJrLXB1cnBsZSAgIHsgLS1xY3AtYmc6ICNjNGJjZjM7IH1cbiAgICAvLyBLaW0ncyBhZGRpdGlvbnMgKDIyLjA2LjIwMjYpXG4gICAgLnFkbmFwcm8tY29sb3ItcGlja2VyIC5xY3Atc3dhdGNoLS1xZG5hLXB1cnBsZSAgICAgICB7IC0tcWNwLWJnOiAjM2E0MjkwOyB9XG4gICAgLnFkbmFwcm8tY29sb3ItcGlja2VyIC5xY3Atc3dhdGNoLS1xZG5hLW9yYW5nZSAgICAgICB7IC0tcWNwLWJnOiAjZjU5ZTBiOyB9XG59XG5cbi8vIFRleHQtYWxpZ25tZW50IHRvZ2dsZSAoZmFzZSBBLCAyMDI2LTA3LTE2KTogdGhlIGxlZnQvY2VudGVyIHNlZ21lbnRlZCB0b2dnbGVcbi8vIChsYWJlbF9hbGlnbiBtZXRhKSBsaXZpbmcgaW5zaWRlIEFic3RyYWN0SW1hZ2UncyBjb21wYWN0IGltYWdlIHRvb2xiYXJcbi8vICguZmUtbm8taW1nKS4gSXQgc2l0cyBvbiB0aGUgU0VDT05EIHRvb2xiYXIgcm93ICguZmUtbm8taW1nLXJvdykgc2luY2UgdGhlXG4vLyBicmllZmluZyBidXR0b24gam9pbmVkOyBtYXJnaW4tbGVmdDphdXRvIHBpbnMgaXQgdG8gdGhlIGZhciByaWdodCBvZiB0aGF0IHJvdyxcbi8vIHdpdGggYnJpZWZpbmcgb24gdGhlIGxlZnQuIExheW91dCBvbmx5IC0tIHRoZSBxZG5hcHJvLWJ1dHRvbi9xZG5hcHJvLWljb25cbi8vIGNvbXBvbmVudHMgb3duIHRoZWlyIG93biBsb29rLiBbcm93IHNwbGl0OiBLaW0gMDMuMDguMjAyNl1cbi5mZS1uby1pbWcgLmZlLWxhYmVsLWFsaWduLXRvb2xiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuLy8gRm9vdGVyXG4uZmUtbm8tZnRyIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2UxZTNlNjtcbn1cbi5mZS1uby1mdHItbGVmdCAgeyBmbGV4OiAxIDEgMDsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuLmZlLW5vLWZ0ci1yaWdodCB7IGZsZXg6IDEgMSAwOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyBnYXA6IDEycHg7IH1cbi5mZS1uby1hZHYtYnRuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkOGRhZWE7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgcGFkZGluZzogNnB4IDEycHg7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2U7XG5cbiAgICBpIHsgZm9udC1zaXplOiAxNnB4OyB9XG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoNjQsIDczLCAxNTQsIDAuMDYpOyBib3JkZXItY29sb3I6ICNiMGI4ZTg7IH1cbn1cbi5mZS1uby1wbGF5IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAjNDA0OTlhO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDY0LCA3MywgMTU0LCAwLjM1KTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTIwbXMgZWFzZSwgYm94LXNoYWRvdyAxMjBtcyBlYXNlO1xuXG4gICAgaSB7IGZvbnQtc2l6ZTogMjBweDsgbWFyZ2luLWxlZnQ6IDJweDsgfVxuICAgICY6aG92ZXIgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7IGJveC1zaGFkb3c6IDAgNnB4IDE2cHggcmdiYSg2NCwgNzMsIDE1NCwgMC40NSk7IH1cbn1cblxuLyog4pSA4pSAIExpdmUgXCJob3cgaXQgbG9va3MgaW4gdGhlIGFwcFwiIHByZXZpZXcgKGZhc2UgMikg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gICBNaXJyb3JzIHRoZSBhcHAncyBxdHlwZXMuc2NzcyAoLmZsb3ctcXVlc3Rpb24tKikgYXQgcGFuZWwgc2NhbGUuXG4gICBDb2xvcnM6IHByaW1hcnkgIzQwNDk5QSwgeWVzICM2QkI2QUIsIG5vICNERTUwNjYuIFtLaW0gKyBDbGF1ZGUgMjAyNi0wNi0xOF0gKi9cbi5mZS1uby1wcmV2aWV3IHtcbiAgICBtYXJnaW4tdG9wOiBhdXRvOyAgICAgICAgICAvLyBwaW4gdG8gdGhlIGJvdHRvbSBvZiB0aGUgaW5mbyBwYW5lbFxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcblxuICAgIC8vIEFsbG93IHRoZSBibG9jayB0byBzaHJpbmsgaW5zaWRlIC53bS1pbmZvIHNvIC5mZS1wdi1zY3JlZW4gYmVsb3cgY2FuIHRha2VcbiAgICAvLyB3aGF0ZXZlciBoZWlnaHQgdGhlIHBhbmVsIHN0aWxsIGhhcywgaW5zdGVhZCBvZiBzdG9wcGluZyBhdCBhIGZpeGVkIGNhcFxuICAgIC8vIHdoaWxlIGVtcHR5IHBhbmVsIHNwYWNlIHNhdCB1bmRlcm5lYXRoIGl0LiBbS2ltIDAzLjA4LjIwMjZdXG4gICAgbWluLWhlaWdodDogMDtcbn1cbi5mZS1uby1wcmV2aWV3LWNhcCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjOTA5N2I4O1xufVxuXG4vLyBQcmV2aWV3IHVzZXMgdGhlIEZVTEwgcGFuZWwgd2lkdGggKG5vIHNpZGUgcGFkZGluZykgc28gaXQgZ2V0cyBhcyBtdWNoIHJvb20gYXNcbi8vIHBvc3NpYmxlOyBpdCBhbGlnbnMgd2l0aCB0aGUgZGVzY3JpcHRpb24gdGV4dCArIGNhcHRpb24gYWJvdmUgKHdoaWNoIGFscmVhZHkgc2l0XG4vLyBpbnNpZGUgdGhlIC53bS1pbmZvIDE2cHggZ3V0dGVyKS4gVmVydGljYWwtb25seSBwYWRkaW5nLiBbS2ltIDIwMjYtMDYtMTldXG4uZmUtcHYge1xuICAgIHBhZGRpbmc6IDRweCAwIDhweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgLy8gRmxleCBjb2x1bW4gKyBtaW4taGVpZ2h0OjAgc28gdGhlIC5mZS1wdi1zY3JlZW4gY2FyZCBpbnNpZGUgY2FuIGJlIGJvdW5kZWRcbiAgICAvLyBieSB0aGUgcGFuZWwncyByZW1haW5pbmcgaGVpZ2h0IGFuZCBzY3JvbGwgaW50ZXJuYWxseS4gW0tpbSAwMy4wOC4yMDI2XVxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtaW4taGVpZ2h0OiAwO1xufVxuLmZlLXB2LXNjcmVlbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvLyBhbmNob3IgZm9yIHRoZSBmbG9hdGluZyBiYXJjb2RlIHRvYXN0XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDhkYWVhO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgcGFkZGluZzogMTRweDtcbiAgICBib3gtc2hhZG93OiAwIDZweCAxOHB4IHJnYmEoMjAsIDI0LCA2MCwgMC4xMCk7XG5cbiAgICAvLyBTY3JvbGwgdGhlIHByZXZpZXcgaW50ZXJuYWxseSB3aGVuIG1hbnkgb3B0aW9ucyBvdmVyZmxvdyB0aGUgbW9kYWwsXG4gICAgLy8gd2l0aCBhbiBpbnZpc2libGUgc2Nyb2xsYmFyIHNvIGV2ZXJ5IG9wdGlvbiBzdGF5cyByZWFjaGFibGUuIFtLaW0gMjIuMDYuMjAyNl1cbiAgICAvL1xuICAgIC8vIFRoZSBvbGQgaGFyZCA2MHZoIGNhcCBtYWRlIHRoZSBjYXJkIHN0b3Agc2hvcnQgd2hpbGUgdGhlIGluZm8gcGFuZWwgc3RpbGxcbiAgICAvLyBoYWQgZW1wdHkgc3BhY2UgYmVsb3cgaXQsIHNvIGxvbmcgb3B0aW9uIGxpc3RzIHdlcmUgY3V0IG9mZiBmb3Igbm8gcmVhc29uLlxuICAgIC8vIEl0IG5vdyBncm93cyB0byBpdHMgY29udGVudCBhbmQgaXMgYm91bmRlZCBieSB0aGUgcGFuZWwgaW5zdGVhZCAoZmxleCBjaGFpblxuICAgIC8vIC5mZS1uby1wcmV2aWV3IC0+IC5mZS1wdiAtPiBoZXJlKSwgc3RpbGwgc2Nyb2xsaW5nIGludGVybmFsbHkgd2hlbiB0aGVcbiAgICAvLyBjb250ZW50IGlzIHRhbGxlciB0aGFuIHRoZSByb29tIGF2YWlsYWJsZS4gW0tpbSAwMy4wOC4yMDI2XVxuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiAwOyBoZWlnaHQ6IDA7IGRpc3BsYXk6IG5vbmU7IH1cbn1cbi8vIEJhcmUgZW1iZWRkZWQgdmFyaWFudCAoZmFzZSAxLCBmb3JtX2NhcmQgY2hpbGRzdGFjayBtaWdyYXRpb24sIDE2LjA3LjIwMjYpOlxuLy8gUXVlc3Rpb25QcmV2aWV3IHJlbmRlcmVkIGFzIGEgQ0hJTEQgaW5zaWRlIGEgZm9ybSBjYXJkJ3Mgb3duIC5mZS1wdi1mb3JtY2FyZC1pdGVtXG4vLyAoYmFyZSBwcm9wKS4gTm8gYm9yZGVyL3NoYWRvdy9iYWNrZ3JvdW5kIGJveCBhbmQgbm8gb3duIG1heC1oZWlnaHQvc2Nyb2xsIOKAlCB0aGVcbi8vIHF1ZXN0aW9uIGZsb3dzIG5hdHVyYWxseSBpbnNpZGUgdGhlIGNhcmQsIG5vdCBhcyBhIHNjcm9sbGluZyBjYXJkLWluLWNhcmQuXG4uZmUtcHYtcXVlc3Rpb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gYW5jaG9yIGZvciB0aGUgZmxvYXRpbmcgYmFyY29kZSB0b2FzdCwgbGlrZSAuZmUtcHYtc2NyZWVuXG59XG4uZmUtcHYtdGl0bGUgeyBjb2xvcjogIzQwNDk5QTsgfVxuLy8gVGV4dC1hbGlnbm1lbnQgdG9nZ2xlIChmYXNlIEEsIDIwMjYtMDctMTYpOiBsYWJlbF9hbGlnbiA9PT0gJ2NlbnRlcicgY2VudGVyc1xuLy8gdGhlIHRpdGxlICsgc3VidGV4dCB0b2dldGhlciBpbiB0aGUgbGl2ZSBwcmV2aWV3LiBMZWZ0IGlzIHRoZSBkZWZhdWx0IChub1xuLy8gY2xhc3MgbmVlZGVkIOKAlCBtYXRjaGVzIHRoZSBibG9jaydzIG5hdHVyYWwgYWxpZ25tZW50KS5cbi5mZS1wdi10aXRsZS0tY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uZmUtcHYtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG4uZmUtcHYtc3ViIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbWFyZ2luLXRvcDogMnB4O1xuICAgIG9wYWNpdHk6IDAuODU7XG59XG4uZmUtcHYtYm9keSB7IG1hcmdpbi10b3A6IDEycHg7IH1cblxuLy8gSmEgLyBOZWUuIC5mZS1wdi1idG4vLS15ZXMvLS1ubyBhcmUgdGhlIHBsYWluIHN0YXRpYyBzd2F0Y2hlcyBzdGlsbCB1c2VkIGJ5IHRoZVxuLy8gZm9ybS1jYXJkIGNoaWxkIG1pbmkgbW9jayAoZGVsaWJlcmF0ZWx5IHNpbXBsZSwgbm9uLWludGVyYWN0aXZlLCBzZWVcbi8vIGZvcm1DaGlsZEtpbmQoKSAneWVzbm8nIGJyYW5jaCBiZWxvdykuIFRoZSBtYWluIFllcy9ObyBwcmV2aWV3IChQaGFzZSA0IFllcy9Ob1xuLy8gb3ZlcmhhdWwsIDIwMjYtMDctMTEpIHVwZ3JhZGVkIHRvIHRoZSByZWFsIHFkbmFwcm8tYW5zd2VyLWJ1dHRvbiwgd3JhcHBlZCBzbyB0aGVcbi8vIG9wdGlvbmFsIFwiY29tbWVudCBvbiBOb1wiIG1vY2sgY2FuIHNpdCBiZWxvdyB0aGUgYnV0dG9uIHJvdy4gW0tpbV1cbi5mZS1wdi15ZXNuby13cmFwIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuLmZlLXB2LXllc25vIHsgZGlzcGxheTogZmxleDsgZ2FwOiA4cHg7IH1cbi5mZS1wdi15ZXNubyBxZG5hcHJvLWFuc3dlci1idXR0b24geyBmbGV4OiAxIDEgMDsgbWluLXdpZHRoOiAwOyB9XG4vLyAzLWJ1dHRvbiBsYXlvdXQgKE4udi50LiBlbmFibGVkKSDigJQgc2lkZS1ieS1zaWRlIGF0IGZsZXg6MSAxIDAgc3F1ZWV6ZWQgZWFjaFxuLy8gYnV0dG9uIChpY29uICsgdGljayArIHBhZGRpbmcgbGVhdmUgYWxtb3N0IG5vIHJvb20gZm9yIHRoZSBsYWJlbCBhdCB+MS8zXG4vLyB3aWR0aCksIHRydW5jYXRpbmcgdGhlIHRleHQgaWxsZWdpYmx5IChcIlllXCIgLyBcIk5vXCIgLyBcIk5vdCBhcHAuLi5cIiwgS2ltJ3Ncbi8vIHRlc3QgZmVlZGJhY2sgMjAyNi0wNy0xMSkuIFN0YWNrIGZ1bGwtd2lkdGggcm93cyBpbnN0ZWFkOiAyIGJ1dHRvbnMgKHBsYWluXG4vLyB5ZXMvbm8pIGtlZXAgdGhlIHNpZGUtYnktc2lkZSByb3cgYWJvdmUgdW5jaGFuZ2VkLiBgZmxleDogMCAwIGF1dG9gIChub3QgdGhlXG4vLyByb3cncyAxIDEgMCkgbGV0cyBlYWNoIGJ1dHRvbiBzaXplIHRvIGl0cyBvd24gbmF0dXJhbCBoZWlnaHQgaW4gdGhlIGNvbHVtblxuLy8gaW5zdGVhZCBvZiBiZWluZyBzdHJldGNoZWQgdG8gYW4gZXF1YWwgMS8zIHNoYXJlIG9mIHZlcnRpY2FsIHNwYWNlLCBhbmRcbi8vIGtlZXBzIHFkbmFwcm8tYW5zd2VyLWJ1dHRvbidzIG93biBgd2lkdGg6IDEwMCVgIGluIGNoYXJnZSBvZiB0aGUgd2lkdGguIFtLaW1dXG4uZmUtcHYteWVzbm8tLXN0YWNrZWQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4uZmUtcHYteWVzbm8tLXN0YWNrZWQgcWRuYXByby1hbnN3ZXItYnV0dG9uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbn1cbi5mZS1wdi1idG4ge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgcGFkZGluZzogMTJweCA4cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxM3B4O1xufVxuLmZlLXB2LWJ0bi0teWVzIHsgYmFja2dyb3VuZDogIzZCQjZBQjsgfVxuLmZlLXB2LWJ0bi0tbm8gIHsgYmFja2dyb3VuZDogI0RFNTA2NjsgfVxuXG4vLyBBbnR3b29yZG9wdGllc1xuLmZlLXB2LW9wdGlvbnMgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDZweDsgfVxuLy8gQnV0dG9ucy13cmFwOiAxIGNvbHVtbiAoZGVmYXVsdCkgb3IgMiBjb2x1bW5zLCBkcml2ZW4gYnkgdGhlIGJ1dHRvbl9jb2x1bW5zIHNldHRpbmcuIFtLaW0gMjEuMDYuMjAyNl1cbi5mZS1wdi1vcHRzLXdyYXAgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDZweDsgfVxuLmZlLXB2LW9wdHMtd3JhcC5mZS1wdi1vcHRzLS1jb2xzMiB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsgZ2FwOiA2cHg7IH1cbi5mZS1wdi1vcHQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgYmFja2dyb3VuZDogIzQwNDk5QTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIHBhZGRpbmc6IDEwcHggMjhweCAxMHB4IDE0cHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xMnMgZWFzZSwgYmFja2dyb3VuZCAwLjEycyBlYXNlO1xuXG4gICAgJjpob3ZlciB7IG9wYWNpdHk6IDAuNzU7IH1cbn1cbi8vIFBlci1vcHRpb24gaWNvbiAoRmFzZSA1IE1lZXJrZXV6ZSBvdmVyaGF1bCwgMTEuMDcuMjAyNikg4oCUIHNpdHMgYmVmb3JlIHRoZSBsYWJlbC5cbi5mZS1wdi1vcHQtaWNvbiB7IGZsZXgtc2hyaW5rOiAwOyB9XG4vLyBTZW1hbnRpYyBvcHRpb24gY29sb3VyIOKAlCBvdmVycmlkZXMgdGhlIGRlZmF1bHQgcHVycGxlIGJhY2tncm91bmQuIFNhbWVcbi8vIGNsb3NlZCBwYWxldHRlICsgdG9rZW5zIGFzIHRoZSBxZG5hcHJvLWFuc3dlci1vcHRpb24gZWRpdG9yIHJvdyAoaWNvbiBiYWRnZSlcbi8vIGFuZCB0aGUgT3B0aW9uQXBwZWFyYW5jZSBwb3BvdmVyIHN3YXRjaGVzLCBzbyB0aGUgY29sb3VyIHJlYWRzIGNvbnNpc3RlbnRseVxuLy8gZW5kLXRvLWVuZCAocm93IC0+IHBvcG92ZXIgLT4gbGl2ZSBwcmV2aWV3KS4gW0tpbSAxMS4wNy4yMDI2XVxuLmZlLXB2LW9wdC0tY29sb3ItcG9zaXRpdmUgICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0LCAjNDI4YjZlKTsgfVxuLmZlLXB2LW9wdC0tY29sb3Itd2FybmluZyAgICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdhcm4tYW1iZXItNTAwLCAjZDk3NzA2KTsgfVxuLmZlLXB2LW9wdC0tY29sb3ItbmVnYXRpdmUgICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCwgI2M2NWE1YSk7IH1cbi5mZS1wdi1vcHQtLWNvbG9yLW5ldXRyYWxfYWx0IHsgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtYmx1ZS10ZXh0LCAjNmE4YWI0KTsgfVxuLy8gU2NvcmUgLyBOUFMg4oCUIHFkbmFwcm8tc2NvcmUtc2NhbGUgc2l0cyBmbHVzaCBpbiB0aGUgcHJldmlldyBjYXJkLCBzYW1lXG4vLyB0cmVhdG1lbnQgYXMgdGhlIG11bHRpLXJhZGlvIGRyb3Bkb3duICguZmUtcHYtc2VsZWN0KSBhYm92ZS5cbi8vIFtQaGFzZSAyIFNjb3JlL05QUyBvdmVyaGF1bCwgMjAyNi0wNy0xMV1cbi5mZS1wdi1zY29yZSB7XG4gICAgcGFkZGluZzogNnB4IDJweDtcblxuICAgIHFkbmFwcm8tc2NvcmUtc2NhbGUgeyBkaXNwbGF5OiBibG9jazsgfVxufVxuXG4vLyBBdHRhY2hlZCBcImNvbW1lbnQgb24gbG93IHNjb3JlXCIgbW9jayDigJQgYXBwZWFycyB1bmRlciB0aGUgc2NhbGUsIGxpdmUsXG4vLyB3aGVuIGNvbW1lbnRfZW5hYmxlZCBpcyBvbiBhbmQgdGhlIHNhbmRib3gtc2VsZWN0ZWQgdmFsdWUgaXMgPD0gdGhlXG4vLyBjb25maWd1cmVkIHRocmVzaG9sZC4gQW5zd2VycyBLaW0ncyBcIm5vdCB2aXNpYmxlIGluIHByZXZpZXdcIiByZXZpZXcgbm90ZS5cbi8vIFtQaGFzZSAyIFNjb3JlL05QUyBvdmVyaGF1bCBzZXR0aW5ncy1tb2RhbCByZXZpZXcsIDIwMjYtMDctMTFdXG4uZmUtcHYtY29tbWVudCB7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICBib3JkZXItdG9wOiAxcHggZGFzaGVkIHJnYmEoMTgwLCAxODgsIDIyMCwgMC41NSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNnB4O1xufVxuLmZlLXB2LWNvbW1lbnQtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiAjMWYyNDMwO1xufVxuXG4vLyBGZWVkYmFjayAoZW1vamkpIOKAlCBzbWlsZXkgc2NhbGUgcm93IGluIHRoZSBsaXZlIHByZXZpZXcuIE1pcnJvcnMgdGhlIGFwcCdzXG4vLyAuZmxvdy1zbWlsZS1yb3cgKGZhY2VzIGNlbnRlcmVkOyB0YXAgc3dhcHMgX1QgLT4gX0YpLiBbMDUuMDcuMjAyNl1cbi5mZS1wdi1zbWlsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAxMHB4O1xuICAgIHBhZGRpbmc6IDZweCAycHg7XG59XG4uZmUtcHYtc21pbGUtZmFjZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjEycyBlYXNlO1xuXG4gICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDQ0cHg7XG4gICAgICAgIGhlaWdodDogNDRweDtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7IHRyYW5zZm9ybTogc2NhbGUoMS4wOCk7IH1cbn1cbi5mZS1wdi1zbWlsZS1mYWNlLS1hY3RpdmUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMTQpOyB9XG4uZmUtcHYtc21pbGUtZmFjZS0tYWN0aXZlOmhvdmVyIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjE0KTsgfVxuXG4vLyBSZWFsIG9wdGlvbiB3aXRob3V0IGEgbGFiZWwg4oCUIHNob3cgaXQgYXMgYSBjbGVhcmx5LWVtcHR5IHBsYWNlaG9sZGVyLiBbS2ltIDIxLjA2LjIwMjZdXG4uZmUtcHYtb3B0LS1lbXB0eSB7IGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuLmZlLXB2LW9wdC0tYWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlxcRjAxMkNcIjtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiTWF0ZXJpYWwgRGVzaWduIEljb25zXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICB9XG59XG5cbi8vIEVtcHR5IHN0YXRlIOKAlCB0aGUgbm9kZSBoYXMgemVybyBhbnN3ZXIgb3B0aW9ucyB5ZXQuIE1pcnJvcnMgdGhlIG11dGVkLWhpbnRcbi8vIGxvb2sgb2YgLmZlLXB2LXVuaXRzLWVtcHR5IC8gLmZlLXB2LWZvcm1jYXJkLWVtcHR5IGVsc2V3aGVyZSBpbiB0aGlzIHByZXZpZXcsXG4vLyB3aXRoIGFuIGV4dHJhIHRpdGxlIGxpbmUgc2luY2UgdGhpcyBpcyB0aGUgd2hvbGUgYm9keSBjb250ZW50IGhlcmUgKG5vdCBhXG4vLyBuZXN0ZWQgcm93KS4gW0tpbSAxMS4wNy4yMDI2XVxuLmZlLXB2LW9wdGlvbnMtZW1wdHkge1xuICAgIHBhZGRpbmc6IDEwcHggMnB4O1xufVxuLmZlLXB2LW9wdGlvbnMtZW1wdHktdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMmEyYzNhO1xuICAgIG1hcmdpbi1ib3R0b206IDJweDtcbn1cbi5mZS1wdi1vcHRpb25zLWVtcHR5LWhpbnQge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIGNvbG9yOiAjOWFhMGJkO1xufVxuXG4vKiBNdWx0aS1yYWRpbyBcIlRvb24gYWxzIGRyb3Bkb3duXCIgcHJldmlldyA9IHRoZSBSRUFMIHFkbmFwcm8tc2VsZWN0IChpdCBicmluZ3NcbiAgIGl0cyBvd24gc3R5bGluZykuIEp1c3QgbGV0IGl0IHNpdCBmbHVzaCBpbiB0aGUgcHJldmlldyBjYXJkLiBbS2ltIDIwMjYtMDYtMjBdICovXG4uZmUtcHYtc2VsZWN0IHsgZGlzcGxheTogYmxvY2s7IH1cblxuLyogLS0tLSBJbXBvcnQgYW5zd2VyIG9wdGlvbnMgKG1vZGFsICsgdHJpZ2dlcikgLS0tLSBbS2ltIDIwMjYtMDYtMjBdICovXG4vLyBcIkFudHdvb3Jkb3B0aWVzXCIgaGVhZGVyIHJvdzogbGFiZWwgbGVmdCwgXCJPcHRpZXMgaW1wb3J0ZXJlblwiIHJpZ2h0LiBbS2ltIDIxLjA2LjIwMjZdXG4uZmUtYW5zd2Vyb3B0cy1oZWFkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTJweDtcbiAgICBtYXJnaW46IDIwcHggMCA4cHg7XG5cbiAgICAucWRuYXByby1tb2RhbC1sYWJlbCB7IG1hcmdpbjogMDsgfVxufVxuLy8gV3JhcHMgdGhlIGhlYWRlci1yaWdodCBidXR0b25zIChpbXBvcnQgdHJpZ2dlciArIHRoZSBcIlNlbGVjdFwiIGJ1bGstbW9kZSBlbnRyeVxuLy8gcG9pbnQpIHNvIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiBhYm92ZSBzdGlsbCBzcGxpdHMgbGFiZWwgdnMgVEhJU1xuLy8gZ3JvdXAsIG5vdCBlYWNoIGluZGl2aWR1YWwgYnV0dG9uLiBPbmx5IHJlbmRlcmVkIHdoaWxlIHNlbGVjdCBtb2RlIGlzIE9GRiDigJRcbi8vIG9uY2UgYWN0aXZlIHRoaXMgd2hvbGUgZ3JvdXAgaGlkZXMgYW5kIC5mZS1idWxrLWFjdGlvbnMtcm93IChiZWxvdykgdGFrZXNcbi8vIG92ZXIuIFtQaGFzZSAyIFNjb3JlL05QUyBvdmVyaGF1bCwgMjAyNi0wNy0xMTsgcmVncm91cGVkIEtpbSAxMi4wNy4yMDI2XVxuLmZlLWFuc3dlcm9wdHMtYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xufVxuLmZlLWltcG9ydC10cmlnZ2VyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICBwYWRkaW5nOiA2cHggNHB4O1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGNvbG9yOiAjNDA0OTlBO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgICAubWRpIHsgZm9udC1zaXplOiAxNnB4OyB9XG4gICAgJjpob3ZlciB7IGNvbG9yOiAjMmYzNjdhOyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxufVxuLmZlLWltcG9ydC10cmlnZ2VyLS1oZWFkIHsgbWFyZ2luLXRvcDogMDsgfVxuXG4vLyBCdWxrLWFjdGlvbiB0b29sYmFyOiBpdHMgb3duIHJvdyB1bmRlciB0aGUgXCJBbnR3b29yZG9wdGllc1wiIHRpdGxlLCBzaG93biBvbmx5XG4vLyB3aGlsZSBzZWxlY3QgbW9kZSBpcyBhY3RpdmUuIFdhcyBwcmV2aW91c2x5IGNyYW1tZWQgb250byB0aGUgaGVhZGVyIGxpbmVcbi8vIGFsb25nc2lkZSB0aGUgdGl0bGUgKyBJbXBvcnQgb3B0aW9ucyDigJQgS2ltJ3MgZmVlZGJhY2sgMTIuMDcuMjAyNi4gQSBzdWJ0bGVcbi8vIHRpbnRlZCBzdHJpcCAoc2FtZSBwdXJwbGUgZmFtaWx5IGFzIC5mZS1ncmFkZS1yb3ctLWNoZWNrZWQpIHNldHMgaXQgYXBhcnRcbi8vIGZyb20gdGhlIHBsYWluIG9wdGlvbiBsaXN0IGJlbG93IGl0LiBDYW5jZWwvTGluayBzZWxlY3Rpb24vVW5saW5rIHNlbGVjdGlvblxuLy8gYXJlIHFkbmFwcm8tYnV0dG9uIG5vdyAod2VyZSB0ZXh0LWxpbmsgLmZlLWltcG9ydC10cmlnZ2VyIGJ1dHRvbnMpLiBbS2ltXVxuLmZlLWJ1bGstYWN0aW9ucy1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luOiAwIDAgOHB4O1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNjQsIDczLCAxNTQsIDAuMDYpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cbiAgICBxZG5hcHJvLWljb24geyBtYXJnaW4tcmlnaHQ6IDRweDsgfVxufVxuXG4vLyBCdWxrLXNlbGVjdGFibGUgYW5zd2VyLW9wdGlvbiByb3c6IG9wdGlvbmFsIHNlbGVjdCBjaGVja2JveCArIHRoZSBzaGFyZWRcbi8vIHFkbmFwcm8tYW5zd2VyLW9wdGlvbi4gVXNlZCBmb3IgZ3JhZGVfbm9kZS9ucHNfbm9kZSAocmVhZG9ubHkgaGFyZC12YWx1ZVxuLy8gbGFiZWwsIG5vIGRlbGV0ZS9kcmFnIOKAlCBzZWUgTGluay52dWUncyBpc0hhcmRWYWx1ZSkgQU5ELCBzaW5jZSB0aGVcbi8vIGxpbmtzLWVkaXRvciByZXZpZXcgYmF0Y2ggKDIwMjYtMDctMTEpLCBNZWVya2V1emUgcm93cyBpbiByYWRpbyBtb2RlIChzdGlsbFxuLy8gZHJhZ2dhYmxlL2VkaXRhYmxlL3JlbW92YWJsZSB0aGVyZSkuIFtQaGFzZSAyIFNjb3JlL05QUyBvdmVyaGF1bCwgMjAyNi0wNy0xMV1cbi5mZS1ncmFkZS1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZS1vdXQ7XG5cbiAgICAvLyBXSURUSCBCVUcgRklYIChsaW5rcy1lZGl0b3IgcmV2aWV3LCAyMDI2LTA3LTExKTogZXZlcnkgb3RoZXIgbm9kZSB0eXBlJ3NcbiAgICAvLyByb3cgcmVuZGVycyBxZG5hcHJvLWFuc3dlci1vcHRpb24gYXMgYSBESVJFQ1QgY2hpbGQgb2YgdGhlIHBsYWluIGJsb2NrXG4gICAgLy8gPHVsIGNsYXNzPVwiZmUtaXRlbXNcIj4sIHNvIGl0IGZpbGxzIHRoZSBmdWxsIHdpZHRoIGZvciBmcmVlLiBIZXJlIGl0J3Mgb25lXG4gICAgLy8gbGV2ZWwgZGVlcGVyLCBpbnNpZGUgVEhJUyBmbGV4IHJvdyDigJQgYW5kIGJ5IGRlZmF1bHQgYSBmbGV4IGl0ZW0gb25seVxuICAgIC8vIHNpemVzIHRvIGl0cyBjb250ZW50IChmbGV4LWdyb3c6IDApLCBzbyBpdCBzaHJhbmsgdG8gcm91Z2hseSBoYWxmIHdpZHRoLlxuICAgIC8vIFRoZSBvYnZpb3VzIGZpeCBpcyBhIGAuZmUtZ3JhZGUtcm93LWxpbmtgIGNsYXNzIG9uIDxsaW5ramU+IGluIExpbmtzLnZ1ZSxcbiAgICAvLyBidXQgcWRuYS1hbnN3ZXItb3B0aW9uLmpzJ3MgX3JlbmRlcigpIGRvZXMgYHRoaXMuY2xhc3NOYW1lID0gWy4uLl1gIG9uXG4gICAgLy8gZXZlcnkgcmVuZGVyLCB3aGljaCBXSVBFUyBhbnkgY2xhc3MgdGhlIGhvc3QgdGVtcGxhdGUgcHV0IHRoZXJlIOKAlFxuICAgIC8vIHRhcmdldGluZyB0aGUgQ1VTVE9NIEVMRU1FTlQgVEFHIE5BTUUgaW5zdGVhZCBzdXJ2aXZlcyB0aGF0IHJld3JpdGVcbiAgICAvLyAodGhlIGNvbXBvbmVudCBuZXZlciB0b3VjaGVzIGl0cyBvd24gdGFnIG5hbWUpLiBbS2ltXVxuICAgIHFkbmFwcm8tYW5zd2VyLW9wdGlvbiB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxufVxuLmZlLWdyYWRlLXJvdy0tY2hlY2tlZCB7IGJhY2tncm91bmQ6IHJnYmEoNjQsIDczLCAxNTQsIDAuMDYpOyB9XG4vLyBXYXMgYSByYXcgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiPiDigJQgcmVhZCBhcyBcIm5vdCBuZXRqZXMgdmVydGljYWxseSBjZW50ZXJlZFwiXG4vLyBhZ2FpbnN0IHRoZSBhbnN3ZXItb3B0aW9uIHJvdyBuZXh0IHRvIGl0IChLaW0ncyBmZWVkYmFjayAxMi4wNy4yMDI2KS4gTm93XG4vLyBxZG5hcHJvLWNoZWNrYm94LCB3aGljaCBpcyBkaXNwbGF5OmlubGluZS1mbGV4ICsgc2VsZi1jZW50ZXJpbmcgYnkgZGVzaWduXG4vLyAoc2VlIF9jaGVja2JveC5zY3NzKTsgdGhpcyB3cmFwcGVyIG9ubHkgbmVlZHMgdG8gY2VudGVyIFRIQVQgd2l0aGluIHRoZVxuLy8gc2FtZSAyMHB4IGhpdC1ib3ggdGhlIHJvdyBhbHJlYWR5IHJlc2VydmVkLiBbS2ltXVxuLmZlLWdyYWRlLXNlbGVjdCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG59XG5cbi8vIFBlci1yb3cgd3JhcHBlciBhcm91bmQgcWRuYXByby1hbnN3ZXItb3B0aW9uIChGYXNlIDUgTWVlcmtldXplIHBlci1vcHRpb25cbi8vIGFwcGVhcmFuY2UsIDExLjA3LjIwMjYpLiBBTFdBWVMgcHJlc2VudCDigJQgZm9yIGV2ZXJ5IG5vZGUgdHlwZSdzIHJvdywgbm90XG4vLyBqdXN0IE1lZXJrZXV6ZSDigJQgc28gTGluay52dWUgaGFzIGEgc3RhYmxlIHBsYWNlIHRvIGF0dGFjaCB0aGUgYXBwZWFyYW5jZVxuLy8gdHJpZ2dlciArIHBvcG92ZXIgd2l0aG91dCBjaGFuZ2luZyB0aGUgc2luZ2xlLXJvb3QtZWxlbWVudCBhdHRyc1xuLy8gZmFsbHRocm91Z2ggKGlkL2RyYWdnYWJsZSBtdXN0IHN0aWxsIGxhbmQgT04gcWRuYXByby1hbnN3ZXItb3B0aW9uIGl0c2VsZlxuLy8gZm9yIExpc3QudnVlJ3MgbmF0aXZlIERuRDsgTGluay52dWUgc2V0cyBpbmhlcml0QXR0cnM6ZmFsc2UgKyBhbiBleHBsaWNpdFxuLy8gdi1iaW5kPVwiJGF0dHJzXCIgb24gdGhlIHFkbmFwcm8tYW5zd2VyLW9wdGlvbiB0YWcgdG8gZ3VhcmFudGVlIHRoYXQpLlxuLy8gcG9zaXRpb246IHN0YXRpYyBpcyBkZWxpYmVyYXRlIOKAlCB0aGlzIHdyYXBwZXIgbXVzdCBOT1QgYmVjb21lXG4vLyBxZG5hcHJvLWFuc3dlci1vcHRpb24ncyBvZmZzZXRQYXJlbnQsIG9yIExpc3QudnVlJ3MgZHJhZyBkcm9wLWxpbmUgbWF0aFxuLy8gKHJlYWRzIC5vZmZzZXRUb3AgcmVsYXRpdmUgdG8gdGhlIHNjcm9sbGluZyA8dWw+KSB3b3VsZCBicmVhay4gT25seSB0aGVcbi8vIHNtYWxsIC5mZS1hbnN3ZXItYXBwZWFyYW5jZSBzcGFuIChmb3IgdGhlIHBvcG92ZXIpIGlzIHBvc2l0aW9uZWQuXG4uZmUtYW5zd2VyLXJvdy13cmFwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAycHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuXG4gICAgLy8gU2FtZSB3aWR0aCBmaXggLmZlLWdyYWRlLXJvdyBhbHJlYWR5IG5lZWRlZCBhYm92ZTogbmVzdGVkIG9uZSBsZXZlbFxuICAgIC8vIGRlZXBlciB0aGFuIHRoZSBiYXJlIDx1bD4gY2hpbGQsIHNvIGl0IG5vIGxvbmdlciBnZXRzIGZ1bGwgd2lkdGggZm9yXG4gICAgLy8gZnJlZSBieSBkZWZhdWx0IChmbGV4LWl0ZW0gY29udGVudC1zaXppbmcpLiBUYXJnZXQgdGhlIHRhZyBuYW1lIChub3QgYVxuICAgIC8vIGNsYXNzKSBzaW5jZSBxZG5hLWFuc3dlci1vcHRpb24uanMncyBfcmVuZGVyKCkgb3ZlcndyaXRlcyBpdHMgb3duXG4gICAgLy8gY2xhc3NOYW1lIHdob2xlc2FsZSBvbiBldmVyeSByZW5kZXIuXG4gICAgcWRuYXByby1hbnN3ZXItb3B0aW9uIHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG59XG5cbi8vIFN1YnRsZSBwZXItcm93IGFmZm9yZGFuY2UgdG8gb3BlbiB0aGUgaWNvbi9jb2xvdXIgcG9wb3ZlciDigJQgb25seSByZW5kZXJlZFxuLy8gZm9yIE1lZXJrZXV6ZSdzIHJlYWwgKGRhdGFwb2ludC1iYWNrZWQpIG9wdGlvbiByb3dzLCBzZWUgTGluay52dWVcbi8vIHNob3dBcHBlYXJhbmNlVHJpZ2dlcigpLlxuLmZlLWFuc3dlci1hcHBlYXJhbmNlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleDogMCAwIGF1dG87XG59XG4vLyBUYWcgb24gdGhlIHN5bnRoZXRpYyBwZW5kaW5nLW52dCByb3cgKExpbmsudnVlLCBidWdmaXggMTIuMDcuMjAyNik6IG1hcmtzIHRoZVxuLy8gbGl2ZS1wcmV2aWV3IGFuc3dlci1vcHRpb24gcm93IGFzIFwibm90IHlldCByZWFsXCIgdW50aWwgdGhlIHdpemFyZCdzIFNhdmVcbi8vIGJ1dHRvbiBhY3R1YWxseSBjcmVhdGVzIHRoZSBiYWNraW5nIGxpbmsgc2VydmVyLXNpZGUuIFNhbWUgc21hbGwtbXV0ZWRcbi8vIGxhbmd1YWdlIGFzIC5mZS1zY2FsZS1zeW5jLWhpbnQsIGJ1dCBhbiBpbmxpbmUgcGlsbCAoc2l0cyBuZXh0IHRvIHRoZSByb3csXG4vLyBub3QgYSBmdWxsLXdpZHRoIHBhcmFncmFwaCkgc2luY2UgLmZlLWFuc3dlci1yb3ctd3JhcCBpcyBhIGZsZXggcm93LlxuLmZlLWFuc3dlci1wZW5kaW5nLXRhZyB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgY29sb3I6IHZhcigtLXFkbmEtY29sb3ItdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMDcsIDExNCwgMTI4LCAwLjEpO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIHBhZGRpbmc6IDNweCA4cHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmZlLWFuc3dlci1hcHBlYXJhbmNlLXRyaWdnZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDI2cHg7XG4gICAgaGVpZ2h0OiAyNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogIzhhOGZiODtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXMsIGNvbG9yIDEyMG1zLCBib3JkZXItY29sb3IgMTIwbXM7XG5cbiAgICAmOmhvdmVyLFxuICAgICYtLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlZWYwZmY7XG4gICAgICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgICAgICBib3JkZXItY29sb3I6ICNkNGQ4ZWU7XG4gICAgfVxufVxuXG4vLyBCcm93c2UgbW9kYWwgb3ZlciBBTEwgYW5zd2VyIG9wdGlvbnMgKE9wdGlvbkFwcGVhcmFuY2VPdmVybGF5LnZ1ZSkuXG4vLyBSRURFU0lHTiB2NyAoS2ltLCBkZWZpbml0aXZlIGRlc2lnbiArIHNrZXRjaCwgMTIuMDcuMjAyNik6IHJlcGxhY2VzIHY0J3Ncbi8vIFwib25lIGNlbnRlcmVkIHNtYWxsIG1vZGFsIHBlciBvcHRpb24sIGljb24tcGlja2luZyBkZWxlZ2F0ZWQgdG8gYSBuZXN0ZWRcbi8vIHBvcG92ZXJcIiB3aXRoIE9ORSBtb2RhbC1zaXplLWxhcmdlLCB0d28tY29sdW1uIGxheW91dCDigJQgZXZlcnkgb3B0aW9uIG9mXG4vLyB0aGUgbm9kZSBpcyBicm93c2FibGUgaW4gb25lIHNpdHRpbmcsIGFuZCB0aGUgaWNvbiBwYW5lbCBpcyBub3cgYVxuLy8gUEVSTUFORU5UIHBhcnQgb2YgdGhpcyBtb2RhbCdzIG93biBib2R5IChubyBtb3JlIG92ZXJsYXktb3Zlci1tb2RhbCkuXG4vLyBUaGUgY29tcG9uZW50IHN0aWxsIHJlbmRlcnMgdGhlIEVYQUNUIHFkbmFwcm8tbW9kYWwgbWFya3VwL2NsYXNzZXNcbi8vICgubW9kYWwtYmFja2Ryb3AgPiAubW9kYWwtZGlhbG9nID4gLm1vZGFsLXdpbmRvdyArIGhlYWRlci9ib2R5L2Zvb3Rlcikgc29cbi8vIGFsbCBjYXJkIGNocm9tZSBjb21lcyAxOjEgZnJvbSBfbW9kYWwuc2NzcyAoPHFkbmFwcm8tbW9kYWw+IHRoZSB3ZWJcbi8vIGNvbXBvbmVudCBpdHNlbGYgc3RpbGwgY2FuJ3QgaG9zdCB0aGlzOiBpdCBjbG9uZXMgaXRzIGxpZ2h0IERPTSBvblxuLy8gcmVuZGVyLCBraWxsaW5nIGV2ZXJ5IFZ1ZSBsaXN0ZW5lcjsga25vd24gZ290Y2hhKS4gT25seSBhZGRpdGlvbnMgaGVyZTpcbi8vIHRoZSB6LWluZGV4IGJ1bXAgYW5kIHRoZSBhcHBlYXJhbmNlLXNwZWNpZmljIGlubmFyZHMgYmVsb3cuXG4vLyB6LWluZGV4IDkzNTAgY2xlYXJzIHRoZSB3aXphcmQgbW9kYWwgKDkwMDApLCBpdHMgZHJvcGRvd24gbGF5ZXIgKDkyMDApIGFuZFxuLy8gdGhlIHNoYXJlZCBjb25maXJtIGRpYWxvZydzIGJ1bXAgKDkzMDApOiBoaWdoZXN0IHNsb3QgYmVsb3cgdG9hc3RzICg5OTk5KS5cbi5mZS1vYS1tb2RhbCB7XG4gICAgei1pbmRleDogOTM1MDtcbn1cblxuLy8gVHdvLWNvbHVtbiBib2R5LiBLaW0ncyBleHBsaWNpdCBmZWVkYmFjayBvbiB2NDogXCJhbGxlcyB6aXQgb3AgZWxrYWFyXG4vLyBnZXByb3B0XCIg4oCUIGdlbmVyb3VzIGdhcHMgYm90aCBiZXR3ZWVuIHRoZSB0d28gY29sdW1ucyBhbmQgYmV0d2VlbiBlYWNoXG4vLyBibG9jayBpbnNpZGUgdGhlIGxlZnQgY29sdW1uIChzZWUgLmZlLW9hLWJyb3dzZS1sZWZ0IGJlbG93KS5cbi5mZS1vYS1icm93c2UtYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDI4cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG59XG4uZmUtb2EtYnJvd3NlLWxlZnQge1xuICAgIGZsZXg6IDAgMCAyOTZweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMjJweDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBhZGRpbmc6IDJweCA0cHggMnB4IDJweDtcbn1cbi5mZS1vYS1icm93c2UtcmlnaHQge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG59XG5cbi8vIExpdmUgcHJldmlldyBhdCB0aGUgdG9wIG9mIHRoZSBsZWZ0IGNvbHVtbjogdGhlIHN0YWdlZCBpY29uL2xhYmVsL2NvbG91clxuLy8gYXMgdGhlIFJFQUwgYW5zd2VyLWJ1dHRvbiBjb21wb25lbnQgKHRoZSBvbmUgYWN0dWFsbHkgdXNlZCBpbiB0aGUgUFdBXG4vLyBzdXJ2ZXkvYXVkaXQgZmxvdyksIG9uIGEgc3VidGxlIGNvbnRyYXN0aW5nIHN1cmZhY2Ugc28gaXQgcmVhZHMgYXNcbi8vIFwidm9vcmJlZWxkXCIuIERlbGliZXJhdGVseSBpbnRlcmFjdGl2ZTogdGhlIGF1dGhvciBjYW4gY2xpY2sgYW5kIGZlZWwgaXQuXG4uZmUtb2EtcHJldmlldyB7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmNGY1ZmI7XG5cbiAgICAvLyBQcmV2ZW50cyBhIEZPVUMgb2YgdW5zdHlsZWQgaW5saW5lIGNvbnRlbnQ6IHFkbmFwcm8tYW5zd2VyLWJ1dHRvbidzXG4gICAgLy8gb3duIGRpc3BsYXk6ZmxleCBvbmx5IGFwcGxpZXMgb25jZSBpdHMgSlMgYXNzaWducyB0aGUgY29tcG9uZW50IGNsYXNzXG4gICAgLy8gb24gY29ubmVjdGVkQ2FsbGJhY2s7IGJlZm9yZSB0aGF0IHRoZSB1bi11cGdyYWRlZCB0YWcgZGVmYXVsdHMgdG9cbiAgICAvLyBpbmxpbmUuXG4gICAgcWRuYXByby1hbnN3ZXItYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5mZS1vYS1wcmV2aWV3IHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xufVxuXG4vLyBHZW5lcmljIHZlcnRpY2FsIGJsb2NrIChjb2xvdXIgcGlja2VyIHNlY3Rpb24gdG9kYXkpIOKAlCBsYWJlbCB1c2VzIHRoZVxuLy8gc2hhcmVkIC5xZG5hcHJvLW1vZGFsLWxhYmVsIGNsYXNzIChzZWUgX21vZGFsLnNjc3MpLCBOT1QgYSBiZXNwb2tlIHN0eWxlOlxuLy8gS2ltJ3MgZmVlZGJhY2sgKDEyLjA3LjIwMjYpIHdhcyB0aGF0IHRoZSBvbGQgSUNPTi9DT0xPVVIga29wamVzICgxMXB4LzcwMC9cbi8vIHVwcGVyY2FzZS9sZXR0ZXItc3BhY2VkKSBkaWRuJ3QgbWF0Y2ggaG93IGV2ZXJ5IG90aGVyIG1vZGFsIGluIHRoaXMgYXBwXG4vLyBsYWJlbHMgYSBmaWVsZC4gVGhlIHNoYXJlZCBjbGFzcyBpcyAxNHB4LzUwMC8jMGIwYjBkLCBub3JtYWwgY2FzZSDigJQgdGhlXG4vLyBzYW1lIHN0eWxlIHRoaXMgbW9kYWwncyBvd24gXCJBbnR3b29yZG9wdGllc1wiIHNlY3Rpb24gdGl0bGUgYW5kXG4vLyBOb2RlT3B0aW9ucy52dWUncyBcIlN0eWxlXCIgbGFiZWwgYWxyZWFkeSB1c2UuXG4uZmUtb2EtYmxvY2sge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDZweDtcbn1cblxuLy8gUHJldmlvdXMvTmV4dCArIFwibiB2YW4gbVwiICsgdGhlIG9wdGlvbidzIG93biBsYWJlbCBhcyBhIGNvbHVtbiB0aXRsZSArXG4vLyBicm93c2UgaGludC4gT25seSByZW5kZXJlZCB3aGlsZSB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIG9wdGlvbiB0byBicm93c2Vcbi8vIChzZWUgT3B0aW9uQXBwZWFyYW5jZU92ZXJsYXkudnVlJ3Mgc2hvd05hdikuXG4uZmUtb2EtbmF2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMHB4O1xuICAgIHBhZGRpbmctdG9wOiAxNnB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTVlNWVhO1xufVxuLmZlLW9hLW5hdi10aXRsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMGIwYjBkO1xufVxuLmZlLW9hLW5hdi10aXRsZS10ZXh0IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4vLyBVbnNhdmVkLWNoYW5nZSBpbmRpY2F0b3IgbmV4dCB0byB0aGUgY3VycmVudGx5LWJyb3dzZWQgb3B0aW9uJ3MgdGl0bGUuXG4uZmUtb2EtZGlydHktZG90IHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB3aWR0aDogNnB4O1xuICAgIGhlaWdodDogNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAjYzk4YTFmO1xufVxuLmZlLW9hLW5hdi1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiA4cHg7XG59XG4uZmUtb2EtbmF2LWNvdW50ZXIge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzZiNzI4MDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmZlLW9hLW5hdi1oaW50IHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIGNvbG9yOiAjOGE5MGFjO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5mZS1vYS1uYXYge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICM0MDQ0NGQ7XG59XG5cbi8vIFJpZ2h0IGNvbHVtbjogcGVybWFuZW50IGljb24gcGFuZWwgKHNlYXJjaCArIHNlbGYtc2Nyb2xsaW5nIGdyaWQgKyBhXG4vLyBydW5uaW5nIFwibiB2YW4gbSBpY29uZW5cIiBjb3VudGVyKSDigJQgcmVwbGFjZXMgdjQncyBuZXN0ZWRcbi8vIHFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXItb3ZlcmxheSBwb3BvdmVyLW92ZXItbW9kYWwuIFNlZVxuLy8gT3B0aW9uQXBwZWFyYW5jZU92ZXJsYXkudnVlJ3MgZG9jYmxvY2sgZm9yIHdoeSB0aGlzIGlzIGEgZnJlc2ggVnVlLW5hdGl2ZVxuLy8gcGFuZWwgcmF0aGVyIHRoYW4gdGhhdCBwb3BvdmVyIGVtYmVkZGVkIGluIHBsYWNlLlxuLmZlLW9hLWljb24tc2VhcmNoIHtcbiAgICBmbGV4LXNocmluazogMDtcbn1cbi5mZS1vYS1ncmlkLXNjcm9sbCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgIG1hcmdpbi10b3A6IC00cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWU1ZWE7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLmZlLW9hLWdyaWQtc2Nyb2xsIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjNDA0NDRkO1xufVxuLmZlLW9hLWdyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCAzNnB4KTtcbiAgICBnYXA6IDhweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xuICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XG59XG4vLyBUaWxlIGxvb2sgbWlycm9ycyAuYWlwLW92ZXJsYXktbWRpLXRpbGUgKHRoZSBzaGFyZWQgb3ZlcmxheSdzIG93biBNREkgdGlsZSxcbi8vIF9hY3Rpdml0eS1pY29uLXBpY2tlci1vdmVybGF5LnNjc3MpIHNvIGJvdGggaWNvbi1waWNraW5nIHN1cmZhY2VzIGluIHRoZVxuLy8gZmxvd2VkaXRvciByZWFkIGFzIG9uZSBjb25zaXN0ZW50IHZpc3VhbCBsYW5ndWFnZSwgd2l0aG91dCB0aGlzIG1vZGFsXG4vLyBkZXBlbmRpbmcgb24gdGhhdCBwb3BvdmVyIGNvbXBvbmVudCdzIGludGVybmFsIGNsYXNzZXMuXG4uZmUtb2EtdGlsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTFlM2U2O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjNTY1YjY2O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2UsIGJveC1zaGFkb3cgMTUwbXMgZWFzZTtcblxuICAgIHFkbmFwcm8taWNvbiB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ViZWRmYjtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjYjhiZGU4O1xuICAgIH1cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICBib3JkZXItY29sb3I6ICM0MDQ5OWE7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjIwKTtcbiAgICB9XG4gICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICBib3JkZXItY29sb3I6ICM0NjUyZjM7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMDYpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSg3MCwgODIsIDI0MywgMC4yNSk7XG4gICAgICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgIH1cbn1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAuZmUtb2EtdGlsZSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gICAgY29sb3I6ICNkMWQ1ZGI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpO1xuICAgIH1cbiAgICAmLmZlLW9hLXRpbGUtLXNlbGVjdGVkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjYTVhY2ZmO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjE4KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMzApO1xuICAgICAgICBjb2xvcjogI2E1YWNmZjtcbiAgICB9XG59XG4uZmUtb2EtaWNvbi1lbXB0eSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDI0cHggOHB4O1xuICAgIGNvbG9yOiAjNmU2ZTczO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbn1cbi5mZS1vYS1pY29uLWNvdW50IHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgY29sb3I6ICM2ZTZlNzM7XG59XG5cbi8vIGFkdmFuY2VkX2lucHV0IGZyZWUtZmllbGQgaWNvbiBwaWNrZXIgKEFic3RyYWN0SWNvblBpY2tlci52dWUsIFBoYXNlIDZBLFxuLy8gMTEuMDcuMjAyNik6IGEgc2V0dGluZ3Mtcm93IHRyaWdnZXIgYnV0dG9uIHRoYXQgb3BlbnMgdGhlIHNoYXJlZFxuLy8gT3B0aW9uQXBwZWFyYW5jZU92ZXJsYXkgKGNlbnRlcmVkIG1vZGFsLWxheWVyLCBzaG93Q29sb3I9ZmFsc2UpLCBzZWUgdGhlXG4vLyAuZmUtb2EtbW9kYWwgcnVsZXMgYWJvdmUuIFtSZWRlc2lnbmVkIDEyLjA3LjIwMjZdXG4uZmUtZmktYW5jaG9yIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbn1cbi5mZS1maS10cmlnZ2VyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU0ZWY7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBjb2xvcjogIzQwNDk5YTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXMsIGJvcmRlci1jb2xvciAxMjBtcztcblxuICAgICY6aG92ZXIsXG4gICAgJi0tYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2VlZjBmZjtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZDRkOGVlO1xuICAgIH1cbn1cbi5mZS1maS10cmlnZ2VyLWxhYmVsIHtcbiAgICBtYXgtd2lkdGg6IDE0MHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5mZS1pbXBvcnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDE2cHg7XG4gICAgbWluLXdpZHRoOiA0MjBweDtcbn1cbi5mZS1pbXBvcnQtcGFuZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xuICAgIG1pbi1oZWlnaHQ6IDE3MHB4O1xufVxuLyogcWRuYXByby1tb2RhbCB0b2dnbGVzIC5tb2RhbC10YWItcGFuZWwoLWFjdGl2ZSk7IHN1cHBseSB0aGUgc2hvdy9oaWRlIGhlcmVcbiAgICh0aGUgbW9kYWwgYnVpbGQgc2hpcHMgbm8gdGFiLXBhbmVsIENTUyBvZiBpdHMgb3duKS4gW0tpbSAyMDI2LTA2LTIwXSAqL1xuLmZlLWltcG9ydC1wYW5lLm1vZGFsLXRhYi1wYW5lbDpub3QoLm1vZGFsLXRhYi1wYW5lbC1hY3RpdmUpIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuLyogRHJvcC16b25lIHJlc3RpbmcgY29udGVudCAoaXQgaXMgYW4gb3ZlcmxheSB3cmFwcGVyLCBzbyBpdCBuZWVkcyBpdHMgb3duXG4gICBib2R5IGZvciBoZWlnaHQgKyBhIGNsaWNrIHRhcmdldCkuICovXG4uZmUtaW1wb3J0LWR6IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBwYWRkaW5nOiAyOHB4IDE2cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjNkI3MTkyO1xuXG4gICAgLm1kaSB7IGZvbnQtc2l6ZTogMjhweDsgY29sb3I6ICM0MDQ5OUE7IH1cbiAgICAmLXRleHQgeyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiAjMkEyRjQ1OyB9XG4gICAgJi1oaW50IHsgZm9udC1zaXplOiAxMnB4OyBjb2xvcjogIzhBOTBBQzsgfVxuXG4gICAgLmZlLWltcG9ydC1waWNrIHsgbWFyZ2luLXRvcDogOHB4OyB9XG59XG4uZmUtaW1wb3J0LWhpbnQge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICM4QTkwQUM7XG59XG4uZmUtaW1wb3J0LWNvdW50IHtcbiAgICBtYXJnaW4tbGVmdDogNHB4O1xuICAgIGNvbG9yOiAjNDA0OTlBO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uZmUtaW1wb3J0LWZpbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAjRjRGNUZCO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cbiAgICAmLW5hbWUge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGNvbG9yOiAjMkEyRjQ1O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG4gICAgJi1yZW1vdmUge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBjb2xvcjogIzhBOTBBQztcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAmOmhvdmVyIHsgY29sb3I6ICM0MDQ5OUE7IH1cbiAgICB9XG59XG4uZmUtaW1wb3J0LWFjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBnYXA6IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xufVxuXG4vLyBPcGVuIGludm9lciAvIGdldGFsXG4uZmUtcHYtZmllbGQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBib3JkZXI6IDEuNXB4IHNvbGlkICM0MDQ5OUE7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbn1cbi5mZS1wdi1maWVsZC0tY291bnRlciB7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuLmZlLXB2LXN0ZXAge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAyNnB4O1xuICAgIGhlaWdodDogMjZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjNDA0OTlBO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjNDA0OTlBO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcyBlYXNlO1xuXG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoNjQsIDczLCAxNTQsIDAuMTApOyB9XG4gICAgJjphY3RpdmUgeyBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAwLjE4KTsgfVxufVxuLmZlLXB2LWlucHV0IHsgZmxleDogMSAxIGF1dG87IG1pbi13aWR0aDogMDsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA2cHg7IH1cbi5mZS1wdi1jdXIgeyBjb2xvcjogIzQwNDk5QTsgZm9udC13ZWlnaHQ6IDcwMDsgfVxuLmZlLXB2LXJlYWxpbnB1dCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGNvbG9yOiAjMGIwYjBkO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIgeyBjb2xvcjogIzlhYTBiNTsgfVxufVxuLmZlLXB2LXBoICB7IGNvbG9yOiAjOWFhMGI1OyBmb250LXNpemU6IDE0cHg7IH1cbi5mZS1wdi1iYXJjb2RlIHsgbWFyZ2luLWxlZnQ6IGF1dG87IGNvbG9yOiAjNDA0OTlBOyBmb250LXNpemU6IDE4cHg7IH1cblxuLy8gS2lsbCBhIGxlZ2FjeSBnbG9iYWwgYGlucHV0W3R5cGU9XCJkYXRlXCJdOjpiZWZvcmVgIChhbmQgdGltZSkgTURJLWdseXBoIChmcm9tXG4vLyBzdHlsZS5jc3MpIHRoYXQgbGVha3Mgb250byBFVkVSWSBuYXRpdmUgZGF0ZS90aW1lIGZpZWxkIGluIHRoZSBtb2RhbCAocWRuYXByby1pbnB1dFxuLy8gQU5EIHRoZSByYXcgaW5wdXRzIGluIEFic3RyYWN0VG9nZ2xlSW5wdXQpIGFuZCByZW5kZXJzIGFzIGEgc3RyYXkgQ0pLIGNoYXIgKFwi5bGiXCIpXG4vLyBiZWNhdXNlIHRoZSBNREkgd2ViZm9udCBpc24ndCBsb2FkZWQgb24gdGhlIGZsb3dlZGl0b3IgcGFnZS4gW0tpbSAyMDI2LTA2LTE5XVxuLmZlLW5vIGlucHV0W3R5cGU9XCJkYXRlXCJdOjpiZWZvcmUsXG4uZmUtbm8gaW5wdXRbdHlwZT1cInRpbWVcIl06OmJlZm9yZSxcbi5mZS1wdiBpbnB1dFt0eXBlPVwiZGF0ZVwiXTo6YmVmb3JlLFxuLmZlLXB2IGlucHV0W3R5cGU9XCJ0aW1lXCJdOjpiZWZvcmUgeyBjb250ZW50OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLy8gSW1hZ2UtdXBsb2FkIGFjdGlvbiBwaW5uZWQgdG8gdGhlIHRvcCBvZiB0aGUgcHJldmlldyBjYXJkLCBzZXBhcmF0ZWQgZnJvbSB0aGVcbi8vIHF1ZXN0aW9uIGJ5IGEga2V5bGluZS4gW0tpbSAyMDI2LTA2LTE4XVxuLmZlLXB2LWltZ2FjdGlvbiB7XG4gICAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTRweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VjZWVmNTtcbn1cblxuLy8gVXBsb2FkZWQgZGlzcGxheSBpbWFnZSBpbiB0aGUgcHJldmlldyDigJQgcm91bmRlZCBjb3JuZXJzIChtYXRjaGVzIHRoZSBjcm9wcGVyJ3Ncbi8vIHJvdW5kZWQgbWFzayArIGhvdyB0aGUgYXBwIHJlbmRlcnMgaXQpLiAxMnB4IHRvcCtib3R0b20gc28gaXQgYnJlYXRoZXMgdGhlIHNhbWVcbi8vIGFzIHRoZSBpbnB1dCBmaWVsZCwgaW4gd2hpY2hldmVyIHBvc2l0aW9uIGl0IHNpdHMuIFtLaW0gMjAyNi0wNi0xOV1cbi5mZS1wdi1waG90byB7XG4gICAgbWFyZ2luOiAxMnB4IDA7XG4gICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiAyMjBweDtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgfVxufVxuLy8gRGlzcGxheS1pbWFnZSBzaXplIChpbWFnZV9zaXplIG1ldGE6IHMgfCBtIHwgbCkuIEwgaXMgdGhlIHVubW9kaWZpZWQgcnVsZSBhYm92ZSxcbi8vIHNvIG5vIGV4aXN0aW5nIHF1ZXN0aW9uIGNoYW5nZXMuIFRoZSBweCB2YWx1ZXMgYXJlIHRoZSBhcHAncyAyMC8zNS82MHZoIHNjYWxlZCB0b1xuLy8gdGhpcyBwcmV2aWV3IGNhcmQgKDIyMHB4IHN0YW5kcyBpbiBmb3IgNjB2aCksIGtlZXBpbmcgdGhlIHByb3BvcnRpb25zIGhvbmVzdC5cbi8vXG4vLyBTIGFuZCBNIHNjYWxlIFBST1BPUlRJT05BTExZIGFuZCBjZW50cmUgKHdpZHRoOmF1dG8gKyBjb250YWluKSBpbnN0ZWFkIG9mIHRoZVxuLy8gZnVsbC13aWR0aCBjcm9wIEwgdXNlcywgYmVjYXVzZSB0aGF0IGlzIHdoYXQgdGhlIGZpZWxkIGFwcCBkb2VzIHdpdGggYSBib3VuZGVkXG4vLyBpbWFnZSAobWF4LXdpZHRoOjEwMCUgKyBoZWlnaHQ6YXV0byArIG1heC1oZWlnaHQpLiBBIGZ1bGwtd2lkdGggY3JvcCBhdCA3NXB4IHRhbGxcbi8vIHdvdWxkIHNob3cgYSBsZXR0ZXJib3ggc2xpY2UsIHdoaWNoIGlzIG5vdCB3aGF0IHRoZSBhcHAgcmVuZGVycy4gW0tpbSAwMy4wOC4yMDI2XVxuLmZlLXB2LXBob3RvLS1zIGltZyxcbi5mZS1wdi1waG90by0tbSBpbWcge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuLmZlLXB2LXBob3RvLS1zIGltZyB7IG1heC1oZWlnaHQ6IDc1cHg7IH1cbi5mZS1wdi1waG90by0tbSBpbWcgeyBtYXgtaGVpZ2h0OiAxMzBweDsgfVxuXG4vLyDilIDilIAgUmVidWlsdCBhZHZhbmNlZF9pbnB1dCBwcmV2aWV3OiBhcHAtZmFpdGhmdWwsIHJlYWN0cyB0byBldmVyeSBzZXR0aW5nIOKUgOKUgFxuLy8gRWRpdG9yLW9ubHkgcmVxdWlyZWQgY3VlICh0aGUgZmllbGQgYXBwIHNob3dzIG5vIGFzdGVyaXNrOyB0aGlzIGlzIGFuIGF1dGhvciBoaW50KS5cbi5mZS1wdi1yZXEgeyBjb2xvcjogI0RFNTA2NjsgZm9udC13ZWlnaHQ6IDcwMDsgbWFyZ2luLWxlZnQ6IDJweDsgY3Vyc29yOiBoZWxwOyB9XG5cbi5mZS1wdi1zaW5nbGUgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDhweDsgfVxuXG4vLyBMaXZlIHZhbGlkYXRpb24gZmVlZGJhY2sgKHNhbmRib3gpOiByZWQgZmllbGQgKyBtZXNzYWdlIHdoZW4gYSBydWxlIGZhaWxzLFxuLy8gbXV0ZWQgaGludCBsaXN0aW5nIHRoZSBhY3RpdmUgcnVsZXMgb3RoZXJ3aXNlLlxuLmZlLXB2LWZpZWxkLS1lcnJvciB7IGJvcmRlci1jb2xvcjogI0RFNTA2NiAhaW1wb3J0YW50OyB9XG4uZmUtcHYtZXJyb3Ige1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICNERTUwNjY7XG5cbiAgICAubWRpIHsgZm9udC1zaXplOiAxNHB4OyB9XG59XG4uZmUtcHYtaGludCB7IGZvbnQtc2l6ZTogMTFweDsgY29sb3I6ICM5YWEwYmQ7IGxpbmUtaGVpZ2h0OiAxLjM7IH1cblxuLy8gRXhwYW5kYWJsZSB0ZXh0IC0+IGxlZnQtYWxpZ25lZCBtdWx0aS1saW5lIGFyZWEuXG4uZmUtcHYtdGV4dGFyZWEge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDk2cHg7XG4gICAgcmVzaXplOiBub25lO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmZlLXB2LXJlYWxpbnB1dC0tY2VudGVyIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi8vIENsb2NrIC8gY2FsZW5kYXIgYWZmb3JkYW5jZSBpbnNpZGUgdGltZSArIGRhdGUgZmllbGRzLlxuLmZlLXB2LWFmZml4IHsgY29sb3I6ICM0MDQ5OUE7IGZvbnQtc2l6ZTogMThweDsgbWFyZ2luLWxlZnQ6IDZweDsgZmxleDogMCAwIGF1dG87IG9wYWNpdHk6IC44OyB9XG5cbi8vIFN1bSByb3cgKGF1dG9fc3VtKTogcG9zaXRpb25zIHRoZSBxZG5hcHJvLXN1bW1hcnktYmFkZ2UgYXQgdGhlIHJpZ2h0LlxuLy8gSW50ZXJuYWwgc3R5bGluZyAoY29sb3VyLCBwYWRkaW5nLCBib3JkZXItcmFkaXVzKSBjb21lcyBmcm9tIHRoZSBiYWRnZSBjb21wb25lbnQuXG4uZmUtcHYtc3VtIHsgYWxpZ24tc2VsZjogZmxleC1lbmQ7IH1cblxuLy8gSW5wdXQgZm9yIGV2ZXJ5IHVuaXQ6IG9uZSByZXByZXNlbnRhdGl2ZSBwZXItdW5pdCByb3cgKyBjYXB0aW9uLlxuLmZlLXB2LXVuaXRzIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiA4cHg7IH1cbi8vIE5vIHBlci1yb3cgYm9yZGVyIGluIHRoZSBwcmV2aWV3IChLaW0gMjAyNi0wNi0xOSk6IGRlbnNlciA9IG1vcmUgcm9vbS4gVGhlXG4vLyByb3cgY2FyZCBib3JkZXIgaXMgdGhlIFwidGFibGV0IG9ubHlcIiB0cmVhdG1lbnQgZm9yIHRoZSBhcHAgKHNlZSBtZW1vcnlcbi8vIHJlc3BvbnNpdmUtYm9yZGVyLXRhYmxldC1ub3QtbW9iaWxlKTsgdGhlIGVkaXRvciBwcmV2aWV3IHN0YXlzIGZsYXQvZGVuc2UuXG4uZmUtcHYtdW5pdC1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogNHB4IDA7XG59XG4vLyBJY29uICsgbmFtZSA9IGEgZml4ZWQsIGNsaWNrYWJsZSB6b25lIHRoYXQgc2xpZGVzIHRoZSBuYW1lIG91dCBvbiBjbGljayAodGhlXG4vLyBmaWVsZCBzaHJpbmtzKS4gQ29sbGFwc2VkIHNob3dzIGljb24gKyBhIHNsaXZlciBvZiBuYW1lOyAuaXMtZXhwYW5kZWQgcmV2ZWFsc1xuLy8gfjE1MHB4IG9mIG5hbWUuIEZ1bGwgbmFtZSB2aWEgdGl0bGUgdG9vbHRpcC4gW0tpbSAyMDI2LTA2LTE5XVxuLmZlLXB2LXVuaXQtaW5mbyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAvLyBDb21wYWN0LWZpZWxkIGxheW91dCAoS2ltIDIwMjYtMDYtMTkpOiB0eXBlcyB0aGF0IGRvbid0IGV4cGVjdCBsYXJnZSBpbnB1dFxuICAgIC8vIChjdXJyZW5jeS9udW1iZXIvdGltZS9kYXRlKSBkb24ndCBuZWVkIGEgd2lkZSBmaWVsZCBwZXIgdW5pdCDigJQgc28gdGhlIG5hbWVcbiAgICAvLyB6b25lIGdldHMgdGhlIHJvb20gKGl0IHdhcyBiYXJlbHkgcmVhZGFibGUgYXQgOTJweCkuIFRoZSBmaWVsZCBzaHJpbmtzIHRvXG4gICAgLy8gZmlsbCB0aGUgcmVzdC4gT25seSBhcHBsaWVzIGluIHBlci11bml0IG1vZGUgKHRoZXNlIGNsYXNzZXMgb25seSByZW5kZXIgdGhlbikuXG4gICAgd2lkdGg6IDE2MHB4OyAgICAgICAgICAgIC8vIGNvbGxhcHNlZCBkZWZhdWx0OyBleHBhbmQgYW5pbWF0ZXMgdG8gMjMwcHggdmlhIHJBRlxuICAgIG1pbi13aWR0aDogMTYwcHg7XG4gICAgbWF4LXdpZHRoOiAxNjBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAvLyBOT1RFOiBOTyBDU1Mgd2lkdGgvbWluL21heCB0cmFuc2l0aW9uIGhlcmUg4oCUIGl0IGZyZWV6ZXMgb24gdGhpcyBmbGV4IGl0ZW1cbiAgICAvLyAocmVwcm9kdWNpYmxlKS4gVGhlIHNsaWRlIGlzIGRyaXZlbiBieSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgaW4gX2FuaW1hdGVVbml0V2lkdGhcbiAgICAvLyAoc2V0cyB3aWR0aCttaW4rbWF4IGVhY2ggZnJhbWUpLiBbMjAyNi0wNi0xOV1cbn1cbi5mZS1wdi11bml0LWltZyB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogI2VlZjBmYTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC8vIHJlYWwgdW5pdCBwaG90byBmaWxscyB0aGUgdGlsZVxuICAgIGltZyB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IG9iamVjdC1maXQ6IGNvdmVyOyBkaXNwbGF5OiBibG9jazsgfVxuICAgIC8vIHR5cGUtaWNvbiBmYWxsYmFjayAoYWN0aXZpdHkgU1ZHIGxpbmUtYXJ0KTogY29udGFpbmVkICsgcGFkZGVkLCB0aW50ZWQgYmdcbiAgICAmLmZlLXB2LXVuaXQtaW1nLS1pY29uIGltZyB7IG9iamVjdC1maXQ6IGNvbnRhaW47IHBhZGRpbmc6IDhweDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxufVxuLy8gU2hvd24gd2hlbiB0aGUgZmxvdyBoYXMgbm8gY291cGxlZCB1bml0cyB5ZXQuXG4uZmUtcHYtdW5pdHMtZW1wdHkge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIGNvbG9yOiAjOWFhMGJkO1xuICAgIHBhZGRpbmc6IDhweCAycHg7XG59XG4uZmUtcHYtdW5pdC1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMyYTJjM2E7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmZlLXB2LXVuaXQtY291bnRlciB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNHB4OyBmbGV4OiAwIDAgYXV0bzsgfVxuLmZlLXB2LXVuaXQtaW5wdXQge1xuICAgIHdpZHRoOiA5NnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xuICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgY29sb3I6ICMyYTJjM2E7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcblxuICAgICY6OnBsYWNlaG9sZGVyIHsgY29sb3I6ICM5YWEwYmQ7IH1cbn1cbi5mZS1wdi11bml0cy1ub3RlIHsgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogIzlhYTBiZDsgbGluZS1oZWlnaHQ6IDEuMzsgfVxuLy8gUmlnaHQtc2lkZSBjb250cm9sIG9mIGEgcGVyLXVuaXQgcm93OiBvcHRpb25hbCBiYXJjb2RlIHNjYW4gYnV0dG9uICsgdGhlIGZpZWxkLlxuLy8gTk9URTogbm8gb3ZlcmZsb3c6aGlkZGVuIGhlcmUg4oCUIGl0IGNsaXBwZWQgdGhlIGZpZWxkJ3MgZm9jdXMgcmluZyBvbiB0aGUgcmlnaHRcbi8vIChLaW0gMjAyNi0wNi0xOSkuIFRoZSBmbGV4IHNocmluayBpcyBoYW5kbGVkIGJ5IG1pbi13aWR0aDowIGFsb25lLCBzbyB0aGUgY2xpcFxuLy8gaXNuJ3QgbmVlZGVkOyBkcm9wcGluZyBpdCBsZXRzIHRoZSBmb2N1cyBnbG93IHJlbmRlciBmdWxseSBpbnNpZGUgdGhlIGNhcmQgcGFkZGluZy5cbi5mZS1wdi11bml0LWNvbnRyb2wgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDZweDsgZmxleDogMSAxIGF1dG87IG1pbi13aWR0aDogMDsgfVxuLmZlLXB2LXVuaXQtZmllbGQge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICAvLyBsZXQgdGhlIHFkbmFwcm8taW5wdXQgc2hyaW5rIGZ1bGx5IHNvIGl0IG5ldmVyIGJyZWFrcyBvdXQgb2YgdGhlIGNhcmQgd2hlblxuICAgIC8vIHRoZSBuYW1lIHpvbmUgZXhwYW5kcyAodGhlIGZpZWxkIGdldHMgc21hbGxlciBpbnN0ZWFkKS4gW0tpbSAyMDI2LTA2LTE5XVxuICAgIC5pbnB1dC1maWVsZC1yb3csIC5pbnB1dC1maWVsZCB7IG1pbi13aWR0aDogMDsgfVxufVxuLy8gXCJBbnN3ZXIgcGVyIHVuaXRcIiBwZXItcm93IGNvbnRyb2xzICh5ZXNfbm8gLyBvcHRpb25zIGNhdGVnb3JpZXMsIHBlci11bml0XG4vLyBhZGFwdGVycywgMTIuMDcuMjAyNikuIFJldXNlcyAuZmUtcHYtdW5pdC1jb250cm9sJ3MgZmxleC9nYXAgYmFzZTsgdGhlIHllc25vXG4vLyB2YXJpYW50IG5lZWRzIGl0cyBidXR0b25zIHRvIHdyYXAvc3RhY2sgd2hlbiBhIHRoaXJkIChudnQpIGJ1dHRvbiB3b24ndCBmaXQsXG4vLyBtaXJyb3JpbmcgLmZlLXB2LXllc25vLS1zdGFja2VkJ3Mgb3duIHJ1bGUgZm9yIHRoZSBzaW5nbGUtcXVlc3Rpb24gbGF5b3V0LlxuLmZlLXB2LXVuaXQtY29udHJvbC0teWVzbm8ge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBxZG5hcHJvLWFuc3dlci1idXR0b24geyBmbGV4OiAxIDEgMDsgbWluLXdpZHRoOiA2NHB4OyB9XG4gICAgLy8gUGhvbmUgcGFyaXR5IChZZXMvTm8gcGVyLXVuaXQsIDEyLjA3LjIwMjYpOiB0aGUgZmllbGQgYXBwIGhpZGVzIHRoZSByb3VuZFxuICAgIC8vIGluZGljYXRvciArIHRodW1iIGljb24gaW4gdGhlc2UgY29tcGFjdCBwZXItdW5pdCByb3dzIHRvIHNhdmUgaG9yaXpvbnRhbFxuICAgIC8vIHNwYWNlLCBsZWF2aW5nIG9ubHkgdGhlIEphL05lZSgvTnZ0KSB0ZXh0IOKAlCBzZWUgdGhlIHBhcmFsbGVsIFBXQSBjaGFuZ2VcbiAgICAvLyB0byB5ZXNfbm8uanMncyBwZXItdW5pdCByb3cgKC55bi11bml0LWJ1dHRvbnMpLiBTY29wZWQgdG8gVEhJUyBwZXItdW5pdFxuICAgIC8vIHdyYXBwZXIgb25seSwgc28gdGhlIHNpbmdsZS1xdWVzdGlvbiBZZXMvTm8gYnV0dG9ucyBhYm92ZSAoLmZlLXB2LXllc25vKVxuICAgIC8vIGtlZXAgdGhlaXIgaW5kaWNhdG9yICsgaWNvbiB1bnRvdWNoZWQuIFtLaW1dXG4gICAgcWRuYXByby1hbnN3ZXItYnV0dG9uIC5xZG5hcHJvLWFuc3dlci1idXR0b25fX3RpY2ssXG4gICAgcWRuYXByby1hbnN3ZXItYnV0dG9uIC5xZG5hcHJvLWFuc3dlci1idXR0b25fX2ljb24ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbi5mZS1wdi11bml0LWNvbnRyb2wtLXllc25vLXN0YWNrZWQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgcWRuYXByby1hbnN3ZXItYnV0dG9uIHsgZmxleDogMSAxIGF1dG87IH1cbn1cbi8vIFBob3RvIGNhdGVnb3J5J3MgcGVyLXVuaXQgcm93IGNvbnRyb2wgKHBlci11bml0IGFkYXB0ZXJzLCAxMy4wNy4yMDI2KTogYSBzaW5nbGVcbi8vIGNvbXBhY3QgY2FtZXJhIGJ1dHRvbiBvbiB0aGUgcmlnaHQsIE5PVCBzdHJldGNoZWQgYWNyb3NzIHRoZSByb3cuIFJldXNlc1xuLy8gLmZlLXB2LWNhbWVyYS1idG4tLW1pbmkncyBzaGFwZSBidXQga2VlcHMgaXQgbG9va2luZyBlbmFibGVkIOKAlCB0aGlzIHJvdyBpcyBhblxuLy8gaWxsdXN0cmF0aXZlIG1vY2ssIHNhbWUgYXMgdGhlIHllc25vIHBlci11bml0IGJ1dHRvbnMgYWJvdmUuIFsxMy4wNy4yMDI2XVxuLmZlLXB2LXVuaXQtY29udHJvbC0tcGhvdG8ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgLmZlLXB2LWNhbWVyYS1idG4tLW1pbmkgeyBvcGFjaXR5OiAxOyB9XG59XG4vLyBPcHRpb25zIGNhdGVnb3J5J3MgcGVyLXVuaXQgZHJvcGRvd24gcm93IOKAlCBzYW1lIHdpZHRoL3NocmluayB0cmVhdG1lbnQgYXNcbi8vIC5mZS1wdi11bml0LWZpZWxkIGFib3ZlLCBqdXN0IGZvciB0aGUgc2VsZWN0IGNvbnRyb2wgaW5zdGVhZCBvZiBhbiBpbnB1dC5cbi5mZS1wdi11bml0LXNlbGVjdCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xufVxuLy8gUGVyLXVuaXQgYmFyY29kZSBzY2FuIGJ1dHRvbiAoc21hbGwgc3F1YXJlOyB0aGUgZmllbGQtbGV2ZWwgc2Nhbm5lcikuIFtLaW0gMjAyNi0wNi0xOV1cbi5mZS1wdi11bml0LXNjYW4ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAzNHB4O1xuICAgIGhlaWdodDogMzRweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogIzQwNDk5QTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLW91dDtcblxuICAgIHFkbmFwcm8taWNvbiB7IHdpZHRoOiAxOHB4OyBoZWlnaHQ6IDE4cHg7IH1cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogIzM1M2Q4NjsgfVxufVxuLmZlLXB2LWJhcmNvZGUtYnRuIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMzBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6ICM0MDQ5OUE7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgLm1kaSB7IGZvbnQtc2l6ZTogMTZweDsgfVxufVxuXG4vLyBTY2FuIGJhcmNvZGUgYnV0dG9uIChwcmV2aWV3KTogZnVsbC13aWR0aCBwaWxsIHVuZGVyIHRoZSBmaWVsZC4gSW4gdGhlIGFwcFxuLy8gdGhpcyBvcGVucyB0aGUgY2FtZXJhOyBoZXJlIGl0IHRyaWdnZXJzIHRoZSBmbG9hdGluZyB0b2FzdCBiZWxvdy4gW0tpbSAyMDI2LTA2LTE5XVxuLmZlLXB2LXNjYW4tYnRuIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogMTBweCAxNHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICM0MDQ5OUE7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udDogaW5oZXJpdDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLW91dDtcblxuICAgIHFkbmFwcm8taWNvbiB7IHdpZHRoOiAxOHB4OyBoZWlnaHQ6IDE4cHg7IH1cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogIzM1M2Q4NjsgfVxufVxuXG4vLyBUYWtlLWEtcGhvdG8gcHJldmlldzogdGhlIHB1cnBsZSBcIlRha2UgYSBwaWN0dXJlXCIgYnV0dG9uIChtaXJyb3JzIHRoZSByZWFsIFBXQVxuLy8gYnV0dG9uICsgdGhlIHNjYW4tYnV0dG9uIHN0eWxpbmcpLCB0aGUgbWluL21heCBoaW50LCBhbmQgdGhlIHVwbG9hZGVkIGltYWdlXG4vLyBzdGFjayBiZWxvdyBpdC4gW0tpbSAyMDI2LTA3LTA1XVxuLmZlLXB2LXBob3RvLW5vZGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbn1cbi5mZS1wdi1jYW1lcmEtYnRuIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAjNDA0OTlBO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZS1vdXQ7XG5cbiAgICBxZG5hcHJvLWljb24geyB3aWR0aDogMThweDsgaGVpZ2h0OiAxOHB4OyB9XG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6ICMzNTNkODY7IH1cbn1cblxuLy8gU2lnbmF0dXJlIHByZXZpZXc6IGEgc3RhdGljLCBub24taW50ZXJhY3RpdmUgc2lnbmF0dXJlLXBhZCBtb2NrIChib3JkZXJlZFxuLy8gYm94IHRoZSBmaWVsZCB3b3JrZXIgc2lnbnMgaW4sIGZhaW50IHBlbiBpY29uICsgYmFzZWxpbmUpLiBbS2ltXVxuLmZlLXB2LXNpZ25hdHVyZS1wYWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBtaW4taGVpZ2h0OiA5NnB4O1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgYm9yZGVyOiAxLjVweCBkYXNoZWQgI2IwYjhlODtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmNWY2ZmY7XG4gICAgY29sb3I6ICM4YjkzYzk7XG59XG4uZmUtcHYtc2lnbmF0dXJlLWxpbmUge1xuICAgIHdpZHRoOiA3MCU7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIGJhY2tncm91bmQ6ICNkM2Q4ZjI7XG59XG5cbi8vIEZsb2F0aW5nIHRvYXN0IHNob3duIHdoZW4gdGhlIHNjYW4gYnV0dG9uIGlzIGNsaWNrZWQgaW4gdGhlIHByZXZpZXcuXG4uZmUtcHYtdG9hc3Qge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgYm90dG9tOiAxNnB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMzJweCk7XG4gICAgcGFkZGluZzogMTBweCAxNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogIzJhMmMzYTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgYm94LXNoYWRvdzogMCA2cHggMjBweCByZ2JhKDIwLCAyMiwgNDAsIDAuMjgpO1xuICAgIHotaW5kZXg6IDU7XG5cbiAgICBxZG5hcHJvLWljb24geyB3aWR0aDogMThweDsgaGVpZ2h0OiAxOHB4OyBmbGV4OiAwIDAgYXV0bzsgfVxufVxuLmZlLXB2LXRvYXN0LWZhZGUtZW50ZXItYWN0aXZlLFxuLmZlLXB2LXRvYXN0LWZhZGUtbGVhdmUtYWN0aXZlIHsgdHJhbnNpdGlvbjogb3BhY2l0eSAxODBtcyBlYXNlLW91dCwgdHJhbnNmb3JtIDE4MG1zIGVhc2Utb3V0OyB9XG4uZmUtcHYtdG9hc3QtZmFkZS1lbnRlci1mcm9tLFxuLmZlLXB2LXRvYXN0LWZhZGUtbGVhdmUtdG8geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSg4cHgpOyB9XG5cbi8vIOKUgOKUgCBGb3JtIGNhcmQgcHJldmlldyAoZmFzZSAzKTogc2VjdGlvbiB0aXRsZSArIHN1YnRleHQgcmVuZGVyIHZpYSB0aGUgc2hhcmVkXG4vLyBmZS1wdi10aXRsZS9mZS1wdi1zdWIgYWJvdmU7IHRoaXMgaXMganVzdCB0aGUgc3RhY2tlZCBjaGlsZC1xdWVzdGlvbiBsaXN0XG4vLyBiZWxvdyBpdC4gRXZlcnkgcm93IHJldXNlcyB0aGUgZXhpc3RpbmcgZmUtcHYtKiB2b2NhYnVsYXJ5ICh5ZXNuby9vcHQvY2FtZXJhL1xuLy8gZmllbGQpIGF0IGEgc21hbGxlciBcIm1pbmlcIiBzY2FsZSwgc28gdGhlIGNhcmQgcmVhZHMgYXMgT05FIHByZXZpZXcgbGFuZ3VhZ2Vcbi8vIGluc3RlYWQgb2YgYSBzZWNvbmQgZGVzaWduLiBTY3JvbGxpbmcgaXMgaGFuZGxlZCBieSB0aGUgZXhpc3RpbmcgLmZlLXB2LXNjcmVlblxuLy8gbWF4LWhlaWdodC9vdmVyZmxvdy15IChubyBleHRyYSBzY3JvbGwgY29udGFpbmVyIG5lZWRlZCBoZXJlKS4gW0tpbSAwNy4wNy4yMDI2IGZhc2UgM11cbi5mZS1wdi1mb3JtY2FyZC1lbXB0eSB7XG4gICAgZm9udC1zaXplOiAxMi41cHg7XG4gICAgY29sb3I6ICM5YWEwYmQ7XG4gICAgcGFkZGluZzogOHB4IDA7XG59XG4uZmUtcHYtZm9ybWNhcmQtbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTZweDtcbn1cbi5mZS1wdi1mb3JtY2FyZC1pdGVtIHtcbiAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2VjZWVmNTtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICB9XG59XG4uZmUtcHYtZm9ybWNhcmQtaXRlbS1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMyYTJjM2E7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG4vLyBXaGVuIGEgcGVyLXF1ZXN0aW9uIHN1YnRleHQgZm9sbG93cywgdGlnaHRlbiB0aGUgZ2FwIHRvIHRoZSBsYWJlbCBzbyB0aGUgdHdvXG4vLyByZWFkIGFzIG9uZSBoZWFkZXIsIHRoZW4gbGV0IHRoZSBzdWJ0ZXh0IGNhcnJ5IHRoZSA4cHggZ2FwIHRvIHRoZSBjb250cm9sLiBbS2ltXVxuLmZlLXB2LWZvcm1jYXJkLWl0ZW0tbGFiZWwtLWhhcy1zdWIgeyBtYXJnaW4tYm90dG9tOiAycHg7IH1cbi5mZS1wdi1mb3JtY2FyZC1pdGVtLXN1YiB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAjNmI3MDkzO1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuLy8gTWluaSBKYS9OZWUgKyBvcHRpb24gcm93czogc2FtZSBsb29rIGFzIHRoZSBmdWxsLXNpemUgdmVyc2lvbnMsIGRlbnNlci5cbi5mZS1wdi15ZXNuby0tbWluaSAuZmUtcHYtYnRuIHsgcGFkZGluZzogOHB4IDZweDsgZm9udC1zaXplOiAxMnB4OyB9XG4uZmUtcHYtb3B0LS1taW5pIHtcbiAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY3Vyc29yOiBkZWZhdWx0OyAvLyBzdGF0aWMgaW4gdGhlIGNhcmQgc3RhY2ssIG5vdCB0aGUgaW50ZXJhY3RpdmUgc2luZ2xlLXF1ZXN0aW9uIHByZXZpZXdcbn1cbi8vIEFkdmFuY2VkX2lucHV0IC8gbnVtYmVyIHBsYWNlaG9sZGVyOiBhbiBlbXB0eSBvdXRsaW5lZCBmaWVsZCAobm8gbWFzaywgc3RhdGljKS5cbi5mZS1wdi1mb3JtY2FyZC1pbnB1dC1tb2NrIHtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgYm9yZGVyOiAxLjVweCBzb2xpZCAjNDA0OTlBO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBvcGFjaXR5OiAwLjY7XG59XG4uZmUtcHYtY2FtZXJhLWJ0bi0tbWluaSB7XG4gICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIG9wYWNpdHk6IDAuODU7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLmZlLXB2LWZpZWxkLS1taW5pIHsgcGFkZGluZzogOHB4IDEycHg7IH1cbi5mZS1wdi1mb3JtY2FyZC1zbWlsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogMnB4IDA7XG5cbiAgICBpbWcge1xuICAgICAgICB3aWR0aDogMzRweDtcbiAgICAgICAgaGVpZ2h0OiAzNHB4O1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG59XG4uZmUtcHYtZm9ybWNhcmQtc2NvcmVtb2NrIHtcbiAgICAvLyBTdGF0aWMgcHJldmlldyBvZiB0aGUgcmVhbCBzY29yZS9OUFMgc2NhbGUg4oCUIG5vbi1pbnRlcmFjdGl2ZSBieSBkZXNpZ25cbiAgICAvLyAoZmFzZS0zIHNjb3BlOiB0aGUgY2FyZCBwcmV2aWV3IHNob3dzIHRoZSBzaGFwZTsgdGhlIHJlYWwgaW50ZXJhY3Rpb24gbGl2ZXNcbiAgICAvLyBpbiB0aGUgcXVlc3Rpb24ncyBvd24gcHJldmlldykuIFtLaW0gcHVudCAzLzRdXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4vLyBDb21wYWN0IHZhcmlhbnQgaW5zaWRlIGEgZm9ybSBjYXJkJ3MgY2hpbGQgc3RhY2suXG4uZmUtcHYtZm9ybWNhcmQtc2lnbmF0dXJlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgYm9yZGVyOiAxLjVweCBkYXNoZWQgI2IwYjhlODtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmNWY2ZmY7XG4gICAgY29sb3I6ICM4YjkzYzk7XG5cbiAgICAuZmUtcHYtc2lnbmF0dXJlLWxpbmUge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG59XG5cbi8vIFwiZGlzcGxheVwiIG5vZGUgcHJldmlldyAoZmFzZSA3LCAxMi4wNy4yMDI2KTogcmljaCB0ZXh0ICsgb3B0aW9uYWwgdmlkZW8uXG4vLyBUaXRsZS9zdWJ0ZXh0L2ltYWdlIGFscmVhZHkgcmVuZGVyIGdlbmVyaWNhbGx5IGFib3ZlIChmZS1wdi10aXRsZSAvIGZlLXB2LXN1YlxuLy8gLyBmZS1wdi1waG90bywgc2hhcmVkIHdpdGggZXZlcnkgbm9kZSB0eXBlKSDigJQgdGhpcyBibG9jayBvbmx5IGNvdmVycyB0aGVcbi8vIHJpY2gtdGV4dCBib2R5ICsgdGhlIHZpZGVvIHBsYXllciArIHRoZSBlbXB0eSBzdGF0ZS4gW0tpbV1cbi5mZS1wdi1kaXNwbGF5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xufVxuLy8gQmVzY2hlaWRlbiB0eXBvZ3JhZmllLCBiZXd1c3QgZWVuIHN1YnNldCAocC9oMi9oMy91bC9vbC9hKSDigJQgbWlycm9ycyB0aGVcbi8vIHd5c2l3eWcncyBvd24gY29udGVudF9zdHlsZSAocWRuYS13eXNpd3lnLmpzIF9idWlsZENvbnRlbnRTdHlsZSAvXG4vLyAucWRuYXByby13eXNpd3lnLXJlYWRvbmx5IGluIF93eXNpd3lnLnNjc3MpIHNvIHRoZSBwcmV2aWV3IG1hdGNoZXMgYm90aCB0aGVcbi8vIGVkaXRvciB3aWRnZXQgYW5kIHRoZSBhcHAgcmVuZGVyIDE6MS5cbi5mZS1wdi1kaXNwbGF5LWNvbnRlbnQge1xuICAgIGNvbG9yOiAjMWYyNDMwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMS41NTtcblxuICAgIGgxLCBoMiwgaDMge1xuICAgICAgICBjb2xvcjogIzQwNDk5QTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgICAgIG1hcmdpbjogMC45ZW0gMCAwLjNlbTtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHsgbWFyZ2luLXRvcDogMDsgfVxuICAgIH1cbiAgICBoMSB7IGZvbnQtc2l6ZTogMjBweDsgfVxuICAgIGgyIHsgZm9udC1zaXplOiAxN3B4OyB9XG4gICAgaDMgeyBmb250LXNpemU6IDE1cHg7IH1cblxuICAgIHAgeyBtYXJnaW46IDAgMCAwLjdlbTsgJjpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gICAgdWwsIG9sIHsgcGFkZGluZy1sZWZ0OiAyMHB4OyBtYXJnaW46IDAgMCAwLjdlbTsgfVxuICAgIGxpIHsgbWFyZ2luOiAwLjJlbSAwOyB9XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICM0MDQ5OUE7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAxcHg7XG4gICAgICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMnB4O1xuICAgIH1cbiAgICBhOmhvdmVyIHsgY29sb3I6ICMzMzNhN2I7IH1cblxuICAgIGltZyB7IG1heC13aWR0aDogMTAwJTsgaGVpZ2h0OiBhdXRvOyBib3JkZXItcmFkaXVzOiA4cHg7IH1cbn1cbi5mZS1wdi1kaXNwbGF5LXZpZGVvIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAyMjBweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICMwMDA7XG59XG4uZmUtcHYtZGlzcGxheS1lbXB0eSB7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgI2QwZDRlODtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5mZS1wdi1kaXNwbGF5LWVtcHR5LXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzQwNDk5QTtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG59XG4uZmUtcHYtZGlzcGxheS1lbXB0eS1oaW50IHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICM5YWEwYmQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMzU7XG59XG5cbi8vIFNoYXJlZCBtdXRlZCBzdWJsYWJlbCB1bmRlciBhIHNldHRpbmcncyBsYWJlbCAocmljaF90ZXh0IC8gdmlkZW9fdXBsb2FkIOKAlFxuLy8gZmFzZSA3KS4gU2FtZSB2aXN1YWwgd2VpZ2h0IGFzIC5mZS1ubyAuZmUtdGktbGFiZWwuIFtLaW1dXG4uZmUtcnQtc3VibGFiZWwge1xuICAgIG1hcmdpbjogMnB4IDAgOHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIGNvbG9yOiB2YXIoLS1xZG5hLWNvbG9yLXRleHQtbXV0ZWQsICM2YjcyODApO1xufVxuXG4vLyBWaWRlby11cGxvYWQgc2V0dGluZyAoZmFzZSA3KTogYnV0dG9uIHJvdyArIGNvbXBhY3QgcHJldmlldyBwbGF5ZXIgKyBlcnJvcnMuXG4uZmUtdmlkZW8tYmxvY2sge1xuICAgIHFkbmFwcm8tYnV0dG9uIHsgbWFyZ2luLXJpZ2h0OiA4cHg7IH1cbn1cbi5mZS12aWRlby1wcmV2aWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xufVxuLmZlLXZpZGVvLWVsIHtcbiAgICBtYXgtd2lkdGg6IDI2MHB4O1xuICAgIG1heC1oZWlnaHQ6IDE2MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwO1xufVxuLmZlLXZpZGVvLWVycm9ycyB7XG4gICAgbWFyZ2luLXRvcDogNnB4O1xufVxuLmZlLXZpZGVvLWVycm9yIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICNjMzNhMzA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMzU7XG59XG5cbi8vIFNlY3Rpb24gc2VwYXJhdG9yIGluc2lkZSB0aGUgc2V0dGluZ3MgcGFuZWw6IGEgdGhpbiBxZG5hcHJvLWRpdmlkZXIga2V5bGluZVxuLy8gKHJlcGxhY2VzIHRoZSBvbGQgdGhpY2sgXCJmZS1kaXZpZGVyXCIgcHVycGxlIGJhcikuIFtLaW0gMjAyNi0wNi0xOV1cbi5mZS1ubyAuZmUtc2V0LWRpdmlkZXIge1xuICAgIG1hcmdpbjogMTZweCAwO1xuXG4gICAgLmZlLXNldC1kaXZpZGVyLWxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogIzZiNmY3ODtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIH1cbn1cblxuLy8gU3ViLXRleHQgdW5kZXIgYSBudW1iZXIgc2V0dGluZyBsYWJlbCAoZS5nLiBjb3VudGVyIHN0ZXAtc2l6ZSBleHBsYW5hdGlvbikuXG4uZmUtbm8gLmZlLXNldC1udW1iZXItc3ViIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gICAgY29sb3I6ICM2YjZmNzg7XG4gICAgbWFyZ2luOiAycHggMCA4cHg7XG59XG5cbi8vIE51bWJlciBzZXR0aW5ncyBhcmUgdGhlIHJlYWwgcWRuYXByby1pbnB1dCBjb21wb25lbnQgKEFic3RyYWN0TnVtYmVyLnZ1ZSxcbi8vIDA1LjA4LjIwMjYpLiBBIG51bWJlciBuZXZlciBuZWVkcyB0aGUgZnVsbCBwYW5lbCB3aWR0aCDigJQgMyBkaWdpdHMgaXMgdGhlXG4vLyB3aWRlc3QgYW55IG9mIHRoZW0gZ2V0cyAoaGFuZG92ZXIgZGVhZGxpbmUgY2FwcyBhdCAzNjUpIOKAlCBzbyBldmVyeSAnbnVtYmVyJ1xuLy8gYmx1ZXByaW50IGVsZW1lbnQgaXMgY2FwcGVkIG5hcnJvdyBpbnN0ZWFkIG9mIHN0cmV0Y2hpbmcgYWNyb3NzIHRoZSBwYW5lbC5cbi5mZS1zZXQtbnVtYmVyLWZpZWxkIHtcbiAgICBtYXgtd2lkdGg6IDEyMHB4O1xufVxuXG4vLyBFdmVuIG5hcnJvd2VyIGZvciB0aGUgU2NvcmUvTlBTIFwiY29tbWVudF90aHJlc2hvbGRcIiBzZXR0aW5nIChcIkFzayBmb3IgYVxuLy8gY29tbWVudCBhdCBzY29yZSB1cCB0byBhbmQgaW5jbHVkaW5nXCIpOiB0aGF0IHNjYWxlIG5ldmVyIGV4Y2VlZHMgMiBkaWdpdHNcbi8vIChtYXggXCIxMFwiKSwgYW5kIHRoZSB2YWx1ZSByZWFkcyBiZXR0ZXIgY2VudHJlZC4gU2NvcGVkIHRvIE9OTFkgdGhhdCBpbnN0YW5jZVxuLy8gdmlhIHRoZSBjb25kaXRpb25hbCBjbGFzcyBvbiB0aGUgd3JhcHBlciAoZ2V0U2VsZWN0ZWROb2RlTmFtZSA9PT1cbi8vICdjb21tZW50X3RocmVzaG9sZCcpLiBbS2ltIDIwMjYtMDctMTFdXG4vLyAoVGhlIGNlbnRyaW5nIGl0c2VsZiBpcyB0aGUgY29tcG9uZW50J3Mgb3duIGFsaWduPVwiY2VudGVyXCIgYXR0cmlidXRlLCBub3QgQ1NTLilcbi5mZS1mb3JtLS1jb21wYWN0LW51bWJlciAuZmUtc2V0LW51bWJlci1maWVsZCB7XG4gICAgbWF4LXdpZHRoOiA3MnB4O1xufVxuXG4vLyBCbHVlcHJpbnQgZWxlbWVudCB0eXBlICdub2RlX2ltYWdlJyAoQWJzdHJhY3ROb2RlSW1hZ2UudnVlKTogYSBzZWNvbmQsIG9wdGlvbmFsXG4vLyBpbWFnZSBvbiBhIG5vZGUgdW5kZXIgaXRzIG93biBtZXRhIGtleSDigJQgZmlyc3QgY29uc3VtZXIgaXMgdGhlIGhhbmRvdmVyIGVuZFxuLy8gc2NyZWVuLiBEZWxpYmVyYXRlbHkgcGxhaW46IGEgYm91bmRlZCBwcmV2aWV3IHBsdXMgaXRzIHR3byBidXR0b25zLiBUaGUgcXVlc3Rpb25cbi8vIGRpc3BsYXkgaW1hZ2UgKEFic3RyYWN0SW1hZ2UpIGhhcyBpdHMgb3duLCBtdWNoIHJpY2hlciBsZWZ0LXBhbmVsIHRyZWF0bWVudC5cbi8vIFtLaW0gMDUuMDguMjAyNl1cbi5mZS1zZXQtaW1hZ2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cblxuLmZlLXNldC1pbWFnZS1wcmV2aWV3IHtcbiAgICBtYXgtd2lkdGg6IDIyMHB4O1xuICAgIG1heC1oZWlnaHQ6IDE2MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmVhO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG5cbi5mZS1zZXQtaW1hZ2UtYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG59XG5cbi8vIEFtYmVyIFwid2h5IGlzIHRoaXMgZGlzYWJsZWRcIiBoaW50IHNob3duIHVuZGVyIGEgc2V0dGluZyB0aGF0IGl0cyBkZXBlbmRzX29uXG4vLyBoYXMgZ3JleWVkIG91dCAoZS5nLiBhdXRvX3N1bSB3aGVuIG5vdCBcImlucHV0IGZvciBldmVyeSB1bml0XCIpLiBbS2ltIDIwMjYtMDYtMTldXG4uZmUtbm8gLmZlLXNldC1kaXNhYmxlZC1oaW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogNnB4O1xuICAgIG1hcmdpbjogMnB4IDAgNnB4O1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmRmNGUzO1xuICAgIGNvbG9yOiAjOGE2MTAwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMS4zNTtcblxuICAgIHFkbmFwcm8taWNvbiB7IGZsZXg6IDAgMCBhdXRvOyB3aWR0aDogMTRweDsgaGVpZ2h0OiAxNHB4OyBtYXJnaW4tdG9wOiAxcHg7IGNvbG9yOiAjYzk4YTAwOyB9XG59XG5cbi8vIFdpZGVyIGxlZnQgaW5mbyBwYW5lbCBzbyB0aGUgbGl2ZSBleGFtcGxlIGdldHMgbW9yZSByb29tIChLaW0gMjAyNi0wNi0xOCkuXG4vLyBPdmVycmlkZXMgdGhlIHdpemFyZCBkZWZhdWx0ICgud20taW5mbyBmbGV4IDAgMCAyNjBweCBpbiBzdHlsZS12MS5jc3MpLlxuLmZlLW5vIC53bS1pbmZvIHtcbiAgICBmbGV4OiAwIDAgMzgwcHg7XG59XG5cbi8vIC4uLiBleGNlcHQgd2hlbiB0aGVyZSBpcyBubyBwcmV2aWV3IHRvIGdpdmUgcm9vbSB0byAoaGFuZG92ZXIpLiBCYWNrIHRvIHRoZVxuLy8gd2l6YXJkJ3Mgb3duIDI2MHB4IGluZm8gcGFuZWwgaW5zdGVhZCBvZiBhIG1hZGUtdXAgd2lkdGgsIGFuZCB0aGUgcmlnaHQgc2lkZVxuLy8ga2VlcHMgdGhlIHNwYWNlIHNpbmNlIHRoZSBzdGVwIHdpZHRoIGRvZXMgbm90IGNoYW5nZS4gW0tpbSAwNC4wOC4yMDI2XVxuLmZlLW5vLS1ub3ByZXYgLndtLWluZm8ge1xuICAgIGZsZXg6IDAgMCAyNjBweDtcbn1cblxuLy8gRHJvcCB0aGUgbGVnYWN5IG5hdnkgc2VjdGlvbiBkaXZpZGVyICsgaXRzIG92ZXJzaXplZCA0MC8zMnB4IHBhZGRpbmcgaW5zaWRlXG4vLyB0aGUgbmV3IG1vZGFsICh0aGF0IHBhZGRpbmcgd2FzIHRoZSBcInRlIHZlZWwgd2l0cnVpbXRlXCIgYmV0d2VlbiBmaWVsZHMpLlxuLmZlLW5vIC5mZS1zZWN0aW9uIHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIHBhZGRpbmc6IDEwcHggMDtcbn1cblxuLy8gU2V0dGluZ3MgdGFicyByZW5kZXJlZCBsaWtlIHRoZSBhY3Rpdml0eS9wcm9qZWN0IG1vZGFsOiBjbGVhbiB0b2dnbGUgcm93c1xuLy8gKGxhYmVsICsgc3ViICsgcWRuYXByby10b2dnbGUpIHVuZGVyIHB1cnBsZSBzZWN0aW9uIHRpdGxlcy4gVGhlXG4vLyAucWRuYXByby1tb2RhbC0qIGhlbHBlcnMgYXJlIHNjb3BlZCB0byAucWRuYXByby1tb2RhbCBpbiBfbW9kYWwuc2Nzcywgc28gd2Vcbi8vIHJlZGVmaW5lIHRoZW0gaGVyZSBmb3IgdGhlIHdpemFyZCBtb2RhbC4gW0tpbSAyMDI2LTA2LTE4XVxuLmZlLW5vIC5mZS1zZXQtYmxvY2sge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5mZS1ubyAuZmUtc2V0LXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDE2cHg7XG4gICAgcGFkZGluZzogMTJweCAwO1xufVxuXG4vLyB0b2dnbGVfaW5wdXQ6IHRoZSByZXZlYWxlZCBpbnB1dCBmaWVsZChzKSB1bmRlciBhIHRvZ2dsZSByb3cgKEtpbSAyMDI2LTA2LTE4KVxuLmZlLW5vIC5mZS10aS1pbnB1dHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG4gICAgcGFkZGluZzogMCAwIDEycHggMnB4O1xuXG4gICAgLy8gVHdvLXVwIChlLmcuIEluIHJhbmdlIHN0YXJ0L2VuZClcbiAgICAmLmZlLXRpLWlucHV0cy0tbXVsdGkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgICAgLmZlLXRpLWZpZWxkIHsgZmxleDogMSAxIDE0MHB4OyB9XG4gICAgfVxufVxuLmZlLW5vIC5mZS10aS1maWVsZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNHB4O1xufVxuLmZlLW5vIC5mZS10aS1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6IHZhcigtLXFkbmEtY29sb3ItdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG59XG4uZmUtbm8gLmZlLXRpLWlucHV0IHtcbiAgICBoZWlnaHQ6IDM4cHg7XG4gICAgcGFkZGluZzogMCAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDhkNmVhO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGNvbG9yOiAjMWYyNDMwO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDE0MG1zIGVhc2UsIGJveC1zaGFkb3cgMTQwbXMgZWFzZTtcblxuICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICM0MDQ5OWE7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDY0LCA3MywgMTU0LCAwLjE1KTtcbiAgICB9XG59XG4uZmUtbm8gLnFkbmFwcm8tbW9kYWwtdG9nZ2xlLXRleHQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbiAgICBtaW4td2lkdGg6IDA7XG59XG4uZmUtbm8gLnFkbmFwcm8tbW9kYWwtdG9nZ2xlLWxhYmVsIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzBiMGIwZDtcbn1cbi5mZS1ubyAucWRuYXByby1tb2RhbC10b2dnbGUtc3ViIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgY29sb3I6ICM2YjcyODA7XG59XG4uZmUtbm8gLnFkbmFwcm8tbW9kYWwtc2VjdGlvbi10aXRsZSxcbi5mZS1ubyAuZmUtc2V0LXNlY3Rpb24ge1xuICAgIG1hcmdpbjogMThweCAwIDJweDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzQwNDk5YTtcbn1cblxuLy8gU2VnbWVudC10aWxlcyBpbnNpZGUgYSBzZXR0aW5ncyB0YWIgKGUuZy4gZGlzcGxheV90eXBlKSDigJQgbGFiZWwgKyB0aWxlcy5cbi5mZS1ubyAuZmUtbm8tdGlsZXMtYmxvY2sge1xuICAgIG1hcmdpbjogOHB4IDAgMTZweDtcblxuICAgIC5xZG5hcHJvLW1vZGFsLXRvZ2dsZS1sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgfVxufVxuXG4vLyBTZWdtZW50IGxpdmVzIGluIHRoZSBoZWFkZXIgcm93IG5vdzsgZmlsbCB0aGUgc3BhY2UgKyBjZW50ZXIgaXQgKGNsb3NlIGJ1dHRvblxuLy8gc2l0cyB0byBpdHMgcmlnaHQpLiBUeXBlIHBpbGwgbW92ZWQgdG8gdGhlIGxlZnQgaW5mbyBwYW5lbC5cbi5mZS1uby1zZWcge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4vLyBUeXBlIHBpbGwgaW4gdGhlIGxlZnQgaW5mbyBwYW5lbCBzdGF5cyBjb250ZW50LXdpZHRoLCB0b3AtbGVmdC5cbi5mZS1ubyAud20taW5mbyAuZmUtbm8tcGlsbCB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbn1cblxuLy8gSW5wdXQtdHlwZSBzZWxlY3RvciAoc2VnbWVudC10aWxlcykgc2l0cyB1bmRlciB0aGUgc3VidGV4dCwgcHJvbWluZW50LlxuLmZlLW5vIC5mZS1uby1pbnB1dHR5cGUge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG5cbiAgICAvLyBcIkludm9lcnR5cGVcIiBsYWJlbCArIHN1YnRleHQgb24gdGhlIGxlZnQsIHRoZSB0eXBlLXNldHRpbmdzIHNob3J0Y3V0IGJ1dHRvbiBvblxuICAgIC8vIHRoZSByaWdodCwgdmVydGljYWxseSBjZW50ZXJlZCBzbyBpdCBzaXRzIEJFU0lERSBUSEUgU1VCVEVYVCAoYSBiaXQgbG93ZXIgdGhhblxuICAgIC8vIHRoZSBsYWJlbCkuIFtLaW0gMjAyNi0wNi0xOV1cbiAgICAuZmUtbm8taW5wdXR0eXBlLWhlYWQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICB9XG4gICAgLmZlLW5vLWlucHV0dHlwZS1oZWFkLXRleHQgeyBtaW4td2lkdGg6IDA7IH1cbiAgICAuZmUtbm0tcS1sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgfVxuXG4gICAgLy8gSGVscGVyIGxpbmU6IGV4cGxhaW5zIHRoZSBpbnB1dCB0eXBlIGdhdGVzIHdoaWNoIHNldHRpbmdzIGFwcGVhciAoS2ltIDIwMjYtMDYtMTgpXG4gICAgLmZlLW5vLWlucHV0dHlwZS1oaW50IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1xZG5hLWNvbG9yLXRleHQtbXV0ZWQsICM2YjcyODApO1xuICAgIH1cbn1cblxuLy8gTXVsdGktc2VsZWN0IG5vZGUtd2lkZSBcIlZvbGdlbmRlIHN0YXBcIiBoaW50IOKAlCBzYW1lIG11dGVkIHNtYWxsIHN0eWxlIGFzIHRoZVxuLy8gXCJUeXBlIGFudHdvb3JkXCIgaGVscGVyLCBidXQgaXRzIG93biB0b3AtbGV2ZWwgcnVsZSAodGhlIGlucHV0dHlwZS1oaW50IGFib3ZlIGlzXG4vLyBzY29wZWQgdG8gLmZlLW5vLWlucHV0dHlwZSwgc28gaXQgZGlkbid0IGFwcGx5IGhlcmUpLiBbS2ltIDIyLjA2LjIwMjZdXG4uZmUtbXVsdGktbmV4dC1zdGVwLWhpbnQge1xuICAgIG1hcmdpbjogMCAwIDEwcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgY29sb3I6IHZhcigtLXFkbmEtY29sb3ItdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG59XG5cbi8vIFNjYWxlLWNoYW5nZSBwZW5kaW5nLXN5bmMgaGludCAoTGlua3MudnVlJ3Mgc2NhbGVQZW5kaW5nU3luY05vdGljZSwgS2ltJ3Ncbi8vIHRlc3QgZmVlZGJhY2sgMjAyNi0wNy0xMSkg4oCUIHNhbWUgbXV0ZWQgc21hbGwgc3R5bGUgYXMgdGhlIHR3byBoaW50cyBhYm92ZSxcbi8vIG93biB0b3AtbGV2ZWwgcnVsZSBmb3IgdGhlIHNhbWUgcmVhc29uIChMaW5rcy52dWUncyBhbnN3ZXItb3B0aW9ucyBsaXN0XG4vLyBpc24ndCBuZXN0ZWQgdW5kZXIgLmZlLW5vLWlucHV0dHlwZSBlaXRoZXIpLiBTaXRzIGJldHdlZW4gdGhlIGxpc3QgaGVhZGVyXG4vLyBhbmQgdGhlIGFuc3dlci1vcHRpb24gcm93cy4gW0tpbV1cbi5mZS1zY2FsZS1zeW5jLWhpbnQge1xuICAgIG1hcmdpbjogMCAwIDEwcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgY29sb3I6IHZhcigtLXFkbmEtY29sb3ItdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG59XG5cbi8vIEFuc3dlci1vcHRpb24gZHJhZyBwb2xpc2g6IHRoZSBwdXJwbGUgZHJvcC1saW5lIGluZGljYXRvciAobGFuZGluZyBzcG90KSArIGFcbi8vIHNldHRsZSBvbiB0aGUgZHJvcHBlZCByb3cuIE1pcnJvcnMgdGhlIHRhc2tsaXN0IGluc2VydC1saW5lIGxvb2sgKCM0NjUyZjMsIDJweCxcbi8vIGdsb3cpLiBUaGUgRkxJUCBzbGlkZSBvZiB0aGUgbmVpZ2hib3VycyBpcyBkcml2ZW4gaW5saW5lIGJ5IExpc3QudnVlLiBbS2ltIDIyLjA2LjIwMjZdXG4uZmUtbGluay1saXN0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIGFuY2hvciBmb3IgdGhlIGFic29sdXRlIGRyb3AtbGluZVxufVxuLmZlLWRyb3AtbGluZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgLy8gTm8gbmVnYXRpdmUgbWFyZ2luOiBhdCB0aGUgVE9QIGdhcCAodG9wOjApIGEgLTFweCBtYXJnaW4gcHVzaGVkIHRoZSBsaW5lIGFib3ZlXG4gICAgLy8gdGhlIHNjcm9sbC1jb250YWluZXIncyBjbGlwIGVkZ2Ugc28gb25seSAxcHggc2hvd2VkIChcImtsZWluIHN0cmVlcGplXCIpLiBTaXQgaXRcbiAgICAvLyBleGFjdGx5IG9uIHRoZSBnYXAgYm91bmRhcnkgaW5zdGVhZC4gW0tpbSAyMi4wNi4yMDI2XVxuICAgIGJhY2tncm91bmQ6ICM0NjUyZjM7XG4gICAgYm9yZGVyLXJhZGl1czogMXB4O1xuICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuNTUpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDU7XG4gICAgdHJhbnNpdGlvbjogdG9wIDEyMG1zIGN1YmljLWJlemllcigwLjIsIDAuOCwgMC4yLCAxKTtcbn1cbi5xZG5hcHJvLWFuc3dlci1vcHRpb25bZGF0YS1mZS1zZXR0bGVdIHtcbiAgICBhbmltYXRpb246IGZlLWFvLXNldHRsZSAyNjBtcyBjdWJpYy1iZXppZXIoMC4yLCAwLjgsIDAuMiwgMSk7XG59XG5Aa2V5ZnJhbWVzIGZlLWFvLXNldHRsZSB7XG4gICAgMCUgICB7IGJveC1zaGFkb3c6IDAgOHB4IDIwcHggcmdiYSg3MCwgODIsIDI0MywgMC4yMCk7IH1cbiAgICAxMDAlIHsgYm94LXNoYWRvdzogbm9uZTsgfVxufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAuZmUtZHJvcC1saW5lIHsgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAgIC5xZG5hcHJvLWFuc3dlci1vcHRpb25bZGF0YS1mZS1zZXR0bGVdIHsgYW5pbWF0aW9uOiBub25lOyB9XG59XG5cbi8vIE5vbi1ibG9ja2luZyBjb25mbGljdCB3YXJuaW5nIHVuZGVyIGEgc2V0dGluZyAoZS5nLiBiYXJjb2RlICsgR2VoZWVsIGdldGFsKS5cbi8vIEFtYmVyLCByZXVzZXMgdGhlIGRlc2lnbi1zeXN0ZW0gd2FybmluZyBwYWxldHRlLiBbS2ltIDIyLjA2LjIwMjZdXG4uZmUtcHJvcC13YXJuaW5nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogNnB4O1xuICAgIG1hcmdpbjogNnB4IDAgMDtcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjNjZDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZjBkMDYwO1xuICAgIGNvbG9yOiAjOWE2YTEwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuXG4gICAgLm1kaSB7IGZvbnQtc2l6ZTogMTVweDsgbGluZS1oZWlnaHQ6IDEuMzsgZmxleC1zaHJpbms6IDA7IH1cbn1cblxuLy8gTm9uLWJsb2NraW5nIGluZm9ybWF0aW9uYWwgbm90aWNlIHVuZGVyIGEgc2V0dGluZywgZS5nLiBZZXMvTm8ncyB0aHVtYnMgK1xuLy8gXCJBbnN3ZXIgcGVyIHVuaXRcIiBwaG9uZS1wYXJpdHkgbm90aWNlIChZZXNOby5waHAsIGFjdGl2ZUFsZXJ0KCkgaW5cbi8vIFByb3BlcnRpZXMudnVlKS4gcWRuYXByby1hbGVydCAodHlwZT1cImluZm9cIikgb3ducyBpdHMgb3duIGNocm9tZSDigJQgb25seSB0aGVcbi8vIHRvcCBzcGFjaW5nIG5lZWRzIG1hdGNoaW5nIHRvIC5mZS1wcm9wLXdhcm5pbmcgYWJvdmUuIFtLaW0gMTIuMDcuMjAyNl1cbi5mZS1wcm9wLWFsZXJ0IHtcbiAgICBtYXJnaW46IDZweCAwIDA7XG59XG5cbi8vIFByZXZpZXcgZ3JvdXBlZCBpbiB0aGUgTEVGVCBpbmZvIHBhbmVsIChLaW0gMjAyNi0wNi0xOClcbi5mZS1uby1wcmV2aWV3LWdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMHB4O1xufVxuLmZlLW5vLXByZXZpZXctYnRuIHtcbiAgICBxZG5hcHJvLWljb24geyBtYXJnaW4tcmlnaHQ6IDZweDsgfVxufVxuXG4vLyBIYW5kb3ZlcjogdGhlIGxlZnQgcGFuZWwgc2hvd3MgYW4gaWxsdXN0cmF0aW9uIGluc3RlYWQgb2YgYSBsaXZlIHByZXZpZXcgY2FyZCxcbi8vIGJlY2F1c2UgYSBoYW5kb3ZlciBoYXMgbm8gc2NyZWVuIGluIHRoZSBhcHAgKHNlZSBpc0hhbmRvdmVyIGluIE5vZGVPcHRpb25zLnZ1ZSkuXG4vLyBObyBjYXB0aW9uIGFuZCBubyBleHBsYW5hdGlvbiB0ZXh0LCBzbyB0aGUgaWxsdXN0cmF0aW9uIGlzIHRoZSBvbmx5IHRoaW5nIGhlcmVcbi8vIGFuZCBpdCBjZW50cmVzIGluIHdoYXRldmVyIGhlaWdodCBpcyBsZWZ0IHVuZGVyIHRoZSBkZXNjcmlwdGlvbi4gW0tpbSAwNC4wOC4yMDI2XVxuLmZlLW5vLW5vcHJldiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIC8vIFRha2UgdGhlIGxlZnRvdmVyIHBhbmVsIGhlaWdodCBzbyB0aGUgaWxsdXN0cmF0aW9uIHJlYWRzIGFzIHBsYWNlZCByYXRoZXJcbiAgICAvLyB0aGFuIGFzIHRvcC1hbGlnbmVkIHdpdGggYSBnYXAgdW5kZXJuZWF0aDsgbWluLWhlaWdodCBsZXRzIGl0IHNocmluayBmaXJzdFxuICAgIC8vIG9uIGEgc2hvcnQgdmlld3BvcnQgaW5zdGVhZCBvZiBvdmVyZmxvd2luZyB0aGUgKG92ZXJmbG93OmhpZGRlbikgcGFuZWwuXG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbn1cbi5mZS1uby1ub3ByZXYtaWxsdSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgICAvLyBob3Jpem9udGFhbCBnZWNlbnRyZWVyZFxuXG4gICAgLy8gVGhpcyBpbGx1c3RyYXRpb24gaXMgYSB0YWxsIDE6NCBzdHJpcCwgc28gaXRzIGhlaWdodCBpcyB3aGF0IG5lZWRzIGNhcHBpbmcsXG4gICAgLy8gbm90IGl0cyB3aWR0aC4gYHNpemVgIG9uIHRoZSBjb21wb25lbnQgc2V0cyB0aGUgV0lEVEg7IG1heC1oZWlnaHQgaGVyZSBrZWVwc1xuICAgIC8vIGl0IGluc2lkZSBhIHNob3J0IHBhbmVsIGFzIHdlbGwuIEJvdGggbWF4aW1hIGFwcGx5IHRvIHRoZSByZXBsYWNlZCA8aW1nPiwgc29cbiAgICAvLyB0aGUgYXNwZWN0LXJhdGlvIGlzIHByZXNlcnZlZCBhbmQgaXQgc2ltcGx5IGZpdHMgdGhlIHNtYWxsZXIgb2YgdGhlIHR3by5cbiAgICAvLyBTdHlsZWQgdmlhIHRoaXMgd3JhcHBlciBhbmQgTk9UIHZpYSBhIGNsYXNzIG9uIHRoZSBob3N0OiBxZG5hcHJvLWlsbHVzdHJhdGlvblxuICAgIC8vIHJld3JpdGVzIGl0cyBvd24gY2xhc3NOYW1lIG9uIGV2ZXJ5IHJlbmRlciBhbmQgd291bGQgd2lwZSBpdC5cbiAgICAuaWxsdXN0cmF0aW9uLWltZyB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IG1pbig0MnZoLCA0MDBweCk7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cbn1cblxuLy8gQ29tcGFjdCBhY3Rpb24gcm93IGFib3ZlIHRoZSBwcmV2aWV3OiBbQWZiZWVsZGluZyB0b2V2b2VnZW5dIFtCZWtpamsgaW4gYXBwXVxuLmZlLW5vLWFjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG59XG5cbi8vIFwiW3R5cGUtaWNvbl0gSW5zdGVsbGluZ2VuIOKAulwiIGJ1dHRvbiB1bmRlciB0aGUgaW5wdXQtdHlwZSB0aWxlcyDigJQganVtcHMgdG8gSW5zdGVsbGluZ2VuLlxuLmZlLW5vIC5mZS1uby10eXBlc2V0dGluZ3MtYnRuIHtcbiAgICBmbGV4LXNocmluazogMDsgICAvLyBzaXRzIGJlc2lkZSB0aGUgXCJJbnZvZXJ0eXBlXCIgbGFiZWwgKGluIC5mZS1uby1pbnB1dHR5cGUtaGVhZClcblxuICAgIHFkbmFwcm8taWNvbjpmaXJzdC1jaGlsZCB7IG1hcmdpbi1yaWdodDogNnB4OyB9ICAvLyBsZWFkaW5nIHR5cGUgaWNvblxuICAgIHFkbmFwcm8taWNvbjpsYXN0LWNoaWxkICB7IG1hcmdpbi1sZWZ0OiA0cHg7IH0gICAvLyB0cmFpbGluZyBjaGV2cm9uXG59XG5cbi8vIFwiRm9ybWFhdFwiIHR5cGU6IGEgZ3JvdXBlZCBkcm9wZG93biByaWdodCB1bmRlciB0aGUgaW5wdXQtdHlwZSB0aWxlcyAobm8gbW9kYWwpLlxuLy8gR3JvdXAgbGFiZWxzIHVzZSB0aGUgYnVpbHQtaW4gcWRuYXByby1tZW51LXNlY3Rpb24taGVhZGluZyAoQWxnZW1lZW4gLyBab3JnKTtcbi8vIHFkbmFwcm8tc2VsZWN0IG5vdyBmb3J3YXJkcyBzZWN0aW9uLWhlYWRpbmdzICsgZGl2aWRlcnMgaW50byBpdHMgcG9wb3Zlci5cbi5mZS1ubyAuZmUtbm8tZm9ybWF0LXJvdyB7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAuZmUtbm8tZm9ybWF0LXNlbGVjdCB7IGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogMTAwJTsgfVxufVxuXG4vLyBcIlN0YXJ0IGZsb3cgaW4gYXBwXCIgZm9vdGVyIGJ1dHRvbiDigJQgYSBsaWdodCBzdHJlYWsgc3dlZXBzIGFjcm9zcyBwZXJpb2RpY2FsbHkgdG9cbi8vIGRyYXcgdGhlIGV5ZSB0byB0aGUgdGVzdCBhY3Rpb24gKG1pcnJvcnMgdGhlIHRyYW5zbGF0aW9uLXBhbmVsIHNoaW1tZXIpLiBbS2ltIDIwMjYtMDYtMTldXG4uZmUtbm8gLmZlLW5vLXN0YXJ0Zmxvdy1idG4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgcWRuYXByby1pY29uIHsgbWFyZ2luLXJpZ2h0OiA2cHg7IH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDU1JTtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEyMGRlZywgdHJhbnNwYXJlbnQgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40NSkgNTAlLCB0cmFuc3BhcmVudCAxMDAlKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMDAlKTtcbiAgICAgICAgYW5pbWF0aW9uOiBmZS1uby1zdGFydGZsb3ctc2hpbW1lciAzLjRzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBBIGRpc2FibGVkIGJ1dHRvbiBtdXN0IG5vdCBrZWVwIGRyYXdpbmcgdGhlIGV5ZSB0byBhbiBhY3Rpb24geW91IGNhbm5vdFxuICAgIC8vIHRha2UgKGhhbmRvdmVyIG5vZGVzKS4gW0tpbSAwNC4wOC4yMDI2XVxuICAgICZbZGlzYWJsZWRdOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgfVxufVxuQGtleWZyYW1lcyBmZS1uby1zdGFydGZsb3ctc2hpbW1lciB7XG4gICAgMCUgICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjAwJSk7IH1cbiAgICAzMCUgIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIyMCUpOyB9XG4gICAgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMjAlKTsgfVxufVxuXG4vLyBJbWFnZS11cGxvYWQgYXMgYSBjb21wYWN0IGJ1dHRvbiAobWlycm9ycyB0aGUgc2Vjb25kYXJ5LXB1cnBsZSBidXR0b24gbG9vaykuXG4vLyBUd28gZXhwbGljaXQgcm93cyBzaW5jZSB0aGUgYnJpZWZpbmcgYnV0dG9uIGpvaW5lZCB0aGlzIHRvb2xiYXI6IHJvdyAxIGhvbGRzIHRoZVxuLy8gaW1hZ2UgY29udHJvbHMsIHJvdyAyIGhvbGRzIGJyaWVmaW5nIChsZWZ0KSArIHRleHQgYWxpZ25tZW50IChyaWdodCkuIEJlZm9yZSB0aGlzXG4vLyB0aGUgd2hvbGUgdGhpbmcgd2FzIG9uZSB3cmFwcGluZyBmbGV4IHJvdywgc28gdGhlIGFsaWdubWVudCB0b2dnbGVzIGRyb3BwZWQgdG8gYVxuLy8gc2Vjb25kIGxpbmUgYnkgYWNjaWRlbnQgYW5kIG1vdmVkIGFyb3VuZCBhcyBidXR0b25zIGFwcGVhcmVkLiBbS2ltIDAzLjA4LjIwMjZdXG4uZmUtbm8taW1nIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNHB4O1xufVxuLmZlLW5vLWltZy1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG59XG4vLyBJbWFnZS1wb3NpdGlvbiBwaWNrZXI6IGljb24gYnV0dG9uICsgYSBzbWFsbCBwb3BvdmVyIG1lbnUgYW5jaG9yZWQgYmVsb3cgaXQuXG4uZmUtbm8taW1nLXBvcyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xufVxuLmZlLW5vLWltZy1wb3MtYmFja2Ryb3Age1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBpbnNldDogMDtcbiAgICB6LWluZGV4OiA0MDtcbn1cbi5mZS1uby1pbWctcG9zLW1lbnUge1xuICAgIC8vIEZpeGVkIChub3QgYWJzb2x1dGUpIHNvIGl0IGVzY2FwZXMgLmZlLXB2LXNjcmVlbidzIG92ZXJmbG93IGNsaXA7IHRvcC9yaWdodFxuICAgIC8vIGFyZSBzZXQgaW5saW5lIGJ5IEFic3RyYWN0SW1hZ2UudG9nZ2xlUG9zaXRpb25NZW51KCkgZnJvbSB0aGUgdHJpZ2dlcidzIHJlY3QsXG4gICAgLy8gcmlnaHQtYWxpZ25lZCB0byB0aGUgYnV0dG9uIGFuZCB2aWV3cG9ydC1jbGFtcGVkLiB6LWluZGV4IGFib3ZlIHRoZSBmaXhlZFxuICAgIC8vIGJhY2tkcm9wICh6IDQwKS4gW0tpbSAyMDI2LTA3LTEzXVxuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiA1MDtcbiAgICBtaW4td2lkdGg6IDIwMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDIwLCAyNCwgNjAsIDAuMTgpO1xuICAgIHBhZGRpbmc6IDRweDtcbn1cbi5mZS1uby1pbWctYnRuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiA3cHggMTRweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzQwNDk5YTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkOGQ2ZWE7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE0MG1zIGVhc2UsIGJvcmRlci1jb2xvciAxNDBtcyBlYXNlO1xuXG4gICAgcWRuYXByby1pY29uIHsgY29sb3I6ICM0MDQ5OWE7IH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjRmM2ZiO1xuICAgICAgICBib3JkZXItY29sb3I6ICNjM2JmZTQ7XG4gICAgfVxufVxuLmZlLW5vLWltZy1yZW1vdmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6ICNiMzI2MWU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2VjYzljNjtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6ICNmZGVjZWI7IH1cbn1cblxuLy8g4pSA4pSAIEZvcm0gZWRpdG9yIGZhc2UgNSAobG9naWMpOiBEaXNwbGF5TG9naWMudnVlICsgSWZDb25kaXRpb24udnVlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gU2VudGVuY2Utc3R5bGUgY29uZGl0aW9uIHJvd3MgKFwiVG9vbiBkZXplIHZyYWFnIGFsbGVlbiBhbHMgPHZyYWFnPiA8b3A+IDx3YWFyZGU+XCIpLFxuLy8gbWlycm9ycyB0aGUgQkkgY2VsbC1lZGl0b3IgY29uZGl0aW9uIGJ1aWxkZXIgVVggKGNhcmRfdmlldy5odG1sIGJpUmVuZGVyQ29uZHMpXG4vLyB3aXRob3V0IGltcG9ydGluZyB0aGF0IGNvZGUuIFtLaW0gZmFzZSA1XVxuLmZlLWxvZ2ljLXNlY3Rpb24ge1xuICAgIC5mZS1sb2dpYy1tYXRjaCB7XG4gICAgICAgIG1hcmdpbjogNnB4IDAgMTJweDtcbiAgICB9XG5cbiAgICAuZmUtbG9naWMtZW1wdHktaGludCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2Y0ZjVmYjtcbiAgICAgICAgY29sb3I6ICM2YjZmNzg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICB9XG5cbiAgICAuZmUtbG9naWMtYWRkLWlmLWJ0biB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBwYWRkaW5nOiA2cHggMTJweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogIzQ2NTJmMztcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgYm9yZGVyOiAxLjVweCBzb2xpZCByZ2JhKDcwLCA4MiwgMjQzLCAwLjMwKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTQwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDE0MG1zIGVhc2U7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjBmMWZiO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjU1KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mZS1sb2dpYy1ydWxlcyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgIH1cblxuICAgIC5mZS1sb2dpYy1ydWxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2Y4ZjhmYjtcbiAgICB9XG5cbiAgICAuZmUtbG9naWMtcnVsZS1wcmVmaXgge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogIzQwNDk5YTtcbiAgICAgICAgbWluLXdpZHRoOiA1MnB4O1xuICAgIH1cblxuICAgIC5mZS1sb2dpYy1ydWxlLW5vZGUge1xuICAgICAgICBmbGV4OiAxIDEgMjIwcHg7XG4gICAgICAgIG1pbi13aWR0aDogMTgwcHg7XG4gICAgfVxuXG4gICAgLmZlLWxvZ2ljLXJ1bGUtb3Age1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgbWluLXdpZHRoOiA3MnB4O1xuICAgIH1cblxuICAgIC5mZS1sb2dpYy1ydWxlLXZhbHVlIHtcbiAgICAgICAgZmxleDogMSAxIDE2MHB4O1xuICAgICAgICBtaW4td2lkdGg6IDEyMHB4O1xuICAgIH1cblxuICAgIC5mZS1sb2dpYy1ydWxlLWRlbCB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAyNnB4O1xuICAgICAgICBoZWlnaHQ6IDI2cHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBjb2xvcjogIzlhYTBjYztcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDE0MG1zIGVhc2UsIGJhY2tncm91bmQgMTQwbXMgZWFzZTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjYzg0ODViO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMDAsIDcyLCA5MSwgMC4wOCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZmUtbG9naWMtdGFyZ2V0LWxhYmVsIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTRweDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG4vLyBGb3JtIGVkaXRvciBmYXNlIDQgZGVsaXZlcnkgMiAocGxhbiBzZWN0aW9uIEUpOiBicmllZiBoaWdobGlnaHQgd2hlbiBhIGxvZ2ljXG4vLyBjaGlwIGNsaWNrIHNjcm9sbHMgdGhpcyBzZWN0aW9uIGludG8gdmlldyAoTm9kZU9wdGlvbnMudnVlJ3Ncbi8vIG5vZGVfb3B0aW9uc19mb2N1c19zZWN0aW9uIHdhdGNoZXIgdG9nZ2xlcyB0aGlzIGNsYXNzIGZvciB+MS40cykuIFtLaW0gZmFzZSA0IGRlbGl2ZXJ5IDJdXG4uZmUtbG9naWMtc2VjdGlvbi5mZS1sb2dpYy1zZWN0aW9uLS1mb2N1cyB7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBhbmltYXRpb246IGZlLWxvZ2ljLWZvY3VzLWZsYXNoIDEzMDBtcyBlYXNlO1xufVxuQGtleWZyYW1lcyBmZS1sb2dpYy1mb2N1cy1mbGFzaCB7XG4gICAgMCUgeyBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAwLjE0KTsgfVxuICAgIDEwMCUgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxufVxuXG4vLyDilIDilIAgRm9ybSBlZGl0b3IgZmFzZSA0OiBtb2RhbCB0YWIgMiBcIlZyYWdlblwiIChQTEFOLWZvcm0tY2FyZC1yZWRlc2lnbi5tZCDCp0QpIOKUgOKUgFxuLy8gUXVlc3Rpb24gbGlzdCwgZHJhZy1yZW9yZGVyLCBkZWxldGUuIFNhbWUgdmlzdWFsIGxhbmd1YWdlIGFzIHRoZVxuLy8gcWRuYXByby1hbnN3ZXItb3B0aW9uIHJvd3MgKCNlMmU0ZWYgYm9yZGVyLCAjNDY1MmYzIGRyYWcgYmFyLCByZWQgZGVsZXRlXG4vLyBhY3Rpb24pIGJ1dCBoYW5kLWJ1aWx0IGhlcmU6IG5vbmUgb2YgdGhhdCBjb21wb25lbnQncyB2YXJpYW50cyBvZmZlciBhIHBsYWluXG4vLyBpY29uICsgbGFiZWwgKyByZXF1aXJlZC1zdGFyIHJlYWQtb25seSByb3csIGFuZCB0aGUgcGxhbiBleHBsaWNpdGx5IGNhbGxzIGZvclxuLy8gTk9UIGV4dGVuZGluZyB0aGUgc2hhcmVkIGNvbXBvbmVudCBqdXN0IGZvciB0aGlzLiBbS2ltIGZhc2UgNF1cbi8vIEZhc2UgNCBkZWxpdmVyeSA0OiByZWFsIHFkbmFwcm8tZW1wdHktc3RhdGUgKHJlcGxhY2VzIHRoZSBwbGFpbiB0d28tbGluZVxuLy8gdGV4dCB0aGlzIHVzZWQgdG8gYmUpLiBObyBleHRyYSBwb3NpdGlvbmluZyBuZWVkZWQg4oCUIHRoZSBjb21wb25lbnQgY2VudGVyc1xuLy8gaXRzZWxmOyBqdXN0IGNhcCB0aGUgaWxsdXN0cmF0aW9uIHNvIGEgdGFsbCBzb3VyY2UgU1ZHIGNhbid0IGJsb3cgb3V0IHRoZVxuLy8gdGFiJ3MgaGVpZ2h0LiBbS2ltIGZhc2UgNCBkZWxpdmVyeSA0XVxuLmZlLWZjcS1lbXB0eS1zdGF0ZSB7XG4gICAgcGFkZGluZzogMTJweCAwO1xufVxuLmZlLWZjcS1lbXB0eS1pbGx1c3RyYXRpb24ge1xuICAgIG1heC1oZWlnaHQ6IDE2MHB4O1xuICAgIHdpZHRoOiBhdXRvO1xufVxuXG4vLyBGYXNlIDQgZGVsaXZlcnkgNDogcGVyc2lzdGVudCBcIitWcmFhZyB0b2V2b2VnZW5cIiBhZmZvcmRhbmNlIG9uY2UgdGhlIGNhcmRcbi8vIGFscmVhZHkgaGFzIHF1ZXN0aW9ucyDigJQgZnVsbC13aWR0aCBkYXNoZWQgcm93IFVOREVSIHRoZSBsaXN0LCBzYW1lIGRhc2hlZFxuLy8gdm9jYWJ1bGFyeSBhcyAuZmUtZmNxLW1vdmUtcm93IGFib3ZlIChib3JkZXItZGFzaGVkICsgdGludGVkIGJhY2tncm91bmQpXG4vLyBidXQgaW4gdGhlIHRhYidzIG93biBwdXJwbGUtcHJpbWFyeSB0b25lIChhbiBcImFkZFwiIGN1ZSkgcmF0aGVyIHRoYW4gdGhhdFxuLy8gcm93J3MgbGF2ZW5kZXIgY2hvb3NlciB0b25lLCBzbyB0aGUgdHdvIGRhc2hlZCByb3dzIHN0aWxsIHJlYWQgYXMgdmlzdWFsbHlcbi8vIGRpc3RpbmN0IGFmZm9yZGFuY2VzLiBbS2ltIGZhc2UgNCBkZWxpdmVyeSA0XVxuLmZlLWZjcS1hZGQtcm93IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgI2E4YjJlODtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2U7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg2NCwgNzMsIDE1NCwgMC4wNik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzQwNDk5YTtcbiAgICB9XG59XG4uZmUtZmNxLWFkZC1yb3dfX2ljb24ge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbn1cblxuLy8gRmFzZSA0IGRlbGl2ZXJ5IDQ6IFwiVnJhYWcgdG9ldm9lZ2VuXCIgdHlwZS1waWNrZXIgdGlsZSBncmlkLCByZW5kZXJlZCBpbnNpZGVcbi8vIHRoZSBtb2RhbCBib2R5ICguZmUtdHlwZXBpY2tlci1tb2RhbCAubW9kYWwtYm9keSDigJQgc2VlIF9tb2RhbC5zY3NzIGZvciB0aGVcbi8vIHotaW5kZXggb3ZlcnJpZGUpLiBTYW1lIHB1cnBsZS9pY29uIGxhbmd1YWdlIGFzIC5mZS1mY3Etcm93IGFib3ZlLlxuLy8gW0tpbSBmYXNlIDQgZGVsaXZlcnkgNF1cbi5mZS10eXBlcGlja2VyLWdyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMTQwcHgsIDFmcikpO1xuICAgIGdhcDogMTBweDtcbn1cbi5mZS10eXBlcGlja2VyLXRpbGUge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogMTZweCAxMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU0ZWY7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmNGY1ZmI7XG4gICAgY29sb3I6ICMyYTJlNWU7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMTQwbXMsIGJveC1zaGFkb3cgMTQwbXMsIGJhY2tncm91bmQgMTQwbXM7XG5cbiAgICAmOmhvdmVyLCAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICBib3JkZXItY29sb3I6ICNhOGIyZTg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlZWYwZmY7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDY0LCA3MywgMTU0LCAwLjEwKTtcbiAgICB9XG59XG4uZmUtdHlwZXBpY2tlci10aWxlX19pY29uIHtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG59XG4uZmUtdHlwZXBpY2tlci10aWxlX19sYWJlbCB7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbn1cblxuLy8gRmFzZSA0IGRlbGl2ZXJ5IDIgKHBsYW4gRSk6IHRoZSBjYXJkJ3Mgb3duIGlmLWp1bXAsIGluIHBsYWluIGxhbmd1YWdlLCBhYm92ZVxuLy8gdGhlIGxpc3QuIFRpbnRlZC1iYW5uZXIgc3R5bGUgKGluZm9ybWF0aXZlLCBub3QgYSB3YXJuaW5nKSwgc291cmNlLWJyYW5jaFxuLy8gZ2x5cGggdG8gcmVhZCBhcyBcImZsb3cgbG9naWNcIiBhdCBhIGdsYW5jZS4gW0tpbSBmYXNlIDQgZGVsaXZlcnkgMl1cbi5mZS1mY3EtanVtcC1saW5lIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAwLjA3KTtcbiAgICBjb2xvcjogIzJhMmU1ZTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cbi5mZS1mY3EtanVtcC1saW5lX19pY29uIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW4tdG9wOiAxcHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGNvbG9yOiAjNDA0OTlhO1xufVxuXG4uZmUtZmNxLWxpc3Qge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gYW5jaG9yIGZvciB0aGUgYWJzb2x1dGUgLmZlLWRyb3AtbGluZSAoc2hhcmVkIHJ1bGUsIH42MTM3KVxuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICA+IC5mZS1mY3Etcm93ICsgLmZlLWZjcS1yb3cge1xuICAgICAgICBtYXJnaW4tdG9wOiA2cHg7XG4gICAgfVxufVxuXG4uZmUtZmNxLXJvdyB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDEwcHggMTBweCAxMHB4IDE4cHg7IC8vIGxlZnQgcGFkZGluZyBjbGVhcnMgdGhlIGRyYWcgaGFuZGxlIGJhclxuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlNGVmO1xuICAgIC8vIFNhbWUgaWRsZSBzdXJmYWNlIGFzIHRoZSBZZXMvTm8gYW5zd2VyLWJ1dHRvbiAoaXRzIDEyJS1wdXJwbGUtb24td2hpdGUgbWl4LFxuICAgIC8vIHNlZSBjb21wb25lbnRzL3YyL2Fuc3dlci1idXR0b24vX2Fuc3dlci1idXR0b24uc2Nzcykgc28gdGhlIHF1ZXN0aW9uIHJvd3MgcmVhZFxuICAgIC8vIGFzIHRoZSBzYW1lIFwiYW5zd2VyIHN1cmZhY2VcIiBmYW1pbHkgaW5zdGVhZCBvZiBhIHBhbGVyIG5lYXItd2hpdGUuIFtLaW0gMTYuMDddXG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRoZW1lLWJ0bi1jb2xvciwgIzQwNDk5YSkgMTIlLCAjZmZmKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IC8vIGZhc2UgNCBkZWxpdmVyeSAyIChENSk6IHJvdyBjbGljayBvcGVucyB0aGUgcXVlc3Rpb24sIHN0YWNrZWRcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMTQwbXMsIGJveC1zaGFkb3cgMTQwbXMsIGJhY2tncm91bmQgMTQwbXM7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjYThiMmU4O1xuICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSg2NCwgNzMsIDE1NCwgMC4xMCk7XG5cbiAgICAgICAgLmZlLWZjcS1yb3dfX2RyYWcgeyBvcGFjaXR5OiAxOyB9XG4gICAgICAgIC5mZS1mY3Etcm93X19tb3ZlIHsgb3BhY2l0eTogMTsgcG9pbnRlci1ldmVudHM6IGFsbDsgfVxuICAgICAgICAuZmUtZmNxLXJvd19fZGVsZXRlIHsgb3BhY2l0eTogMTsgcG9pbnRlci1ldmVudHM6IGFsbDsgfVxuICAgIH1cbn1cblxuLy8gVGV4dCBjb2x1bW4gKGxhYmVsICsgb3B0aW9uYWwgbG9naWMgY2hpcCBzdGFja2VkKSDigJQgZmFzZSA0IGRlbGl2ZXJ5IDIuIFtLaW0gZmFzZSA0IGRlbGl2ZXJ5IDJdXG4uZmUtZmNxLXJvd19fdGV4dCB7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogM3B4O1xufVxuXG4vLyBEcmFnIGhhbmRsZSDigJQgaWRlbnRpY2FsIGFmZm9yZGFuY2UgdG8gcWRuYXByby1hbnN3ZXItb3B0aW9uX19kcmFnLlxuLmZlLWZjcS1yb3dfX2RyYWcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA0cHg7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHdpZHRoOiA0cHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIGJhY2tncm91bmQ6ICM0NjUyZjM7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBlYXNlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uZmUtZmNxLXJvd19faWNvbiB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGNvbG9yOiAjNDA0OTlhO1xufVxuXG4uZmUtZmNxLXJvd19fbGFiZWwge1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBjb2xvcjogIzJhMmU1ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8vIExvZ2ljLWNoaXAgcGlsbCAocGxhbiBFKSDigJQgcGxhaW4tbGFuZ3VhZ2UgcnVsZSBzdW1tYXJ5LCBjbGljayBvcGVucyB0aGVcbi8vIHF1ZXN0aW9uIHN0YWNrZWQsIGZvY3VzZWQgb24gaXRzIGxvZ2ljIHNlY3Rpb24uIE93biBidXR0b24gc28gaXQgY2FuIHN0b3Bcbi8vIHJvdy1jbGljayBwcm9wYWdhdGlvbiB3aGlsZSBzdGlsbCByZWFkaW5nIGFzIHBhcnQgb2YgdGhlIHJvdy4gW0tpbSBmYXNlIDQgZGVsaXZlcnkgMl1cbi5mZS1mY3Etcm93X19jaGlwIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg2NCwgNzMsIDE1NCwgMC4yMik7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAwLjA4KTtcbiAgICBjb2xvcjogIzQwNDk5YTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2U7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg2NCwgNzMsIDE1NCwgMC4xNCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg2NCwgNzMsIDE1NCwgMC4zNCk7XG4gICAgfVxufVxuLmZlLWZjcS1yb3dfX2NoaXAtaWNvbiB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4vLyBSZXF1aXJlZCBjdWUg4oCUIHNhbWUgY29sb3VyIGFzIC5mZS1sYWJlbC1yZXF1aXJlZCAobWF0Y2hlcyBxZG5hcHJvLWlucHV0XG4vLyAuaW5wdXQtcmVxdWlyZWQpLCB+Mzk0OC5cbi5mZS1mY3Etcm93X19yZXF1aXJlZCB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgY29sb3I6ICNjNjVhNWE7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLy8gXCJWZXJwbGFhdHMgbmFhciBhbmRlcmUga2FhcnRcIiAoRDYpIOKAlCBzYW1lIGhvdmVyLXJldmVhbCBhZmZvcmRhbmNlIGFzXG4vLyAuZmUtZmNxLXJvd19fZGVsZXRlLCBuZXV0cmFsL3B1cnBsZSBpbnN0ZWFkIG9mIHJlZCAobm90IGRlc3RydWN0aXZlKSwgcGx1c1xuLy8gYSBwZXJzaXN0ZW50IHRpbnQgd2hpbGUgaXRzIGNob29zZXIgaXMgZXhwYW5kZWQuIFtLaW0gZmFzZSA0IGRlbGl2ZXJ5IDJdXG4uZmUtZmNxLXJvd19fbW92ZSB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgd2lkdGg6IDI2cHg7XG4gICAgaGVpZ2h0OiAyNnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgIGJhY2tncm91bmQ6ICNlZWYwZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2M3Y2NlZDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNDBtcywgYmFja2dyb3VuZCAxMjBtcywgYm9yZGVyLWNvbG9yIDEyMG1zO1xuXG4gICAgLm1kaSB7IGZvbnQtc2l6ZTogMTVweDsgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNkZGUxZmY7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2E4YjJlODtcbiAgICB9XG5cbiAgICAmLmZlLWZjcS1yb3dfX21vdmUtLWFjdGl2ZSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgICAgIGJhY2tncm91bmQ6ICNkZGUxZmY7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzQwNDk5YTtcbiAgICB9XG59XG5cbi5mZS1mY3Etcm93X19kZWxldGUge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHdpZHRoOiAyNnB4O1xuICAgIGhlaWdodDogMjZweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogI2M5NDA0MDtcbiAgICBiYWNrZ3JvdW5kOiAjZmRlOGU4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlOGIwYjA7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTQwbXMsIGJhY2tncm91bmQgMTIwbXMsIGJvcmRlci1jb2xvciAxMjBtcztcblxuICAgIC5tZGkgeyBmb250LXNpemU6IDE1cHg7IH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZjY2NjO1xuICAgICAgICBib3JkZXItY29sb3I6ICNjOTQwNDA7XG4gICAgfVxufVxuXG4vLyBENiBpbmxpbmUgXCJtb3ZlIHRvIGFub3RoZXIgY2FyZFwiIGNob29zZXIg4oCUIGV4cGFuZHMgYXMgaXRzIG93biByb3cgZGlyZWN0bHlcbi8vIHVuZGVyIHRoZSBxdWVzdGlvbiByb3cgaXQgYmVsb25ncyB0byAobm90IGEgZmxvYXRpbmcgcG9wb3Zlcjogbm8gYW5jaG9yaW5nL1xuLy8gcG9zaXRpb25pbmcgbWF0aCBuZWVkZWQsIGFuZCBpdCBzdGF5cyB2aXN1YWxseSBhdHRhY2hlZCB0byB0aGUgcm93IGl0IGFjdHNcbi8vIG9uKS4gW0tpbSBmYXNlIDQgZGVsaXZlcnkgMl1cbi5mZS1mY3EtbW92ZS1yb3cge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tdG9wOiA2cHg7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggZGFzaGVkICNiMGI4ZTg7XG4gICAgYmFja2dyb3VuZDogI2VlZjBmZjtcbn1cbi5mZS1mY3EtbW92ZS1zZWxlY3Qge1xuICAgIGZsZXg6IDEgMSAyMjBweDtcbiAgICBtaW4td2lkdGg6IDE2MHB4O1xufVxuLmZlLWZjcS1tb3ZlLWVtcHR5IHtcbiAgICBmbGV4OiAxO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzZiNmY3ODtcbn1cbi5mZS1mY3EtbW92ZS1hY3Rpb25zIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG59XG4uZmUtZmNxLW1vdmUtY2FuY2VsLFxuLmZlLWZjcS1tb3ZlLWNvbmZpcm0ge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcyBlYXNlLCBib3JkZXItY29sb3IgMTIwbXMgZWFzZSwgb3BhY2l0eSAxMjBtcyBlYXNlO1xufVxuLmZlLWZjcS1tb3ZlLWNhbmNlbCB7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSg2NCwgNzMsIDE1NCwgMC4wOCk7IH1cbn1cbi5mZS1mY3EtbW92ZS1jb25maXJtIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kOiAjNDA0OTlhO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM0MDQ5OWE7XG5cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogIzMzM2E3YjsgfVxuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNDU7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxufVxuXG4vLyDilIDilIAgU2hhcmVkIHYyIGNvbmZpcm0gKGZhc2UgNCBkZWxpdmVyeSAzLCBwbGFuIMKnRDQvRDYsIEtpbSAwOC4wNy4yMDI2KSDilIDilIBcbi8vIFRSQUNLIDIgcmVidWlsZCAoUExBTi1hbGVydC1jb21wb25lbnQubWQsIDA5LjA3LjIwMjYpOiB0aGUgaGFuZC1yb2xsZWRcbi8vIC5mZS1jb25maXJtLXNjcmltLy1jYXJkLy10aXRsZS8tYm9keS8td2FybmluZy8tZnRyIGZyYW1lIHRoYXQgdXNlZCB0byBsaXZlXG4vLyBoZXJlIGlzIGdvbmUg4oCUIEJveC52dWUgKHBsdWdpbnMvY29uZmlybS9Cb3gudnVlKSBub3cgcmVuZGVycyBhIHJlYWxcbi8vIDxxZG5hcHJvLW1vZGFsIGNsYXNzPVwiZmUtY29uZmlybS1tb2RhbFwiPiwgc28gdGhlIGNvbmZpcm0gZ2V0cyB0aGUgYWN0dWFsXG4vLyB2MiBkaWFsb2cgY2hyb21lICh3aGl0ZSByb3VuZGVkIGNhcmQsIHB1cnBsZSB0aXRsZSwgWCBjbG9zZSwgZm9vdGVyXG4vLyBidXR0b25zKSBmb3IgZnJlZSBmcm9tIHNjc3MvY29tcG9uZW50cy92Mi9tb2RhbC9fbW9kYWwuc2Nzcy4gT25seSB0aGVcbi8vIGZsb3dlZGl0b3Itc3BlY2lmaWMgei1pbmRleCBidW1wICg5MzAwLCBzbyBpdCBjbGVhcnMgYm90aCB0aGUgd2l6YXJkXG4vLyBtb2RhbCdzIH45MDAwLTkxMDAgYW5kIGl0cyBvd24gOTIwMCBkcm9wZG93biBsYXllcikgbGl2ZXMgdGhlcmUgbm93LFxuLy8gc2NvcGVkIGJ5IC5mZS1jb25maXJtLW1vZGFsIOKAlCBzYW1lIHBhdHRlcm4gYXMgdGhlIGV4aXN0aW5nXG4vLyAuZmUtaW1wb3J0LW1vZGFsIG92ZXJyaWRlcyBpbiB0aGF0IHNhbWUgZmlsZS5cblxuLy8g4pSA4pSAIEQ2IG1vdmUgc3VjY2VzcyB0b2FzdCAoZmFzZSA0IGRlbGl2ZXJ5IDMsIHBsYW4gwqdENiwgS2ltIDA4LjA3LjIwMjYpIOKUgOKUgFxuLy8gU2l0cyBhdCB0aGUgYm90dG9tIG9mIHRoZSBWcmFnZW4gdGFiJ3Mgb3duIHNjcm9sbCBib2R5LCBzdGlja3kgc28gaXQgc3RheXNcbi8vIHZpc2libGUgcmVnYXJkbGVzcyBvZiBzY3JvbGwgcG9zaXRpb24sIHdpdGhvdXQgZXNjYXBpbmcgdGhlIHRhYiAocGVyIHBsYW46XG4vLyBcInRvYXN0IElOU0lERSB0aGUgbW9kYWwgYm9keSBib3R0b21cIiwgbm8gbmF2aWdhdGlvbi9yZW9wZW4pLiBTYW1lIGZhZGVcbi8vIHRyYW5zaXRpb24gRkFNSUxZIGFzIC5mZS1wdi10b2FzdC1mYWRlIChQcmV2aWV3LnZ1ZSdzIGJhcmNvZGUtc2NhbiB0b2FzdCxcbi8vIH41ODgzKSDigJQgaWRlbnRpY2FsIHRpbWluZy9lYXNpbmcg4oCUIGJ1dCBhIGdyZWVuIHN1cmZhY2UgZm9yIGEgc3VjY2Vzc1xuLy8gbWVzc2FnZSBpbnN0ZWFkIG9mIHRoYXQgdG9hc3QncyBuZXV0cmFsLWRhcmsgaW5mbyB0b25lLlxuLmZlLWZjcS1tb3ZlLXRvYXN0IHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIGJvdHRvbTogNnB4O1xuICAgIHotaW5kZXg6IDM7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiA5cHggMTRweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICMxZjdhNGQ7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxMi41cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIGJveC1zaGFkb3c6IDAgNnB4IDIwcHggcmdiYSgyMCwgMjIsIDQwLCAwLjI0KTtcbn1cbi5mZS1mY3EtbW92ZS10b2FzdF9faWNvbiB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZm9udC1zaXplOiAxNnB4O1xufVxuLmZlLWZjcS1tb3ZlLXRvYXN0LWZhZGUtZW50ZXItYWN0aXZlLFxuLmZlLWZjcS1tb3ZlLXRvYXN0LWZhZGUtbGVhdmUtYWN0aXZlIHsgdHJhbnNpdGlvbjogb3BhY2l0eSAxODBtcyBlYXNlLW91dCwgdHJhbnNmb3JtIDE4MG1zIGVhc2Utb3V0OyB9XG4uZmUtZmNxLW1vdmUtdG9hc3QtZmFkZS1lbnRlci1mcm9tLFxuLmZlLWZjcS1tb3ZlLXRvYXN0LWZhZGUtbGVhdmUtdG8geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTsgfVxuXG4vLyDilIDilIAgT3ZlcmRyYWNodGVuLW92ZXJ6aWNodCAodG9vbGJhciDihpIgbW9kYWwgbWV0IEFMTEUgaGFuZG92ZXItcmVnZWxzKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFtKYW4gMDguMDguMjAyNl0gRcOpbiBtb2RhbCBtZXQgcGVyIGhhbmRvdmVyLW5vZGUgemlqbiByZWdlbHMsIGdlZ3JvZXBlZXJkLCBtZXRcbi8vIGRlIGhlcmtvbXN0LXZyYWFnIGVyb25kZXIuIERlIHJpamVuIHppam4gcWRuYXByby1saXN0LXJvdyBlbiBoZXQgb250dmFuZ2Vyc2Jsb2tcbi8vIGlzIEJFV1VTVCBlZW4ga29waWUgdmFuIGRlIGAuZmUtaHQtKmAtbWF0ZW4gaGllcmJvdmVuIChlaWdlbiBwcmVmaXggb20gZGV6ZWxmZGVcbi8vIHJlZGVuIGFscyBgLmZlLWxyLSpgOiDDqcOpbiBnZWRlZWxkZSBwcmVmaXggbGFhdCBlZW4gd2lqemlnaW5nIGFhbiBkZSBlbmUgbGlqc3QgZGVcbi8vIGFuZGVyZSBzdGlsbGV0amVzIG1lZW5lbWVuKS5cblxuLy8gRGUgdGVsbGVyIG9wIGRlIHRvb2xiYXIta25vcC4gT3AgZGUga25vcC1hbmNob3IgemVsZiAoZGllIGlzIHBvc2l0aW9uOnN0YXRpYyksXG4vLyBkdXMgZGUga25vcCBrcmlqZ3QgemlqbiBlaWdlbiBhbmtlci5cbi5mZTItaGFuZG92ZXItYnRuIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZmUyLWNvdW50LWJhZGdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtM3B4O1xuICAgIHJpZ2h0OiAtNHB4O1xuICAgIG1pbi13aWR0aDogMTVweDtcbiAgICBoZWlnaHQ6IDE1cHg7XG4gICAgcGFkZGluZzogMCA0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogI2UxNGU0NzsgLy8gZGUga2xldXIgdmFuIGRlIGhhbmRvdmVyLW5vZGUgemVsZlxuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogOXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vLyBEZSBzY2hpbDogc2l6ZT1cImxhcmdlXCIgZHdpbmd0IGVlbiB2YXN0ZSBob29ndGUgdmFuIDgwMHB4IGFmICh2YWxrdWlsIDgpIOKAlCBoaWVyXG4vLyBob29ndGUgbmFhciBkZSBpbmhvdWQgbWV0IDgwMHB4IGFscyBwbGFmb25kLCB6ZWxmZGUgcGF0cm9vbiBhbHMgLmZlLXJ1bGUtbW9kYWwuXG4vLyBHZWVuIGVpZ2VuIHotaW5kZXg6IDkwMDAgKGNvbXBvbmVudC1kZWZhdWx0KSBpcyBnb2VkLCBkZSByZWdlbC1lZGl0b3Igc3RhcGVsdFxuLy8gZXIgbWV0IDkxMDAgb3ZlcmhlZW4uXG4ucWRuYXByby1tb2RhbC5mZS1oby1tb2RhbC5tb2RhbC1zaXplLWxhcmdlIC5tb2RhbC1kaWFsb2cge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXgtaGVpZ2h0OiBtaW4oODAwcHgsIGNhbGMoMTAwdmggLSA0OHB4KSk7XG59XG4ucWRuYXByby1tb2RhbC5mZS1oby1tb2RhbC5tb2RhbC1zaXplLWxhcmdlIC5tb2RhbC13aW5kb3cge1xuICAgIGhlaWdodDogYXV0bztcbn1cblxuLmZlLWhvLXN1bW1hcnkge1xuICAgIG1hcmdpbjogMnB4IDJweCAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzZiNzE5Mjtcbn1cblxuLmZlLWhvLWdyb3VwIHtcbiAgICBwYWRkaW5nOiAxMnB4IDJweCAxNHB4O1xufVxuLmZlLWhvLWdyb3VwICsgLmZlLWhvLWdyb3VwIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgxNywgMjQsIDM5LCAwLjA4KTtcbn1cblxuLmZlLWhvLWdyb3VwLWhlYWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcblxuICAgIHFkbmFwcm8tYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgfVxuICAgIHFkbmFwcm8taWNvbiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgIH1cbn1cbi5mZS1oby1ncm91cC1kb3Qge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiA5cHg7XG4gICAgaGVpZ2h0OiA5cHg7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJhY2tncm91bmQ6ICNlMTRlNDc7IC8vIG5vZGUta2xldXIgdmFuIGRlIGhhbmRvdmVyXG59XG4uZmUtaG8tZ3JvdXAtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjMWExZjRkO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG59XG5cbi8vIERlIGhlcmtvbXN0OiBkZSB2cmFhZy92cmFnZW4gZGllIGluIGRlIGZsb3cgZGlyZWN0IHbDs8OzciBkZXplIG92ZXJkcmFjaHQgc3RhYW4uXG4uZmUtaG8tZ3JvdXAtc291cmNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyAvLyBoZXQgaWNvb24gaG9vcnQgYmlqIGRlIEVFUlNURSByZWdlbCBhbHMgZGUgdGVrc3Qgb21sb29wdFxuICAgIGdhcDogNnB4O1xuICAgIG1hcmdpbjogNHB4IDAgMnB4IDFweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICM2YjcxOTI7XG5cbiAgICBxZG5hcHJvLWljb24ge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgICBjb2xvcjogIzkwOTdiODtcbiAgICB9XG59XG4vLyBEZSBsYWF0c3RlIGhlcmtvbXN0cmVnZWwgaG91ZHQgZGUgb3VkZSBhZnN0YW5kIHRvdCBkZSBsaWpzdCBlcm9uZGVyLlxuLmZlLWhvLWdyb3VwLXNvdXJjZTpsYXN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLmZlLWhvLW5vbmUge1xuICAgIG1hcmdpbjogNHB4IDAgOHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzkwOTdiODtcbn1cblxuLmZlLWhvLWFkZCB7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xufVxuXG4vLyBUcmFpbGluZy1zbG90OiB6ZWxmZGUgbWF0ZW4gYWxzIC5mZS1odC10cmFpbGluZyAvIC5mZS1odC1yZWNpcCBoaWVyYm92ZW4uXG4uZmUtaG8tdHJhaWxpbmcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG59XG4uZmUtaG8tcmVjaXBpZW50cyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBnYXA6IDJweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMzU7XG59XG4uZmUtaG8tcmVjaXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIGdhcDogNnB4O1xuICAgIG1heC13aWR0aDogMjIwcHg7XG59XG4uZmUtaG8tcmVjaXAta2V5IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICM5MDk3Yjg7XG59XG4uZmUtaG8tcmVjaXAtbmFtZXMge1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgY29sb3I6ICMxYTFmNGQ7XG59XG4uZmUtaG8tcmVjaXAtLWNjIC5mZS1oby1yZWNpcC1uYW1lcyB7XG4gICAgY29sb3I6ICM2YjcxOTI7XG59XG4uZmUtaG8tcmVjaXAtLW5vbmUge1xuICAgIGNvbG9yOiAjOTA5N2I4O1xufVxuXG4vLyBEZSBrZXV6ZS1vcHRpZSBpbiBkZSBoZXJrb21zdHJlZ2VsIChcIktvbXQgdWl0IHZyYWFnOiBYIOKGkiAna2V1emUnXCIpOiBkZSBrZXV6ZVxuLy8gZHJhYWd0IGRlIGJldGVrZW5pcywgZHVzIGRpZSBrcmlqZ3Qga2xldXI7IGRlIHBpamwgYmxpamZ0IGdlZGVtcHQuXG4uZmUtaG8tc291cmNlLXRleHQge1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbn1cbi5mZS1oby1zb3VyY2UtdGV4dCBiIHtcbiAgICBjb2xvcjogIzNmM2Y1NjtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuLmZlLWhvLXNvdXJjZS1wcmVmaXgge1xuICAgIG1hcmdpbi1yaWdodDogNHB4O1xufVxuLmZlLWhvLXNvdXJjZS1hcnJvdyB7XG4gICAgbWFyZ2luOiAwIDVweDtcbiAgICBjb2xvcjogIzkwOTdiODtcbn1cbi5mZS1oby1zb3VyY2Utb3B0aW9uIHtcbiAgICBjb2xvcjogIzQwNDk5YTtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4vLyDilIDilIAgRGUgTUVFTE9QRU5ERSBTQ09SRSDigJQgaGV0IGluc3RlbGxpbmdlbi10YWJibGFkIFwiU2NvcmVcIiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFR3ZWUgc2VjdGllcywgw6nDqW4gb3BtYWFrOiBwdW50ZW4gcGVyIGFudHdvb3Jkb3B0aWUgKEFic3RyYWN0U2NvcmVQb2ludHMudnVlKSBlblxuLy8gcHVudGVuIHBlciBnZXRhbGJlcmVpayAoQWJzdHJhY3RTY29yZUJhbmRzLnZ1ZSksIG1ldCBkZSBnZWRlZWxkZSBuYWFta2llemVyXG4vLyAoU2NvcmVOYW1lUGlja2VyLnZ1ZSkgZXJib3Zlbi4gWzEyLjA4LjIwMjZdXG4vL1xuLy8gQWxsZSBCRURJRU5JTkcgaXMgZGUgY29tcG9uZW50YmlibGlvdGhlZWsgKHFkbmFwcm8taW5wdXQsIC1zZWxlY3QsIC1pY29uLWJ0bixcbi8vIC1saXN0LXJvdywgLWFsZXJ0LCAtZW1wdHktc3RhdGUsIC1idXR0b24pOyB3YXQgaGllciBzdGFhdCBpcyB1aXRzbHVpdGVuZCBoZXRcbi8vIHJhc3RlciBlcm9taGVlbi4gRGF0IGlzIGJld3VzdDogZGUgdm9yaWdlIHNjb3JlLXNlY3RpZSAoQXVkaXRTY29yaW5nLnZ1ZSkgcm9sZGVcbi8vIHppam4gZWlnZW4ga25vcHBlbiBtZXQgaW5saW5lIHN0aWpsZW4sIGVuIGRhdCBpcyBwcmVjaWVzIHdhdCBoaWVyIG5pZXQgbW9ldC5cbi5mZS1zY29yZSB7XG5cbiAgICAvLyBEZSBuYWFta2llemVyIHN0YWF0IGJvdmVuIGRlIHB1bnRlbiBlbiBpcyBkdWlkZWxpamsgZWVuIGFuZGVyZSB2cmFhZyAoXCJhYW5cbiAgICAvLyB3ZWxrZSBzY29yZSBkcmFhZ3QgZGl0IGJpalwiKSBkYW4gZGUgcHVudGVuIHplbGYsIGR1cyBlZW4ga2V5bGluZSBlcnR1c3Nlbi5cbiAgICAuZmUtc2NvcmUtbmFtZSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxNnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VjZWFmNDtcbiAgICB9XG5cbiAgICAuZmUtc2NvcmUtbmFtZS1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcblxuICAgICAgICAvLyBEZSBrZXV6ZWxpanN0IGhvdWR0IHonbiBlaWdlbiBtYWF0OyBoZXQgbmFhbXZlbGQgZXJuYWFzdCAoYWxsZWVuIHppY2h0YmFhclxuICAgICAgICAvLyBiaWogXCJOaWV1d2Ugc2NvcmXigKZcIikgZWV0IGRlIHJlc3QgdmFuIGRlIHJlZ2VsLlxuICAgICAgICBxZG5hcHJvLXNlbGVjdCB7XG4gICAgICAgICAgICBmbGV4OiAwIDAgMjIwcHg7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIyMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXZlbiBicmVlZCBhbHMgZGUga2V1emVsaWpzdCBlcm5hYXN0LiBFZW4gc2NvcmVuYWFtIGlzIMOpw6luIHdvb3JkIChcIkVXU1wiKTsgZWVuIHZlbGQgZGF0IGRlXG4gICAgLy8gcmVzdCB2YW4gZGUgcmVnZWwgb3BlZXQgc3VnZ2VyZWVydCBkYXQgZXIgZWVuIHppbiBpbiBob29ydC5cbiAgICAuZmUtc2NvcmUtbmFtZS1pbnB1dCB7XG4gICAgICAgIGZsZXg6IDAgMCAyMjBweDtcbiAgICAgICAgbWF4LXdpZHRoOiAyMjBweDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cblxuICAgIC8vIEhldCBwdW50ZW52ZWxkOiBub29pdCBicmVkZXIgZGFuIGhldCBob2VmdC4gRHJpZSB0ZWtlbnMgcGx1cyBlZW4gbWludGVrZW4gaXNcbiAgICAvLyBoZXQgbWVlc3RlIGRhdCBlZW4gcHVudGVud2FhcmRlIGluIGRlIHByYWt0aWprIHdvcmR0LlxuICAgIC5mZS1zY29yZS1pbnB1dCB7XG4gICAgICAgIGZsZXg6IDAgMCA3MnB4O1xuICAgICAgICBtYXgtd2lkdGg6IDcycHg7XG4gICAgfVxuXG4gICAgLmZlLXNjb3JlLXRyYWlsaW5nIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgfVxuXG4gICAgLmZlLXNjb3JlLXVuaXQge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGNvbG9yOiAjNmI3MTkyO1xuICAgICAgICAvLyBWYXN0ZSBicmVlZHRlLCB6b2RhdCBkZSBpbnZvZXJ2ZWxkZW4gdmFuIGFsbGUgcmlqZW4gb3Agw6nDqW4gbGlqbiBzdGFhbiBvb2tcbiAgICAgICAgLy8gYWxzIGRlIGVlbmhlaWQgb29pdCBlZW4gbGFuZ2VyIHdvb3JkIHdvcmR0LlxuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgbWluLXdpZHRoOiAxNHB4O1xuICAgIH1cblxuICAgIC5mZS1zY29yZS1saXN0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIH1cblxuICAgIC5mZS1zY29yZS1zdW1tYXJ5IHtcbiAgICAgICAgbWFyZ2luOiAxMnB4IDAgMDtcbiAgICAgICAgcGFkZGluZzogOXB4IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmNWY0ZmI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBjb2xvcjogIzNmM2Y1NjtcbiAgICB9XG5cbiAgICAvLyDilIDilIAgRGUgYmVyZWlrZW4g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gICAgLy8gRWVuIGJlcmVpayBpcyBlZW4gRk9STVVMSUVScmlqICh2YW4gLyB0b3QgZW4gbWV0IC8gcHVudGVuKSwgZ2VlbiBsaWpzdHJpajpcbiAgICAvLyBlciB6aWpuIGRyaWUgaW52b2VydmVsZGVuIGVuIGRlIHJpaiBoZWVmdCBnZWVuIGVpZ2VuIHRpdGVsLiBWYW5kYWFyIGVlblxuICAgIC8vIHJhc3RlciBpbiBwbGFhdHMgdmFuIHFkbmFwcm8tbGlzdC1yb3cg4oCUIG1ldCBkZXplbGZkZSBrb2xvbWJyZWVkdGVzIHZvb3IgZGVcbiAgICAvLyBrb3AgZW4gZGUgcmlqZW4sIHpvZGF0IGRlIGxhYmVscyBib3ZlbiBodW4gdmVsZCBibGlqdmVuIHN0YWFuLlxuICAgIC8vIOKaoO+4jyBEZSBsYWF0c3RlIGtvbG9tIGlzIGBhdXRvYCBlbiBOSUVUIGAxZnJgLiBNZXQgYDFmcmAgZHV3dCBoZXQgcmFzdGVyIGRlIGtub3BwZW4gbmFhciBkZVxuICAgIC8vIHJlY2h0ZXJyYW5kIHZhbiBoZXQgcGFuZWVsLCBlbiBvcCBlZW4gYnJlZWQgcGFuZWVsIHN0YWF0IGVyIGRhbiBlZW4gbGVlZ3RlIHZhbiBob25kZXJkZW5cbiAgICAvLyBwaXhlbHMgdHVzc2VuIFwiUHVudGVuXCIgZW4gZGUga25vcHBlbiBkaWUgYmlqIGRpZXplbGZkZSByaWogaG9yZW4g4oCUIGdlbWV0ZW4gaW4gZWVuIHJlbmRlcjpcbiAgICAvLyBydWltIDYwMHB4LCB3YWFyZG9vciBkZSBrbm9wcGVuIGJpaiBuaWV0cyBtZWVyIGhvb3JkZW4uIE51IHNsdWl0ZW4gemUgYWFuIG9wIGRlIHZlbGRlbi5cbiAgICAuZmUtc2NvcmUtYmFuZC1oZWFkLFxuICAgIC5mZS1zY29yZS1iYW5kLWZpZWxkcyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNzJweCA3MnB4IDcycHggYXV0bztcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gICAgfVxuXG4gICAgLmZlLXNjb3JlLWJhbmQtaGVhZCB7XG4gICAgICAgIG1hcmdpbjogOHB4IDAgNHB4O1xuICAgIH1cblxuICAgIC5mZS1zY29yZS1iYW5kLWNvbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbiAgICAgICAgY29sb3I6ICM4YzkxYWI7XG4gICAgfVxuXG4gICAgLmZlLXNjb3JlLWJhbmQtcm93IHtcbiAgICAgICAgcGFkZGluZzogOHB4IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjBmMGY2O1xuXG4gICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZmUtc2NvcmUtYmFuZC1hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgICAgIC8vIEVlbiBrbGVpbiB6ZXRqZSB2YW4gZGUgdmVsZGVuIGFmLCB6b2RhdCBkZSBrbm9wcGVuIGVyYmlqIGhvcmVuIG1hYXIgbmlldCB0ZWdlbiBoZXRcbiAgICAgICAgLy8gcHVudGVudmVsZCBhYW4gc3RhYW4uXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgfVxuXG4gICAgLy8gRGUgcmlqIGluIGdld29uZSB0YWFsIHRlcnVnIChcIjEyIHRvdCBlbiBtZXQgMjAg4oaSIDAgcHVudGVuXCIpLiBIaWogc3RhYXQgT05ERVJcbiAgICAvLyBkZSB2ZWxkZW4gZW4gbmlldCBlcm5hYXN0OiBiaWogXCJsZWVnID0gb25iZWdyZW5zZFwiIGlzIGRlIHppbiBoZXQgZW5pZ2UgZGF0XG4gICAgLy8gdWl0bGVndCB3YXQgZWVuIGxlZWcgdmVsZCBiZXRla2VudCwgZW4gZGllIG1vZXQgZHVzIGRlIHZvbGxlIGJyZWVkdGUgaGViYmVuLlxuICAgIC5mZS1zY29yZS1iYW5kLXNlbnRlbmNlIHtcbiAgICAgICAgbWFyZ2luOiA0cHggMCAwO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGNvbG9yOiAjNmI3MTkyO1xuICAgIH1cblxuICAgIC8vIEVlbiBiZXJlaWsgZGF0IG5vb2l0IGthbiBwYXNzZW4uIEVlbiB3YWFyc2NodXdpbmcsIGdlZW4gc2xvdDogZGl0IGlzIGVlblxuICAgIC8vIGJvdXdlciwgZ2VlbiBrZXVybWVlc3RlciAoemVsZmRlIGFmd2VnaW5nIGFscyBkZSBjb250cmFzdHdhYXJzY2h1d2luZyBpblxuICAgIC8vIHFkbmFwcm8tZm9ybWF0LXJ1bGVzKS5cbiAgICAuZmUtc2NvcmUtYmFuZC1zZW50ZW5jZS0tcHJvYmxlbSB7XG4gICAgICAgIGNvbG9yOiAjYjA1NjFmO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgIH1cbn1cbiIsIiRiYXNlLWJhdGNoOiAjRkYzQTMwRkY7XG4kYmFzZS13aGl0ZTogI0ZGRkZGRkZGO1xuJGJhc2UtYmxhY2s6ICMxRTFGMjBGRjtcblxuXG4kYmFzZS1jb2xvcnM6IChcbiAgICBiYXRjaDogJGJhc2UtYmF0Y2gsXG4gICAgd2hpdGU6ICRiYXNlLXdoaXRlLFxuICAgIGJsYWNrOiAkYmFzZS1ibGFja1xuKTtcblxuJHB1cnBsZS1saWxhOiAoXG4gICAgOTUwOiAjMTAwRTE4RkYsXG4gICAgOTAwOiAjMUYxRDJGRkYsXG4gICAgODAwOiAjNDEzQjVFRkYsXG4gICAgNzAwOiAjNUU1NjhERkYsXG4gICAgNjAwOiAjN0U3MkJDRkYsXG4gICAgNTAwOiAjOUQ4RkVCRkYsXG4gICAgNDAwOiAjQjFBNUVGRkYsXG4gICAgMzAwOiAjQzRCQ0YzRkYsXG4gICAgMjAwOiAjRDhEMkY3RkYsXG4gICAgMTAwOiAjRUJFOUZCRkYsXG4gICAgNTA6ICNGNUY0RkRGRlxuKTtcblxuJHNpZ25hbC1yZWQ6IChcbiAgICA5NTA6ICMxOTBCMEJGRixcbiAgICA5MDA6ICMzMjE3MTdGRixcbiAgICA4MDA6ICM2MzMwMzBGRixcbiAgICA3MDA6ICM5NTQ0NDRGRixcbiAgICA2MDA6ICNDNjVBNUFGRixcbiAgICA1MDA6ICNGODcxNzFGRixcbiAgICA0MDA6ICNGOThEOERGRixcbiAgICAzMDA6ICNGQkFBQUFGRixcbiAgICAyMDA6ICNGQ0M2QzZGRixcbiAgICAxMDA6ICNGRUUzRTNGRixcbiAgICA1MDogI0ZFRjFGMUZGXG4pO1xuXG5cbi8vIEluZGl2aWR1ZWxlIGtsZXVydmFyaWFiZWxlblxuJHB1cnBsZS05NTA6ICMwNjA3MEZGRjtcbiRwdXJwbGUtOTAwOiAjMEQwRjFGRkY7XG4kcHVycGxlLTgwMDogIzFEMjE0MEZGO1xuJHB1cnBsZS03MDA6ICMyNjJDNUNGRjtcbiRwdXJwbGUtNjAwOiAjMzMzQTdCRkY7XG4kcHVycGxlLTUwMDogIzQwNDk5QUZGO1xuJHB1cnBsZS00NTA6ICM1MzVCQTRGRjtcbiRwdXJwbGUtNDAwOiAjNjY2REFFRkY7XG4kcHVycGxlLTMwMDogIzhDOTJDMkZGO1xuJHB1cnBsZS0yMDA6ICNCM0I2RDdGRjtcbiRwdXJwbGUtMTUwOiAjQzZDOEUxRkY7XG4kcHVycGxlLTEwMDogI0Q5REJFQkZGO1xuJHB1cnBsZS01MDogI0VDRURGNUZGO1xuXG4vLyBNYXAgdmFuIHB1cnBsZSBrbGV1cmVuXG4kcHVycGxlOiAoXG4gICAgOTUwOiAkcHVycGxlLTk1MCxcbiAgICA5MDA6ICRwdXJwbGUtOTAwLFxuICAgIDgwMDogJHB1cnBsZS04MDAsXG4gICAgNzAwOiAkcHVycGxlLTcwMCxcbiAgICA2MDA6ICRwdXJwbGUtNjAwLFxuICAgIDUwMDogJHB1cnBsZS01MDAsXG4gICAgNDUwOiAkcHVycGxlLTQ1MCxcbiAgICA0MDA6ICRwdXJwbGUtNDAwLFxuICAgIDMwMDogJHB1cnBsZS0zMDAsXG4gICAgMjAwOiAkcHVycGxlLTIwMCxcbiAgICAxNTA6ICRwdXJwbGUtMTUwLFxuICAgIDEwMDogJHB1cnBsZS0xMDAsXG4gICAgNTA6ICRwdXJwbGUtNTBcbik7XG5cblxuJG9yYW5nZTogKFxuICAgIDk1MDogIzE4MEUwMEZGLFxuICAgIDkwMDogIzMwMUMwMEZGLFxuICAgIDgwMDogIzYwM0IwNkZGLFxuICAgIDcwMDogIzhGNTUwMUZGLFxuICAgIDYwMDogI0JGNzIwMkZGLFxuICAgIDUwMDogI0VGOEUwMkZGLFxuICAgIDQwMDogI0YyQTUzNUZGLFxuICAgIDMwMDogI0Y1QkI2N0ZGLFxuICAgIDIwMDogI0Y5RDI5QUZGLFxuICAgIDEwMDogI0ZDRThDQ0ZGLFxuICAgIDUwOiAjRkRGNEU2RkZcbik7XG5cbiRncmV5OiAoXG4gICAgMTAwMDogIzAwMDAwMEZGLFxuICAgIDk1MDogIzBCMEIwREZGLFxuICAgIDkwMDogIzE1MTcxQUZGLFxuICAgIDg1MDogIzE1MTcxQUZGLFxuICAgIDgwMDogIzJFMzAzNkZGLFxuICAgIDc1MDogIzM2Mzk0MEZGLFxuICAgIDcwMDogIzQwNDQ0REZGLFxuICAgIDYwMDogIzU2NUI2NkZGLFxuICAgIDUwMDogIzZCNzI4MEZGLFxuICAgIDQwMDogIzg5OEU5OUZGLFxuICAgIDMwMDogI0E2QUFCM0ZGLFxuICAgIDIwMDogI0M0QzdDQ0ZGLFxuICAgIDEwMDogI0UxRTNFNkZGLFxuICAgIDUwOiAjRjBGMUYyRkZcbik7XG5cbiRzaWduYWwtZ3JlZW46IChcbiAgICA5NTA6ICMwQjE3MTJGRixcbiAgICA5MDA6ICMxNjJFMjVGRixcbiAgICA4MDA6ICMyRjVENEFGRixcbiAgICA3MDA6ICM0MjhCNkVGRixcbiAgICA2MDA6ICM1OEI5OTJGRixcbiAgICA1MDA6ICM2RUU3QjdGRixcbiAgICA0MDA6ICM4QkVDQzVGRixcbiAgICAzMDA6ICNBOEYxRDRGRixcbiAgICAyMDA6ICNDNUY1RTJGRixcbiAgICAxMDA6ICNFMkZBRjFGRixcbiAgICA1MDogI0YwRkRGOEZGXG4pO1xuXG4kc2lnbmFsLXllbGxvdzogKFxuICAgIDk1MDogIzE5MTUwOEZGLFxuICAgIDkwMDogIzMyMkEwRkZGLFxuICAgIDgwMDogIzY1NTUyMkZGLFxuICAgIDcwMDogIzk3N0YyRUZGLFxuICAgIDYwMDogI0NBQTkzRUZGLFxuICAgIDUwMDogI0ZDRDM0REZGLFxuICAgIDQwMDogI0ZEREM3MUZGLFxuICAgIDMwMDogI0ZERTU5NEZGLFxuICAgIDIwMDogI0ZFRURCOEZGLFxuICAgIDEwMDogI0ZFRjZEQkZGLFxuICAgIDUwOiAjRkZGQkVERkZcbik7XG5cbiRzaWduYWwtaGlnaGxpZ2h0LXB1cnBsZTogKFxuICAgIDk1MDogIzA3MDgxOEZGLFxuICAgIDkwMDogIzBFMTAzMUZGLFxuICAgIDgwMDogIzIwMjQ2MkZGLFxuICAgIDcwMDogIzJBMzE5MkZGLFxuICAgIDYwMDogIzM4NDJDMkZGLFxuICAgIDUwMDogIzQ2NTJGM0ZGLFxuICAgIDQwMDogIzZCNzVGNUZGLFxuICAgIDMwMDogIzkwOTdGOEZGLFxuICAgIDIwMDogI0I1QkFGQUZGLFxuICAgIDEwMDogI0RBRENGREZGLFxuICAgIDUwOiAjRUNFRUZFRkZcbik7XG5cbiRzaWduYWwtbmV1dHJhbC1ibHVlOiAoXG4gICAgOTUwOiAjMEQxMTE3RkYsXG4gICAgOTAwOiAjMUEyMzJERkYsXG4gICAgODAwOiAjMzc0NzVBRkYsXG4gICAgNzAwOiAjNEY2ODg3RkYsXG4gICAgNjAwOiAjNkE4QUI0RkYsXG4gICAgNTAwOiAjODRBREUxRkYsXG4gICAgNDAwOiAjOURCREU3RkYsXG4gICAgMzAwOiAjQjVDRUVERkYsXG4gICAgMjAwOiAjQ0VERUYzRkYsXG4gICAgMTAwOiAjRTZFRkY5RkYsXG4gICAgNTA6ICNGM0Y3RkNGRlxuKTtcblxuXG5cbiRsaWdodC1wdXJwbGUtMTAwOiAjRTZFOUZGRkY7XG4kbGlnaHQtcHVycGxlLTE1MDogI0RBRERGMkZGO1xuXG4kbGlnaHQtcHVycGxlOiAoXG4gICAgMTAwOiAkbGlnaHQtcHVycGxlLTEwMCxcbiAgICAxNTA6ICRsaWdodC1wdXJwbGUtMTUwXG4pO1xuXG4kdGFnLXBpbms6IChcbiAgICA5NTA6ICMxNTBCMEVGRixcbiAgICA5MDA6ICMyQTE1MUNGRixcbiAgICA4MDA6ICM1NjJEM0FGRixcbiAgICA3MDA6ICM3RjQwNTNGRixcbiAgICA2MDA6ICNBQTU1NkVGRixcbiAgICA1MDA6ICNENDZBOEFGRixcbiAgICA0MDA6ICNERDg4QTFGRixcbiAgICAzMDA6ICNFNUE2QjlGRixcbiAgICAyMDA6ICNFRUMzRDBGRixcbiAgICAxMDA6ICNGNkUxRThGRixcbiAgICA1MDogI0ZCRjBGM0ZGXG4pO1xuXG4kdGFnLXZpb2xldDogKFxuICAgIDk1MDogIzBGMDgxMEZGLFxuICAgIDkwMDogIzFFMTExRkZGLFxuICAgIDgwMDogIzNGMjU0MEZGLFxuICAgIDcwMDogIzVCMzI1REZGLFxuICAgIDYwMDogIzdBNDM3Q0ZGLFxuICAgIDUwMDogIzk4NTQ5QkZGLFxuICAgIDQwMDogI0FENzZBRkZGLFxuICAgIDMwMDogI0MxOThDM0ZGLFxuICAgIDIwMDogI0Q2QkJEN0ZGLFxuICAgIDEwMDogI0VBRERFQkZGLFxuICAgIDUwOiAjRjVFRUY1RkZcbik7XG5cbiR0YWctYmx1ZTogKFxuICAgIDk1MDogIzA1MEExNkZGLFxuICAgIDkwMDogIzBBMTQyREZGLFxuICAgIDgwMDogIzE5MkE1QUZGLFxuICAgIDcwMDogIzFGM0I4NkZGLFxuICAgIDYwMDogIzJBNEZCMkZGLFxuICAgIDUwMDogIzM0NjNERkZGLFxuICAgIDQwMDogIzVEODJFNUZGLFxuICAgIDMwMDogIzg1QTFFQ0ZGLFxuICAgIDIwMDogI0FFQzFGMkZGLFxuICAgIDEwMDogI0Q2RTBGOUZGLFxuICAgIDUwOiAjRUJFRkZDRkZcbik7XG5cbiR0YWctZ3JlZW46IChcbiAgICA5NTA6ICMxMDE0MDlGRixcbiAgICA5MDA6ICMyMDI4MTFGRixcbiAgICA4MDA6ICM0MjUwMjZGRixcbiAgICA3MDA6ICM1Rjc3MzRGRixcbiAgICA2MDA6ICM3RjlFNDVGRixcbiAgICA1MDA6ICM5RkM2NTZGRixcbiAgICA0MDA6ICNCMkQxNzhGRixcbiAgICAzMDA6ICNDNUREOUFGRixcbiAgICAyMDA6ICNEOUU4QkJGRixcbiAgICAxMDA6ICNFQ0Y0RERGRixcbiAgICA1MDogI0Y1RjlFRUZGXG4pOyIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL2Rlc2lnbi10b2tlbnMvX2Rlc2lnbi10b2tlbnMtY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBRRE5BIFBybyDigJQgRGVzaWduIFRva2VucyAoY2VudHJhbCkg4oCUIGNvbXBpbGVkIGZyb20gX2Rlc2lnbi10b2tlbnMuc2Nzc1xuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBEcm9wLWluIENTUyBmb3IgZmlsZTovLyBwYWdlcyAoaG9tZXBhZ2UtbW9ja3VwLCB0YXNrbGlzdC1wYWdlLFxuICAgcHJvdG90eXBlIHByZXZpZXdzKS4gTWlycm9ycyB0aGUgY2Fub25pY2FsIF9kZXNpZ24tdG9rZW5zLnNjc3NcbiAgIDE6MTsgaWYgeW91IGVkaXQgb25lLCBlZGl0IHRoZSBvdGhlci5cblxuICAgVHdvIGxheWVyczpcbiAgICAgQS4gUFJJTUlUSVZFUyDigJQgcmF3IEZpZ21hIHZhbHVlcy5cbiAgICAgQi4gU0VNQU5USUMgVE9LRU5TIOKAlCByZWZlcmVuY2UgcHJpbWl0aXZlcyB2aWEgdmFyKCkuXG5cbiAgIEdlbmVyYXRlZCAyMDI2LTA1LTE5IChGTFkgQkFCWSBGTFkgb3Zlcm5pZ2h0IG1pZ3JhdGlvbikuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuOnJvb3Qge1xuICAgIC8qIC0tLS0tLS0tLS0gR3JleXMgKEZpZ21hIENvbG9ycy9HcmV5LyopIC0tLS0tLS0tLS0gKi9cbiAgICAtLWMtZ3JleS05NTA6ICMwYjBiMGQ7XG4gICAgLS1jLWdyZXktOTAwOiAjMTgxODFjO1xuICAgIC0tYy1ncmV5LTgwMDogIzJlMzAzNjtcbiAgICAtLWMtZ3JleS03MDA6ICM0MDQ0NGQ7XG4gICAgLS1jLWdyZXktNjAwOiAjNTY1YjY2O1xuICAgIC0tYy1ncmV5LTUwMDogIzZiNzI4MDtcbiAgICAtLWMtZ3JleS00MDA6ICNhNmFhYjM7XG4gICAgLS1jLWdyZXktMzAwOiAjYzRjN2NjO1xuICAgIC0tYy1ncmV5LTIwMDogI2QxZDVkYjtcbiAgICAtLWMtZ3JleS0xMDA6ICNlN2U5ZWM7XG4gICAgLS1jLWdyZXktNTA6ICAjZjBmMWYyO1xuXG4gICAgLyogLS0tLS0tLS0tLSBBY3Rpb24gcHVycGxlcyAoRmlnbWEgQ29sb3JzL1B1cnBsZS8qKSAtLS0tLS0tLS0tICovXG4gICAgLS1jLXB1cnBsZS03MDA6ICMyYTMyNjg7XG4gICAgLS1jLXB1cnBsZS02MDA6ICMzMzNhN2I7XG4gICAgLS1jLXB1cnBsZS01MDA6ICM0MDQ5OWE7XG4gICAgLS1jLXB1cnBsZS00MDA6ICM1YTY0Yjg7XG4gICAgLS1jLXB1cnBsZS0zMDA6ICM4YTkyZDA7XG4gICAgLS1jLXB1cnBsZS0yMDA6ICNhNWFjZmY7XG4gICAgLS1jLXB1cnBsZS0xMDA6ICNjMGM1ZmY7XG4gICAgLS1jLXB1cnBsZS01MDogICNlNmU5ZmY7XG5cbiAgICAvKiAtLS0tLS0tLS0tIEFjdGlvbiBoaWdobGlnaHQgKEZpZ21hIFB1cnBsZSBISUdITElHSFQvKikgLS0tLS0tLS0tLSAqL1xuICAgIC0tYy1hY3Rpb24tNTAwOiAjNDY1MmYzO1xuICAgIC0tYy1hY3Rpb24tNjAwOiAjMzU0MGQ2O1xuICAgIC0tYy1hY3Rpb24tNzAwOiAjMmEzNmI4O1xuXG4gICAgLyogLS0tLS0tLS0tLSBTaWduYWwgY29sb3VycyAoc2VtYW50aWMtaXNoIHByaW1pdGl2ZXMpIC0tLS0tLS0tLS0gKi9cbiAgICAtLWMtc2lnbmFsLWdyZWVuLWJnOiAgICAjYzVmNWUyO1xuICAgIC0tYy1zaWduYWwtZ3JlZW4tdGV4dDogICM0MjhiNmU7XG4gICAgLS1jLXNpZ25hbC1ncmVlbi0xMDA6ICAgI2Q4ZjRlMztcbiAgICAtLWMtc2lnbmFsLXllbGxvdy1iZzogICAjZmVlZGI4O1xuICAgIC0tYy1zaWduYWwteWVsbG93LXRleHQ6ICNiZjcyMDI7XG4gICAgLS1jLXNpZ25hbC1ibHVlLWJnOiAgICAgI2U2ZWZmOTtcbiAgICAtLWMtc2lnbmFsLWJsdWUtdGV4dDogICAjNmE4YWI0O1xuICAgIC0tYy1zaWduYWwtcmVkLWJnOiAgICAgICNmZWUzZTM7XG4gICAgLS1jLXNpZ25hbC1yZWQtdGV4dDogICAgI2M2NWE1YTtcbiAgICAtLWMtc2lnbmFsLXJlZC1zb2Z0OiAgICAjZmZmMGYwO1xuICAgIC8qIE9yYW5nZSArIHBpbmsgcGFpcnMgKDAyLjA3LjIwMjYsIGNhbGVuZGFyKTogb3JhbmdlID0gdGhlIFwiaW4gcHJvZ3Jlc3NcIiBldmVudFxuICAgICAgIHN0YXR1cywgcGluayA9IHBlcnNvbmFsIGV2ZW50cy4gUGluayBiZyBkZWxpYmVyYXRlbHkgZXF1YWxzIHRoZSB0YXNrbGlzdCBwaW5rXG4gICAgICAgcGFzdGVsIHNvIHRoZSB0d28gc3lzdGVtcyBzdGF5IHZpc3VhbGx5IHJlbGF0ZWQuICovXG4gICAgLS1jLXNpZ25hbC1vcmFuZ2UtYmc6ICAgI2ZkZWFkYztcbiAgICAtLWMtc2lnbmFsLW9yYW5nZS10ZXh0OiAjYmM2YTFmO1xuICAgIC0tYy1zaWduYWwtcGluay1iZzogICAgICNmNmUxZTg7XG4gICAgLS1jLXNpZ25hbC1waW5rLXRleHQ6ICAgI2IyNTc3NztcblxuICAgIC8qIC0tLS0tLS0tLS0gRmF2b3JpdGUgLyBoZWFydCAoS2ltIDIyLjA3LjIwMjYpIC0tLS0tLS0tLS1cbiAgICAgICBSZWQtcGluayB1c2VkIGZvciB0aGUgXCJmYXZvcml0ZVwiIGhlYXJ0LiBXYXMgaGFyZGNvZGVkIGluIHRoZSBoZWFydC1tb2RlXG4gICAgICAgZmF2b3JpdGUgYnV0dG9uOyBwcm9tb3RlZCB0byBhIHRva2VuIHNvIHFkbmFwcm8tc3RhdHVzLWJhZGdlIGFuZCB0aGVcbiAgICAgICBmYXZvcml0ZSBidXR0b24gc2hhcmUgb25lIHNvdXJjZS4gKi9cbiAgICAtLWMtZmF2b3JpdGUtaGVhcnQ6ICAgICAjZmY0ZDZhO1xuXG4gICAgLyogLS0tLS0tLS0tLSBCcmlnaHQgc2lnbmFsIGFjY2VudHMgKHZpdmlkOyBLaW0gMjQuMDYuMjAyNikgLS0tLS0tLS0tLVxuICAgICAgIFRoZSBtdXRlZCAtLWMtc2lnbmFsLSogYXJlIGZvciBzb2Z0IHBpbGwgYmFja2dyb3VuZHM7IHRoZXNlIGJyaWdodHMgYXJlIGZvclxuICAgICAgIHZpdmlkIGFjY2VudHMgKGZpbGxlZCBib3JkZXJzLCBmaWxscywgdGhlIHRvYXN0IHdhcm5pbmcpLiAqL1xuICAgIC0tYy1zdWNjZXNzLWJyaWdodDogICAgICAgICMxZDllNzU7IC8qIHZpdmlkIHN1Y2Nlc3MgZ3JlZW4gKi9cbiAgICAvKiBTdWNjZXNzLWRpYWxvZyByYW1wLCBhZGRlZCAxOC4wOC4yMDI2IGFzIHRoZSBtaXJyb3Igb2YgdGhlIHdhcm4tcmVkIG9uZTogdGhlXG4gICAgICAgdG9uZT1cInN1Y2Nlc3NcIiBkaWFsb2cgZmlsbHMgYSB3aG9sZSBzdXJmYWNlIHdpdGggZ3JlZW4gYW5kIHB1dHMgd2hpdGUgdGV4dCBvbiBpdC5cbiAgICAgICAtLWMtc3VjY2Vzcy1icmlnaHQgKCMxZDllNzUpIGlzIHRvbyBsaWdodCBmb3IgdGhhdCBhdCAzLjM5OjEuIFRoZXNlIG51bWJlcnMgd2VyZVxuICAgICAgIHBpY2tlZCB0byBtYXRjaCB0aGUgcmVkIGRpYWxvZydzIHByb3BvcnRpb25zIGFsbW9zdCBleGFjdGx5LCBzbyB0aGUgdHdvIGRpYWxvZ3NcbiAgICAgICBmZWVsIGxpa2Ugb25lIGZhbWlseTogNTAwIGNhcnJpZXMgd2hpdGUgYXQgNC45MToxIChyZWQ6IDQuODMpLCBhbmQgOTAwIGlzIHRoZSBzb2xpZFxuICAgICAgIGJ1dHRvbiwgMy4zNToxIGF3YXkgZnJvbSB0aGUgc3VyZmFjZSAocmVkOiAzLjM0KSB3aXRoIHdoaXRlIGF0IDE0OjEgb24gaXQuXG4gICAgICAgMzAwIGlzIHRoZSBvcHRpb25hbCBiYWRnZSBjaXJjbGUsIGRlY29yYXRpdmUgb25seS4gKi9cbiAgICAtLWMtc3VjY2Vzcy05MDA6ICAgICAgICAgICAjMDQyNDFjO1xuICAgIC0tYy1zdWNjZXNzLTcwMDogICAgICAgICAgICMwYjRkMzg7XG4gICAgLS1jLXN1Y2Nlc3MtNTAwOiAgICAgICAgICAgIzEyODA1ZTtcbiAgICAtLWMtc3VjY2Vzcy0zMDA6ICAgICAgICAgICAjN2ZkOGI4O1xuICAgIC0tYy13YXJuaW5nLWJyaWdodC1iZzogICAgICNmZmYzY2Q7IC8qIHZpdmlkIHdhcm5pbmcgeWVsbG93IHNldCAodG9hc3QgcmVmZXJlbmNlKSAqL1xuICAgIC0tYy13YXJuaW5nLWJyaWdodC10ZXh0OiAgICM5YTZhMTA7XG4gICAgLS1jLXdhcm5pbmctYnJpZ2h0LWJvcmRlcjogI2YwZDA2MDtcblxuICAgIC8qIC0tLS0tLS0tLS0gV2FybmluZyAvIGRhbmdlciByYW1wIC0tLS0tLS0tLS0gKi9cbiAgICAtLWMtd2Fybi1hbWJlci01MDA6ICAjZDk3NzA2O1xuICAgIC0tYy13YXJuLWFtYmVyLTYwMDogICNiNDUzMDk7XG4gICAgLS1jLXdhcm4tb3JhbmdlLTUwMDogI2VhNTgwYztcbiAgICAtLWMtd2Fybi1vcmFuZ2UtNjAwOiAjYzI0MTBjO1xuICAgIC8qIDkwMC83MDAvNjAwIGFkZGVkIDE4LjA4LjIwMjYgZm9yIHRoZSBkYW5nZXIgZGlhbG9nIChxZG5hcHJvLWJvdHRvbS1zaGVldCAvXG4gICAgICAgLXBvcG92ZXIgdG9uZT1cImRhbmdlclwiKS4gS2ltIHBpY2tlZCByZWQtNDAwIGFzIHRoZSBzdXJmYWNlIGFuZCByZWQtMzAwIGZvciB0aGVcbiAgICAgICBpY29uIGJhZGdlIG9uIGl0OyB0aGUgcmFtcCBhbHJlYWR5IGhhZCBib3RoLiBXaGF0IGl0IGRpZCBOT1QgaGF2ZSBpcyBhbnl0aGluZ1xuICAgICAgIHJlYWRhYmxlIE9OIHRoYXQgc3VyZmFjZTogd2hpdGUgdGV4dCBzY29yZXMgMi43NzoxIGZvciB0aGUgdGl0bGUgYW5kIDIuMDU6MSBmb3JcbiAgICAgICB0aGUgYm9keSwgd2VsbCB1bmRlciB0aGUgMy4wIC8gNC41IEFBIGZsb29ycywgc28gdGhpcyBkaWFsb2cgcmVhZHMgZGFyay1vbi1saWdodFxuICAgICAgIGluc3RlYWQgb2YgdGhlIHB1cnBsZSBkaWFsb2cncyBsaWdodC1vbi1kYXJrLiByZWQtOTAwIGlzIHRoYXQgdGV4dCBjb2xvdXIgKDUuODRcbiAgICAgICB0aXRsZSAvIDQuNjAgYm9keSBhdCA4NSUpIGFuZCByZWQtNzAwIGlzIHRoZSBzb2xpZCBjb25maXJtIGJ1dHRvbiAoMTAuMDoxIHdpdGhcbiAgICAgICB3aGl0ZSBvbiBpdCkuIHJlZC02MDAgaXMgdGhlIG1pZC1zdGVwIHRoZSBwb3BvdmVyIGNsb3NlIGNpcmNsZSB1c2VzLlxuICAgICAgIFRoZSByYW1wIGFscmVhZHkgaGFkIGEgNjAwIGZvciBhbWJlciBhbmQgb3JhbmdlLCBzbyB0aG9zZSBvbmx5IGZpbGwgYSBnYXAuICovXG4gICAgLS1jLXdhcm4tcmVkLTkwMDogICAgIzQ1MGEwYTtcbiAgICAtLWMtd2Fybi1yZWQtNzAwOiAgICAjN2YxZDFkO1xuICAgIC0tYy13YXJuLXJlZC02MDA6ICAgICM5OTFiMWI7XG4gICAgLS1jLXdhcm4tcmVkLTUwMDogICAgI2RjMjYyNjtcbiAgICAtLWMtd2Fybi1yZWQtNDAwOiAgICAjZjg3MTcxO1xuICAgIC0tYy13YXJuLXJlZC0zMDA6ICAgICNmY2E1YTU7XG4gICAgLS1jLXdhcm4teWVsbG93LTUwMDogI2ZiYmYyNDtcbiAgICAtLWMtd2Fybi15ZWxsb3ctNjAwOiAjZjU5ZTBiO1xuXG4gICAgLyogLS0tLS0tLS0tLSBUb25lZCBkaWFsb2cgc3VyZmFjZXMgKHFkbmFwcm8tYm90dG9tLXNoZWV0IC8gLXBvcG92ZXIgdG9uZT3igKYpIC0tLS0tLS0tLS1cbiAgICAgICBLaW0ncyBvd24gY29sb3VyIHNldCBmb3IgdGhlIHRocmVlIHZlcmRpY3QgZGlhbG9ncyAoUHVsc2UgXCJDb3JyZWN0IVwiLCBcIkJlZXRqZSBnb2VkLFxuICAgICAgIGJlZXRqZSBmb3V0XCIsIFwiSGVsYWFzLCBuaWV0IGp1aXN0XCIpLCAwMy4wOS4yMDI2LiBPbmUgc3VyZmFjZSwgb25lIGNhcmQgZmlsbCAodGhlXG4gICAgICAgZGFya2VyIG9wdGlvbiBibG9ja3Mgb24gdGhlIHN1cmZhY2UpLCBvbmUgc29saWQgYnV0dG9uIGFuZCBvbmUgZ3JhYi1oYW5kbGUgY29sb3VyXG4gICAgICAgcGVyIHRvbmUuIFRoZXNlIHJlcGxhY2UgdGhlIGVhcmxpZXIgcmVkLTUwMC9zdWNjZXNzLTUwMCBkaWFsb2cgc3VyZmFjZXMgc28gRVZFUllcbiAgICAgICB0b25lZCBkaWFsb2cgaW4gdGhlIGFwcCByZWFkcyBhcyBvbmUgZmFtaWx5IHdpdGggdGhlIFB1bHNlIHNoZWV0cy4gVGhlIHdhcm5pbmdcbiAgICAgICB0b25lIGhhcyBhIHNlY29uZCBjYXJkIGZpbGwgZm9yIGFuIG9wdGlvbiB0aGF0IHdhcyBXUk9ORyAoYSB0b3VjaCByZWRkZXIgdGhhbiB0aGVcbiAgICAgICByaWdodCBvbmUpIC0gYSBkZWxpYmVyYXRlIGRlc2lnbiBjaG9pY2UsIG5vdCBhIHNsaXAuIENvbnRyYXN0IHdhcyBtZWFzdXJlZCBhbmRcbiAgICAgICBhY2NlcHRlZCBieSBLaW0gYXMtaXMgKGdyZWVuIHN1cmZhY2UgMi40OjEgZm9yIHRoZSAyOHB4IHRpdGxlLCBncmVlbiBjYXJkIDQuMToxXG4gICAgICAgZm9yIGJvZHkgdGV4dCk7IGRvIG5vdCBcImZpeFwiIHRoZXNlIG51bWJlcnMgd2l0aG91dCBoZXIuICovXG4gICAgLS1jLWRpYWxvZy1kYW5nZXItc3VyZmFjZTogICAgICAjZmYzYTMwO1xuICAgIC0tYy1kaWFsb2ctZGFuZ2VyLWNhcmQ6ICAgICAgICAgI2I1MjUxZTtcbiAgICAtLWMtZGlhbG9nLWRhbmdlci1idXR0b246ICAgICAgICNjYzJlMjY7XG4gICAgLS1jLWRpYWxvZy1kYW5nZXItZ3JhYjogICAgICAgICAjY2MyZTI2O1xuICAgIC0tYy1kaWFsb2ctc3VjY2Vzcy1zdXJmYWNlOiAgICAgIzU4Yjk5MjtcbiAgICAtLWMtZGlhbG9nLXN1Y2Nlc3MtY2FyZDogICAgICAgICM0MjhiNmU7XG4gICAgLS1jLWRpYWxvZy1zdWNjZXNzLWJ1dHRvbjogICAgICAjNDI4YjZlO1xuICAgIC0tYy1kaWFsb2ctc3VjY2Vzcy1ncmFiOiAgICAgICAgIzJmNWQ0YTtcbiAgICAtLWMtZGlhbG9nLXdhcm5pbmctc3VyZmFjZTogICAgICNlZjhlMDI7XG4gICAgLS1jLWRpYWxvZy13YXJuaW5nLWNhcmQ6ICAgICAgICAjYmY3MjAyO1xuICAgIC0tYy1kaWFsb2ctd2FybmluZy1jYXJkLXdyb25nOiAgI2JmNWEwMjtcbiAgICAtLWMtZGlhbG9nLXdhcm5pbmctYnV0dG9uOiAgICAgICNiZjcyMDI7XG4gICAgLS1jLWRpYWxvZy13YXJuaW5nLWdyYWI6ICAgICAgICAjOGY1NTAxO1xuXG4gICAgLyogLS0tLS0tLS0tLSBXaGl0ZSArIGJsYWNrIGFscGhhcyAtLS0tLS0tLS0tICovXG4gICAgLS1jLXdoaXRlLTA0OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xuICAgIC0tYy13aGl0ZS0wNjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTtcbiAgICAtLWMtd2hpdGUtMDg6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gICAgLS1jLXdoaXRlLTEwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTApO1xuICAgIC0tYy13aGl0ZS0xMjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgICAtLWMtd2hpdGUtMTQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCk7XG4gICAgLS1jLXdoaXRlLTIyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjIpO1xuICAgIC0tYy13aGl0ZS0yODogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI4KTtcbiAgICAtLWMtd2hpdGUtNDU6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40NSk7XG4gICAgLS1jLXdoaXRlLTU1OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTUpO1xuICAgIC0tYy13aGl0ZS02NTogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY1KTtcbiAgICAtLWMtd2hpdGUtNzA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43MCk7XG4gICAgLS1jLXdoaXRlLTg1OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpO1xuICAgIC0tYy13aGl0ZS05MDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkwKTtcblxuICAgIC0tYy1ibGFjay0wNjogcmdiYSgwLCAwLCAwLCAwLjA2KTtcbiAgICAtLWMtYmxhY2stMDg6IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gICAgLS1jLWJsYWNrLTEyOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICAgIC0tYy1ibGFjay0zMDogcmdiYSgwLCAwLCAwLCAwLjMwKTtcbiAgICAtLWMtYmxhY2stNDA6IHJnYmEoMCwgMCwgMCwgMC40MCk7XG4gICAgLS1jLWJsYWNrLTQ1OiByZ2JhKDAsIDAsIDAsIDAuNDUpO1xuXG4gICAgLyogLS0tLS0tLS0tLSBCcmFuZCBwdXJwbGUgYWxwaGFzIC0tLS0tLS0tLS0gKi9cbiAgICAtLWMtYWN0aW9uLTA4OiByZ2JhKDcwLCA4MiwgMjQzLCAwLjA4KTtcbiAgICAtLWMtYWN0aW9uLTEyOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjEyKTtcbiAgICAtLWMtYWN0aW9uLTE4OiByZ2JhKDcwLCA4MiwgMjQzLCAwLjE4KTtcbiAgICAtLWMtYWN0aW9uLTIyOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjIyKTtcbiAgICAtLWMtYWN0aW9uLTI1OiByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbiAgICAtLWMtYWN0aW9uLTMwOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjMwKTtcbiAgICAtLWMtYWN0aW9uLTQwOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjQwKTtcbiAgICAtLWMtYWN0aW9uLTUwOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjUwKTtcbiAgICAtLWMtYWN0aW9uLTcwOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjcwKTtcblxuICAgIC0tYy1wdXJwbGUtc29mdC0xMjogcmdiYSg2NCwgNzMsIDE1NCwgMC4xMik7XG4gICAgLS1jLXB1cnBsZS1zb2Z0LTE4OiByZ2JhKDY0LCA3MywgMTU0LCAwLjE4KTtcblxuICAgIC0tYy1wdXJwbGUtMjAwLTMwOiByZ2JhKDE2NSwgMTcyLCAyNTUsIDAuMzApO1xuICAgIC0tYy1wdXJwbGUtMjAwLTUwOiByZ2JhKDE2NSwgMTcyLCAyNTUsIDAuNTApO1xuXG4gICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgICAgTEFZRVIgQiDigJQgU2VtYW50aWMgdG9rZW5zIChMSUdIVClcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qIEJyYW5kICovXG4gICAgLS1jLWJyYW5kLXB1cnBsZTogICAgICAgIHZhcigtLWMtcHVycGxlLTUwMCk7XG4gICAgLS1jLWJyYW5kLXB1cnBsZS1ob3ZlcjogIHZhcigtLWMtcHVycGxlLTYwMCk7XG4gICAgLS1jLWJyYW5kLXB1cnBsZS1wcmVzczogIHZhcigtLWMtcHVycGxlLTcwMCk7XG4gICAgLS1jLXB1cnBsZS1oaWdobGlnaHQ6ICAgIHZhcigtLWMtYWN0aW9uLTUwMCk7XG5cbiAgICAvKiBTdXJmYWNlcyAqL1xuICAgIC8qIFdhcyAjZWJlZGZiLCBidXQgaHRtbC9ib2R5IHNoaXBwZWQgI2U2ZTlmZiB2aWEgYSBTQ1NTIHZhcmlhYmxlLCBzbyB0d29cbiAgICAgICBuZWFyLWlkZW50aWNhbCBwYWdlIHB1cnBsZXMgbGl2ZWQgc2lkZSBieSBzaWRlICg1MiB1c2VzIG9mICNlNmU5ZmZcbiAgICAgICBhZ2FpbnN0IDUgb2YgdGhlIHRva2VuKS4gQWxpZ25lZCBPTiB0aGUgdmFsdWUgZXZlcnlvbmUgYWxyZWFkeSBzZWVzLCBzb1xuICAgICAgIHdpcmluZyB0aGUgcGFnZSBvbnRvIHRoaXMgdG9rZW4gY2hhbmdlZCBub3RoaW5nIHZpc3VhbGx5LiBUaGUgZml2ZVxuICAgICAgIHBsYWNlcyB0aGF0IGFscmVhZHkgdXNlZCB0aGUgdG9rZW4gc2hpZnQgYnkgfjIgcG9pbnRzIGFuZCBhcmUgbm93IGluXG4gICAgICAgc3RlcCB3aXRoIHRoZSByZXN0LiBbS2ltIDIwMjYtMDgtMDddICovXG4gICAgLS1jLWJnLXBhZ2U6ICAgICAgICAgICAgICNlNmU5ZmY7XG4gICAgLyogRcOpbiB0cmFwIERPTktFUkRFUiBkYW4gZGUgcGFnaW5hLCB2b29yIGVlbiB2bGFrIGRhdCBlZW4gcGFuZWVsIG1vZXQgemlqblxuICAgICAgIHpvbmRlciB3aXQgdGUgd29yZGVuOiBkZSBhdWRpdCB0cmFpbCBuYWFzdCBkZSB3aXR0ZSBwYW5lbGVuLiBIYWx2ZXJ3ZWdlXG4gICAgICAgLS1jLXB1cnBsZS01MCAoZGUgcGFnaW5hKSBlbiAtLWMtcHVycGxlLTEwMCAoI2MwYzVmZiksIHdhbnQgZGllIHZvbGdlbmRlXG4gICAgICAgdHJhcCBpbiBkZSBzY2hhYWwgaXMgYWxzIGdyb290IHZsYWsgdGUgdmVyemFkaWdkLiBWdWxkZSBlZW4gZ2F0OiBoaWVydm9vclxuICAgICAgIHdhcyBkZSBlbmlnZSB0aW50IGhpZXJ0dXNzZW4gLS1jLWJvcmRlci10cmVlLWJyaWdodCwgZWVuIFJBTkQtdG9rZW4uXG4gICAgICAgW0tpbSAxMC4wOC4yMDI2XSAqL1xuICAgIC0tYy1iZy1wYWdlLXN1bmtlbjogICAgICAjZGRlMGY3O1xuICAgIC0tYy1iZy1jYXJkOiAgICAgICAgICAgICAjZmZmZmZmO1xuICAgIC0tYy1iZy1jYXJkLWhvdmVyOiAgICAgICAjZjdmOGZhO1xuICAgIC0tYy1iZy1zZWNvbmRhcnktcHVycGxlOiB2YXIoLS1jLXB1cnBsZS01MCk7XG4gICAgLS1jLWJnLXN1YnRsZS1wdXJwbGU6ICAgICNmM2Y1ZmY7XG4gICAgLS1jLWJnLXN1YnRsZS1ob3ZlcjogICAgIHZhcigtLWMtZ3JleS01MCk7XG5cbiAgICAvKiBPdmVybGF5IGZyYW1lXG4gICAgICAgRGUgc2NoaWwgZGllIEVMSyBnZWNlbnRyZWVyZCB2ZW5zdGVyIGRyYWFndDogYHFkbmFwcm8tbW9kYWxgIGVuIGRlXG4gICAgICAgemVsZnN0YW5kaWdlIG92ZXJsYXlzIGRpZSBgLnFvcy0qYCBnZWJydWlrZW4gKHppZVxuICAgICAgIGNvbXBvbmVudHMvdjIvb3ZlcmxheS1zaGVsbC9fb3ZlcmxheS1zaGVsbC5zY3NzKS4gWmUgbGV6ZW4gZGV6ZWxmZGVcbiAgICAgICB0b2tlbnMsIHpvZGF0IGRlIGZyYW1lcyBuaWV0IG1lZXIgbG9zIHZhbiBlbGthYXIga3VubmVuIGRyaWp2ZW4gem9hbHMgZGVcbiAgICAgICBtZXQtZGUtaGFuZC1nZWtvcGllZXJkZSB2ZXJzaWVzIGRlZGVuOiB2aWpmIGtvcGllZW4sIHZpamYgdmVyc2NoaWxsZW5kZVxuICAgICAgIHNjcmltcyBlbiB6LWluZGV4ZW4uIFtLaW0gMTkuMDguMjAyNl0gKi9cbiAgICAtLW92ZXJsYXktejogICAgICAgICAgICAgOTAwMDtcbiAgICAvKiBHZW9wZW5kIFZBTlVJVCBlZW4gYW5kZXIgdmVuc3RlciAoZm9ybXVsZS1ib3V3ZXIsIG9wbWFha3JlZ2Vscyk6IG1vZXRcbiAgICAgICBib3ZlbiBkZSBcImFsdGlqZCBib3Zlbm9wXCItbGFhZyB2YW4gZGUgZmxvd2VkaXRvciAoOTMwMCkgdWl0a29tZW4sIGFuZGVyc1xuICAgICAgIGxhbmR0IGhpaiBBQ0hURVIgZGUgbW9kYWwgd2FhcnVpdCBqZSBoZW0gbmV0IG9wZW5kZS4gR2VtZXRlbiwgbmlldFxuICAgICAgIGFhbmdlbm9tZW47IGRlIHVpdGxlZyBzdGFhdCBpbiBfZm9ybXVsYS1lZGl0b3Iuc2Nzcy4gKi9cbiAgICAtLW92ZXJsYXktei1uZXN0ZWQ6ICAgICAgOTQwMDtcbiAgICAtLW92ZXJsYXktc2NyaW06ICAgICAgICAgcmdiYSgxMSwgMTEsIDEzLCAwLjQ1KTtcbiAgICAtLW92ZXJsYXktZnJhbWUtYmc6ICAgICAgdmFyKC0tYy1ncmV5LTUwKTtcbiAgICAtLW92ZXJsYXktZnJhbWUtYm9yZGVyOiAgI2ZmZmZmZjtcbiAgICAtLW92ZXJsYXktZnJhbWUtcmFkaXVzOiAgMTZweDtcbiAgICAtLW92ZXJsYXktZnJhbWUtc2hhZG93OiAgMCA0cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4zMCksIDAgOHB4IDEycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gICAgLS1vdmVybGF5LXdpbmRvdy1iZzogICAgIHZhcigtLWMtYmctY2FyZCk7XG4gICAgLS1vdmVybGF5LXdpbmRvdy1ib3JkZXI6IHZhcigtLWMtZ3JleS0zMDApO1xuICAgIC0tb3ZlcmxheS13aW5kb3ctcmFkaXVzOiAxMnB4O1xuXG4gICAgLyogU2lkZWJhciAqL1xuICAgIC0tYy1zaWRlYmFyLWJnOiAgICAgICAgICAjM2E0MjkwO1xuICAgIC0tYy1zaWRlYmFyLWJnLWFjdGl2ZTogICAjZmZmZmZmO1xuICAgIC0tYy1zaWRlYmFyLWljb246ICAgICAgICAjYzVjOWViO1xuICAgIC0tYy1zaWRlYmFyLWljb24tYWN0aXZlOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgLS1jLXNpZGViYXItYWN0aXZlLWJnOiAgICNmZmZmZmY7XG5cbiAgICAvKiBUZXh0ICovXG4gICAgLS1jLXRleHQtYm9keTogICAgICAgICAgIHZhcigtLWMtZ3JleS05NTApO1xuICAgIC0tYy10ZXh0LW11dGVkOiAgICAgICAgICAjNmU3MjgwO1xuICAgIC0tYy10ZXh0LWRpc2FibGVkOiAgICAgICAjODk4ZTk5O1xuICAgIC0tYy10ZXh0LWRpc2FibGVkLXBwOiAgICAjOGM5MmMyO1xuICAgIC0tYy10ZXh0LWhlYWRpbmc6ICAgICAgICAjMWExZjRkO1xuICAgIC0tYy10ZXh0LW9uLWFjdGlvbjogICAgICAjZmZmZmZmO1xuXG4gICAgLyogVGFnIGNvbG91cnMgKi9cbiAgICAtLWMtdGFnLWhhbmRvdmVyLWJnOiAgICAgI2U3ZGVmYjtcbiAgICAtLWMtdGFnLWhhbmRvdmVyLXRleHQ6ICAgIzZiM2ZiODtcbiAgICAtLWMtdGFnLWNyaXRpY2FsLWJnOiAgICAgI2ZmZTFkZTtcbiAgICAtLWMtdGFnLWNyaXRpY2FsLXRleHQ6ICAgI2MzM2EzMDtcbiAgICAtLWMtdGFnLWRlYWRsaW5lLWJnOiAgICAgI2ZmZTJkYztcbiAgICAtLWMtdGFnLWRlYWRsaW5lLXRleHQ6ICAgI2MzM2EzMDtcbiAgICAtLWMtdGFnLXdhcm5pbmctYmc6ICAgICAgI2ZmZjJkNjtcbiAgICAtLWMtdGFnLXdhcm5pbmctdGV4dDogICAgI2EwNjQwMDtcbiAgICAtLWMtdGFnLW5ldy1iZzogICAgICAgICAgdmFyKC0tYy1zaWduYWwtZ3JlZW4tMTAwKTtcbiAgICAtLWMtdGFnLW5ldy10ZXh0OiAgICAgICAgIzFmN2E0ODtcblxuICAgIC8qIENoaXAgcGFsZXR0ZSAtIHRoZSAxNiBjb2xvdXIgZmFtaWxpZXMgb2YgcWRuYXByby10YWcuXG4gICAgICAgVGhlc2UgbGl2ZWQgYXMgODggbG9vc2UgaGV4IHZhbHVlcyBpbnNpZGUgX3RhZy5zY3NzIHdoaWxlIGxhYmVsLWNpcmNsZSxcbiAgICAgICBhY3Rpdml0eS1jYXJkLCBudW1iZXItaW5kaWNhdG9yLWJhZGdlLCBncmlkLXRpbGUsIGxpc3Qtcm93IGFuZCBwaWNrZXItcm93XG4gICAgICAgcmV0eXBlZCB0aGUgc2FtZSB2YWx1ZXMuIFByb21vdGVkIHRvIHRva2VucyBzbyB0aGVyZSBpcyBvbmUgc291cmNlLlxuICAgICAgIEZhbWlseSBuYW1lcyBhcmUgdGFrZW4gdmVyYmF0aW0gZnJvbSB0aGUgY29tcG9uZW50J3MgdGFnLWNvbG9yLSogY2xhc3NlcyxcbiAgICAgICBpbmNsdWRpbmcgdGhlIGluY29uc2lzdGVudCBvbmVzIChicmlnaHQtYmx1ZS0yLCBkYXJrLXBpbmssIGRhcmstcHVycGxlKS5cbiAgICAgICBbS2ltIDIwMjYtMDgtMDddICovXG4gICAgLS1jLWNoaXAtZ3JleS1iZzogICAgICAgICAgICAgIHZhcigtLWMtZ3JleS01MCk7XG4gICAgLS1jLWNoaXAtZ3JleS1ob3ZlcjogICAgICAgICAgIHZhcigtLWMtYm9yZGVyLWNhcmQpO1xuICAgIC0tYy1jaGlwLWdyZXktdGV4dDogICAgICAgICAgICAjMWUxZjIwO1xuICAgIC0tYy1jaGlwLWdyZXktMi1iZzogICAgICAgICAgICB2YXIoLS1jLWdyZXktMzAwKTtcbiAgICAtLWMtY2hpcC1ncmV5LTItaG92ZXI6ICAgICAgICAgdmFyKC0tYy1ncmV5LTQwMCk7XG4gICAgLS1jLWNoaXAtZ3JleS0yLXRleHQ6ICAgICAgICAgICMxZTFmMjA7XG4gICAgLS1jLWNoaXAtcmVkLWJnOiAgICAgICAgICAgICAgIHZhcigtLWMtc2lnbmFsLXJlZC1iZyk7XG4gICAgLS1jLWNoaXAtcmVkLWhvdmVyOiAgICAgICAgICAgICNmY2M2YzY7XG4gICAgLS1jLWNoaXAtcmVkLXRleHQ6ICAgICAgICAgICAgICM2MzMwMzA7XG4gICAgLS1jLWNoaXAtcmVkLTItYmc6ICAgICAgICAgICAgICNmYmFhYWE7XG4gICAgLS1jLWNoaXAtcmVkLTItaG92ZXI6ICAgICAgICAgICNmOThkOGQ7XG4gICAgLS1jLWNoaXAtcmVkLTItdGV4dDogICAgICAgICAgICM2MzMwMzA7XG4gICAgLS1jLWNoaXAteWVsbG93LWJnOiAgICAgICAgICAgICNmZWY2ZGI7XG4gICAgLS1jLWNoaXAteWVsbG93LWhvdmVyOiAgICAgICAgIHZhcigtLWMtc2lnbmFsLXllbGxvdy1iZyk7XG4gICAgLS1jLWNoaXAteWVsbG93LXRleHQ6ICAgICAgICAgICM2NTU1MjI7XG4gICAgLS1jLWNoaXAteWVsbG93LTItYmc6ICAgICAgICAgICNmZGU1OTQ7XG4gICAgLS1jLWNoaXAteWVsbG93LTItaG92ZXI6ICAgICAgICNmZGRjNzE7XG4gICAgLS1jLWNoaXAteWVsbG93LTItdGV4dDogICAgICAgICM2NTU1MjI7XG4gICAgLS1jLWNoaXAtZ3JlZW4tYmc6ICAgICAgICAgICAgICNlMmZhZjE7XG4gICAgLS1jLWNoaXAtZ3JlZW4taG92ZXI6ICAgICAgICAgICNhOGYxZDQ7XG4gICAgLS1jLWNoaXAtZ3JlZW4tdGV4dDogICAgICAgICAgICMyZjVkNGE7XG4gICAgLS1jLWNoaXAtZ3JlZW4tMi1iZzogICAgICAgICAgICM4YmVjYzU7XG4gICAgLS1jLWNoaXAtZ3JlZW4tMi1ob3ZlcjogICAgICAgICM2ZWU3Yjc7XG4gICAgLS1jLWNoaXAtZ3JlZW4tMi10ZXh0OiAgICAgICAgICMyZjVkNGE7XG4gICAgLS1jLWNoaXAtYmx1ZS1iZzogICAgICAgICAgICAgIHZhcigtLWMtc2lnbmFsLWJsdWUtYmcpO1xuICAgIC0tYy1jaGlwLWJsdWUtaG92ZXI6ICAgICAgICAgICAjY2VkZWYzO1xuICAgIC0tYy1jaGlwLWJsdWUtdGV4dDogICAgICAgICAgICAjMzc0NzVhO1xuICAgIC0tYy1jaGlwLWJsdWUtMi1iZzogICAgICAgICAgICAjYjVjZWVkO1xuICAgIC0tYy1jaGlwLWJsdWUtMi1ob3ZlcjogICAgICAgICAjOWRiZGU3O1xuICAgIC0tYy1jaGlwLWJsdWUtMi10ZXh0OiAgICAgICAgICAjMzc0NzVhO1xuICAgIC0tYy1jaGlwLWJyaWdodC1ibHVlLWJnOiAgICAgICAjODVhMWVjO1xuICAgIC0tYy1jaGlwLWJyaWdodC1ibHVlLWhvdmVyOiAgICAjNWQ4MmU1O1xuICAgIC0tYy1jaGlwLWJyaWdodC1ibHVlLXRleHQ6ICAgICAjMTkyYTVhO1xuICAgIC0tYy1jaGlwLWJyaWdodC1ibHVlLTItYmc6ICAgICAjZDZlMGY5O1xuICAgIC0tYy1jaGlwLWJyaWdodC1ibHVlLTItaG92ZXI6ICAjYWVjMWYyO1xuICAgIC0tYy1jaGlwLWJyaWdodC1ibHVlLTItdGV4dDogICAjMTkyYTVhO1xuICAgIC0tYy1jaGlwLXBpbmstYmc6ICAgICAgICAgICAgICB2YXIoLS1jLXNpZ25hbC1waW5rLWJnKTtcbiAgICAtLWMtY2hpcC1waW5rLWhvdmVyOiAgICAgICAgICAgI2VlYzNkMDtcbiAgICAtLWMtY2hpcC1waW5rLXRleHQ6ICAgICAgICAgICAgIzU2MmQzYTtcbiAgICAtLWMtY2hpcC1kYXJrLXBpbmstYmc6ICAgICAgICAgI2U1YTZiOTtcbiAgICAtLWMtY2hpcC1kYXJrLXBpbmstaG92ZXI6ICAgICAgI2RkODhhMTtcbiAgICAtLWMtY2hpcC1kYXJrLXBpbmstdGV4dDogICAgICAgIzU2MmQzYTtcbiAgICAtLWMtY2hpcC1wdXJwbGUtYmc6ICAgICAgICAgICAgI2ViZTlmYjtcbiAgICAtLWMtY2hpcC1wdXJwbGUtaG92ZXI6ICAgICAgICAgI2Q4ZDJmNztcbiAgICAtLWMtY2hpcC1wdXJwbGUtdGV4dDogICAgICAgICAgIzQxM2I1ZTtcbiAgICAtLWMtY2hpcC1kYXJrLXB1cnBsZS1iZzogICAgICAgI2M0YmNmMztcbiAgICAtLWMtY2hpcC1kYXJrLXB1cnBsZS1ob3ZlcjogICAgI2IxYTVlZjtcbiAgICAtLWMtY2hpcC1kYXJrLXB1cnBsZS10ZXh0OiAgICAgIzQxM2I1ZTtcblxuICAgIC8qIC0tLS0tLS0tLS0gQmF0dGxlIHBhbGV0dGUgKFB1bHNlIGdhbWlmaWNhdGlvbiBiYXR0bGVzKSAtLS0tLS0tLS0tXG4gICAgICAgQk9BUkQtcHVsc2UtZ2FtaWZpY2F0aW9uLWJhdHRsZXMsIGJlc2x1aXQgMjcvMzZjIChrYWFydCAxM2EsIGFcbiAgICAgICByZXBhaXIgY2FyZCBvZmYgdGhlIGthYXJ0IDE3IHZlcmlmaWNhdGlvbikuIFRlYW0gY29sb3VycyBhcmUgYVxuICAgICAgIEZJWEVELCBjb250cmFzdGluZyBwYWxldHRlIGFzc2lnbmVkIGJ5IGNvbG91cl9pbmRleCAoMCwgMSwgMiwgLi4uKSAtXG4gICAgICAgbmV2ZXIgdXNlci1waWNrZWQsIG5ldmVyIHJldXNlZCBhcyBhIHNlbWFudGljIGNvbG91ciBlbHNld2hlcmUuXG4gICAgICAgUG9kaXVtIGNvbG91cnMgYXJlIGZpeGVkIEJZIFBMQUNFOiBhbWJlciAoMXN0KSwgdGVhbCAoMm5kKSwgY29yYWxcbiAgICAgICAoM3JkKTsgZ29sZCBpcyBhbiBhY2NlbnQgb25seSwgbm90IGEgNHRoIHBvZGl1bSBjb2xvdXIuXG4gICAgICAgTm8gZGVkaWNhdGVkIFwiYmF0dGxlXCIgcHJpbWl0aXZlcyBleGlzdCBpbiBGaWdtYSwgc28gZXZlcnkgdG9rZW5cbiAgICAgICBiZWxvdyBwb2ludHMgYXQgdGhlIGNsb3Nlc3QgRVhJU1RJTkcgcHJpbWl0aXZlL2NoaXAgY29sb3VyIChjaGlwLVxuICAgICAgIHBhbGV0dGUgcnVsZTogbmV2ZXIgYSByYXcgaGV4KS4gVGhlIGhleCB2YWx1ZSBpbiBlYWNoIGNvbW1lbnQgaXMgdGhlXG4gICAgICAgQ1VSUkVOVCByZXNvbHZlZCB2YWx1ZSBvZiB0aGF0IHByaW1pdGl2ZSwgbm90IGEgbmV3IGxpdGVyYWwgaGVyZS5cbiAgICAgICBEaXN0YW5jZXMgbWVudGlvbmVkIGluIHRoZSBoYW5kLW9mZiByZXBvcnQgYXJlIHBsYWluIFJHQiBFdWNsaWRlYW5cbiAgICAgICBkaXN0YW5jZSwgdXNlZCBvbmx5IHRvIHJlYXNvbiBhYm91dCBtdXR1YWwgY29udHJhc3QgLSBub3QgYSBmb3JtYWxcbiAgICAgICBjb2xvdXItc2NpZW5jZSBwYXNzLCBzbyB0cmVhdCB0aGUgZXhhY3QgcGlja3MgYXMgYSBqdWRnZW1lbnQgY2FsbCxcbiAgICAgICBub3QgYSB2ZXJpZmllZCBkZXNpZ25lci1zdXBwbGllZCBoZXguICovXG4gICAgLS1jLWJhdHRsZS10ZWFtLTA6ICB2YXIoLS1jLXB1cnBsZS0zMDApOyAgICAgICAgLyogIzhhOTJkMCAtIGxhdmVuZGVyL3Zpb2xldDsgY2xvc2VzdCBleGlzdGluZyB0b2tlbiB0byB0aGUgZGVzaWduJ3MgdGVhbS1BIHJlZmVyZW5jZSAofiM3Rjc3REQpICovXG4gICAgLS1jLWJhdHRsZS10ZWFtLTE6ICB2YXIoLS1jLXN1Y2Nlc3MtYnJpZ2h0KTsgICAgLyogIzFkOWU3NSAtIHRlYWwvZ3JlZW47IGNsb3Nlc3QgZXhpc3RpbmcgdG9rZW4gdG8gdGhlIGRlc2lnbidzIHRlYW0tQiByZWZlcmVuY2UgKH4jMkZBOThCKSAqL1xuICAgIC0tYy1iYXR0bGUtdGVhbS0yOiAgdmFyKC0tYy13YXJuLW9yYW5nZS01MDApOyAgIC8qICNlYTU4MGMgLSBvcmFuZ2U7IGZhciBmcm9tIHRlYW0gMC8xIGluIGh1ZSAqL1xuICAgIC0tYy1iYXR0bGUtdGVhbS0zOiAgdmFyKC0tYy13YXJuLXllbGxvdy01MDApOyAgIC8qICNmYmJmMjQgLSB5ZWxsb3csIGRlbGliZXJhdGVseSBtdWNoIExJR0hURVIgdGhhbiB0ZWFtIDIgc28gdGhlIHBhaXIgc3RpbGwgcmVhZHMgYXBhcnQgdW5kZXIgbW9zdCBjb2xvdXItdmlzaW9uIGRlZmljaWVuY2llcywgbm90IGp1c3QgYnkgaHVlICovXG4gICAgLS1jLWJhdHRsZS10ZWFtLTQ6ICB2YXIoLS1jLWNoaXAtZGFyay1waW5rLWJnKTsgLyogI2U1YTZiOSAtIHBpbmsvcm9zZTsgYWxzbyB0aGUgb25seSB0ZWFtIGNvbG91ciB3aXRoIGEgZ2VudWluZSBkYXJrLW1vZGUgdmFsdWUsIGluaGVyaXRlZCBmb3IgZnJlZSBmcm9tIHRoZSBjaGlwIHBhbGV0dGUgYWJvdmUgKi9cbiAgICAtLWMtYmF0dGxlLXRlYW0tNTogIHZhcigtLWMtZ3JleS02MDApOyAgICAgICAgICAvKiAjNTY1YjY2IC0gbmV1dHJhbCBncmV5OyBjYXJyaWVzIG5vIGh1ZSBhdCBhbGwsIHNvIGl0IHN0YXlzIGRpc3Rpbmd1aXNoYWJsZSBmcm9tIGV2ZXJ5IG90aGVyIHRlYW0gcmVnYXJkbGVzcyBvZiBjb2xvdXIgdmlzaW9uICovXG5cbiAgICAtLWMtYmF0dGxlLXBvZGl1bS0xOiAgICAgdmFyKC0tYy13YXJuLWFtYmVyLTUwMCk7IC8qICNkOTc3MDYgLSBhbWJlciAoMXN0IHBsYWNlKSAqL1xuICAgIC0tYy1iYXR0bGUtcG9kaXVtLTEtaW5rOiB2YXIoLS1jLXB1cnBsZS03MDApOyAgICAgLyogZGFyayBpbmsgb24gdGhlIGFtYmVyIGZpbGw7IHRoZSB3YXJuaW5nIHJhbXAgaGFzIG5vIGRlZGljYXRlZCBcImlua1wiIHBhaXIgb2YgaXRzIG93biAqL1xuICAgIC0tYy1iYXR0bGUtcG9kaXVtLTI6ICAgICB2YXIoLS1jLXN1Y2Nlc3MtNTAwKTsgICAgLyogIzEyODA1ZSAtIHRlYWwgKDJuZCBwbGFjZSkgKi9cbiAgICAtLWMtYmF0dGxlLXBvZGl1bS0yLWluazogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7IC8qIHdoaXRlIGluazsgc3VjY2Vzcy01MDAgaXMgZGFyayBlbm91Z2ggdG8gbmVlZCBpdCAqL1xuICAgIC0tYy1iYXR0bGUtcG9kaXVtLTM6ICAgICB2YXIoLS1jLWZhdm9yaXRlLWhlYXJ0KTsgLyogI2ZmNGQ2YSAtIGNsb3Nlc3QgZXhpc3RpbmcgdG9rZW4gdG8ga29yYWFsIChubyBjb3JhbCBwcmltaXRpdmUgZXhpc3RzIGluIHRoaXMgZmlsZSk7IHN0aWxsIHRoZSBsZWFzdC1iYWQgYXBwcm94aW1hdGlvbiwgbm90IGEgdmVyaWZpZWQgZXhhY3QgbWF0Y2ggKi9cbiAgICAtLWMtYmF0dGxlLXBvZGl1bS0zLWluazogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7IC8qIHdoaXRlIGluazsgZmF2b3JpdGUtaGVhcnQgaXMgZGFyayBlbm91Z2ggdG8gbmVlZCBpdCAqL1xuXG4gICAgLyogQm9yZGVycyAqL1xuICAgIC0tYy1ib3JkZXItc29mdDogICAgICAgICByZ2JhKDAsIDAsIDAsIDAuMDcpO1xuICAgIC0tYy1ib3JkZXItc29mdC0yOiAgICAgICAjZTZlOWVmO1xuICAgIC0tYy1ib3JkZXItY2FyZDogICAgICAgICAjZTFlM2U2O1xuICAgIC0tYy1ib3JkZXItdHJlZTogICAgICAgICAjZDRkOGVjO1xuICAgIC0tYy1ib3JkZXItdHJlZS1icmlnaHQ6ICAjZDRkOGVlO1xuXG4gICAgLyogU2hhZG93cyAqL1xuICAgIC0tc2hhZG93LWNhcmQ6ICAgICAgICAgICAwIDFweCAycHggcmdiYSgyMCwgMjUsIDgwLCAwLjA0KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCA0cHggMTZweCByZ2JhKDIwLCAyNSwgODAsIDAuMDQpO1xuXG4gICAgLyogRm9jdXMgKi9cbiAgICAtLWZvY3VzLXJpbmc6ICAgICAgICAgICAgdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICAgIC0tZm9jdXMtZ2xvdzogICAgICAgICAgICB2YXIoLS1jLWFjdGlvbi0yNSk7XG5cbiAgICAvKiBSYWRpaSDigJQgNC1iYXNlZCBzY2FsZSAobWF0Y2hlcyB0aGUgc3BhY2luZyBzY2FsZSkuIFtLaW0gMjQuMDYuMjAyNl0gKi9cbiAgICAtLXItMTogNHB4O1xuICAgIC0tci0yOiA4cHg7XG4gICAgLS1yLTM6IDEycHg7XG4gICAgLS1yLTQ6IDE2cHg7XG4gICAgLS1yLTU6IDIwcHg7XG4gICAgLyogU2VtYW50aWMgcmFkaXVzIHRva2VucyBub3cgcmVmZXJlbmNlIHRoZSBzY2FsZSAod2VyZSBvZmYtc2NhbGUgOC8xMC8xNCkuXG4gICAgICAgTWlncmF0aW9uOiAtLXItcm93IDEw4oaSMTIsIC0tci1jYXJkIDE04oaSMTYuIEFmZmVjdHMgZXZlcnkgY29tcG9uZW50IHRoYXQgdXNlcyB0aGVtLiAqL1xuICAgIC0tci1idG46ICAgICB2YXIoLS1yLTIpO1xuICAgIC0tci1idXR0b246ICB2YXIoLS1yLTIpO1xuICAgIC0tci1yb3c6ICAgICB2YXIoLS1yLTMpO1xuICAgIC0tci1jYXJkOiAgICB2YXIoLS1yLTQpO1xuICAgIC0tci1waWxsOiAgICA5OTlweDtcblxuICAgIC8qIFNwYWNpbmcgc2NhbGUgKi9cbiAgICAtLXMtMTogNHB4O1xuICAgIC0tcy0yOiA4cHg7XG4gICAgLS1zLTM6IDEycHg7XG4gICAgLS1zLTQ6IDE2cHg7XG4gICAgLS1zLTU6IDIwcHg7XG4gICAgLS1zLTY6IDI0cHg7XG4gICAgLS1zLTc6IDMycHg7XG4gICAgLS1zLTg6IDQwcHg7XG5cbiAgICAvKiBUeXBvZ3JhcGh5ICovXG4gICAgLS1mZjogXCJJbnRlclwiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFwiU2Vnb2UgVUlcIiwgc2Fucy1zZXJpZjtcbiAgICAtLWZ3LXJlZ3VsYXI6IDQwMDtcbiAgICAtLWZ3LW1lZGl1bTogIDUwMDtcbiAgICAtLWZ3LXNlbWk6ICAgIDYwMDtcbn1cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIExBWUVSIEIg4oCUIFNlbWFudGljIHRva2VucyAoREFSSylcbiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgVHJpZ2dlcmVkIGJ5IEFOWSBvZjpcbiAgICAgW2RhdGEtdGhlbWUtZGFya10gICAgICAgICAgICAgIChib29sZWFuLCB1c2VkIGJ5IHRhc2tsaXN0IG9uIDxodG1sPilcbiAgICAgW2RhdGEtdGhlbWU9XCJkYXJrXCJdICAgICAgICAgICAgKHZhbHVlLCB1c2VkIGJ5IHNvbWUgY29tcG9uZW50cylcbiAgICAgYm9keVtkYXRhLXRoZW1lPVwiZGFya1wiXSAgICAgICAgKHZhbHVlLCB1c2VkIGJ5IGhvbWVwYWdlKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5bZGF0YS10aGVtZS1kYXJrXSxcbltkYXRhLXRoZW1lPVwiZGFya1wiXSxcbmJvZHlbZGF0YS10aGVtZT1cImRhcmtcIl0ge1xuICAgIC8qIEJyYW5kIChsaWZ0ZWQgZm9yIGRhcmsgY29udHJhc3QpICovXG4gICAgLS1jLWJyYW5kLXB1cnBsZTogICAgICAgIHZhcigtLWMtcHVycGxlLTIwMCk7XG4gICAgLS1jLWJyYW5kLXB1cnBsZS1ob3ZlcjogIHZhcigtLWMtcHVycGxlLTEwMCk7XG4gICAgLS1jLWJyYW5kLXB1cnBsZS1wcmVzczogIHZhcigtLWMtcHVycGxlLTMwMCk7XG4gICAgLS1jLXB1cnBsZS1oaWdobGlnaHQ6ICAgIHZhcigtLWMtYWN0aW9uLTUwMCk7XG5cbiAgICAvKiBTdXJmYWNlcyAqL1xuICAgIC0tYy1iZy1wYWdlOiAgICAgICAgICAgICB2YXIoLS1jLWdyZXktOTUwKTtcbiAgICAvKiBEb25rZXI6IGRlIHBhZ2luYWtsZXVyIGlzIGFsIGhldCBkaWVwc3RlIGdyaWpzLCBkdXMgXCJ2ZXJ6b25rZW5cIiBrYW4gZGFhclxuICAgICAgIG5pZXQgZG9ua2VyZGVyLiBIZXQgcGFuZWVsIGdhYXQgw6nDqW4gdHJhcCBPTUhPT0csIHdhdCBpbiBoZXQgZG9ua2VyXG4gICAgICAgaGV0emVsZmRlIGRvZXQ6IGhldCB2bGFrIGxvcyB6aWVuIHZhbiBkZSBwYWdpbmEuICovXG4gICAgLS1jLWJnLXBhZ2Utc3Vua2VuOiAgICAgIHZhcigtLWMtZ3JleS05MDApO1xuICAgIC0tYy1iZy1jYXJkOiAgICAgICAgICAgICB2YXIoLS1jLWdyZXktODAwKTtcbiAgICAtLWMtYmctY2FyZC1ob3ZlcjogICAgICAgdmFyKC0tYy1ncmV5LTcwMCk7XG4gICAgLS1jLWJnLXNlY29uZGFyeS1wdXJwbGU6IHZhcigtLWMtZ3JleS05NTApO1xuICAgIC0tYy1iZy1zdWJ0bGUtcHVycGxlOiAgICB2YXIoLS1jLWdyZXktOTAwKTtcbiAgICAtLWMtYmctc3VidGxlLWhvdmVyOiAgICAgdmFyKC0tYy1ncmV5LTYwMCk7XG5cbiAgICAvKiBPdmVybGF5IGZyYW1lIChkb25rZXIpIOKAlCBwcmVjaWVzIGRlIHdhYXJkZW4gZGllIGluIGhldCBkYXJrLWJsb2sgdmFuXG4gICAgICAgYHFkbmFwcm8tbW9kYWxgIHN0b25kZW4sIG51IG9wIGVlbiBwbGVrLiBMRVQgT1A6IGBxZG5hcHJvLXdpemFyZC1tb2RhbGBcbiAgICAgICBoYWQgaGllciBlaWdlbiwgYWZ3aWprZW5kZSB0aW50ZW4gKCMxZjIyMjkgLyAjMmEyZDM2KTsgZGllIHppam4gaGllcmluXG4gICAgICAgb3BnZWdhYW4sIGR1cyBlZW4gd2l6YXJkIHppZXQgZXIgaW4gaGV0IGRvbmtlciBudSB1aXQgYWxzIGVlbiBtb2RhbC4gKi9cbiAgICAtLW92ZXJsYXktc2NyaW06ICAgICAgICAgcmdiYSgwLCAwLCAwLCAwLjY1KTtcbiAgICAtLW92ZXJsYXktZnJhbWUtYmc6ICAgICAgIzJlMzAzNjtcbiAgICAtLW92ZXJsYXktZnJhbWUtYm9yZGVyOiAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgICAtLW92ZXJsYXktZnJhbWUtc2hhZG93OiAgMCA0cHggNHB4IHJnYmEoMCwgMCwgMCwgMC41MCksIDAgOHB4IDEycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4zMCk7XG4gICAgLS1vdmVybGF5LXdpbmRvdy1iZzogICAgICMzNjM5NDA7XG4gICAgLS1vdmVybGF5LXdpbmRvdy1ib3JkZXI6ICM1NjViNjY7XG5cbiAgICAvKiBTaWRlYmFyICovXG4gICAgLS1jLXNpZGViYXItYmc6ICAgICAgICAgIHZhcigtLWMtZ3JleS04MDApO1xuICAgIC0tYy1zaWRlYmFyLWJnLWFjdGl2ZTogICB2YXIoLS1jLWdyZXktNzAwKTtcbiAgICAtLWMtc2lkZWJhci1pY29uOiAgICAgICAgdmFyKC0tYy1ncmV5LTMwMCk7XG4gICAgLS1jLXNpZGViYXItaWNvbi1hY3RpdmU6ICNmZmZmZmY7XG4gICAgLS1jLXNpZGViYXItYWN0aXZlLWJnOiAgIHZhcigtLWMtZ3JleS03MDApO1xuXG4gICAgLyogVGV4dCAqL1xuICAgIC0tYy10ZXh0LWJvZHk6ICAgICAgICAgICB2YXIoLS1jLWdyZXktNTApO1xuICAgIC0tYy10ZXh0LW11dGVkOiAgICAgICAgICB2YXIoLS1jLWdyZXktNDAwKTtcbiAgICAtLWMtdGV4dC1kaXNhYmxlZDogICAgICAgdmFyKC0tYy1ncmV5LTUwMCk7XG4gICAgLS1jLXRleHQtZGlzYWJsZWQtcHA6ICAgIHZhcigtLWMtZ3JleS01MDApO1xuICAgIC0tYy10ZXh0LWhlYWRpbmc6ICAgICAgICB2YXIoLS1jLWdyZXktNTApO1xuICAgIC0tYy10ZXh0LW9uLWFjdGlvbjogICAgICAjZmZmZmZmO1xuXG4gICAgLyogQm9yZGVycyAqL1xuICAgIC0tYy1ib3JkZXItc29mdDogICAgICAgICB2YXIoLS1jLXdoaXRlLTA4KTtcbiAgICAtLWMtYm9yZGVyLXNvZnQtMjogICAgICAgdmFyKC0tYy13aGl0ZS0wOCk7XG4gICAgLS1jLWJvcmRlci1jYXJkOiAgICAgICAgIHZhcigtLWMtd2hpdGUtMTApO1xuICAgIC0tYy1ib3JkZXItdHJlZTogICAgICAgICB2YXIoLS1jLXdoaXRlLTEyKTtcbiAgICAtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0OiAgdmFyKC0tYy13aGl0ZS0xMik7XG5cbiAgICAvKiBTaGFkb3dzICovXG4gICAgLS1zaGFkb3ctY2FyZDogICAgICAgICAgIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNDApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwIDRweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC40MCk7XG5cbiAgICAvKiBDaGlwIHBhbGV0dGUgKGRhcmspIC0gc2FtZSAxNiBmYW1pbGllcywgb3duIGRhcmsgdmFsdWVzLlxuICAgICAgIE1vc3QgYXJlIGdlbnVpbmVseSBuZXcgY29sb3VycyB0aGF0IGV4aXN0IG5vd2hlcmUgaW4gTEFZRVIgQSxcbiAgICAgICBzbyB1bmxpa2UgdGhlIHJlc3Qgb2YgdGhpcyBibG9jayB0aGV5IGFyZSBsaXRlcmFsIGhleC4gKi9cbiAgICAtLWMtY2hpcC1ncmV5LWJnOiAgICAgICAgICAgICAgdmFyKC0tYy1ncmV5LTYwMCk7XG4gICAgLS1jLWNoaXAtZ3JleS1ob3ZlcjogICAgICAgICAgICM2YjcxODA7XG4gICAgLS1jLWNoaXAtZ3JleS10ZXh0OiAgICAgICAgICAgICNlMWUzZTY7XG4gICAgLS1jLWNoaXAtZ3JleS0yLWJnOiAgICAgICAgICAgIHZhcigtLWMtZ3JleS03MDApO1xuICAgIC0tYy1jaGlwLWdyZXktMi1ob3ZlcjogICAgICAgICAjNTQ1OTZiO1xuICAgIC0tYy1jaGlwLWdyZXktMi10ZXh0OiAgICAgICAgICAjZTFlM2U2O1xuICAgIC0tYy1jaGlwLXJlZC1iZzogICAgICAgICAgICAgICAjNWEyYjJiO1xuICAgIC0tYy1jaGlwLXJlZC1ob3ZlcjogICAgICAgICAgICAjN2EzODM4O1xuICAgIC0tYy1jaGlwLXJlZC10ZXh0OiAgICAgICAgICAgICAjZmJhYWFhO1xuICAgIC0tYy1jaGlwLXJlZC0yLWJnOiAgICAgICAgICAgICAjN2EzODM4O1xuICAgIC0tYy1jaGlwLXJlZC0yLWhvdmVyOiAgICAgICAgICAjOWE0NzQ3O1xuICAgIC0tYy1jaGlwLXJlZC0yLXRleHQ6ICAgICAgICAgICB2YXIoLS1jLXNpZ25hbC1yZWQtYmcpO1xuICAgIC0tYy1jaGlwLXllbGxvdy1iZzogICAgICAgICAgICAjNWE0ZDFmO1xuICAgIC0tYy1jaGlwLXllbGxvdy1ob3ZlcjogICAgICAgICAjN2E2YjJkO1xuICAgIC0tYy1jaGlwLXllbGxvdy10ZXh0OiAgICAgICAgICAjZmRlNTk0O1xuICAgIC0tYy1jaGlwLXllbGxvdy0yLWJnOiAgICAgICAgICAjN2E2YjJkO1xuICAgIC0tYy1jaGlwLXllbGxvdy0yLWhvdmVyOiAgICAgICAjOWE4YTNiO1xuICAgIC0tYy1jaGlwLXllbGxvdy0yLXRleHQ6ICAgICAgICAjZmVmNmRiO1xuICAgIC0tYy1jaGlwLWdyZWVuLWJnOiAgICAgICAgICAgICAjMmE1NTQ0O1xuICAgIC0tYy1jaGlwLWdyZWVuLWhvdmVyOiAgICAgICAgICAjM2Q3YTYyO1xuICAgIC0tYy1jaGlwLWdyZWVuLXRleHQ6ICAgICAgICAgICAjOGJlY2M1O1xuICAgIC0tYy1jaGlwLWdyZWVuLTItYmc6ICAgICAgICAgICAjM2Q3YTYyO1xuICAgIC0tYy1jaGlwLWdyZWVuLTItaG92ZXI6ICAgICAgICAjNGQ5YzdjO1xuICAgIC0tYy1jaGlwLWdyZWVuLTItdGV4dDogICAgICAgICAjZTJmYWYxO1xuICAgIC0tYy1jaGlwLWJsdWUtYmc6ICAgICAgICAgICAgICAjMmUzZTU0O1xuICAgIC0tYy1jaGlwLWJsdWUtaG92ZXI6ICAgICAgICAgICAjNDQ1YTc4O1xuICAgIC0tYy1jaGlwLWJsdWUtdGV4dDogICAgICAgICAgICAjYjVjZWVkO1xuICAgIC0tYy1jaGlwLWJsdWUtMi1iZzogICAgICAgICAgICAjNDQ1YTc4O1xuICAgIC0tYy1jaGlwLWJsdWUtMi1ob3ZlcjogICAgICAgICAjNWE3NTk2O1xuICAgIC0tYy1jaGlwLWJsdWUtMi10ZXh0OiAgICAgICAgICB2YXIoLS1jLXNpZ25hbC1ibHVlLWJnKTtcbiAgICAtLWMtY2hpcC1icmlnaHQtYmx1ZS1iZzogICAgICAgIzNhNGE4YTtcbiAgICAtLWMtY2hpcC1icmlnaHQtYmx1ZS1ob3ZlcjogICAgIzRkNWZhZTtcbiAgICAtLWMtY2hpcC1icmlnaHQtYmx1ZS10ZXh0OiAgICAgI2Q2ZTBmOTtcbiAgICAtLWMtY2hpcC1icmlnaHQtYmx1ZS0yLWJnOiAgICAgIzJhMzU2MDtcbiAgICAtLWMtY2hpcC1icmlnaHQtYmx1ZS0yLWhvdmVyOiAgIzNhNGE4YTtcbiAgICAtLWMtY2hpcC1icmlnaHQtYmx1ZS0yLXRleHQ6ICAgIzg1YTFlYztcbiAgICAtLWMtY2hpcC1waW5rLWJnOiAgICAgICAgICAgICAgIzRlMmEzNjtcbiAgICAtLWMtY2hpcC1waW5rLWhvdmVyOiAgICAgICAgICAgIzZlM2Q1MDtcbiAgICAtLWMtY2hpcC1waW5rLXRleHQ6ICAgICAgICAgICAgI2U1YTZiOTtcbiAgICAtLWMtY2hpcC1kYXJrLXBpbmstYmc6ICAgICAgICAgIzZlM2Q1MDtcbiAgICAtLWMtY2hpcC1kYXJrLXBpbmstaG92ZXI6ICAgICAgIzhhNTE2YTtcbiAgICAtLWMtY2hpcC1kYXJrLXBpbmstdGV4dDogICAgICAgdmFyKC0tYy1zaWduYWwtcGluay1iZyk7XG4gICAgLS1jLWNoaXAtcHVycGxlLWJnOiAgICAgICAgICAgICMzYTM1NTU7XG4gICAgLS1jLWNoaXAtcHVycGxlLWhvdmVyOiAgICAgICAgICM1MjRhN2E7XG4gICAgLS1jLWNoaXAtcHVycGxlLXRleHQ6ICAgICAgICAgICNjNGJjZjM7XG4gICAgLS1jLWNoaXAtZGFyay1wdXJwbGUtYmc6ICAgICAgICM1MjRhN2E7XG4gICAgLS1jLWNoaXAtZGFyay1wdXJwbGUtaG92ZXI6ICAgICM2YzYyOWE7XG4gICAgLS1jLWNoaXAtZGFyay1wdXJwbGUtdGV4dDogICAgICNlYmU5ZmI7XG5cbiAgICAvKiBCYXR0bGUgcGFsZXR0ZSAoZGFyaykgLSBubyBsaW5lIG5lZWRlZCBoZXJlIGZvciBtb3N0IC0tYy1iYXR0bGUtKlxuICAgICAgIHRva2VuczogdGhleSBwb2ludCBhdCByYXcgcHJpbWl0aXZlcyAocHVycGxlL3N1Y2Nlc3Mvd2Fybi9ncmV5IHJhbXApLFxuICAgICAgIGFuZCBwZXIgdGhpcyBmaWxlJ3Mgb3duIGNvbnZlbnRpb24gcHJpbWl0aXZlcyBkbyBOT1QgZ2V0IGEgZGFya1xuICAgICAgIG92ZXJyaWRlLCBvbmx5IHNlbWFudGljIGFuZCBjaGlwIHRva2VucyBkby4gVGhlIG9uZSBleGNlcHRpb24sXG4gICAgICAgLS1jLWJhdHRsZS10ZWFtLTQsIGFscmVhZHkgdHJhY2tzIGRhcmsgbW9kZSBmb3IgZnJlZSBiZWNhdXNlIGl0XG4gICAgICAgcG9pbnRzIGF0IC0tYy1jaGlwLWRhcmstcGluay1iZywgcmVkZWZpbmVkIGFib3ZlIHdpdGggaXRzIG93biBkYXJrXG4gICAgICAgdmFsdWUgLSBubyBleHRyYSBkZWNsYXJhdGlvbiByZXF1aXJlZC4gKi9cblxuICAgIC8qIEZvY3VzICovXG4gICAgLS1mb2N1cy1yaW5nOiAgICAgICAgICAgIHZhcigtLWMtcHVycGxlLTIwMCk7XG4gICAgLS1mb2N1cy1nbG93OiAgICAgICAgICAgIHZhcigtLWMtYWN0aW9uLTQwKTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBNb3Rpb24gdXRpbGl0aWVzIChzaGFyZWQpXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIC5xZG5hcHJvLXNoYWtlIOKAlCBicmllZiBob3Jpem9udGFsIG51ZGdlIHVzZWQgdG8gZHJhdyBhdHRlbnRpb25cbiAgIHRvIGEgZmllbGQgdGhhdCBmYWlsZWQgdmFsaWRhdGlvbi4gQWRkIHRoZSBjbGFzcyB0byB0cmlnZ2VyIGl0O1xuICAgdGhlIG93bmluZyBjb21wb25lbnQgcmVtb3ZlcyBpdCBvbiBgYW5pbWF0aW9uZW5kYCBzbyBpdCBjYW5cbiAgIHJlLWZpcmUgb24gYSByZXBlYXRlZCB0cmlnZ2VyLiBTdGFuZGFyZCBmb3JtLXZhbGlkYXRpb24gY3VlLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5Aa2V5ZnJhbWVzIHFkbmFwcm8tc2hha2Uge1xuICAgIDEwJSwgOTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xcHgpOyB9XG4gICAgMjAlLCA4MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KTsgIH1cbiAgICAzMCUsIDUwJSwgNzAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00cHgpOyB9XG4gICAgNDAlLCA2MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNHB4KTsgIH1cbn1cbi5xZG5hcHJvLXNoYWtlIHtcbiAgICBhbmltYXRpb246IHFkbmFwcm8tc2hha2UgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMzYsIDAuMDcsIDAuMTksIDAuOTcpIGJvdGg7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5xZG5hcHJvLXNoYWtlIHsgYW5pbWF0aW9uOiBub25lOyB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgLnFkbmFwcm8tc2xpZGUtcGFnZXMg4oCUIGhvcml6b250YWwgcGFnZSBzd2l0Y2ggKG9uZSBsZXZlbCBkZWVwKVxuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBUaGUgXCJzdGFwIDEgc2NodWlmdCBuYWFyIGxpbmtzLCBzdGFwIDIgc2NodWlmdCBpblwiIG1vdGlvbi4gSXQgbGl2ZWQgaW4gVEhSRUVcbiAgIGhhbmQtd3JpdHRlbiBjb3BpZXMgYmVmb3JlIDAzLjA4LjIwMjYsIGFsbCB3aXRoIHRoZSBzYW1lIG51bWJlcnMgdHlwZWQgb3V0IGFnYWluOlxuICAgICAtIHFkbmFwcm8tZXZlbnQtc2hlZXQgICAoLmVzLXBhZ2VzIC8gLmVzLXBhZ2UtbWFpbiAvIC5lcy1wYWdlLXN1YiAvIC5lcy1zdWItb3BlbilcbiAgICAgLSB0aGUgUFdBIEhlcmhhbGVuLXNoZWV0ICguYW8tcmVwZWF0LXBhZ2VzIC8gLXBhZ2UtbGlzdCAvIC1wYWdlLXByZXZpZXcsIHBsYWluXG4gICAgICAgbWFya3VwIGluc2lkZSBhIHFkbmFwcm8tYm90dG9tLXNoZWV0IC0gc28gTk9UIGluIGEgY29tcG9uZW50IGF0IGFsbClcbiAgICAgLSB0aGUgUFdBIGxvY2F0aW9uL2RlcGFydG1lbnQgY2hvb3NlciAoLmxwLXBhZ2VzKVxuICAgS2ltIDAzLjA4LjIwMjYsIGFmdGVyIGNhdGNoaW5nIHRoZSB0aGlyZCBjb3B5OiBtYWtlIGl0IG9uZSB2b2NhYnVsYXJ5LiBJdCBsaXZlcyBoZXJlLFxuICAgbmV4dCB0byAucWRuYXByby1zaGFrZSwgYmVjYXVzZSB0aGF0IGlzIHdoZXJlIGNyb3NzLWNvbXBvbmVudCBtb3Rpb24gYWxyZWFkeSBsaXZlczpcbiAgIGV2ZXJ5IHYyIGNvbXBvbmVudCBkZXBlbmRzIG9uIGRlc2lnbi10b2tlbnMsIGJvMiBnZXRzIGl0IHRocm91Z2ggc3R5bGUtdjEuY3NzIGFuZCB0aGVcbiAgIFBXQSB0aHJvdWdoIHN5bmMtcHdhLWNvbXBvbmVudHMsIHNvIG5vIG5ldyBjb21wb25lbnQsIGRlcGVuZGVuY3kgb3IgcmVnaXN0cnkgZW50cnkuXG5cbiAgIEl0IGlzIGRlbGliZXJhdGVseSBDU1MtT05MWSBhbmQgc2hlbGwtYWdub3N0aWMuIFRoZSB0aHJlZSBjb25zdW1lcnMgc2l0IGluIGEgYm90dG9tXG4gICBzaGVldCwgaW4gYSBwb3BvdmVyIGFuZCBpbiBhIHBsYWluIHZpZXcsIGFuZCBlYWNoIGFscmVhZHkgb3ducyBpdHMgb3duIG9wZW4vY2xvc2VcbiAgIGZ1bmN0aW9uIC0gd2hhdCB3YXMgZHVwbGljYXRlZCBpcyB0aGUgZ2VvbWV0cnksIG5vdCB0aGUgbG9naWMuXG5cbiAgIE1BUktVUFxuICAgICA8ZGl2IGNsYXNzPVwicWRuYXByby1zbGlkZS1wYWdlcyBxZG5hcHJvLXNsaWRlLXBhZ2VzLS1hdXRvXCI+ICAgKG9yIC0tZnJhbWUpXG4gICAgICAgPGRpdiBjbGFzcz1cInFkbmFwcm8tc2xpZGUtcGFnZSBxZG5hcHJvLXNsaWRlLXBhZ2UtLWZpcnN0IGlzLWN1cnJlbnRcIj7igKY8L2Rpdj5cbiAgICAgICA8ZGl2IGNsYXNzPVwicWRuYXByby1zbGlkZS1wYWdlIHFkbmFwcm8tc2xpZGUtcGFnZS0tc2Vjb25kXCI+4oCmPC9kaXY+XG4gICAgIDwvZGl2PlxuICAgU1RBVEUgKHR3byBjbGFzcyB0b2dnbGVzLCBub3RoaW5nIGVsc2UpXG4gICAgIC0gaXMtc2Vjb25kIG9uIHRoZSB2aWV3cG9ydCB3aGlsZSBwYWdlIDIgaXMgc2hvd2luZ1xuICAgICAtIGlzLWN1cnJlbnQgb24gZXhhY3RseSBPTkUgcGFnZTogdGhlIG9uZSB5b3Ugc2VlXG4gICBUaGUgdHdvIGFyZSBzZXBhcmF0ZSBvbiBwdXJwb3NlOiBpcy1zZWNvbmQgc2F5cyB3aGljaCBESVJFQ1RJT04gdGhlIGZpcnN0IHBhZ2UgbGVhdmVzXG4gICBpbiwgaXMtY3VycmVudCBzYXlzIHdoaWNoIHBhZ2UgaXMgdmlzaWJsZS4gVG9nZ2xpbmcgb25seSBpcy1jdXJyZW50IHdvdWxkIHNsaWRlIHBhZ2UgMVxuICAgb3V0IHRvIHRoZSBSSUdIVCwgYW5kIHRoZW4gXCJiYWNrXCIgcmVhZHMgYXMgYW5vdGhlciBzdGVwIGZvcndhcmQuXG5cbiAgIFRXTyBIRUlHSFQgTU9ERVMsIGFuZCBwaWNraW5nIHRoZSB3cm9uZyBvbmUgaXMgdGhlIG9ubHkgcmVhbCB0cmFwIGhlcmU6XG4gICAgIC0tZnJhbWUgIHRoZSB2aWV3cG9ydCBoYXMgYSBoZWlnaHQgb2YgaXRzIG93biAoYSBzaGVldCB3aXRoIGEgZml4ZWQgZGV0ZW50KS4gRXZlcnlcbiAgICAgICAgICAgICAgcGFnZSBmaWxscyBpdDsgcGFnZSAxIHN0YXlzIGluIGZsb3cuIE5vdGhpbmcgaXMgZXZlciBtZWFzdXJlZC4gVXNlIHRoaXNcbiAgICAgICAgICAgICAgd2hlbmV2ZXIgeW91IGNhbiAtIHNlZSB0aGUgZml4ZWQtaGVpZ2h0IG5vdGUgaW4gdGhlIGJvdHRvbS1zaGVldHMgc2tpbGwgZm9yXG4gICAgICAgICAgICAgIHdoeSBtZWFzdXJpbmcgYSBzaGVldCdzIGNvbnRlbnQgaGVpZ2h0IHR1cm5lZCBpbnRvIHdoYWNrLWEtbW9sZS5cbiAgICAgLS1hdXRvICAgdGhlIHZpZXdwb3J0IGdyb3dzIHdpdGggaXRzIGNvbnRlbnQgKGEgZGlhbG9nIHRoYXQgbXVzdCBub3QgYmUgdGFsbGVyIHRoYW5cbiAgICAgICAgICAgICAgdGhlIGxpc3QgaXQgc2hvd3MpLiBUaGUgcGFnZSB5b3UgU0VFIGlzIGluIGZsb3cgYW5kIHNldHMgdGhlIGhlaWdodCwgdGhlXG4gICAgICAgICAgICAgIG90aGVyIGlzIHRha2VuIG91dCBvZiBmbG93IHNvIGl0IGNhbm5vdCBpbmZsYXRlIGl0LiBUaGUgY29uc3VtZXIgaXMgdGhlblxuICAgICAgICAgICAgICByZXNwb25zaWJsZSBmb3IgdGhlIGhlaWdodCBEVVJJTkcgdGhlIHNsaWRlOiB3aGlsZSBwYWdlIDIgaXMgdGFsbGVyIHRoYW5cbiAgICAgICAgICAgICAgcGFnZSAxLCB0aGUgdmlld3BvcnQganVtcHMgdG8gdGhlIG5ldyBoZWlnaHQgYXQgb25jZSBhbmQgb3ZlcmZsb3c6aGlkZGVuXG4gICAgICAgICAgICAgIGNsaXBzIHRoZSBsZWF2aW5nIHBhZ2UuIFBpbiBtaW4taGVpZ2h0IHRvIHRoZSB0YWxsZXIgb2YgdGhlIHR3byBmb3IgdGhlXG4gICAgICAgICAgICAgIGxlbmd0aCBvZiB0aGUgdHJhbnNpdGlvbiBhbmQgcmVsZWFzZSBpdCBhZnRlciAoc2VlXG4gICAgICAgICAgICAgIF9zbGlkZUNob29zZXJUb1N0ZXAgaW4gdGhlIFBXQSdzIDAtY29yZS5qcykuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5xZG5hcHJvLXNsaWRlLXBhZ2VzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAvLyBPbmx5IHVzZWQgYnkgLS1hdXRvIGNvbnN1bWVycyB0aGF0IHBpbiBtaW4taGVpZ2h0IGR1cmluZyB0aGUgc2xpZGU7IGhhcm1sZXNzXG4gICAgLy8gb3RoZXJ3aXNlLCBhbmQgaXQgbGl2ZXMgaGVyZSBzbyB0aGV5IGNhbm5vdCBlYWNoIHBpY2sgYSBkaWZmZXJlbnQgZHVyYXRpb24uXG4gICAgdHJhbnNpdGlvbjogbWluLWhlaWdodCAwLjMycyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSk7XG59XG5cbi5xZG5hcHJvLXNsaWRlLXBhZ2Uge1xuICAgIC8vIFJlc3RpbmcgcG9zaXRpb24gb2YgYSBwYWdlIHRoYXQgaXMgbm90IHNob3dpbmc6IG91dCBvZiBmbG93LCBvZmYgdG8gdGhlIHJpZ2h0LlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTA1JSk7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zMnMgY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpLCBvcGFjaXR5IDAuMzJzIGVhc2U7XG59XG5cbi5xZG5hcHJvLXNsaWRlLXBhZ2UuaXMtY3VycmVudCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbi8qIFBhZ2UgMSBsZWF2ZXMgdG8gdGhlIExFRlQgaW5zdGVhZCBvZiB0byB0aGUgcmlnaHQsIGFuZCBmYWRlcyBGVUxMWSBvdXQgLSBhbnkgcmVzaWR1YWxcbiAgIG9wYWNpdHkgc2hvd3MgZ2hvc3Qgcm93cyB0aHJvdWdoIHBhZ2UgMiwgd2hpY2ggaXMgdHJhbnNwYXJlbnQgb3ZlciB0aGUgcGFuZWwuICovXG4ucWRuYXByby1zbGlkZS1wYWdlcy5pcy1zZWNvbmQgLnFkbmFwcm8tc2xpZGUtcGFnZS0tZmlyc3Q6bm90KC5pcy1jdXJyZW50KSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yOCUpO1xufVxuXG4vKiAtLWZyYW1lOiB0aGUgdmlld3BvcnQgYnJpbmdzIGl0cyBvd24gaGVpZ2h0LiAqL1xuLnFkbmFwcm8tc2xpZGUtcGFnZXMtLWZyYW1lIC5xZG5hcHJvLXNsaWRlLXBhZ2UgeyBoZWlnaHQ6IDEwMCU7IH1cbi5xZG5hcHJvLXNsaWRlLXBhZ2VzLS1mcmFtZSAucWRuYXByby1zbGlkZS1wYWdlLS1maXJzdCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4vKiAtLWF1dG86IHRoZSBwYWdlIHlvdSBzZWUgaXMgaW4gZmxvdywgc28gdGhlIHZpZXdwb3J0IGlzIGFzIHRhbGwgYXMgdGhhdCBwYWdlIGFuZCBub1xuICAgdGFsbGVyLiBTcGVjaWZpY2l0eSAwLDMsMCwgc28gaXQgYmVhdHMgdGhlIG91dC1vZi1mbG93IGJhc2UgcnVsZS4gKi9cbi5xZG5hcHJvLXNsaWRlLXBhZ2VzLS1hdXRvIC5xZG5hcHJvLXNsaWRlLXBhZ2UuaXMtY3VycmVudCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5xZG5hcHJvLXNsaWRlLXBhZ2VzLFxuICAgIC5xZG5hcHJvLXNsaWRlLXBhZ2UgeyB0cmFuc2l0aW9uOiBub25lOyB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgLnFkbmEtcGFnZXItKiDigJQgaG9yaXpvbnRhbCBQQUdFUiAoTiBwYWdlcywgZG90cywgc3dpcGUpXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFRoZSBsb29rcyBiZWhpbmQgd2luZG93LlFkbmFQYWdlciAod2ViL2pzL2NvbXBvbmVudHMvdjIvcGFnZXIvcWRuYS1wYWdlci5qcyksIHVzZWRcbiAgIGJ5IHRoZSBgc2xpZGVyYCBhdHRyaWJ1dGUgb2YgQk9USCBzaGVsbHMgdGhlIGFwcCBzd2FwcyBiZXR3ZWVuIHBlciBwbGF0Zm9ybTpcbiAgIHFkbmFwcm8tYm90dG9tLXNoZWV0IChwaG9uZSkgYW5kIHFkbmFwcm8tcG9wb3ZlciAoPj0xMDI0cHgpLiBJdCBsaXZlcyBoZXJlIGZvciB0aGVcbiAgIHNhbWUgcmVhc29uIC5xZG5hcHJvLXNsaWRlLXBhZ2VzIGRvZXM6IHNoZWxsLWFnbm9zdGljLCBldmVyeSB2MiBjb21wb25lbnQgYWxyZWFkeVxuICAgZGVwZW5kcyBvbiBkZXNpZ24tdG9rZW5zLCBzbyBubyBuZXcgZGVwZW5kZW5jeSBhbmQgbm8gc2Vjb25kIGNvcHkuIFtLaW0gMDQuMDkuMjAyNl1cblxuICAgV2hlcmUgc2xpZGUtcGFnZXMgaXMgYSBPTkUtTEVWRUwgd2l6YXJkIHN3aXRjaCAocGFnZSAxIGxlYXZlcywgcGFnZSAyIGFycml2ZXMpLCB0aGlzXG4gICBpcyBhIHJlYWwgcGFnZXI6IGFueSBudW1iZXIgb2YgcGFnZXMsIGEgZG90cyBzdHJpcCwgYSBkcmFnIGdlc3R1cmUsIGFuZCBhIGhlaWdodCB0aGF0XG4gICBlaXRoZXIgZm9sbG93cyB0aGUgYWN0aXZlIHBhZ2Ugb3Igc3RheXMgb24gdGhlIHRhbGxlc3Qgb25lLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ucWRuYS1wYWdlci12aWV3cG9ydCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICAvKiBBIGZsb29yIGZvciB0aGUgaGVpZ2h0LCBzbyBhIHNldCB3aXRoIG9uZSBzaG9ydCBwYWdlIGRvZXMgbm90IG9wZW4gYXMgYSBjcmFtcGVkXG4gICAgICAgc2xpdC4gVGhlIEpTIHdyaXRlcyBgaGVpZ2h0YCBpbmxpbmU7IG1pbi1oZWlnaHQgd2lucyBvdmVyIGl0IGJ5IGRlZmluaXRpb24sIHNvIGFcbiAgICAgICBjb25zdW1lciBvbmx5IGhhcyB0byBzZXQgdGhpcyB2YXJpYWJsZS4gRGVmYXVsdCAwID0gbm8gZmxvb3IuICovXG4gICAgbWluLWhlaWdodDogdmFyKC0tcGFnZXItbWluLWgsIDApO1xuICAgIC8qIFdyaXR0ZW4gYnkgdGhlIEpTICh0aGUgYWN0aXZlIHBhZ2UsIG9yIHRoZSB0YWxsZXN0IG9uZSBpbiBoZWlnaHRNb2RlIFwibWF4XCIpOyB0aGVcbiAgICAgICB0cmFuc2l0aW9uIGlzIHdoYXQgbWFrZXMgYSBsb25nZXIgcGFnZSBncm93IGludG8gcGxhY2UgaW5zdGVhZCBvZiBqdW1waW5nLiAqL1xuICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjI0cyBlYXNlO1xufVxuLnFkbmEtcGFnZXItdHJhY2sge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLyogTG9hZC1iZWFyaW5nLCBub3QgY29zbWV0aWM6IGEgZmxleCByb3cgc3RyZXRjaGVzIGl0cyBpdGVtcyB0byB0aGUgdGFsbGVzdCBvbmUgYnlcbiAgICAgICBkZWZhdWx0LCBzbyBldmVyeSBwYWdlIHdvdWxkIG1lYXN1cmUgdGhlIFNBTUUgaGVpZ2h0IGFuZCBcImF1dG9cIiBjb3VsZCBuZXZlclxuICAgICAgIGFuaW1hdGUuICovXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNnMgY3ViaWMtYmV6aWVyKDAuMjIsIDAuOSwgMC4zLCAxKTtcbn1cbi5xZG5hLXBhZ2VyLXBhZ2Uge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAvKiBib3JkZXItYm94IGlzIGxvYWQtYmVhcmluZyB0b286IGZsZXgtYmFzaXM6MTAwJSByZXNvbHZlcyBhZ2FpbnN0IHRoZSB2aWV3cG9ydCdzXG4gICAgICAgQ09OVEVOVCB3aWR0aCwgc28gYSBwYWdlIHdpdGggaXRzIG93biBob3Jpem9udGFsIHBhZGRpbmcgcmVuZGVyZWQgV0lERVIgdGhhbiB0aGVcbiAgICAgICB2aWV3cG9ydCBhbmQgZXZlcnkgbmV4dCBwYWdlIGRyaWZ0ZWQgYSBsaXR0bGUgZnVydGhlciBvdXQgb2YgZnJhbWUgKG1lYXN1cmVkXG4gICAgICAgMDQuMDkuMjAyNjogMzY2cHggcGFnZXMgaW4gYSAzNThweCB2aWV3cG9ydCwgc28gcGFnZSAzIHNhdCAyNHB4IG9mZikuICovXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG59XG4ucWRuYS1wYWdlci1kb3RzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA5cHg7XG4gICAgcGFkZGluZzogMTRweCAwIDRweDtcbiAgICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hLXBhZ2VyLWRvdCB7XG4gICAgd2lkdGg6IDlweDtcbiAgICBoZWlnaHQ6IDlweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXBpbGwpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmxhY2stMTIpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAvKiBBIDlweCBkb3QgaXMgZmFyIGJlbG93IHRoZSA0NHB4IHRvdWNoIHRhcmdldCwgc28gZ3JvdyB0aGUgSElUIGFyZWEgd2l0aG91dCBncm93aW5nXG4gICAgICAgdGhlIGRvdDogYSB0cmFuc3BhcmVudCBib3JkZXIgd291bGQgY2hhbmdlIHRoZSBwYWludGVkIHNpemUsIGEgcHNldWRvLWVsZW1lbnQgZG9lc1xuICAgICAgIG5vdC4gKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ucWRuYS1wYWdlci1kb3Q6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuLnFkbmEtcGFnZXItZG90LmlzLWFjdGl2ZSB7XG4gICAgd2lkdGg6IDI2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS00MDApO1xufVxuLyogQSBwYWdlJ3MgZGF0YS10b25lIGNvbG91cnMgaXRzIGRvdCB3aXRoIHRoZSBTQU1FIHRva2VucyB0aGUgdG9uZWQgZGlhbG9ncyB1c2UsIHNvIHRoZVxuICAgZG90cyByb3cgcmVhZHMgYXMgYSBzdW1tYXJ5IG9mIHRoZSBzZXQuIEluYWN0aXZlIGRvdHMga2VlcCB0aGUgY29sb3VyIGF0IGEgbG93ZXJcbiAgIHdlaWdodCDigJQgdGhhdCBpcyB0aGUgcG9pbnQgb2YgY29sb3VyaW5nIHRoZW0gYXQgYWxsLiAqL1xuLnFkbmEtcGFnZXItZG90W2RhdGEtdG9uZT1cInN1Y2Nlc3NcIl0geyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy1zdWNjZXNzLXN1cmZhY2UpOyB9XG4ucWRuYS1wYWdlci1kb3RbZGF0YS10b25lPVwiZGFuZ2VyXCJdICB7IGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLWRhbmdlci1zdXJmYWNlKTsgfVxuLnFkbmEtcGFnZXItZG90W2RhdGEtdG9uZT1cIndhcm5pbmdcIl0geyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy13YXJuaW5nLXN1cmZhY2UpOyB9XG4ucWRuYS1wYWdlci1kb3RbZGF0YS10b25lXTpub3QoLmlzLWFjdGl2ZSkgeyBvcGFjaXR5OiAwLjQ1OyB9XG5cbi8qIFJlZHVjZWQgbW90aW9uOiB0aGUgcGFnZXIgc3RpbGwgV09SS1MsIGl0IGp1c3Qgc3RvcHMgc2xpZGluZyBhbmQgZ3Jvd2luZy4gKi9cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLnFkbmEtcGFnZXItdmlld3BvcnQsXG4gICAgLnFkbmEtcGFnZXItdHJhY2sgeyB0cmFuc2l0aW9uOiBub25lOyB9XG59XG4iLCIvLyBxZG5hcHJvIG92ZXJsYXkgc2hlbGwg4oCUIGRlIEdFREVFTERFIHNjaGlsIChgLnFvcy0qYClcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRcOpbiBmcmFtZSB2b29yIGVsayB6ZWxmc3RhbmRpZyBnZWNlbnRyZWVyZCB2ZW5zdGVyOiBzY3JpbSwgZ3JpanMgZnJhbWUsIHdpdFxuLy8gdmVuc3Rlciwga29wLCBib2R5LCB2b2V0LiBBbGxlIHdhYXJkZW4ga29tZW4gdWl0IGRlIG92ZXJsYXktdG9rZW5zIGluXG4vLyBjb21wb25lbnRzL3YyL2Rlc2lnbi10b2tlbnMvX2Rlc2lnbi10b2tlbnMuc2Nzcywgem9kYXQgZGl0IGZyYW1lIGVuXG4vLyBgcWRuYXByby1tb2RhbGAgbmlldCB1aXQgZWxrYWFyIGt1bm5lbiBsb3Blbi5cbi8vXG4vLyBXYWFyb20gZGl0IGJlc3RhYXQ6IGV4cG9ydC1tb2RhbCwgZm9ybXVsZS1ib3V3ZXIsIG9wbWFha3JlZ2VscyBlbiBkZSB3aXphcmRcbi8vIGhhZGRlbiBFTEsgaHVuIGVpZ2VuIGtvcGllIHZhbiBkZXplbGZkZSBzY2hpbCwgbWV0IHZpamYgdmVyc2NoaWxsZW5kZVxuLy8gei1pbmRleGVuICgxMDgwIC8gOTAwMCAvIDkxMDAgLyA5NDAwKSBlbiB0d2VlIHZlcnNjaGlsbGVuZGUgc2NyaW1rbGV1cmVuLlxuLy8gW0tpbSAxOS4wOC4yMDI2XVxuLy9cbi8vIEdlYnJ1aWsgaW4gZWVuIGNvbXBvbmVudCAoUGF0dGVybiBCLCBsaWdodCBET00pOlxuLy9cbi8vICAgPGRpdiBjbGFzcz1cInFvcy1zY3JpbVwiPiAgICAgICAgICAgICAgICAgICAgIDwhLS0ga2xpayA9IGFubnVsZXJlbiAgICAgICAgLS0+XG4vLyAgICAgPGRpdiBjbGFzcz1cInFvcy1kaWFsb2dcIiBzdHlsZT1cIi0tcW9zLXc6ODAwcHhcIj5cbi8vICAgICAgIDxkaXYgY2xhc3M9XCJxb3Mtd2luZG93XCIgcm9sZT1cImRpYWxvZ1wiIGFyaWEtbW9kYWw9XCJ0cnVlXCI+XG4vLyAgICAgICAgIDxoZWFkZXIgY2xhc3M9XCJxb3MtaGVhZFwiPiBpY29uICsgLnFvcy10aXRsZSArIC5xb3MtY2xvc2UgPC9oZWFkZXI+XG4vLyAgICAgICAgIDxkaXYgY2xhc3M9XCJxb3MtYm9keVwiPiAgICBlaWdlbiBpbmhvdWQsIGVpZ2VuIHByZWZpeCAgICA8L2Rpdj5cbi8vICAgICAgICAgPGZvb3RlciBjbGFzcz1cInFvcy1mb290XCI+IGtub3BwZW4gICAgICAgICAgICAgICAgICAgICAgIDwvZm9vdGVyPlxuLy8gICAgICAgPC9kaXY+XG4vLyAgICAgPC9kaXY+XG4vLyAgIDwvZGl2PlxuLy9cbi8vIFR3ZWUga25vcHBlbiBvbSBhYW4gdGUgZHJhYWllbiwgYWxsZWJlaSBhbHMgY3VzdG9tIHByb3BlcnR5IG9wIC5xb3MtZGlhbG9nOlxuLy8gICAtLXFvcy13ICAgYnJlZWR0ZS1wbGFmb25kIChkZWZhdWx0IDU2MHB4LCBkZSBtYWF0IHZhbiBlZW4gbWVkaXVtIG1vZGFsKVxuLy8gICAtLXFvcy16ICAgc3RhcGVsbGFhZzsgemV0IG9wIHZhcigtLW92ZXJsYXktei1uZXN0ZWQpIGFscyBoZXQgdmVuc3RlclxuLy8gICAgICAgICAgICAgZ2VvcGVuZCB3b3JkdCBWQU5VSVQgZWVuIGFuZGVyIHZlbnN0ZXJcbi8vXG4vLyBIZXQgR0VEUkFHIChFc2NhcGUsIHNjcm9sbC1sb2NrLCBmb2N1cywga2xpayBvcCBkZSBzY3JpbSkgeml0IG5pZXQgaGllciBtYWFyXG4vLyBpbiB3ZWIvanMvY29tcG9uZW50cy92Mi9vdmVybGF5LXNoZWxsL292ZXJsYXktc2hlbGwuanMuXG4vL1xuLy8gRGV6ZSBwYXJ0aWFsIHdvcmR0IFZST0VHIGluIGNvbXBvbmVudHMuc2NzcyBnZWxhZGVuLCB6b2RhdCBlZW4gY29tcG9uZW50IGRhdFxuLy8gZWNodCBtb2V0IGFmd2lqa2VuIG1ldCBnZWxpamtlIHNwZWNpZmljaXRlaXQgd2ludC5cblxuLy8gRGUgVkFTVEUgbGFhZyBvdmVyIGRlIHBhZ2luYS4gYHFkbmFwcm8tbW9kYWxgIGRvZXQgaGV0IGluIHR3ZWUgbGFnZW4gKGRlIGhvc3Rcbi8vIGlzIGZpeGVkLCBkZSBiYWNrZHJvcCBlcmJpbm5lbiBpcyBhYnNvbHV0ZSkgZW4gZGF0IGlzIG5pZXQgY29zbWV0aXNjaDogZWVuXG4vLyBgcG9zaXRpb246IGZpeGVkYCBzY3JpbSByZWtlbnQgemlqbiBgaW5zZXQ6IDBgIGFmIHRlZ2VuIGVlbiBjb250YWluaW5nIGJsb2NrXG4vLyBkYXQgbmlldCBhbHRpamQgaGV0IHZlbnN0ZXIgaXMsIGVuIGtsYXB0IGRhbiBpbiB0b3QgemlqbiBlaWdlbiBwYWRkaW5nLiBQcmVjaWVzXG4vLyBkYXQgZ2ViZXVyZGUgaGllciBvcCAxOS4wOC4yMDI2OiBkZSB3aXphcmQgaGFkIGdlZW4gZGltIG1lZXIuXG4vLyBFZW4gY29tcG9uZW50IHpldCBkZXplIGtsYXNzZSBvcCB6aWpuIGhvc3QsIG9mIGdlZWZ0IGRlIGhvc3QgaW4gemlqbiBlaWdlbiBTQ1NTXG4vLyBkZXplbGZkZSBkcmllIHJlZ2VscyAoem8gZG9ldCBxZG5hcHJvLXdpemFyZC1tb2RhbCBoZXQsIGRpZSBoYWQgemUgYWwpLlxuLnFvcy1yb290IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgaW5zZXQ6IDA7XG4gICAgei1pbmRleDogdmFyKC0tcW9zLXosIHZhcigtLW92ZXJsYXkteikpO1xufVxuXG4ucW9zLXNjcmltIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tb3ZlcmxheS1zY3JpbSk7XG4gICAgYW5pbWF0aW9uOiBxb3Mtc2NyaW0taW4gMTYwbXMgZWFzZS1vdXQ7XG59XG5cbi5xb3Mtc2NyaW0gKixcbi5xb3Mtc2NyaW0gKjo6YmVmb3JlLFxuLnFvcy1zY3JpbSAqOjphZnRlciB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLy8gQlVJVEVOU1RFIEdSSUpaRSBGUkFNRVxuLnFvcy1kaWFsb2cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1heC13aWR0aDogdmFyKC0tcW9zLXcsIDU2MHB4KTtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDhweCk7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW92ZXJsYXktZnJhbWUtYmcpO1xuICAgIGJvcmRlcjogMC41cHggc29saWQgdmFyKC0tb3ZlcmxheS1mcmFtZS1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLW92ZXJsYXktZnJhbWUtcmFkaXVzKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1vdmVybGF5LWZyYW1lLXNoYWRvdyk7XG4gICAgYW5pbWF0aW9uOiBxb3MtZGlhbG9nLWluIDIwMG1zIGN1YmljLWJlemllcigwLjIsIDAuOCwgMC4yLCAxKTtcbn1cblxuLy8gQklOTkVOU1RFIFdJVFRFIFZFTlNURVJcbi5xb3Mtd2luZG93IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgLy8gYG1pbi1oZWlnaHQ6IDBgIG9wIGVsa2Ugc2NoYWtlbCB2YW4gZGUgZmxleGtldGVuLCBhbmRlcnMga3Jpamd0IGVlbiBraW5kXG4gICAgLy8gbWluaW11bWhvb2d0ZSBgYXV0b2AgZW4ga2xpcHQgaGV0IHppam4gZWlnZW4gc2Nyb2xsIHdlZy4gRGF0IGlzIGRlIHN0aWxsZVxuICAgIC8vIGtsaXBidWcgZGllIGluIF9mb3JtdWxhLWVkaXRvci5zY3NzIGVuIF9mb3JtYXQtcnVsZXMuc2NzcyBhbCBiZXNjaHJldmVuXG4gICAgLy8gc3RhYXQ7IGhpaiBob29ydCBoaWVyLCBpbiBkZSBzY2hpbCwgZW4gbmlldCBkcmllIGtlZXIgbG9zLlxuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMHB4O1xuICAgIHBhZGRpbmc6IDE2cHggMTZweCAxMnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW92ZXJsYXktd2luZG93LWJnKTtcbiAgICBib3JkZXI6IDAuNXB4IHNvbGlkIHZhcigtLW92ZXJsYXktd2luZG93LWJvcmRlcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tb3ZlcmxheS13aW5kb3ctcmFkaXVzKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLyAtLS0tIGtvcCAtLS0tXG4ucW9zLWhlYWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgcGFkZGluZzogMCAwIDRweDtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLnFvcy1oZWFkLWljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xufVxuXG4vLyBLb3AgbWV0IGVlbiB0d2VlZGUgcmVnZWwgZXJvbmRlciAoZm9ybXVsZS1ib3V3ZXIsIG9wbWFha3JlZ2VscykuXG4ucW9zLWhlYWQtdGV4dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbn1cblxuLnFvcy10aXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAgIC8vIERlIHRpdGVsIGlzIGVlbiA8aDI+IEJJTk5FTiBlZW4gd2lsbGVrZXVyaWdlIHBhZ2luYSwgZW4gZWVuIHBhZ2luYSBkaWUgemlqblxuICAgIC8vIGgyJ3MgYWxzIHNlY3RpZWtvcGplIG9wbWFha3QgKGthcGl0YWxlbiwgbGV0dGVyYWZzdGFuZCkgdHJla3QgZGllIG9wbWFha1xuICAgIC8vIGhpZXIgem8gbmFhciBiaW5uZW4uIEdlemllbiBpbiBkZSBleHBvcnQtcHJldmlldzogXCJLT0xPTU1FTiBFWFBPUlRFUkVOXCIuXG4gICAgLy8gWmVsZmRlIHNvb3J0IGNhc2NhZGUtdmVyZGVkaWdpbmcgYWxzIGRlICFpbXBvcnRhbnQtcmVnZWxzIGluIF9tb2RhbC5zY3NzLlxuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG59XG5cbi8vIEVlbiBsZWVnIHN1YnRpdGVsLWVsZW1lbnQgbWFnIGdlZW4gcnVpbXRlIHBha2tlbiAoZGUgZm9ybXVsZS1ib3V3ZXIgZW4gZGVcbi8vIG9wbWFha3JlZ2VscyByZW5kZXJlbiBoZW0gYWx0aWpkLCBvb2sgem9uZGVyIHRla3N0KS5cbi5xb3Mtc3VidGl0bGU6ZW1wdHkgeyBkaXNwbGF5OiBub25lOyB9XG5cbi5xb3Mtc3VidGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbn1cblxuLy8gSGV0IGtydWlzamUgaXMgZWVuIEVDSFRFIGBxZG5hcHJvLWljb24tYnRuYCAodHlwZT1cInNlY29uZGFyeVwiIGljb249XCJjbG9zZVwiKSxcbi8vIHByZWNpZXMgem9hbHMgYHFkbmFwcm8tbW9kYWxgIGhldCBkb2V0LiBIaWVyIGR1cyBhbGxlZW4gbm9nIGRlIHBsYWF0c2luZzsgZGVcbi8vIGtub3AgYnJlbmd0IHppam4gZWlnZW4gdm9ybSwgaG92ZXIgZW4gZm9jdXMgbWVlLiBTdG9uZCBoaWVyIHRvdCAxOS4wOC4yMDI2IGFsc1xuLy8gbmFnZW1hYWt0ZSA8YnV0dG9uPiBtZXQgZWVuIGxvcyBpY29vbiBlcmluLlxuLnFvcy1jbG9zZSB7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi8vIC0tLS0gYm9keSAtLS0tXG4ucW9zLWJvZHkge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAvLyA0cHggbHVjaHQgem9kYXQgZWVuIHZlbGQgdGVnZW4gZGUgYm92ZW5yYW5kIHppam4gZm9jdXNyaW5nIG5pZXQgb25kZXIgZGVcbiAgICAvLyBrb3AgdmVybGllc3QgKG92ZXJmbG93LXk6YXV0byBrbGlwdCBvdmVyZmxvdy14IG1lZSk7IHNjcm9sbC1wYWRkaW5nIGhvdWR0XG4gICAgLy8gZWVuIGdldGFiZCB2ZWxkIG9uZGVyIGRlIHJhbmQgdWl0LiBaZWxmZGUgcmVkZW4gYWxzIGluIF9tb2RhbC5zY3NzLlxuICAgIHBhZGRpbmc6IDRweDtcbiAgICBzY3JvbGwtcGFkZGluZy10b3A6IDhweDtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG59XG5cbi8vIC0tLS0gdm9ldCAtLS0tXG4ucW9zLWZvb3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgZ2FwOiAxNnB4O1xuICAgIHBhZGRpbmc6IDRweCAwIDA7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi8vIER1d3Qgd2F0IGVybmEga29tdCBuYWFyIHJlY2h0czogZWVuIGtub3AgbGlua3MgaW4gZGUgdm9ldCAoVmVyd2lqZGVyZW4pLlxuLnFvcy1mb290LXNwYWNlciB7IGZsZXg6IDEgMSBhdXRvOyB9XG5cbi8vIGBkaXNwbGF5OiBmbGV4YCBoaWVyYm92ZW4gd2ludCBhbmRlcnMgdmFuIGhldCBgaGlkZGVuYC1hdHRyaWJ1dXQgKHplbGZkZVxuLy8gdmFsa3VpbCBhbHMgcWRuYXByby1pY29uLWJ0bltoaWRkZW5dIGluIGRlIGV4cG9ydC1tb2RhbCkuIERlIGV4cG9ydC1tb2RhbFxuLy8gdmVyYmVyZ3QgemlqbiB2b2V0IHRpamRlbnMgZGUgYmV3YWFyLXZyYWFnIG5hIGVlbiBleHBvcnQuXG4ucW9zLWZvb3RbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLy8gQWxsZWVuLWR1aW0gc2Nyb2xsYmFycyB2b29yIGRlIEhFTEUgc3VidHJlZSwgbm9vaXQgZWVuIGdyaWp6ZSBiYWFuLiBaZWxmZGVcbi8vIHJlZGVuIGFscyBpbiBfbW9kYWwuc2NzcyBlbiBfd2l6YXJkLW1vZGFsLnNjc3M6IGRlIGluaG91ZCBrb210IG5hIHJlbmRlciBlblxuLy8gYnJlbmd0IGVpZ2VuIHNjcm9sbGNvbnRhaW5lcnMgbWVlLCBkdXMgaGV0IG1vZXQgZWVuIGFmc3RhbW1lbGluZ3NzZWxlY3RvclxuLy8gemlqbi4gV2Via2l0LW9ubHksIG1ldCBvcHpldC5cbi5xb3Mtc2NyaW0gOjotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiA4cHg7IGhlaWdodDogOHB4OyB9XG4ucW9zLXNjcmltIDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuLnFvcy1zY3JpbSA6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4ucW9zLXNjcmltIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE2MG1zIGVhc2U7XG59XG4ucW9zLXNjcmltICo6aG92ZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuLnFvcy1zY3JpbSAqOmZvY3VzLXdpdGhpbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgeyBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMjIpOyB9XG4ucW9zLXNjcmltIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzQpOyB9XG5cbkBrZXlmcmFtZXMgcW9zLXNjcmltLWluIHtcbiAgICBmcm9tIHsgb3BhY2l0eTogMDsgfVxuICAgIHRvICAgeyBvcGFjaXR5OiAxOyB9XG59XG5cbkBrZXlmcmFtZXMgcW9zLWRpYWxvZy1pbiB7XG4gICAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTgpOyB9XG4gICAgdG8gICB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTsgfVxufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5xb3Mtc2NyaW0sXG4gICAgLnFvcy1kaWFsb2cgeyBhbmltYXRpb246IG5vbmU7IH1cbn1cblxuLy8gLS0tLSBkb25rZXIgLS0tLVxuLy8gRnJhbWUsIHZlbnN0ZXIgZW4gc2NyaW0ga29tZW4gdWl0IGRlIHRva2VucyBlbiB3aXNzZWxlbiBkdXMgYXV0b21hdGlzY2guIFdhdFxuLy8gaGllciBvdmVyYmxpamZ0IGlzIGRlIHRla3N0LCBwcmVjaWVzIHpvYWxzIGBxZG5hcHJvLW1vZGFsYCBoZXQgZG9ldC5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucW9zLXRpdGxlLFxuW2RhdGEtdGhlbWUtZGFya10gLnFvcy10aXRsZSxcbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucW9zLWJvZHksXG5bZGF0YS10aGVtZS1kYXJrXSAucW9zLWJvZHkgeyBjb2xvcjogI2YwZjFmMjsgfVxuXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFvcy1zdWJ0aXRsZSxcbltkYXRhLXRoZW1lLWRhcmtdIC5xb3Mtc3VidGl0bGUgeyBjb2xvcjogI2I4YmNjNDsgfVxuXG4iLCJAdXNlIFwic2FzczptYXBcIjtcblxuJGJ0bi1za2luczogKFxuICAgIFwicHJpbWFyeVwiOiAoYmFzZTogIzQwNDk5YSxcbiAgICAgICAgaG92ZXI6ICMzMzNBN0IsXG4gICAgICAgIGFjdGl2ZTogIzcwNzVhMixcbiAgICAgICAgZm9jdXM6ICM0MDQ5OWEsXG4gICAgICAgIGZvY3VzLW91dGxpbmU6ICM0MDQ5OWEsXG4gICAgICAgIGRpc2FibGVkOiAjZjBmMWYyLFxuICAgICAgICB0ZXh0OiAjRkZGRkZGLFxuICAgICAgICB0ZXh0LWRpc2FibGVkOiAjODk4ZTk5LFxuICAgICAgICBib3JkZXI6IHRyYW5zcGFyZW50LFxuICAgICAgICBib3JkZXItZGlzYWJsZWQ6IHRyYW5zcGFyZW50LFxuICAgICksXG4gICAgXCJvcmFuZ2VcIjogKGJhc2U6ICNlZjhlMDIsXG4gICAgICAgIGhvdmVyOiAjYmY3MjAyLFxuICAgICAgICBhY3RpdmU6ICNkMjljNGQsXG4gICAgICAgIGZvY3VzOiAjZWY4ZTAyLFxuICAgICAgICBmb2N1cy1vdXRsaW5lOiAjZWY4ZTAyLFxuICAgICAgICBkaXNhYmxlZDogI2YwZjFmMixcbiAgICAgICAgdGV4dDogI0ZGRkZGRixcbiAgICAgICAgdGV4dC1kaXNhYmxlZDogIzg5OGU5OSxcbiAgICAgICAgYm9yZGVyOiB0cmFuc3BhcmVudCxcbiAgICAgICAgYm9yZGVyLWRpc2FibGVkOiB0cmFuc3BhcmVudCxcbiAgICApLFxuICAgIFwic3VidGxlXCI6IChiYXNlOiB0cmFuc3BhcmVudCxcbiAgICAgICAgaG92ZXI6ICNGMEYxRjIsXG4gICAgICAgIGFjdGl2ZTogI2Y0ZjVmNixcbiAgICAgICAgZm9jdXM6ICNmMGYxZjIsXG4gICAgICAgIGZvY3VzLW91dGxpbmU6ICMwQjBCMEQsXG4gICAgICAgIGRpc2FibGVkOiB0cmFuc3BhcmVudCwgLy8gYXNrIGlmIHRoaXMgc2hvdWxkIGJlIHdoaXRlIG9yIHRyYW5zcGFyYW50XG4gICAgICAgIHRleHQ6ICMwQjBCMEQsXG4gICAgICAgIHRleHQtZGlzYWJsZWQ6ICM4OThlOTksXG4gICAgICAgIGJvcmRlcjogdHJhbnNwYXJlbnQsXG4gICAgICAgIGJvcmRlci1kaXNhYmxlZDogdHJhbnNwYXJlbnQsXG4gICAgKSxcbiAgICBcInNlY29uZGFyeVwiOiAoYmFzZTogI2YwZjFmMixcbiAgICAgICAgaG92ZXI6ICNjNGM3Y2MsXG4gICAgICAgIGFjdGl2ZTogI2Q2ZDhkYixcbiAgICAgICAgZm9jdXM6ICNmMGYxZjIsXG4gICAgICAgIGZvY3VzLW91dGxpbmU6ICMwQjBCMEQsXG4gICAgICAgIGRpc2FibGVkOiAjZjBmMWYyLFxuICAgICAgICB0ZXh0OiAjMEIwQjBELFxuICAgICAgICB0ZXh0LWRpc2FibGVkOiAjODk4ZTk5LFxuICAgICAgICBib3JkZXI6IHRyYW5zcGFyZW50LFxuICAgICAgICBib3JkZXItZGlzYWJsZWQ6IHRyYW5zcGFyZW50LFxuICAgICksXG4gICAgXCJzZWNvbmRhcnktb3V0bGluZVwiOiAoYmFzZTogI2U2ZTlmZixcbiAgICAgICAgaG92ZXI6ICNkYWRkZjIsXG4gICAgICAgIGFjdGl2ZTogI2U1ZTdmNixcbiAgICAgICAgZm9jdXM6ICNlNmU5ZmYsXG4gICAgICAgIGZvY3VzLW91dGxpbmU6ICM0MDQ5OUEsXG4gICAgICAgIGRpc2FibGVkOiAjZjBmMWYyLFxuICAgICAgICB0ZXh0OiAjNDA0OTlBLFxuICAgICAgICB0ZXh0LWRpc2FibGVkOiAjODk4ZTk5LFxuICAgICAgICBib3JkZXI6ICM0MDQ5OUEsXG4gICAgICAgIGJvcmRlci1kaXNhYmxlZDogdHJhbnNwYXJlbnQsXG4gICAgKSxcbiAgICBcInNlY29uZGFyeS13aGl0ZVwiOiAoYmFzZTogdHJhbnNwYXJlbnQsXG4gICAgICAgIGhvdmVyOiAjZGFkZGYyLFxuICAgICAgICBhY3RpdmU6ICNlNWU3ZjYsXG4gICAgICAgIGZvY3VzOiAjZTZlOWZmLFxuICAgICAgICBmb2N1cy1vdXRsaW5lOiAjMEIwQjBELFxuICAgICAgICBkaXNhYmxlZDogdHJhbnNwYXJlbnQsXG4gICAgICAgIHRleHQ6ICM0MDQ5OUEsXG4gICAgICAgIHRleHQtZGlzYWJsZWQ6ICM4OThlOTksXG4gICAgICAgIGJvcmRlcjogdHJhbnNwYXJlbnQsXG4gICAgICAgIGJvcmRlci1kaXNhYmxlZDogdHJhbnNwYXJlbnQsXG4gICAgKSxcbiAgICBcInNlY29uZGFyeS1wdXJwbGVcIjogKGJhc2U6ICNlNmU5ZmYsXG4gICAgICAgIGhvdmVyOiAjZGFkZGYyLFxuICAgICAgICBhY3RpdmU6ICNlNWU3ZjYsXG4gICAgICAgIGZvY3VzOiAjZTZlOWZmLFxuICAgICAgICBmb2N1cy1vdXRsaW5lOiAjMEIwQjBELFxuICAgICAgICBkaXNhYmxlZDogI2YwZjFmMixcbiAgICAgICAgdGV4dDogIzQwNDk5QSxcbiAgICAgICAgdGV4dC1kaXNhYmxlZDogIzg5OGU5OSxcbiAgICAgICAgYm9yZGVyOiB0cmFuc3BhcmVudCxcbiAgICAgICAgYm9yZGVyLWRpc2FibGVkOiB0cmFuc3BhcmVudCxcblxuICAgICksXG4gICAgXCJ3YXJuaW5nXCI6IChiYXNlOiAjZjBmMWYyLFxuICAgICAgICBob3ZlcjogI2M0YzdjYyxcbiAgICAgICAgYWN0aXZlOiAjZDZkOGRiLFxuICAgICAgICBmb2N1czogI2M0YzdjYyxcbiAgICAgICAgZm9jdXMtb3V0bGluZTogIzBCMEIwRCxcbiAgICAgICAgZGlzYWJsZWQ6ICNmMGYxZjIsXG4gICAgICAgIHRleHQ6ICNDNjVBNUEsXG4gICAgICAgIHRleHQtZGlzYWJsZWQ6ICM4OThlOTksXG4gICAgICAgIGJvcmRlcjogdHJhbnNwYXJlbnQsXG4gICAgICAgIGJvcmRlci1kaXNhYmxlZDogdHJhbnNwYXJlbnQsXG5cbiAgICApLFxuXG4pO1xuXG4kZGVmYXVsdC1za2luOiAncHJpbWFyeSc7XG5cblxuXG4uYnRuIHtcbiAgICAkZGVmYXVsdC1jb2xvcnM6IG1hcC5nZXQoJGJ0bi1za2lucywgJGRlZmF1bHQtc2tpbik7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBnYXA6IDFyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCRkZWZhdWx0LWNvbG9ycywgYmFzZSk7XG4gICAgY29sb3I6IG1hcC5nZXQoJGRlZmF1bHQtY29sb3JzLCB0ZXh0KTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC5nZXQoJGRlZmF1bHQtY29sb3JzLCBib3JkZXIpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiO1xuXG4gICAgJi5idG4tc2l6ZS1zbSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgZ2FwOiAwLjVyZW07XG5cbiAgICB9XG5cbiAgICAmOmZvY3Vze1xuICAgICAgICBvdXRsaW5lOjA7XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmLmJ0bi1zdGF0ZS1ob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC5nZXQoJGRlZmF1bHQtY29sb3JzLCBob3Zlcik7XG4gICAgfVxuXG4gICAgJjpmb2N1cy12aXNpYmxlLFxuICAgICYuYnRuLXN0YXRlLWZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkZGVmYXVsdC1jb2xvcnMsIGZvY3VzKTtcbiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIG1hcC5nZXQoJGRlZmF1bHQtY29sb3JzLCBmb2N1cy1vdXRsaW5lKTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSxcbiAgICAmLmJ0bi1zdGF0ZS1hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCRkZWZhdWx0LWNvbG9ycywgYWN0aXZlKTtcbiAgICB9XG5cblxuXG4gICAgJjpkaXNhYmxlZCxcbiAgICAmLmJ0bi1zdGF0ZS1kaXNhYmxlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC5nZXQoJGRlZmF1bHQtY29sb3JzLCBkaXNhYmxlZCk7XG4gICAgICAgIGNvbG9yOiBtYXAuZ2V0KCRkZWZhdWx0LWNvbG9ycywgdGV4dC1kaXNhYmxlZCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogbWFwLmdldCgkZGVmYXVsdC1jb2xvcnMsIGJvcmRlci1kaXNhYmxlZCk7XG5cbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG5cbiAgICAmLmJ0bi1zcXVhcmUge1xuICAgICAgICBhc3BlY3QtcmF0aW86IDEvMTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICB3aWR0aDogMi41cmVtO1xuICAgICAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgICB9XG5cbn1cblxuLyogXG4gKiBNYWtlIHNraW5zIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBjb2xvcnMgYXQgdGhlIHRvcFxuICogdGhlIHNraW5zIGFyZSBwbGFjZWQgaW4gLmJ0bi17c2tpbi1uYW1lfVxuICovXG5AZWFjaCAkbmFtZSwgJGNvbG9ycyBpbiAkYnRuLXNraW5zIHtcbiAgICAuYnRuLWNvbG9yLSN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkY29sb3JzLCBiYXNlKTtcbiAgICAgICAgY29sb3I6IG1hcC5nZXQoJGNvbG9ycywgdGV4dCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC5nZXQoJGNvbG9ycywgYm9yZGVyKTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmLmJ0bi1zdGF0ZS1ob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCRjb2xvcnMsIGhvdmVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSxcbiAgICAgICAgJi5idG4tc3RhdGUtZm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkY29sb3JzLCBmb2N1cyk7XG4gICAgICAgICAgICBvdXRsaW5lLWNvbG9yOiBtYXAuZ2V0KCRjb2xvcnMsIGZvY3VzLW91dGxpbmUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUsXG4gICAgICAgICYuYnRuLXN0YXRlLWFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCRjb2xvcnMsIGFjdGl2ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmRpc2FibGVkLFxuICAgICAgICAmLmJ0bi1zdGF0ZS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCRjb2xvcnMsIGRpc2FibGVkKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAuZ2V0KCRjb2xvcnMsIHRleHQtZGlzYWJsZWQpO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAuZ2V0KCRjb2xvcnMsIGJvcmRlci1kaXNhYmxlZCk7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG4gICAgfVxufSIsIlxucWRuYS1pbnB1dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxucWRuYS1pbnB1dCAuaW5wdXQtd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMXJlbSAxLjI1cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbGluZS1oZWlnaHQ6IDFyZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpoYXMoaW5wdXQtcHJlZml4KSB7XG4gICAgICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgIH1cbn1cblxucWRuYS1pbnB1dCAuaW5wdXQtYm94IHtcbiAgICBmbGV4OiAxO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgY29sb3I6ICMwQjBCMEQ7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxucWRuYS1pbnB1dCAuaW5wdXQtYm94OjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICNhNmFhYjM7XG59XG5cbnFkbmEtaW5wdXRbc2l6ZT1cInNtXCJdIC5pbnB1dC13cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAwLjYyNXJlbSAwLjc1cmVtO1xuXG4gICAgJjpoYXMoaW5wdXQtcHJlZml4KSB7XG4gICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICB9XG59XG5cbnFkbmEtaW5wdXQ6aG92ZXIgLmlucHV0LXdyYXBwZXIsXG5xZG5hLWlucHV0W3N0YXRlPVwiaG92ZXJcIl0gLmlucHV0LXdyYXBwZXIge1xuICAgIGJvcmRlci1jb2xvcjogIzQwNDk5QTtcbn1cblxucWRuYS1pbnB1dFtzdGF0ZT1cImZvY3VzXCJdIC5pbnB1dC13cmFwcGVyIHtcbiAgICBib3JkZXItY29sb3I6ICM0MDQ5OUE7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoNjQsIDczLCAxNTQsIDAuMSk7XG59XG5cbnFkbmEtaW5wdXRbc3RhdGU9XCJzdWNjZXNzXCJdIC5pbnB1dC13cmFwcGVyIHtcbiAgICBib3JkZXItY29sb3I6ICM0MjhCNkU7XG59XG5cbnFkbmEtaW5wdXRbc3RhdGU9XCJlcnJvclwiXSAuaW5wdXQtd3JhcHBlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjQzY1QTVBO1xufVxuXG5xZG5hLWlucHV0W2Rpc2FibGVkXSAuaW5wdXQtd3JhcHBlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0YwRjFGMjtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjODk4RTk5O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbnFkbmEtaW5wdXRbZGlzYWJsZWRdIC5pbnB1dC1ib3gge1xuICAgIGNvbG9yOiAjODk4RTk5O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbnFkbmEtaW5wdXQgLmlucHV0LWljb24tcHJlZml4IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZy1yaWdodDogMC43NXJlbTtcbiAgICBjb2xvcjogIzY2Njtcbn1cblxucWRuYS1pbnB1dCAuaW5wdXQtZXh0ZXJuYWwtcHJlZml4IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZy1yaWdodDogMC43NXJlbTtcbn1cblxucWRuYS1pbnB1dCAuaW5wdXQtY2xlYXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgZm9udC1zaXplOiAwLjg3NTtcbiAgICBjb2xvcjogIzc3NztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbnFkbmEtaW5wdXRbZmlsbGVkXVtjbGVhcmFibGVdIC5pbnB1dC1jbGVhcixcbnFkbmEtaW5wdXRbZmlsbGVkXVtjbGVhcmFibGU9XCJ0cnVlXCJdIC5pbnB1dC1jbGVhciB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxucWRuYS1pbnB1dFtkaXNhYmxlZF0gLmlucHV0LWNsZWFyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgY29sb3I6ICNjY2M7XG59XG5cbnFkbmEtaW5wdXQucWRuYS1pbnB1dC1hcy10ZXh0IC5pbnB1dC13cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbnFkbmEtaW5wdXQucWRuYS1pbnB1dC1hcy10ZXh0IC5pbnB1dC1ib3gge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMHB4O1xuICAgIH1cbn1cblxuLmlucHV0LWRyb3Bkb3duIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjQzRDN0NDO1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDhweCA4cHg7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB6LWluZGV4OiAxMDAwO1xufVxuXG4uaW5wdXQtZHJvcGRvd24ub3BlbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5pbnB1dC13cmFwcGVyLmRyb3Bkb3duLW9wZW4ge1xuICAgIGJvcmRlci1yYWRpdXM6IDhweCA4cHggMCAwO1xufVxuXG5yb3ctaXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxucm93LWl0ZW06aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNGNUY2RkE7XG59XG5cbmRyb3Bkb3duLXJvdyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFMEUwRTA7XG59XG5cbmRyb3Bkb3duLXJvdzpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG5xZG5hLWlucHV0W3R5cGU9XCJjaGVja2JveFwiXSAuaW5wdXQtd3JhcHBlciB7XG4gICAgYWxsOiB1bnNldDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDRweCA2cHg7IFxuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxucWRuYS1pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gLmlucHV0LWJveCB7XG4gICAgYWxsOiByZXZlcnQ7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYWNjZW50LWNvbG9yOiAjNDA0OTlBO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxucWRuYS1pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gLmNoZWNrYm94LWxhYmVsIHtcbiAgICBhbGw6IHVuc2V0O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogIzBCMEIwRDtcbiAgICBsaW5lLWhlaWdodDogMTsgXG59XG5cbnFkbmEtaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdW2Rpc2FibGVkXSAuaW5wdXQtd3JhcHBlciB7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59IiwiQHVzZSBcInNhc3M6bWFwXCI7XG5cblxuJGxhYmVsLXNraW5zOiAoXG4gICAgXCJwcmltYXJ5XCI6IChiYXNlOiAjRjNGN0ZDLFxuICAgICAgICB0ZXh0OiAjNEY2ODg3LFxuICAgICAgICBib3JkZXI6ICM0RjY4ODcsXG4gICAgKSxcbiAgICBcInllbGxvd1wiOiAoYmFzZTogI0ZFRURCOCxcbiAgICAgICAgdGV4dDogIzk3N0YyRSxcbiAgICAgICAgYm9yZGVyOiAjOTc3RjJFLFxuICAgICksXG4gICAgXCJyZWRcIjogKGJhc2U6ICNmZWUzZTMsXG4gICAgICAgIHRleHQ6ICNjNjVhNWEsXG4gICAgICAgIGJvcmRlcjogI2M2NWE1YSxcbiAgICApLFxuICAgIFwiZ3JlZW5cIjogKGJhc2U6ICNjNWY1ZTIsXG4gICAgICAgIHRleHQ6ICM0MjhiNmUsXG4gICAgICAgIGJvcmRlcjogIzQyOGI2ZSxcbiAgICApLFxuICAgIFwic2Vjb25kYXJ5XCI6IChiYXNlOiAjZjBmMWYyLFxuICAgICAgICB0ZXh0OiAjNmI3MjgwLFxuICAgICAgICBib3JkZXI6ICM2YjcyODAsXG4gICAgKSxcbiAgICBcImJsdWVcIjogKGJhc2U6ICNlY2VkZjUsXG4gICAgICAgIHRleHQ6ICM0MDQ5OWEsXG4gICAgICAgIGJvcmRlcjogIzQwNDk5YSxcbiAgICApLFxuICAgIFwiYmx1ZS0yXCI6IChiYXNlOiAjZmZmZmZmLFxuICAgICAgICB0ZXh0OiAjNDA0OTlhLFxuICAgICAgICBib3JkZXI6ICM0MDQ5OWEsXG4gICAgKSxcbik7XG5cbi5pbWFnZS1jaXJjbGUtcmF0aW97XG4gICAgd2lkdGg6IDI5cHg7XG4gICAgaGVpZ2h0OiAyOXB4O1xuICAgIGFzcGVjdC1yYXRpbzogMS8xO1xuICAgIGJvcmRlci1yYWRpdXM6IGNhbGMoaW5maW5pdHkqMXB4KTtcbiAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG59XG5cbi5sYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbiAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiO1xuICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICBnYXA6IDAuMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICAmLmxhYmVsLW91dGxpbmUge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJi5sYWJlbC1zbXtcbiAgICAgICAgcGFkZGluZzogMHJlbSAwLjVyZW07XG4gICAgfVxuICAgICYtaWNvbi1wcmVmaXgge1xuICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgfVxufVxuXG5AZWFjaCAkbmFtZSwgJGNvbG9ycyBpbiAkbGFiZWwtc2tpbnMge1xuICAgIC5sYWJlbC0jeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC5nZXQoJGNvbG9ycywgYmFzZSk7XG4gICAgICAgIGNvbG9yOiBtYXAuZ2V0KCRjb2xvcnMsIHRleHQpO1xuXG4gICAgICAgICYubGFiZWwtb3V0bGluZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkY29sb3JzLCBiYXNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubGFiZWwtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLmdldCgkY29sb3JzLCBib3JkZXIpO1xuICAgICAgICB9XG5cbiAgICB9XG5cblxufSIsIkB1c2UgXCJzYXNzOm1hcFwiO1xuXG4kYmFkZ2Utc2tpbnM6IChcbiAgICBcInByaW1hcnlcIjogKGJhc2U6ICM0MDQ5OWEsXG4gICAgICAgIHRleHQ6ICNmZmZmZmYsXG4gICAgICAgIGJvcmRlcjogIzQwNDk5YSxcbiAgICApLFxuICAgIFwicHVycGxlXCI6IChiYXNlOiAjZTZlOWZmLFxuICAgICAgICB0ZXh0OiAjNDA0OTlhLFxuICAgICAgICBib3JkZXI6ICM0MDQ5OWEsXG4gICAgKSxcbiAgICBcInllbGxvd1wiOiAoYmFzZTogI0ZFRURCOCxcbiAgICAgICAgdGV4dDogIzk3N0YyRSxcbiAgICAgICAgYm9yZGVyOiAjOTc3RjJFLFxuICAgICksXG4gICAgXCJncmV5XCI6IChiYXNlOiAjZDNkNWQ5LFxuICAgICAgICB0ZXh0OiAjNmI3MjgwLFxuICAgICAgICBib3JkZXI6ICM2YjcyODAsXG4gICAgKSxcbiAgICBcInJlZFwiOiAoYmFzZTogI2ZlZjFmMSxcbiAgICAgICAgdGV4dDogI2M2NWE1YSxcbiAgICAgICAgYm9yZGVyOiAjYzY1YTVhLFxuICAgICksXG4gICAgXCJ0cmFuc3BhcmVudFwiOiAoYmFzZTogdHJhbnNwYXJlbnQsXG4gICAgICAgIHRleHQ6ICM2YjcyODAsXG4gICAgICAgIGJvcmRlcjogdHJhbnNwYXJlbnQsXG4gICAgKSxcblxuKTtcblxuXG4uYmFkZ2Uge1xuICAgIGJhY2tncm91bmQ6ICM0MDQ5OUE7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBwYWRkaW5nOiAwLjEyNXJlbSAwLjQzOHJlbTtcblxuICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG5cbiAgICBjb2xvcjogI0ZGRjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvcnMgaW4gJGJhZGdlLXNraW5zIHtcbiAgICAgICAgJi5iYWRnZS0jeyRuYW1lfSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCRjb2xvcnMsIGJhc2UpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC5nZXQoJGNvbG9ycywgdGV4dCk7XG5cbiAgICAgICAgICAgICYuYmFkZ2Utb3V0bGluZXtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC5nZXQoJGNvbG9ycywgYm9yZGVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufVxuXG5cbi5pbmRpY2F0b3ItYmFkZ2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEuNXJlbTtcbiAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBmbGV4LXNocmluazogMDtcblxuICAgIGJhY2tncm91bmQ6ICNmZjNhMzA7XG4gICAgYm9yZGVyLXJhZGl1czogMy4xM3JlbTtcblxuICAgIGNvbG9yOiAjRkZGO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuXG4gICAgJi5iYWRnZS1zbSB7XG4gICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMC42MjVyZW07XG4gICAgfVxuXG4gICAgJi5iYWRnZS14cyB7XG4gICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICBmb250LXNpemU6IDByZW07XG4gICAgfVxuXG4gICAgJi5iYWRnZS1kb3Qge1xuICAgICAgICBmb250LXNpemU6IDByZW07XG5cbiAgICB9XG59IiwiQHVzZSBcInNhc3M6bWFwXCI7XG5cblxuJHRhZ3Mtc2tpbnM6IChcbiAgICBcImdyYXlcIjogKGJhc2U6ICNmMGYxZjIsXG4gICAgICAgIGZpbGxlZC1iYXNlOiAjYzRjN2NjLFxuICAgICAgICB0ZXh0OiAjMWUxZjIwLFxuICAgICAgICBib3JkZXI6ICM2YjcyODAsXG4gICAgKSxcblxuICAgIFwicmVkXCI6IChiYXNlOiAjZmVlM2UzLFxuICAgICAgICBmaWxsZWQtYmFzZTogI2ZiYWFhYSxcblxuICAgICAgICB0ZXh0OiAjNjMzMDMwLFxuICAgICAgICBib3JkZXI6ICNjNjVhNWEsXG4gICAgKSxcbiAgICBcInllbGxvd1wiOiAoYmFzZTogI2ZlZjZkYixcbiAgICAgICAgZmlsbGVkLWJhc2U6ICNmZGU1OTQsXG5cbiAgICAgICAgdGV4dDogIzY1NTUyMixcbiAgICAgICAgYm9yZGVyOiAjOTc3RjJFLFxuICAgICksXG4gICAgXCJncmVlblwiOiAoYmFzZTogI2UyZmFmMSxcbiAgICAgICAgZmlsbGVkLWJhc2U6ICM4YmVjYzUsXG5cbiAgICAgICAgdGV4dDogIzJmNWQ0YSxcbiAgICAgICAgYm9yZGVyOiAjNDI4YjZlLFxuICAgICksXG4gICAgXCJibHVlXCI6IChiYXNlOiAjZTZlZmY5LFxuICAgICAgICBmaWxsZWQtYmFzZTogI2I1Y2VlZCxcblxuICAgICAgICB0ZXh0OiAjMzc0NzVhLFxuICAgICAgICBib3JkZXI6ICMzNzQ3NWEsXG4gICAgKSxcbiAgICBcImRhcmstYmx1ZVwiOiAoYmFzZTogI2Q2ZTBmOSxcbiAgICAgICAgZmlsbGVkLWJhc2U6ICM4NWExZWMsXG5cbiAgICAgICAgdGV4dDogIzE5MmE1YSxcbiAgICAgICAgYm9yZGVyOiAjNDA0OTlhLFxuICAgICksXG4gICAgXCJwaW5rXCI6IChiYXNlOiAjZjZlMWU4LFxuICAgICAgICBmaWxsZWQtYmFzZTogI2U1YTZiOSxcblxuICAgICAgICB0ZXh0OiAjNTYyZDNhLFxuICAgICAgICBib3JkZXI6ICM1NjJkM2EsXG4gICAgKSxcbiAgICBcInB1cnBsZVwiOiAoYmFzZTogI2ViZTlmYixcbiAgICAgICAgZmlsbGVkLWJhc2U6ICNjNGJjZjMsXG5cbiAgICAgICAgdGV4dDogIzQxM2I1ZSxcbiAgICAgICAgYm9yZGVyOiAjNDEzYjVlLFxuICAgICksXG5cblxuKTtcblxuLnRhZyB7XG5cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYxZjI7XG4gICAgY29sb3I6ICMxZTFmMjA7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogNi4yNXJlbTtcbiAgICBwYWRkaW5nOiAwLjEyNXJlbSAwLjg3NXJlbTtcblxuICAgIGdhcDogMC40NzVyZW07XG5cblxuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCI7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICAmLnRhZy1maWxsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRjN2NjO1xuICAgICAgICBjb2xvcjogIzFlMWYyMDtcbiAgICB9XG5cbiAgICAmLnRhZy1zbSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgcGFkZGluZzogMHJlbSAwLjVyZW07XG4gICAgICAgIGdhcDogMC4yNXJlbTtcblxuICAgIH1cbn1cblxuQGVhY2ggJG5hbWUsICRjb2xvcnMgaW4gJHRhZ3Mtc2tpbnMge1xuICAgIC50YWctI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCRjb2xvcnMsIGJhc2UpO1xuICAgICAgICBjb2xvcjogbWFwLmdldCgkY29sb3JzLCB0ZXh0KTtcblxuICAgICAgICAmLnRhZy1maWxsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkY29sb3JzLCBmaWxsZWQtYmFzZSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLmdldCgkY29sb3JzLCB0ZXh0KTtcbiAgICAgICAgfVxuXG4gICAgfVxufVxuXG5cbi8vdmFyaWFudD1jaXJjbGVcbi50YWctY2lyY2xlIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgcGFkZGluZzogMnB4IDE0cHg7XG4gIGdhcDogOHB4O1xuXG4gIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogMDtcblxuICAmOm5vdChbY2xhc3MqPVwidGFnLVwiXSkge1xuICAgIGJhY2tncm91bmQ6ICNDNEM3Q0M7XG4gICAgY29sb3I6ICMxZTFmMjA7XG4gIH1cblxuICAmLnRhZy1zbSB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHBhZGRpbmc6IDJweCAxMHB4O1xuICAgIGdhcDogNHB4O1xuICB9XG5cbiAgLnRhZy1pY29uLXByZWZpeCxcbiAgLnRhZy1pY29uLXN1ZmZpeCB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG5cbiAgJjpub3QoLnRhZy1zbSkge1xuICAgIC50YWctaWNvbi1wcmVmaXgge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogLTNweDtcbiAgICAgIHRvcDogLTNweDtcbiAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgfVxuICB9XG5cbiAgJi50YWctc20ge1xuICAgIC50YWctaWNvbi1wcmVmaXgge1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgIH1cbiAgfVxufSIsIkB1c2UgXCIuLi8uLi9tb2R1bGVzL3YxL2NvbG9yc1wiO1xuXG4ucWRuYS1zaWRlYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvcnMuJHB1cnBsZS01MDA7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMjBweDtcbiAgICBtYXgtd2lkdGg6IDEyMHB4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgLnNpZGViYXItbG9nbyB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG5cbiAgICB9XG5cbiAgICAuc2lkZWJhci1oZWFkZXIge1xuICAgICAgICBwYWRkaW5nOiAxNnB4O1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5zaWRlYmFyLWl0ZW1zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM2NjZkYWU7XG5cblxuICAgICAgICAuc2lkZWJhci1pdGVtIHtcbiAgICAgICAgICAgIGhlaWdodDogOTBweDtcbiAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogMTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDBweCAxNnB4O1xuICAgICAgICAgICAgd2lkdGg6IDEwNHB4O1xuXG4gICAgICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogMS8xO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cbiAgICAgICAgICAgICAgICAtd2Via2l0LW1hc2s6IHZhcigtLWljb24pIG5vLXJlcGVhdCBjZW50ZXIgLyBjb250YWluO1xuICAgICAgICAgICAgICAgIG1hc2s6IHZhcigtLWljb24pIG5vLXJlcGVhdCBjZW50ZXIgLyBjb250YWluO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuaXRlbS10aXRsZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNGRkY7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnNpZGViYXItaW5kaWNhdG9yIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAxMnB4O1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8vIGJhZGdlIG5pZXQga2xpa2JhYXIsIGl0ZW0gd2VsXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGNvbG9ycy4kcHVycGxlLTYwMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGNvbG9ycy4kbGlnaHQtcHVycGxlLTEwMDtcblxuICAgICAgICAgICAgICAgIC5pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDA0OTlhO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvcnMuJGxpZ2h0LXB1cnBsZS0xMDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiBjb2xvcnMuJHB1cnBsZS02MDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2lkZWJhci1mb290ZXIge1xuICAgICAgICBwYWRkaW5nOiAxNnB4O1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbn0iLCJAdXNlIFwiLi4vLi4vbW9kdWxlcy92MS9jb2xvcnNcIjtcbkB1c2UgXCIuLi8uLi9tb2R1bGVzL3YxL3R5cG9ncmFwaHlcIjtcblxucWRuYS1kcm9wZG93biB7XG5cbiAgICBkcm9wZG93biB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIHBhZGRpbmc6IDhweCA0cHg7XG4gICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDEycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xNSksIDAgNHB4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4zMCk7XG5cbiAgICAgICAgLnFkbmEtZHJvcGRvd24tbWVudSB7XG4gICAgICAgICAgICAubWVudS1pdGVtIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgICAgIC5tZW51LWNvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgIGdhcDogMTJweDtcblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllOWU5O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5pdGVtLWljb24ge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5pdGVtLWRhbmdlcntcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNDNjVBNUE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWVudS1kaXZpZGVyIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjQzRDN0NDO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIgQHVzZSBcInNhc3M6bWFwXCI7XG4gICBcbnFkbmEtZGlhbG9nIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxucWRuYS1kaWFsb2dbb3Blbl0ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnFkbmEtZGlhbG9nLW92ZXJsYXkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjUpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB6LWluZGV4OiAxMDAwO1xufVxuXG4ucWRuYS1kaWFsb2cge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBwYWRkaW5nOiAyMHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG1pbi13aWR0aDogMzAwcHg7XG4gIG1heC13aWR0aDogOTAlO1xuICBib3gtc2hhZG93OiAwIDVweCAxNXB4IHJnYmEoMCwwLDAsMC4zKTtcbn1cblxuLnFkbmEtZGlhbG9nLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxucWRuYS1kaWFsb2cgcWRuYS1idXR0b24ge1xuICBtYXJnaW46IDVweDtcbn0iLCJAdXNlIFwic2FzczptYXBcIjtcblxucWRuYS1uYXYtYnV0dG9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCAycHggI0UwRTBFMDtcbiAgLy8gb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3ZlcmZsb3c6dmlzaWJsZTsgLy9mb3IgdG9vbHRpcCB1c2VcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG5uYXZpZ2F0aW9uLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0NDQztcbiAgcGFkZGluZzogMTJweCA4cHg7XG4gIGdhcDogNHB4O1xuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICB9XG59XG5cbi5uYXYtYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDEycHg7XG59XG5cbi5uYXYtbGVmdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuXG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIFxufVxuXG5uYXZpZ2F0aW9uLWdyb3VwW3R5cGU9XCJkb2MtcHJldmlld1wiXSAubmF2LWxlZnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiA4cHggMTJweDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0UwRTBFMDtcbn1cblxuLm5hdi1yaWdodCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xufVxuXG4ubmF2LWF2YXRhciB7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi5uYXYtdXNlcm5hbWUge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiAjMzMzO1xufVxuXG4ubmF2LXBhZ2UtY3VycmVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBoZWlnaHQ6IDMycHg7ICBcbiAgcGFkZGluZzogMCAxMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm5hdi1wYWdlLXNlcGFyYXRvciB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICM5OTk7XG59XG5cbi5uYXYtcGFnZS10b3RhbCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgIGNvbG9yOiAjOTk5O1xufVxuXG5cblxubmF2aWdhdGlvbi1saW5rIHtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiBibGFjaztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4ycywgYmFja2dyb3VuZCAwLjJzO1xuICBwYWRkaW5nOiA0cHggMTJweCAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgIGJhY2tncm91bmQ6ICNFRkVGRUY7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgIH1cbiAgfVxuXG4gICZbYWN0aXZlXSB7XG4gICAgYmFja2dyb3VuZDogI2U2ZTlmZjtcbiAgICBjb2xvcjogIzQwNDk5YTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICBoZWlnaHQ6IDJweDtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDA0OTlhO1xuICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBlYXNlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gIC5uYXYtbGlua19fYXJyb3cge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcblxuICAgICYuaXMtb3BlbiB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIH1cbiAgfVxuXG4gIC5uYXYtbGlua19faWNvbiB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cblxuICAubmF2LWxpbmtfX3RleHQge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBkaXNwbGF5OmZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cblxuJltkaXNhYmxlZF0ge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMC43O1xuXG4gIGNvbG9yOiAjOWU5ZTllO1xuXG4gIC5uYXYtbGlua19faWNvbixcbiAgLm5hdi1saW5rX19hcnJvdyxcbiAgLm5hdi1iYWRnZSB7XG4gICAgY29sb3I6ICNiZGJkYmQ7XG4gIH1cbn1cblxuJltkaXNhYmxlZF1bYWN0aXZlXSB7XG4gIGJhY2tncm91bmQ6ICNlNmU5ZmY7XG4gIGNvbG9yOiAjOWU5ZTllO1xuXG4gICY6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmRiZGJkO1xuICB9XG5cbiAgLm5hdi1saW5rX19pY29uLFxuICAubmF2LWxpbmtfX2Fycm93IHtcbiAgICBjb2xvcjogI2JkYmRiZDtcbiAgfVxuXG4gIC5uYXYtYmFkZ2Uge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgfVxufVxuXG4gIFxuICAubmF2LWxpbmtfX2ljb24td3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAubmF2LWJhZGdlIHtcbiBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgcmlnaHQ6IDEwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwMCUsIC01MCUpO1xuICB3aWR0aDogMTRweDtcbiAgaGVpZ2h0OiAxNHB4O1xuICBwYWRkaW5nOiAwO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGZvbnQtc2l6ZTogOXB4OyBcbiAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjb2xvcjogI2ZmZjtcblxuICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG4gIC5uYXYtYmFkZ2UtLXJlZCB7XG4gICAgYmFja2dyb3VuZDogI2ZmNGQ0ZjtcbiAgfVxuICAubmF2LWJhZGdlLS1oaWdobGlnaHQge1xuICAgIGJhY2tncm91bmQ6ICM0MDQ5OWE7XG4gIH1cbiAgLm5hdi1iYWRnZS0tZG90IHtcbiAgICB3aWR0aDogOHB4O1xuICAgIGhlaWdodDogOHB4O1xuICAgIG1pbi13aWR0aDogOHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB9XG4gICYubmF2LWxpbmstLXNtIHtcbiAgICAubmF2LWJhZGdlIHtcbiAgICAgIHRvcDogLTJweDtcbiAgICAgIHJpZ2h0OiAtNHB4O1xuICAgICAgbWluLXdpZHRoOiAxNHB4O1xuICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgZm9udC1zaXplOiA5cHg7XG4gICAgfVxuXG4gICAgLm5hdi1iYWRnZS0tZG90IHtcbiAgICAgIHdpZHRoOiA2cHg7XG4gICAgICBoZWlnaHQ6IDZweDtcbiAgICAgIG1pbi13aWR0aDogNnB4O1xuICAgIH1cbiAgfVxuICAmW2Rpc2FibGVkXSAubmF2LWJhZGdlIHtcbiAgICBvcGFjaXR5OiAwLjY7XG4gIH1cbn1cblxuLyogRHJvcGRvd246IGdlYnJ1aWt0IGRvb3IgTmF2aWdhdGlvbkdyb3VwIChjbGFzcyB0b2VnZXZvZWdkIGluIEpTKSAqL1xuLm5hdi1kcm9wZG93biB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAwMDtcblxuICAmLmlzLW9wZW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbn1cblxuLyogZmFsbGJhY2s6IGFscyBlciBub2cgb3VkZSBtYXJrdXAgbGVlZnQgKi9cbi8vIHFkbmEtZHJvcGRvd24gPiBkcm9wZG93biB7XG4vLyAgIGRpc3BsYXk6IG5vbmU7XG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgei1pbmRleDogMTAwMDtcbi8vIH1cbiIsIkB1c2UgXCJzYXNzOm1hcFwiO1xuXG4ucWRuYS1tb2RhbC1vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC41KTtcbiAgZGlzcGxheTogbm9uZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHotaW5kZXg6IDk5OTk7XG59XG5cbi5xZG5hLW1vZGFsLW92ZXJsYXkub3BlbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5xZG5hLW1vZGFsIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gXG4gIGJveC1zaGFkb3c6IDAgMTBweCAyNXB4IHJnYmEoMCwwLDAsMC4yKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuXG4vKiBTaXplcyAqL1xuXG4ubW9kYWwtc20ge1xuICB3aWR0aDogNDAwcHg7XG59XG5cbi5tb2RhbC1tZCB7XG4gIHdpZHRoOiA3MDBweDtcbn1cblxuLm1vZGFsLWxnIHtcbiAgd2lkdGg6IDEwMDBweDtcbn1cblxuLm1vZGFsLXhsIHtcbiAgd2lkdGg6IDkwJTtcbiAgaGVpZ2h0OiA5MCU7XG59XG5tb2RhbC1oZWFkZXIsIG1vZGFsLWJvZHksIG1vZGFsLWZvb3RlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxcmVtO1xufVxuXG5cbm1vZGFsLWhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uY2xvc2UtYnRuIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwcHg7XG4gIHJpZ2h0OiAxMnB4O1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBsaW5lLWhlaWdodDogMTtcbn1cbm1vZGFsLWZvb3RlciB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbiIsIkB1c2UgXCJzYXNzOm1hcFwiO1xuXG4kY2FyZC1za2luczogKFxuICAgIFwiZGVmYXVsdFwiOiAoYmc6ICNmZmZmZmYpLFxuICAgIFwicHVycGxlXCI6IChiZzogI0RBRERGMiksXG4pO1xuXG4ucWRuYS1jYXJkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3JzIGluICRjYXJkLXNraW5zIHtcbiAgICAgICAgJi5xZG5hLWNhcmQtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG1hcC5nZXQoJGNvbG9ycywgYmcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgPiBjYXJkLWhlYWRlci5xZG5hLWNhcmRfX2hlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMS41cmVtO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgIGNvbG9yOiAjNDA0OTlBO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0Q5REJFQjtcblxuICAgICAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICA+IGNhcmQtaGVhZGVyLnFkbmEtY2FyZF9faGVhZGVyPmNhcmQtYWN0aW9ucy5xZG5hLWNhcmRfX2FjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgZ2FwOiAwLjVyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgID4gY2FyZC1ib2R5LnFkbmEtY2FyZF9fYm9keSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMS41cmVtIDJyZW0gMS41cmVtO1xuICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgIH1cblxuICAgIC5jYXJkLWZvcm0tc2VjdGlvbiB7XG4gICAgICAgIGNvbG9yOiAjMEIwQjBEO1xuICAgICAgICBmb250LWZhbWlseTogSW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgICAgICAuY2FyZC1mb3JtLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiAjMEIwQjBEO1xuICAgICAgICAgICAgcGFkZGluZzogOHB4IDBweCA0cHggMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm5vbl9lZGl0YWJsZV9maWVsZCBpbnB1dDpub3QoOmRpc2FibGVkKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xuICAgICAgICB9XG5cbiAgICB9XG59XG5cbi50cy1jYXJkLWxpc3QtZ3JvdXAgLmZvcm0tY29udHJvbDpkaXNhYmxlZCxcbi50cy1jYXJkLWxpc3QtZ3JvdXAgLmZvcm0tY29udHJvbFtyZWFkb25seV0ge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0Ym9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG5cdGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cbi50cy1jYXJkLWxpc3QtZ3JvdXAge1xuXHRidXR0b24ge1xuXHRcdCYuZm9ybS1jb250cm9sIHtcblx0XHRcdCY6ZGlzYWJsZWQge1xuXHRcdFx0XHRjb2xvcjogIzg3ODc4NyAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQuc2VsZWN0Mi1jb250YWluZXItLWJvb3RzdHJhcDQge1xuXHRcdCYuc2VsZWN0Mi1jb250YWluZXItLWRpc2FibGVkIHtcblx0XHRcdC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC50cy1jYXJkLWxheW91dC1yb3cge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdGdhcDogMTJweDtcblx0XHRhbGlnbi1pdGVtczogc3RyZXRjaDtcblx0fVxuXHQudHMtY2FyZC1sYXlvdXQtY29sIHtcblx0XHRmbGV4OiAxIDEgMDtcblx0XHRtaW4td2lkdGg6IDA7XG5cdH1cbn1cbi50cy1jYXJkLWxpc3QtZ3JvdXAgLnNlbGVjdDItY29udGFpbmVyLS1ib290c3RyYXA0LnNlbGVjdDItY29udGFpbmVyLS1kaXNhYmxlZCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSxcbi50cy1jYXJkLWxpc3QtZ3JvdXAgLnNlbGVjdDItY29udGFpbmVyLS1ib290c3RyYXA0LnNlbGVjdDItY29udGFpbmVyLS1kaXNhYmxlZCAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0Ym9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG5cdGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xuICAgIC50cy1jYXJkLWxpc3QtZ3JvdXAgLnRzLWNhcmQtbGF5b3V0LWNvbCB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgfVxufSIsIkB1c2UgXCJzYXNzOm1hcFwiO1xuXG5xZG5hLWNhcmQtdW5pdC10eXBlIHtcbiAgICBkaXNwbGF5OiBjb250ZW50czsgLy8gbGV0IHRoZSBpbm5lciAudW5pdC10eXBlIHBhcnRpY2lwYXRlIGluIHRoZSBncmlkIGRpcmVjdGx5XG59XG5cbi51bml0LXR5cGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjsgXG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXdlaWdodDogbm9ybWFsOyAgICAgIC8vIHJlc2V0IGFueSBpbmhlcml0ZWQgYm9sZFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgICAgLy8gcmVzZXQgYW55IGluaGVyaXRlZCB1bmRlcmxpbmVcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgbWluLWhlaWdodDogMTIwcHg7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjZmODtcbiAgICB9XG5cbiAgICAmX190b3Age1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyAgLy8gZXhwbGljaXQsIG5vIGFtYmlndWl0eVxuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gMS41cmVtIDAuNXJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgIC8vIHZlcnRpY2FsbHkgY2VudGVyIGljb24gd2l0aCB0ZXh0IGJsb2NrXG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIGZsZXg6IDAgMCA0OHB4O1xuICAgICAgICB3aWR0aDogNDhweDtcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiA0NHB4O1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7ICAgLy8gYmVsdC1hbmQtc3VzcGVuZGVycyB2ZXJ0aWNhbCBjZW50ZXJpbmdcblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7ICAgLy8gcmVtb3ZlcyBpbmxpbmUgaW1hZ2UgZ2FwXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19oZWFkaW5nIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLVR5cGUtRm9udC1GYW1pbHktcHJpbWFyeSwgSW50ZXIpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLUZvbnQtc2l6ZS1Cb2R5LUludGVyLW1lZGl1bS0xNCwgMTRweCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1MaW5lLUhlaWdodC1Cb2R5LUJvZHktTWVkaXVtLUNhcHRpb24sIDI0cHgpO1xuICAgICAgICBjb2xvcjogdmFyKC0tVGV4dC1Cb2R5LCAjMEIwQjBEKTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cblxuICAgICZfX3N1YmhlYWRpbmcge1xuICAgICAgICBmb250LWZhbWlseTogdmFyKC0tVHlwZS1Gb250LUZhbWlseS1wcmltYXJ5LCBJbnRlcik7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tRm9udC1zaXplLUJvZHktc21hbGwtMTIsIDEycHgpO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tTGluZS1IZWlnaHQtQm9keS1Cb2R5LVNtYWxsLCAyMHB4KTtcbiAgICAgICAgY29sb3I6IHZhcigtLVRleHQtQm9keS1TZWNvbmRhcnksICM2QjcyODApO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB9XG5cbiAgICAmX19pbmZvIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiByb3c7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMS41cmVtIDAuNzVyZW07XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgICAgJltoaWRkZW5dIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wYWlyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgICB9XG5cbiAgICAmX19sYWJlbCxcbiAgICAmX192YWx1ZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1UeXBlLUZvbnQtRmFtaWx5LXByaW1hcnksIEludGVyKTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1Gb250LXNpemUtQm9keS1zbWFsbC0xMiwgMTJweCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1MaW5lLUhlaWdodC1Cb2R5LUJvZHktU21hbGwsIDIwcHgpO1xuICAgICAgICBjb2xvcjogdmFyKC0tU3VyZmFjZS1TaWduYWwtU2lnbmFsLWdyZXktRGV0YWlsLCAjNkI3MjgwKTtcbiAgICB9XG59XG5cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBPTEQgU1RZTEVTIOKAlCBrZXB0IGZvciByZWZlcmVuY2UsIG5vIGxvbmdlciBhY3RpdmVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyAudG9wLXJvdyB7XG4vLyAgICAgZGlzcGxheTogZmxleDtcbi8vICAgICBnYXA6IDEycHg7XG4vLyAgICAgcGFkZGluZzogMjVweCAyNXB4O1xuLy8gICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4vLyAgICAgYmFja2dyb3VuZDogI2ZmZjtcbi8vICAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xuLy8gICAgIGhlaWdodDogMTA0cHg7XG4vLyAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4vLyB9XG4vL1xuLy8gLnRvcC1yb3c6aG92ZXIge1xuLy8gICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG4vLyAgICAgY3Vyc29yOiBwb2ludGVyO1xuLy8gfVxuLy9cbi8vIC5pY29uIHtcbi8vICAgICBmbGV4OiAwIDAgNDBweDtcbi8vICAgICBkaXNwbGF5OiBmbGV4O1xuLy8gICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4vLyAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4vLyB9XG4vL1xuLy8gLmljb24gaW1nIHtcbi8vICAgICB3aWR0aDogMzZweDtcbi8vICAgICBoZWlnaHQ6IDM2cHg7XG4vLyB9XG4vL1xuLy8gLmNvbnRlbnQge1xuLy8gICAgIGZsZXg6IDE7XG4vLyAgICAgZGlzcGxheTogZmxleDtcbi8vICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuLy8gfVxuLy9cbi8vIC5oZWFkaW5nIHtcbi8vICAgICBmb250LXdlaWdodDogYm9sZDtcbi8vICAgICBmb250LXNpemU6IDE4cHg7XG4vLyB9XG4vL1xuLy8gLnN1YmhlYWRpbmcge1xuLy8gICAgIGZvbnQtc2l6ZTogMTRweDtcbi8vICAgICBjb2xvcjogIzY2Njtcbi8vICAgICBtYXJnaW4tdG9wOiA0cHg7XG4vLyB9XG4vL1xuLy8gLmluZm8tcm93IHtcbi8vICAgICBkaXNwbGF5OiBmbGV4O1xuLy8gICAgIHdpZHRoOiAxMDAlO1xuLy8gICAgIHBhZGRpbmc6IDE1cHggMjVweDtcbi8vICAgICBmb250LXNpemU6IDE0cHg7XG4vLyAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlZWU7XG4vLyAgICAgZ2FwOiAyMHB4O1xuLy8gICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuLy8gfVxuLy9cbi8vIC52YWx1ZSB7XG4vLyAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4vLyB9IiwiQHVzZSBcInNhc3M6bWFwXCI7XG46aG9zdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzO1xuICB3aWR0aDogNDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC0tcGFkZGluZzogNnB4IDEwcHg7XG4gIC0tZm9udC1zaXplOiAxNHB4O1xuICAtLWljb24tc2l6ZTogMThweDtcbiAgLS1jb3VudC13aWR0aDogMzBweDtcbiAgLS1jb2xvcjogIzAwMDtcbiAgLS1vcGFjaXR5OiAxO1xuICAtLWhvdmVyLWJnOiByZ2JhKDAsMCwwLDAuMDYpO1xufVxuXG4ud3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogdmFyKC0tcGFkZGluZyk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplKTtcbn1cblxuLmxlZnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNWVtO1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5pY29uIHtcbiAgZm9udC1mYW1pbHk6IFwiTWF0ZXJpYWwgRGVzaWduIEljb25zXCI7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogdmFyKC0taWNvbi1zaXplKTtcbiAgZm9udC1zaXplOiB2YXIoLS1pY29uLXNpemUpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1jb2xvcik7XG4gIG9wYWNpdHk6IHZhcigtLW9wYWNpdHkpO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnRleHQge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBjb2xvcjogdmFyKC0tY29sb3IpO1xuICBvcGFjaXR5OiB2YXIoLS1vcGFjaXR5KTtcbn1cblxuLmNvdW50IHtcbiAgbWluLXdpZHRoOiB2YXIoLS1jb3VudC13aWR0aCk7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBjb2xvcjogdmFyKC0tY29sb3IpO1xuICBvcGFjaXR5OiB2YXIoLS1vcGFjaXR5KTtcbn1cblxuOmhvc3QoOmhvdmVyKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWhvdmVyLWJnKTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIDpob3N0IHsgd2lkdGg6IDgwJTsgfVxufVxuIiwiQHVzZSBcInNhc3M6bWFwXCI7XG5cbnFkbmEtc2VhcmNoLWJhciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG5xZG5hLXNlYXJjaC1iYXIgLnFkbmEtc2VhcmNoLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAgOHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJhY2tncm91bmQ6ICNGRkY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgZ2FwOiA2cHhcbn1cbnFkbmEtc2VhcmNoLWJhciAuaW5wdXQge1xuICBmbGV4OiAxO1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBjb2xvcjogIzIyMjtcbiAgd2lkdGg6IDEwMCU7XG59XG5xZG5hLXNlYXJjaC1iYXIgLmlucHV0OjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjOTk5O1xufVxucWRuYS1zZWFyY2gtYmFyIC5pY29uIHtcbiAgY29sb3I6ICM3Nzc7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogY29udGVudHM7XG59XG5xZG5hLXNlYXJjaC1iYXIgLmNsb3NlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbnFkbmEtc2VhcmNoLWJhciAubGVmdC1idG4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgaGVpZ2h0OiAzMHB4O1xuICBtaW4td2lkdGg6IDMwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBiYWNrZ3JvdW5kOiAjRTZFOUZGO1xuICBjb2xvcjogIzQwNDk5QTtcbn1cbnFkbmEtc2VhcmNoLWJhciAubGVmdC1idG46Zm9jdXMsXG5xZG5hLXNlYXJjaC1iYXIgLmxlZnQtYnRuOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiBub25lO1xufVxucWRuYS1zZWFyY2gtYmFyIC5idG4tbGFiZWw6ZW1wdHkge1xuICBkaXNwbGF5OiBub25lO1xufVxucWRuYS1zZWFyY2gtYmFyOm5vdChbc3RhdGU9XCJmb2N1c1wiXSk6bm90KFtzdGF0ZT1cImZpbGxlZFwiXSk6aG92ZXIgLnFkbmEtc2VhcmNoLWNvbnRhaW5lciB7XG4gIGJvcmRlci1jb2xvcjogIzQwNDk5QTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjNDA0OTlBO1xuICBiYWNrZ3JvdW5kOiNGRkY7XG59XG5xZG5hLXNlYXJjaC1iYXJbc3RhdGU9XCJmb2N1c1wiXSAucWRuYS1zZWFyY2gtY29udGFpbmVyIHtcbiAgICAgYm9yZGVyOiAxcHggc29saWQgIzQwNDk5QTtcbiAgICAgYm94LXNoYWRvdzowIDAgMCAzcHggI2ZmZmZmZiwwIDAgMCA0cHggIzQwNDk5QTsgXG59XG5xZG5hLXNlYXJjaC1iYXJbc3RhdGU9XCJmaWxsZWRcIl0gLnFkbmEtc2VhcmNoLWNvbnRhaW5lciB7XG4gIGJvcmRlci1jb2xvcjogIzQwNDk5QTtcbn1cbnFkbmEtc2VhcmNoLWJhcltkaXNhYmxlZF0gLnFkbmEtc2VhcmNoLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG4gIGJvcmRlci1jb2xvcjogI2UwZTBlMDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbnFkbmEtc2VhcmNoLWJhcltkaXNhYmxlZF0gLmlucHV0IHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgY29sb3I6ICNhYWE7XG59XG5xZG5hLXNlYXJjaC1iYXJbZGlzYWJsZWRdIC5pY29uIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgY29sb3I6ICNjY2M7XG59XG4iLCJAdXNlIFwic2FzczptYXBcIjtcblxucWRuYS1jb2x1bW4taXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAycHg7XG59XG5xZG5hLWNvbHVtbi1pdGVtIC5xZG5hLWNvbHVtbi1jb21wb25lbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDhweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjNDA0OTlBO1xuICBiYWNrZ3JvdW5kOiAjRTZFOUZGO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4taGVpZ2h0OiA0MHB4O1xuICBsaW5lLWhlaWdodDogMTtcbn1cbnFkbmEtY29sdW1uLWl0ZW0gLnFkbmEtbGVmdC1zZWN0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxNnB4O1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG59XG5xZG5hLWNvbHVtbi1pdGVtIC5xZG5hLWNoZWNrYm94LXdyYXBwZXIge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbnFkbmEtY29sdW1uLWl0ZW0gLnFkbmEtY2hlY2tib3gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBtYXJnaW46IDA7XG4gIG9wYWNpdHk6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbnFkbmEtY29sdW1uLWl0ZW0gLnFkbmEtY2hlY2tib3gtdWkge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlcjogMS41cHggc29saWQgIzQwNDk5QTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxucWRuYS1jb2x1bW4taXRlbVtjaGVja2JveC1zaGFwZT1cInJvdW5kXCJdIC5xZG5hLWNoZWNrYm94LXVpIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxucWRuYS1jb2x1bW4taXRlbSAucWRuYS1jaGVja2JveC11aTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgYm9yZGVyOiBzb2xpZCAjZmZmZmZmO1xuICBib3JkZXItd2lkdGg6IDAgMnB4IDJweCAwO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIG9wYWNpdHk6IDA7XG59XG5xZG5hLWNvbHVtbi1pdGVtW2NoZWNrZWRdIC5xZG5hLWNoZWNrYm94LXVpIHtcbiAgYmFja2dyb3VuZDogIzQ2NTJGMztcbiAgYm9yZGVyLWNvbG9yOiAjNDY1MkYzO1xufVxucWRuYS1jb2x1bW4taXRlbVtjaGVja2VkXSAucWRuYS1jaGVja2JveC11aTo6YWZ0ZXIge1xuICBvcGFjaXR5OiAxO1xufVxucWRuYS1jb2x1bW4taXRlbTpub3QoW2NoZWNrYm94LXN0YXRlPVwiZGlzYWJsZWRcIl0pXG4ucWRuYS1jaGVja2JveC13cmFwcGVyOmhvdmVyIC5xZG5hLWNoZWNrYm94LXVpIHtcbiAgYm9yZGVyLWNvbG9yOiAjNDY1MkYzO1xufVxucWRuYS1jb2x1bW4taXRlbTpmb2N1cy13aXRoaW4gLnFkbmEtY2hlY2tib3gtdWkge1xuICBvdXRsaW5lOiAycHggc29saWQgcmdiYSg3MCwgODIsIDI0MywgMC4zNSk7XG4gIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5xZG5hLWNvbHVtbi1pdGVtW2NoZWNrYm94LXN0YXRlPVwiZGlzYWJsZWRcIl0ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbnFkbmEtY29sdW1uLWl0ZW1bY2hlY2tib3gtc3RhdGU9XCJkaXNhYmxlZFwiXSAucWRuYS1jaGVja2JveC11aSB7XG4gIGJhY2tncm91bmQ6ICNGMkY0Rjc7XG4gIGJvcmRlci1jb2xvcjogI0QwRDVERDtcbn1cbnFkbmEtY29sdW1uLWl0ZW1bY2hlY2tib3gtc3RhdGU9XCJkaXNhYmxlZFwiXVtjaGVja2VkXVxuLnFkbmEtY2hlY2tib3gtdWk6OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjMTAxODI4O1xufVxucWRuYS1jb2x1bW4taXRlbVtjaGVja2JveC1zdGF0ZT1cImRpc2FibGVkXCJdIC5xZG5hLWNvbHVtbi1jb21wb25lbnQge1xuICBvcGFjaXR5OiAwLjY7XG59XG5xZG5hLWNvbHVtbi1pdGVtIC5xZG5hLXZpc2liaWxpdHkge1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC1mYW1pbHk6IFwiTWF0ZXJpYWwgRGVzaWduIEljb25zXCI7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgY29sb3I6ICM0MDQ5OUE7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxucWRuYS1jb2x1bW4taXRlbTpub3QoW3Zpc2liaWxpdHk9XCJoaWRkZW5cIl0pIC5xZG5hLXZpc2liaWxpdHk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDFEQlwiO1xufVxucWRuYS1jb2x1bW4taXRlbVt2aXNpYmlsaXR5PVwiaGlkZGVuXCJdIC5xZG5hLXZpc2liaWxpdHkge1xuICBkaXNwbGF5OiBub25lO1xufVxucWRuYS1jb2x1bW4taXRlbSAucWRuYS1jb2x1bW4tbGFiZWwge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiAjNDA0OTlBO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbnFkbmEtY29sdW1uLWl0ZW0gLnFkbmEtcmlnaHQtc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBmbGV4LXNocmluazogMDtcbn1cbnFkbmEtY29sdW1uLWl0ZW0gLnFkbmEtY29sdW1uLW1lc3NhZ2Uge1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjNDA0OTlBO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5xZG5hLWNvbHVtbi1pdGVtW21lc3NhZ2VdIC5xZG5hLWNvbHVtbi1tZXNzYWdlIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbnFkbmEtY29sdW1uLWl0ZW0gLnFkbmEtbWVzc2FnZS10aWNrIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5xZG5hLWNvbHVtbi1pdGVtW21lc3NhZ2VdIC5xZG5hLW1lc3NhZ2UtdGljayB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5xZG5hLWNvbHVtbi1pdGVtIC5xZG5hLW1lc3NhZ2UtdGljazo6YmVmb3JlIHtcbiAgY29udGVudDogXCLinJNcIjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICM0MDQ5OUE7XG59XG4iLCJAdXNlIFwic2FzczptYXBcIjtcblxuam9iLWNhcmQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC0tYmctbGlnaHQ6ICNmMmY0Zjc7XG4gIC0tYmctZGFyazogI2YyZjRmNztcbn1cblxuXG5qb2ItY2FyZCAuam9iLWNhcmQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1saWdodCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkMGQ1ZGQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogOHB4IDEwcHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmpvYi1jYXJkOmhvdmVyIC5qb2ItY2FyZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJnLWRhcmspO1xufVxuXG5qb2ItY2FyZFtzdGF0dXM9XCJzY2hlZHVsZWRcIl0ge1xuICAtLWJnLWxpZ2h0OiAjZjJmNGY3O1xuICAtLWJnLWRhcms6ICNkMGQ1ZGQ7XG59XG5cbmpvYi1jYXJkW3N0YXR1cz1cIm92ZXJkdWVcIl0ge1xuICAtLWJnLWxpZ2h0OiAjZmRlMmU3O1xuICAtLWJnLWRhcms6ICNmN2JmYzg7XG59XG5cbmpvYi1jYXJkW3N0YXR1cz1cImluLXByb2dyZXNzXCJdIHtcbiAgLS1iZy1saWdodDogI2ZmZjZkMTtcbiAgLS1iZy1kYXJrOiAjZmZlOWE2O1xufVxuXG5cbmpvYi1jYXJkW3N0YXR1cz1cImNvbXBsZXRlZFwiXSB7XG4gIC0tYmctbGlnaHQ6ICNlNmY3ZWM7XG4gIC0tYmctZGFyazogI2M2ZWZkOTtcbn1cblxuLyogRHJhZyAvIEFjdGl2ZSBTdGF0ZSAqL1xuXG5qb2ItY2FyZFtzdGF0ZT1cImRyYWdcIl0ge1xuICAtLWJnLWxpZ2h0OiAjZWVmNGZmO1xuICAtLWJnLWRhcms6ICNkYmU0ZmY7XG59XG5cbmpvYi1jYXJkW3N0YXRlPVwiZHJhZ1wiXSAuam9iLWNhcmQge1xuICBvcGFjaXR5OiAwLjY7XG4gIGN1cnNvcjogZ3JhYmJpbmc7XG59XG5cbmpvYi1jYXJkW3N0YXRlPVwiYWN0aXZlXCJdIHtcbiAgLS1iZy1saWdodDogI2VlZjRmZjtcbiAgLS1iZy1kYXJrOiAjZGJlNGZmO1xufVxuXG5cbmpvYi1jYXJkIC5yb3ctdGltZSxcbmpvYi1jYXJkIC5yb3ctdXNlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiA4cHg7XG59XG5cbmpvYi1jYXJkIC5yb3ctdXNlciB7XG4gIG1hcmdpbi10b3A6IDZweDtcbn1cblxuXG5qb2ItY2FyZCAuYXZhdGFyIHtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogI2U0ZTdlYztcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbmpvYi1jYXJkIC5hdmF0YXIgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5cblxuam9iLWNhcmQgLnVzZXJuYW1lIHtcbiAgZmxleDogMTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG5qb2ItY2FyZCAudGltZSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuXG5cbmpvYi1jYXJkW3NpemU9XCJzbVwiXSAucm93LXRpbWUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5qb2ItY2FyZFtzaXplPVwic21cIl0gLnJvdy11c2VyIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuam9iLWNhcmRbc2l6ZT1cInNtXCJdIC51c2VybmFtZSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cbiIsInFkbmEtZHJvcGRvd24tbWVudSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7IFxuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbnFkbmEtZHJvcGRvd24tbWVudS5kcm9wZG93bi1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbnFkbmEtZHJvcGRvd24tbWVudSBkcm9wZG93bi10cmlnZ2VyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogMTAwJTtcbn1cblxucWRuYS1kcm9wZG93bi1tZW51IGRyb3Bkb3duLXRyaWdnZXIgPiAqIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbnFkbmEtZHJvcGRvd24tbWVudSBkcm9wZG93biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHotaW5kZXg6IDk5OTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcbiAgcGFkZGluZzogNHB4IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwOyBcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG5xZG5hLWRyb3Bkb3duLW1lbnUuZHJvcGRvd24tb3BlbiBkcm9wZG93biB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5xZG5hLWRyb3Bkb3duLW1lbnUuZHJvcGRvd24tc2l6ZS1zbSBkcm9wZG93biB7IGZvbnQtc2l6ZTogMTJweDsgfVxucWRuYS1kcm9wZG93bi1tZW51LmRyb3Bkb3duLXNpemUtbWQgZHJvcGRvd24geyBmb250LXNpemU6IDE0cHg7IH1cbnFkbmEtZHJvcGRvd24tbWVudS5kcm9wZG93bi1zaXplLWxnIGRyb3Bkb3duIHsgZm9udC1zaXplOiAxNnB4OyB9XG5cbmRyb3Bkb3duLW9wdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZTtcbn1cblxuZHJvcGRvd24tb3B0aW9uOmhvdmVyIHsgYmFja2dyb3VuZDogI2Y1ZjZmYTsgfVxuZHJvcGRvd24tb3B0aW9uLnNlbGVjdGVkIHsgYmFja2dyb3VuZDogI2VlZjJmZjsgY29sb3I6ICM0MDQ5OWE7IH1cbmRyb3Bkb3duLW9wdGlvbi5kaXNhYmxlZCB7IG9wYWNpdHk6IDAuNTsgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuXG5xZG5hLWRyb3Bkb3duLW1lbnUgZHJvcGRvd24ge1xuICBtYXgtaGVpZ2h0OiAyNjBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxucWRuYS1kcm9wZG93bi1tZW51IGRyb3Bkb3duOjotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiA2cHg7IH1cbnFkbmEtZHJvcGRvd24tbWVudSBkcm9wZG93bjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgeyBiYWNrZ3JvdW5kOiAjY2NjOyBib3JkZXItcmFkaXVzOiA0cHg7IH1cblxuZHJvcGRvd24tZGl2aWRlciB7IGRpc3BsYXk6IGJsb2NrOyBoZWlnaHQ6IDFweDsgbWFyZ2luOiA0cHggMDsgYmFja2dyb3VuZDogI2VlZTsgfVxuZHJvcGRvd24tbGFiZWwgeyBkaXNwbGF5OiBibG9jazsgZm9udC1zaXplOiAxMnB4OyBwYWRkaW5nOiA0cHggOHB4OyBjb2xvcjogIzg4ODsgfVxuXG5xZG5hLWRyb3Bkb3duLW1lbnUuZHJvcGRvd24tb3BlbiBkcm9wZG93biB7XG4gIGFuaW1hdGlvbjogZHJvcGRvd25GYWRlIDAuMTVzIGVhc2U7XG59XG5cbkBrZXlmcmFtZXMgZHJvcGRvd25GYWRlIHtcbiAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0cHgpOyB9XG4gIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG59IiwiQHVzZSBcInNhc3M6bWFwXCI7XG5xZG5hLXRvZ2dsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLnFkbmEtdG9nZ2xlLXJvb3Qge1xuICAtLXRvZ2dsZS1vZmY6ICNkMGQ1ZGQ7XG4gIC0tdG9nZ2xlLW9uOiAjNDYyNWYzO1xuICAtLXRvZ2dsZS10aHVtYjogI2ZmZmZmZjtcbiAgLS10b2dnbGUtZm9jdXM6IHJnYmEoOCwgMTE3LCAyMjYsIC4zNSk7XG59XG4ucWRuYS10b2dnbGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHZhcigtLXRvZ2dsZS1vZmYpO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMjVzIGVhc2UsIGJveC1zaGFkb3cgLjI1cyBlYXNlO1xufVxuLnFkbmEtdG9nZ2xlLXRodW1iIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS10b2dnbGUtdGh1bWIpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRvcDogMnB4O1xuICBsZWZ0OiAycHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMjVzIGVhc2U7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsMCwwLC4yNSk7XG59XG5cbi50b2dnbGUtY2hlY2tlZCAucWRuYS10b2dnbGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS10b2dnbGUtb24pO1xufVxuXG4udG9nZ2xlLWNoZWNrZWQgLnFkbmEtdG9nZ2xlLXRodW1iIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xufVxuLnRvZ2dsZS1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IC41O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuXG4udG9nZ2xlLXNpemUtc20gLnFkbmEtdG9nZ2xlIHtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMThweDtcbn1cblxuLnRvZ2dsZS1zaXplLXNtIC5xZG5hLXRvZ2dsZS10aHVtYiB7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG59XG5cbi50b2dnbGUtc2l6ZS1tZCAucWRuYS10b2dnbGUge1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiAyMnB4O1xufVxuXG4udG9nZ2xlLXNpemUtbWQgLnFkbmEtdG9nZ2xlLXRodW1iIHtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbn1cblxuLnRvZ2dsZS1zaXplLWxnIC5xZG5hLXRvZ2dsZSB7XG4gIHdpZHRoOiA1MnB4O1xuICBoZWlnaHQ6IDI4cHg7XG59XG5cbi50b2dnbGUtc2l6ZS1sZyAucWRuYS10b2dnbGUtdGh1bWIge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xufVxuXG4iLCJAdXNlIFwic2FzczptYXBcIjtcbnFkbmEtZHVlLWRhdGUge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAxO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNvbG9yOiB2YXIoLS1UZXh0LUJvZHksICMwQjBCMEQpO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogdmFyKC0tTGluZS1IZWlnaHQtQm9keS1Cb2R5LVNtYWxsLCAyMHB4KTsgLyogMTY2LjY2NyUgKi9cbn1cblxucWRuYS1kdWUtZGF0ZS5zdGF0dXMtY29tcGxldGUge1xuICBjb2xvcjojNDI4QjZFO1xufVxuXG5xZG5hLWR1ZS1kYXRlLnN0YXR1cy1jb21wbGV0ZSBpIHtcbiAgY29sb3I6IzQyOEI2RTtcbn1cbnFkbmEtZHVlLWRhdGUuc3RhdHVzLXByb2dyZXNzIHtcbiAgY29sb3I6ICNFRjhFMDI7XG59XG5cbnFkbmEtZHVlLWRhdGUuc3RhdHVzLXByb2dyZXNzIGkge1xuICBjb2xvcjojRUY4RTAyO1xufVxucWRuYS1kdWUtZGF0ZS5zdGF0dXMtb3Blbi5wcmlvcml0eS1oaWdoLFxucWRuYS1kdWUtZGF0ZS5zdGF0dXMtZGVhZGxpbmUucHJpb3JpdHktaGlnaCB7XG4gIGNvbG9yOiAjRkYzQTMwO1xufVxucWRuYS1kdWUtZGF0ZS5zdGF0dXMtb3Blbi5wcmlvcml0eS1taWQsXG5xZG5hLWR1ZS1kYXRlLnN0YXR1cy1kZWFkbGluZS5wcmlvcml0eS1taWQge1xuICBjb2xvcjogI0VGOEUwMjtcbn1cbnFkbmEtZHVlLWRhdGUuc3RhdHVzLW9wZW4ucHJpb3JpdHktc3VjY2VzcyxcbnFkbmEtZHVlLWRhdGUuc3RhdHVzLWRlYWRsaW5lLnByaW9yaXR5LXN1Y2Nlc3Mge1xuICBjb2xvcjogIzQyOEI2RTtcbn1cblxucWRuYS1kdWUtZGF0ZS5zdGF0dXMtb3BlbiBpLFxucWRuYS1kdWUtZGF0ZS5zdGF0dXMtZGVhZGxpbmUgaSB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuIiwiXG5bcWRuYS10b29sdGlwXSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG5cbiAgLS10b29sdGlwLWJnOiAjNDA0OTlBO1xuICAtLXRvb2x0aXAtdGV4dDogI2ZmZmZmZjtcbiAgLS10b29sdGlwLXJhZGl1czogNHB4O1xuICAtLXRvb2x0aXAtZ2FwOiA2cHg7XG5cbiAgLS10b29sdGlwLXBhZGRpbmc6IDRweCA4cHg7XG4gIC0tdG9vbHRpcC1mb250OiAxNHB4O1xufVxuXG4vL25vIGFycm93XG5bcWRuYS10b29sdGlwXTpub3QoW3Rvb2x0aXAtdHlwZT1cImFycm93XCJdKTo6YmVmb3JlIHtcbiAgY29udGVudDogYXR0cihxZG5hLXRvb2x0aXApO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgYm90dG9tOiAxMDAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tdG9vbHRpcC1nYXApO1xuXG4gIGJhY2tncm91bmQ6IHZhcigtLXRvb2x0aXAtYmcpO1xuICBjb2xvcjogdmFyKC0tdG9vbHRpcC10ZXh0KTtcbiAgcGFkZGluZzogdmFyKC0tdG9vbHRpcC1wYWRkaW5nKTtcbiAgZm9udC1zaXplOiB2YXIoLS10b29sdGlwLWZvbnQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS10b29sdGlwLXJhZGl1cyk7XG5cbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICBtYXgtd2lkdGg6IDIyMHB4O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IDAuMTVzIGVhc2U7XG4gIHotaW5kZXg6IDk5OTk7XG59XG5cbltxZG5hLXRvb2x0aXBdOmhvdmVyOm5vdChbdG9vbHRpcC10eXBlPVwiYXJyb3dcIl0pOjpiZWZvcmUge1xuICBvcGFjaXR5OiAxO1xufVxuXG4vL3dpdGggYXJyb3dcblt0b29sdGlwLXR5cGU9XCJhcnJvd1wiXSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnFkbmEtdG9vbHRpcC1ib3gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6IHZhcigtLXRvb2x0aXAtYmcpO1xuICBjb2xvcjogdmFyKC0tdG9vbHRpcC10ZXh0KTtcbiAgcGFkZGluZzogdmFyKC0tdG9vbHRpcC1wYWRkaW5nKTtcbiAgZm9udC1zaXplOiB2YXIoLS10b29sdGlwLWZvbnQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS10b29sdGlwLXJhZGl1cyk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gIG1heC13aWR0aDogMjIwcHg7XG5cbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IDAuMTVzIGVhc2U7XG4gIHotaW5kZXg6IDk5OTk7XG59XG5cbi5xZG5hLXRvb2x0aXAtYm94LnNob3cge1xuICBvcGFjaXR5OiAxO1xufVxuXG4ucWRuYS10b29sdGlwLXRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBtYXJnaW4tYm90dG9tOiA0cHg7XG59XG5cbi5xZG5hLXRvb2x0aXAtYm9keSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuLy9hcnJvd1xuLnFkbmEtdG9vbHRpcC1hcnJvdyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDhweDtcbiAgaGVpZ2h0OiA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLXRvb2x0aXAtYmcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG5cbi8vcHNpdGlvblxuW3Rvb2x0aXAtdHlwZT1cImFycm93XCJdOm5vdChbdG9vbHRpcC1wb3NpdGlvbl0pIC5xZG5hLXRvb2x0aXAtYm94LFxuW3Rvb2x0aXAtcG9zaXRpb249XCJ0b3BcIl0gLnFkbmEtdG9vbHRpcC1ib3gge1xuICBib3R0b206IDEwMCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoY2FsYygtMSAqIHZhcigtLXRvb2x0aXAtZ2FwKSkpO1xufVxuXG5bdG9vbHRpcC10eXBlPVwiYXJyb3dcIl06bm90KFt0b29sdGlwLXBvc2l0aW9uXSkgLnFkbmEtdG9vbHRpcC1hcnJvdyxcblt0b29sdGlwLXBvc2l0aW9uPVwidG9wXCJdIC5xZG5hLXRvb2x0aXAtYXJyb3cge1xuICBib3R0b206IC00cHg7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG59XG5cblt0b29sdGlwLXBvc2l0aW9uPVwiYm90dG9tXCJdIC5xZG5hLXRvb2x0aXAtYm94IHtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKHZhcigtLXRvb2x0aXAtZ2FwKSk7XG59XG5cblt0b29sdGlwLXBvc2l0aW9uPVwiYm90dG9tXCJdIC5xZG5hLXRvb2x0aXAtYXJyb3cge1xuICB0b3A6IC00cHg7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG59XG5cblt0b29sdGlwLXBvc2l0aW9uPVwibGVmdFwiXSAucWRuYS10b29sdGlwLWJveCB7XG4gIHJpZ2h0OiAxMDAlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoY2FsYygtMSAqIHZhcigtLXRvb2x0aXAtZ2FwKSkpO1xufVxuXG5bdG9vbHRpcC1wb3NpdGlvbj1cImxlZnRcIl0gLnFkbmEtdG9vbHRpcC1hcnJvdyB7XG4gIHJpZ2h0OiAtNHB4O1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG59XG5cblt0b29sdGlwLXBvc2l0aW9uPVwicmlnaHRcIl0gLnFkbmEtdG9vbHRpcC1ib3gge1xuICBsZWZ0OiAxMDAlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgodmFyKC0tdG9vbHRpcC1nYXApKTtcbn1cblxuW3Rvb2x0aXAtcG9zaXRpb249XCJyaWdodFwiXSAucWRuYS10b29sdGlwLWFycm93IHtcbiAgbGVmdDogLTRweDtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xufVxuXG4vL2NvbG9ycyBmb3IgdG9vbHRpcFxuXG5bcWRuYS10b29sdGlwXTpub3QoW3Rvb2x0aXAtdHlwZT1cImFycm93XCJdKVt0b29sdGlwLWNvbG9yPVwicHVycGxlXCJdIHtcbiAgLS10b29sdGlwLWJnOiAjNDA0OTlBO1xuICAtLXRvb2x0aXAtdGV4dDogI2ZmZmZmZjtcbn1cblxuW3FkbmEtdG9vbHRpcF06bm90KFt0b29sdGlwLXR5cGU9XCJhcnJvd1wiXSlbdG9vbHRpcC1jb2xvcj1cImxpZ2h0LXB1cnBsZVwiXSB7XG4gIC0tdG9vbHRpcC1iZzogI0RBRERGMjtcbiAgLS10b29sdGlwLXRleHQ6ICM0MDQ5OUE7XG59XG5cbltxZG5hLXRvb2x0aXBdOm5vdChbdG9vbHRpcC10eXBlPVwiYXJyb3dcIl0pW3Rvb2x0aXAtY29sb3I9XCJncmV5XCJdIHtcbiAgLS10b29sdGlwLWJnOiAjQzRDN0NDO1xuICAtLXRvb2x0aXAtdGV4dDogIzBCMEIwRDtcbn1cblxuW3FkbmEtdG9vbHRpcF06bm90KFt0b29sdGlwLXR5cGU9XCJhcnJvd1wiXSlbdG9vbHRpcC1jb2xvcj1cImxpZ2h0LWdyZXlcIl0ge1xuICAtLXRvb2x0aXAtYmc6ICNFMUUzRTY7XG4gIC0tdG9vbHRpcC10ZXh0OiAjNkI3MjgwO1xufVxuXG4vL2NvbG9ycyBmb3IgYXJyb3cgdG9vbHRpcFxuW3Rvb2x0aXAtdHlwZT1cImFycm93XCJdW3Rvb2x0aXAtY29sb3I9XCJwdXJwbGVcIl0ge1xuICAtLXRvb2x0aXAtYmc6ICM0MDQ5OUE7XG4gIC0tdG9vbHRpcC10ZXh0OiAjZmZmZmZmO1xufVxuXG5bdG9vbHRpcC10eXBlPVwiYXJyb3dcIl1bdG9vbHRpcC1jb2xvcj1cImxpZ2h0LXB1cnBsZVwiXSB7XG4gIC0tdG9vbHRpcC1iZzogI0RBRERGMjtcbiAgLS10b29sdGlwLXRleHQ6ICM0MDQ5OUE7XG59XG5cblt0b29sdGlwLXR5cGU9XCJhcnJvd1wiXVt0b29sdGlwLWNvbG9yPVwid2hpdGVcIl0ge1xuICAtLXRvb2x0aXAtYmc6ICNmZmZmZmY7XG4gIC0tdG9vbHRpcC10ZXh0OiAjNDA0OTlBO1xufVxuXG4vL3dpdGhvdXQgYXJyb3coc21hbGwpXG5bcWRuYS10b29sdGlwXTpub3QoW3Rvb2x0aXAtdHlwZT1cImFycm93XCJdKVt0b29sdGlwLXNpemU9XCJzbVwiXSB7XG4gIC0tdG9vbHRpcC1wYWRkaW5nOiAwcHggOHB4O1xuICAtLXRvb2x0aXAtZm9udDogMTJweDtcbn1cblxuLy9hcnJvdyhzbWFsbClcblt0b29sdGlwLXR5cGU9XCJhcnJvd1wiXVt0b29sdGlwLXNpemU9XCJzbVwiXSB7XG4gIC0tdG9vbHRpcC1wYWRkaW5nOiAycHggOHB4O1xuICAtLXRvb2x0aXAtZm9udDogMTBweDtcbn1cblxuLy9hcnJvdyhsYXJnZS1kZWZhdWx0KVxuW3Rvb2x0aXAtdHlwZT1cImFycm93XCJdOm5vdChbdG9vbHRpcC1zaXplXSksXG5bdG9vbHRpcC10eXBlPVwiYXJyb3dcIl1bdG9vbHRpcC1zaXplPVwibGdcIl0ge1xuICAtLXRvb2x0aXAtcGFkZGluZzogMTBweCAxMnB4O1xuICAtLXRvb2x0aXAtZm9udDogMTNweDtcbn1cblxuLy9EaXNhYmxlIHRvb2x0aXAgd2hlbiBlbGVtZW50IGlzIGRpc2FibGVkIFxuW3FkbmEtdG9vbHRpcF1bZGlzYWJsZWRdLFxuW3FkbmEtdG9vbHRpcF0uZGlzYWJsZWQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuXG5bcWRuYS10b29sdGlwXVtkaXNhYmxlZF06OmJlZm9yZSxcbltxZG5hLXRvb2x0aXBdLmRpc2FibGVkOjpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cblxuW3FkbmEtdG9vbHRpcF1bZGlzYWJsZWRdIC5xZG5hLXRvb2x0aXAtYm94LFxuW3FkbmEtdG9vbHRpcF0uZGlzYWJsZWQgLnFkbmEtdG9vbHRpcC1ib3gge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59IiwiJHByaW1hcnk6ICM0NjUyRjM7XG4kZm9jdXM6ICM0MDQ5OUE7XG4kc3VjY2VzczogIzQyOEI2RTsgXG4kc3VjY2Vzcy1iZzogIzZFRTdCNztcbiRlcnJvcjogI0M2NUE1QTtcbiRlcnJvci1iZzogI0Y4NzE3MTtcbiRib3JkZXItZGVmYXVsdDogI0M0QzdDQztcbiR3aGl0ZTogI0ZGRkZGRjtcbiRkaXNhYmxlZC1iZzogI0YwRjFGMjtcbiRkaXNhYmxlZC1ib3JkZXI6ICNDNEM3Q0M7XG4kZGlzYWJsZWQtaWNvbjogIzg5OEU5OTtcblxuLnFkbmEtY2hlY2tib3gge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIGlucHV0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgb3BhY2l0eTogMDtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gIC5jaGVja2JveC1ib3gge1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItZGVmYXVsdDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtc2hhcGU9XCJyb3VuZFwiXSAuY2hlY2tib3gtYm94IHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIH1cblxuICAmOm5vdCguZGlzYWJsZWQpOmhvdmVyIGlucHV0Om5vdCg6Y2hlY2tlZCkgKyAuY2hlY2tib3gtYm94IHtcbiAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5O1xuICB9XG5cbiAgJjpmb2N1cy13aXRoaW4gLmNoZWNrYm94LWJveDo6YmVmb3JlLFxuICAmW3N0YXRlPVwiZm9jdXNcIl0gLmNoZWNrYm94LWJveDo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIC5jaGVja2JveC1ib3gge1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5O1xuICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnk7XG4gIH1cblxuICBpbnB1dDpjaGVja2VkICsgLmNoZWNrYm94LWJveDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblxuICAgIC13ZWJraXQtbWFzazogdXJsKFwiL2ltZy9jaGVjay5zdmdcIikgbm8tcmVwZWF0IGNlbnRlciAvIDEycHg7XG4gICAgbWFzazogdXJsKFwiL2ltZy9jaGVjay5zdmdcIikgbm8tcmVwZWF0IGNlbnRlciAvIDEycHg7XG4gIH1cblxuICAmLmluZGV0ZXJtaW5hdGUtdHlwZSB7XG5cbiAgICBpbnB1dDpjaGVja2VkICsgLmNoZWNrYm94LWJveDo6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNnB4O1xuICAgICAgbGVmdDogM3B4O1xuICAgICAgd2lkdGg6IDhweDtcbiAgICAgIGhlaWdodDogMnB4O1xuICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgICAgLXdlYmtpdC1tYXNrOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICBtYXNrOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgQG1peGluIHN0YXRlKCRib3JkZXIsICRiZykge1xuICAgIGlucHV0Om5vdCg6Y2hlY2tlZCkgKyAuY2hlY2tib3gtYm94IHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcbiAgICB9XG5cbiAgICBpbnB1dDpjaGVja2VkICsgLmNoZWNrYm94LWJveCB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmc7XG4gICAgICBib3JkZXItY29sb3I6ICRib3JkZXI7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLXN0YXRlPVwic3VjY2Vzc1wiXSB7XG4gICAgQGluY2x1ZGUgc3RhdGUoJHN1Y2Nlc3MsICRzdWNjZXNzLWJnKTtcbiAgfVxuXG4gICZbZGF0YS1zdGF0ZT1cImVycm9yXCJdIHtcbiAgICBAaW5jbHVkZSBzdGF0ZSgkZXJyb3IsICRlcnJvci1iZyk7XG4gIH1cblxuICAmLmRpc2FibGVkIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBvcGFjaXR5OiAwLjY7XG5cbiAgICBpbnB1dCArIC5jaGVja2JveC1ib3gge1xuICAgICAgYmFja2dyb3VuZDogJGRpc2FibGVkLWJnO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkZGlzYWJsZWQtYm9yZGVyO1xuICAgIH1cblxuICAgIGlucHV0OmNoZWNrZWQgKyAuY2hlY2tib3gtYm94IHtcbiAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICB9XG5cbiAgICBpbnB1dDpjaGVja2VkICsgLmNoZWNrYm94LWJveDo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRpc2FibGVkLWljb247XG4gICAgfVxuICB9XG5cbiAgLmNoZWNrYm94LWxhYmVsIHtcbiAgICBjb2xvcjogIzMzMztcbiAgfVxufSIsIlxuJHByaW1hcnk6IzQ2NTJGMztcbiRib3JkZXItZGVmYXVsdDogI0M0QzdDQztcbiR3aGl0ZTogI0ZGRkZGRjtcblxuJHN1Y2Nlc3M6ICM0MjhCNkU7XG4kZXJyb3I6ICNDNjVBNUE7XG5cbiRkaXNhYmxlZC1iZzogI0UwRTBFMDtcbiRkaXNhYmxlZC1ib3JkZXI6ICNDNEM3Q0M7XG4kZGlzYWJsZWQtZG90OiAjOUU5RTlFO1xuXG5xZG5hLXJhZGlvIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xufVxuLnFkbmEtcmFkaW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIGlucHV0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuICAucmFkaW8tY2lyY2xlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBwYWRkaW5nOiA0cHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWRlZmF1bHQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICB3aWR0aDogNHB4O1xuICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG5cbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGluc2V0OiAtNHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcblxuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICRwcmltYXJ5O1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7XG4gICAgfVxuICB9XG5cbiAgJjpub3QoLmRpc2FibGVkKTpob3ZlciBpbnB1dDpub3QoOmNoZWNrZWQpICsgLnJhZGlvLWNpcmNsZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkcHJpbWFyeTtcbiAgfVxuXG4gIGlucHV0OmNoZWNrZWQgKyAucmFkaW8tY2lyY2xlIHtcbiAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeTtcbiAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5O1xuICB9XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIC5yYWRpby1jaXJjbGU6OmFmdGVyIHtcbiAgICBvcGFjaXR5OiAxOyBcbiAgfVxuXG4gIEBtaXhpbiBzdGF0ZSgkY29sb3IpIHtcbiAgICBpbnB1dDpub3QoOmNoZWNrZWQpICsgLnJhZGlvLWNpcmNsZSB7XG4gICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICB9XG5cbiAgICBpbnB1dDpjaGVja2VkICsgLnJhZGlvLWNpcmNsZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtc3RhdGU9XCJzdWNjZXNzXCJdIHtcbiAgICBAaW5jbHVkZSBzdGF0ZSgkc3VjY2Vzcyk7XG4gIH1cblxuICAmW2RhdGEtc3RhdGU9XCJlcnJvclwiXSB7XG4gICAgQGluY2x1ZGUgc3RhdGUoJGVycm9yKTtcbiAgfVxuXG4gICYuZGlzYWJsZWQge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIG9wYWNpdHk6IDAuNjtcblxuICAgIGlucHV0Om5vdCg6Y2hlY2tlZCkgKyAucmFkaW8tY2lyY2xlIHtcbiAgICAgIGJhY2tncm91bmQ6ICRkaXNhYmxlZC1iZztcbiAgICAgIGJvcmRlci1jb2xvcjogJGRpc2FibGVkLWJvcmRlcjtcbiAgICB9XG5cbiAgICBpbnB1dDpjaGVja2VkICsgLnJhZGlvLWNpcmNsZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICBib3JkZXItY29sb3I6ICRkaXNhYmxlZC1ib3JkZXI7XG4gICAgfVxuXG4gICAgaW5wdXQ6Y2hlY2tlZCArIC5yYWRpby1jaXJjbGU6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRkaXNhYmxlZC1kb3Q7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gIC5yYWRpby1sYWJlbCB7XG4gICAgY29sb3I6ICMzMzM7XG4gIH1cbn0iLCJxZG5hLW1lbnUtaXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubWVudS1pdGVtX19jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogOHB4O1xuXG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzIGVhc2U7XG59XG5cbi5tZW51LWl0ZW1fX2NvbnRhaW5lcjpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG59XG5cbi5tZW51LWl0ZW1fX2xlZnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLy9DT05UUk9MIChjaGVja2JveCAvIHJhZGlvKVxuLm1lbnUtaXRlbV9fY29udHJvbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ubWVudS1pdGVtX19wcmVmaXgge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICBtaW4td2lkdGg6IDIwcHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ubWVudS1pdGVtX19sYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuXG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4ubWVudS1pdGVtX19zdWZmaXgge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICBtaW4td2lkdGg6IDIwcHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ubWVudS1pdGVtX19wcmVmaXggaSxcbi5tZW51LWl0ZW1fX3N1ZmZpeCBpIHtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuXG5xZG5hLW1lbnUtaXRlbVtkaXNhYmxlZF0gLm1lbnUtaXRlbV9fY29udGFpbmVyIHtcbiAgb3BhY2l0eTogMC41O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn0iLCJAdXNlIFwic2FzczpsaXN0XCI7XG5AdXNlIFwic2Fzczpjb2xvclwiO1xuXG4uYXZhdGFyIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAxcHggc29saWQ7XG4gIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC5hdmF0YXItY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICB9XG59XG5cblxuLmF2YXRhci14cyB7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IGZvbnQtc2l6ZTogMTJweDsgfVxuLmF2YXRhci1zbSB7IHdpZHRoOiAzNHB4OyBoZWlnaHQ6IDM0cHg7IGZvbnQtc2l6ZTogMTJweDsgfVxuLmF2YXRhci1tZCB7IHdpZHRoOiA0OHB4OyBoZWlnaHQ6IDQ4cHg7IGZvbnQtc2l6ZTogMTZweDsgfVxuLmF2YXRhci1sZyB7IHdpZHRoOiA2NHB4OyBoZWlnaHQ6IDY0cHg7IGZvbnQtc2l6ZTogMThweDsgfVxuXG4kY29sb3JzOiAoXG4gIFwiZ3JlZW5cIjogKCM0MjhCNkUsICNDNUY1RTIpLFxuICBcInBpbmtcIjogKCNDNjVBNUEsICNGODcxNzEpLFxuICBcInllbGxvd1wiOiAoI0I3NzkxRiwgI0ZERTY4QSksXG4gIFwiYmx1ZVwiOiAoIzJCNkNCMCwgI0JGREJGRSksXG4gIFwiZ3JleVwiOiAoI0M0QzdDQywgI0U1RTdFQiksXG4gIFwicmVkXCI6ICgjQjkxQzFDLCAjRkNBNUE1KVxuKTtcblxuQGVhY2ggJG5hbWUsICRwYWlyIGluICRjb2xvcnMge1xuICAuYXZhdGFyLS0jeyRuYW1lfSB7XG4gICAgJGJvcmRlcjogbGlzdC5udGgoJHBhaXIsIDEpO1xuICAgICRiZzogbGlzdC5udGgoJHBhaXIsIDIpO1xuXG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyO1xuICAgIGJhY2tncm91bmQ6ICRiZztcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogY29sb3IuYWRqdXN0KCRiZywgJGxpZ2h0bmVzczogLTUlKTtcbiAgICAgIGJvcmRlci1jb2xvcjogY29sb3IuYWRqdXN0KCRib3JkZXIsICRsaWdodG5lc3M6IC01JSk7XG4gICAgfVxuXG4gICAgJi5pcy1zZWxlY3RlZCB7XG4gICAgICBiYWNrZ3JvdW5kOiBjb2xvci5hZGp1c3QoJGJnLCAkbGlnaHRuZXNzOiA1JSk7XG4gICAgICBib3JkZXItY29sb3I6IGNvbG9yLmFkanVzdCgkYm9yZGVyLCAkbGlnaHRuZXNzOiA1JSk7XG4gICAgfVxuICB9XG59IiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZS5cbi8vIENvbXBpbGVkIGludG8gd2ViL2Nzcy92MS9zdHlsZS12MS5jc3MgdmlhIHNjc3MvY29tcG9uZW50cy9jb21wb25lbnRzLnNjc3Ncbi8vIChndWxwIFwic2Fzcy12MVwiKS4gRWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuLy9cbi8vIHFkbmFwcm8tYWNjb3VudC1jYXJkXG4vLyAgIEFjY291bnQgLyBwcm9maWxlIGRyb3Bkb3duIGNhcmQuIENhcmQgY2hyb21lIG1pcnJvcnMgcWRuYXByby1tZW51XG4vLyAgIChuZXV0cmFsKS4gSGVhZGVyID0gYXZhdGFyICsgbmFtZSArIGVtYWlsLCB0aGVuIGEgZGl2aWRlciwgdGhlbiB0aGVcbi8vICAgc2xvdHRlZCBxZG5hcHJvLW1lbnUtaXRlbSByb3dzLlxuLy9cbi8vIFFETkEgdG9rZW5zIHVzZWQ6XG4vLyAgIFN1cmZhY2UvV2hpdGUgICAgICAgICAgICAjZmZmZmZmICAgY2FyZCBiYWNrZ3JvdW5kXG4vLyAgIEJvcmRlci9OZXV0cmFsICAgICAgICAgICAjYzRjN2NjICAgY2FyZCBib3JkZXJcbi8vICAgVGV4dC9Pbi1Cb2R5ICAgICAgICAgICAgICMwYjBiMGQgICBuYW1lXG4vLyAgIFRleHQvU2Vjb25kYXJ5ICAgICAgICAgICAjNmI3MjgwICAgZW1haWxcblxuLnFkbmFwcm8tYWNjb3VudC1jYXJkIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi13aWR0aDogMjgwcHg7XG4gIHBhZGRpbmc6IDhweDtcbiAgZ2FwOiA0cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0zMDApO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSksIDAgOHB4IDEycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIHNhbnMtc2VyaWY7XG59XG5cbi5xZG5hcHJvLWFjY291bnQtY2FyZCAuYWNjb3VudC1jYXJkLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG4gIHBhZGRpbmc6IDE2cHggMTZweCAxMnB4O1xufVxuXG4ucWRuYXByby1hY2NvdW50LWNhcmQgLmFjY291bnQtY2FyZC1oZWFkZXIgcWRuYXByby1hdmF0YXIge1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbi5xZG5hcHJvLWFjY291bnQtY2FyZCAuYWNjb3VudC1jYXJkLW5hbWUge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG59XG5cbi5xZG5hcHJvLWFjY291bnQtY2FyZCAuYWNjb3VudC1jYXJkLWVtYWlsIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MDApO1xufVxuXG4ucWRuYXByby1hY2NvdW50LWNhcmQgLmFjY291bnQtY2FyZC1pdGVtcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNHB4O1xufVxuXG4ucWRuYXByby1hY2NvdW50LWNhcmQgLmFjY291bnQtY2FyZC1pdGVtcyA+IHFkbmFwcm8tbWVudS1pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi8vIERhcmsgbW9kZVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYWNjb3VudC1jYXJkIHtcbiAgYmFja2dyb3VuZDogIzJlMzAzNjtcbiAgYm9yZGVyLWNvbG9yOiAjNDA0NDRkO1xuICBib3gtc2hhZG93OiAwIDRweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMzApLCAwIDhweCAxMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMjApO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY2NvdW50LWNhcmQgLmFjY291bnQtY2FyZC1uYW1lIHtcbiAgY29sb3I6ICNmMGYxZjI7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjY291bnQtY2FyZCAuYWNjb3VudC1jYXJkLWVtYWlsIHtcbiAgY29sb3I6ICNhNmFhYjM7XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9hY3Rpb24tYmFyL19hY3Rpb24tYmFyLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi8qIGNvbXBpbGVkIGZyb20gX2FjdGlvbi1iYXIuc2NzcyAqL1xuLnFkbmFwcm8tYWN0aW9uLWJhciB7XG4gICAgLS1hY3Rpb24tYmFyLWJnOiAgICAgI2ZmZmZmZjtcbiAgICAtLWFjdGlvbi1iYXItYm9yZGVyOiB2YXIoLS1jLWJvcmRlci10cmVlKTtcbiAgICAtLWFjdGlvbi1iYXItb2Zmc2V0OiAxNnB4O1xuXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBoZWlnaHQ6IDU2cHg7XG4gICAgcGFkZGluZzogMCAxNnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGlvbi1iYXItYmcpO1xuICAgIGJvcmRlcjogMC41cHggc29saWQgdmFyKC0tYWN0aW9uLWJhci1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3gtc2hhZG93OlxuICAgICAgICAwIDFweCAzcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNSksXG4gICAgICAgIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMzApO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG4ucWRuYXByby1hY3Rpb24tYmFyID4gKiB7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLnFkbmFwcm8tYWN0aW9uLWJhci5hY3Rpb24tYmFyLWZsb2F0aW5nIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICBib3R0b206IHZhcigtLWFjdGlvbi1iYXItb2Zmc2V0KTtcbiAgICB6LWluZGV4OiA5MDAwO1xufVxuXG4vKiBFZW4gb3BlbiB2ZW5zdGVyIG1hYWt0IGRlIGJhbGsgb25iZXJlaWtiYWFyLCBkdXMgaGlqIGhvb3J0IGVyIGRhbiBvb2sgbmlldCB0ZVxuICAgc3RhYW4uIFpvbmRlciBkZXplIHJlZ2VsIHZpZWwgaGlqIEVSIE9WRVJIRUVOOiAucWRuYXByby1tb2RhbCBzdGFhdCBvcFxuICAgZGV6ZWxmZGUgOTAwMCwgZW4gYmFzZS5odG1sIHpldCBkZSBiYWxrIE5BIGRlIHBhZ2luYS1pbmhvdWQgbmVlciwgZHVzIHdvbiBkZVxuICAgYmFsayBhbHRpamQgb3AgRE9NLXZvbGdvcmRlLiBWZXJoZWxwZW4gdmlhIGRlIHotaW5kZXggd2FzIGhpZXIgZGUgdmVya2VlcmRlXG4gICBrbm9wOiBkZSBmbG93LWVkaXRvciBoZWVmdCBib3ZlbiA5MDAwIGFsIGVlbiBlaWdlbiBsYWRkZXIgKDkyMDAgdm9vciBkZVxuICAgZHJvcGRvd25zIHZhbiBkZSBiYWxrIHplbGYsIDkzMDAgdm9vciBcImFsdGlqZCBib3Zlbm9wXCItdmVuc3RlcnMpLCBlbiBkaWUgem91XG4gICBkYW4gbWVlIG1vZXRlbiBzY2h1aXZlbi5cbiAgIFR3ZWUga2xhc3Nlbiwgd2FudCBkZSBiYWNrb2ZmaWNlIGhlZWZ0IHR3ZWUgc29vcnRlbiB2ZW5zdGVyczogcWRuYXByby1tb2RhbFxuICAgemV0IGBxZG5hcHJvLW1vZGFsLW9wZW5gIG9wIGRlIGJvZHksIEJvb3RzdHJhcCAobm9nIHN0ZWVkcyBpbiB2MSBnZWxhZGVuKSB6ZXRcbiAgIGBtb2RhbC1vcGVuYC4gW0tpbSAxMC4wOC4yMDI2XSAqL1xuYm9keS5xZG5hcHJvLW1vZGFsLW9wZW4gLnFkbmFwcm8tYWN0aW9uLWJhci5hY3Rpb24tYmFyLWZsb2F0aW5nLFxuYm9keS5tb2RhbC1vcGVuIC5xZG5hcHJvLWFjdGlvbi1iYXIuYWN0aW9uLWJhci1mbG9hdGluZyB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxucWRuYXByby1tZW51LmFjdGlvbi1iYXItbWVudS1mbG9hdGluZyB7XG4gICAgei1pbmRleDogOTIwMDtcbiAgICBhbmltYXRpb246IGFjdGlvbi1iYXItbWVudS1wb3AgMTYwbXMgY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBsZWZ0O1xufVxuXG5Aa2V5ZnJhbWVzIGFjdGlvbi1iYXItbWVudS1wb3Age1xuICAgIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KSBzY2FsZSgwLjk4KTsgfVxuICAgIHRvICAgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgICBzY2FsZSgxKTsgfVxufVxuXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tYWN0aW9uLWJhcixcbltkYXRhLXRoZW1lLWRhcmtdICAucWRuYXByby1hY3Rpb24tYmFyIHtcbiAgICAtLWFjdGlvbi1iYXItYmc6ICAgICAjMmUzMDM2O1xuICAgIC0tYWN0aW9uLWJhci1ib3JkZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMCk7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCAxcHggM3B4IDFweCByZ2JhKDAsIDAsIDAsIDAuMzApLFxuICAgICAgICAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjQ1KTtcbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvYWN0aXZpdHktY2FyZC9fYWN0aXZpdHktY2FyZC1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuLy9cbi8vIENvbG91ciB2YWx1ZXMgYXJlIHRha2VuIGRpcmVjdGx5IGZyb20gdGhlIHFkbmFwcm8tdGFnIHRva2VuIHNvdXJjZVxuLy8gKHNjc3MvY29tcG9uZW50cy92Mi90YWcvX3RhZy5zY3NzKS4gLS1hYy10aWxlLSogY3VzdG9tIHByb3BlcnRpZXMgaG9sZFxuLy8gdGhlIGljb24tY29sb3IgcGFzdGVsIChsaWdodCArIGRhcmspOyBzdGF0dXMgb3ZlcnJpZGVzIHdpbiBvdmVyIHRoZW0gYnlcbi8vIHNldHRpbmcgdGhlIHRpbGUvYm9yZGVyL3N1cmZhY2UvdGV4dCBjb2xvdXIgZGlyZWN0bHkgKGhpZ2hlci1zcGVjaWZpY2l0eVxuLy8gc2VsZWN0b3IsIG1pcnJvcnMgdGhlIHRhc2tsaXN0LWNhcmQgW2FyY2hpdmVkXSBwYXR0ZXJuKS5cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA0OHB4IDFmcjtcbiAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJ0aWxlIGJvZHlcIjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMnB4O1xuICBwYWRkaW5nOiA4cHggMTJweDtcbiAgbWluLWhlaWdodDogNjRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYWMtc3VyZmFjZSwgI2ZmZmZmZik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFjLWJvcmRlciwgI2UxZTNlNik7XG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3V0bGluZTogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAxNTBtcyBlYXNlLW91dCwgYm9yZGVyLWNvbG9yIDE1MG1zIGVhc2Utb3V0LCB0cmFuc2Zvcm0gMTUwbXMgZWFzZS1vdXQsIGJhY2tncm91bmQtY29sb3IgMTUwbXMgZWFzZS1vdXQ7XG59XG5cbi8vIFdoZW4gdGhlIGJvdHRvbSBhY3Rpb24gcm93IGlzIHByZXNlbnQsIGFkZCBhIHNlY29uZCByb3cgc3Bhbm5pbmcgYm90aFxuLy8gY29sdW1ucyBiZWxvdyB0aWxlL2JvZHkuIEtpbSdzIGRlc2lnbiBkZWNpc2lvbiAxMy4wNy4yMDI2OiBicmllZmluZyBhbmRcbi8vIHJlcGVhdCBiZWNhbWUgcmVhbCBmdWxsLXdpZHRoIGJ1dHRvbnMgaW5zdGVhZCBvZiBtZXRhIHBpbGxzLiBUaGUgY2hldnJvblxuLy8gZ2x5cGggY29sdW1uIHdhcyByZW1vdmVkIGVudGlyZWx5IG9uIDEzLjA3LjIwMjYgKHRoZSB3aG9sZSBjYXJkIGlzIHRoZVxuLy8gdGFwIHRhcmdldCwgdGhlIGNoZXZyb24gb25seSBhdGUgaG9yaXpvbnRhbCBzcGFjZSkuXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLWhhcy1hY3Rpb25zIHtcbiAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJ0aWxlIGJvZHlcIiBcImFjdGlvbnMgYWN0aW9uc1wiO1xufVxuXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkICosXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkICo6OmJlZm9yZSxcbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQgKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4vLyBTb2Z0IG92ZXJsYXkgdXNlZCB0byBcImRlZXBlblwiIHRoZSBzdXJmYWNlIG9uIGhvdmVyL3ByZXNzLCBkcml2ZW4gYnkgYVxuLy8gY3VzdG9tIHByb3BlcnR5IHNvIG9uZSBydWxlIGNvdmVycyBib3RoIHN0YXRlcyB3aXRoIGRpZmZlcmVudCBzdHJlbmd0aC5cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQ6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgb3BhY2l0eTogdmFyKC0tYWMtb3ZlcmxheS1vLCAwKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBlYXNlLW91dDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQ6aG92ZXIge1xuICAgIC0tYWMtb3ZlcmxheS1vOiAwLjU7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTQpO1xuICAgIGJveC1zaGFkb3c6IDAgM3B4IDEwcHggcmdiYSgyMCwgMjUsIDgwLCAwLjA4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gIH1cbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZDphY3RpdmUge1xuICAtLWFjLW92ZXJsYXktbzogMTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4NSk7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgODBtcyBlYXNlLW91dCwgdHJhbnNmb3JtIDgwbXMgZWFzZS1vdXQsIGJhY2tncm91bmQtY29sb3IgODBtcyBlYXNlLW91dDtcbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZDpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi8qID09PSBTZWxlY3RlZCByaW5nIChcInlvdSBhcmUgaGVyZVwiLCBLaW0ncyBkZWNpc2lvbiAyMS4wOC4yMDI2IC0gcmluZyBvbmx5LFxuICAgTkVWRVIgYSBmaWxsZWQgYmFja2dyb3VuZCkgPT09XG4gICBTcGxpdC1zY3JlZW4gbGF5b3V0cyAodGFibGV0OiBhY3Rpdml0eSBsaXN0IG9uIHRoZSBsZWZ0LCB0aGUgcXVlc3Rpb25cbiAgIHBhbmVsIG9wZW4gb24gdGhlIHJpZ2h0KSBuZWVkIHRoZSBjdXJyZW50bHktb3BlbiBhY3Rpdml0eSdzIGNhcmQgdG8gYmVcbiAgIGZpbmRhYmxlIGF0IGEgZ2xhbmNlLiBUaGlzIHVzZXMgYG91dGxpbmVgLCBub3QgYGJveC1zaGFkb3dgLCBvbiBwdXJwb3NlOlxuICAgYm94LXNoYWRvdyBvbiB0aGlzIGhvc3QgaXMgYWxyZWFkeSBhIHNpbmdsZS12YWx1ZSBwcm9wZXJ0eSBmb3VnaHQgb3ZlclxuICAgYnkgOmhvdmVyIC8gOmFjdGl2ZSAvIC5hYy1wdWxzZSAvIHRoZSBpcy1mb3JjZS0qIGNsYXNzZXMgYmVsb3csIHNvIGFcbiAgIGJveC1zaGFkb3cgcmluZyB3b3VsZCBnZXQgc2lsZW50bHkgcmVwbGFjZWQgdGhlIGluc3RhbnQgYW55IG9mIHRob3NlXG4gICBmaXJlLiBgb3V0bGluZWAgaXMgaXRzIG93biBwYWludCBsYXllciAtIGluZGVwZW5kZW50IG9mIGJveC1zaGFkb3csXG4gICBib3JkZXItY29sb3IgYW5kIHRoZSA6OmFmdGVyIGhvdmVyLW92ZXJsYXkgLSBzbyBpdCBuZXZlciBnZXRzIGNsb2JiZXJlZFxuICAgYW5kIG5lZWRzIG5vICFpbXBvcnRhbnQgYW55d2hlcmUuXG4gICBgb3V0bGluZS1vZmZzZXRgIG9wZW5zIGEgZ2FwIGJldHdlZW4gdGhlIHJpbmcgYW5kIHRoZSBjYXJkJ3Mgb3duIGVkZ2UsIHNvXG4gICB0aGUgcmluZydzIGxlZ2liaWxpdHkgbmV2ZXIgZGVwZW5kcyBvbiB0aGUgY2FyZCdzIE9XTiBzdXJmYWNlIGNvbG91cjogaXRcbiAgIGFsd2F5cyByZW5kZXJzIG92ZXIgdGhlIHBhZ2UvbGlzdCBiYWNrZ3JvdW5kIGJlaGluZCB0aGUgY2FyZCwgbm90IG92ZXJcbiAgIHRoZSBjYXJkJ3MgZmlsbC4gVGhhdCBpcyB3aGF0IGtlZXBzIGl0IGVxdWFsbHkgcmVhZGFibGUgb24gdGhlXG4gICBjb21wbGV0ZWQgc3RhdHVzJ3MgZ3JlZW4gd2FzaCBhbmQgb24gdGhlIGdyYXlzY2FsZS1maWx0ZXJlZCBkaXNhYmxlZFxuICAgdGlsZS5cbiAgIEl0IGFsc28gY2Fubm90IGNvbGxpZGUgd2l0aCB0aGUgZXJyb3Igc3RhdHVzJ3MgcmVkIGJvcmRlcjogdGhhdCBib3JkZXJcbiAgIGlzIGEgcGxhaW4gMXB4IGJvcmRlci1jb2xvciBjaGFuZ2Ugb24gdGhlIGNhcmQncyBvd24gZWRnZSAoc2VlXG4gICAuYWMtc3RhdHVzLWVycm9yIGZ1cnRoZXIgZG93bikgYW5kIHN0YXlzIGNvbXBsZXRlbHkgdW50b3VjaGVkIGhlcmUgLSB0aGVcbiAgIHJpbmcgaXMgYSBzZWNvbmQsIHNlcGFyYXRlIHJpbmcgZnVydGhlciBPVVQsIHBhc3QgdGhlIGdhcC4gQSBjYXJkIHRoYXRcbiAgIGlzIGJvdGggc2VsZWN0ZWQgQU5EIGVycm9yIGtlZXBzIGJvdGggc2lnbmFscyBmdWxseSBsZWdpYmxlIGF0IG9uY2UuXG4gICBSZXVzZXMgLS1mb2N1cy1yaW5nLCB0aGUgU0FNRSB0b2tlbiB0aGUgOmZvY3VzLXZpc2libGUgcnVsZSBhYm92ZSB1c2VzLFxuICAgc28gbGlnaHQvZGFyayB0aGVtaW5nICgtLWMtcHVycGxlLTIwMCBpbiBkYXJrKSBzdGF5cyBpbiBzeW5jXG4gICBhdXRvbWF0aWNhbGx5IHdpdGhvdXQgYSBzZXBhcmF0ZSBkYXJrIG92ZXJyaWRlLiAqL1xuLyogSEVSQk9VV0QgMjQuMDguMjAyNiAoS2ltOiBcIm5vZyBzdGVlZHMgZ2VlbiBhY3RpdmUgc3RhdGVcIikuIERpdCB3YXMgZWVuXG4gICBgb3V0bGluZWAgbWV0IGBvdXRsaW5lLW9mZnNldDogMnB4YCwgZHVzIGVlbiByaW5nIDJweCBCVUlURU4gZGUga2FhcnQuIEluIGRlXG4gICB0YWtlbmxpanN0IHppdCBlbGtlIGthYXJ0IGluIGVlbiA8cWRuYXByby1zd2lwZS1yb3c+IGVuIGRpZSBoZWVmdFxuICAgYG92ZXJmbG93OiBoaWRkZW5gIChxZG5hLXN3aXBlLXJvdy5jc3MsIHR3ZWUgcGxla2tlbiAtIG5vZGlnIG9tIGRlXG4gICB2ZWVnLWFjdGllcGFuZWxlbiBuYWFzdCBkZSByaWogdGUgdmVyYmVyZ2VuKS4gQWxsZXMgYnVpdGVuIGRlIGthYXJ0IHdvcmR0XG4gICBkYWFyIGR1cyB3ZWdnZWtuaXB0OiBkZSByaW5nIHdhcyBhYW53ZXppZyBpbiBkZSBET00gZW4gdm9sbGVkaWcgb256aWNodGJhYXIuXG4gICBOaWV0IHRlIHZpbmRlbiBtZXQgZ3JlcCwgYWxsZWVuIGRvb3IgaGV0IG9wIGVlbiB0b2VzdGVsIHRlIG1pc3Nlbi5cbiAgIE51IGVlbiA6OmJlZm9yZSBCSU5ORU4gZGUga2FhcnQ6IG92ZXJsZWVmdCBlbGtlIG92ZXJmbG93LWhpZGRlbiBvdWRlciwgdm9sZ3RcbiAgIGRlIHJvbmRpbmcgYWx0aWpkIChib3JkZXItcmFkaXVzIHdlcmt0IG92ZXJhbCwgYW5kZXJzIGRhbiBlZW4gb3V0bGluZSBvcFxuICAgb3VkZXJlIFdlYktpdCAtIHByZWNpZXMgd2FhciBkZSB1bml0LXRlZ2VsIG9wIHN0dWsgbGllcCksIGVuIGJvdHN0IG5pZXQgbWV0XG4gICBkZSA6OmFmdGVyIGhvdmVyLW92ZXJsYXkgb2YgbWV0IGRlIGJveC1zaGFkb3cgZGllIGhvdmVyL2FjdGl2ZS9wdWxzZSBhbFxuICAgY2xhaW1lbi4gaW5zZXQgMnB4IG1ldCByYWRpdXMgMTJweCA9IDE0cHggaG9zdHJhZGl1cyBtaW51cyBkaWUgMnB4LCB6b2RhdCBkZVxuICAgcmluZyBjb25jZW50cmlzY2ggaW4gZGUgaG9layBsb29wdC4gKi9cbi8qIFpBQ0hURSBHTE9FRCwgR0VFTiBIQVJERSBMSUpOIChLaW0gMjQuMDguMjAyNjogXCJ6byduIGhhcmRlIHNlbGVjdCByaW5nIGlzXG4gICBlY2h0IHRlIGxlbGlqaywgaWsgd2lsIHpvaWV0cyBhbHMgZGUgdW5pdHMgZG9lblwiKS4gRGV6ZWxmZGUgdG9rZW4gYWxzXG4gICBxZG5hcHJvLXVuaXQtY2FyZCdzIGlzLXNlbGVjdGVkIGdlYnJ1aWt0OiAtLWZvY3VzLWdsb3cgKC0tYy1hY3Rpb24tMjUgaW5cbiAgIGxpY2h0LCAtLWMtYWN0aW9uLTQwIGluIGRvbmtlciksIDNweCBkaWsuXG4gICBWZXJzY2hpbCBtZXQgZGUgdW5pdC10ZWdlbCwgZW4gZGF0IGthbiBuaWV0IGFuZGVyczogZGFhciB0ZWtlbnQgZGUgZ2xvZWRcbiAgIEJVSVRFTiBkZSBrYWFydCwgaGllciBOQUFSIEJJTk5FTiAoYGluc2V0YCkuIEJ1aXRlbndhYXJ0cyBpcyBoaWVyIG5pZXRcbiAgIG1vZ2VsaWprIC0gZGUgc3dpcGUtcm93IGVyb21oZWVuIGtuaXB0IGFsbGVzIGJ1aXRlbiBkZSBrYWFydCB3ZWcgKHppZSBkZVxuICAgdWl0bGVnIGhpZXJvbmRlcikuIE9wIGVlbiBsaWNodGUga2FhcnQgbWV0IGVlbiBkb29yc2NoaWpuZW5kZSBnbG9lZCBpcyBkYXRcbiAgIHZpc3VlZWwgdnJpandlbCBoZXR6ZWxmZGU7IGhldCBpcyBhbGxlZW4gbmlldCBsZXR0ZXJsaWprIFwiZXJvbWhlZW5cIi5cbiAgIGBpbnNldDogMGAgKyBgYm9yZGVyLXJhZGl1czogaW5oZXJpdGAgbGFhdCBkZSBnbG9lZCBleGFjdCBkZSAxNHB4IGhvZWtyb25kaW5nXG4gICB2YW4gZGUga2FhcnQgdm9sZ2VuLCBpbiBwbGFhdHMgdmFuIGVlbiBlaWdlbiBnZXRhbCBkYXQgYmlqIGVlbiB3aWp6aWdpbmcgdmFuXG4gICBkZSByYWRpdXMgc3RpbCB1aXQgZGUgYm9jaHQgbG9vcHQuICovXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXNlbGVjdGVkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAzcHggdmFyKC0tZm9jdXMtZ2xvdyk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAxO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkOjphZnRlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNik7XG59XG5cbi8qID09PSBEYXJrIG1vZGUgLSBiYXNlIGNhcmQgY2hyb21lID09PSAqL1xuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYWN0aXZpdHktY2FyZCB7XG4gIGJhY2tncm91bmQ6ICMyZTMwMzY7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkIC5hYy1sYWJlbCB7XG4gIGNvbG9yOiAjZjBmMWYyO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkIC5hYy1kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiAjYTBhNGI4O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMCAzcHggMTBweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KTtcbn1cblxuLyogPT09IEljb24gdGlsZSA9PT0gKi9cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQgLmFjLXRpbGUge1xuICBncmlkLWFyZWE6IHRpbGU7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGZsZXg6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hYy10aWxlLWJnLCAjZjBmMWYyKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZCAuYWMtdGlsZS10aWNrIHN2ZyB7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKiA9PT0gVGV4dCBjb2x1bW4gPT09ICovXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkIC5hYy1ib2R5IHtcbiAgZ3JpZC1hcmVhOiBib2R5O1xuICBtaW4td2lkdGg6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDJweDtcbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZCAuYWMtbGFiZWwge1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1hYy10ZXh0LCAjMGIwYjBkKTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQgLmFjLWRlc2NyaXB0aW9uIHtcbiAgZm9udC1zaXplOiAxMi41cHg7XG4gIGNvbG9yOiB2YXIoLS1hYy10ZXh0LW11dGVkLCAjODk4ZTk5KTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi8qID09PSBNZXRhIHJvdzogcmVwZWF0IHRhZyAoZmlyc3QpICsgY29tcGxldGlvbiBzdGFtcCA9PT1cbiAgIFJlcXVpcmVkIHBpbGwgbGl2ZXMgT1VUU0lERSB0aGlzIHJvdyBub3cgKHNlZSB0aGUgY29ybmVyLWJhZGdlIGJsb2NrXG4gICBiZWxvdyksIHNvIHRoZSByb3cgb25seSBleGlzdHMgZm9yIHRoZSByZXBlYXQgdGFnIGFuZC9vciB0aGUgc3RhbXAuICovXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkIC5hYy1tZXRhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgbWFyZ2luLXRvcDogNHB4O1xufVxuXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkIC5hYy1waWxsIHtcbiAgZmxleDogbm9uZTtcbn1cblxuLyogSWNvbi1vbmx5IHJlcGVhdCB0YWcgKG5vIHRleHQgY29udGVudCkgLSB0aGUgdGFnJ3Mgb3duIGVtcHR5IGxhYmVsIHNwYW5cbiAgIHN0aWxsIGNhcnJpZXMgaXRzIDRweCBpY29uLWxhYmVsIGdhcCwgd2hpY2ggd291bGQgYWRkIGxvcHNpZGVkIHRyYWlsaW5nXG4gICBwYWRkaW5nIGFyb3VuZCBub3RoaW5nLiBOZXV0cmFsaXNlZCBoZXJlLCBzY29wZWQgdG8gdGhpcyBvbmUgdXNhZ2UsIHNhbWVcbiAgIGZpeCBhcyBxZG5hcHJvLWFjdGl2aXR5LXJvdydzIC5yb3ctaWNvbi10YWcgKEtpbSwgMTMuMDcuMjAyNikuICovXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkIC5hYy1waWxsLXJlcGVhdCB7XG4gIGdhcDogMDtcbn1cblxuLyogPT09IENvcm5lciBjbHVzdGVyOiBpY29uLW9ubHkgcmVwZWF0IHRhZyArIHJlcXVpcmVkIHBpbGwgc2lkZSBieSBzaWRlIGluIHRoZVxuICAgdG9wLXJpZ2h0IGNvcm5lciAoS2ltLCAxMy4wNy4yMDI2KS4gVGhlIGNoZXZyb24gYW5kIGl0cyB3aG9sZSBnbHlwaFxuICAgY29sdW1uIGFyZSBnb25lLCBzbyB0aGUgY2x1c3RlciBvd25zIHRoZSByaWdodCBlZGdlIGFnYWluc3QgdGhlIGNhcmQnc1xuICAgb3duIHBhZGRpbmcuICovXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkIC5hYy1jb3JuZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgcmlnaHQ6IDEycHg7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xufVxuXG4vKiBPcHRpb25hbCBrZWJhYi1tZW51IGJ1dHRvbiAoXCJtZW51XCIgYXR0cmlidXRlLCBhZGRlZCAyMS4wOC4yMDI2KSBzaGFyZXNcbiAgIHRoaXMgU0FNRSBjb3JuZXIgcm93IGluc3RlYWQgb2YgYSBuZXcgcmlnaHQtc2lkZSBsYXlvdXQgbWVjaGFuaXNtIC1cbiAgIGZsZXg6IG5vbmUgbWF0Y2hlcyB0aGUgc2libGluZyAuYWMtcGlsbCBydWxlIGFib3ZlIHNvIGl0IG5ldmVyIGdldHNcbiAgIHNxdWVlemVkIGJ5IHRoZSBsYWJlbCBjb2x1bW4uICovXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkIC5hYy1tZW51LWJ0biB7XG4gIGZsZXg6IG5vbmU7XG59XG5cbi8qIFJlc2VydmUgcm9vbSBzbyBhIGxvbmcgdGl0bGUgdHJ1bmNhdGVzIGJlZm9yZSBydW5uaW5nIHVuZGVyIHRoZSBjb3JuZXJcbiAgIGNsdXN0ZXIgaW5zdGVhZCBvZiBiZWhpbmQgaXQgLSB3b3JzdCBjYXNlIGlzIHJlcGVhdCBpY29uLXRhZyBwbHVzXG4gICBcIlZlcnBsaWNodFwiL1wiUmVxdWlyZWRcIiwgfjEyMHB4IGNvdmVycyBpdC4gQWxzbyByZXNlcnZlZCBmb3IgdGhlIG1lbnVcbiAgIGJ1dHRvbiBhbG9uZSAobmFycm93ZXIgdGhhbiB0aGF0IHdvcnN0IGNhc2UsIHNvIHRoaXMgc3RheXMgYSBzYWZlXG4gICB1cHBlciBib3VuZCByYXRoZXIgdGhhbiBhbiBleGFjdCBmaXQpLiAqL1xuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1oYXMtY29ybmVyIC5hYy1sYWJlbCxcbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtaGFzLWNvcm5lciAuYWMtZGVzY3JpcHRpb24ge1xuICBwYWRkaW5nLXJpZ2h0OiAxMjBweDtcbn1cblxuLyogTWVudSBidXR0b24gQUxPTkUgaW4gdGhlIGNvcm5lcjogdGhlIDEyMHB4IGFib3ZlIGlzIHRoZSB3b3JzdC1jYXNlIHBpbGxcbiAgIHJlc2VydmF0aW9uIGFuZCBjb3N0cyBhIHRoaXJkIG9mIHRoZSB3aWR0aCBvbiBhIDM2MHB4IGNhcmQgaW4gdGhlIHRhc2tsaXN0XG4gICBzcGxpdCBzY3JlZW4sIHRydW5jYXRpbmcgYSB0aXRsZSB0aGF0IHdvdWxkIG90aGVyd2lzZSBmaXQuIFRoZSBrZWJhYiBpcyBhXG4gICAzMnB4IGljb24tYnRuLCBzbyA0NHB4ICgzMiArIDEyIGJyZWF0aGluZyByb29tKSBpcyB0aGUgcmVhbCByZXNlcnZhdGlvbi5cbiAgIFR3byBjbGFzc2VzLCBzYW1lIHNwZWNpZmljaXR5IGFzIHRoZSBydWxlIGFib3ZlLCBzbyBzb3VyY2Ugb3JkZXIgZGVjaWRlc1xuICAgYW5kIHRoaXMgb25lIG11c3Qgc3RheSBCRUxPVyBpdC4gWzIxLjA4LjIwMjZdICovXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLWNvcm5lci1tZW51LW9ubHkgLmFjLWxhYmVsLFxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1jb3JuZXItbWVudS1vbmx5IC5hYy1kZXNjcmlwdGlvbiB7XG4gIHBhZGRpbmctcmlnaHQ6IDQ0cHg7XG59XG5cbi8qID09PSBTdGF0dXMtdGludGVkIHBpbGwgPT09XG4gICBBIGdyZXkgdGFnIG9uIGEgY29sb3VyZWQgc3RhdHVzIHN1cmZhY2UgY2xhc2hlcyAoS2ltLCAxMy4wNy4yMDI2KSwgc29cbiAgIGV2ZXJ5IFwiLmFjLXBpbGxcIiAocmVxdWlyZWQgY29ybmVyIGJhZGdlLCBjb21wbGV0aW9uIHN0YW1wLCBhbmQgdGhlXG4gICByZXBlYXQgdGFnIGFkZGVkIDEzLjA3LjIwMjYpIGZvbGxvd3MgdGhlIHN0YXR1cyBwYWxldHRlOiB0aGUgXCItMlwiIHRhZ1xuICAgdG9uZSBhcyBiYWNrZ3JvdW5kIHdpdGggdGhlIG1hdGNoaW5nIHRhZyB0ZXh0IGNvbG91ci4gVGhlIHRhZyBjb21wb25lbnRcbiAgIHBhaW50cyBpdHNlbGYgZnJvbSB0aGUgLS10YWctYmcvLS10YWctdGV4dCBjdXN0b20gcHJvcGVydGllcywgc29cbiAgIG92ZXJyaWRpbmcgdGhvc2UgaGVyZSAodGhyZWUgY2xhc3NlcywgYmVhdHMgdGhlIHRhZydzIG93biB0d28tY2xhc3NcbiAgIHNlbGVjdG9yKSBpcyBlbm91Z2guIE9wZW4vcmVwZWF0LWRvbmUvZGlzYWJsZWQga2VlcCB0aGUgdGFnJ3Mgb3duXG4gICBncmV5L2Rpc2FibGVkIGxvb2sgKG5vIHRpbnQgcnVsZSBleGlzdHMgZm9yIGFjLXN0YXR1cy1yZXBlYXQtZG9uZSwgYnlcbiAgIGRlc2lnbiAtIHNlZSB0aGUgcmVwZWF0LWRvbmUgbm90ZSBmdXJ0aGVyIGRvd24pLiAqL1xuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtaW4tcHJvZ3Jlc3MgLmFjLXBpbGwge1xuICAtLXRhZy1iZzogdmFyKC0tYy1jaGlwLXllbGxvdy0yLWJnKTtcbiAgLS10YWctdGV4dDogIzY1NTUyMjtcbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtY29tcGxldGVkIC5hYy1waWxsIHtcbiAgLS10YWctYmc6IHZhcigtLWMtY2hpcC1ncmVlbi0yLWJnKTtcbiAgLS10YWctdGV4dDogIzJmNWQ0YTtcbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtZXJyb3IgLmFjLXBpbGwge1xuICAtLXRhZy1iZzogdmFyKC0tYy1jaGlwLXJlZC0yLWJnKTtcbiAgLS10YWctdGV4dDogIzYzMzAzMDtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtaW4tcHJvZ3Jlc3MgLmFjLXBpbGwge1xuICAtLXRhZy1iZzogIzdhNmIyZDtcbiAgLS10YWctdGV4dDogI2ZkZTU5NDtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtY29tcGxldGVkIC5hYy1waWxsIHtcbiAgLS10YWctYmc6ICMzZDdhNjI7XG4gIC0tdGFnLXRleHQ6ICM4YmVjYzU7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWVycm9yIC5hYy1waWxsIHtcbiAgLS10YWctYmc6ICM3YTM4Mzg7XG4gIC0tdGFnLXRleHQ6ICNmYmFhYWE7XG59XG5cbi8qID09PSBCb3R0b20gYWN0aW9uIHJvdzogYnJpZWZpbmcgLyByZXBlYXQgYnV0dG9ucyA9PT1cbiAgIEZ1bGwtd2lkdGggcm93IGJlbG93IHRoZSB0aWxlL3RleHQvZ2x5cGggY29sdW1ucyAoS2ltLCAxMy4wNy4yMDI2IC0gdGhlXG4gICBvbGQgYnJpZWZpbmcvY291bnRlciBwaWxscyB3ZXJlIHRvbyBzbWFsbCBhcyB0b3VjaCB0YXJnZXRzKS4gSGFpcmxpbmVcbiAgIGRpdmlkZXIgcmV1c2VzIC0tYWMtYm9yZGVyLCBzbyBpdCByZWNvbG91cnMgdGhlIHNhbWUgd2F5IGFzIHRoZSBjYXJkXG4gICBib3JkZXIgb24gZXZlcnkgc3RhdHVzLiAqL1xuLnFkbmFwcm8tYWN0aXZpdHktY2FyZCAuYWMtYWN0aW9ucyB7XG4gIGdyaWQtYXJlYTogYWN0aW9ucztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWFjLWJvcmRlciwgI2UxZTNlNik7XG59XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQgLmFjLWFjdGlvbi1idG4ge1xuICBmbGV4OiBub25lO1xufVxuXG4vKiA9PT0gU3RhdHVzLXRpbnRlZCBhY3Rpb24gYnV0dG9ucyA9PT1cbiAgIHNlY29uZGFyeS1wdXJwbGUgd29ya3Mgb24gdGhlIHdoaXRlIG9wZW4gY2FyZCBidXQgY2xhc2hlcyBvbiB0aGUgY29sb3VyZWRcbiAgIHN0YXR1cyBzdXJmYWNlcyAoS2ltLCAxMy4wNy4yMDI2KS4gT24gdGhvc2Ugc3RhdHVzZXMgdGhlIGJ1dHRvbnMgdGFrZSB0aGVcbiAgIHNhbWUgXCItMlwiIHRhZyB0b25lIGZhbWlseSBhcyB0aGUgcGlsbDogLTIgYmFja2dyb3VuZCwgc3RhdHVzIHRleHQgY29sb3VyLFxuICAgdGhlIHRhZydzIG93biAtMiBob3ZlciB0b2tlbiBvbiBob3Zlci9wcmVzcy4gcWRuYXByby1idXR0b24gcGFpbnRzIGZyb21cbiAgIGZpeGVkIGNsYXNzIGNvbG91cnMgKG5vIGN1c3RvbSBwcm9wZXJ0aWVzKSwgc28gdGhlc2UgZml2ZS1jbGFzcyBvdmVycmlkZXNcbiAgIHNpbXBseSBvdXQtc3BlY2lmeSBpdHMgdGhyZWUtY2xhc3MgcnVsZXM7IGljb25zIGZvbGxvdyB2aWEgY3VycmVudENvbG9yLiAqL1xuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtaW4tcHJvZ3Jlc3MgLmFjLWFjdGlvbnMgLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnktcHVycGxlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLXllbGxvdy0yLWJnKTtcbiAgY29sb3I6ICM2NTU1MjI7XG59XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWluLXByb2dyZXNzIC5hYy1hY3Rpb25zIC5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5LXB1cnBsZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCksXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1pbi1wcm9ncmVzcyAuYWMtYWN0aW9ucyAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS1wdXJwbGU6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC15ZWxsb3ctMi1ob3Zlcik7XG59XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWNvbXBsZXRlZCAuYWMtYWN0aW9ucyAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS1wdXJwbGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAtZ3JlZW4tMi1iZyk7XG4gIGNvbG9yOiAjMmY1ZDRhO1xufVxuXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1jb21wbGV0ZWQgLmFjLWFjdGlvbnMgLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnktcHVycGxlOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSxcbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWNvbXBsZXRlZCAuYWMtYWN0aW9ucyAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS1wdXJwbGU6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1ncmVlbi0yLWhvdmVyKTtcbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtZXJyb3IgLmFjLWFjdGlvbnMgLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnktcHVycGxlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLXJlZC0yLWJnKTtcbiAgY29sb3I6ICM2MzMwMzA7XG59XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWVycm9yIC5hYy1hY3Rpb25zIC5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5LXB1cnBsZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCksXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1lcnJvciAuYWMtYWN0aW9ucyAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS1wdXJwbGU6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1yZWQtMi1ob3Zlcik7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWluLXByb2dyZXNzIC5hYy1hY3Rpb25zIC5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5LXB1cnBsZSB7XG4gIGJhY2tncm91bmQ6ICM3YTZiMmQ7XG4gIGNvbG9yOiAjZmVmNmRiO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1pbi1wcm9ncmVzcyAuYWMtYWN0aW9ucyAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS1wdXJwbGU6aG92ZXI6bm90KC5idXR0b24tZGlzYWJsZWQpLFxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtaW4tcHJvZ3Jlc3MgLmFjLWFjdGlvbnMgLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnktcHVycGxlOmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiAjOWE4YTNiO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1jb21wbGV0ZWQgLmFjLWFjdGlvbnMgLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnktcHVycGxlIHtcbiAgYmFja2dyb3VuZDogIzNkN2E2MjtcbiAgY29sb3I6ICNlMmZhZjE7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWNvbXBsZXRlZCAuYWMtYWN0aW9ucyAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS1wdXJwbGU6aG92ZXI6bm90KC5idXR0b24tZGlzYWJsZWQpLFxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtY29tcGxldGVkIC5hYy1hY3Rpb25zIC5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5LXB1cnBsZTphY3RpdmU6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogIzRkOWM3Yztcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtZXJyb3IgLmFjLWFjdGlvbnMgLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnktcHVycGxlIHtcbiAgYmFja2dyb3VuZDogIzdhMzgzODtcbiAgY29sb3I6ICNmZWUzZTM7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWVycm9yIC5hYy1hY3Rpb25zIC5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5LXB1cnBsZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCksXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1lcnJvciAuYWMtYWN0aW9ucyAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS1wdXJwbGU6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6ICM5YTQ3NDc7XG59XG5cbi8qIFRoZSBjb3VudCBiYWRnZSBvbiB0aGUgcmVwZWF0IGJ1dHRvbiAocWRuYXByby1idXR0b24ncyBvd24gYmFkZ2UgYXR0cixcbiAgIFwic3VidGxlXCIgcGFpcmluZyA9IGxhdmVuZGVyKSBtdXN0IGZvbGxvdyB0aGUgc2FtZSBzdGF0dXMgdGludCAoS2ltLFxuICAgMTMuMDcuMjAyNik6IHRoZSBsaWdodCBzdGF0dXMgc3VyZmFjZSB0b25lIGFzIGJhZGdlIGJhY2tncm91bmQgd2l0aCB0aGVcbiAgIHN0YXR1cyB0ZXh0IGNvbG91ciwgc28gaXQgcmVhZHMgYXMgYSBxdWlldCBjaGlwIG9uIHRoZSBcIi0yXCIgYnV0dG9uLiAqL1xuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtaW4tcHJvZ3Jlc3MgLmFjLWFjdGlvbnMgW2RhdGEtYnV0dG9uLWJhZGdlXSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtY2hpcC15ZWxsb3ctYmcpO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzY1NTUyMjtcbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtY29tcGxldGVkIC5hYy1hY3Rpb25zIFtkYXRhLWJ1dHRvbi1iYWRnZV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWNoaXAtZ3JlZW4tYmcpO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzJmNWQ0YTtcbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtZXJyb3IgLmFjLWFjdGlvbnMgW2RhdGEtYnV0dG9uLWJhZGdlXSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC1iZyk7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjNjMzMDMwO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1pbi1wcm9ncmVzcyAuYWMtYWN0aW9ucyBbZGF0YS1idXR0b24tYmFkZ2VdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVhNGQxZjtcbiAgY29sb3I6ICNmZGU1OTQ7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWNvbXBsZXRlZCAuYWMtYWN0aW9ucyBbZGF0YS1idXR0b24tYmFkZ2VdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJhNTU0NDtcbiAgY29sb3I6ICM4YmVjYzU7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWVycm9yIC5hYy1hY3Rpb25zIFtkYXRhLWJ1dHRvbi1iYWRnZV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWEyYjJiO1xuICBjb2xvcjogI2ZiYWFhYTtcbn1cblxuQGtleWZyYW1lcyBxZG5hcHJvLWFjLWNvdW50LWJ1bXAge1xuICAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgMzUlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjE4KTsgfVxuICA2MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpOyB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG59XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQgLmFjLWJhZGdlLWJ1bXAge1xuICBhbmltYXRpb246IHFkbmFwcm8tYWMtY291bnQtYnVtcCAzODBtcyBlYXNlLW91dDtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnFkbmFwcm8tYWN0aXZpdHktY2FyZCAuYWMtYmFkZ2UtYnVtcCB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG59XG5cbi8qID09PSBQdWxzZSAoc3RhdHVzLWNoYW5nZWQgZmVlZGJhY2spID09PSAqL1xuQGtleWZyYW1lcyBxZG5hcHJvLWFjLXB1bHNlIHtcbiAgMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoNjQsIDczLCAxNTQsIDAuMzUpOyB9XG4gIDQwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4wMTUpOyBib3gtc2hhZG93OiAwIDAgMCA4cHggcmdiYSg2NCwgNzMsIDE1NCwgMCk7IH1cbiAgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSg2NCwgNzMsIDE1NCwgMCk7IH1cbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1wdWxzZSB7XG4gIGFuaW1hdGlvbjogcWRuYXByby1hYy1wdWxzZSA1MjBtcyBlYXNlLW91dDtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1wdWxzZSB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG59XG5cbi8qID09PSBJY29uLWNvbG9yIHBhbGV0dGUgKHFkbmFwcm8tdGFnIC0tdGFnLWJnIHZhbHVlcywgbGlnaHQpID09PVxuICAgT25seSB1c2VkIGJ5IHRoZSBcIm9wZW5cIiBzdGF0dXMgLSBldmVyeSBvdGhlciBzdGF0dXMgb3ZlcnJpZGVzIHRoZSB0aWxlXG4gICBjb2xvdXIgZGlyZWN0bHkgZnVydGhlciBkb3duLiAqL1xuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1jb2xvci1ncmV5IHtcbiAgLS1hYy10aWxlLWJnOiB2YXIoLS1jLWdyZXktNTApO1xufVxuXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLWNvbG9yLXJlZCB7XG4gIC0tYWMtdGlsZS1iZzogdmFyKC0tYy1zaWduYWwtcmVkLWJnKTtcbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1jb2xvci15ZWxsb3cge1xuICAtLWFjLXRpbGUtYmc6IHZhcigtLWMtY2hpcC15ZWxsb3ctYmcpO1xufVxuXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLWNvbG9yLWdyZWVuIHtcbiAgLS1hYy10aWxlLWJnOiB2YXIoLS1jLWNoaXAtZ3JlZW4tYmcpO1xufVxuXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLWNvbG9yLWJsdWUge1xuICAtLWFjLXRpbGUtYmc6IHZhcigtLWMtc2lnbmFsLWJsdWUtYmcpO1xufVxuXG4vLyBicmlnaHQtYmx1ZSB1c2VzIHRoZSBzb2Z0ZXIgYnJpZ2h0LWJsdWUtMiBwYXN0ZWw6IHRoZSBiYXNlIGJyaWdodC1ibHVlXG4vLyB0b2tlbiAoIzg1YTFlYykgaXMgZmFyIG1vcmUgc2F0dXJhdGVkIHRoYW4gdGhlIG90aGVyIHNldmVuIHBhc3RlbHMgYW5kXG4vLyB3b3VsZCBtYWtlIHRoZSB0aWxlIHNob3V0LiBTYW1lIHN1YnN0aXR1dGlvbiB0aGUgdGFza2xpc3QtY2FyZCBtYWtlcy5cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtY29sb3ItYnJpZ2h0LWJsdWUge1xuICAtLWFjLXRpbGUtYmc6IHZhcigtLWMtY2hpcC1icmlnaHQtYmx1ZS0yLWJnKTtcbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1jb2xvci1waW5rIHtcbiAgLS1hYy10aWxlLWJnOiB2YXIoLS1jLXNpZ25hbC1waW5rLWJnKTtcbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1jb2xvci1wdXJwbGUge1xuICAtLWFjLXRpbGUtYmc6IHZhcigtLWMtY2hpcC1wdXJwbGUtYmcpO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLWNvbG9yLWdyZXkge1xuICAtLWFjLXRpbGUtYmc6ICM1NjViNjY7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtY29sb3ItcmVkIHtcbiAgLS1hYy10aWxlLWJnOiAjNWEyYjJiO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLWNvbG9yLXllbGxvdyB7XG4gIC0tYWMtdGlsZS1iZzogIzVhNGQxZjtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1jb2xvci1ncmVlbiB7XG4gIC0tYWMtdGlsZS1iZzogIzJhNTU0NDtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1jb2xvci1ibHVlIHtcbiAgLS1hYy10aWxlLWJnOiAjMmUzZTU0O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLWNvbG9yLWJyaWdodC1ibHVlIHtcbiAgLS1hYy10aWxlLWJnOiAjMmEzNTYwO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLWNvbG9yLXBpbmsge1xuICAtLWFjLXRpbGUtYmc6ICM0ZTJhMzY7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtY29sb3ItcHVycGxlIHtcbiAgLS1hYy10aWxlLWJnOiAjM2EzNTU1O1xufVxuXG4vKiA9PT0gU3RhdHVzIG92ZXJyaWRlcyAoYWx3YXlzIHdpbiBvdmVyIHRoZSBpY29uLWNvbG9yIHBhc3RlbCkgPT09XG4gICBFYWNoIHN0YXR1cyBzZXRzIHRoZSB0aWxlIGJhY2tncm91bmQgZGlyZWN0bHkgKG5vdCB0aHJvdWdoIC0tYWMtdGlsZS1iZylcbiAgIHdpdGggYSBoaWdoZXItc3BlY2lmaWNpdHkgc2VsZWN0b3IgKDIgY2xhc3NlcyArIGRlc2NlbmRhbnQpLCBzbyBpdCB3aW5zXG4gICByZWdhcmRsZXNzIG9mIHNvdXJjZSBvcmRlciAtIHNhbWUgcGF0dGVybiBhcyB0aGUgdGFza2xpc3QtY2FyZCBbYXJjaGl2ZWRdXG4gICBvdmVycmlkZS4gQm9yZGVyIGNvbG91ciByZXVzZXMgdGhlIHRpbGUncyBcIi0yXCIgdG9uZSBmb3IgZGVmaW5pdGlvbiwgbm9cbiAgIG5ldyBwYWxldHRlIHZhbHVlcyBpbnZlbnRlZC4gKi9cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWluLXByb2dyZXNzIHtcbiAgLS1hYy1zdXJmYWNlOiB2YXIoLS1jLWNoaXAteWVsbG93LWJnKTtcbiAgLS1hYy1ib3JkZXI6IHZhcigtLWMtY2hpcC15ZWxsb3ctMi1iZyk7XG4gIC0tYWMtdGV4dDogIzY1NTUyMjtcbiAgLS1hYy10ZXh0LW11dGVkOiAjNjU1NTIyO1xufVxuXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1pbi1wcm9ncmVzcyAuYWMtdGlsZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC15ZWxsb3ctMi1iZyk7XG59XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWNvbXBsZXRlZCB7XG4gIC0tYWMtc3VyZmFjZTogdmFyKC0tYy1jaGlwLWdyZWVuLWJnKTtcbiAgLS1hYy1ib3JkZXI6IHZhcigtLWMtY2hpcC1ncmVlbi0yLWJnKTtcbiAgLS1hYy10ZXh0OiAjMmY1ZDRhO1xuICAtLWFjLXRleHQtbXV0ZWQ6ICMyZjVkNGE7XG59XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWNvbXBsZXRlZCAuYWMtdGlsZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1ncmVlbi0yLWJnKTtcbn1cblxuLyogcmVwZWF0LWRvbmUgKEtpbSdzIGNvbXByb21pc2UsIDEzLjA3LjIwMjYpOiBhIHJlcGVhdCBhY3Rpdml0eSBuZXZlciB0cnVseVxuICAgXCJjb21wbGV0ZXNcIiwgYnV0IGFmdGVyIGF0IGxlYXN0IG9uZSBmaWxsLWluIGl0IGRlc2VydmVzIHRoZSBzYW1lXG4gICBzYXRpc2Z5aW5nIGdyZWVuIHRpbGUgKyB0ZXh0IGFzIGNvbXBsZXRlZCAtIFdJVEhPVVQgdGhlIGdyZWVuIHN1cmZhY2VcbiAgIHdhc2gsIHNvIHRoZSBjYXJkIHN0aWxsIHJlYWRzIGFzIG9wZW4vdGFwcGFibGUgZm9yIHRoZSBuZXh0IGZpbGwtaW4uXG4gICBPbmx5IC0tYWMtdGV4dC8tLWFjLXRleHQtbXV0ZWQgYXJlIG92ZXJyaWRkZW4gKG1hdGNoaW5nIGNvbXBsZXRlZCdzXG4gICB2YWx1ZXMpOyAtLWFjLXN1cmZhY2UvLS1hYy1ib3JkZXIgYXJlIGRlbGliZXJhdGVseSBsZWZ0IHVuc2V0IHNvIHRoZSBjYXJkXG4gICBmYWxscyBiYWNrIHRvIHRoZSBuZXV0cmFsIG9wZW4gY2hyb21lICgjZmZmZmZmIC8gdmFyKC0tYy1ib3JkZXItY2FyZCkgdmlhIHRoZSBiYXNlXG4gICBydWxlJ3Mgb3duIGZhbGxiYWNrcykuIE5vIHBpbGwvYWN0aW9uLWJ1dHRvbiB0aW50IHJ1bGVzIGV4aXN0IGZvciB0aGlzXG4gICBzdGF0dXMgKHVubGlrZSBpbi1wcm9ncmVzcy9jb21wbGV0ZWQvZXJyb3IpIC0gZGVsaWJlcmF0ZWx5LCBwZXIgc3BlYy4gKi9cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLXJlcGVhdC1kb25lIHtcbiAgLS1hYy10ZXh0OiAjMmY1ZDRhO1xuICAtLWFjLXRleHQtbXV0ZWQ6ICMyZjVkNGE7XG59XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLXJlcGVhdC1kb25lIC5hYy10aWxlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLWdyZWVuLTItYmcpO1xufVxuXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1lcnJvciB7XG4gIC0tYWMtc3VyZmFjZTogdmFyKC0tYy1zaWduYWwtcmVkLWJnKTtcbiAgLS1hYy1ib3JkZXI6IHZhcigtLWMtY2hpcC1yZWQtMi1iZyk7XG4gIC0tYWMtdGV4dDogIzYzMzAzMDtcbiAgLS1hYy10ZXh0LW11dGVkOiAjNjMzMDMwO1xufVxuXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1lcnJvciAuYWMtdGlsZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1yZWQtMi1iZyk7XG59XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWRpc2FibGVkIHtcbiAgLS1hYy1zdXJmYWNlOiB2YXIoLS1jLWdyZXktNTApO1xuICAtLWFjLWJvcmRlcjogdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gIC0tYWMtdGV4dDogdmFyKC0tYy10ZXh0LWRpc2FibGVkKTtcbiAgLS1hYy10ZXh0LW11dGVkOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtZGlzYWJsZWQgLmFjLXRpbGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbiAgZmlsdGVyOiBncmF5c2NhbGUoMSk7XG59XG5cbi8qIERhcmstbW9kZSBzdGF0dXMgb3ZlcnJpZGVzLiBWYWx1ZXMgZnJvbSB0aGUgdGFnIGRhcmsgcGFsZXR0ZTpcbiAgIHllbGxvdygtMiksIGdyZWVuKC0yKSwgcmVkKC0yKSBwYWlyczsgZ3JleSBiYXNlICsgZ3JleSBob3ZlciBmb3IgZGlzYWJsZWQuICovXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1pbi1wcm9ncmVzcyB7XG4gIC0tYWMtc3VyZmFjZTogIzVhNGQxZjtcbiAgLS1hYy1ib3JkZXI6ICM3YTZiMmQ7XG4gIC0tYWMtdGV4dDogI2ZkZTU5NDtcbiAgLS1hYy10ZXh0LW11dGVkOiAjZmRlNTk0O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1pbi1wcm9ncmVzcyAuYWMtdGlsZSB7XG4gIGJhY2tncm91bmQ6ICM3YTZiMmQ7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWNvbXBsZXRlZCB7XG4gIC0tYWMtc3VyZmFjZTogIzJhNTU0NDtcbiAgLS1hYy1ib3JkZXI6ICMzZDdhNjI7XG4gIC0tYWMtdGV4dDogIzhiZWNjNTtcbiAgLS1hYy10ZXh0LW11dGVkOiAjOGJlY2M1O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1jb21wbGV0ZWQgLmFjLXRpbGUge1xuICBiYWNrZ3JvdW5kOiAjM2Q3YTYyO1xufVxuXG4vKiByZXBlYXQtZG9uZSBkYXJrIHRpbGUgKyB0ZXh0IChzYW1lIHNwbGl0IGFzIGxpZ2h0OiBzdXJmYWNlL2JvcmRlciBzdGF5XG4gICB0aGUgZGFyayBiYXNlIGNhcmQgY2hyb21lIHNldCBieSB0aGUgcGxhaW4gW2RhdGEtdGhlbWU9ZGFya11cbiAgIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQgcnVsZSBhYm92ZSkuICovXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1yZXBlYXQtZG9uZSB7XG4gIC0tYWMtdGV4dDogIzhiZWNjNTtcbiAgLS1hYy10ZXh0LW11dGVkOiAjOGJlY2M1O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1yZXBlYXQtZG9uZSAuYWMtdGlsZSB7XG4gIGJhY2tncm91bmQ6ICMzZDdhNjI7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWVycm9yIHtcbiAgLS1hYy1zdXJmYWNlOiAjNWEyYjJiO1xuICAtLWFjLWJvcmRlcjogIzdhMzgzODtcbiAgLS1hYy10ZXh0OiAjZmJhYWFhO1xuICAtLWFjLXRleHQtbXV0ZWQ6ICNmYmFhYWE7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWVycm9yIC5hYy10aWxlIHtcbiAgYmFja2dyb3VuZDogIzdhMzgzODtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtZGlzYWJsZWQge1xuICAtLWFjLXN1cmZhY2U6ICM1NjViNjY7XG4gIC0tYWMtYm9yZGVyOiAjNmI3MTgwO1xuICAtLWFjLXRleHQ6ICM2YjcxODA7XG4gIC0tYWMtdGV4dC1tdXRlZDogIzZiNzE4MDtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtZGlzYWJsZWQgLmFjLXRpbGUge1xuICBiYWNrZ3JvdW5kOiAjNmI3MTgwO1xuICBmaWx0ZXI6IGdyYXlzY2FsZSgxKTtcbn1cblxuLyogPT09IEZvcmNlIHN0YXRlcyAocHJldmlldy1vbmx5LCBtaXJyb3JzIHJlYWwgOmhvdmVyIC8gOmFjdGl2ZSAxOjEpID09PVxuICAgVXNlZCBieSB0aGUgXCJGb3JjZSBzdGF0ZXNcIiBwcmV2aWV3IHNlY3Rpb24gdG8gbWFrZSB0cmFuc2llbnQgc3RhdGVzXG4gICBzY3JlZW5zaG90dGFibGUuIEtlZXAgaW4gc3luYyB3aXRoIHRoZSByZWFsIGhvdmVyL2FjdGl2ZSBydWxlcyBhYm92ZS4gKi9cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuaXMtZm9yY2UtaG92ZXIge1xuICAtLWFjLW92ZXJsYXktbzogMC41O1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xNCk7XG4gIGJveC1zaGFkb3c6IDAgM3B4IDEwcHggcmdiYSgyMCwgMjUsIDgwLCAwLjA4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmlzLWZvcmNlLXByZXNzZWQge1xuICAtLWFjLW92ZXJsYXktbzogMTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4NSk7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuaXMtZm9yY2UtaG92ZXIge1xuICBib3gtc2hhZG93OiAwIDNweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpO1xufVxuXG4vKiA9PT0gU21hbGxlc3Qgc2NyZWVuICgzMjBweCkgPT09ICovXG5AbWVkaWEgKG1heC13aWR0aDogMzIwcHgpIHtcbiAgLnFkbmFwcm8tYWN0aXZpdHktY2FyZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA0MHB4IDFmcjtcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICBnYXA6IDhweDtcbiAgfVxuXG4gIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQgLmFjLXRpbGUge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgfVxuXG4gIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQgLmFjLXRpbGUtdGljayBzdmcge1xuICAgIHdpZHRoOiAyNnB4O1xuICAgIGhlaWdodDogMjZweDtcbiAgfVxufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvYWN0aXZpdHktaWNvbi9fYWN0aXZpdHktaWNvbi1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4ucWRuYXByby1hY3Rpdml0eS1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmbGV4LXNocmluazogMDtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE0MG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbiAuYWN0aXZpdHktaWNvbi1pbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi5hY3Rpdml0eS1pY29uLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC41O1xufVxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi5hY3Rpdml0eS1pY29uLW1pc3Npbmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gIGJvcmRlcjogMXB4IGRhc2hlZCAjYzRjN2NjO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG4ucWRuYXByby1hY3Rpdml0eS1pY29uLmFjdGl2aXR5LWljb24tbWlzc2luZzo6YWZ0ZXIge1xuICBjb250ZW50OiBcIj9cIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICM4OThlOTk7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWljb24uYWN0aXZpdHktaWNvbi1taXNzaW5nIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbiAgYm9yZGVyLWNvbG9yOiAjNTY1YjY2O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1pY29uLmFjdGl2aXR5LWljb24tbWlzc2luZzo6YWZ0ZXIge1xuICBjb2xvcjogIzZiNzI4MDtcbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL2FjdGl2aXR5LWljb24tcGlja2VyL19hY3Rpdml0eS1pY29uLXBpY2tlci1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIHFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXJcbiAqIFBvcnRlZCBpbnRvIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSBzbyB0aGUgcGlja2VyIGlzIHN0eWxlZCBvblxuICogdjEgcGFnZXMgdGhhdCBsb2FkIHRoZSBidW5kbGUgKGl0IHByZXZpb3VzbHkgb25seSBsaXZlZCBpbmxpbmUgaW5cbiAqIHRoZSBwcmV2aWV3ICsgYXMgYSBmb3ItU2FuZGVyIFNDU1MgZHJvcC1pbikuIFtLaW0gMjAyNi0wNS0zMV1cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ucWRuYXByby1hY3Rpdml0eS1pY29uLXBpY2tlciB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogOHB4OyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4ucWRuYXByby1hY3Rpdml0eS1pY29uLXBpY2tlciAqLFxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIgKjo6YmVmb3JlLFxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIgKjo6YWZ0ZXIgeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWljb24tcGlja2VyIC5haXAtZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoOCwgMWZyKTsgZ2FwOiA0cHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAucWRuYXByby1hY3Rpdml0eS1pY29uLXBpY2tlciAuYWlwLWdyaWQgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpOyB9XG59XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWljb24tcGlja2VyIC5haXAtdGlsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIGN1cnNvcjogcG9pbnRlcjsgb3V0bGluZTogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEyMG1zIGVhc2UsIGJvcmRlci1jb2xvciAxMjBtcyBlYXNlLCBib3gtc2hhZG93IDE1MG1zIGVhc2UsIHRyYW5zZm9ybSAxMDBtcyBlYXNlO1xufVxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIgLmFpcC10aWxlIHFkbmFwcm8tYWN0aXZpdHktaWNvbiB7IHBvaW50ZXItZXZlbnRzOiBub25lOyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfVxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIgLmFpcC10aWxlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpOyBib3JkZXItY29sb3I6IHZhcigtLWMtc2lkZWJhci1pY29uKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIgLmFpcC10aWxlOmFjdGl2ZSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIgLmFpcC10aWxlOmZvY3VzLXZpc2libGUge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTsgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjApO1xufVxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIgLmFpcC10aWxlLmFpcC10aWxlLXNlbGVjdGVkIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYWN0aW9uLTUwMCk7IGJhY2tncm91bmQ6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMDYpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbn1cbi5xZG5hcHJvLWFjdGl2aXR5LWljb24tcGlja2VyIC5haXAtdGlsZS5haXAtdGlsZS1zZWxlY3RlZDpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMTApOyB9XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWljb24tcGlja2VyIC5haXAtYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIHBhZGRpbmctdG9wOiAycHg7XG59XG4vKiBcIlZpZXcgbW9yZVwiIChNZWVyIGljb25lbikgdXNlcyBxZG5hcHJvLWJ1dHRvbiAoc3VidGxlLXB1cnBsZSwgc21hbGwpLiAqL1xuXG4vKiAtLS0tIGN1cnJlbnQtb25seSAoMDQuMDguMjAyNikgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBLaW0sIHRha2VubGlqc3QtaW5zdGVsbGluZ2VuOiBcImlrIHdpbCBnZXdvb24gYWxsZWVuIGRlIGh1aWRpZ2UgaWNvbiBsYXRlblxuICAgemllbiBlbiBkZSBtZWVyIGljb24ga25vcCBuYWFzdCBlbGthYXIsIG9tIHJ1aW10ZSB0ZSBiZXNwYXJlblwiLiBEZSBob3N0IGlzXG4gICBub3JtYWFsIGVlbiBLT0xPTSAoZ3JpZCBib3Zlbiwga25vcCBlcm9uZGVyKTsgaW4gZGV6ZSBzdGFuZCB3b3JkdCBoaWogZWVuXG4gICBSSUosIHpvZGF0IGRlIGVuZSB0ZWdlbCBlbiBkZSBrbm9wIG5hYXN0IGVsa2FhciBzdGFhbi4gRGF0IHNjaGVlbHQgb3AgZWVuXG4gICBkaWNodGUgaW5zdGVsbGluZ2VucGFnaW5hIGVlbiBoZWxlIHJlZ2VsIGhvb2d0ZS5cbiAgIFppZSBxZG5hLWFjdGl2aXR5LWljb24tcGlja2VyLmpzJ3MgYGN1cnJlbnQtb25seWAgbm90ZSB2b29yIGRlIHJlc3QuICovXG4ucWRuYXByby1hY3Rpdml0eS1pY29uLXBpY2tlci5haXAtY3VycmVudC1vbmx5IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4vKiBEZSBncmlkIGhlZWZ0IGhpZXIgw6nDqW4gdGVnZWwsIGR1cyBnZWVuIGtvbG9tbWVucmFzdGVyIG1lZXIgbm9kaWcuICovXG4ucWRuYXByby1hY3Rpdml0eS1pY29uLXBpY2tlci5haXAtY3VycmVudC1vbmx5IC5haXAtZ3JpZCB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cbi8qIERlIDJweCBkaWUgZGUga25vcCBpbiBkZSBrb2xvbXN0YW5kIHZhbiBkZSBncmlkIGFmZHV3dCwgaG9vcnQgaGllciBuaWV0OlxuICAgbmFhc3QgZWxrYWFyIG1vZXRlbiB0ZWdlbCBlbiBrbm9wIG9wIMOpw6luIGxpam4gc3RhYW4uICovXG4ucWRuYXByby1hY3Rpdml0eS1pY29uLXBpY2tlci5haXAtY3VycmVudC1vbmx5IC5haXAtYWN0aW9ucyB7XG4gICAgcGFkZGluZy10b3A6IDA7XG59XG4vKiBMZWdlIHRlZ2VsOiBhbGxlZW4gemljaHRiYWFyIHpvbGFuZyBlciBub2cgZ2VlbiBpY29vbiBnZWtvemVuIGlzLiBIb3VkdCBkZVxuICAgZm9vdHByaW50IHZhc3Qgem9kYXQgZGUgcmlqIG5pZXQgdmVyc3ByaW5ndCwgZW4gZ2VzdGlwcGVsZCB6b2RhdCBoZXQgYWxzXG4gICBcImhpZXIga29tdCBpZXRzXCIgbGVlc3QgZW4gbmlldCBhbHMgZWVuIGthcG90IGljb29uLiAqL1xuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIgLmFpcC10aWxlLmFpcC10aWxlLWVtcHR5IHtcbiAgICBib3JkZXItc3R5bGU6IGRhc2hlZDtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWljb24tcGlja2VyLmFpcC1kaXNhYmxlZCB7IG9wYWNpdHk6IDAuNTU7IHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi8qIEVycm9yIHN0YXRlICovXG4ucWRuYXByby1hY3Rpdml0eS1pY29uLXBpY2tlci5haXAtZXJyb3IgLmFpcC1ncmlkIHtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoMTk4LCA5MCwgOTAsIDAuMTgpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTk4LCA5MCwgOTAsIDAuMDQpO1xufVxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIgLmFpcC1lcnJvci1tZXNzYWdlIHtcbiAgICBtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTJweDsgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0KTsgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLyogU2l6ZTogY29tcGFjdCAtIGRlbnNlIGdyaWQgZm9yIHRoZSBmdWxsLXNldCBwaWNrZXIgb3ZlcmxheSAqL1xuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIuYWlwLXNpemUtY29tcGFjdCB7IGdhcDogNnB4OyB9XG4ucWRuYXByby1hY3Rpdml0eS1pY29uLXBpY2tlci5haXAtc2l6ZS1jb21wYWN0IC5haXAtZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIDFmcik7IGdhcDogNHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gICAgLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIuYWlwLXNpemUtY29tcGFjdCAuYWlwLWdyaWQgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg4LCAxZnIpOyB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAucWRuYXByby1hY3Rpdml0eS1pY29uLXBpY2tlci5haXAtc2l6ZS1jb21wYWN0IC5haXAtZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDYsIDFmcik7IH1cbn1cbi5xZG5hcHJvLWFjdGl2aXR5LWljb24tcGlja2VyLmFpcC1zaXplLWNvbXBhY3QgLmFpcC10aWxlIHsgYm9yZGVyLXJhZGl1czogNnB4OyB9XG4ucWRuYXByby1hY3Rpdml0eS1pY29uLXBpY2tlci5haXAtc2l6ZS1jb21wYWN0IC5haXAtdGlsZTpob3ZlciB7IHRyYW5zZm9ybTogbm9uZTsgfVxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIuYWlwLXNpemUtY29tcGFjdCAuYWlwLXRpbGUuYWlwLXRpbGUtc2VsZWN0ZWQge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjMwKTtcbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL2FjdGl2aXR5LWljb24tcGlja2VyLW92ZXJsYXkvX2FjdGl2aXR5LWljb24tcGlja2VyLW92ZXJsYXktY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBxZG5hcHJvLWFjdGl2aXR5LWljb24tcGlja2VyLW92ZXJsYXlcbiAqIEFuY2hvcmVkIHNlYXJjaCBwb3BvdmVyIGZvciB0aGUgZnVsbCBhY3Rpdml0eS1pY29uIHNldC4gUG9ydGVkXG4gKiBpbnRvIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSBzbyBpdCBpcyBzdHlsZWQgb24gdjEgcGFnZXMgdGhhdFxuICogbG9hZCB0aGUgYnVuZGxlIChpdCBwcmV2aW91c2x5IG9ubHkgbGl2ZWQgaW5saW5lIGluIHRoZSBwcmV2aWV3KS5cbiAqIFRoZSBKUyBzZXRzIHBvc2l0aW9uIChsZWZ0L3RvcC93aWR0aCkgaW5saW5lIGFuZCB0b2dnbGVzIHRoZVxuICogLmFpcC1vdmVybGF5LW9wZW4gY2xhc3M7IHRoaXMgQ1NTIHN1cHBsaWVzIHRoZSBib3ggKyBjaHJvbWUuXG4gKiB6LWluZGV4IDkxMDAga2VlcHMgaXQgYWJvdmUgcWRuYXByby1tb2RhbCAoei1pbmRleCA5MDAwKS5cbiAqIFtLaW0gMjAyNi0wNS0zMV1cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ucWRuYXByby1hY3Rpdml0eS1pY29uLXBpY2tlci1vdmVybGF5IHsgZGlzcGxheTogY29udGVudHM7IH1cbi5xZG5hcHJvLWFjdGl2aXR5LWljb24tcGlja2VyLW92ZXJsYXkgKixcbi5xZG5hcHJvLWFjdGl2aXR5LWljb24tcGlja2VyLW92ZXJsYXkgKjo6YmVmb3JlLFxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXItb3ZlcmxheSAqOjphZnRlciB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLmFpcC1vdmVybGF5LXBvcG92ZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiA5MTAwO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0zMDApO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCAxMnB4IDMycHggcmdiYSgwLCAwLCAwLCAwLjE2KSxcbiAgICAgICAgMCAycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gICAgbWF4LWhlaWdodDogNTIwcHg7XG4gICAgd2lkdGg6IDQ0MHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG4gICAgYW5pbWF0aW9uOiBhaXAtb3ZlcmxheS1pbiAxNDBtcyBjdWJpYy1iZXppZXIoMC4yLCAwLjgsIDAuMiwgMSk7XG59XG4uYWlwLW92ZXJsYXktcG9wb3Zlci5haXAtb3ZlcmxheS1vcGVuIHsgZGlzcGxheTogZmxleDsgfVxuQGtleWZyYW1lcyBhaXAtb3ZlcmxheS1pbiB7XG4gICAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KSBzY2FsZSgwLjk4KTsgfVxuICAgIHRvICAgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7IH1cbn1cblxuLmFpcC1vdmVybGF5LWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTJweDsgcGFkZGluZzogMTJweCAxMnB4IDEycHggMTZweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdC0yKTsgZmxleC1zaHJpbms6IDA7XG59XG4uYWlwLW92ZXJsYXktdGl0bGUge1xuICAgIG1hcmdpbjogMDsgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMjBweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG4uYWlwLW92ZXJsYXktY2xvc2UgeyBmbGV4LXNocmluazogMDsgfVxuXG4uYWlwLW92ZXJsYXktYm9keSB7XG4gICAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmc6IDEycHggMTZweCAwIDE2cHg7IGZsZXg6IDEgMSBhdXRvOyBtaW4taGVpZ2h0OiAwO1xufVxuLmFpcC1vdmVybGF5LXRvb2xiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTJweDsgZmxleC1zaHJpbms6IDA7XG59XG4uYWlwLW92ZXJsYXktc2VhcmNoIHsgZmxleDogMSAxIGF1dG87IG1pbi13aWR0aDogMDsgfVxuLmFpcC1vdmVybGF5LWNvdW50IHtcbiAgICBmbGV4OiAwIDAgYXV0bzsgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTsgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmFpcC1vdmVybGF5LXNjcm9sbCB7XG4gICAgZmxleDogMSAxIGF1dG87IG1pbi1oZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3cteTogYXV0bzsgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDEycHggNHB4IDEycHggMDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdC0yKTsgbWFyZ2luLXRvcDogLTRweDtcbn1cbi5haXAtb3ZlcmxheS1zY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgd2lkdGg6IDEwcHg7IH1cbi5haXAtb3ZlcmxheS1zY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTgpOyBib3JkZXItcmFkaXVzOiAxMHB4O1xufVxuLmFpcC1vdmVybGF5LXNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMjgpOyB9XG5cbi5haXAtb3ZlcmxheS1zZW50aW5lbCB7XG4gICAgZmxleC1zaHJpbms6IDA7IGhlaWdodDogMXB4OyBtYXJnaW4tdG9wOiA0cHg7IHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uYWlwLW92ZXJsYXktZW1wdHkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZzogNDBweCA4cHg7IGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xufVxuLmFpcC1vdmVybGF5LWVtcHR5LXRpdGxlIHtcbiAgICBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB2YXIoLS1jLWNoaXAtZ3JleS10ZXh0KTsgbWFyZ2luLWJvdHRvbTogNHB4O1xufVxuLmFpcC1vdmVybGF5LWVtcHR5LXN1YiB7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7IH1cblxuLmFpcC1vdmVybGF5LWZvb3RlciB7XG4gICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogMTJweCAxNnB4OyBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdC0yKTsgZmxleC1zaHJpbms6IDA7XG59XG5cbi8qIENvbXBhY3QgdGlsZSBncmlkIGluc2lkZSB0aGUgcG9wb3ZlciAoYXV0by1maWxsIDM2cHggY2VsbHMpLiAqL1xuLmFpcC1vdmVybGF5LXBvcG92ZXIgLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIuYWlwLXNpemUtY29tcGFjdCAuYWlwLWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgMzZweCk7XG4gICAgZ2FwOiA4cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBpY29uLXNldD1cIm1kaVwiIOKAlCBvd24gc2ltcGxlIHRpbGUgZ3JpZCAoZmxvd2VkaXRvciBhcHBlYXJhbmNlIG1vZGFsLFxuICogMTIuMDcuMjAyNikuIFBhcmFsbGVsIHRvIHRoZSAuYWlwLWdyaWQvLmFpcC10aWxlIHJlY2lwZSBhYm92ZSBzbyBib3RoXG4gKiBtb2RlcyBsb29rIGlkZW50aWNhbCwgV0lUSE9VVCB0b3VjaGluZyBxZG5hcHJvLWFjdGl2aXR5LWljb24tcGlja2VyXG4gKiBpdHNlbGYgKHRoYXQgY29tcG9uZW50IGlzIGEgbG9hZC1iZWFyaW5nIFRhc2tsaXN0cyBkZXBlbmRlbmN5IOKAlCBzZWUgdGhlXG4gKiBKUyBkb2NibG9jayBmb3Igd2h5IHRoaXMgc3RheXMgYSBzZXBhcmF0ZSwgcGFyYWxsZWwgZ3JpZCkuXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5haXAtb3ZlcmxheS1tZGktZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIDM2cHgpO1xuICAgIGdhcDogOHB4O1xuICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG59XG4uYWlwLW92ZXJsYXktbWRpLXRpbGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDM2cHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS02MDApO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2UsIGJveC1zaGFkb3cgMTUwbXMgZWFzZTtcbn1cbi5haXAtb3ZlcmxheS1tZGktdGlsZSBxZG5hcHJvLWljb24ge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmFpcC1vdmVybGF5LW1kaS10aWxlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1zaWRlYmFyLWljb24pO1xufVxuLmFpcC1vdmVybGF5LW1kaS10aWxlOmZvY3VzLXZpc2libGUge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSg3MCwgODIsIDI0MywgMC4yMCk7XG59XG4uYWlwLW92ZXJsYXktbWRpLXRpbGUuYWlwLW92ZXJsYXktbWRpLXRpbGUtc2VsZWN0ZWQge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1hY3Rpb24tNTAwKTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjA2KTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSg3MCwgODIsIDI0MywgMC4yNSk7XG4gICAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAuYWlwLW92ZXJsYXktbWRpLXRpbGUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICAgIGNvbG9yOiAjZDFkNWRiO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5haXAtb3ZlcmxheS1tZGktdGlsZTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCk7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLmFpcC1vdmVybGF5LW1kaS10aWxlLmFpcC1vdmVybGF5LW1kaS10aWxlLXNlbGVjdGVkIHtcbiAgICBib3JkZXItY29sb3I6ICNhNWFjZmY7XG4gICAgYmFja2dyb3VuZDogcmdiYSg3MCwgODIsIDI0MywgMC4xOCk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMzApO1xuICAgIGNvbG9yOiAjYTVhY2ZmO1xufVxuXG4vLyAtLS0tIGljb24tc2V0PVwiYW5pbWF0ZWRcIjogdGhlIG1vdmluZyBzZXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2FtZSB0aWxlIGlkaW9tIGFzIHRoZSBtZGkgZ3JpZCBhYm92ZSwgb25lIHNpemUgdXA6IHRoZXNlIGFyZSBmdWxsLWNvbG91clxuLy8gZHJhd2luZ3MsIG5vdCBtb25vY2hyb21lIGdseXBocywgYW5kIGF0IDM2cHggdGhleSB0dXJuIHRvIG11c2guIDQ4cHggaXMgdGhlXG4vLyBzbWFsbGVzdCBzaXplIGF0IHdoaWNoIHRoZSBhcnR3b3JrIGlzIHN0aWxsIHJlYWRhYmxlLCBtZWFzdXJlZCBhZ2FpbnN0IHRoZVxuLy8gaHViIHRpbGUncyBvd24gaGlzdG9yeSB3aXRoIHRoaXMgc2V0LiBbS2ltIDMxLjA4LjIwMjZdXG4uYWlwLW92ZXJsYXktYW5pbS1ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgNDhweCk7XG4gICAgZ2FwOiA4cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbn1cblxuLmFpcC1vdmVybGF5LWFuaW0tdGlsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogNDhweDtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgcGFkZGluZzogNHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcyBlYXNlLCBib3JkZXItY29sb3IgMTIwbXMgZWFzZSwgYm94LXNoYWRvdyAxNTBtcyBlYXNlO1xufVxuXG4vLyBUaGUgcGxheWVyIG11c3Qgbm90IGVhdCB0aGUgY2xpY2s6IHRoZSB0aWxlIGlzIHRoZSBidXR0b24sIGFuZCBhIHBvaW50ZXJcbi8vIGV2ZW50IGxhbmRpbmcgb24gdGhlIGFuaW1hdGlvbiB3b3VsZCBuZXZlciByZWFjaCB0aGUgZGVsZWdhdGVkIGhhbmRsZXIuXG4vLyBJdHMgaG92ZXIgdHJpZ2dlciBzdGlsbCBmaXJlcyDigJQgdGhhdCBsaXN0ZW5zIG9uIHRoZSBlbGVtZW50IGl0c2VsZi5cbi5haXAtb3ZlcmxheS1hbmltLXRpbGUgcWRuYXByby1sb3R0aWUge1xuICAgIC0tcWwtc2l6ZTogMzhweDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmFpcC1vdmVybGF5LWFuaW0tdGlsZTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtc2lkZWJhci1pY29uKTtcbn1cblxuLmFpcC1vdmVybGF5LWFuaW0tdGlsZTpmb2N1cy12aXNpYmxlIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjApO1xufVxuXG4uYWlwLW92ZXJsYXktYW5pbS10aWxlLmFpcC1vdmVybGF5LWFuaW0tdGlsZS1zZWxlY3RlZCB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWFjdGlvbi01MDApO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMDYpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbn1cblxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5haXAtb3ZlcmxheS1hbmltLXRpbGUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5haXAtb3ZlcmxheS1hbmltLXRpbGU6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5haXAtb3ZlcmxheS1hbmltLXRpbGUuYWlwLW92ZXJsYXktYW5pbS10aWxlLXNlbGVjdGVkIHtcbiAgICBib3JkZXItY29sb3I6ICNhNWFjZmY7XG4gICAgYmFja2dyb3VuZDogcmdiYSg3MCwgODIsIDI0MywgMC4xOCk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMzApO1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1hY3Rpdml0eS1yb3dcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFFETkEgdG9rZW5zIHVzZWQ6XG4vLyAgICBTdXJmYWNlL0dsYXNzL0xpZ2h0ICAgICAgICAgICAgIHJnYmEoMjU1LDI1NSwyNTUsMC42MCkgICBkZWZhdWx0IGJnXG4vLyAgICBTdXJmYWNlL0dsYXNzL0xpZ2h0LUhvdmVyICAgICAgIHJnYmEoMjU1LDI1NSwyNTUsMC44MikgICBob3ZlciBiZ1xuLy8gICAgU3VyZmFjZS9HbGFzcy9MaWdodC1BY3RpdmUgICAgICByZ2JhKDI1NSwyNTUsMjU1LDAuNzApICAgcHJlc3NlZCBiZ1xuLy8gICAgU3VyZmFjZS9HbGFzcy9EYXJrICAgICAgICAgICAgICByZ2JhKDIwLDIyLDM1LDAuNzApICAgICAgZGFyayBkZWZhdWx0IGJnXG4vLyAgICBTdXJmYWNlL0dsYXNzL0RhcmstSG92ZXIgICAgICAgIHJnYmEoNDAsNDQsNjUsMC44NSkgICAgICBkYXJrIGhvdmVyIGJnXG4vLyAgICBCb3JkZXIvR2xhc3MvTGlnaHQgICAgICAgICAgICAgIHJnYmEoMjU1LDI1NSwyNTUsMC43MCkgICBsaWdodCBib3JkZXJcbi8vICAgIEJvcmRlci9HbGFzcy9EYXJrICAgICAgICAgICAgICAgcmdiYSgyNTUsMjU1LDI1NSwwLjA4KSAgIGRhcmsgYm9yZGVyXG4vLyAgICBQdXJwbGUtSGlnaGxpZ2h0ICAgICAgICAgICAgICAgICM0NjUyZjMgICAgICAgICAgICAgICAgICBkcm9wIGluZGljYXRvcnMsIGRyYWcgYWNjZW50XG4vLyAgICBJY29uL0FjdGlvbi1QdXJwbGUgKHByZXNzZWQpICAgICM0MDQ5OWEgICAgICAgICAgICAgICAgICBmb2N1cyByaW5nLCBhY3RpdmUgYnRuIGNvbG9yXG4vLyAgICBQdXJwbGUtSGlnaGxpZ2h0IEAgMjUlICAgICAgICAgIHJnYmEoNzAsODIsMjQzLDAuMjUpICAgICBmb2N1cyBnbG93XG4vLyAgICBUZXh0L09uLUJvZHkgICAgICAgICAgICAgICAgICAgICMwYjBiMGQgICAgICAgICAgICAgICAgICByb3cgbmFtZVxuLy8gICAgVGV4dC9Pbi1EYXJrICAgICAgICAgICAgICAgICAgICAjZjNmNGY2ICAgICAgICAgICAgICAgICAgZGFyayBtb2RlIHJvdyBuYW1lXG4vLyAgICBJY29uL1N1YnRsZSAgICAgICAgICAgICAgICAgICAgICM2YjcyODAgICAgICAgICAgICAgICAgICBkZWZhdWx0IGJ1dHRvbiBpY29uXG4vLyAgICBJY29uL0ZhZGVkICAgICAgICAgICAgICAgICAgICAgICM5Y2EzYWYgICAgICAgICAgICAgICAgICBzZXR0aW5ncyBidXR0b24gaWNvblxuLy8gICAgU3VyZmFjZS9Sb3ctYnRuLWRlZmF1bHQgICAgICAgICByZ2JhKDAsMCwwLDAuMDQpICAgICAgICAgYnV0dG9uIHJlc3RpbmcgYmdcbi8vICAgIEJvcmRlci9EaXZpZGVyICAgICAgICAgICAgICAgICAgcmdiYSgwLDAsMCwwLjA4KSAgICAgICAgIHZlcnRpY2FsIGRpdmlkZXIgKyByZXF1aXJlZCBib3JkZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5xZG5hcHJvLWFjdGl2aXR5LXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgLy8gRm9jdXMgcmluZyB0b2tlbnMg4oCUIG92ZXJyaWRkZW4gcGVyIGRhcmsgbW9kZVxuICAgIC0tYy1mb2N1cy1yaW5nOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAgIC0tYy1mb2N1cy1nbG93OiByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbn1cblxuLy8gRGUgaG9layB2YW4gZGUgYm9yZGVyIGJlYW0gb3AgZGUgdmVyZHViYmVsYWFyLWJhZGdlICgucm93LXB1bHNlLXNjb3JlLWRvdWJsZSxcbi8vIGhlbGVtYWFsIG9uZGVyYWFuIGRpdCBiZXN0YW5kKS4gTU9FVCBlZW4gdG9wLWxldmVsIEBwcm9wZXJ0eSB6aWpuIGVuIG5pZXRcbi8vIGdlbmVzdDogYWxsZWVuIGVlbiBhbHMgPGFuZ2xlPiBnZXJlZ2lzdHJlZXJkZSBlaWdlbnNjaGFwIGthbiBlZW5cbi8vIGNvbmljLWdyYWRpZW50IGxhdGVuIGRyYWFpZW4uIFplbGZkZSBwYXRyb29uIGFscyAtLXFydC1iZWFtLWFuZ2xlIGluXG4vLyBfcmFkaW8tdGlsZS5zY3NzIGVuIC0tcW5wLWJlYW0tYW5nbGUgaW4gX25vZGUtcGlja2VyLnNjc3MuXG5AcHJvcGVydHkgLS1yb3ctcHVsc2UtYmVhbS1hbmdsZSB7XG4gICAgc3ludGF4OiBcIjxhbmdsZT5cIjtcbiAgICBpbml0aWFsLXZhbHVlOiAwZGVnO1xuICAgIGluaGVyaXRzOiBmYWxzZTtcbn1cblxuLy8gLS0tLSBHbGFzcyBjYXJkIC0tLS1cblxuLmFjdGl2aXR5LXJvdy1pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1pbi1oZWlnaHQ6IDY0cHg7XG4gICAgZmxleDogMTtcbiAgICBwYWRkaW5nOiA4cHggMTJweCA4cHggMzJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGN1cnNvcjogZ3JhYjtcbiAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgLy8gQ2hlY2staW4gaXMgcGlubmVkIHRvIHRoZSB0b3Ag4oCUIG5vdCBkcmFnZ2FibGUuIEl0IElTIGNsaWNrYWJsZSAob3BlbnMgaXRzXG4gICAgLy8gc2V0dGluZ3MgbW9kYWwpLCBzbyBzaG93IGEgcG9pbnRlciwgbmV2ZXIgdGhlIGdyYWIvZ3JhYmJpbmcgYWZmb3JkYW5jZS4gW0tpbSAyMDI2LTA2LTE2XVxuICAgICYuaXMtY2hlY2tpbixcbiAgICAmLmlzLWNoZWNraW46YWN0aXZlIHsgY3Vyc29yOiBwb2ludGVyOyB9XG5cbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjApO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcwKTtcbiAgICBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjA2KTtcblxuICAgIHRyYW5zaXRpb246XG4gICAgICAgIGJhY2tncm91bmQgMTUwbXMgZWFzZSxcbiAgICAgICAgYm9yZGVyLWNvbG9yIDE1MG1zIGVhc2UsXG4gICAgICAgIGJveC1zaGFkb3cgMTUwbXMgZWFzZSxcbiAgICAgICAgdHJhbnNmb3JtIDEwMG1zIGVhc2U7XG59XG5cbi8vIC0tLS0gU3RhdGU6IEhvdmVyIChoYW5kbGVkIGluIGFjY2VudCBiYXIgYmxvY2sgYmVsb3cpIC0tLS1cblxuLy8gLS0tLSBTdGF0ZTogRm9jdXMgLS0tLVxuXG4uYWN0aXZpdHktcm93LWlubmVyOmZvY3VzLXZpc2libGUsXG4uYWN0aXZpdHktcm93LWlubmVyLmZvcmNlLWZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAgIDAgMCAwIDJweCB2YXIoLS1jLWZvY3VzLXJpbmcpLFxuICAgICAgICAwIDAgMCA2cHggdmFyKC0tYy1mb2N1cy1nbG93KTtcbn1cblxuLmFjdGl2aXR5LXJvdy1pbm5lci5kaXNhYmxlZDpmb2N1cy12aXNpYmxlLFxuLmFjdGl2aXR5LXJvdy1pbm5lci5kaXNhYmxlZC5mb3JjZS1mb2N1cyB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLy8gLS0tLSBTdGF0ZTogQWN0aXZlIC8gUHJlc3NlZCAtLS0tXG4vLyBQdXJwbGUgdGludCArIHNjYWxlIHNpZ25hbHMgXCJJJ20gb3BlbmluZyB0aGUgZmxvdyBlZGl0b3JcIiDigJQgc3Ryb25nIGVub3VnaCB0byBmZWVsIG9uIGNsaWNrXG5cbi8vIC5pcy1wcmVzc2luZyBpcyBzZXQgdmlhIEpTIG9ubHkgd2hlbiB0aGUgcGFuZWwgaXRzZWxmIChub3QgYSBjaGlsZCBidXR0b24pIGlzIHByZXNzZWQuXG4vLyBUaGlzIHByZXZlbnRzIHRoZSBwcmVzc2VkIHN0YXRlIGZyb20gZmlyaW5nIHdoZW4gY2xpY2tpbmcgYnV0dG9ucyBpbnNpZGUgdGhlIHJvdy5cbi5hY3Rpdml0eS1yb3ctaW5uZXIuaXMtcHJlc3Npbmc6bm90KC5kaXNhYmxlZCksXG4uYWN0aXZpdHktcm93LWlubmVyLmZvcmNlLWFjdGl2ZTpub3QoLmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSg3MCwgODIsIDI0MywgMC4xMCk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjI4KTtcbiAgICBib3gtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMTIpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NzUpO1xuICAgIGN1cnNvcjogZ3JhYmJpbmc7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgICAgYmFja2dyb3VuZCA2MG1zIGVhc2UsXG4gICAgICAgIGJvcmRlci1jb2xvciA2MG1zIGVhc2UsXG4gICAgICAgIHRyYW5zZm9ybSA2MG1zIGVhc2U7XG59XG5cbi8vIC0tLS0gU3RhdGU6IERpc2FibGVkIC0tLS1cblxuLmFjdGl2aXR5LXJvdy1pbm5lci5kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC40NTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vLyAtLS0tIFN0YXRlOiBBcmNoaXZlZCAtLS0tXG4vLyBWaXN1YWwgY3VlIHRoYXQgdGhpcyBhY3Rpdml0eSBpcyBpbiB0aGUgYXJjaGl2ZSBzZWN0aW9uLiBTdGlsbCBmdWxseVxuLy8gaW50ZXJhY3RpdmUgKGRyYWctYW5kLWRyb3AgYmFjaywgY29nLW1lbnUgcmVhY3RpdmF0ZSksIG9ubHkgdGhlXG4vLyBcIm5hdmlnYXRlIHRvIGZsb3cgZWRpdG9yXCIgYWZmb3JkYW5jZSBpcyBzdXBwcmVzc2VkIChubyBob3ZlciBhY2NlbnQpLlxuLmFjdGl2aXR5LXJvdy1pbm5lci5hcmNoaXZlZCB7XG4gICAgb3BhY2l0eTogMC42MDtcbn1cbi5hY3Rpdml0eS1yb3ctaW5uZXIuYXJjaGl2ZWQ6aG92ZXI6bm90KC5kaXNhYmxlZCkgLnJvdy1hY2NlbnQtYmFyIHtcbiAgICBvcGFjaXR5OiAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBubyBhY2NlbnQtYmFyIOKAlCBhcmNoaXZlZCByb3dzIGFyZSBub3Qgb3BlbmFibGVcbn1cbi5hY3Rpdml0eS1yb3ctaW5uZXIuYXJjaGl2ZWQuaXMtcHJlc3Npbmc6bm90KC5kaXNhYmxlZCksXG4uYWN0aXZpdHktcm93LWlubmVyLmFyY2hpdmVkLmZvcmNlLWFjdGl2ZTpub3QoLmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYwKTsgLy8gc3VwcHJlc3MgcHJlc3NlZC1zdGF0ZSBwdXJwbGUgdGludFxuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcwKTtcbiAgICBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjA2KTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vIC0tLS0gVmFyaWFudDogQnJpZWZpbmcgLS0tLVxuLy8gQSBicmllZmluZyByb3cgaXMgcmVhZGluZyBtYXRlcmlhbCBwYXJrZWQgaW4gdGhlIGFjdGl2aXR5IGxpc3QsIG5vdCB3b3JrIHRvXG4vLyBjb21wbGV0ZS4gSXQgbXVzdCBiZSByZWFkYWJsZSBhcyBcIm5vdCBhIHRhc2tcIiBhdCBhIGdsYW5jZSwgZnJvbSBhY3Jvc3MgdGhlXG4vLyBsaXN0LCB3aXRob3V0IHJlYWRpbmcgYSBzaW5nbGUgd29yZC4gVGhyZWUgc2lnbmFscyBkbyB0aGF0OlxuLy8gICAxLiBhIHNvZnQgYmx1ZSBzdXJmYWNlIGluc3RlYWQgb2YgdGhlIHdoaXRlIGdsYXNzIGV2ZXJ5IGFjdGl2aXR5IHVzZXNcbi8vICAgICAgKHNhbWUgcGFsZXR0ZSBhcyB0aGUgYmx1ZSBxZG5hcHJvLXRhZyBpdCBjYXJyaWVzKSxcbi8vICAgMi4gYSBzaG9ydGVyIHJvdyDigJQgaXQgaGFzIG5vIHJlcXVpcmVkIGNoZWNrYm94LCBubyB2ZXJzaW9uIGFuZCBubyBjb2x1bW5cbi8vICAgICAgYnV0dG9ucywgc28gdGhlIGV4dHJhIGhlaWdodCB3b3VsZCBqdXN0IGJlIGVtcHR5IHNwYWNlLFxuLy8gICAzLiB0aGUgYmx1ZSBcIkJyaWVmaW5nXCIgdHlwZSB0YWcgcmVuZGVyZWQgYnkgdGhlIGNvbXBvbmVudC5cbi8vIEV2ZXJ5dGhpbmcgaW50ZXJhY3RpdmUgc3RheXMgaWRlbnRpY2FsOiBpdCBkcmFncywgcmVvcmRlcnMgYW5kIG9wZW5zIGxpa2UgYW55XG4vLyBvdGhlciByb3csIHNvIHRoZSBwdXJwbGUgYWNjZW50IGJhciBpcyBkZWxpYmVyYXRlbHkgbGVmdCBwdXJwbGUg4oCUIHRoYXQgYmFyIGlzXG4vLyB0aGUgZHJhZy9vcGVuIGFmZm9yZGFuY2UsIG5vdCBhIHR5cGUgc2lnbmFsLiBbS2ltIDIwMjYtMDgtMDJdXG4uYWN0aXZpdHktcm93LWlubmVyLmlzLWJyaWVmaW5nIHtcbiAgICBtaW4taGVpZ2h0OiA1NnB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjMwLCAyMzksIDI0OSwgMC43NSk7ICAgICAgLy8gVGFnL0JsdWUgYmcgQCA3NSUgb3ZlciB0aGUgZ2xhc3NcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTgxLCAyMDYsIDIzNywgMC45MCk7ICAgIC8vIFRhZy9CbHVlLTJcbn1cblxuLmFjdGl2aXR5LXJvdy1pbm5lci5pcy1icmllZmluZzpob3Zlcjpub3QoLmRpc2FibGVkKSxcbi5hY3Rpdml0eS1yb3ctaW5uZXIuaXMtYnJpZWZpbmcuZm9yY2UtaG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjA2LCAyMjIsIDI0MywgMC44OCk7ICAgICAgLy8gVGFnL0JsdWUgYmctaG92ZXJcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTMzLCAxNjEsIDIzNiwgMC45MCk7ICAgIC8vIFRhZy9CcmlnaHQtYmx1ZVxufVxuXG4vLyAtLS0tIFN0YXRlOiBEcmFnZ2luZyAtLS0tXG5cbnFkbmFwcm8tYWN0aXZpdHktcm93W2RyYWdnaW5nXSAuYWN0aXZpdHktcm93LWlubmVyIHtcbiAgICBvcGFjaXR5OiAwLjM1O1xuICAgIGN1cnNvcjogZ3JhYmJpbmc7XG59XG5cbi8vIC0tLS0gRHJvcCBpbmRpY2F0b3JzIC0tLS1cblxucWRuYXByby1hY3Rpdml0eS1yb3dbZHJvcC1hYm92ZV0gLmFjdGl2aXR5LXJvdy1pbm5lciB7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCAtM3B4IDAgMCB2YXIoLS1jLWFjdGlvbi01MDApLFxuICAgICAgICAwIDAgMCAycHggcmdiYSg3MCwgODIsIDI0MywgMC4xNSk7XG59XG5cbnFkbmFwcm8tYWN0aXZpdHktcm93W2Ryb3AtYmVsb3ddIC5hY3Rpdml0eS1yb3ctaW5uZXIge1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAgIDAgM3B4IDAgMCB2YXIoLS1jLWFjdGlvbi01MDApLFxuICAgICAgICAwIDAgMCAycHggcmdiYSg3MCwgODIsIDI0MywgMC4xNSk7XG59XG5cbi8vIC0tLS0gU3RhdGU6IEhvdmVyIC0tLS1cblxuLmFjdGl2aXR5LXJvdy1pbm5lcjpob3Zlcjpub3QoLmRpc2FibGVkKSxcbi5hY3Rpdml0eS1yb3ctaW5uZXIuZm9yY2UtaG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Mik7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTApO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjEwKTtcbn1cblxuLy8gLS0tLSBMZWZ0IGFjY2VudCBiYXIgLS0tLVxuLy8gUmVhbCBET00gZWxlbWVudCDigJQgYXZvaWRzIGJhY2tkcm9wLWZpbHRlciBzdGFja2luZyBjb250ZXh0IGlzc3VlcyB3aXRoIDo6YmVmb3JlLlxuLy8gb3ZlcmZsb3c6aGlkZGVuIGNsaXBzIGl0IHRvIGJvcmRlci1yYWRpdXMuIGJveC1zaGFkb3cgKGZvY3VzIHJpbmcpIGlzIHVuYWZmZWN0ZWQuXG5cbi5hY3Rpdml0eS1yb3ctaW5uZXIge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5yb3ctYWNjZW50LWJhciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDRweDtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgd2lkdGg6IDRweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1hY3Rpb24tNTAwKTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGVhc2U7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgei1pbmRleDogMTtcbn1cblxuLmFjdGl2aXR5LXJvdy1pbm5lcjpob3Zlcjpub3QoLmRpc2FibGVkKSAucm93LWFjY2VudC1iYXIsXG4uYWN0aXZpdHktcm93LWlubmVyLmZvcmNlLWhvdmVyOm5vdCguZGlzYWJsZWQpIC5yb3ctYWNjZW50LWJhciB7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLy8gQ2hlY2staW4gaXMgcGlubmVkIChub3QgZHJhZ2dhYmxlKSwgc28gdGhlIGFjY2VudCBiYXIg4oCUIHdoaWNoIGlzIHRoZSBkcmFnL2dyaXBcbi8vIGFmZm9yZGFuY2UgKGl0IHJlcGxhY2VkIHRoZSBvbGQgZ3JpcCBoYW5kbGUpIOKAlCBtdXN0IE5PVCBhcHBlYXIgb24gaG92ZXIuIFtLaW0gMjAyNi0wNi0xNl1cbi5hY3Rpdml0eS1yb3ctaW5uZXIuaXMtY2hlY2tpbjpob3ZlciAucm93LWFjY2VudC1iYXIsXG4uYWN0aXZpdHktcm93LWlubmVyLmlzLWNoZWNraW4uZm9yY2UtaG92ZXIgLnJvdy1hY2NlbnQtYmFyIHtcbiAgICBvcGFjaXR5OiAwO1xufVxuXG4vLyBTYW1lIHJlYXNvbiwgc2FtZSBydWxlLCBmb3IgYSBMT0NLRUQgKGZpeGVkLWRhdGUgLyBwdWxzZSBmaW5pc2gpIG9yIFJFQURPTkxZXG4vLyByb3c6IG5laXRoZXIgaXMgZHJhZ2dhYmxlIOKAlCBzZWUgYGRyYWdnYWJsZT1cIiR7IWxvY2tlZCAmJiAhcmVhZG9ubHl9XCJgIGluXG4vLyBfcmVuZGVyUHVsc2UoKSDigJQgc28gdGhlIGJhciBwcm9taXNlcyBhIGdyYWIgdGhhdCBkb2VzIG5vdCBleGlzdC5cbi8vIEtpbSBzcG90dGVkIHRoaXMgb24gdGhlIFB1bHNlIGZpbmlzaCByb3cgKDAyLjA5LjIwMjYpIHJpZ2h0IGFmdGVyIHRoZVxuLy8gY2FsZW5kYXItbG9jayBpY29uIHdhcyBkcm9wcGVkIGZyb20gaXQ6IFwibWFhciBkZSBkcmFnaGFuZGxlIGlzIGVyIG5vZyBzdGVlZHNcbi8vIGJpaiBob3ZlclwiLiBUaGUgYmFyIGlzIGVhc3kgdG8gbWlzcyB3aGVuIHlvdSBnbyBsb29raW5nIGZvciBhIGdyaXAsIGJlY2F1c2Vcbi8vIHRoZSBncmlwIGVsZW1lbnQgaXRzZWxmIHdhcyByZW1vdmVkIGxvbmcgYWdvIChzZWUgLnJvdy1ncmlwIGJlbG93KSBhbmQgdGhpc1xuLy8gYmFyIHF1aWV0bHkgdG9vayBvdmVyIHRoZSBqb2IuXG5xZG5hcHJvLWFjdGl2aXR5LXJvd1tsb2NrZWRdIC5hY3Rpdml0eS1yb3ctaW5uZXI6aG92ZXIgLnJvdy1hY2NlbnQtYmFyLFxucWRuYXByby1hY3Rpdml0eS1yb3dbbG9ja2VkXSAuYWN0aXZpdHktcm93LWlubmVyLmZvcmNlLWhvdmVyIC5yb3ctYWNjZW50LWJhcixcbi5hY3Rpdml0eS1yb3ctaW5uZXIuaXMtcmVhZG9ubHk6aG92ZXIgLnJvdy1hY2NlbnQtYmFyLFxuLmFjdGl2aXR5LXJvdy1pbm5lci5pcy1yZWFkb25seS5mb3JjZS1ob3ZlciAucm93LWFjY2VudC1iYXIge1xuICAgIG9wYWNpdHk6IDA7XG59XG5cbi8vIEdyaXAgZWxlbWVudCByZW1vdmVkIGZyb20gSFRNTCDigJQgcmVwbGFjZWQgYnkgYWNjZW50IGJhclxuLnJvdy1ncmlwIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vLyAtLS0tIExheW91dCAtLS0tXG5cbi5yb3ctbGVmdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLnJvdy1hY3Rpdml0eS1pY29uIHsgZmxleC1zaHJpbms6IDA7IH1cblxuLnJvdy1pY29uLXBsYWNlaG9sZGVyIHtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNik7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5yb3ctaW5mbyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMnB4O1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLnJvdy1uYW1lIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbi8vIC5yb3ctc3ViIHdyYXBzIHN0YXR1cyBiYWRnZSArIG1ldGEgKElEL3ZlcnNpb24pIG9uIG9uZSBzdWJ0aXRsZSBsaW5lXG4ucm93LXN1YiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLnJvdy1zdWI6ZW1wdHkgeyBkaXNwbGF5OiBub25lOyB9XG5cbi5yb3ctc3RhdHVzIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuLnJvdy1zdGF0dXM6ZW1wdHkgeyBkaXNwbGF5OiBub25lOyB9XG5cbi8vIC0tLS0gTWV0YTogYWN0aXZpdHkgSUQgKyB2ZXJzaW9uIG51bWJlciAtLS0tXG5cbi5yb3ctbWV0YSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNXB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ucm93LW1ldGEtaWQsXG4ucm93LW1ldGEtdmVyc2lvbiB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwKTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnJvdy1tZXRhLWRvdCB7XG4gICAgd2lkdGg6IDJweDtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTIwMCk7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi8vIEFjdGl2aXR5IGRlc2NyaXB0aW9uIG9uIHRoZSBzdWJ0aXRsZSBsaW5lLCBhZnRlciAjaWQgwrcgdmVyc2lvbi4gVGFrZXMgdGhlXG4vLyByZW1haW5pbmcgd2lkdGggYW5kIHRydW5jYXRlcyB3aXRoIGFuIGVsbGlwc2lzIHNvIGxvbmcgZGVzY3JpcHRpb25zIG5ldmVyXG4vLyBicmVhayB0aGUgcm93IGxheW91dCAoZnVsbCB0ZXh0IGluIGEgdGl0bGUgdG9vbHRpcCkuIFtLaW0gMjAyNi0wNi0xN11cbi5yb3ctbWV0YS1kZXNjIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS00MDApO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4vLyAtLS0tIEFjdGl2aXR5LXR5cGUgdGFnIC0tLS1cbi8vIFNpdHMgY2VudHJlZCBpbiB0aGUgcm93LCBiZXR3ZWVuIHRoZSB0aXRsZSBibG9jayBhbmQgdGhlIGFjdGlvbiBpY29uc1xuLy8gKEtpbSdzIHNrZXRjaCkuIEFic29sdXRlbHkgcG9zaXRpb25lZCBhZ2FpbnN0IC5hY3Rpdml0eS1yb3ctaW5uZXIgKGFscmVhZHlcbi8vIHBvc2l0aW9uOnJlbGF0aXZlICsgb3ZlcmZsb3c6aGlkZGVuIGZvciB0aGUgYWNjZW50IGJhcikgc28gaXQgbmV2ZXJcbi8vIHBhcnRpY2lwYXRlcyBpbiB0aGUgcm93J3MgZmxleCBzaXppbmcg4oCUIGFkZGluZy9yZW1vdmluZyBpdCBjYW4ndCByZWZsb3cgb3Jcbi8vIHNxdWFzaCAucm93LWxlZnQncyB0aXRsZSBvciAucm93LXJpZ2h0J3MgYnV0dG9ucy4gRW1wdHkgKG5vIHFkbmFwcm8tdGFnXG4vLyBjaGlsZCkgd2hlbiB0aGUgcm93J3MgdHlwZSBoYXMgbm8gZW50cnkgaW4gVFlQRV9UQUdTLiBbS2ltIDIwMjYtMDctMTNdXG4ucm93LXR5cGUtdGFnIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIHotaW5kZXg6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIC8vIFNwYWNlIGJldHdlZW4gdGhlIHR5cGUgdGFnIGFuZCB0aGUgcmVhZC1vbmx5IHJlcGVhdCAvIHNpbmdsZS11bml0XG4gICAgLy8gaW5kaWNhdG9yIHRhZ3MsIHdoZW4gcHJlc2VudC4gW0tpbSAyMDI2LTA3LTEzXVxuICAgIGdhcDogNnB4O1xufVxuXG4vLyBSZWFkLW9ubHkgXCJBbGxvdyBmaWxsaW5nIGluIG11bHRpcGxlIHRpbWVzXCIgLyBcIlNlbGVjdCBvbmUgdW5pdCBhdCBhIHRpbWVcIlxuLy8gaW5kaWNhdG9yIHRhZ3Mg4oCUIGljb24tb25seSBxZG5hcHJvLXRhZyB1c2FnZSAobm8gdGV4dCBjb250ZW50KS4gVGhlIHRhZ1xuLy8gY29tcG9uZW50IGl0c2VsZiBhbHdheXMgcmVuZGVycyBhbiAoZW1wdHkpIC50YWctbGFiZWwgc3BhbiBhbG9uZ3NpZGUgdGhlXG4vLyBpY29uLCBhbmQgaXRzIG93biBnYXA6NHB4IHdvdWxkIG90aGVyd2lzZSBhZGQgbG9wc2lkZWQgdHJhaWxpbmcgcGFkZGluZ1xuLy8gYXJvdW5kIHRoYXQgZW1wdHkgc3Bhbi4gTmV1dHJhbGlzZWQgaGVyZSwgc2NvcGVkIHRvIHRoaXMgb25lIHVzYWdlLFxuLy8gaW5zdGVhZCBvZiB0b3VjaGluZyB0aGUgc2hhcmVkIHRhZyBjb21wb25lbnQuIFtLaW0gMjAyNi0wNy0xM11cbi5yb3ctdHlwZS10YWcgLnJvdy1pY29uLXRhZyB7XG4gICAgZ2FwOiAwO1xufVxuXG4vLyBIaWRlIG9uIG5hcnJvdyByb3dzIHJhdGhlciB0aGFuIGxldCBpdCBvdmVybGFwIGEgbG9uZyB0aXRsZSBvciBjcm93ZCB0aGVcbi8vIGFjdGlvbiBpY29ucyDigJQgdGhlIHRhZyBpcyBhIG5pY2UtdG8taGF2ZSBpZGVudGlmaWVyLCBub3QgY3JpdGljYWwgaW5mby5cbkBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICAgIC5yb3ctdHlwZS10YWcgeyBkaXNwbGF5OiBub25lOyB9XG59XG5cbi5yb3ctZGl2aWRlciB7XG4gICAgd2lkdGg6IDFweDtcbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgIG1hcmdpbjogMTBweCA0cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLnJvdy1yaWdodCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vLyAtLS0tIEJ1dHRvbnMgLS0tLVxuLy8gQWxsIGZpdmUgcm93IGJ1dHRvbnMgKGJyaWVmaW5nLCBsb2dpYywgdW5pdC1saXN0LCBzZXR0aW5ncywgZG93bmxvYWQpIHVzZVxuLy8gcWRuYXByby1yb3ctYnRuIChzZWUgX3Jvdy1idG4uc2NzcyBmb3IgdGhlIGJ1dHRvbiBzdHlsaW5nIGl0c2VsZikuXG4vLyBPbmx5IHRoZSBsYXlvdXQgY29udGFpbmVycyAoLnJvdy1jb2wtYnRucywgLnJvdy1idG4tZGl2aWRlcikgbGl2ZSBoZXJlLlxuXG4ucm93LWNvbC1idG5zIHsgZGlzcGxheTogZmxleDsgZ2FwOiA0cHg7IH1cblxuLnJvdy1idG4tZGl2aWRlciB7XG4gICAgd2lkdGg6IDFweDtcbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgIG1hcmdpbjogOHB4IDJweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vLyAtLS0tIFJlcXVpcmVkIChyb3VuZCBjaGVja2JveCArIGxhYmVsKSAtLS0tXG4vLyBBbHdheXMgcmVuZGVyZWQgc28gdGhlIHVzZXIgY2FuIHRvZ2dsZSBpbiBib3RoIGRpcmVjdGlvbnMgZnJvbSBhbnkgcm93LlxuXG4ucm93LXJlcXVpcmVkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG59XG5cbi5yb3ctcmVxdWlyZWQtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLy8gLS0tLSBJbmRlbnQgKHN1YmZsb3cgcm93cykgLS0tLVxuXG4uYWN0aXZpdHktcm93LWlubmVyLmluZGVudCB7IG1hcmdpbi1sZWZ0OiA0NHB4OyB9XG5cbi8vIC0tLS0gV2FybmluZyBzbG90ICsgYnV0dG9uIChvdXRzaWRlIHRoZSBnbGFzcyBjYXJkKSAtLS0tXG4vLyBTbG90IGlzIGFsd2F5cyByZW5kZXJlZCDigJQga2VlcHMgYWxsIHJvd3MgdGhlIHNhbWUgdG90YWwgd2lkdGhcblxuLnJvdy13YXJuaW5nLXNsb3Qge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5yb3ctd2FybmluZy1idG4ge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYwKTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgICBiYWNrZ3JvdW5kIDE1MG1zIGVhc2UsXG4gICAgICAgIGJvcmRlci1jb2xvciAxNTBtcyBlYXNlLFxuICAgICAgICBib3gtc2hhZG93IDE1MG1zIGVhc2U7XG59XG5cbi8vIE5vdCBjb25uZWN0ZWQg4oCUIG9yYW5nZSwgYnJva2VuIGxpbmsgaWNvblxuLnJvdy13YXJuaW5nLWJ0bi0tbm90LWNvbm5lY3RlZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMzQsIDg4LCAxMiwgMC4zNSk7XG4gICAgY29sb3I6IHZhcigtLWMtd2Fybi1vcmFuZ2UtNTAwKTtcbn1cblxuLnJvdy13YXJuaW5nLWJ0bi0tbm90LWNvbm5lY3RlZDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgyKTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjM0LCA4OCwgMTIsIDAuNTUpO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjEwKTtcbiAgICBjb2xvcjogdmFyKC0tYy13YXJuLW9yYW5nZS02MDApO1xufVxuXG4vLyBVbnB1Ymxpc2hlZCBjaGFuZ2VzIOKAlCBhbWJlciwgdXBsb2FkIGljb25cbi5yb3ctd2FybmluZy1idG4tLXVucHVibGlzaGVkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIxNywgMTE5LCA2LCAwLjMwKTtcbiAgICBjb2xvcjogdmFyKC0tYy13YXJuLWFtYmVyLTUwMCk7XG59XG5cbi5yb3ctd2FybmluZy1idG4tLXVucHVibGlzaGVkOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODIpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMTcsIDExOSwgNiwgMC41MCk7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMTApO1xuICAgIGNvbG9yOiB2YXIoLS1jLXdhcm4tYW1iZXItNjAwKTtcbn1cblxuLy8gTm90IHB1Ymxpc2hlZCB5ZXQg4oCUIGFtYmVyLCBjbG91ZC1vZmYgaWNvblxuLnJvdy13YXJuaW5nLWJ0bi0tbm90LXB1Ymxpc2hlZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMzksIDE0MiwgMiwgMC4zMik7XG4gICAgY29sb3I6IHZhcigtLWMtd2Fybi15ZWxsb3ctNjAwKTtcbn1cblxuLnJvdy13YXJuaW5nLWJ0bi0tbm90LXB1Ymxpc2hlZDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgyKTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjM5LCAxNDIsIDIsIDAuNTIpO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjEwKTtcbiAgICBjb2xvcjogdmFyKC0tYy1zaWduYWwteWVsbG93LXRleHQpO1xufVxuXG4vLyBObyBsb2NhdGlvbiAoY2hlY2staW4gcmVxdWlyZXMgbG9jYXRpb24gYnV0IHRoZSB0YXNrbGlzdCBoYXMgbm9uZSkg4oCUIGFtYmVyLCBtYXJrZXIgaWNvblxuLnJvdy13YXJuaW5nLWJ0bi0tbm8tbG9jYXRpb24ge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjM5LCAxNDIsIDIsIDAuMzIpO1xuICAgIGNvbG9yOiB2YXIoLS1jLXdhcm4teWVsbG93LTYwMCk7XG59XG5cbi5yb3ctd2FybmluZy1idG4tLW5vLWxvY2F0aW9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODIpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMzksIDE0MiwgMiwgMC41Mik7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMTApO1xuICAgIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC15ZWxsb3ctdGV4dCk7XG59XG5cbi8vIE5vIGFjY2VzcyAodGhlc2UgcGVvcGxlIGFyZSBub3QgYWxsb3dlZCB0byB2aWV3IHRoaXMgZG9jdW1lbnQpIOKAlCBhbWJlciwgbG9jayBpY29uLlxuLy8gU2FtZSBhbWJlciBmYW1pbHkvdG9uZSBhcyAucm93LXdhcm5pbmctYnRuLS1uby1sb2NhdGlvbiBhYm92ZS5cbi5yb3ctd2FybmluZy1idG4tLWFsZXJ0IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIzOSwgMTQyLCAyLCAwLjMyKTtcbiAgICBjb2xvcjogdmFyKC0tYy13YXJuLXllbGxvdy02MDApO1xufVxuXG4ucm93LXdhcm5pbmctYnRuLS1hbGVydDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgyKTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjM5LCAxNDIsIDIsIDAuNTIpO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjEwKTtcbiAgICBjb2xvcjogdmFyKC0tYy1zaWduYWwteWVsbG93LXRleHQpO1xufVxuXG4ucm93LXdhcm5pbmctYnRuOmZvY3VzLXZpc2libGUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1jLWZvY3VzLXJpbmcpLCAwIDAgMCA2cHggdmFyKC0tYy1mb2N1cy1nbG93KTtcbn1cblxuLnJvdy13YXJuaW5nLWJ0bjphY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43MCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk3KTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgRGFyayBtb2RlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIHFkbmFwcm8tYWN0aXZpdHktcm93IHtcbiAgICAtLWMtZm9jdXMtcmluZzogI2E1YWNmZjtcbiAgICAtLWMtZm9jdXMtZ2xvdzogcmdiYSg3MCwgODIsIDI0MywgMC40MCk7XG59XG5cbi8vIFNvbGlkIGRhcmsgc3VyZmFjZSAobm90IGdsYXNzKSDigJQgbWF0Y2hlcyB0aGUgdGFza2xpc3QgcGFnZSBkZXNpZ24uXG4vLyBLZXB0IHNvbGlkIG9uIHB1cnBvc2Ugc28gcm93cyByZWFkIGFzIGRpc3RpbmN0IGNhcmRzIG9uIHRoZSBkYXJrIGNhbnZhcy5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAuYWN0aXZpdHktcm93LWlubmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMmUzMDM2O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgICBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjM1KTtcbn1cblxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5hY3Rpdml0eS1yb3ctaW5uZXI6aG92ZXI6bm90KC5kaXNhYmxlZCksXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLmFjdGl2aXR5LXJvdy1pbm5lci5mb3JjZS1ob3Zlcjpub3QoLmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogIzQwNDQ0ZDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCk7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuNDApO1xufVxuXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLmFjdGl2aXR5LXJvdy1pbm5lci5pcy1wcmVzc2luZzpub3QoLmRpc2FibGVkKSxcbltkYXRhLXRoZW1lPVwiZGFya1wiXSAuYWN0aXZpdHktcm93LWlubmVyLmZvcmNlLWFjdGl2ZTpub3QoLmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSg3MCwgODIsIDI0MywgMC4xOCk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjQwKTtcbiAgICBib3gtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjApO1xufVxuXG4vLyBCcmllZmluZyB2YXJpYW50IG9uIGRhcms6IHNhbWUgaWRlYSBhcyBsaWdodCwgdXNpbmcgdGhlIGRhcmsgYmx1ZS10YWcgcGFpclxuLy8gKCMyZTNlNTQgLyAjNDQ1YTc4KSBzbyBpdCBzdGlsbCByZWFkcyBhcyBcIm5vdCBhIHRhc2tcIiBhZ2FpbnN0IHRoZSBzb2xpZFxuLy8gIzJlMzAzNiBhY3Rpdml0eSByb3dzLiBbS2ltIDIwMjYtMDgtMDJdXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLmFjdGl2aXR5LXJvdy1pbm5lci5pcy1icmllZmluZyB7XG4gICAgYmFja2dyb3VuZDogIzJlM2U1NDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTgxLCAyMDYsIDIzNywgMC4yMCk7XG59XG5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAuYWN0aXZpdHktcm93LWlubmVyLmlzLWJyaWVmaW5nOmhvdmVyOm5vdCguZGlzYWJsZWQpLFxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5hY3Rpdml0eS1yb3ctaW5uZXIuaXMtYnJpZWZpbmcuZm9yY2UtaG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6ICM0NDVhNzg7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE4MSwgMjA2LCAyMzcsIDAuMzIpO1xufVxuXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnJvdy1uYW1lICAgICAgICAgICAgIHsgY29sb3I6ICNmM2Y0ZjY7IH1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucm93LW1ldGEtaWQsXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnJvdy1tZXRhLXZlcnNpb24gICAgIHsgY29sb3I6ICM0YjU1NjM7IH1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucm93LW1ldGEtZG90ICAgICAgICAgeyBiYWNrZ3JvdW5kOiAjMzc0MTUxOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnJvdy1tZXRhLWRlc2MgICAgICAgIHsgY29sb3I6ICM2YjcyODA7IH1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAuYWN0aXZpdHktcm93LWlubmVyLm5hdmlnYXRpbmc6bm90KC5kaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMTUpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSg3MCwgODIsIDI0MywgMC4zNSk7XG4gICAgYm94LXNoYWRvdzogMCAycHggMTJweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbn1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucm93LWRpdmlkZXIgICAgICAgICAgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnJvdy1idG4tZGl2aWRlciAgICAgIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5yb3ctaWNvbi1wbGFjZWhvbGRlciB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7IH1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucm93LXJlcXVpcmVkICAgICAgICAgeyBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5yb3ctcmVxdWlyZWQtbGFiZWwgICB7IGNvbG9yOiAjOWNhM2FmOyB9XG5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucm93LXdhcm5pbmctYnRuIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIwLCAyMiwgMzUsIDAuNzApO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgICBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjMwKTtcbiAgICBjb2xvcjogI2ZiYmYyNDtcbn1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucm93LXdhcm5pbmctYnRuOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDQwLCA0NCwgNjUsIDAuODUpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4zMCk7XG4gICAgY29sb3I6ICNmNTllMGI7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIFZhcmlhbnQ6IFB1bHNlICh2YXJpYW50PVwicHVsc2VcIilcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIEJPQVJELXB1bHNlLXN0YXBwZW4tYWxzLXRha2VubGlqc3QubWQsIGthYXJ0IDkuIE93biBsYXlvdXQgaW5zaWRlIHRoZSBTQU1FXG4vLyAgLmFjdGl2aXR5LXJvdy1pbm5lciBzaGVsbCAoaGVpZ2h0L3JhZGl1cy9ob3Zlci9hY2NlbnQtYmFyIGFsbCBpbmhlcml0ZWRcbi8vICB1bmNoYW5nZWQgZnJvbSB0aGUgcnVsZXMgYWJvdmUpIOKAlCBvbmx5IHRoZSBDT05URU5UUyBiZXR3ZWVuIHRoZSBhY2NlbnRcbi8vICBiYXIgYW5kIHRoZSBkZWxldGUgYnV0dG9uIGFyZSB2YXJpYW50LXNwZWNpZmljLCBzbyBldmVyeSBzZWxlY3RvciBoZXJlIGlzXG4vLyAgc2NvcGVkIHVuZGVyIHRoZSBxZG5hcHJvLWFjdGl2aXR5LXJvd1t2YXJpYW50PVwicHVsc2VcIl0gaG9zdCBhdHRyaWJ1dGUgYW5kXG4vLyAgbmV2ZXIgdG91Y2hlcyB0aGUgdW5zY29wZWQgcnVsZXMgYWJvdmUuIFNpemVzIG1pcnJvciB0aGUgdGFrZW5saWpzdC1tYWF0XG4vLyAgdGhlIG9sZCAucHVsc2Utc3RlcC1yb3cgZmFtaWx5IHVzZWQgKGJhY2tvZmZpY2UyL3Njc3MvcGFydGlhbHMvdjEvX3B1bHNlLnNjc3MsXG4vLyAgbm93IHN1cGVyc2VkZWQgYnkgdGhpcyBjb21wb25lbnQg4oCUIHNlZSBrYWFydCAxMiBmb3IgaXRzIHJlbW92YWwpLlxuLy8gIFtLaW0gMjAyNi0wOC0yMF1cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBTYW1lIGxlZnQgcGFkZGluZyBhcyB0aGUgZGVmYXVsdCByb3cgKDMycHggcmVzZXJ2ZXMgcm9vbSBmb3IgdGhlIGFjY2VudFxuLy8gYmFyKTsgdGhlIGdyaXAvbG9jayBnbHlwaCB0aGVuIHNpdHMgaW5zaWRlIHRoYXQgcmVzZXJ2ZWQgc3RyaXAgaW5zdGVhZCBvZlxuLy8gYmVpbmcgcHVyZWx5IGRlY29yYXRpdmUgbGlrZSBvbiB0aGUgZGVmYXVsdCByb3cuXG5xZG5hcHJvLWFjdGl2aXR5LXJvd1t2YXJpYW50PVwicHVsc2VcIl0gLmFjdGl2aXR5LXJvdy1pbm5lciB7XG4gICAgcGFkZGluZzogOHB4IDEycHggOHB4IDhweDtcbiAgICBnYXA6IDEwcHg7XG59XG5cbi8vIFJlYWRvbmx5IHJvd3MgKGthYXJ0IDEzLCBhdHRyaWJ1dGUgYHJlYWRvbmx5YCk6IHRoZSByb3cga2VlcHMgaXRzIG5vcm1hbFxuLy8gbG9vayBhbmQgY2xpY2stdG8tb3BlbiBiZWhhdmlvdXIsIG9ubHkgdGhlIGdyYWIgYWZmb3JkYW5jZSBpcyBnb25lIOKAlCBzYW1lXG4vLyBzY29waW5nIGFwcHJvYWNoIGFzIHRoZSBkZWZhdWx0IHJvdydzICYuaXMtY2hlY2tpbiBjdXJzb3Igb3ZlcnJpZGUgYWJvdmUuXG5xZG5hcHJvLWFjdGl2aXR5LXJvd1t2YXJpYW50PVwicHVsc2VcIl0gLmFjdGl2aXR5LXJvdy1pbm5lci5pcy1yZWFkb25seSB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vLyAtLS0tIEdyaXAgLyBsb2NrIChsZWZ0IGFmZm9yZGFuY2UpIC0tLS1cblxuLnJvdy1wdWxzZS1ncmlwLFxuLnJvdy1wdWxzZS1sb2NrIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMThweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5yb3ctcHVsc2UtZ3JpcCB7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS0zMDApO1xuICAgIGN1cnNvcjogZ3JhYjtcbn1cblxuLy8gUmVhZG9ubHk6IGhpZGUgdGhlIGdyaXAgYnV0IGtlZXAgaXRzIGJveCAodmlzaWJpbGl0eSwgbm90IGRpc3BsYXkpIHNvIHRoZVxuLy8gZGF5IHBpbGwvaWNvbi9uYW1lIHN0YXkgYWxpZ25lZCB3aXRoIGRyYWdnYWJsZSByb3dzLiBNaXJyb3JzIHRoZSBvbGRcbi8vIC5wdWxzZS1zdGVwLXJvdzpub3QoLmlzLWRyYWdnYWJsZSkgLnB1bHNlLXN0ZXAtZHJhZyBydWxlIHRoaXMgdmFyaWFudFxuLy8gcmVwbGFjZXMgKGJhY2tvZmZpY2UyL3Njc3MvcGFydGlhbHMvdjEvX3B1bHNlLnNjc3MsIGxpbmUgfjU1MSkuXG4uYWN0aXZpdHktcm93LWlubmVyLmlzLXJlYWRvbmx5IC5yb3ctcHVsc2UtZ3JpcCB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vLyBMb2NrZWQgKGZpeGVkLWRhdGUpIHJvd3MgYXJlIG5vdCBkcmFnZ2FibGUg4oCUIG5vIGdyYWIgYWZmb3JkYW5jZSwgbXV0ZWRcbi8vIGNvbG91ciBtYXRjaGVzIHRoZSBkYXktcGlsbCBzdWIgbGFiZWwgc28gaXQgcmVhZHMgYXMgYSBjYXB0aW9uLCBub3QgYSBjb250cm9sLlxuLnJvdy1wdWxzZS1sb2NrIHtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTQwMCk7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4ucm93LXB1bHNlLWxvY2sgcWRuYXByby1pY29uIHtcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG59XG5cbi8vIC0tLS0gRGF5IHBpbGwgLS0tLVxuXG4vLyBLYWFydCAxOGI6IC5yb3ctcHVsc2UtZGF5IGlzIG5vdyBhIHJlYWwgPGJ1dHRvbj4gKHdhcyBhIDxkaXY+LCBzZWVcbi8vIHFkbmEtYWN0aXZpdHktcm93LmpzIF9yZW5kZXJQdWxzZSgpKSBzbyBpdCBjYW4gdGFrZSBrZXlib2FyZCBmb2N1cyBhbmRcbi8vIHNob3cgdGhlIDpmb2N1cy12aXNpYmxlIHJpbmcgYWxyZWFkeSBzdGFnZWQgaW4gX3B1bHNlLnNjc3MuIEEgPGJ1dHRvbj5cbi8vIGJyaW5ncyB1c2VyLWFnZW50IGNocm9tZSAoYmFja2dyb3VuZCwgYm9yZGVyLCBmb250LCBwYWRkaW5nLCBhcHBlYXJhbmNlKVxuLy8gdGhhdCBtdXN0IGJlIHJlc2V0IGhlcmUg4oCUIHNhbWUgcmVjaXBlIC5xZG5hcHJvLW5vZGUtcGlja2VyX19jYXQgYW5kXG4vLyAucWRuYXByby1jYWxlbmRhci1zZXJ2aWNlLWJ1dHRvbiAuY3NiLWlubmVyIGFscmVhZHkgdXNlOiBleHBsaWNpdFxuLy8gYXBwZWFyYW5jZS9ib3JkZXIvbWFyZ2luL2ZvbnQtZmFtaWx5LCB0aGVuIGV2ZXJ5IHZpc3VhbCBwcm9wZXJ0eSBiZWxvd1xuLy8gKGZsZXgsIHBhZGRpbmcsIHJhZGl1cywgYmFja2dyb3VuZCwgY29sb3IpIGlzIHNldCBleGFjdGx5IGxpa2UgYmVmb3JlIHNvXG4vLyB0aGUgcGlsbCBzdGF5cyBwaXhlbC1pZGVudGljYWwuIGBhbGw6IHVuc2V0YCBpcyBub3QgdXNlZCDigJQgaXQgd291bGQgYWxzb1xuLy8gc3RyaXAgYGRpc3BsYXlgL2B0ZXh0LWFsaWduYCwgd2hpY2ggYXJlIHJlLWRlY2xhcmVkIGJlbG93IGFueXdheSwgYnV0IHRoZVxuLy8gbmVpZ2hib3VyaW5nIGNvbXBvbmVudHMgcmVzZXQgcHJvcGVydHktYnktcHJvcGVydHksIG5vdCB3aXRoIHRoZSBibHVudFxuLy8gc2hvcnRoYW5kLiBbS2ltIDIwMjYtMDgtMjVdXG4ucm93LXB1bHNlLWRheSB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWluLXdpZHRoOiA3NnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDFweDtcbiAgICBwYWRkaW5nOiA2cHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA5cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNTApO1xuICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS03MDApO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnJvdy1wdWxzZS1kYXktbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xufVxuXG4ucm93LXB1bHNlLWRheS1zdWIge1xuICAgIGZvbnQtc2l6ZTogMTAuNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxM3B4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwKTtcbn1cblxuLy8gLS0tLSBUaHVtYm5haWwgKGthYXJ0IDgsIEJPQVJELXB1bHNlLW9wbWFhay13aXphcmQubWQpIC0tLS1cbi8vIFRha2VzIG92ZXIgdGhlIGV4YWN0IHNsb3QgdGhlIGFjdGl2aXR5IGljb24gdGlsZSB1c2VzIGFib3ZlIChzYW1lIDQweDQwXG4vLyBzaXplLCBzYW1lIDhweCByYWRpdXMgYXMgLnJvdy1pY29uLXBsYWNlaG9sZGVyKSB3aGVuIGB0aHVtYi1zcmNgIG9yXG4vLyBgdGh1bWItY29sb3JgIGlzIHNldC4gTm8gdGh1bWIgYXR0cmlidXRlIC0+IHRoYXQgaWNvbiB0aWxlIGlzIHVudG91Y2hlZC5cbi5yb3ctcHVsc2UtdGh1bWIge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5yb3ctcHVsc2UtdGh1bWItLWltYWdlIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vLyBGbGF0IGNvbG91ciBiYWNrZ3JvdW5kIOKAlCB0aGUgY3VzdG9tIHByb3BlcnR5IGlzIHNldCBpbmxpbmUgcGVyLXJvdyAodGhlXG4vLyBhY3R1YWwgY29sb3VyIGlzIGRhdGEsIG5vdCBhIGRlc2lnbiB0b2tlbikuXG4ucm93LXB1bHNlLXRodW1iLS1jb2xvciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcm93LXB1bHNlLXRodW1iLXN3YXRjaCwgdmFyKC0tYy1ncmV5LTUwKSk7XG59XG5cbi8vIE1hc2tlZCBwYXR0ZXJuIGxheWVyIG9uIHRvcCBvZiB0aGUgZmxhdCBjb2xvdXIg4oCUIHNhbWUgdHdvLWxheWVyIG1vZGVsIGFzXG4vLyBxZG5hcHJvLWJhY2tncm91bmQtcGlja2VyJ3MgLnFicC10aWxlLXBhdHRlcm4tbGF5ZXIgKF9iYWNrZ3JvdW5kLXBpY2tlci5zY3NzKTpcbi8vIGEgcGxhaW4gdGludGVkIGxheWVyIG1hc2tlZCB3aXRoIHRoZSBwYXR0ZXJuIFNWRywgc2luY2UgYW4gZXh0ZXJuYWxseVxuLy8gbG9hZGVkIFNWRyB1c2VkIGFzIG1hc2staW1hZ2UvYmFja2dyb3VuZC1pbWFnZSBuZXZlciBpbmhlcml0cyBwYWdlIENTU1xuLy8gKHRoZSBwYXR0ZXJuIFNWR3MgYXJlIGZpbGw9XCJjdXJyZW50Q29sb3JcIikuXG4vL1xuLy8gS2FhcnQgOGIgKGhlcnN0ZWxrYWFydCwgQk9BUkQtcHVsc2Utb3BtYWFrLXdpemFyZC5tZCk6IG1hc2stc2l6ZSA0MHB4IDE6MVxuLy8gc2NhbGVkIHRoZSBXSE9MRSBuYXRpdmUgcGF0dGVybiBjYW52YXMgKDEwMC0xNDBweCwgbW90aWZzIG9ubHkgbmVhciB0aGVcbi8vIGNvcm5lcnMsIGVtcHR5IG1pZGRsZSkgaW50byB0aGUgNDBweCB0aWxlLCBzbyBhbG1vc3Qgb25seSB0aGUgZW1wdHlcbi8vIG1pZGRsZSBldmVyIGxhbmRlZCBpbnNpZGUg4oCUIGEgZmxhdCBjb2xvdXIgdGlsZSB3aXRoIG5vIHZpc2libGUgbW90aWYuXG4vLyAtLXJvdy1wdWxzZS10aHVtYi1wYXR0ZXJuLXNpemUvLXBvc2l0aW9uLy1yZXBlYXQgYXJlIG5vdyBzZXQgcGVyIHBhdHRlcm5cbi8vIGJ5IHFkbmEtYWN0aXZpdHktcm93LmpzIChRZG5hQWN0aXZpdHlSb3cuVEhVTUJfUEFUVEVSTl9HRU9NRVRSWSDigJQgc2VlIHRoZVxuLy8gY2FsY3VsYXRpb24gcGVyIHBhdHRlcm4gdGhlcmUpIHRvIHpvb20gdGhlIG1hc2sgb250byBPTkUgbW90aWYgYW5kIGNlbnRyZVxuLy8gaXQgaW4gdGhlIHRpbGUgaW5zdGVhZC4gVGhlIDQwcHgvMCAwL3JlcGVhdCBmYWxsYmFja3MgYmVsb3cgYXJlIHRoZSBleGFjdFxuLy8gcHJlLWV4aXN0aW5nIHZhbHVlcywgc28gYW4gdW5rbm93biBwYXR0ZXJuIGtleSAobm90IGluIHRoYXQgbWFwKSByZW5kZXJzXG4vLyBieXRlLWZvci1ieXRlIGxpa2UgYmVmb3JlIHRoaXMgY2FyZC5cbi5yb3ctcHVsc2UtdGh1bWItcGF0dGVybiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXJvdy1wdWxzZS10aHVtYi1wYXR0ZXJuLXRpbnQsIHZhcigtLXJvdy1wdWxzZS10aHVtYi1zd2F0Y2gpKTtcbiAgICBtYXNrLWltYWdlOiB2YXIoLS1yb3ctcHVsc2UtdGh1bWItcGF0dGVybi11cmwpO1xuICAgIG1hc2stc2l6ZTogdmFyKC0tcm93LXB1bHNlLXRodW1iLXBhdHRlcm4tc2l6ZSwgNDBweCA0MHB4KTtcbiAgICBtYXNrLXBvc2l0aW9uOiB2YXIoLS1yb3ctcHVsc2UtdGh1bWItcGF0dGVybi1wb3NpdGlvbiwgMCAwKTtcbiAgICBtYXNrLXJlcGVhdDogdmFyKC0tcm93LXB1bHNlLXRodW1iLXBhdHRlcm4tcmVwZWF0LCByZXBlYXQpO1xuICAgIC13ZWJraXQtbWFzay1pbWFnZTogdmFyKC0tcm93LXB1bHNlLXRodW1iLXBhdHRlcm4tdXJsKTtcbiAgICAtd2Via2l0LW1hc2stc2l6ZTogdmFyKC0tcm93LXB1bHNlLXRodW1iLXBhdHRlcm4tc2l6ZSwgNDBweCA0MHB4KTtcbiAgICAtd2Via2l0LW1hc2stcG9zaXRpb246IHZhcigtLXJvdy1wdWxzZS10aHVtYi1wYXR0ZXJuLXBvc2l0aW9uLCAwIDApO1xuICAgIC13ZWJraXQtbWFzay1yZXBlYXQ6IHZhcigtLXJvdy1wdWxzZS10aHVtYi1wYXR0ZXJuLXJlcGVhdCwgcmVwZWF0KTtcbn1cblxuLy8gSGVyc3RlbCBrYWFydCA0ZCAoQk9BUkQtcHVsc2Utb3BtYWFrLXdpemFyZC5tZCk6IHRoZSBwYXR0ZXJuIFNWR3MnIG93blxuLy8gcGVyLW1vdGlmIGZpbGwtb3BhY2l0eSAoMC4xMi0wLjMsIHNoYXJlZCBkYXRhIHRoaXMgY29tcG9uZW50IG1heSBub3Rcbi8vIGNoYW5nZSAtIHNlZSB0aGUgY29tbWVudCBhYm92ZSkgcmVhZHMgYXMgdG9vIGZhaW50IGF0IDQwcHggb24gT05FIG1hc2tcbi8vIGxheWVyLCB3b3JzdCBvbiBjb25mZXR0aSAob3BhY2l0eSAuMTYtLjMpLiBTYW1lIGZpeCBxZG5hcHJvLWJhY2tncm91bmQtXG4vLyBwaWNrZXIgYWxyZWFkeSBhcHBsaWVzIHRvIGV2ZXJ5IHBhdHRlcm4gdGlsZSAoYC5xYnAtdGlsZS1wYXR0ZXJuLWxheWVyLFxuLy8gLnFicC10aWxlLXBhdHRlcm4tbGF5ZXI6OmFmdGVyYCBpbiBfYmFja2dyb3VuZC1waWNrZXIuc2Nzcyk6IHN0YWNrIGFcbi8vIFNFQ09ORCBpZGVudGljYWwgbWFza2VkL3RpbnRlZCBsYXllciB2aWEgYDo6YWZ0ZXJgIG9uIHRvcCBvZiB0aGUgZmlyc3QuXG4vLyBUd28gc2VtaS10cmFuc3BhcmVudCBsYXllcnMgY29tcG91bmQgdGhlaXIgYWxwaGEgKGUuZy4gdHdvIDAuMy1vcGFxdWVcbi8vIGxheWVycyByZWFkIGFzIH4wLjUxKSAtIGEgdGlsZS1vbmx5IGNvbnRyYXN0IGJvb3N0LCBnZW5lcmljIGZvciBhbGwgc2l4XG4vLyBwYXR0ZXJucyAoY29uZmV0dGkgbmVlZGVkIGl0IG1vc3QsIHRoZSBvdGhlciBmaXZlIGp1c3QgZ2V0IGEgYml0XG4vLyBjcmlzcGVyKS4gU2NvcGVkIHRvIGAucm93LXB1bHNlLXRodW1iLXBhdHRlcm5gLCB3aGljaCBvbmx5IGV4aXN0cyB3aGVuXG4vLyBgdGh1bWItcGF0dGVybi11cmxgIGlzIHNldCwgc28gcm93cyB3aXRob3V0IGEgdGh1bWIgcGF0dGVybiBhcmVcbi8vIGJ5dGUtaWRlbnRpY2FsIHRvIGJlZm9yZSB0aGlzIHJ1bGUuXG4ucm93LXB1bHNlLXRodW1iLXBhdHRlcm46OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1yb3ctcHVsc2UtdGh1bWItcGF0dGVybi10aW50LCB2YXIoLS1yb3ctcHVsc2UtdGh1bWItc3dhdGNoKSk7XG4gICAgbWFzay1pbWFnZTogdmFyKC0tcm93LXB1bHNlLXRodW1iLXBhdHRlcm4tdXJsKTtcbiAgICBtYXNrLXNpemU6IHZhcigtLXJvdy1wdWxzZS10aHVtYi1wYXR0ZXJuLXNpemUsIDQwcHggNDBweCk7XG4gICAgbWFzay1wb3NpdGlvbjogdmFyKC0tcm93LXB1bHNlLXRodW1iLXBhdHRlcm4tcG9zaXRpb24sIDAgMCk7XG4gICAgbWFzay1yZXBlYXQ6IHZhcigtLXJvdy1wdWxzZS10aHVtYi1wYXR0ZXJuLXJlcGVhdCwgcmVwZWF0KTtcbiAgICAtd2Via2l0LW1hc2staW1hZ2U6IHZhcigtLXJvdy1wdWxzZS10aHVtYi1wYXR0ZXJuLXVybCk7XG4gICAgLXdlYmtpdC1tYXNrLXNpemU6IHZhcigtLXJvdy1wdWxzZS10aHVtYi1wYXR0ZXJuLXNpemUsIDQwcHggNDBweCk7XG4gICAgLXdlYmtpdC1tYXNrLXBvc2l0aW9uOiB2YXIoLS1yb3ctcHVsc2UtdGh1bWItcGF0dGVybi1wb3NpdGlvbiwgMCAwKTtcbiAgICAtd2Via2l0LW1hc2stcmVwZWF0OiB2YXIoLS1yb3ctcHVsc2UtdGh1bWItcGF0dGVybi1yZXBlYXQsIHJlcGVhdCk7XG59XG5cbi8vIC0tLS0gQW5pbWF0ZWQtaWNvbiB0aWxlIChrYWFydCAyNywgQk9BUkQtcHVsc2Utb3BtYWFrLXdpemFyZC5tZCkgLS0tLVxuLy8gU2Vjb25kIHRodW1ibmFpbCBmYWxsYmFjayB0aWVyLCBzYW1lIHNsb3QgYXMgLnJvdy1wdWxzZS10aHVtYiBhYm92ZSAodGhlXG4vLyBiYXNlIGNsYXNzIHN0YXlzIG9uIHRoZSBlbGVtZW50IGZvciBpdHMgNDB4NDAvOHB4LXJhZGl1cyBib3gg4oCUIHNlZSB0aGVcbi8vIHByZWNlZGVuY2UgY29tbWVudCBpbiBxZG5hLWFjdGl2aXR5LXJvdy5qcydzIF9yZW5kZXJQdWxzZSgpKS4gU2hvd24gd2hlblxuLy8gYHRodW1iLWFuaW1gIGlzIHNldCBhbmQgYHRodW1iLXNyY2AgaXMgbm90OiBhIGNlbnRyZWQgcWRuYXByby1sb3R0aWVcbi8vICh0cmlnZ2VyPVwibWFudWFsXCIsIHBsYXllZC9zdG9wcGVkIGJ5IHRoZSByb3cncyBvd24gaG92ZXIvZm9jdXMgaGFuZGxlcnNcbi8vIGluIF9iaW5kUHVsc2VFdmVudHMoKSkgb24gYSBmbGF0IGNvbG91ciB0aWxlLlxuLyogS2ltIDI0LjA4OiBkZSB0eXBlLXBpbCB2YW4gZWVuIFB1bHNlLXN0YXAgc3RhYXQgTUlEREVOIGluIGRlIHJpaiwgcHJlY2llc1xuICAgem9hbHMgLnJvdy10eXBlLXRhZyBkYXQgZG9ldCB2b29yIGVlbiB0YWtlbmxpanN0LWFjdGl2aXRlaXQuIFplbGZkZSBhYnNvbHV0ZVxuICAgY2VudHJlcmluZywgem9kYXQgYmVpZGUgbGlqc3RlbiBkZXplbGZkZSByaXRtaWVrIGhvdWRlbi4gKi9cbi8vIEtpbSAyNC4wOCAoaGVyemllbik6IE5JRVQgYWJzb2x1dXQgZ2VjZW50cmVlcmQgem9hbHMgLnJvdy10eXBlLXRhZyBoaWVyYm92ZW4uXG4vLyBFZW4gcHVsc2UtdGl0ZWwgaXMgdmFhayBlZW4gaGVsZSB2cmFhZ3ppbiBlbiBsaWVwIG9uZGVyIGRlIHp3ZXZlbmRlIHBpbCBkb29yLlxuLy8gRGFhcm9tIGVlbiBFQ0hURSBrb2xvbSBpbiBkZSByaWotZmxleCwgcmVjaHRzIHZhbiBkZSB0aXRlbDogZGUgdGl0ZWwgaG91ZHQgZGVcbi8vIHJlc3RlcmVuZGUgcnVpbXRlIGVuIGthcHQgbmV0amVzIGFmIG1ldCBlZW4gZWxsaXBzLCBkZSBwaWwga2FuIGVyIHBlciBkZWZpbml0aWVcbi8vIG5pZXQgbWVlciBvdmVyaGVlbiB2YWxsZW4uIFZhc3RlIGJyZWVkdGUsIHpvZGF0IGRlIHBpbGxlbiBvcCBlbGtlIHJpaiBvcFxuLy8gZGV6ZWxmZGUgeCBiZWdpbm5lbiBvbmRhbmtzIHZlcnNjaGlsbGVuZGUgc3RhdGlzdGlla2VuIGVyYWNodGVyLlxuLnJvdy1wdWxzZS10eXBlLXRhZyB7XG4gICAgZmxleDogMCAwIDE5MHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLy8gWmVsZmRlIGFmd2VnaW5nIGFscyBiaWogLnJvdy10eXBlLXRhZzogbGlldmVyIHdlZyBkYW4gZGUgdGl0ZWwgb3BldGVuLlxuLy8gLnJvdy1wdWxzZS1iYWRnZXMgKGthYXJ0IDEwYSBoaWVyb25kZXIpIGhhbmd0IGhpZXIgb29rIGFhbjogb3Agc21hbGxlXG4vLyBzY2hlcm1lbiBpcyBoZXQgZWVuIGV2ZW4gb250YmVlcmxpamtlLCBcImxldWsgb20gdGUgd2V0ZW5cIiBwaWwgYWxzIGRlXG4vLyBzdGFwdHlwZS1waWwgemVsZi5cbkBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICAgIC5yb3ctcHVsc2UtdHlwZS10YWcsXG4gICAgLnJvdy1wdWxzZS1iYWRnZXMgeyBkaXNwbGF5OiBub25lOyB9XG59XG5cbi8vIC0tLS0gU2NvcmUgYmFkZ2VzIChrYWFydCAxMGEsIEJPQVJELXB1bHNlLWdhbWlmaWNhdGlvbi1iYXR0bGVzLm1kKSAtLS0tXG4vLyBUd2VlIGxvc3N0YWFuZGUsIGFsdGlqZCBvcHRpb25lbGUgcGlsbGV0amVzIE5BQVNUIGRlIGJlc3RhYW5kZSBzdGFwdHlwZS1waWxcbi8vICgucm93LXB1bHNlLXR5cGUtdGFnIGhpZXJib3Zlbikg4oCUIGVlbiBFSUdFTiBrb2xvbSBlcm5hLCBuaWV0IGVyaW46IHpvIGJsaWpmdFxuLy8gZGUgdmFzdGUgMTkwcHgtYnJlZWR0ZSB2YW4gZGUgc3RhcHR5cGUtcGlsIChrYWFydCAyNC4wOCwgXCJkZXplbGZkZSB4IG9wIGVsa2Vcbi8vIHJpalwiKSBvbmFhbmdlcm9lcmQsIG9uZ2VhY2h0IG9mIGVyIHB1bnRlbi1iYWRnZXMgYmlqa29tZW4uIGBmbGV4OiAwIDAgYXV0b2Bcbi8vIGR1cyBkZXplIGtvbG9tIG5lZW10IHByZWNpZXMgZGUgYnJlZWR0ZSB2YW4gemlqbiBpbmhvdWQsIGVuIHZlcnNjaGlqbnQvXG4vLyB2ZXJkd2lqbnQgaGVsZW1hYWwgKGdlZW4gbGVlZyBlbGVtZW50KSBhbHMgZGUgYXR0cmlidXRlbiBvbnRicmVrZW4g4oCUIHppZVxuLy8gX3JlbmRlclB1bHNlKCkgaW4gcWRuYS1hY3Rpdml0eS1yb3cuanMuXG4ucm93LXB1bHNlLWJhZGdlcyB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vLyBTY29yZS1iYWRnZSAoYXR0cmlidXV0IGBzY29yZS1sYWJlbGApOiBzdGVyLWljb29uICsgd2FhcmRlLiBLaW0gMDIuMDkuMjAyNjpcbi8vIGRlIGdlbGUgY2hpcC1mYW1pbGllIGB5ZWxsb3ctMmAgaW4gcGxhYXRzIHZhbiBgeWVsbG93YCDigJQgZWVuIHZvbGxlcmUsIHdhcm1lcmVcbi8vIGdlZWwgZGllIG5hYXN0IGRlIG5pZXV3ZSBwYWFyc2UgdmVyZHViYmVsYWFyLWJhZGdlIGhpZXJvbmRlciBub2cgbGVlc3QgYWxzXG4vLyBlZW4gZWlnZW4gc2lnbmFhbC4gWmVsZmRlIHBpbC12b3JtICg5cHggcmFkaXVzKSBhbHMgLnJvdy1wdWxzZS1yZWYgaGllcmJvdmVuLlxuLnJvdy1wdWxzZS1zY29yZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDNweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBwYWRkaW5nOiAycHggN3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDlweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAteWVsbG93LTItYmcpO1xuICAgIGNvbG9yOiB2YXIoLS1jLWNoaXAteWVsbG93LTItdGV4dCk7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ucm93LXB1bHNlLXNjb3JlIHFkbmFwcm8taWNvbiB7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi8vIFZlcmR1YmJlbGFhci1iYWRnZSAoYXR0cmlidXV0IGBzY29yZS1kb3VibGVgKTogZGlhbWFudC1pY29vbiArIHZhc3RlIHRla3N0XG4vLyBcIngyXCIuIEtpbSAwMi4wOS4yMDI2OiBoZXQgZ291ZGVuIGJhdHRsZS1wb2RpdW0tdG9rZW4gaXMgZXJ1aXQsIGRpdCBpcyBudSBkZVxuLy8gYGRhcmstcHVycGxlYC1mYW1pbGllIHVpdCBoZXQgZ2VkZWVsZGUgY2hpcC1wYWxldCDigJQgZGV6ZWxmZGUga2xldXJlbiBhbHNcbi8vIGA8cWRuYXByby10YWcgY29sb3I9XCJkYXJrLXB1cnBsZVwiPmAsIHpvZGF0IGRlIGJhZGdlIGVlbiBiZXN0YWFuZGUgdGFna2xldXJcbi8vIGRyYWFndCBpbiBwbGFhdHMgdmFuIGVlbiBlaWdlbiBoZXguIERpZSB0b2tlbnMga2xhcHBlbiB6ZWxmIG9tIGluIGhldCBkb25rZXJlXG4vLyB0aGVtYSwgZHVzIGVyIGlzIChuZXQgYWxzIHZvb3JoZWVuKSBnZWVuIFtkYXRhLXRoZW1lPVwiZGFya1wiXS1vdmVycmlkZSBub2RpZy5cbi8vIEhldCBkaWFtYW50LWljb29uIGlzIGJld3VzdCBoZXR6ZWxmZGUgYmVlbGQgYWxzIGRlIHZlcmR1YmJlbGFhci10ZWdlbCBpbiBkZVxuLy8gc3RhcHdpemFyZCAoYHFkbmFwcm8tcmFkaW8tdGlsZSBtb2RlPVwidG9nZ2xlXCJgIG1ldCBkZSBiZXdlZ2VuZGUgZGlhbWFudCk6IG9wXG4vLyAxMSBwaXhlbHMgd29yZHQgZWVuIExvdHRpZSBlZW4gdmxla2plLCBkdXMgaGllciBkZSBzdGlsc3RhYW5kZSBNREktdmFyaWFudC5cbi5yb3ctcHVsc2Utc2NvcmUtZG91YmxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaXNvbGF0aW9uOiBpc29sYXRlO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAzcHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgcGFkZGluZzogMnB4IDdweDtcbiAgICBib3JkZXItcmFkaXVzOiA5cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLWRhcmstcHVycGxlLWJnKTtcbiAgICBjb2xvcjogdmFyKC0tYy1jaGlwLWRhcmstcHVycGxlLXRleHQpO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8vIC0tLS0gQm9yZGVyIGJlYW0gb3AgZGUgdmVyZHViYmVsYWFyIChLaW0gMDIuMDkuMjAyNjogXCJzdWJ0aWVsXCIpIC0tLS1cbi8vIEV4YWN0IGRlemVsZmRlIHRydWMgYWxzIGRlIHZlcmR1YmJlbGFhci1URUdFTCBpbiBkZSB3aXphcmRcbi8vICgucWRuYXByby1yYWRpby10aWxlLnJhZGlvLXRpbGUtYmVhbSwgX3JhZGlvLXRpbGUuc2Nzcyk6IGVlbiBjb25pYy1ncmFkaWVudFxuLy8gYWNodGVyIGRlIHBpbCwgbWV0IHBhZGRpbmcgKyB4b3ItbWFza2VyIHRlcnVnZ2VicmFjaHQgdG90IGFsbGVlbiBkZSByYW5kLlxuLy8gVHdlZSBkaW5nZW4gemlqbiBoaWVyIGJld3VzdCBhbmRlcnMsIHdhbnQgZGl0IGlzIGVlbiBiYWRnZSB2YW4gMjAgcGl4ZWxzIGhvb2dcbi8vIGVuIGdlZW4ga2FhcnQ6XG4vLyAgICogZGUgcmluZyBpcyAxcHggaW4gcGxhYXRzIHZhbiAycHgsIGVuIGRlIGxpY2h0Ym9vZyBiZXNsYWF0IG1hYXIgfjUwIGdyYWRlbjtcbi8vICAgKiBkZSBrbGV1ciBpcyBgY3VycmVudENvbG9yYCAoPSBkZSBkYXJrLXB1cnBsZSBpbmt0KSBpbiBwbGFhdHMgdmFuIGdvdWQsIGR1c1xuLy8gICAgIGRlIGJlYW0gY29udHJhc3RlZXJ0IHZhbnplbGYgZ29lZCBpbiBaT1dFTCBoZXQgbGljaHRlIGFscyBoZXQgZG9ua2VyZVxuLy8gICAgIHRoZW1hIOKAlCBpbiBsaWNodCBlZW4gZG9ua2VyZSB2ZWVnIG92ZXIgZGUgbGF2ZW5kZWwsIGluIGRvbmtlciBlZW4gbGljaHRlLlxuLy8gV2FhciBAcHJvcGVydHkgb250YnJlZWt0IGJsaWpmdCBkZSBob2VrIG9wIDBkZWcgc3RhYW46IGRhbiB6aWUgamUgZWVuIHN0aWxsZVxuLy8gYm9vZyBpbiBwbGFhdHMgdmFuIGVlbiBsb3BlbmRlLiBEYXQgaXMgZWVuIHByaW1hIHRlcnVndmFsLCBnZWVuIGZhbGxiYWNrLXJlZ2VsXG4vLyBub2RpZy5cbi5yb3ctcHVsc2Utc2NvcmUtZG91YmxlOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgLy8gTmVnYXRpZWYsIG1ldCBgaXNvbGF0aW9uOiBpc29sYXRlYCBvcCBkZSBwaWwgZXJvbWhlZW46IGRlIHJpbmcga29tdCB6b1xuICAgIC8vIEJPVkVOIGRlIHZ1bGxpbmcgbWFhciBPTkRFUiBoZXQgaWNvb24gZW4gZGUgdGVrc3QsIHpvbmRlciBkYXQgZGllIHR3ZWVcbiAgICAvLyB6ZWxmIGdlcG9zaXRpb25lZXJkIGhvZXZlbiB0ZSB3b3JkZW4uXG4gICAgei1pbmRleDogLTE7XG4gICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICBwYWRkaW5nOiAxcHg7XG4gICAgYmFja2dyb3VuZDogY29uaWMtZ3JhZGllbnQoXG4gICAgICAgIGZyb20gdmFyKC0tcm93LXB1bHNlLWJlYW0tYW5nbGUpLFxuICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgY3VycmVudENvbG9yIDEwJSwgdHJhbnNwYXJlbnQpIDBkZWcsXG4gICAgICAgIGNvbG9yLW1peChpbiBzcmdiLCBjdXJyZW50Q29sb3IgMTAlLCB0cmFuc3BhcmVudCkgMjgwZGVnLFxuICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgY3VycmVudENvbG9yIDYwJSwgdHJhbnNwYXJlbnQpIDMyMGRlZyxcbiAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIGN1cnJlbnRDb2xvciAxMCUsIHRyYW5zcGFyZW50KSAzNjBkZWdcbiAgICApO1xuICAgIC13ZWJraXQtbWFzazpcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KCMwMDAgMCAwKSBjb250ZW50LWJveCxcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KCMwMDAgMCAwKTtcbiAgICAtd2Via2l0LW1hc2stY29tcG9zaXRlOiB4b3I7XG4gICAgbWFzazpcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KCMwMDAgMCAwKSBjb250ZW50LWJveCxcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KCMwMDAgMCAwKTtcbiAgICBtYXNrLWNvbXBvc2l0ZTogZXhjbHVkZTtcbiAgICBhbmltYXRpb246IHJvdy1wdWxzZS1iZWFtLXNwaW4gMy4ycyBsaW5lYXIgaW5maW5pdGU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbkBrZXlmcmFtZXMgcm93LXB1bHNlLWJlYW0tc3BpbiB7XG4gICAgdG8geyAtLXJvdy1wdWxzZS1iZWFtLWFuZ2xlOiAzNjBkZWc7IH1cbn1cblxuLnJvdy1wdWxzZS1zY29yZS1kb3VibGUgcWRuYXByby1pY29uIHtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAucm93LXB1bHNlLXNjb3JlLWRvdWJsZTo6YWZ0ZXIgeyBhbmltYXRpb246IG5vbmU7IH1cbn1cblxuLnJvdy1wdWxzZS10aHVtYi0tYW5pbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIC8vIFBsYWluIGdyZXkgd2hlbiBgdGh1bWItdGlsZWAgaXMgYWJzZW50L3VucmVjb2duaXNlZCDigJQgc2FtZSBmYWxsYmFja1xuICAgIC8vIHFkbmFwcm8tdGFza2xpc3QtY2FyZCdzIG93biB0bGMtY29sb3ItZ3JleSB1c2VzLlxuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7XG59XG5cbi5yb3ctcHVsc2UtdGh1bWItLWFuaW0gcWRuYXByby1sb3R0aWUge1xuICAgIHdpZHRoOiAyOHB4O1xuICAgIGhlaWdodDogMjhweDtcbn1cblxuLy8gVGlsZSBjb2xvdXJzIOKAlCB0aGUgZXhhY3Qgc2FtZSA4LWNvbG91ciBmYW1pbHkgYW5kIHRva2VucyBhc1xuLy8gcWRuYXByby10YXNrbGlzdC1jYXJkJ3MgLnRsYy1jb2xvci0qIChfdGFza2xpc3QtY2FyZC5zY3NzKSBhbmRcbi8vIHFkbmFwcm8taHViLXRpbGUncyAucWh0LXRpbnQtKiAoX2h1Yi10aWxlLnNjc3MpLiBObyBuZXcgY29sb3VyczogdGhlXG4vLyBkYXJrLXRoZW1lIHZhbHVlcyBiZWxvdyBhcmUgY29waWVkIDE6MSBmcm9tIHRob3NlIHR3byBjb21wb25lbnRzJyBvd25cbi8vIGRhcmstdGhlbWUgb3ZlcnJpZGVzIGZvciB0aGVzZSBleGFjdCBjb2xvdXIgbmFtZXMsIG5vdCBpbnZlbnRlZCBoZXJlLlxuLnJvdy1wdWxzZS10aHVtYi0tdGlsZS1ncmV5ICAgICAgICB7IGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7IH1cbi5yb3ctcHVsc2UtdGh1bWItLXRpbGUtcmVkICAgICAgICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1yZWQtYmcpOyB9XG4ucm93LXB1bHNlLXRodW1iLS10aWxlLXllbGxvdyAgICAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLXllbGxvdy1iZyk7IH1cbi5yb3ctcHVsc2UtdGh1bWItLXRpbGUtZ3JlZW4gICAgICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAtZ3JlZW4tYmcpOyB9XG4ucm93LXB1bHNlLXRodW1iLS10aWxlLWJsdWUgICAgICAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtYmx1ZS1iZyk7IH1cbi5yb3ctcHVsc2UtdGh1bWItLXRpbGUtYnJpZ2h0LWJsdWUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtMi1iZyk7IH1cbi5yb3ctcHVsc2UtdGh1bWItLXRpbGUtcGluayAgICAgICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1waW5rLWJnKTsgfVxuLnJvdy1wdWxzZS10aHVtYi0tdGlsZS1wdXJwbGUgICAgICB7IGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1wdXJwbGUtYmcpOyB9XG5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucm93LXB1bHNlLXRodW1iLS10aWxlLWdyZXkgICAgICAgIHsgYmFja2dyb3VuZDogIzQwNDQ0ZDsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5yb3ctcHVsc2UtdGh1bWItLXRpbGUtcmVkICAgICAgICAgeyBiYWNrZ3JvdW5kOiAjNWEyYjJiOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnJvdy1wdWxzZS10aHVtYi0tdGlsZS15ZWxsb3cgICAgICB7IGJhY2tncm91bmQ6ICM1YTRkMWY7IH1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucm93LXB1bHNlLXRodW1iLS10aWxlLWdyZWVuICAgICAgIHsgYmFja2dyb3VuZDogIzJhNTU0NDsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5yb3ctcHVsc2UtdGh1bWItLXRpbGUtYmx1ZSAgICAgICAgeyBiYWNrZ3JvdW5kOiAjMmUzZTU0OyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnJvdy1wdWxzZS10aHVtYi0tdGlsZS1icmlnaHQtYmx1ZSB7IGJhY2tncm91bmQ6ICMzYTRhOGE7IH1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucm93LXB1bHNlLXRodW1iLS10aWxlLXBpbmsgICAgICAgIHsgYmFja2dyb3VuZDogIzRlMmEzNjsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5yb3ctcHVsc2UtdGh1bWItLXRpbGUtcHVycGxlICAgICAgeyBiYWNrZ3JvdW5kOiAjM2EzNTU1OyB9XG5cbi8vIC0tLS0gS2FhcnQgMjg6IGRlIG1pbmlhdHV1ciBhbHMgZWNodGUga25vcCAoYHRodW1iLWludGVyYWN0aXZlYCkgLS0tLVxuLy8gSGV0emVsZmRlIGFmc3ByYWtlbnBha2tldCBhbHMgZGUgZGFnLXBpbGwgaW4ga2FhcnQgMTggKHppZSAucm93LXB1bHNlLWRheSBpblxuLy8gX3B1bHNlLnNjc3MpOiBob3ZlciA9IGVlbiB0aW50IGRvbmtlcmRlciwgYWN0aXZlID0gbm9nIGVlbiB0aW50LCBnZWVuXG4vLyB0cmFuc2Zvcm0sIGVuIGVlbiBlaWdlbiBmb2N1cy1yaW5nIG9tZGF0IGJvb3RzdHJhcCBpbiB2MSBvcCBFTEtFIGtub3AgZWVuXG4vLyBlaWdlbiBvdXRsaW5lIHpldCBlbiAuYWN0aXZpdHktcm93LWlubmVyIG9wIG92ZXJmbG93OmhpZGRlbiBzdGFhdCAoZWVuXG4vLyBvdXRsaW5lIHpvdSBhYW4gZGUgcmFuZCB2YW4gZGUgcmlqIGFmZ2VrbmlwdCB3b3JkZW4sIGVlbiBib3gtc2hhZG93IG5pZXQpLlxuLy9cbi8vIERlIHRpbnQgaXMgZWVuIFNDUklNIGVuIGdlZW4ga2xldXJ0b2tlbiwgZW4gZGF0IGlzIG1ldCBvcHpldDogZGUgdGVnZWwgaXNcbi8vIGhpZXJvbmRlciBhY2h0IHZlcnNjaGlsbGVuZGUga2xldXJlbiwga2FuIGVlbiBmb3RvIHppam4sIG9mIGVlbiBrbGV1ciBtZXQgZWVuXG4vLyBwYXRyb29uIGVyb3ZlcmhlZW4uIEXDqW4gdGludCBwZXIgdGVnZWxrbGV1ciB2ZXJ6aW5uZW4gem91IGFjaHQgbmlldXdlIGtsZXVyZW5cbi8vIGJldGVrZW5lbiBkaWUgbmVyZ2VucyBhbmRlcnMgYmVzdGFhbjsgZWVuIGRvb3J6aWNodGlnZSBsYWFnIHdlcmt0IG9wIGFsbGVcbi8vIGRyaWUgZGUgc29vcnRlbiBpbmhvdWQgbWV0IGRlemVsZmRlIHJlZ2VsLiBIZXQgaXMgZWVuIDo6YmVmb3JlIGVuIGdlZW5cbi8vIDo6YWZ0ZXIsIHdhbnQgLnJvdy1wdWxzZS10aHVtYi1wYXR0ZXJuIGdlYnJ1aWt0IDo6YWZ0ZXIgYWwgdm9vciBkZSB0d2VlZGVcbi8vIHBhdHJvb25sYWFnLlxuLy8gQkVXVVNUIEdFRU4gYGJhY2tncm91bmRgIGhpZXIuIERpZSBzdG9uZCBlciBlZXJzdCB3ZWwgKG9tIGRlIGVpZ2VuXG4vLyBhY2h0ZXJncm9uZCB2YW4gZWVuIDxidXR0b24+IHRlIG5ldXRyYWxpc2VyZW4pIGVuIGRhdCBtYWFrdGUgw6lsa2UgdGVnZWxcbi8vIGtsZXVybG9vczogLnJvdy1wdWxzZS10aHVtYi0tdGlsZS0qIGVuIC0tY29sb3IgaGViYmVuIHByZWNpZXMgZGV6ZWxmZGVcbi8vIHNwZWNpZmljaXRlaXQgYWxzIGRlemUga2xhc3NlLCBlbiBkaXQgYmxvayBzdGFhdCBlcm9uZGVyLCBkdXMgaGV0IHdvbiBvcFxuLy8gYnJvbnZvbGdvcmRlLiBHZXppZW4gaW4gZGUgbGlicmFyeS1wcmV2aWV3OiBkZSBibGF1d2UgZW4gZGUgZWZmZW4gdGVnZWxcbi8vIHdhcmVuIHdpdC4gRGUgVUEtcmVnZWwgYGJ1dHRvbiB7IGJhY2tncm91bmQtY29sb3I6IEJ1dHRvbkZhY2UgfWAgdmVybGllc3Rcbi8vIHZhbiDDqWxrZSBhdXRldXJzcmVnZWwsIGR1cyBkZSB0ZWdlbGtsYXNzZW4gaGllcm9uZGVyIGRvZW4gZGl0IHdlcmsgYWw7IGFsbGVlblxuLy8gYmlqIC0taW1hZ2Ugc3RhYXQgZXIgZ2VlbiBhdXRldXJzYWNodGVyZ3JvbmQsIGVuIGRhYXIgZGVrdCBkZSA8aW1nPiBoZXQgdmxha1xuLy8gdm9sbGVkaWcgYWYuXG4ucm93LXB1bHNlLXRodW1iLS1pbnRlcmFjdGl2ZSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG4ucm93LXB1bHNlLXRodW1iLS1pbnRlcmFjdGl2ZTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICAvLyBCb3ZlbiBkZSBmb3RvL3BhdHJvb25sYWFnLCBtYWFyIGRlIGxvdHRpZSBlcm9uZGVyIGJsaWpmdCBsZWVzYmFhcjogZGVcbiAgICAvLyBzY3JpbSBpcyBsaWNodCBnZW5vZWcgb20gZG9vcmhlZW4gdGUga2lqa2VuLlxuICAgIHotaW5kZXg6IDI7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwKTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2U7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5yb3ctcHVsc2UtdGh1bWItLWludGVyYWN0aXZlOmhvdmVyOjpiZWZvcmUgIHsgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAuMDgpOyB9XG4ucm93LXB1bHNlLXRodW1iLS1pbnRlcmFjdGl2ZTphY3RpdmU6OmJlZm9yZSB7IGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgLjE2KTsgfVxuXG4vLyBPcCBlZW4gZG9ua2VyIHZsYWsgd2Vya3QgendhcnQtb3AtendhcnQgbmlldDsgZGV6ZWxmZGUgdmVyaG91ZGluZyBhbHMgZGVcbi8vIG5hdi1yYWlsIChlbiBhbHMgZGUgZGFnLXBpbGwgaW4gZGFyayBtb2RlKSBtYWFyIGRhbiBtZXQgd2l0LlxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5yb3ctcHVsc2UtdGh1bWItLWludGVyYWN0aXZlOmhvdmVyOjpiZWZvcmUgIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAuMTApOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnJvdy1wdWxzZS10aHVtYi0taW50ZXJhY3RpdmU6YWN0aXZlOjpiZWZvcmUgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC4xOCk7IH1cblxuLnJvdy1wdWxzZS10aHVtYi0taW50ZXJhY3RpdmU6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG4ucm93LXB1bHNlLXRodW1iLS1pbnRlcmFjdGl2ZTpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1yaW5nLCAjNTM0YWI3KTtcbn1cblxuLy8gLS0tLSBOYW1lICsgZGVzY3JpcHRpb24gLS0tLVxuXG4ucm93LXB1bHNlLWluZm8ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZmxleDogMSAxIGF1dG87XG59XG5cbi5yb3ctcHVsc2UtbmFtZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBsaW5lLWhlaWdodDogMS40O1xufVxuXG4ucm93LXB1bHNlLWRlc2Mge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi8vIC0tLS0gUmVmLWNoaXAgKGthYXJ0IDEzKSAtLS0tXG4vLyBDb21wYWN0IFwibGlua2VkIHRvIFhcIiBjaGlwIHVuZGVyIHRoZSBuYW1lL2Rlc2NyaXB0aW9uLiBTYW1lIHNoYXBlIGFzIHRoZVxuLy8gbm93LXN1cGVyc2VkZWQgLnB1bHNlLXN0ZXAtcmVmIChiYWNrb2ZmaWNlMi9zY3NzL3BhcnRpYWxzL3YxL19wdWxzZS5zY3NzLFxuLy8gbGluZSB+NjE0KTogaW5saW5lLWZsZXgsIDVweCBnYXAsIDJweC85cHggcGFkZGluZywgOXB4IHJhZGl1cy4gQ29sb3VycyBhcmVcbi8vIGNvbXBvbmVudC1sb2NhbCBjdXN0b20gcHJvcGVydGllcyB3aXRoIHRoZSBPUklHSU5BTCBoZXggYXMgYSBkZWxpYmVyYXRlXG4vLyBmYWxsYmFjayAobm8gZXhhY3QgbWF0Y2hpbmcgZ2xvYmFsIHRva2VuIGV4aXN0cyBmb3IgdGhpcyBsaWdodC1ibHVlIHBhaXI7XG4vLyB0aGUgYW1iZXIgXCJtaXNzaW5nXCIgYmFja2dyb3VuZCBkb2VzIOKAlCAtLWMtdGFnLXdhcm5pbmctYmcg4oCUIHNvIHRoYXQgb25lIGlzXG4vLyByZXVzZWQgZGlyZWN0bHkpLlxuLnJvdy1wdWxzZS1yZWYge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA1cHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICBwYWRkaW5nOiAycHggOXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDlweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1yb3ctcHVsc2UtcmVmLWJnLCAjZWVmMGZiKTtcbiAgICBjb2xvcjogdmFyKC0tcm93LXB1bHNlLXJlZi1mZywgIzM5NDI5MCk7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE3cHg7XG59XG5cbi5yb3ctcHVsc2UtcmVmIHFkbmFwcm8taWNvbiB7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5yb3ctcHVsc2UtcmVmIHNwYW4ge1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5yb3ctcHVsc2UtcmVmLmlzLW1pc3Npbmcge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtdGFnLXdhcm5pbmctYmcsICNmZmYyZDYpO1xuICAgIGNvbG9yOiB2YXIoLS1yb3ctcHVsc2UtcmVmLW1pc3NpbmctZmcsICM3YTUzMDApO1xufVxuXG4vLyAtLS0tIFN0YXQgaXRlbXMgLS0tLVxuXG4ucm93LXB1bHNlLXN0YXRzIHtcbiAgICAvLyBWYXN0ZSBiYXNpc2JyZWVkdGUgKEtpbSAyNC4wOCk6IGRlIHN0YXRpc3RpZWtlbiB2YXJpw6tyZW4gaW4gYnJlZWR0ZVxuICAgIC8vIChvbnRicmVrZW5kZSAlICwgMi0gdnMgMy1jaWpmZXJpZ2UgYWFudGFsbGVuKSBlbiBkYXQgdmVyc2NoaWwgc2Nob29mIGRlXG4gICAgLy8gdHlwZS1waWwgZXJuYWFzdCBwZXIgcmlqIG9wLiBNZXQgZWVuIHZhc3RlIGJhc2lzIHN0YWFuIGRlIHBpbGxlbiBvcCBlbGtlXG4gICAgLy8gcmlqIG9wIGRlemVsZmRlIHguIEdyb2VpdCBhbHNub2cgbWVlIGJpaiBleHRyZWVtIGhvZ2UgYWFudGFsbGVuLlxuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1pbi13aWR0aDogMTQwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTRweDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCk7XG59XG5cbi5yb3ctcHVsc2Utc3RhdCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ucm93LXB1bHNlLXN0YXQgcWRuYXByby1pY29uIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi8vIC0tLS0gUmVzZXJ2ZWQgdG9nZ2xlIHNsb3QgLS0tLVxuLy8gUmVuZGVycyBub3RoaW5nIHZpc2libGUg4oCUIGtlZXBzIGV2ZXJ5IHB1bHNlIHJvdyB0aGUgc2FtZSB0b3RhbCB3aWR0aFxuLy8gd2hldGhlciBvciBub3QgYSB0b2dnbGUgY29udHJvbCBsYW5kcyBoZXJlIGxhdGVyLlxuLnJvdy1wdWxzZS1zd2l0Y2gge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAzNnB4O1xufVxuXG4vLyAtLS0tIERlbGV0ZSBidXR0b24gLS0tLVxuLy8gcWRuYXByby1pY29uLWJ0biAodHlwZT1cInN1YnRsZS1lcnJvclwiKSBhbHJlYWR5IGNhcnJpZXMgaXRzIG93biBob3Zlci9cbi8vIGZvY3VzL2FjdGl2ZSBzdGF0ZXMg4oCUIG9ubHkgdGhlIHBsYWNlbWVudCBsaXZlcyBoZXJlLlxuLnJvdy1wdWxzZS1kZWxldGUge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vLyAtLS0tIE1lbnUtdHJpZ2dlciBidXR0b24gKGthYXJ0IDliKSAtLS0tXG4vLyBUYWtlcyBvdmVyIHRoZSBleGFjdCBzYW1lIHNsb3QgYXMgLnJvdy1wdWxzZS1kZWxldGUgYWJvdmUgd2hlblxuLy8gYG1lbnUtdHJpZ2dlcmAgaXMgc2V0IChzZWUgdGhlIGF0dHJpYnV0ZSBkb2NibG9jayBpbiBxZG5hLWFjdGl2aXR5LXJvdy5qcykuXG4vLyBxZG5hcHJvLWljb24tYnRuICh0eXBlPVwic3VidGxlXCIpIGFscmVhZHkgY2FycmllcyBpdHMgb3duIGhvdmVyL2ZvY3VzL2FjdGl2ZVxuLy8gc3RhdGVzIOKAlCBvbmx5IHRoZSBwbGFjZW1lbnQgbGl2ZXMgaGVyZS5cbi5yb3ctcHVsc2UtbWVudSB7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi8vIC0tLS0gUmVzcG9uc2l2ZSAoU0NPUEUgYmVzbHVpdCAxNCwgcHVsc2UgdmFyaWFudCBvbmx5KSAtLS0tXG4vLyBUYWJsZXQ6IHRoZSBzdGF0cyBzdGF5IGJ1dCBnZXQgY29tcGFjdGVyICh0aWdodGVyIGdhcCwgc21hbGxlciB0ZXh0KS5cbi8vIFBob25lOiBzdGF0cyBhbmQgdGhlIHJlc2VydmVkIHRvZ2dsZSBzbG90IGxlYXZlIHRoZSByb3cgZW50aXJlbHkg4oCUIHRoZVxuLy8gbnVtYmVycyBsaXZlIGluc2lkZSB0aGUgc3RlcCBpdHNlbGYgdGhlcmUuIEJyZWFrcG9pbnRzIG1pcnJvciB0aGUgb25lc1xuLy8gdGhlIFB1bHNlIHBhZ2UgYWxyZWFkeSB1c2VzICgxMTAwLzc2MCwgc2VlIF9wdWxzZS5zY3NzKS5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTAwcHgpIHtcbiAgICBxZG5hcHJvLWFjdGl2aXR5LXJvd1t2YXJpYW50PVwicHVsc2VcIl0gLnJvdy1wdWxzZS1zdGF0cyB7XG4gICAgICAgIGdhcDogOHB4O1xuICAgIH1cbiAgICBxZG5hcHJvLWFjdGl2aXR5LXJvd1t2YXJpYW50PVwicHVsc2VcIl0gLnJvdy1wdWxzZS1zdGF0IHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjBweCkge1xuICAgIHFkbmFwcm8tYWN0aXZpdHktcm93W3ZhcmlhbnQ9XCJwdWxzZVwiXSAucm93LXB1bHNlLXN0YXRzLFxuICAgIHFkbmFwcm8tYWN0aXZpdHktcm93W3ZhcmlhbnQ9XCJwdWxzZVwiXSAucm93LXB1bHNlLXN3aXRjaCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBWYXJpYW50OiBQdWxzZSDigJQgZGFyayBtb2RlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5yb3ctcHVsc2UtZ3JpcCB7IGNvbG9yOiAjNTY1YjY2OyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnJvdy1wdWxzZS1sb2NrIHsgY29sb3I6ICM2YjcyODA7IH1cblxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5yb3ctcHVsc2UtZGF5IHtcbiAgICBiYWNrZ3JvdW5kOiAjMmEyZDU1O1xuICAgIGNvbG9yOiAjYTVhY2ZmO1xufVxuXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnJvdy1wdWxzZS1kYXktc3ViIHsgY29sb3I6ICM5Y2EzYWY7IH1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucm93LXB1bHNlLW5hbWUgICAgeyBjb2xvcjogI2YzZjRmNjsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5yb3ctcHVsc2UtZGVzYyAgICB7IGNvbG9yOiAjOWNhM2FmOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnJvdy1wdWxzZS1zdGF0cyAgIHsgY29sb3I6ICM5Y2EzYWY7IH1cblxuLy8gUmVmLWNoaXAgKGthYXJ0IDEzKSDigJQgc2FtZSBjdXN0b20tcHJvcGVydHkgcGF0dGVybiBhcyB0aGUgbGlnaHQgY2hpcCBhYm92ZSxcbi8vIGRhcmstbW9kZSBmYWxsYmFja3MgaW5zdGVhZC5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucm93LXB1bHNlLXJlZiB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcm93LXB1bHNlLXJlZi1iZy1kYXJrLCByZ2JhKDE2NSwgMTcyLCAyNTUsIDAuMTYpKTtcbiAgICBjb2xvcjogdmFyKC0tcm93LXB1bHNlLXJlZi1mZy1kYXJrLCAjYzBjNWZmKTtcbn1cblxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5yb3ctcHVsc2UtcmVmLmlzLW1pc3Npbmcge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXJvdy1wdWxzZS1yZWYtbWlzc2luZy1iZy1kYXJrLCByZ2JhKDI0MCwgMjA4LCA5NiwgMC4xNikpO1xuICAgIGNvbG9yOiB2YXIoLS1yb3ctcHVsc2UtcmVmLW1pc3NpbmctZmctZGFyaywgI2YwZDA2MCk7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLWFnZW5kYS1saXN0IOKAlCBhZ2VuZGEgbGlzdCB2aWV3IChQV0EgY2FsZW5kYXIgTTEpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBRRE5BIHRva2VucyB1c2VkOlxuLy8gICAgLS1jLWdyZXktNTAwICAjNmI3MjgwICAgZHVyYXRpb24gdGV4dCArIGVtcHR5IGxpbmVcbi8vICAgIC0tYy1ncmV5LTYwMCAgIzU2NWI2NiAgIGRheSBoZWFkZXIgdGV4dFxuLy8gICAgLS1jLWdyZXktOTUwICAjMGIwYjBkICAgc3RhcnQgdGltZVxuLy8gICAgLS1jLWJvcmRlci1zb2Z0LTIgIGRheSBoZWFkZXIgZGl2aWRlciAod2FzIC0tYy1ncmV5LTEwMClcbi8vICBObyBGaWdtYSBza2V0Y2ggKHNjb3BlIGRlY2lzaW9uOiBkZXNpZ24gaW4gY29kZSwgT3V0bG9vayBtb2JpbGUgYXNcbi8vICByZWZlcmVuY2UpOiBzdGlja3kgZGF5IGhlYWRlcnMsIDU2cHggdGltZSBjb2x1bW4gbGVmdCwgZXZlbnQtY2FyZCByaWdodC5cbi8vICBDYXJkcyBrZWVwIHRoZWlyIG93biBzdGF0dXMgY29sb3VycyDigJQgc2FtZSBsYW5ndWFnZSBhcyB0aGUgdGltZSBncmlkLlxuLy8gIEZMQVQgQ1NTOyBzeW5jZWQgdG8gdGhlIFBXQSB2aWEgc3luYy12Mi1jb21wb25lbnRzLmpzLlxuXG4ucWRuYXByby1hZ2VuZGEtbGlzdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xufVxuXG4vLyBEYXkgZ3JvdXAg4oCUIGhlYWRlciBzdGlja3Mgd2l0aGluIHRoZSBob3N0J3Mgc2Nyb2xsIGNvbnRhaW5lclxuLnFkbmFwcm8tYWdlbmRhLWxpc3RfX2RheSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnFkbmFwcm8tYWdlbmRhLWxpc3RfX2hlYWRlciB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMDtcbiAgei1pbmRleDogMTtcbiAgcGFkZGluZzogMTBweCAxNnB4IDZweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMiwgI2U2ZTllZik7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNjAwLCAjNTY1YjY2KTtcbn1cbi8vIFRPREFZIHBpbGwgKEtpbSwgMjAuMDcuMjAyNikg4oCUIHRoZSBcInRvZGF5XCIgd29yZCBiZWNvbWVzIGEgZmlsbGVkXG4vLyAtLWMtYWN0aW9uLTUwMCBjaGlwLCBzYW1lIGJsdWUgdG9kYXkgbGFuZ3VhZ2UgYXMgdGhlIHRpbWUtZ3JpZCAvXG4vLyByZXNvdXJjZS10aW1lbGluZSBkYXktaGVhZGVyIHBpbGxzLiBTaXRzIGlubGluZSBiZWZvcmUgdGhlIGZvcm1hdHRlZCBkYXRlLlxuLnFkbmFwcm8tYWdlbmRhLWxpc3RfX2hlYWRlci5pcy10b2RheSB7XG4gIGNvbG9yOiB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xufVxuLnFkbmFwcm8tYWdlbmRhLWxpc3RfX3RvZGF5cGlsbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMXB4IDhweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLy8gUEFTVCBEQVlTIChkaW0tcGFzdCwgMDMuMDguMjAyNikg4oCUIHRoZSBzZWFyY2ggdmlldyBzaG93cyBoaXRzIGFjcm9zcyB0aGUgd2hvbGVcbi8vIGNhbGVuZGFyLCBzbyB3aGF0IGFscmVhZHkgaGFwcGVuZWQgaGFzIHRvIHJlYWQgcXVpZXRlciB0aGFuIHdoYXQgaXMgc3RpbGwgY29taW5nLlxuLy8gT25lIG9wYWNpdHkgb24gdGhlIHdob2xlIGRheSBncm91cCwgaGVhZGVyIGluY2x1ZGVkOiB0aGUgZXZlbnQtY2FyZHMga2VlcCB0aGVpciBvd25cbi8vIHN0YXR1cyBjb2xvdXJzIChwbGFubmVkL292ZXJkdWUvY29tcGxldGUpIGFuZCBvbmx5IGxvc2UgbG91ZG5lc3MsIHdoaWNoIGlzIGV4YWN0bHlcbi8vIHRoZSBHb29nbGUgQ2FsZW5kYXIgdHJlYXRtZW50LiBEaW1taW5nIHBlciB0b2tlbiBpbnN0ZWFkIHdvdWxkIG1lYW4gcmUtc3RhdGluZyBldmVyeVxuLy8gY2FyZCBjb2xvdXIgaW4gYSBtdXRlZCB2YXJpYW50LCBhbmQgdGhvc2UgdHdvIGxpc3RzIHdvdWxkIGRyaWZ0IGFwYXJ0LlxuLy8gTm90aGluZyBvdXRzaWRlIHRoZSBzZWFyY2ggdmlldyBzZXRzIGRpbS1wYXN0LCBzbyBubyBleGlzdGluZyB1c2FnZSBjaGFuZ2VzLlxuLnFkbmFwcm8tYWdlbmRhLWxpc3RfX2RheS5pcy1wYXN0IHtcbiAgb3BhY2l0eTogMC41NTtcbn1cblxuLy8gUm93OiB0aW1lIGNvbHVtbiArIGNhcmRcbi5xZG5hcHJvLWFnZW5kYS1saXN0X19yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDRweCA4cHggNHB4IDEycHg7XG59XG4ucWRuYXByby1hZ2VuZGEtbGlzdF9fcm93OmZpcnN0LW9mLXR5cGUge1xuICBwYWRkaW5nLXRvcDogOHB4O1xufVxuXG4ucWRuYXByby1hZ2VuZGEtbGlzdF9fdGltZSB7XG4gIGZsZXg6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMnB4O1xuICB3aWR0aDogNTZweDtcbiAgcGFkZGluZy10b3A6IDRweDtcbn1cbi5xZG5hcHJvLWFnZW5kYS1saXN0X19zdGFydCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktOTUwLCAjMGIwYjBkKTtcbn1cbi5xZG5hcHJvLWFnZW5kYS1saXN0X19kdXIge1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNzI4MCk7XG59XG5cbi8vIENhcmRzIHNpemUgdG8gdGhlaXIgY29udGVudCBpbiB0aGUgbGlzdCAodGhlIGdyaWQgc3RyZXRjaGVzIHRoZW0gaW5zdGVhZClcbi5xZG5hcHJvLWFnZW5kYS1saXN0X19yb3cgLnFkbmFwcm8tZXZlbnQtY2FyZCB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4ucWRuYXByby1hZ2VuZGEtbGlzdF9fZW1wdHkge1xuICBwYWRkaW5nOiAyNHB4IDE2cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMThweDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjcyODApO1xufVxuIiwiLy8gcWRuYXByby1hbGVydCDigJQgcGVyc2lzdGVudCBpbi1wYWdlIHN0YXR1cyBiYW5uZXIgKG5vdCBhIHRvYXN0KS5cbi8vIFFETkEgdG9rZW5zIHVzZWQgKHNhbWUgc2lnbmFsLWNvbG91ciBmYW1pbGllcyBhcyBldmVudC1jYXJkIC8gYW5zd2VyLWJ1dHRvbiAvXG4vLyB0b2FzdCwgc28gYWxlcnQgcmVhZHMgYXMgdGhlIHNhbWUgdmlzdWFsIGxhbmd1YWdlIGV2ZXJ5d2hlcmUpOlxuLy8gICBlcnJvciAgIGJnIHZhcigtLWMtc2lnbmFsLXJlZC1iZykgICAgICNmZWUzZTMgICB0ZXh0L2JvcmRlciB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCkgICAgICNjNjVhNWFcbi8vICAgd2FybmluZyBiZyB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LWJnKSAjZmZmM2NkICAgdGV4dCB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LXRleHQpICM5YTZhMTAgIGJvcmRlciB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LWJvcmRlcikgI2YwZDA2MFxuLy8gICBzdWNjZXNzIGJnIHZhcigtLWMtc2lnbmFsLWdyZWVuLWJnKSAgICNjNWY1ZTIgICB0ZXh0L2JvcmRlciB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0KSAgICM0MjhiNmVcbi8vICAgbmV1dHJhbCBiZyB2YXIoLS1jLWdyZXktNTApICAgICAgICAgICAjZjBmMWYyICAgdGV4dCB2YXIoLS1jLWdyZXktNjAwKSAjNTY1YjY2ICBib3JkZXIgdmFyKC0tYy1ncmV5LTIwMCkgI2QxZDVkYlxuLy8gICBpbmZvICAgIGJnIHZhcigtLWMtc2lnbmFsLWJsdWUtYmcpICAgICNlNmVmZjkgICB0ZXh0L2JvcmRlciB2YXIoLS1jLXNpZ25hbC1ibHVlLXRleHQpICAgICM2YThhYjRcbi8vIEV2ZXJ5IHR5cGUgPSAzIHZhcmlhYmxlIG92ZXJyaWRlcyAoYmcvdGV4dC9ib3JkZXIpOyBGTEFUIENTUywgbm8gbmVzdGluZyAtXG4vLyB0aGUgUFdBIHYyLWNvbXBvbmVudCBydW50aW1lIGV4cGVjdHMgZmxhdCBjb21waWxlZCBzZWxlY3RvcnMuXG5cbi5xZG5hcHJvLWFsZXJ0IHtcbiAgLy8gTmV1dHJhbCAoZGVmYXVsdCkgc3VyZmFjZVxuICAtLWFsZXJ0LWJnOiAgICAgdmFyKC0tYy1ncmV5LTUwLCAjZjBmMWYyKTtcbiAgLS1hbGVydC10ZXh0OiAgIHZhcigtLWMtZ3JleS02MDAsICM1NjViNjYpO1xuICAtLWFsZXJ0LWJvcmRlcjogdmFyKC0tYy1ncmV5LTIwMCwgI2QxZDVkYik7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgLy8gVmVydGljYWxseSBjZW50ZXJlZCByb3c6IGEgc2luZ2xlLWxpbmUgYWxlcnQgcmVhZHMgd2l0aCBpY29uLCB0ZXh0IGFuZFxuICAvLyBkaXNtaXNzIFggb24gb25lIHZpc3VhbCBsaW5lIChLaW0gMDkuMDcpOyBtdWx0aS1saW5lIGFsZXJ0cyBjZW50ZXIgdGhlXG4gIC8vIGljb24vWCBhZ2FpbnN0IHRoZSB3aG9sZSB0ZXh0IGJsb2NrLCBzYW1lIGZlZWwgYXMgcWRuYXByby10b2FzdC5cbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMTRweCAxNnB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTMsIDEycHgpO1xuICAvLyBCb3JkZXIgcmVhZHMgYXMgYSBzb2Z0IHRpbnQgb2YgdGhlIHRleHQgY29sb3VyLCBub3QgYSBmdWxsLXN0cmVuZ3RoIGxpbmUgLVxuICAvLyBzYW1lIFwiMXB4IGJvcmRlciBkZWZpbmVzIHRoZSBlZGdlIG9uIGEgbGlnaHQtb24tbGlnaHQgc3VyZmFjZVwiIGlkZWEgYXMgdGhlXG4gIC8vIHFkbmFwcm8tdG9hc3QgeWVsbG93L3JlZCB2YXJpYW50cy5cbiAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFsZXJ0LWJvcmRlcikgNDUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFsZXJ0LWJnKTtcbiAgY29sb3I6IHZhcigtLWFsZXJ0LXRleHQpO1xuICBmb250LWZhbWlseTogdmFyKC0tZmYsIFwiSW50ZXJcIiwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZik7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5xZG5hcHJvLWFsZXJ0LS1lcnJvciB7XG4gIC0tYWxlcnQtYmc6ICAgICB2YXIoLS1jLXNpZ25hbC1yZWQtYmcsICNmZWUzZTMpO1xuICAtLWFsZXJ0LXRleHQ6ICAgdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xuICAtLWFsZXJ0LWJvcmRlcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xufVxuLnFkbmFwcm8tYWxlcnQtLXdhcm5pbmcge1xuICAtLWFsZXJ0LWJnOiAgICAgdmFyKC0tYy13YXJuaW5nLWJyaWdodC1iZywgI2ZmZjNjZCk7XG4gIC0tYWxlcnQtdGV4dDogICB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LXRleHQsICM5YTZhMTApO1xuICAtLWFsZXJ0LWJvcmRlcjogdmFyKC0tYy13YXJuaW5nLWJyaWdodC1ib3JkZXIsICNmMGQwNjApO1xufVxuLnFkbmFwcm8tYWxlcnQtLXN1Y2Nlc3Mge1xuICAtLWFsZXJ0LWJnOiAgICAgdmFyKC0tYy1zaWduYWwtZ3JlZW4tYmcsICNjNWY1ZTIpO1xuICAtLWFsZXJ0LXRleHQ6ICAgdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCwgIzQyOGI2ZSk7XG4gIC0tYWxlcnQtYm9yZGVyOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0LCAjNDI4YjZlKTtcbn1cbi5xZG5hcHJvLWFsZXJ0LS1pbmZvIHtcbiAgLS1hbGVydC1iZzogICAgIHZhcigtLWMtc2lnbmFsLWJsdWUtYmcsICNlNmVmZjkpO1xuICAtLWFsZXJ0LXRleHQ6ICAgdmFyKC0tYy1zaWduYWwtYmx1ZS10ZXh0LCAjNmE4YWI0KTtcbiAgLS1hbGVydC1ib3JkZXI6IHZhcigtLWMtc2lnbmFsLWJsdWUtdGV4dCwgIzZhOGFiNCk7XG59XG5cbi5xZG5hcHJvLWFsZXJ0X19pY29uIHtcbiAgZmxleDogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1hbGVydC10ZXh0KTtcbn1cbi5xZG5hcHJvLWFsZXJ0X19pY29uIHFkbmFwcm8taWNvbiB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5xZG5hcHJvLWFsZXJ0X19tYWluIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDhweCAxNnB4O1xufVxuXG4ucWRuYXByby1hbGVydF9fY29udGVudCB7XG4gIGZsZXg6IDEgMSAyMjBweDtcbiAgbWluLXdpZHRoOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDJweDtcbn1cblxuLnFkbmFwcm8tYWxlcnRfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMS4zNTtcbiAgY29sb3I6IHZhcigtLWFsZXJ0LXRleHQpO1xufVxuXG4ucWRuYXByby1hbGVydF9fYm9keSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDU7XG4gIGNvbG9yOiB2YXIoLS1hbGVydC10ZXh0KTtcbn1cbi8vIEJvZHkgdGV4dCBpcyBkZWxpYmVyYXRlbHkgTk9UIG11dGVkL29wYWNpdHktcmVkdWNlZCAtIHRoZSB3aG9sZSBjYXJkIGlzXG4vLyBhbHJlYWR5IGEgc29mdCB0aW50LCBzbyB0aGUgdHlwZSBjb2xvdXIgc3RheXMgdGhlIHNpbmdsZSBzb3VyY2Ugb2YgZW1waGFzaXMuXG5cbi5xZG5hcHJvLWFsZXJ0X19hY3Rpb24ge1xuICBmbGV4OiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4vLyBBY3Rpb24gYnV0dG9ucyBpbnNpZGUgYW4gYWxlcnQgYWRhcHQgdG8gdGhlIGFsZXJ0J3MgY29sb3VyIGZhbWlseSBpbnN0ZWFkIG9mXG4vLyBjbGFzaGluZyB3aXRoIGl0IChLaW0gMDkuMDc6IGEgbGlsYWMgc3VidGxlIGJ1dHRvbiBvbiB0aGUgeWVsbG93IHdhcm5pbmdcbi8vIHN1cmZhY2UgcmVhZHMgYXMgYSBmb3JlaWduIGVsZW1lbnQpLiBPbmUgcnVsZSBjb3ZlcnMgYWxsIGZpdmUgdHlwZXMgYmVjYXVzZVxuLy8gaXQgZGVyaXZlcyBmcm9tIHRoZSBzYW1lIC0tYWxlcnQtdGV4dCBjdXN0b20gcHJvcCB0aGUgdHlwZSBtb2RpZmllcnMgc2V0O1xuLy8gdGhlIGV4dHJhIGFuY2VzdG9yIGluIHRoZSBzZWxlY3RvciBvdXRyYW5rcyB0aGUgYnV0dG9uJ3Mgb3duIHR5cGUgY2xhc3Nlcy5cbi5xZG5hcHJvLWFsZXJ0IC5xZG5hcHJvLWFsZXJ0X19hY3Rpb24gLnFkbmFwcm8tYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFsZXJ0LXRleHQpIDEyJSwgdHJhbnNwYXJlbnQpO1xuICBjb2xvcjogdmFyKC0tYWxlcnQtdGV4dCk7XG59XG5cbi5xZG5hcHJvLWFsZXJ0IC5xZG5hcHJvLWFsZXJ0X19hY3Rpb24gLnFkbmFwcm8tYnV0dG9uOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hbGVydC10ZXh0KSAyMCUsIHRyYW5zcGFyZW50KTtcbn1cblxuLnFkbmFwcm8tYWxlcnQgLnFkbmFwcm8tYWxlcnRfX2FjdGlvbiAucWRuYXByby1idXR0b246YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hbGVydC10ZXh0KSAyNiUsIHRyYW5zcGFyZW50KTtcbn1cblxuLnFkbmFwcm8tYWxlcnRfX2Rpc21pc3Mge1xuICBmbGV4OiBub25lO1xuICBtYXJnaW46IDAgLTZweCAwIDA7XG59XG5cbi8vIERpc21pc3MgWCBhZGFwdHMgdG8gdGhlIGFsZXJ0J3MgY29sb3VyIGZhbWlseSwgc2FtZSBydWxlIGFzIHRoZSBhY3Rpb25cbi8vIGJ1dHRvbiBhYm92ZSAoS2ltIDA5LjA3OiB0aGUgZGVmYXVsdCBkYXJrIFggcmVhZCBhcyBhIGZvcmVpZ24gZWxlbWVudCBvblxuLy8gdGhlIHRpbnRlZCBzdXJmYWNlcykuIEV4dHJhIGFuY2VzdG9yIG91dHJhbmtzIHRoZSBpY29uLWJ0biB0eXBlIGNsYXNzZXMuXG4ucWRuYXByby1hbGVydCAucWRuYXByby1hbGVydF9fZGlzbWlzcy5xZG5hcHJvLWljb24tYnRuIHtcbiAgY29sb3I6IHZhcigtLWFsZXJ0LXRleHQpO1xufVxuXG4ucWRuYXByby1hbGVydCAucWRuYXByby1hbGVydF9fZGlzbWlzcy5xZG5hcHJvLWljb24tYnRuOmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFsZXJ0LXRleHQpIDE1JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4vLyBDb21wYWN0IOKAlCB0aWdodGVyIHBhZGRpbmcvdHlwb2dyYXBoeSBmb3IgdXNlIGluc2lkZSBtb2RhbHMgYW5kIGRlbnNlIGxpc3RzXG4vLyAoZS5nLiB0aGUgZmxvd2VkaXRvciBub2RlLW9wdGlvbnMgcGFuZWwpLlxuLnFkbmFwcm8tYWxlcnQtLWNvbXBhY3Qge1xuICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gIGdhcDogOHB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTIsIDhweCk7XG59XG4ucWRuYXByby1hbGVydC0tY29tcGFjdCAucWRuYXByby1hbGVydF9faWNvbiBxZG5hcHJvLWljb24ge1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xufVxuLnFkbmFwcm8tYWxlcnQtLWNvbXBhY3QgLnFkbmFwcm8tYWxlcnRfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuLnFkbmFwcm8tYWxlcnQtLWNvbXBhY3QgLnFkbmFwcm8tYWxlcnRfX2JvZHkge1xuICBmb250LXNpemU6IDEycHg7XG59XG4ucWRuYXByby1hbGVydC0tY29tcGFjdCAucWRuYXByby1hbGVydF9fbWFpbiB7XG4gIGdhcDogNnB4IDEycHg7XG59XG4iLCIvLyDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbi8vIHFkbmFwcm8tYW5zd2VyLW9wdGlvbiAg4oCUICBBbnN3ZXIgb3B0aW9uIHJvdyAoZmxvdy1lZGl0b3Igbm9kZSBtb2RhbClcbi8vIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuLy9cbi8vIEV4dHJhY3RlZCAxOjEgZnJvbSB0aGUgbGl2ZSBmbG93ZWRpdG9yIC5mZS1hbnN3ZXItKiByb3cgYW5kIG5hbWVzcGFjZWRcbi8vIGFzIGEgcmV1c2FibGUgY29tcG9uZW50LiBJZGxlIC8gaG92ZXIgLyBwcmVzc2VkIC8gZHJhZ2dpbmcgLyBlZGl0aW5nIC9cbi8vIGNvbmZpcm0tZGVsZXRlIC8gY29uZmlybS11bmxpbmsgLyB1bmxpbmtlZCBzdGF0ZXMuXG4vL1xuLy8gU3RhdGVzIHRoYXQgZXhpc3QgaW4gdGhlIGxpdmUgZmxvd2VkaXRvciB0b2RheTogaWRsZSwgaG92ZXIsIGVkaXRpbmdcbi8vIChpbnB1dCA6Zm9jdXMpLCBjb25maXJtLWRlbGV0ZSwgY29uZmlybS11bmxpbmssIHVubGlua2VkLlxuLy8gTkVXIGhlcmUgKGRlc2lnbmVkIHRvIHJvdW5kIG91dCB0aGUgY29tcG9uZW50IHNwZWMpOiBwcmVzc2VkLCBkcmFnZ2luZy5cblxuLnFkbmFwcm8tYW5zd2VyLW9wdGlvbiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZC1ob3Zlcik7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgbWluLWhlaWdodDogMzhweDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMTQwbXMsIGJveC1zaGFkb3cgMTQwbXMsIHRyYW5zZm9ybSAxMjBtcywgYmFja2dyb3VuZCAxNDBtcztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjtcblxuICAgICosICo6OmJlZm9yZSwgKjo6YWZ0ZXIgeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbiAgICAvLyDilIDilIAgSG92ZXI6IHJldmVhbCB0aGUgYWN0aW9uIGJ1dHRvbnMg4pSA4pSAXG4gICAgLy8gLi0tc2hvdy1hY3Rpb25zIGxldHMgYSBwYXJlbnQgLyB0aGUgbGlicmFyeSBmb3JjZSB0aGUgaG92ZXIgbG9vay5cbiAgICAmOmhvdmVyLFxuICAgICYtLXNob3ctYWN0aW9ucyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1jaGlwLWJyaWdodC1ibHVlLTItaG92ZXIpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSg2NCwgNzMsIDE1NCwgMC4xMCk7XG5cbiAgICAgICAgLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fZHJhZyAgICB7IG9wYWNpdHk6IDE7IH1cbiAgICAgICAgLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fYWN0aW9ucyB7IG9wYWNpdHk6IDE7IHBvaW50ZXItZXZlbnRzOiBhbGw7IH1cbiAgICAgICAgLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fYWN0ICAgICB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IG9wYWNpdHk6IDE7IH1cbiAgICB9XG5cbiAgICAvLyBEcmFnZ2FibGUgcm93czogbWFrZSByb29tIG9uIHRoZSBsZWZ0IHNvIHRoZSBsYWJlbCBjbGVhcnMgdGhlIGFjY2VudCBiYXIuXG4gICAgJi0tZHJhZ2dhYmxlIC5xZG5hcHJvLWFuc3dlci1vcHRpb25fX2xhYmVsIHsgcGFkZGluZy1sZWZ0OiAxNHB4OyB9XG5cbiAgICAvLyDilIDilIAgUHJlc3NlZDogcm93IGhlbGQgZG93biAoTkVXKSDilIDilIBcbiAgICAmLS1wcmVzc2VkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtMi1ob3Zlcik7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSk7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDNweCByZ2JhKDY0LCA3MywgMTU0LCAwLjEyKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7XG4gICAgfVxuXG4gICAgLy8g4pSA4pSAIERyYWdnaW5nOiBsaWZ0ZWQgd2hpbGUgcmVvcmRlcmluZyAoTkVXKSDilIDilIBcbiAgICAmLS1kcmFnZ2luZyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDI2cHggcmdiYSgyMCwgMjQsIDYwLCAwLjIyKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAxNSk7XG4gICAgICAgIHotaW5kZXg6IDU7XG5cbiAgICAgICAgLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fZHJhZyB7IG9wYWNpdHk6IDE7IH1cbiAgICB9XG5cbiAgICAvLyDilIDilIAgVW5saW5rZWQ6IGFtYmVyIHRpbnQg4pSA4pSAXG4gICAgJi0tdW5saW5rZWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtd2FybmluZy1icmlnaHQtYm9yZGVyKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgICB9XG5cbiAgICAvLyDilIDilIAgQ29uZmlybWluZyBkZWxldGU6IHJlZCB0aW50IChkZXN0cnVjdGl2ZSkg4pSA4pSAXG4gICAgJi0tY29uZmlybWluZyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1jaGlwLXJlZC0yLWJnKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtcmVkLXNvZnQpO1xuICAgIH1cblxuICAgIC8vIOKUgOKUgCBDb25maXJtaW5nIHVubGluazogeWVsbG93L2FtYmVyIHRpbnQgKGdlbnRsZSDigJQgbm90IGRlc3RydWN0aXZlKSDilIDilIBcbiAgICAmLS1jb25maXJtaW5nLXVubGluayB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy13YXJuaW5nLWJyaWdodC1ib3JkZXIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIH1cblxuICAgIC8vIOKUgOKUgCBTZW1hbnRpYyBvcHRpb24gY29sb3VyIChNZWVya2V1emUgcGVyLW9wdGlvbiBhcHBlYXJhbmNlLCBGYXNlIDUsXG4gICAgLy8gMTEuMDcuMjAyNikg4oCUIGEgY2xvc2VkIHBhbGV0dGUgKHN0YW5kYWFyZC9wb3NpdGllZi93YWFyc2NodXdpbmcvbmVnYXRpZWYvXG4gICAgLy8gYWZ3aWprZW5kKSwgbmV2ZXIgYSBmcmVlIGNvbG91ciBwaWNrZXIuIERlbGliZXJhdGVseSB0aW50cyBPTkxZIHRoZSBpY29uXG4gICAgLy8gYmFkZ2UgKC0tYW5zd2VyLW9wdGlvbi1hY2NlbnQtKiksIG5ldmVyIHRoZSByb3cncyBvd24gYm9yZGVyL2JhY2tncm91bmQg4oCUXG4gICAgLy8gdGhvc2UgYXJlIG93bmVkIGJ5IHRoZSBzdHJ1Y3R1cmFsIHN0YXRlcyBhYm92ZSAodW5saW5rZWQvY29uZmlybWluZy9cbiAgICAvLyBkcmFnZ2luZykgYW5kIG11c3Qga2VlcCB3aW5uaW5nLiBTYW1lIFwic2VtYW50aWNzIG5ldmVyIGZpZ2h0IHN0YXRlXCIgcnVsZVxuICAgIC8vIGFzIHRoZSByZXN0IG9mIHRoaXMgY29tcG9uZW50LiBNaXJyb3JzIHRoZSAtLWV2ZW50LWNhcmQtKiB0b2tlbi1vdmVycmlkZVxuICAgIC8vIHBhdHRlcm4gKDIgdmFyaWFibGVzIHBlciB2YXJpYW50KS4gXCJzdGFuZGFhcmRcIiAobm8gYXR0cmlidXRlKSA9IG5vIGFjY2VudCxcbiAgICAvLyB0aGUgaWNvbiBiYWRnZSBrZWVwcyBpdHMgbmV1dHJhbCBwdXJwbGUgZGVmYXVsdC5cbiAgICAtLWFuc3dlci1vcHRpb24tYWNjZW50LWJnOiAgIHZhcigtLWMtcHVycGxlLTUwLCAjZTZlOWZmKTtcbiAgICAtLWFuc3dlci1vcHRpb24tYWNjZW50LXRleHQ6IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG5cbiAgICAmLS1jb2xvci1wb3NpdGl2ZSB7XG4gICAgICAgIC0tYW5zd2VyLW9wdGlvbi1hY2NlbnQtYmc6ICAgdmFyKC0tYy1zaWduYWwtZ3JlZW4tYmcsICNjNWY1ZTIpO1xuICAgICAgICAtLWFuc3dlci1vcHRpb24tYWNjZW50LXRleHQ6IHZhcigtLWMtc2lnbmFsLWdyZWVuLXRleHQsICM0MjhiNmUpO1xuICAgIH1cbiAgICAmLS1jb2xvci13YXJuaW5nIHtcbiAgICAgICAgLS1hbnN3ZXItb3B0aW9uLWFjY2VudC1iZzogICB2YXIoLS1jLXNpZ25hbC15ZWxsb3ctYmcsICNmZWVkYjgpO1xuICAgICAgICAtLWFuc3dlci1vcHRpb24tYWNjZW50LXRleHQ6IHZhcigtLWMtc2lnbmFsLXllbGxvdy10ZXh0LCAjYmY3MjAyKTtcbiAgICB9XG4gICAgJi0tY29sb3ItbmVnYXRpdmUge1xuICAgICAgICAtLWFuc3dlci1vcHRpb24tYWNjZW50LWJnOiAgIHZhcigtLWMtc2lnbmFsLXJlZC1iZywgI2ZlZTNlMyk7XG4gICAgICAgIC0tYW5zd2VyLW9wdGlvbi1hY2NlbnQtdGV4dDogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xuICAgIH1cbiAgICAmLS1jb2xvci1uZXV0cmFsX2FsdCB7XG4gICAgICAgIC0tYW5zd2VyLW9wdGlvbi1hY2NlbnQtYmc6ICAgdmFyKC0tYy1zaWduYWwtYmx1ZS1iZywgI2U2ZWZmOSk7XG4gICAgICAgIC0tYW5zd2VyLW9wdGlvbi1hY2NlbnQtdGV4dDogdmFyKC0tYy1zaWduYWwtYmx1ZS10ZXh0LCAjNmE4YWI0KTtcbiAgICB9XG5cbiAgICAvLyDilIDilIAgQ3Jvc3MtY2hlY2sgbWFyay1tb2RlICgyNS4wOC4yMDI2KSDilIDilIBcbiAgICAvLyBPcHQtaW4gc3RhbmQgZm9yIFB1bHNlLXN0eWxlIG9wdGlvbiBsaXN0cyB0aGF0IGRvbid0IHVzZSB0aGUgZmxvdy1lZGl0b3Inc1xuICAgIC8vIGBjb3JyZWN0YWJsZWAgcmFkaW8uIGAtLWNyb3NzLWNoZWNrYCBvbmx5IHdpZGVucyB0aGUgdHJhbnNpdGlvbi10aW1pbmdcbiAgICAvLyBmb3IgVEhJUyByb3cgdG8gfjIwMG1zIChzZWUgdGhlIGNhcmQpIOKAlCBpdCBkZWxpYmVyYXRlbHkgZG9lcyBub3QgdG91Y2hcbiAgICAvLyBvdGhlciByb3dzJyAxNDBtcyBiYXNlIHRyYW5zaXRpb24sIHNvIGBjb3JyZWN0YWJsZWAgLyBmbG93LWVkaXRvciByb3dzXG4gICAgLy8gYXJlIGJ5dGUtaWRlbnRpY2FsIHdpdGhvdXQgdGhpcyBhdHRyaWJ1dGUuIFRoZSByb3cgdGludCByZXVzZXMgdGhlIFNBTUVcbiAgICAvLyBzdWNjZXNzIHRva2VucyBhcyBgLS1jb2xvci1wb3NpdGl2ZWAgYWJvdmUgKG5vIG5ldyBoZXggaW50cm9kdWNlZCkuXG4gICAgJi0tY3Jvc3MtY2hlY2sge1xuICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMjAwbXMsIGJveC1zaGFkb3cgMjAwbXMsIHRyYW5zZm9ybSAyMDBtcywgYmFja2dyb3VuZCAyMDBtcztcbiAgICB9XG5cbiAgICAmLS1tYXJrZWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtc3VjY2Vzcy01MDAsICMxMjgwNWUpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi1iZywgI2M1ZjVlMik7XG4gICAgfVxuXG4gICAgLy8gTk9URSAoY2FyZCAxOSwgMjUuMDguMjAyNik6IHRoZSBcIndyb25nIG9uY2Ugc29tZXRoaW5nIGlzIG1hcmtlZFwiIHN0YXRlXG4gICAgLy8gKGBtYXJrLWRlY2lkZWRgIG9uIHRoZSBob3N0LCBgLmlzLXdyb25nYCBvbiB0aGUgY3Jvc3MtY2hlY2sgYnV0dG9uXG4gICAgLy8gYmVsb3cpIGRlbGliZXJhdGVseSBnZXRzIE5PIHJvdy1sZXZlbCBtb2RpZmllci90aW50IGhlcmUuIE9ubHkgdGhlXG4gICAgLy8gYnV0dG9uIGl0c2VsZiB0dXJucyByZWQg4oCUIHNlZSB0aGUgYC5pcy13cm9uZ2AgY29tbWVudCBvblxuICAgIC8vIGAucWRuYXByby1hbnN3ZXItb3B0aW9uX19tYXJrYCBiZWxvdyBmb3Igd2h5IGEgZnVsbCByZWQgUk9XIHBlciB3cm9uZ1xuICAgIC8vIG9wdGlvbiB3YXMgcmVqZWN0ZWQgKGEgXCJibG9vZGJhdGhcIiB3aXRoIHNldmVyYWwgb3B0aW9ucykuXG59XG5cbi8vIERyYWcgaGFuZGxlID0gcHVycGxlIGFjY2VudCBiYXIsIHJldmVhbGVkIG9uIGhvdmVyLlxuLy8gSWRlbnRpY2FsIGFmZm9yZGFuY2UgdG8gcWRuYXByby1hY3Rpdml0eS1yb3cgLnJvdy1hY2NlbnQtYmFyIC9cbi8vIHNlY3Rpb24taGVhZGVyIC5zaC1kcmFnIChhYnNvbHV0ZSwgbGVmdDo0cHgsICM0NjUyZjMsIG9wYWNpdHkgMCAtPiAxKS5cbi5xZG5hcHJvLWFuc3dlci1vcHRpb25fX2RyYWcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA0cHg7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHdpZHRoOiA0cHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYWN0aW9uLTUwMCk7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBlYXNlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDE7XG59XG5cbi8vIOKUgOKUgCBDcm9zcy1jaGVjayBtYXJrIHRvZ2dsZSAobWFyay1tb2RlPVwiY3Jvc3MtY2hlY2tcIiwgMjUuMDguMjAyNikg4pSA4pSAXG4vLyBBIHJvdW5kIGJ1dHRvbiBCRUZPUkUgdGhlIGFuc3dlciB0ZXh0OiBncmV5IGNyb3NzIHdoZW4gdW5tYXJrZWQsIGdyZWVuXG4vLyBjaGVjayB3aGVuIGBtYXJrZWRgLiBTaXRzIGF0IHRoZSBmcm9udCBvZiB0aGUgZmxleCByb3cgKHRoZSBkcmFnIGhhbmRsZSBpc1xuLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkLCBzbyBpdCBkb2Vzbid0IHRha2UgZmxvdyBzcGFjZSDigJQgdGhpcyBidXR0b24gSVMgdGhlXG4vLyBsZWZ0bW9zdCB0aGluZyBpbiB0aGUgcm93J3MgZmxvdykuIEluZGVwZW5kZW50IG9mIGBjb3JyZWN0YWJsZWAncyByYWRpb1xuLy8gKHdoaWNoIGxpdmVzIGF0IHRoZSBFTkQgb2YgdGhlIHJvdyBhbmQgbmVlZHMgcWRuYS1yYWRpby5qcyk7IHRoaXMgdG9nZ2xlXG4vLyBpcyBpbmxpbmUgU1ZHIG9ubHksIG5vIGNvbXBvbmVudCBkZXBlbmRlbmN5LiBCb3RoIGljb25zIHN0YXkgaW4gdGhlIERPTVxuLy8gYW5kIGNyb3NzLWZhZGUgdmlhIG9wYWNpdHkvdHJhbnNmb3JtIHNvIHRoZSBzd2FwIGNhbiBhbmltYXRlIOKAlCBzZWUgdGhlXG4vLyBgbWFya2VkYCBndWFyZCBpbiB0aGUgSlMgZm9yIHdoeSB0aGUgY2xpY2sgdG9nZ2xlcyBgLmlzLW1hcmtlZGAgZGlyZWN0bHlcbi8vIGluc3RlYWQgb2YgZ29pbmcgdGhyb3VnaCBhIGZ1bGwgcmUtcmVuZGVyLlxuLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fbWFyayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMjJweDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDIwMG1zIGVhc2UsIGJvcmRlci1jb2xvciAyMDBtcyBlYXNlLCBjb2xvciAyMDBtcyBlYXNlO1xuXG4gICAgLy8gQm9vdHN0cmFwIHppdCBvcCBlbGtlIHYxLXBhZ2luYSBlbiB6ZXQgYGJ1dHRvbjpmb2N1cyB7IG91dGxpbmU6IDVweCBhdXRvXG4gICAgLy8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yIH1gIOKAlCBlZW4gQkxBVVdFIHJpbmcgb20gZGl0IGtub3BqZSB6b2RyYSBqZSBlcm9wXG4gICAgLy8ga2xpa3QsIGR3YXJzIGRvb3IgZGUgZ3JvZW4vcm9vZC10YWFsIGhlZW4gKEtpbSwgMjUuMDguMjAyNikuIEFsbGVlblxuICAgIC8vIGA6Zm9jdXMtdmlzaWJsZWAgYWZoYW5kZWxlbiBpcyBuaWV0IGdlbm9lZzogZWVuIGVjaHRlIG11aXNrbGlrIHpldCB3w6lsXG4gICAgLy8gYDpmb2N1c2AsIGR1cyBkaWUgbW9ldCBleHBsaWNpZXQgdWl0ICh6aWUgb29rIGRlIGJvb3RzdHJhcC1ub3RpdGllIGJpalxuICAgIC8vIC5wdWxzZS10eXBlLWNhcmQgaW4gX3B1bHNlLnNjc3MpLiBEZSB0b2V0c2VuYm9yZC1yaW5nIGtvbXQgdGVydWcgaW4gZGVcbiAgICAvLyBFSUdFTiBrbGV1ciB2YW4gZGUgc3RhbmQgdmlhIGN1cnJlbnRDb2xvciDigJQgbm9vaXQgYmxhdXcuXG4gICAgJjpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IH1cblxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCBjb2xvci1taXgoaW4gc3JnYiwgY3VycmVudENvbG9yIDM1JSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cblxuICAgIHN2ZyB7IHdpZHRoOiAxMnB4OyBoZWlnaHQ6IDEycHg7IH1cblxuICAgICYuaXMtbWFya2VkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXN1Y2Nlc3MtNTAwLCAjMTI4MDVlKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtZ3JlZW4tYmcsICNjNWY1ZTIpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCwgIzQyOGI2ZSk7XG4gICAgfVxuXG4gICAgLy8g4pSA4pSAIFwiRm91dCB6b2RyYSBlciBlZW4ganVpc3QgaXNcIiAoY2FyZCAxOSwgMjUuMDguMjAyNiwgS2ltIG5hIHZpc3VlbGVcbiAgICAvLyByZXZpZXcpIOKAlCBtaXJyb3JzIGAuaXMtbWFya2VkYCBhYm92ZSAxOjEgd2l0aCB0aGUgcmVkIHNpZGUgb2YgdGhlIFNBTUVcbiAgICAvLyBzaWduYWwtdG9rZW4gcGFpciAoLS1jLXNpZ25hbC1yZWQtKiAvIC0tYy13YXJuLXJlZC01MDApIGluc3RlYWQgb2YgdGhlXG4gICAgLy8gZ3JlZW4gb25lLCBzbyB0aGUgdHdvIHN0YXRlcyByZWFkIGFzIG9uZSBjbG9zZWQgcGFpciwgbm90IHR3byByYW5kb21cbiAgICAvLyBjaG9pY2VzLiBgLS1jLXdhcm4tcmVkLTUwMGAgb24gdGhlIGJvcmRlciAodGhlIFwic3ByZWtlbmRlIGxpam5cIiwgc2FtZVxuICAgIC8vIFJPTEUgYC0tYy1zdWNjZXNzLTUwMGAgcGxheXMgZm9yIGdyZWVuKSB3aXRoIHRoZSBzb2Z0XG4gICAgLy8gYC0tYy1zaWduYWwtcmVkLWJnYC9gLS1jLXNpZ25hbC1yZWQtdGV4dGAgZmlsbCDigJQgbmV2ZXIgYSBuZXcgaGV4LCBhbmRcbiAgICAvLyBuZXZlciBvbiB0aGUgcm93IGl0c2VsZiAoc2VlIHRoZSBgLS1tYXJrLWRlY2lkZWRgIG5vdGUgbmVhclxuICAgIC8vIGAucWRuYXByby1hbnN3ZXItb3B0aW9uYCBhYm92ZSk6IHdpdGggdXAgdG8gYE9QVF9NQVhgIHJvd3MgYSBmdWxseVxuICAgIC8vIHRpbnRlZCByZWQgUk9XIHBlciB3cm9uZyBvcHRpb24gcmVhZHMgYXMgYSBcImJsb29kYmF0aFwiLCB0aGUgYnV0dG9uXG4gICAgLy8gYWxvbmUgaXMgZW5vdWdoIG9mIGEgY3VlIG9uY2UgdGhlIHNpbmdsZSBncmVlbiByb3cgYWxyZWFkeSBzdGFuZHMgb3V0LlxuICAgIC8vIFNldCBieSB0aGUgSlMgb25seSB3aGVuIGBtYXJrLWRlY2lkZWRgIGlzIHByZXNlbnQgQU5EIHRoaXMgcm93IGlzIE5PVFxuICAgIC8vIGBtYXJrZWRgIChzZWUgYF9zeW5jTWFya0RlY2lkZWRgL2BtYXJrV3JvbmdgIHRoZXJlKSDigJQgYC5pcy1tYXJrZWRgXG4gICAgLy8gYWJvdmUgYWx3YXlzIHdpbnMsIHNvIHRoZSB0d28gY2xhc3NlcyBuZXZlciBhcHBseSB0b2dldGhlci5cbiAgICAmLmlzLXdyb25nIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXdhcm4tcmVkLTUwMCwgI2RjMjYyNik7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLXJlZC1iZywgI2ZlZTNlMyk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCwgI2M2NWE1YSk7XG4gICAgfVxufVxuXG4ucWRuYXByby1hbnN3ZXItb3B0aW9uLS1kcmFnZ2FibGUgLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fbWFyayB7IG1hcmdpbi1sZWZ0OiAxNHB4OyB9XG5cbi5xZG5hcHJvLWFuc3dlci1vcHRpb25fX21hcmstaWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UsIHRyYW5zZm9ybSAyMDBtcyBlYXNlO1xufVxuXG4ucWRuYXByby1hbnN3ZXItb3B0aW9uX19tYXJrLWljb24tLWNyb3NzIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBzY2FsZSgxKSByb3RhdGUoMCk7IH1cbi5xZG5hcHJvLWFuc3dlci1vcHRpb25fX21hcmstaWNvbi0tY2hlY2sgeyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHNjYWxlKDAuNSkgcm90YXRlKC00NWRlZyk7IH1cblxuLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fbWFyay5pcy1tYXJrZWQge1xuICAgIC5xZG5hcHJvLWFuc3dlci1vcHRpb25fX21hcmstaWNvbi0tY3Jvc3MgeyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHNjYWxlKDAuNSkgcm90YXRlKDQ1ZGVnKTsgfVxuICAgIC5xZG5hcHJvLWFuc3dlci1vcHRpb25fX21hcmstaWNvbi0tY2hlY2sgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHNjYWxlKDEpIHJvdGF0ZSgwKTsgfVxufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5xZG5hcHJvLWFuc3dlci1vcHRpb25fX21hcmssXG4gICAgLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fbWFyay1pY29uLFxuICAgIC5xZG5hcHJvLWFuc3dlci1vcHRpb24tLWNyb3NzLWNoZWNrIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG59XG5cbi8vIOKUgOKUgCBcIkp1aXN0XCIta2V1emUgKDEyLjA4LjIwMjYpIOKUgOKUgFxuLy8gVm9vciB0b2V0cy12cmFnZW4gd2FhciBwcmVjaWVzIMOpw6luIG9wdGllIGhldCBnb2VkZSBhbnR3b29yZCBpcyAoUHVsc2Vcbi8vIGtlbm5pc3ZyYWFnKS4gT3B0LWluIHZpYSBgY29ycmVjdGFibGVgOyB6b25kZXIgZGF0IGF0dHJpYnV1dCByZW5kZXJ0IGhldFxuLy8gY29tcG9uZW50IHByZWNpZXMgem9hbHMgaGllcnZvb3IsIGR1cyBkZSBmbG93LWVkaXRvciBtZXJrdCBlciBuaWV0cyB2YW4uXG4vL1xuLy8gU3RhYXQgYWFuIGhldCBFSU5EIHZhbiBkZSByaWosIG5hYXN0IGRlIGFjdGllcy4gVm9vcmFhbiBkdXdkZSBoaWogaGV0XG4vLyBhbnR3b29yZHZlbGQgNzJweCBuYWFyIHJlY2h0cyAoZ2VtZXRlbiksIHdhYXJkb29yIGRhdCB2ZWxkIG5pZXQgbWVlciB1aXRsaWpuZGVcbi8vIG1ldCB3YXQgZXJvbmRlciBzdGFhdCDigJQgaW4gUHVsc2UgaGV0IHVpdGxlZ3ZlbGQgcGVyIG9wdGllLiBBY2h0ZXJhYW4gYmVnaW50IGhldFxuLy8gYW50d29vcmR2ZWxkIG9wIGRlIGxpbmtlcnJhbmQgdmFuIGRlIHJpaiBlbiB2b3JtZW4gZGUgcmFkaW8ncyBub2cgc3RlZWRzIGh1blxuLy8gZWlnZW4gdWl0Z2VsaWpuZGUga29sb20uXG4ucWRuYXByby1hbnN3ZXItb3B0aW9uX19jb3JyZWN0IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHBhZGRpbmc6IDAgNHB4IDAgMTBweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuLy8gRGUgZ2Vrb3plbiByaWogYmVub2VtdCB6aWNoemVsZiBtZXQgS0xFVVIsIG5pZXQgbWV0IGVlbiB6d2FhcmRlciBnZXdpY2h0LlxuLy9cbi8vIOKaoO+4jyBCZXd1c3QgZ2VlbiBgZm9udC13ZWlnaHRgOiB2ZXR0ZXIgaXMgQlJFREVSLCBlbiBvbWRhdCBkaXQgYmxvayByZWNodHMgaW4gZGVcbi8vIHJpaiBzdGFhdCBzY2h1aWZ0IGRlIHJhZGlvIGRhbiBlZW4gcGl4ZWwgb2YgbWVlciBuYWFyIGxpbmtzIHpvZHJhIGVlbiByaWpcbi8vIGdla296ZW4gd29yZHQuIEluIGVlbiBrb2xvbSB2YW4gcmFkaW8ncyBpcyBkYXQgZGlyZWN0IHppY2h0YmFhciBhbHMgXCJkZVxuLy8ga25vcHBlbiBzdGFhbiBuaWV0IHJlY2h0IG9uZGVyIGVsa2FhclwiIChnZW1ldGVuOiA1MTUgdGVnZW4gNTE2IHB4LCBlbiBvcCBlZW5cbi8vIHJldGluYS1zY2hlcm0gdmFsdCBoZXQgc3RlcmtlciBvcCkuIERlIGdldnVsZGUgcmFkaW8gcGx1cyBkZSBtZXJra2xldXIgemlqblxuLy8gb25kZXJzY2hlaWQgZ2Vub2VnLiBbS2ltIDEyLjA4LjIwMjZdXG4vL1xuLy8gQWxsZWVuIGRlIFRFS1NUIGtsZXVydCwgbmlldCBkZSByaWpyYW5kIOKAlCBkaWUgaXMgdm9vciBkZSBiZXN0YWFuZGUgc3RhbmRlblxuLy8gKHVubGlua2VkLCBjb25maXJtLCBkcmFnZ2luZykuXG4ucWRuYXByby1hbnN3ZXItb3B0aW9uLS1jb3JyZWN0IC5xZG5hcHJvLWFuc3dlci1vcHRpb25fX2NvcnJlY3Qge1xuICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzUzNGFiNyk7XG59XG4vLyBEZSBncmVlcCB6aXQgYWJzb2x1dXQgbGlua3M7IGhldCBsYWJlbCBob3VkdCBkYWFyb20gemlqbiBub3JtYWxlXG4vLyBsaW5rZXJ2dWxsaW5nIChkaWUgZGUgLS1kcmFnZ2FibGUtcmVnZWwgaGllcmJvdmVuIGFsIHpldCksIHpvZGF0IHRla3N0IGVuIGdyZWVwXG4vLyBuaWV0IG92ZXIgZWxrYWFyIHZhbGxlbi4gR2VlbiBlaWdlbiByZWdlbCBtZWVyIG5vZGlnIHNpbmRzIGRlIHJhZGlvIGFjaHRlcmFhblxuLy8gc3RhYXQuXG5cbi8vIEVkaXRhYmxlIGxhYmVsXG4ucWRuYXByby1hbnN3ZXItb3B0aW9uX19sYWJlbCB7XG4gICAgZmxleDogMTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNzAwKTtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgcGFkZGluZzogOXB4IDZweDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIG1pbi13aWR0aDogMDtcblxuICAgICY6Zm9jdXMsXG4gICAgJi5pcy1lZGl0aW5nIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDEuNXB4IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gICAgfVxuXG4gICAgJltyZWFkb25seV0geyBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNDAwKTsgY3Vyc29yOiBkZWZhdWx0OyB9XG59XG5cbi8vIFJlYWQtb25seSBib2R5IHRleHQgZm9yIHRoZSBzaW5nbGUtcGF0aCB2YXJpYW50IChvcGVuIGFuc3dlciAvIFwiVm9sZ2VuZGVcbi8vIHN0YXBcIik6IHNhbWUgc2xvdCArIHR5cG9ncmFwaHkgYXMgdGhlIGVkaXRhYmxlIGxhYmVsLCBidXQgYSBzdGF0aWMgc3Bhbi5cbi5xZG5hcHJvLWFuc3dlci1vcHRpb25fX2xhYmVsLS1zdGF0aWMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAvLyBNdXRlZCB3aGVuIHNob3dpbmcgdGhlIGZhbGxiYWNrIChcIlZvbGdlbmRlIHN0YXBcIikgaW5zdGVhZCBvZiBhIHJlYWwgdGFyZ2V0LlxuICAgICYuaXMtZW1wdHkgeyBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkLXBwKTsgZm9udC1zdHlsZTogaXRhbGljOyB9XG59XG5cbi8vIFNpbmdsZS1wYXRoIHZhcmlhbnQ6IG9uZSBmaXhlZCBsaW5rLCBubyBkcmFnLCBubyBsYWJlbCwgbm8gZGVsZXRlLlxuLnFkbmFwcm8tYW5zd2VyLW9wdGlvbi0tc2luZ2xlIHtcbiAgICAvLyBOb3RoaW5nIHN0cnVjdHVyYWwgdG8gY2hhbmdlIOKAlCB0aGUgcm93IHJldXNlcyB0aGUgY2FyZCBjaHJvbWUuIFRoaXMgaG9va1xuICAgIC8vIGV4aXN0cyBmb3IgY29uc3VtZXJzL292ZXJyaWRlcyBhbmQgdG8gZG9jdW1lbnQgdGhlIHZhcmlhbnQgaW4gdGhlIGNhc2NhZGUuXG59XG5cbi8vIE9wdGlvbiBpY29uIOKAlCBzaXRzIGJlZm9yZSB0aGUgYm9keSB0ZXh0LiBTaW5nbGUgdmFyaWFudDogdGhlIHRhcmdldFxuLy8gbm9kZS10eXBlIGljb24gKHBsYWluLCBubyBiYWRnZSBjaHJvbWUpLiBOb3JtYWwgcm93IChNZWVya2V1emUgcGVyLW9wdGlvblxuLy8gYXBwZWFyYW5jZSwgRmFzZSA1KTogYSBzbWFsbCB0aW50ZWQgYmFkZ2Ugc28gdGhlIHNlbWFudGljIGNvbG91ciByZWFkcyBldmVuXG4vLyB3aXRob3V0IG9wZW5pbmcgdGhlIGFwcGVhcmFuY2UgcG9wb3Zlci4gWzExLjA3LjIwMjZdXG4ucWRuYXByby1hbnN3ZXItb3B0aW9uX19ub2RlLWljb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBjb2xvcjogdmFyKC0tYW5zd2VyLW9wdGlvbi1hY2NlbnQtdGV4dCwgIzQwNDk5YSk7XG59XG5cbi8vIFNpbmdsZSB2YXJpYW50OiBwbGFpbiBpY29uLCBubyBiYWRnZSBiYWNrZ3JvdW5kICh1bmNoYW5nZWQgbG9vaykuXG4ucWRuYXByby1hbnN3ZXItb3B0aW9uLS1zaW5nbGUgLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fbm9kZS1pY29uIHtcbiAgICBwYWRkaW5nOiAwIDJweCAwIDEwcHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4vLyBOb3JtYWwgcm93OiBzbWFsbCByb3VuZGVkIGJhZGdlLCB0aW50ZWQgdmlhIHRoZSBhY2NlbnQgdG9rZW5zIGFib3ZlLlxuLnFkbmFwcm8tYW5zd2VyLW9wdGlvbjpub3QoLnFkbmFwcm8tYW5zd2VyLW9wdGlvbi0tc2luZ2xlKSAucWRuYXByby1hbnN3ZXItb3B0aW9uX19ub2RlLWljb24ge1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMjJweDtcbiAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hbnN3ZXItb3B0aW9uLWFjY2VudC1iZywgI2U2ZTlmZik7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuLy8gRHJhZ2dhYmxlIHJvd3MgcmVzZXJ2ZSB0aGUgYWNjZW50IGJhcidzIHNwYWNlIChzYW1lIGNsZWFyYW5jZSB0aGUgbGFiZWxcbi8vIGFscmVhZHkgZ2V0cyB2aWEgJi0tZHJhZ2dhYmxlIGFib3ZlKSBzbyB0aGUgaWNvbiBiYWRnZSBkb2Vzbid0IHNpdCB1bmRlciBpdC5cbi5xZG5hcHJvLWFuc3dlci1vcHRpb24tLWRyYWdnYWJsZSAucWRuYXByby1hbnN3ZXItb3B0aW9uX19ub2RlLWljb24ge1xuICAgIG1hcmdpbi1sZWZ0OiAxNHB4O1xufVxuXG4vLyBDb25uZWN0aW9uIHBpbGxcbi5xZG5hcHJvLWFuc3dlci1vcHRpb25fX2Nvbm4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAzcHg7XG4gICAgcGFkZGluZzogM3B4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cbiAgICBzdmcgeyB3aWR0aDogMTNweDsgaGVpZ2h0OiAxM3B4OyB9XG5cbiAgICAmLS1saW5rZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuXG4gICAgLy8gTGlua2VkIHBpbGwgdGhhdCBoYXMgYSByZXNvbHZhYmxlIHRhcmdldCBxdWVzdGlvbjogc3VidGxlIGhvdmVyIGhpZ2hsaWdodC5cbiAgICAmLS1saW5rZWQucWRuYXByby1hbnN3ZXItb3B0aW9uX19jb25uLS1oYXMtdGlwIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcztcbiAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTUwKTsgfVxuICAgIH1cblxuICAgICYtLWVtcHR5IHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy13YXJuaW5nLWJyaWdodC1iZyk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LXRleHQpO1xuICAgICAgICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tYy13YXJuaW5nLWJyaWdodC1ib3JkZXIpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXM7XG4gICAgICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAteWVsbG93LTItYmcpOyB9XG4gICAgfVxuXG4gICAgLy8gV2FybmluZyBzdGF0ZTogYW1iZXIgcGlsbCArIHBlcmlvZGljIHdpZ2dsZS4gRmxhZ3MgYSBjb25uZWN0aW9uIHRoYXQgbXVzdFxuICAgIC8vIGJlIGZpeGVkIChlLmcuIGFuIGV4dHJhIGJyYW5jaCBibG9ja2luZyB0aGUgTXVsdGktcmFkaW8g4oaSIE11bHRpLXNlbGVjdFxuICAgIC8vIHN3aXRjaCkuIENvbXBvdW5kIHNlbGVjdG9yIHNvIGl0IHdpbnMgb3ZlciAtLWxpbmtlZCAvIC0taGFzLXRpcC5cbiAgICAmLS1saW5rZWQucWRuYXByby1hbnN3ZXItb3B0aW9uX19jb25uLS13YXJuaW5nIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy13YXJuaW5nLWJyaWdodC1iZyk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LXRleHQpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LWJvcmRlcik7XG4gICAgICAgIGFuaW1hdGlvbjogcWRuYXByby1hby1waWxsLXdpZ2dsZSAzcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuXG4gICAgICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAteWVsbG93LTItYmcpOyB9XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHFkbmFwcm8tYW8tcGlsbC13aWdnbGUge1xuICAgIC8vIE1vc3RseSBhdCByZXN0OyBhIGJyaWVmIHNoYWtlIG5lYXIgdGhlIGVuZCBvZiBlYWNoIGN5Y2xlIGRyYXdzIHRoZSBleWVcbiAgICAvLyB3aXRob3V0IGJlaW5nIGEgY29uc3RhbnQgbW90aW9uLlxuICAgIDAlLCA4NCUsIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgcm90YXRlKDApOyB9XG4gICAgODclIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0ycHgpIHJvdGF0ZSgtM2RlZyk7IH1cbiAgICA5MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KSAgcm90YXRlKDNkZWcpOyB9XG4gICAgOTMlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0ycHgpIHJvdGF0ZSgtMmRlZyk7IH1cbiAgICA5NiUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMXB4KSAgcm90YXRlKDFkZWcpOyB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fY29ubi0td2FybmluZyB7IGFuaW1hdGlvbjogbm9uZTsgfVxufVxuXG4vLyBIb3ZlciBhY3Rpb24gYnV0dG9ucyAoc2xpZGUtaW4gZnJvbSByaWdodClcbi5xZG5hcHJvLWFuc3dlci1vcHRpb25fX2FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDJweDtcbiAgICBwYWRkaW5nOiAwIDVweCAwIDA7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE0MG1zO1xufVxuXG4ucWRuYXByby1hbnN3ZXItb3B0aW9uX19hY3Qge1xuICAgIHdpZHRoOiAyNnB4O1xuICAgIGhlaWdodDogMjZweDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcywgYm9yZGVyLWNvbG9yIDEyMG1zLCBjb2xvciAxMjBtcztcbiAgICBmbGV4LXNocmluazogMDtcblxuICAgIHN2ZyB7IHdpZHRoOiAxNXB4OyBoZWlnaHQ6IDE1cHg7IH1cblxuICAgICYtLXVubGluayB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LXRleHQpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LWJnKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LWJvcmRlcik7XG4gICAgICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAteWVsbG93LTItYmcpOyBib3JkZXItY29sb3I6IHZhcigtLWMtd2Fybi15ZWxsb3ctNTAwKTsgfVxuICAgIH1cblxuICAgICYtLWRlbGV0ZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRhZy1jcml0aWNhbC10ZXh0KTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtcmVkLWJnKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWNoaXAtcmVkLTItYmcpO1xuICAgICAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLXJlZC1ob3Zlcik7IGJvcmRlci1jb2xvcjogdmFyKC0tYy10YWctY3JpdGljYWwtdGV4dCk7IH1cbiAgICB9XG59XG5cbi8vIElubGluZSBjb25maXJtIGJhciAoZGVsZXRlIC8gdW5saW5rKVxuLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fY29uZmlybSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGZsZXg6IDE7XG4gICAgcGFkZGluZzogNnB4IDEwcHg7XG59XG5cbi5xZG5hcHJvLWFuc3dlci1vcHRpb25fX2NvbmZpcm0taWNvbiB7XG4gICAgY29sb3I6IHZhcigtLWMtdGFnLWNyaXRpY2FsLXRleHQpO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBzdmcgeyB3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyB9XG59XG5cbi5xZG5hcHJvLWFuc3dlci1vcHRpb25fX2NvbmZpcm0tdGV4dCB7XG4gICAgZmxleDogMTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tYy10YWctY3JpdGljYWwtdGV4dCk7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG5cbi8vIFVubGluayBjb25maXJtIGJhciA9IGFtYmVyLCBub3QgcmVkIChnZW50bGUgYWN0aW9uKS5cbi5xZG5hcHJvLWFuc3dlci1vcHRpb24tLWNvbmZpcm1pbmctdW5saW5rIC5xZG5hcHJvLWFuc3dlci1vcHRpb25fX2NvbmZpcm0taWNvbixcbi5xZG5hcHJvLWFuc3dlci1vcHRpb24tLWNvbmZpcm1pbmctdW5saW5rIC5xZG5hcHJvLWFuc3dlci1vcHRpb25fX2NvbmZpcm0tdGV4dCB7XG4gICAgY29sb3I6IHZhcigtLWMtd2FybmluZy1icmlnaHQtdGV4dCk7XG59XG5cbi8vIENvbmZpcm0tYmFyIGJ1dHRvbnMgYXJlIHFkbmFwcm8tYnV0dG9uIHNpemU9XCJtaWNyb1wiIChzZWNvbmRhcnkgKyB3YXJuaW5nLXJlZCk7XG4vLyBubyBiZXNwb2tlIGJ1dHRvbiBzdHlsaW5nIGxpdmVzIGhlcmUgYW55bW9yZS5cbiIsIi8vIHFkbmFwcm8tYW5zd2VyLWJ1dHRvbiDigJQgc3VydmV5L2F1ZGl0IGFuc3dlciBidXR0b24gZm9yIHRoZSBQV0EgKG11bHRpIHJhZGlvIC8gbWVlcmtldXplKS5cbi8vIElkbGUvaG92ZXIvcHJlc3NlZCBzdXJmYWNlIHRha2VuIGZyb20gdGhlIHFkbmFwcm8tYnV0dG9uIFwic2Vjb25kYXJ5LXB1cnBsZVwiIHZhcmlhbnQ7IHRoZVxuLy8gc2VsZWN0ZWQgKGFjdGl2ZSkgc3RhdGUgaXMgYSBTT0ZUIHNlbGVjdGlvbiAoc3VidGxlIGZpbGwgKyBwZXJpd2lua2xlIHJpbmcgKyBmaWxsZWRcbi8vIGNoZWNrYm94KSwgbm90IGEgZnVsbCBmbG9vZC4gU3VyZmFjZSBjb2xvdXJzIHJvdXRlIHRocm91Z2ggdGhlIHRoZW1lLWVkaXRvciB2YXJzXG4vLyAoLS10aGVtZS1idG4tKikgd2l0aCB0aGUgc2Vjb25kYXJ5LXB1cnBsZSB2YWx1ZXMgYXMgZmFsbGJhY2tzLCBzbyB0aGUgcWRuYSB0aGVtZSBlZGl0b3Jcbi8vIGNhbiByZWNvbG91ciB0aGVtLiBMZWFkaW5nIGNoZWNrYm94IGluZGljYXRvcjsgdGljayBwb3BzIGluIG9uIHNlbGVjdC5cbi8vXG4vLyAtLXRoZW1lLWJ0bi1pZGxlLWNvbG9yICgwNS4wOC4yMDI2KSBzZXRzIHRoZSBVTlNFTEVDVEVEIGZpbGwgZGlyZWN0bHkgYW5kXG4vLyAtLXRoZW1lLWJ0bi1pZGxlLXRleHQtY29sb3IgKDA2LjA4LjIwMjYpIGl0cyBsYWJlbDsgdW5zZXQga2VlcHMgdGhlIGRlcml2ZWQgMTIlIHRpbnQgYW5kXG4vLyB0aGUgdGhlbWUgY29sb3VyIGFzIGxhYmVsLCBzbyBleGlzdGluZyB0aGVtZXMgbG9vayBpZGVudGljYWwuIEhvdmVyL3ByZXNzZWQgZGFya2VuIHRoZVxuLy8gcmVzb2x2ZWQgaWRsZSBzdXJmYWNlICgtLXFhYi1pZGxlKSBpbnN0ZWFkIG9mIHJlLWRlcml2aW5nIHRoZWlyIG93biB0aW50LlxuLy8gRkxBVCBDU1M7IHRva2VucyBmcm9tIHRoZSBkZXNpZ24tdG9rZW4gOnJvb3QuXG5cbi5xZG5hcHJvLWFuc3dlci1idXR0b24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4taGVpZ2h0OiA1NnB4O1xuICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gIGJvcmRlcjogMS41cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMywgMTJweCk7XG4gIC8vIElkbGUgc3VyZmFjZS4gQW4gZXhwbGljaXQgLS10aGVtZS1idG4taWRsZS1jb2xvciAodGhlbWUgZWRpdG9yLCBcIktub3AgKG5pZXQgZ2Vrb3plbilcIilcbiAgLy8gd2luczsgdW5zZXQgZmFsbHMgYmFjayB0byB0aGUgb3JpZ2luYWwgZGVyaXZlZCB0aW50OiAxMiUgb2YgdGhlIHRoZW1lIGNvbG91ciBtaXhlZCBpbnRvXG4gIC8vIHdoaXRlIOKGkiBsaWdodCBwZXJpd2lua2xlIG9uIHRoZSBkZWZhdWx0IHRoZW1lLCBsaWdodCBtaW50L3BlYWNoL2V0Yy4gb24gY3VzdG9tIHRoZW1lcy5cbiAgLy8gTmV2ZXIgYSBmdWxsLWZpbGw7IHRoZSBmaWxsZWQgdmFyaWFudCBpcyB0aGUgY29udGludWUgYnV0dG9uLlxuICAvL1xuICAvLyBLZXB0IGluIGl0cyBvd24gY3VzdG9tIHByb3BlcnR5IHNvIGhvdmVyL3ByZXNzZWQgY2FuIGRhcmtlbiBXSEFURVZFUiB0aGUgaWRsZSBzdXJmYWNlXG4gIC8vIHJlc29sdmVkIHRvLiBCZWZvcmUgMDUuMDguMjAyNiB0aG9zZSB0d28gc3RhdGVzIHJlLWRlcml2ZWQgdGhlaXIgb3duIDIwJS8yOCUgdGludCBmcm9tXG4gIC8vIC0tdGhlbWUtYnRuLWNvbG9yLCB3aGljaCBzaWxlbnRseSBpZ25vcmVkIGFuIGV4cGxpY2l0IGlkbGUgY29sb3VyLlxuICAtLXFhYi1pZGxlOiB2YXIoLS10aGVtZS1idG4taWRsZS1jb2xvciwgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRoZW1lLWJ0bi1jb2xvciwgIzQwNDk5YSkgMTIlLCAjZmZmKSk7XG4gIC0tcWFiLWhvdmVyOiB2YXIoLS10aGVtZS1idG4taWRsZS1ob3Zlci1jb2xvciwgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXFhYi1pZGxlKSA5MiUsICMwMDApKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tcWFiLWlkbGUpO1xuICAvLyBMYWJlbCArIGluZGljYXRvciBvbiB0aGUgVU5TRUxFQ1RFRCByb3cuIC0tdGhlbWUtYnRuLWlkbGUtdGV4dC1jb2xvciAodGhlbWUgZWRpdG9yLFxuICAvLyBcIktub3B0ZWtzdCAobmlldCBnZWtvemVuKVwiKSB3aW5zOyB1bnNldCBrZWVwcyB0aGUgb3JpZ2luYWwgYmVoYXZpb3VyIG9mIHVzaW5nIHRoZSB0aGVtZVxuICAvLyBjb2xvdXIgaXRzZWxmLCB3aGljaCByZWFkcyBmaW5lIG9uIHRoZSBsaWdodCBkZXJpdmVkIHRpbnQgYnV0IG5vdCBuZWNlc3NhcmlseSBvbiBhIGZpbGxcbiAgLy8gdGhlIGFkbWluIGNob3NlIGJ5IGhhbmQuIFRoZSBjaGVja2JveC9yYWRpbyBpbmRpY2F0b3IgZm9sbG93cyBhdXRvbWF0aWNhbGx5OiBpdHMgYm9yZGVyXG4gIC8vIGlzIGAycHggc29saWQgY3VycmVudENvbG9yYC4gW0tpbSAwNi4wOC4yMDI2XVxuICBjb2xvcjogdmFyKC0tdGhlbWUtYnRuLWlkbGUtdGV4dC1jb2xvciwgdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKSk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1mb250LWZhbWlseSwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE2cyBlYXNlLCBib3JkZXItY29sb3IgMC4xNnMgZWFzZSwgY29sb3IgMC4xNnMgZWFzZSxcbiAgICAgICAgICAgICAgYm94LXNoYWRvdyAwLjE2cyBlYXNlLCB0cmFuc2Zvcm0gMC4xcyBlYXNlO1xufVxuXG4vLyBIb3ZlciBzbG90ICgwNi4wOC4yMDI2KTogZXhwbGljaXQgLS10aGVtZS1idG4taWRsZS1ob3Zlci1jb2xvciB3aW5zLCBlbHNlIGRhcmtlbiB0aGVcbi8vIHJlc29sdmVkIGlkbGUgc3VyZmFjZS4gUHJlc3NlZCBkZXJpdmVzIGZyb20gdGhlIFJFU09MVkVEIGhvdmVyIHNvIGlkbGUgLT4gaG92ZXIgLT4gcHJlc3NlZFxuLy8gc3RheXMgb3JkZXJlZDsgd2l0aCBub3RoaW5nIHNldCB0aGlzIHJlcHJvZHVjZXMgdGhlIG9sZCA5MiUgLyA4NSUgcGFpciBleGFjdGx5LlxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbjpob3Zlcjpub3QoLmlzLWRpc2FibGVkKTpub3QoLmlzLWFjdGl2ZSkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1xYWItaG92ZXIpO1xufVxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi5pcy1wcmVzc2VkOm5vdCguaXMtZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXFhYi1ob3ZlcikgOTIlLCAjMDAwKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTtcbn1cblxuLy8gRm9yY2Utc3RhdGUgaG9vayDigJQgc2VlIHRoZSBtYXRjaGluZyBibG9jayBpbiBfYnV0dG9uLnNjc3MgZm9yIHdoeSB0aGlzIGlzIGEgZGF0YS1hdHRyaWJ1dGVcbi8vIGFuZCBub3QgYSBjbGFzcy4gTGV0cyB0aGUgdGhlbWUgZWRpdG9yJ3MgcGhvbmUgcHJldmlldyBzaG93IGhvdmVyL3ByZXNzZWQgb24gZGVtYW5kLlxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbltkYXRhLWZvcmNlLXN0YXRlPVwiaG92ZXJcIl06bm90KC5pcy1kaXNhYmxlZCk6bm90KC5pcy1hY3RpdmUpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tcWFiLWhvdmVyKTtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b25bZGF0YS1mb3JjZS1zdGF0ZT1cInByZXNzZWRcIl06bm90KC5pcy1kaXNhYmxlZCk6bm90KC5pcy1hY3RpdmUpIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXFhYi1ob3ZlcikgOTIlLCAjMDAwKTtcbn1cblxuLy8gU2VsZWN0ZWQg4oCUIGV4cGxpY2l0IC0tdGhlbWUtYnRuLXNlbGVjdGVkLWNvbG9yIHdpbnMgKGUuZy4gdGhlIGRlcml2ZWQgIzc5ODBCOCB0aGVcbi8vIHRoZW1lIGVuZ2luZSBzZXRzIGZyb20gYSBkYXJrIHByaW1hcnkgY29sb3VyKS4gRmFsbGJhY2sgPSBhIDIyJSBzb2Z0IHRpbnQgKHNsaWdodGx5XG4vLyBkZWVwZXIgdGhhbiBpZGxlIDEyJSkgc28gdGhlIHNlbGVjdGVkIHN0YXRlIGlzIGFsd2F5cyB2aXNpYmx5IGRpc3RpbmN0IG9uIGFueSB0aGVtZS5cbi5xZG5hcHJvLWFuc3dlci1idXR0b24uaXMtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tdGhlbWUtYnRuLXNlbGVjdGVkLWNvbG9yLCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKSAyMiUsICNmZmYpKTtcbiAgY29sb3I6IHZhcigtLXRoZW1lLWJ0bi1zZWxlY3RlZC10ZXh0LWNvbG9yLCB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpKTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi5pcy1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCwgI2YwZjFmMik7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwLCAjYTZhYWIzKTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vLyBDaGVja2JveCBpbmRpY2F0b3Jcbi5xZG5hcHJvLWFuc3dlci1idXR0b25fX3RpY2sge1xuICBmbGV4OiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgYm9yZGVyOiAycHggc29saWQgY3VycmVudENvbG9yO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIG9wYWNpdHk6IDAuNTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE4cyBlYXNlLCBib3JkZXItY29sb3IgMC4xOHMgZWFzZSwgb3BhY2l0eSAwLjE4cyBlYXNlLFxuICAgICAgICAgICAgICB0cmFuc2Zvcm0gMC4ycyBjdWJpYy1iZXppZXIoMC4zNCwgMS42LCAwLjUsIDEpO1xufVxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbl9fdGljayBzdmcgeyBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4vLyBTdHJva2VkIGNoZWNrbWFyayDigJQgZHJhdy1pbiB2aWEgc3Ryb2tlLWRhc2hvZmZzZXRcbi5xZG5hcHJvLWFuc3dlci1idXR0b25fX2NoZWNrIHtcbiAgZmlsbDogbm9uZTtcbiAgc3Ryb2tlOiBjdXJyZW50Q29sb3I7XG4gIHN0cm9rZS13aWR0aDogMi41O1xuICBzdHJva2UtbGluZWNhcDogcm91bmQ7XG4gIHN0cm9rZS1saW5lam9pbjogcm91bmQ7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDI0O1xuICBzdHJva2UtZGFzaG9mZnNldDogMjQ7XG4gIHRyYW5zaXRpb246IHN0cm9rZS1kYXNob2Zmc2V0IDAuMTVzIGVhc2U7XG59XG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLmlzLWFjdGl2ZSAucWRuYXByby1hbnN3ZXItYnV0dG9uX190aWNrIHtcbiAgb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZDogdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpO1xuICBjb2xvcjogdmFyKC0tdGhlbWUtYnRuLXRleHQtY29sb3IsICNmZmYpO1xuICBhbmltYXRpb246IHFhYi10aWNrLXBvcCAwLjUycyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC41LCAxKTtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b24uaXMtYWN0aXZlIC5xZG5hcHJvLWFuc3dlci1idXR0b25fX2NoZWNrIHtcbiAgYW5pbWF0aW9uOiBxYWItZHJhdyAwLjM4cyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSkgMC4wNHMgZm9yd2FyZHM7XG59XG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLmlzLWRpc2FibGVkIC5xZG5hcHJvLWFuc3dlci1idXR0b25fX3RpY2sgeyBib3JkZXItY29sb3I6IHZhcigtLWMtZ3JleS0zMDAsICNjNGM3Y2MpOyBvcGFjaXR5OiAxOyB9XG5cbi5xZG5hcHJvLWFuc3dlci1idXR0b25fX2xhYmVsIHsgZmxleDogMTsgbWluLXdpZHRoOiAwOyB9XG5cbi8vIFZhcmlhbnQ6IHJvdW5kIGluZGljYXRvciAobXVsdGlwbGUtY2hvaWNlIC8gcmFkaW8gc3R5bGUpXG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLS1tdWx0aXBsZS1jaG9pY2UgLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbl9fdGljayB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuLy8gSWNvbiBzbG90IOKAlCBhY3Rpdml0eSBpY29uICh0d28tdG9uZSwgZml4ZWQgY29sb3Vycykgb3IgTURJIGljb24gKGN1cnJlbnRDb2xvcilcbi5xZG5hcHJvLWFuc3dlci1idXR0b25fX2ljb24ge1xuICBmbGV4OiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucWRuYXByby1hbnN3ZXItYnV0dG9uX19pY29uIHN2Zyxcbi5xZG5hcHJvLWFuc3dlci1idXR0b25fX2ljb24gaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG4vLyBNREkgaWNvbnM6IHNldCBmaWxsIHRvIGN1cnJlbnRDb2xvciBzbyB0aGV5IGluaGVyaXQgdGhlIGJ1dHRvbiB0ZXh0IGNvbG91ciAocHVycGxlL3RoZW1lZCkuXG4vLyBNREkgU1ZHcyBoYXZlIG5vIGV4cGxpY2l0IGZpbGwgYXR0cmlidXRlIChTVkcgZGVmYXVsdCA9IGJsYWNrKSwgc28gQ1NTIG11c3Qgc2V0IGl0LlxuLy8gQWN0aXZpdHkgaWNvbnMgaGF2ZSBiYWtlZC1pbiBjb2xvdXJzIGluc2lkZSBhbiA8aW1nPiDigJQgbm8gQ1NTIG92ZXJyaWRlIG5lZWRlZCB0aGVyZS5cbi5xZG5hcHJvLWFuc3dlci1idXR0b24uaGFzLWljb24tbWRpIC5xZG5hcHJvLWFuc3dlci1idXR0b25fX2ljb24ge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xufVxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi5oYXMtaWNvbi1tZGkgLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbl9faWNvbiBzdmcge1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG59XG5cbkBrZXlmcmFtZXMgcWFiLXRpY2stcG9wIHtcbiAgMCUgICB7IHRyYW5zZm9ybTogc2NhbGUoMC43KSAgICByb3RhdGUoMGRlZyk7ICB9XG4gIDIwJSAgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMjIpICAgcm90YXRlKC01ZGVnKTsgfVxuICA0NCUgIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjkwKSAgIHJvdGF0ZSgzZGVnKTsgIH1cbiAgNjQlICB7IHRyYW5zZm9ybTogc2NhbGUoMS4wOCkgICByb3RhdGUoLTFkZWcpOyB9XG4gIDgwJSAgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOTcpICAgcm90YXRlKDBkZWcpOyAgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKSAgICAgIHJvdGF0ZSgwZGVnKTsgIH1cbn1cblxuQGtleWZyYW1lcyBxYWItZHJhdyB7XG4gIDAlICAgeyBzdHJva2UtZGFzaG9mZnNldDogMjQ7ICAgfVxuICA2MiUgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0xOyAgIH1cbiAgODAlICB7IHN0cm9rZS1kYXNob2Zmc2V0OiAwLjc7ICB9XG4gIDEwMCUgeyBzdHJva2UtZGFzaG9mZnNldDogMDsgICAgfVxufVxuXG4vLyBTaXplIHZhcmlhbnQ6IGNvbXBhY3QgKDQ4cHgpIOKAlCBhbGwgaW50ZXJuYWxzIHNjYWxlIHByb3BvcnRpb25hbGx5LlxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0tY29tcGFjdCB7XG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gIHBhZGRpbmc6IDEwcHggMTRweDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBnYXA6IDEwcHg7XG59XG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLS1jb21wYWN0IC5xZG5hcHJvLWFuc3dlci1idXR0b25fX3RpY2sge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLS1jb21wYWN0LnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0tbXVsdGlwbGUtY2hvaWNlIC5xZG5hcHJvLWFuc3dlci1idXR0b25fX3RpY2sge1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLS1jb21wYWN0IC5xZG5hcHJvLWFuc3dlci1idXR0b25fX3RpY2sgc3ZnIHtcbiAgd2lkdGg6IDEzcHg7XG4gIGhlaWdodDogMTNweDtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLWNvbXBhY3QuaGFzLWljb24tYWN0aXZpdHkgLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbl9faWNvbiB7XG4gIHdpZHRoOiAyNnB4O1xuICBoZWlnaHQ6IDI2cHg7XG59XG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLS1jb21wYWN0Lmhhcy1pY29uLW1kaSAucWRuYXByby1hbnN3ZXItYnV0dG9uX19pY29uIHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbn1cblxuLy8gRGFyayBtb2RlIOKAlCBzYW1lIHNvZnQtdGludCBsb2dpYyBidXQgbWl4ZWQgaW50byBhIGRhcmsgYmFzZSBpbnN0ZWFkIG9mIHdoaXRlLlxuLy8gT1JERVIgKyBTUEVDSUZJQ0lUWSBDT05UUkFDVDogdGhpcyBibG9jayBzaXRzIEJFRk9SRSB0aGUgLS1ncmVlbi8tLXJlZCBjb2xvdXJcbi8vIHZhcmlhbnRzIGFuZCB3cmFwcyB0aGUgdGhlbWUgYXR0cmlidXRlIGluIDp3aGVyZSgpIChzcGVjaWZpY2l0eSAwKSwgc28gYW5cbi8vIGV4cGxpY2l0bHkgY2hvc2VuIGFuc3dlciBjb2xvdXIgYWx3YXlzIHdpbnMgb3ZlciB0aGUgZmxvdyB0aGVtZSDigJQgYWxzbyBpbiBkYXJrXG4vLyBtb2RlLiBLZWVwIGl0IHRoYXQgd2F5OiBtb3ZpbmcgdGhpcyBibG9jayBiZWxvdyB0aGUgY29sb3VyIHZhcmlhbnRzLCBvciBkcm9wcGluZ1xuLy8gdGhlIDp3aGVyZSgpLCBzaWxlbnRseSByZXZlcnRzIGdyZWVuL3JlZCBiYWNrIHRvIHRoZSB0aGVtZSBjb2xvdXIgaW4gZGFyayBtb2RlLlxuOndoZXJlKFtkYXRhLXRoZW1lPVwiZGFya1wiXSwgW2RhdGEtdGhlbWUtZGFyaz1cInRydWVcIl0pIC5xZG5hcHJvLWFuc3dlci1idXR0b24ge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKSAyMCUsIHZhcigtLWMtZ3JleS05MDAsICMxODE4MWMpKTtcbiAgY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpIDcwJSwgI2ZmZik7XG59XG46d2hlcmUoW2RhdGEtdGhlbWU9XCJkYXJrXCJdLCBbZGF0YS10aGVtZS1kYXJrPVwidHJ1ZVwiXSkgLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbjpob3Zlcjpub3QoLmlzLWRpc2FibGVkKTpub3QoLmlzLWFjdGl2ZSkge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKSAzMCUsIHZhcigtLWMtZ3JleS05MDAsICMxODE4MWMpKTtcbn1cbjp3aGVyZShbZGF0YS10aGVtZT1cImRhcmtcIl0sIFtkYXRhLXRoZW1lLWRhcms9XCJ0cnVlXCJdKSAucWRuYXByby1hbnN3ZXItYnV0dG9uLmlzLXByZXNzZWQ6bm90KC5pcy1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKSA0MCUsIHZhcigtLWMtZ3JleS05MDAsICMxODE4MWMpKTtcbn1cbjp3aGVyZShbZGF0YS10aGVtZT1cImRhcmtcIl0sIFtkYXRhLXRoZW1lLWRhcms9XCJ0cnVlXCJdKSAucWRuYXByby1hbnN3ZXItYnV0dG9uLmlzLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXRoZW1lLWJ0bi1zZWxlY3RlZC1jb2xvciwgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRoZW1lLWJ0bi1jb2xvciwgIzQwNDk5YSkgMzUlLCB2YXIoLS1jLWdyZXktOTAwLCAjMTgxODFjKSkpO1xuICBjb2xvcjogdmFyKC0tdGhlbWUtYnRuLXNlbGVjdGVkLXRleHQtY29sb3IsIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpIDcwJSwgI2ZmZikpO1xufVxuOndoZXJlKFtkYXRhLXRoZW1lPVwiZGFya1wiXSwgW2RhdGEtdGhlbWUtZGFyaz1cInRydWVcIl0pIC5xZG5hcHJvLWFuc3dlci1idXR0b24uaXMtZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktOTAwLCAjMTgxODFjKTtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjcyODApO1xufVxuXG4vLyBDb2xvciB2YXJpYW50czogZ3JlZW4gKEphKSAvIHJlZCAoTmVlKSDigJQgdXNlIFFETkEgc2lnbmFsIHBhbGV0dGUuXG4vLyBPdmVycmlkZXMgdGhlIHB1cnBsZS1kZWZhdWx0cyBmb3Igc3VyZmFjZSwgdGV4dCwgYW5kIHRpY2sgZmlsbC5cbi8vIFRoZXNlIHN0YXkgTEFTVCBzbyBhbiBleHBsaWNpdCBjb2xvdXIgY2hvaWNlIGJlYXRzIGV2ZXJ5IHRoZW1lIHJ1bGUsIGluY2wuIGRhcmsgbW9kZS5cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLWdyZWVuIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtZ3JlZW4tYmcsICNjNWY1ZTIpO1xuICBjb2xvcjogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCwgIzQyOGI2ZSk7XG59XG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLS1ncmVlbjpob3Zlcjpub3QoLmlzLWRpc2FibGVkKTpub3QoLmlzLWFjdGl2ZSkge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYy1zaWduYWwtZ3JlZW4tYmcsICNjNWY1ZTIpIDg1JSwgIzAwMCk7XG59XG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLS1ncmVlbi5pcy1wcmVzc2VkOm5vdCguaXMtZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWMtc2lnbmFsLWdyZWVuLWJnLCAjYzVmNWUyKSA3NSUsICMwMDApO1xufVxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0tZ3JlZW4uaXMtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWMtc2lnbmFsLWdyZWVuLWJnLCAjYzVmNWUyKSA4MCUsICMwMDApO1xuICBjb2xvcjogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCwgIzQyOGI2ZSk7XG59XG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLS1ncmVlbi5pcy1hY3RpdmUgLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbl9fdGljayB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc3VjY2Vzcy1icmlnaHQsICMxZDllNzUpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtc3VjY2Vzcy1icmlnaHQsICMxZDllNzUpO1xufVxuXG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLS1yZWQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1yZWQtYmcsICNmZWUzZTMpO1xuICBjb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xufVxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0tcmVkOmhvdmVyOm5vdCguaXMtZGlzYWJsZWQpOm5vdCguaXMtYWN0aXZlKSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jLXNpZ25hbC1yZWQtYmcsICNmZWUzZTMpIDg1JSwgIzAwMCk7XG59XG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLS1yZWQuaXMtcHJlc3NlZDpub3QoLmlzLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jLXNpZ25hbC1yZWQtYmcsICNmZWUzZTMpIDc1JSwgIzAwMCk7XG59XG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLS1yZWQuaXMtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWMtc2lnbmFsLXJlZC1iZywgI2ZlZTNlMykgODAlLCAjMDAwKTtcbiAgY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLXJlZC5pcy1hY3RpdmUgLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbl9fdGljayB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtd2Fybi1yZWQtNTAwLCAjZGMyNjI2KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXdhcm4tcmVkLTUwMCwgI2RjMjYyNik7XG59XG5cbi8vIFNlbWFudGljIG9wdGlvbiBjb2xvdXJzIChNZWVya2V1emUgZmFzZSA1LCBiZXNsdWl0IDEyKTogcG9zaXRpdmUgLyB3YXJuaW5nIC9cbi8vIG5lZ2F0aXZlIC8gbmV1dHJhbF9hbHQuIFRoZSBmbG93IHBsdWdpbnMgcHV0IG9wdGlvbl9jb2xvciBmcm9tIHRoZSBsaW5rIHJvd1xuLy8gb24gdGhlIGNvbG9yIGF0dHJpYnV0ZTsgdGhlIGNvbXBvbmVudCBtYXBzIGl0IHRvIHRoZXNlIGNsYXNzZXMuIEV4YWN0IHNhbWVcbi8vIHJlY2lwZSBhcyBncmVlbi9yZWQgYWJvdmUgKHNvZnQgc2lnbmFsLWJnIHN1cmZhY2UsIGRhcmtlciBvbiBob3Zlci9hY3RpdmUsXG4vLyBjb2xvdXJlZCB0aWNrIGZpbGwpIGFuZCB0aGUgc2FtZSBjbG9zZWQgcGFsZXR0ZSArIHRva2VucyBhcyB0aGVcbi8vIHFkbmFwcm8tYW5zd2VyLW9wdGlvbiBlZGl0b3Igcm93LCBzbyB0aGUgY29sb3VyIHJlYWRzIGNvbnNpc3RlbnRseVxuLy8gZW5kLXRvLWVuZC4gTmV2ZXIgY29sb3VyLW9ubHk6IHRoZSB0aWNrIHNoYXBlIHN0YXlzIHRoZSBzZWxlY3Rpb24gY3VlLlxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0tcG9zaXRpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi1iZywgI2M1ZjVlMik7XG4gIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0LCAjNDI4YjZlKTtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLXBvc2l0aXZlOmhvdmVyOm5vdCguaXMtZGlzYWJsZWQpOm5vdCguaXMtYWN0aXZlKSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jLXNpZ25hbC1ncmVlbi1iZywgI2M1ZjVlMikgODUlLCAjMDAwKTtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLXBvc2l0aXZlLmlzLXByZXNzZWQ6bm90KC5pcy1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYy1zaWduYWwtZ3JlZW4tYmcsICNjNWY1ZTIpIDc1JSwgIzAwMCk7XG59XG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLS1wb3NpdGl2ZS5pcy1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYy1zaWduYWwtZ3JlZW4tYmcsICNjNWY1ZTIpIDgwJSwgIzAwMCk7XG4gIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0LCAjNDI4YjZlKTtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLXBvc2l0aXZlLmlzLWFjdGl2ZSAucWRuYXByby1hbnN3ZXItYnV0dG9uX190aWNrIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zdWNjZXNzLWJyaWdodCwgIzFkOWU3NSk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1zdWNjZXNzLWJyaWdodCwgIzFkOWU3NSk7XG59XG5cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC15ZWxsb3ctYmcsICNmZWVkYjgpO1xuICBjb2xvcjogdmFyKC0tYy1zaWduYWwteWVsbG93LXRleHQsICNiZjcyMDIpO1xufVxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0td2FybmluZzpob3Zlcjpub3QoLmlzLWRpc2FibGVkKTpub3QoLmlzLWFjdGl2ZSkge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYy1zaWduYWwteWVsbG93LWJnLCAjZmVlZGI4KSA4NSUsICMwMDApO1xufVxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0td2FybmluZy5pcy1wcmVzc2VkOm5vdCguaXMtZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWMtc2lnbmFsLXllbGxvdy1iZywgI2ZlZWRiOCkgNzUlLCAjMDAwKTtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLXdhcm5pbmcuaXMtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWMtc2lnbmFsLXllbGxvdy1iZywgI2ZlZWRiOCkgODAlLCAjMDAwKTtcbiAgY29sb3I6IHZhcigtLWMtc2lnbmFsLXllbGxvdy10ZXh0LCAjYmY3MjAyKTtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLXdhcm5pbmcuaXMtYWN0aXZlIC5xZG5hcHJvLWFuc3dlci1idXR0b25fX3RpY2sge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdhcm4tYW1iZXItNTAwLCAjZDk3NzA2KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXdhcm4tYW1iZXItNTAwLCAjZDk3NzA2KTtcbn1cblxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0tbmVnYXRpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1yZWQtYmcsICNmZWUzZTMpO1xuICBjb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xufVxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0tbmVnYXRpdmU6aG92ZXI6bm90KC5pcy1kaXNhYmxlZCk6bm90KC5pcy1hY3RpdmUpIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWMtc2lnbmFsLXJlZC1iZywgI2ZlZTNlMykgODUlLCAjMDAwKTtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLW5lZ2F0aXZlLmlzLXByZXNzZWQ6bm90KC5pcy1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYy1zaWduYWwtcmVkLWJnLCAjZmVlM2UzKSA3NSUsICMwMDApO1xufVxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0tbmVnYXRpdmUuaXMtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWMtc2lnbmFsLXJlZC1iZywgI2ZlZTNlMykgODAlLCAjMDAwKTtcbiAgY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLW5lZ2F0aXZlLmlzLWFjdGl2ZSAucWRuYXByby1hbnN3ZXItYnV0dG9uX190aWNrIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy13YXJuLXJlZC01MDAsICNkYzI2MjYpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtd2Fybi1yZWQtNTAwLCAjZGMyNjI2KTtcbn1cblxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0tbmV1dHJhbF9hbHQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1ibHVlLWJnLCAjZTZlZmY5KTtcbiAgY29sb3I6IHZhcigtLWMtc2lnbmFsLWJsdWUtdGV4dCwgIzZhOGFiNCk7XG59XG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLS1uZXV0cmFsX2FsdDpob3Zlcjpub3QoLmlzLWRpc2FibGVkKTpub3QoLmlzLWFjdGl2ZSkge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYy1zaWduYWwtYmx1ZS1iZywgI2U2ZWZmOSkgODUlLCAjMDAwKTtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLW5ldXRyYWxfYWx0LmlzLXByZXNzZWQ6bm90KC5pcy1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYy1zaWduYWwtYmx1ZS1iZywgI2U2ZWZmOSkgNzUlLCAjMDAwKTtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLW5ldXRyYWxfYWx0LmlzLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jLXNpZ25hbC1ibHVlLWJnLCAjZTZlZmY5KSA4MCUsICMwMDApO1xuICBjb2xvcjogdmFyKC0tYy1zaWduYWwtYmx1ZS10ZXh0LCAjNmE4YWI0KTtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLW5ldXRyYWxfYWx0LmlzLWFjdGl2ZSAucWRuYXByby1hbnN3ZXItYnV0dG9uX190aWNrIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtYmx1ZS10ZXh0LCAjNmE4YWI0KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXNpZ25hbC1ibHVlLXRleHQsICM2YThhYjQpO1xufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvYXZhdGFyL19hdmF0YXItY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLnFkbmFwcm8tYXZhdGFyIHtcbiAgLS1hdi1iZzogdmFyKC0tYy1zaWduYWwtZ3JlZW4tYmcpO1xuICAtLWF2LWJvcmRlcjogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCk7XG4gIC0tYXYtc2l6ZTogNDhweDtcbiAgLS1hdi1wYWRkaW5nOiA4cHg7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IHZhcigtLWF2LXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLWF2LXNpemUpO1xuICBmbGV4LXNocmluazogMDtcbiAgcGFkZGluZzogdmFyKC0tYXYtcGFkZGluZyk7XG4gIGJvcmRlcjogMC41cHggc29saWQgdmFyKC0tYXYtYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hdi1iZyk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE0MG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8tYXZhdGFyIC5hdmF0YXItYW5pbWFsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby1hdmF0YXIuYXZhdGFyLXNpemUtNzIge1xuICAtLWF2LXNpemU6IDcycHg7XG4gIC0tYXYtcGFkZGluZzogMTJweDtcbn1cbi5xZG5hcHJvLWF2YXRhci5hdmF0YXItc2l6ZS00OCB7XG4gIC0tYXYtc2l6ZTogNDhweDtcbiAgLS1hdi1wYWRkaW5nOiA4cHg7XG59XG4ucWRuYXByby1hdmF0YXIuYXZhdGFyLXNpemUtMzQge1xuICAtLWF2LXNpemU6IDM0cHg7XG4gIC0tYXYtcGFkZGluZzogNnB4O1xufVxuLnFkbmFwcm8tYXZhdGFyLmF2YXRhci1zaXplLTI4IHtcbiAgLy8gSW50ZXJwb2xhdGVkIGJldHdlZW4gc2l6ZS0yMCAoNHB4KSBhbmQgc2l6ZS0zNCAoNnB4KTogNCArICgyOC0yMCkvKDM0LTIwKSAqICg2LTQpID0gNS4xNHB4LCByb3VuZGVkIHRvIDVweC5cbiAgLS1hdi1zaXplOiAyOHB4O1xuICAtLWF2LXBhZGRpbmc6IDVweDtcbn1cbi5xZG5hcHJvLWF2YXRhci5hdmF0YXItc2l6ZS0yMCB7XG4gIC0tYXYtc2l6ZTogMjBweDtcbiAgLS1hdi1wYWRkaW5nOiA0cHg7XG59XG4ucWRuYXByby1hdmF0YXIuYXZhdGFyLWNvbG9yLWdyZWVuIHtcbiAgLS1hdi1iZzogdmFyKC0tYy1zaWduYWwtZ3JlZW4tYmcpO1xuICAtLWF2LWJvcmRlcjogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCk7XG4gIC0tYXYtaWNvbjogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCk7XG59XG4ucWRuYXByby1hdmF0YXIuYXZhdGFyLWNvbG9yLXllbGxvdyB7XG4gIC0tYXYtYmc6IHZhcigtLWMtc2lnbmFsLXllbGxvdy1iZyk7XG4gIC0tYXYtYm9yZGVyOiB2YXIoLS1jLXNpZ25hbC15ZWxsb3ctdGV4dCk7XG4gIC0tYXYtaWNvbjogdmFyKC0tYy13YXJuLXllbGxvdy02MDApO1xufVxuLnFkbmFwcm8tYXZhdGFyLmF2YXRhci1jb2xvci1ibHVlIHtcbiAgLS1hdi1iZzogdmFyKC0tYy1zaWduYWwtYmx1ZS1iZyk7XG4gIC0tYXYtYm9yZGVyOiB2YXIoLS1jLXNpZ25hbC1ibHVlLXRleHQpO1xuICAtLWF2LWljb246IHZhcigtLWMtcHVycGxlLTQwMCk7XG59XG4ucWRuYXByby1hdmF0YXIuYXZhdGFyLWNvbG9yLXJlZCB7XG4gIC0tYXYtYmc6IHZhcigtLWMtc2lnbmFsLXJlZC1iZyk7XG4gIC0tYXYtYm9yZGVyOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCk7XG4gIC0tYXYtaWNvbjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpO1xufVxuLy8gRmlmdGggY29sb3VyLCBkZWxpYmVyYXRlbHkgb3V0c2lkZSB0aGUgZm91ciBwYXN0ZWxzLiBUaG9zZSBmb3VyIHJlYWQgYXNcbi8vIFwiYSBwZXJzb25cIjsgdGhpcyBncmV5IG9uZSBpcyBmb3IgY2lyY2xlcyB3aGVyZSBubyBwZXJzb24gaXMgaW52b2x2ZWQsIGUuZy5cbi8vIGEgc3lzdGVtIG1lc3NhZ2Ugd2l0aCBtYXJrPVwicWRuYVwiLiBWYWx1ZXMgYXJlIHRoZSBjZW50cmFsIGdyZXkgdG9rZW5zIGZyb21cbi8vIGRlc2lnbi10b2tlbnMvX2Rlc2lnbi10b2tlbnMuc2Nzcywgbm90IG5ldyBjb2xvdXJzOiBncmV5LTEwMCBzdXJmYWNlLFxuLy8gZ3JleS01MDAgaGFpcmxpbmUsIGdyZXktNjAwIGZvciB0aGUgbWFyay9pY29uLlxuLy8gTWVhc3VyZWQgY29udHJhc3Q6IG1hcmsgZ3JleS02MDAgIzU2NWI2NiBvbiBzdXJmYWNlIGdyZXktMTAwICNlN2U5ZWMgPVxuLy8gNS42MDoxLCB3ZWxsIHBhc3QgdGhlIDM6MSBXQ0FHIDEuNC4xMSBmbG9vciBmb3Igbm9uLXRleHQgZWxlbWVudHMuIFRoZSBmb3VyXG4vLyBwYXN0ZWxzIHNpdCBhdCAyLjExOjEgKHllbGxvdykgdG8gNC45NDoxIChibHVlKSBmb3IgdGhlIHNhbWUgcGFpciwgc28gdGhpc1xuLy8gaXMgdGhlIHN0cm9uZ2VzdCBvZiB0aGUgZml2ZSwgbm90IHRoZSB3ZWFrZXN0LlxuLy8gSGFpcmxpbmUgY2hvaWNlOiB0aGUgZm91ciBwYXN0ZWxzJyBib3JkZXJzIGxhbmQgYmV0d2VlbiAzLjA2OjEgYW5kIDMuNDU6MVxuLy8gYWdhaW5zdCB0aGVpciBvd24gc3VyZmFjZS4gTm8gZ3JleSB0b2tlbiBoaXRzIHRoYXQgYmFuZCBleGFjdGx5LCBzbyBncmV5LTUwMFxuLy8gKDMuOTc6MSkgd2FzIHBpY2tlZCBvdmVyIGdyZXktNDAwICgxLjkxOjEpOiBzbGlnaHRseSBmaXJtZXIgdGhhbiBpdHNcbi8vIHNpYmxpbmdzLCByYXRoZXIgdGhhbiBhIGNpcmNsZSB0aGF0IGxvb2tzIGxpa2UgaXQgbG9zdCBpdHMgcmltLlxuLy8gW0tpbSAyOS4wNy4yMDI2XVxuLnFkbmFwcm8tYXZhdGFyLmF2YXRhci1jb2xvci1uZXV0cmFsIHtcbiAgLS1hdi1iZzogdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYyk7XG4gIC0tYXYtYm9yZGVyOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI3MjgwKTtcbiAgLS1hdi1pY29uOiB2YXIoLS1jLWdyZXktNjAwLCAjNTY1YjY2KTtcbn1cbi8vIFplc2RlIGtsZXVyLCBcInB1cnBsZVwiIChLaW0gMjkuMDcuMjAyNiwgbmEgZGUgdG9lc3RlbHRlc3Q6IGhldCBncmlqemUgcm9uZGplIHZhblxuLy8gaGV0IHN5c3RlZW1iZXJpY2h0IHdhcyBoYWFyIHRlIGdyaWpzOyB6ZSB3aWwgbGljaHRwYWFycyBtZXQgZWVuIGRvbmtlcmRlciBwYWFyc1xuLy8gdGVrZW4pLiBCZWRvZWxkIHZvb3IgaGV0IFFETkEtbWVya3Rla2VuLCBkdXMgdm9vciBcImRpdCBrb210IHZhbiBoZXQgcGxhdGZvcm1cIi5cbi8vIE5ldCBhbHMgbmV1dHJhbCBob29ydCBkZXplIE5JRVQgYmlqIGRlIHZpZXIgcGFzdGVsLW1lbnNlbmtsZXVyZW4uXG4vLyBUb2tlbnMsIGdlZW4gbG9zc2UgaGV4OiBwdXJwbGUtNTAgaXMgaGV0IGxpY2h0c3RlIHZsYWssIHB1cnBsZS01MDAgZGUgaHVpc3N0aWpsLVxuLy8gcGFhcnMgdm9vciBoZXQgdGVrZW4sIHB1cnBsZS0yMDAgYWxzIHJhbmQgZGllIHppY2h0YmFhciBpcyB6b25kZXIgdGUgc2NocmVldXdlbi5cbi8vIENvbnRyYXN0IHRla2VuIG9wIHZsYWs6ICM0MDQ5OWEgb3AgI2U2ZTlmZiBpcyA3LDM6MSwgcnVpbSBib3ZlbiBkZSAzOjEgZGllIFdDQUdcbi8vIDEuNC4xMSB2b29yIG5pZXQtdGVrc3R1ZWxlIGVsZW1lbnRlbiB2cmFhZ3QgKG5hZ2VyZWtlbmQsIG5pZXQgZ2VzY2hhdCkuXG4ucWRuYXByby1hdmF0YXIuYXZhdGFyLWNvbG9yLXB1cnBsZSB7XG4gIC0tYXYtYmc6IHZhcigtLWMtcHVycGxlLTUwLCAjZTZlOWZmKTtcbiAgLS1hdi1ib3JkZXI6IHZhcigtLWMtcHVycGxlLTIwMCwgI2E1YWNmZik7XG4gIC0tYXYtaWNvbjogdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKTtcbn1cbi5xZG5hcHJvLWF2YXRhci5hdmF0YXItbW9kZS1waG90byB7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwKTtcbn1cbi5xZG5hcHJvLWF2YXRhciAuYXZhdGFyLXBob3RvIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLWF2YXRhciAuYXZhdGFyLWluaXRpYWxzIHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MDApO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAuMDVlbSk7XG59XG4ucWRuYXByby1hdmF0YXIuYXZhdGFyLW1vZGUtaW5pdGlhbHMuYXZhdGFyLXNpemUtNzIgLmF2YXRhci1pbml0aWFscyB7XG4gIGZvbnQtc2l6ZTogMjhweDtcbn1cbi5xZG5hcHJvLWF2YXRhci5hdmF0YXItbW9kZS1pbml0aWFscy5hdmF0YXItc2l6ZS00OCAuYXZhdGFyLWluaXRpYWxzIHtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuLnFkbmFwcm8tYXZhdGFyLmF2YXRhci1tb2RlLWluaXRpYWxzLmF2YXRhci1zaXplLTM0IC5hdmF0YXItaW5pdGlhbHMge1xuICBmb250LXNpemU6IDEzcHg7XG59XG4ucWRuYXByby1hdmF0YXIuYXZhdGFyLW1vZGUtaW5pdGlhbHMuYXZhdGFyLXNpemUtMjggLmF2YXRhci1pbml0aWFscyB7XG4gIC8vIEludGVycG9sYXRlZCBiZXR3ZWVuIHNpemUtMjAgKDlweCkgYW5kIHNpemUtMzQgKDEzcHgpOiA5ICsgKDI4LTIwKS8oMzQtMjApICogKDEzLTkpID0gMTEuMjlweCwgcm91bmRlZCB0byAxMXB4LlxuICBmb250LXNpemU6IDExcHg7XG59XG4ucWRuYXByby1hdmF0YXIuYXZhdGFyLW1vZGUtaW5pdGlhbHMuYXZhdGFyLXNpemUtMjAgLmF2YXRhci1pbml0aWFscyB7XG4gIGZvbnQtc2l6ZTogOXB4O1xufVxuLnFkbmFwcm8tYXZhdGFyLmF2YXRhci1tb2RlLWljb24ge1xuICBjb2xvcjogdmFyKC0tYXYtaWNvbik7XG59XG4ucWRuYXByby1hdmF0YXIgLmF2YXRhci1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLWF2YXRhciAuYXZhdGFyLWljb24gc3ZnIHtcbiAgZmlsbDogY3VycmVudENvbG9yO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnFkbmFwcm8tYXZhdGFyLmF2YXRhci1tb2RlLWljb24uYXZhdGFyLXNpemUtNzIgLmF2YXRhci1pY29uIHtcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMzZweDtcbn1cbi5xZG5hcHJvLWF2YXRhci5hdmF0YXItbW9kZS1pY29uLmF2YXRhci1zaXplLTQ4IC5hdmF0YXItaWNvbiB7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG59XG4ucWRuYXByby1hdmF0YXIuYXZhdGFyLW1vZGUtaWNvbi5hdmF0YXItc2l6ZS0zNCAuYXZhdGFyLWljb24ge1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xufVxuLnFkbmFwcm8tYXZhdGFyLmF2YXRhci1tb2RlLWljb24uYXZhdGFyLXNpemUtMjggLmF2YXRhci1pY29uIHtcbiAgLy8gSW50ZXJwb2xhdGVkIGJldHdlZW4gc2l6ZS0yMCAoMTJweCkgYW5kIHNpemUtMzQgKDE4cHgpOiAxMiArICgyOC0yMCkvKDM0LTIwKSAqICgxOC0xMikgPSAxNS40M3B4LCByb3VuZGVkIHRvIDE1cHguXG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG59XG4ucWRuYXByby1hdmF0YXIuYXZhdGFyLW1vZGUtaWNvbi5hdmF0YXItc2l6ZS0yMCAuYXZhdGFyLWljb24ge1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAxMnB4O1xufVxuLy8gTWFyayBtb2RlIOKAlCB0aGUgUUROQSBicmFuZCBtYXJrLCBpbmxpbmVkIGluIHRoZSBjb21wb25lbnQgSlMgd2l0aFxuLy8gZmlsbD1cImN1cnJlbnRDb2xvclwiLiBDb2xvdXIgcmlkZXMgdGhlIHNhbWUgLS1hdi1pY29uIGNoYW5uZWwgYXMgaWNvbiBtb2RlLFxuLy8gc28gdGhlIG1hcmsgdGhlbWVzIHBlciBgY29sb3JgLlxuLnFkbmFwcm8tYXZhdGFyLmF2YXRhci1tb2RlLW1hcmsge1xuICBjb2xvcjogdmFyKC0tYXYtaWNvbik7XG59XG4ucWRuYXByby1hdmF0YXIgLmF2YXRhci1tYXJrIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLWF2YXRhciAuYXZhdGFyLW1hcmsgc3ZnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi8vIEJveCBwZXIgc2l6ZSA9IHJvdW5kKDAuNTggeCBhdmF0YXIgc2l6ZSksIHRoZW4gY2hlY2tlZCBzbyB0aGUgbWFyZ2luIGxlZnRcbi8vIG92ZXIgaXMgbmV2ZXIgc21hbGxlciB0aGFuIHRoZSBjaXJjbGUncyBvd24gcGFkZGluZy4gVGhhdCBrZWVwcyB0aGUgbWFyayBvZmZcbi8vIHRoZSByaW0gYXQgZXZlcnkgc2l6ZSBhbmQgZ2l2ZXMgaXQgdGhlIHNhbWUgb3B0aWNhbCByZXN0IHRoZSBhbmltYWxzIGhhdmUuXG4ucWRuYXByby1hdmF0YXIuYXZhdGFyLW1vZGUtbWFyay5hdmF0YXItc2l6ZS03MiAuYXZhdGFyLW1hcmsge1xuICB3aWR0aDogNDJweDtcbiAgaGVpZ2h0OiA0MnB4O1xufVxuLnFkbmFwcm8tYXZhdGFyLmF2YXRhci1tb2RlLW1hcmsuYXZhdGFyLXNpemUtNDggLmF2YXRhci1tYXJrIHtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbn1cbi5xZG5hcHJvLWF2YXRhci5hdmF0YXItbW9kZS1tYXJrLmF2YXRhci1zaXplLTM0IC5hdmF0YXItbWFyayB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG59XG4ucWRuYXByby1hdmF0YXIuYXZhdGFyLW1vZGUtbWFyay5hdmF0YXItc2l6ZS0yOCAuYXZhdGFyLW1hcmsge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xufVxuLnFkbmFwcm8tYXZhdGFyLmF2YXRhci1tb2RlLW1hcmsuYXZhdGFyLXNpemUtMjAgLmF2YXRhci1tYXJrIHtcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbn1cblxuLnFkbmFwcm8tYXZhdGFyLmF2YXRhci1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbi5xZG5hcHJvLWF2YXRhci5hdmF0YXItbWlzc2luZzo6YWZ0ZXIge1xuICBjb250ZW50OiBcIj9cIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDAuNWVtO1xuICBjb2xvcjogdmFyKC0tYXYtYm9yZGVyKTtcbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL2F2YXRhci1zdGFjay9fYXZhdGFyLXN0YWNrLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi5xZG5hcHJvLWF2YXRhci1zdGFjayB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnFkbmFwcm8tYXZhdGFyLXN0YWNrIFtkYXRhLXJvbGU9c3RhY2staXRlbV0ge1xuICBmbGV4LXNocmluazogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnFkbmFwcm8tYXZhdGFyLXN0YWNrIFtkYXRhLXN0YWNrLWhpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnFkbmFwcm8tYXZhdGFyLXN0YWNrIFtkYXRhLXJvbGU9b3ZlcmZsb3ddIHtcbiAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5xZG5hcHJvLWF2YXRhci1zdGFja1tkYXRhLXNpemU9XCIyMFwiXSBbZGF0YS1yb2xlPXN0YWNrLWl0ZW1dIHtcbiAgbWFyZ2luLXJpZ2h0OiAtNnB4O1xufVxuXG4ucWRuYXByby1hdmF0YXItc3RhY2tbZGF0YS1zaXplPVwiMzRcIl0gW2RhdGEtcm9sZT1zdGFjay1pdGVtXSB7XG4gIG1hcmdpbi1yaWdodDogLTEwcHg7XG59XG5cbi5xZG5hcHJvLWF2YXRhci1zdGFja1tkYXRhLXNpemU9XCI0OFwiXSBbZGF0YS1yb2xlPXN0YWNrLWl0ZW1dIHtcbiAgbWFyZ2luLXJpZ2h0OiAtMTRweDtcbn1cblxuLnFkbmFwcm8tYXZhdGFyLXN0YWNrW2RhdGEtc2l6ZT1cIjcyXCJdIFtkYXRhLXJvbGU9c3RhY2staXRlbV0ge1xuICBtYXJnaW4tcmlnaHQ6IC0yMnB4O1xufVxuXG4ucWRuYXByby1hdmF0YXItc3RhY2sgW2RhdGEtcm9sZT1zdGFjay1pdGVtXVtkYXRhLXN0YWNrLWxhc3RdIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4vKiB2YXJpYW50PVwiYnV0dG9uXCI6IHRoZSB3aG9sZSBzdGFjayBhY3RzIGxpa2UgYSBzdWJ0bGUtcHVycGxlIGJ1dHRvblxuICAgKGhvdmVyIC8gYWN0aXZlIC8gZm9jdXMpLCBmb3IgdXNlIG9uIGEgbGlnaHQtcHVycGxlIHN1cmZhY2UuIFtLaW0gMjAyNi0wNi0xN10gKi9cbi5xZG5hcHJvLWF2YXRhci1zdGFja1t2YXJpYW50PVwiYnV0dG9uXCJdIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiA0cHggOHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2UsIGJveC1zaGFkb3cgMTIwbXMgZWFzZTtcbn1cbi5xZG5hcHJvLWF2YXRhci1zdGFja1t2YXJpYW50PVwiYnV0dG9uXCJdOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ib3JkZXItdHJlZS1icmlnaHQpO1xufVxuLnFkbmFwcm8tYXZhdGFyLXN0YWNrW3ZhcmlhbnQ9XCJidXR0b25cIl06YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWRlYmFyLWljb24pO1xufVxuLnFkbmFwcm8tYXZhdGFyLXN0YWNrW3ZhcmlhbnQ9XCJidXR0b25cIl06Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDY0LCA3MywgMTU0LCAwLjQ1KTtcbn1cbiIsIi8vIF9iYWNrZ3JvdW5kLXBpY2tlci5zY3NzXG4vL1xuLy8gcWRuYXByby1iYWNrZ3JvdW5kLXBpY2tlciAtIEZhY2Vib29rLXN0eWxlIFwidGV4dCBvbiBiYWNrZ3JvdW5kXCIgcGlja2VyXG4vLyBmb3IgUHVsc2UuIEEgY29tcGFjdCBTVFJJUCBvZiB0aWxlcyB0aGF0IGV4cGFuZHMgaW50byBhIGZ1bGwgZ3JpZCB2aWEgYVxuLy8gYGJhcmVgIHFkbmFwcm8tcG9wb3Zlci4gU2VlIHFkbmEtYmFja2dyb3VuZC1waWNrZXIuanMgZm9yIHRoZSBmdWxsXG4vLyBkb2NibG9jayAoZGF0YSBzb3VyY2UsIHR3by1sYXllciBjb2xvdXIrcGF0dGVybiBtb2RlbCwgZXZlbnRzKS5cbi8vXG4vLyBUSUxFIEFOQVRPTVkuIEV2ZXJ5IHRpbGUgaXMgYSBwbGFpbiA0MHg0MCBidXR0b246XG4vLyAgIC0gYSBmbGF0IGNvbG91cjogYmFja2dyb3VuZCBpcyB0aGUgY29sb3VyIGl0c2VsZiAoYC0tcWJwLXN3YXRjaGApLlxuLy8gICAtIGEgcGF0dGVybjogdGhlIFNBTUUgY29sb3VyIGJhY2tncm91bmQsIHBsdXMgYSBzZWNvbmQgYWJzb2x1dGVseVxuLy8gICAgIHBvc2l0aW9uZWQgbGF5ZXIgKGRvdWJsZWQgdmlhIGA6OmFmdGVyYCwgc2VlIGJlbG93KSBtYXNrZWQgd2l0aCB0aGVcbi8vICAgICBwYXR0ZXJuIFNWRyBhbmQgdGludGVkIHZpYSBgLS1xYnAtcGF0dGVybi10aW50YCAoYG1hc2staW1hZ2VgLCBub3Rcbi8vICAgICBgYmFja2dyb3VuZC1pbWFnZWAgLSB0aGUgcGF0dGVybiBTVkdzIGFyZSBgZmlsbD1cImN1cnJlbnRDb2xvclwiYCwgYnV0XG4vLyAgICAgYW4gRVhURVJOQUwgc3ZnIGxvYWRlZCBhcyBhIG1hc2svYmFja2dyb3VuZCBpbWFnZSBuZXZlciBpbmhlcml0c1xuLy8gICAgIHBhZ2UgQ1NTLCBzbyBtYXNraW5nIGEgcGxhaW4gdGludGVkIGxheWVyIGlzIHRoZSBvbmx5IHdheSB0b1xuLy8gICAgIHJlY29sb3VyIHRoZW0gcGVyIGNvbG91ciBjaG9pY2UpLiBUaGUgbWFzayBpcyBzaXplZC9wb3NpdGlvbmVkIFBFUlxuLy8gICAgIFBBVFRFUk4gdmlhIGAtLXFicC1wYXR0ZXJuLW1hc2stc2l6ZWAvYC0tcWJwLXBhdHRlcm4tbWFzay1wb3MteGAvXG4vLyAgICAgYC0tcWJwLXBhdHRlcm4tbWFzay1wb3MteWAgKHNldFxuLy8gICAgIGlubGluZSBieSBxZG5hLWJhY2tncm91bmQtcGlja2VyLmpzJ3MgYF9wYXR0ZXJuTWFza0dlb21ldHJ5KClgLCBzZWVcbi8vICAgICB0aGUgY29tbWVudCBvbiBgLnFicC10aWxlLXBhdHRlcm4tbGF5ZXJgIGJlbG93KSAtIG5vdCBvbmUgZmxhdFxuLy8gICAgIDQweDQwLCBiZWNhdXNlIHRoZSBzaXggcGF0dGVybiBTVkdzIGFyZSBub3QgdGhlIHNhbWUgbmF0aXZlIHNpemUuXG4vLyAgIC0gXCJubyBiYWNrZ3JvdW5kXCIgLyBcIm93biBwaWN0dXJlXCIgLyBcIm5vIHBhdHRlcm5cIiAvIFwib3BlbiBmdWxsIGdyaWRcIjpcbi8vICAgICBhIG5ldXRyYWwgZ3JleSB0aWxlIHdpdGggYW4gTURJIGljb24gKHFkbmFwcm8taWNvbiwgY29sb3VyIHZpYVxuLy8gICAgIGN1cnJlbnRDb2xvcikuXG4vLyAgIC0gdGhlIENPTE9VUiBXSEVFTCAoa2FhcnQgNiwgQk9BUkQtcHVsc2Uta2FhcnQtcHJvcG9ydGlvbmVlbCk6IGEgcm91bmRcbi8vICAgICBjb25pYy1ncmFkaWVudCBmYWNlIG9uIHRoZSBuZXV0cmFsIHRpbGUgLSB0aGUgdGlsZSB0aGF0IG9wZW5zIHRoZVxuLy8gICAgIFwib3duIGJhY2tncm91bmQgY29sb3VyXCIgcGFuZWwuIFRoZSB3aGVlbCBpcyBidWlsdCBmcm9tIHRoZSBkZXNpZ25cbi8vICAgICB0b2tlbnMgKHJlZC9vcmFuZ2UveWVsbG93L2dyZWVuL2JsdWUvcHVycGxlKSwgc28gaXQgbmVlZHMgbm8gY29sb3VyXG4vLyAgICAgZGF0YSBmcm9tIHRoZSBKUyBhbmQgbm8gaGV4IG9mIGl0cyBvd24uXG4vLyAgIC0gdGhlIFRFWFQgQ09MT1VSIHRpbGUgKGthYXJ0IDYpOiBhIG1hcmtlciBnbHlwaCBwbHVzIGEgYmFyIGluIHRoZVxuLy8gICAgIEFDVElWRSB0ZXh0IGNvbG91ciAoYC0tcWJwLXRleHQtc3dhdGNoYCwgc2V0IGlubGluZSBieSB0aGUgSlMgLSBhXG4vLyAgICAgcnVudGltZSBjb2xvdXIsIG9uZSBvZiB0aGUgZG9jdW1lbnRlZCBpbmxpbmUgZXhjZXB0aW9ucykuIEl0IG5ldmVyXG4vLyAgICAgc2hvd3MgdGhlIHNlbGVjdGVkIHJpbmc6IHRoZSBzdHJpcCBpcyBhIHJhZGlvZ3JvdXAgYWJvdXQgdGhlXG4vLyAgICAgQkFDS0dST1VORCwgYW5kIGEgcmluZyBoZXJlIHdvdWxkIHJlYWQgYXMgXCJ0aGlzIGJhY2tncm91bmQgaXMgb25cIi5cbi8vIFNlbGVjdGlvbiBpcyBhIHNtYWxsIHdoaXRlIGNoZWNrIGJhZGdlIGJvdHRvbS1yaWdodCAoYC5xYnAtdGlsZS1jaGVja2ApIC1cbi8vIE5PVCBhIGZ1bGwtdGlsZSBvdmVybGF5IC0gc28gaXQgbmV2ZXIgZmlnaHRzIGZvciBjb250cmFzdCB3aXRoIGFuXG4vLyBhcmJpdHJhcnkgc3dhdGNoL3BhdHRlcm4gY29sb3VyIHVuZGVybmVhdGggaXQuXG5cbi5xZG5hcHJvLWJhY2tncm91bmQtcGlja2VyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnFkbmFwcm8tYmFja2dyb3VuZC1waWNrZXIgKixcbi5xZG5hcHJvLWJhY2tncm91bmQtcGlja2VyICo6OmJlZm9yZSxcbi5xZG5hcHJvLWJhY2tncm91bmQtcGlja2VyICo6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ucWJwLXN0cmlwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbn1cblxuLy8gLS0tIFNoYXJlZCB0aWxlIGNocm9tZSAtLS1cbi5xYnAtdGlsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcWJwLXN3YXRjaCwgdmFyKC0tYy1ncmV5LTUwLCAjZjJmM2Y1KSk7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxMjBtcyBlYXNlLCBib3gtc2hhZG93IDEyMG1zIGVhc2UsIGJvcmRlci1jb2xvciAxMjBtcyBlYXNlO1xufVxuXG4ucWJwLXRpbGU6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cblxuLnFicC10aWxlOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDAuOTYpO1xufVxuXG4ucWJwLXRpbGU6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtcmluZyksIDAgMCAwIDVweCB2YXIoLS1mb2N1cy1nbG93KTtcbn1cblxuLnFicC10aWxlLnFicC10aWxlLXNlbGVjdGVkIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWZvY3VzLXJpbmcpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1yaW5nKSwgMCAwIDAgNXB4IHZhcigtLWZvY3VzLWdsb3cpO1xufVxuXG4vLyBOZXV0cmFsIGljb24gdGlsZXM6IG5vbmUgLyB1cGxvYWQgKG5vIGltYWdlIHlldCkgLyBvcGVuLWdyaWQgLyBuby1wYXR0ZXJuLlxuLnFicC10aWxlLW5vbmUsXG4ucWJwLXRpbGUtdXBsb2FkOm5vdCgucWJwLXRpbGUtaGFzLWltYWdlKSxcbi5xYnAtdGlsZS1ncmlkLFxuLnFicC10aWxlLXBhdHRlcm4tbm9uZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwLCAjZjJmM2Y1KTtcbn1cblxuLy8gRmxhdCBjb2xvdXIgc3dhdGNoIC0gdGhlIHRpbGUncyBvd24gYmFja2dyb3VuZCBJUyB0aGUgY29sb3VyLlxuLnFicC10aWxlLWNvbG9yIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1xYnAtc3dhdGNoKTtcbn1cblxuLy8gUGF0dGVybiBzd2F0Y2g6IHNhbWUgZmxhdCBjb2xvdXIgdW5kZXJuZWF0aCwgbWFza2VkIHBhdHRlcm4gbGF5ZXIgb24gdG9wLlxuLnFicC10aWxlLXBhdHRlcm4ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXFicC1zd2F0Y2gpO1xufVxuXG4vLyBHRUJSRUsgMSAtIHR3ZWVkZSBoZXJzdGVscm9uZGUgKGthYXJ0IDRjKTogYC0tcWJwLXBhdHRlcm4tbWFzay1zaXplYCAvXG4vLyBgLS1xYnAtcGF0dGVybi1tYXNrLXBvcy14YCAvIGAtLXFicC1wYXR0ZXJuLW1hc2stcG9zLXlgIGNvbWUgZnJvbVxuLy8gYF9wYXR0ZXJuTWFza0dlb21ldHJ5KClgIGluIHFkbmEtYmFja2dyb3VuZC1waWNrZXIuanMgLSBwZXIgUEFUVEVSTiwgbm90XG4vLyBvbmUgZmxhdCBudW1iZXIsIGJlY2F1c2UgdGhlIHNpeCBwYXR0ZXJuIFNWR3MgYXJlIG5vdCB0aGUgc2FtZSBuYXRpdmVcbi8vIHNpemUgKDEwMC0xNDBweCkgQU5EIGVhY2ggcGF0dGVybidzIGNob3NlbiBtb3RpZiBzaXRzIGF0IGEgZGlmZmVyZW50XG4vLyAoY3gsIGN5KSBpbnNpZGUgdGhhdCBuYXRpdmUgc2l6ZSAoc2VlIFBBVFRFUk5fTU9USUYpLCBzbyB4IGFuZCB5IG5lZWRcbi8vIHRoZWlyIE9XTiBvZmZzZXQsIG5vdCBvbmUgc2hhcmVkIHZhbHVlLiBUaGUgbWFzayBpcyB6b29tZWQgaW4gKGFcbi8vIG1hc2stc2l6ZSB3ZWxsIEFCT1ZFIHRoZSBTVkcncyBvd24gbmF0aXZlIHNpemUpIHNvIHRoYXQgb25lIHNwZWNpZmljXG4vLyBtb3RpZiAtIG5vdCBcInRoZSB3aG9sZSBwYXR0ZXJuXCIgYW5kIG5vdCB0aGUgc2VhbSB3aGVyZSBzZXZlcmFsXG4vLyBuZWlnaGJvdXJpbmcgbW90aWZzIG1lZXQgLSBmaWxscyB+NjUlIG9mIHRoZSA0MHB4IHRpbGUgYW5kIHJlYWRzIGFzIGFuXG4vLyBhY3R1YWwgaGVhcnQvZmxvd2VyL3N0YXIvZXRjLiBGYWxscyBiYWNrIHRvIGEgZmxhdCA0MHB4LzAvMCBtYXNrIGlmIHRoZVxuLy8gY3VzdG9tIHByb3BlcnRpZXMgYXJlIGV2ZXIgbWlzc2luZyAoZS5nLiBhIGZ1dHVyZSBwYXR0ZXJuIHRoaXNcbi8vIGNvbXBvbmVudCBkb2Vzbid0IGtub3cgdGhlIGdlb21ldHJ5IG9mKS5cbi8vXG4vLyBUaGUgYDo6YWZ0ZXJgIGR1cGxpY2F0ZSBzdGFja3MgdGhlIFNBTUUgbWFza2VkLCB0aW50ZWQgbGF5ZXIgb24gdG9wIG9mXG4vLyBpdHNlbGYuIFRoaXMgaXMgYSBUSUxFLU9OTFkgY29udHJhc3QgYm9vc3Q6IHRoZSBTVkdzJyBvd24gcGVyLW1vdGlmXG4vLyBgZmlsbC1vcGFjaXR5YCAoMC4xMi0wLjMsIGRlbGliZXJhdGVseSBzdWJ0bGUgc28gdGhlIHJlYWwsIG11Y2ggbGFyZ2VyXG4vLyBQdWxzZSBjYXJkIHN0YXlzIHJlYWRhYmxlIGJlaGluZCBpdCkgaXMgc2hhcmVkLCBvdXQtb2Ytc2NvcGUgZGF0YSB1c2VkXG4vLyBlbHNld2hlcmUgdG9vIC0gaXQgaXMgbm90IHNvbWV0aGluZyB0aGlzIGNvbXBvbmVudCBtYXkgY2hhbmdlLiBUd29cbi8vIGlkZW50aWNhbCBzZW1pLXRyYW5zcGFyZW50IGxheWVycyBvbiB0b3Agb2YgZWFjaCBvdGhlciBjb21wb3VuZCB0aGVpclxuLy8gYWxwaGEgKGUuZy4gdHdvIDAuMy1vcGFxdWUgbGF5ZXJzIHJlYWQgYXMgfjAuNTEpLCB3aGljaCBpcyBleGFjdGx5IHRoZVxuLy8gXCJ0ZWdlbCBtYWcgYmVzdCBuYWRydWtrZWxpamssIGRlIGthYXJ0IHplbGYgbmlldFwiIGNvbnRyYXN0IEtpbSBhc2tlZFxuLy8gZm9yLCB3aXRob3V0IHRvdWNoaW5nIHRoYXQgc2hhcmVkIHRpbnQvb3BhY2l0eSBkYXRhIGF0IGFsbC5cbi5xYnAtdGlsZS1wYXR0ZXJuLWxheWVyLFxuLnFicC10aWxlLXBhdHRlcm4tbGF5ZXI6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcWJwLXBhdHRlcm4tdGludCk7XG4gICAgbWFzay1pbWFnZTogdmFyKC0tcWJwLXBhdHRlcm4tdXJsKTtcbiAgICBtYXNrLXNpemU6IHZhcigtLXFicC1wYXR0ZXJuLW1hc2stc2l6ZSwgNDBweCkgdmFyKC0tcWJwLXBhdHRlcm4tbWFzay1zaXplLCA0MHB4KTtcbiAgICBtYXNrLXBvc2l0aW9uOiB2YXIoLS1xYnAtcGF0dGVybi1tYXNrLXBvcy14LCAwKSB2YXIoLS1xYnAtcGF0dGVybi1tYXNrLXBvcy15LCAwKTtcbiAgICBtYXNrLXJlcGVhdDogcmVwZWF0O1xuICAgIC13ZWJraXQtbWFzay1pbWFnZTogdmFyKC0tcWJwLXBhdHRlcm4tdXJsKTtcbiAgICAtd2Via2l0LW1hc2stc2l6ZTogdmFyKC0tcWJwLXBhdHRlcm4tbWFzay1zaXplLCA0MHB4KSB2YXIoLS1xYnAtcGF0dGVybi1tYXNrLXNpemUsIDQwcHgpO1xuICAgIC13ZWJraXQtbWFzay1wb3NpdGlvbjogdmFyKC0tcWJwLXBhdHRlcm4tbWFzay1wb3MteCwgMCkgdmFyKC0tcWJwLXBhdHRlcm4tbWFzay1wb3MteSwgMCk7XG4gICAgLXdlYmtpdC1tYXNrLXJlcGVhdDogcmVwZWF0O1xufVxuXG4ucWJwLXRpbGUtcGF0dGVybi1sYXllcjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG59XG5cbi8vIFJlYWR5LW1hZGUgc2NlbmUgdGlsZSAoa2FhcnQgMTYpIC0gdGhlIFNWRyBzY2VuZSBpdHNlbGYgSVMgdGhlIHRodW1ibmFpbCxcbi8vIHNob3duIGNvdmVyLWZpdDsgdW5saWtlIGEgcGF0dGVybiB0aGVyZSBpcyBubyBtYXNrL3RpbnQgbWF0aCwgYSBzY2VuZSBpc1xuLy8gb25lIGZ1bGwgaWxsdXN0cmF0aW9uIHJhdGhlciB0aGFuIGEgcmVwZWF0aW5nIG1vdGlmLlxuLnFicC10aWxlLXNjZW5lIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1xYnAtc2NlbmUtdXJsKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbn1cblxuLy8gLS0tIEthYXJ0IDY6IGNvbG91ciB3aGVlbCArIHRleHQgY29sb3VyIHRpbGVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBUaGUgd2hlZWwgdGlsZSBrZWVwcyB0aGUgbmV1dHJhbCB0aWxlIGJhY2tncm91bmQ7IHRoZSB3aGVlbCBpdHNlbGYgaXMgYVxuLy8gcm91bmQgZmFjZSBpbnNpZGUgaXQuIFNhbWUgXCJhbnkgY29sb3VyIHlvdSBsaWtlXCIgbGFuZ3VhZ2UgYXNcbi8vIHFkbmFwcm8tY29sb3ItcGFuZWwncyBvd24gLnFjcDItbW9yZS1zd2F0Y2ggKHdoaWNoIGlzIGV4YWN0bHkgd2hlcmUgdGhpc1xuLy8gdGlsZSBsZWFkcyksIGJ1dCBidWlsdCBmcm9tIFRPS0VOUyBpbnN0ZWFkIG9mIGEgbGl0ZXJhbCByYWluYm93IHNvIHRoZXJlXG4vLyBpcyBubyBuZXcgY29sb3VyIGRhdGEgaW4gdGhpcyBmaWxlLlxuLnFicC10aWxlLXdoZWVsIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTAsICNmMmYzZjUpO1xufVxuXG4ucWJwLXRpbGUtd2hlZWwtZmFjZSB7XG4gICAgd2lkdGg6IDIycHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LCByZ2JhKDAsIDAsIDAsIDAuMDcpKTtcbiAgICBiYWNrZ3JvdW5kOiBjb25pYy1ncmFkaWVudChcbiAgICAgICAgZnJvbSAwZGVnLFxuICAgICAgICB2YXIoLS1jLXdhcm4tcmVkLTUwMCwgI2RjMjYyNiksXG4gICAgICAgIHZhcigtLWMtd2Fybi1vcmFuZ2UtNTAwLCAjZWE1ODBjKSxcbiAgICAgICAgdmFyKC0tYy13YXJuLXllbGxvdy01MDAsICNmYmJmMjQpLFxuICAgICAgICB2YXIoLS1jLXN1Y2Nlc3MtNTAwLCAjMTI4MDVlKSxcbiAgICAgICAgdmFyKC0tYy1hY3Rpb24tNTAwLCAjNDY1MmYzKSxcbiAgICAgICAgdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKSxcbiAgICAgICAgdmFyKC0tYy13YXJuLXJlZC01MDAsICNkYzI2MjYpXG4gICAgKTtcbn1cblxuLy8gVGhlIHRleHQtY29sb3VyIHRpbGU6IGdseXBoIG9uIHRvcCwgYSBjb2xvdXIgYmFyIHVuZGVyIGl0LiBgZmxleC1kaXJlY3Rpb246XG4vLyBjb2x1bW5gIG92ZXJyaWRlcyB0aGUgc2hhcmVkIHRpbGUgY2VudHJpbmcgZm9yIHRoaXMgb25lIHRpbGUgb25seSwgc28gdGhlXG4vLyBiYXIgc2l0cyB1bmRlciB0aGUgZ2x5cGggaW5zdGVhZCBvZiBuZXh0IHRvIGl0LlxuLnFicC10aWxlLXRleHQtY29sb3Ige1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAycHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwLCAjZjJmM2Y1KTtcbn1cblxuLnFicC10aWxlLXRleHQtYmFyIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDRweDtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgLy8gTm8gY29sb3VyIGNob3NlbiAob3IgXCJBdXRvbWF0aXNjaFwiKTogYSBuZXV0cmFsIGJhciwgc28gdGhlIHRpbGUgc3RpbGxcbiAgICAvLyByZWFkcyBhcyBcInRleHQgY29sb3VyXCIgd2l0aG91dCBjbGFpbWluZyBhIGNvbG91ciBpdCBkb2VzIG5vdCBoYXZlLlxuICAgIGJhY2tncm91bmQ6IHZhcigtLXFicC10ZXh0LXN3YXRjaCwgdmFyKC0tYy1ncmV5LTMwMCwgI2M0YzdjYykpO1xufVxuXG4vLyBBIGNob3NlbiBXSElURSB0ZXh0IGNvbG91ciB3b3VsZCBiZSBhbiBpbnZpc2libGUgYmFyIG9uIHRoZSBsaWdodCB0aWxlIC1cbi8vIHRoZSBoYWlybGluZSBrZWVwcyBpdHMgZWRnZSByZWFkYWJsZS4gQXBwbGllZCB0byBldmVyeSBleHBsaWNpdCBjaG9pY2UsIG5vdFxuLy8ganVzdCB3aGl0ZTogb25lIHJ1bGUgaW5zdGVhZCBvZiBhIHBlci1jb2xvdXIgY29udHJhc3QgZGVjaXNpb24sIHNhbWVcbi8vIHJlYXNvbmluZyBhcyB0aGUgLnFicC10aWxlLWNoZWNrIGJhZGdlIGFib3ZlLlxuLnFicC10aWxlLXRleHQtY29sb3Itc2V0IC5xYnAtdGlsZS10ZXh0LWJhciB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWMtYm9yZGVyLXNvZnQsIHJnYmEoMCwgMCwgMCwgMC4wNykpO1xufVxuXG4vLyBPd24gdXBsb2FkZWQgcGljdHVyZSAtIGZpbGxzIHRoZSB0aWxlIG9uY2UgdGhlIGhvc3Qgc2V0cyBgaW1hZ2VgLlxuLnFicC10aWxlLWltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vLyBTZWxlY3Rpb24gYmFkZ2UgLSBhIHNtYWxsIHdoaXRlIGNpcmNsZSBzbyB0aGUgY2hlY2ttYXJrIHJlYWRzIG9uIEFOWVxuLy8gc3dhdGNoL3BhdHRlcm4gY29sb3VyIHVuZGVybmVhdGggaXQsIGluc3RlYWQgb2YgYSBmdWxsLXRpbGUgb3ZlcmxheSB0aGF0XG4vLyB3b3VsZCBuZWVkIGEgcGVyLWNvbG91ciBjb250cmFzdCBkZWNpc2lvbi5cbi5xYnAtdGlsZS1jaGVjayB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAtMnB4O1xuICAgIGJvdHRvbTogLTJweDtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxMjBtcyBlYXNlLCB0cmFuc2Zvcm0gMTIwbXMgZWFzZTtcbn1cblxuLnFicC10aWxlLXNlbGVjdGVkIC5xYnAtdGlsZS1jaGVjayB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xufVxuXG4ucWJwLXRpbGUtY2hlY2s6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA0cHg7XG4gICAgdG9wOiA1cHg7XG4gICAgd2lkdGg6IDZweDtcbiAgICBoZWlnaHQ6IDRweDtcbiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigtLWZvY3VzLXJpbmcpO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS1mb2N1cy1yaW5nKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xufVxuXG4vLyAtLS0gRnVsbCBncmlkIChob3N0ZWQgaW5zaWRlIGEgYGJhcmVgIHFkbmFwcm8tcG9wb3Zlciwgc28gVEhJUyBwYW5lbFxuLy8gc3VwcGxpZXMgYWxsIGl0cyBvd24gY2hyb21lIC0gYmFja2dyb3VuZC9ib3JkZXIvcmFkaXVzL3NoYWRvdyAtIHNhbWVcbi8vIFwiYmFyZSBob3N0cyBhIHNlbGYtY2hyb21lZCBjaGlsZFwiIGlkaW9tIHFkbmFwcm8tcG9wb3ZlcidzIG93biBkb2NibG9ja1xuLy8gZGVzY3JpYmVzIGZvciBhIGhvc3RlZCBxZG5hcHJvLW1lbnUpIC0tLVxuLnFicC1ncmlkLXBhbmVsIHtcbiAgICB3aWR0aDogMjkycHg7XG4gICAgbWF4LWhlaWdodDogMzYwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBib3gtc2hhZG93OiAwIDEycHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMTYpO1xufVxuXG4ucWJwLWdyaWQtcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbn1cblxuLnFicC1ncmlkLXNlY3Rpb24ge1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG59XG5cbi8vIEhlYWRpbmcgYWJvdmUgdGhlIHNjZW5lcyBzZWN0aW9uIChrYWFydCAxNikgLSB0aGUgY29sb3Vycy9wYXR0ZXJuc1xuLy8gc2VjdGlvbnMgYWJvdmUgaGF2ZSBub25lLCBidXQgXCJhIHJlYWR5LW1hZGUgc2NlbmVcIiBpcyBhIGxlc3Ncbi8vIHNlbGYtZXZpZGVudCBraW5kIGF0IGEgZ2xhbmNlIHRoYW4gYSBmbGF0IGNvbG91ciBvciBhIHNtYWxsIHRpbGVhYmxlXG4vLyBwYXR0ZXJuLCBzbyB0aGlzIG9uZSBzZWN0aW9uIGdldHMgYSBsYWJlbC5cbi5xYnAtZ3JpZC1oZWFkaW5nIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC40cHg7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG59XG5cbi8vIC0tLSBLYWFydCA2OiB0aGUgY29sb3VyLXBhbmVsIGZseW91dHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRoZSBjYXJkIFJFVVNFUyAucWJwLWdyaWQtcGFuZWwgYWJvdmUgKGJhY2tncm91bmQvYm9yZGVyL3JhZGl1cy9zaGFkb3cpIHNvXG4vLyB0aGUgdHdvIGZseW91dHMgb2YgdGhpcyBjb21wb25lbnQgYXJlIHZpc2libHkgdGhlIHNhbWUgb2JqZWN0OyBvbmx5IHRoZVxuLy8gc2l6ZSBkaWZmZXJzLiBgbWF4LWhlaWdodDogbm9uZWAgYmVjYXVzZSBhIGNvbG91ciBwYW5lbCBuZXZlciBuZWVkcyB0b1xuLy8gc2Nyb2xsIC0gaXQgaXMgYXQgbW9zdCBzaXggc3dhdGNoZXMsIGFuIEF1dG9tYXRpc2NoIGJ1dHRvbiBhbmQgb25lIHJvdy5cbi5xYnAtY29sb3ItcGFuZWwtY2FyZCB7XG4gICAgd2lkdGg6IDI0OHB4O1xuICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi5xYnAtZ3JpZC1wYXR0ZXJuLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xufVxuIiwiLy8gcWRuYXByby1iYXR0bGUtYmFyIC0gUHVsc2UgdGVhbWJhdHRsZSBzdGFuZCwgdGhyZWUgdmFyaWFudHMgKHR1ZyAvIHJhbmsgL1xuLy8gY2hpcCkuIFNlZSB0aGUgY29tcG9uZW50J3Mgb3duIGRvY2Jsb2NrIGZvciB0aGUgZnVsbCBjb250cmFjdC4gTkVTVEVEXG4vLyBTQ1NTIChyZWFsIGAmYC1uZXN0aW5nIGJlbG93IGZvciBob3Zlci9mb2N1cy12aXNpYmxlL2RhcmstbW9kZSksIHNvIHRoZVxuLy8gUFdBIHN5bmMgZW50cnkgbmVlZHMgY29tcGlsZVNjc3M6IHRydWUgLSBhIGZsYXQgXCIvL1wiLXN0cmlwIGNvcHkgd291bGQgc2hpcFxuLy8gdGhlIGxpdGVyYWwgYCZgIHNlbGVjdG9ycy4gRWRpdCBIRVJFLCB0aGVuIGBndWxwIHNhc3NgICsgYGd1bHAgc2Fzcy12MWAuXG5cbi5xZG5hcHJvLWJhdHRsZS1iYXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xufVxuXG4vLyAtLS0tIEludGVyYWN0aXZlIGFmZm9yZGFuY2UgKHR1Zy9yYW5rIHdpdGggdGhlIGBpbnRlcmFjdGl2ZWAgYXR0cmlidXRlKSAtLS0tXG4vLyBTYW1lIG91dGxpbmU6bm9uZSArIGZvY3VzLXZpc2libGUgYm94LXNoYWRvdyByaW5nIHBhdHRlcm4gYXMgZXZlcnkgb3RoZXJcbi8vIHYyIGNvbXBvbmVudCAtIE5FVkVSIHRoZSBib290c3RyYXAgYmx1ZSBvdXRsaW5lLlxuLnFkbmFwcm8tYmF0dGxlLWJhci5pcy1pbnRlcmFjdGl2ZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMiwgOHB4KTtcbn1cbi5xZG5hcHJvLWJhdHRsZS1iYXIuaXMtaW50ZXJhY3RpdmU6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG4vLyAuZm9yY2UtZm9jdXMgbGV0cyB0aGUgc2hhcmVkIGxpYnJhcnkgcHJldmlldydzIFwiZm9jdXNcIiB0b29sYmFyIHRvZ2dsZVxuLy8gZGVtb25zdHJhdGUgdGhpcyByaW5nIG9uIGRlbWFuZCAoc2FtZSBjb252ZW50aW9uIGFzIHFkbmFwcm8tYnV0dG9uL1xuLy8gcWRuYXByby1jaGVja2JveC9xZG5hcHJvLWV2ZW50LWNhcmQgLSBzZWUgdGhlaXIgb3duIDpmb2N1cy12aXNpYmxlIHJ1bGVzKS5cbi5xZG5hcHJvLWJhdHRsZS1iYXIuaXMtaW50ZXJhY3RpdmU6Zm9jdXMtdmlzaWJsZSxcbi5xZG5hcHJvLWJhdHRsZS1iYXIuaXMtaW50ZXJhY3RpdmUuZm9yY2UtZm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLXJpbmcpLCAwIDAgMCA1cHggdmFyKC0tZm9jdXMtZ2xvdyk7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBWYXJpYW50IDEgLSBUcmVrYmFsayAoZXhhY3RseSAyIHRlYW1zKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi5xZG5hcHJvLWJhdHRsZS1iYXItLXR1ZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNHB4O1xufVxuLmJiLXR1Zy1uYW1lcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZm9udDogNjAwIDEycHgvMS4yIHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xufVxuLmJiLXR1Zy1uYW1lIHtcbiAgICAvLyBjb2xvdXIgaXMgc2V0IGlubGluZSBwZXIgdGVhbSAoY29sb3JJbmRleCksIHNlZSBxZG5hLWJhdHRsZS1iYXIuanNcbiAgICBtYXgtd2lkdGg6IDQ4JTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uYmItdHVnLW5hbWUtLWIge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLmJiLXR1Zy1iYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgaGVpZ2h0OiAxMnB4O1xuICAgIC8vIDZweCBwZXIgdGhlIGRlc2lnbiAoREVTSUdOLXB1bHNlLWJhdHRsZS1wbGVrLmh0bWwgLnR1Z2JhcikgLSBub3QgdGhlXG4gICAgLy8gc2FtZSBhcyBhbnkgLS1yLSogc3RlcCAoLS1yLTIgaXMgOHB4KSwgc28gYSBwbGFpbiB2YWx1ZSwgbm90IGEgdG9rZW5cbiAgICAvLyBmYWxsYmFjayB0aGF0IHdvdWxkIHNpbGVudGx5IG5ldmVyIGFwcGx5LlxuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmJiLXR1Zy1maWxsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgLy8gYmFja2dyb3VuZCBjb2xvdXIgc2V0IGlubGluZSBwZXIgdGVhbSAoY29sb3JJbmRleClcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAyMDBtcyBlYXNlLW91dDtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLmJiLXR1Zy1maWxsIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG59XG4uYmItdHVnLXN1YiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiB2YXIoLS1zLTIsIDhweCk7XG4gICAgZm9udDogNDAwIDExcHgvMS4zIHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xufVxuLmJiLXR1Zy1zdWIgc3BhbjpmaXJzdC1jaGlsZCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5iYi10dWctc3ViIHNwYW46bGFzdC1jaGlsZCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uYmItdHVnLXN1YiBzcGFuOm50aC1jaGlsZCgyKSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVmFyaWFudCAyIC0gUG9zaXRpZS1yZWdlbCAoMysgdGVhbXMpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLnFkbmFwcm8tYmF0dGxlLWJhci0tcmFuayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tcy0zLCAxMHB4KTtcbn1cbi5iYi1yYW5rLWJhcnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGdhcDogM3B4O1xuICAgIGhlaWdodDogMjZweDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbn1cbi5iYi1yYW5rLW1pbmkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIC8vIGJhY2tncm91bmQgY29sb3VyIHNldCBpbmxpbmUgKG11dGVkIGxpbmUgY29sb3VyLCBvciB0aGUgdGVhbSBjb2xvdXJcbiAgICAvLyB3aGVuIHRoaXMgYmFyIGJlbG9uZ3MgdG8geW91ciBvd24gdGVhbSlcbn1cbi5iYi1yYW5rLWluZm8ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbn1cbi5iYi1yYW5rLWxpbmUxIHtcbiAgICBmb250OiA2MDAgMTNweC8xLjMgdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uYmItcmFuay12YWx1ZSB7XG4gICAgLy8gY29sb3VyIHNldCBpbmxpbmUgKHlvdXIgdGVhbSdzIGNvbG9ySW5kZXgpXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5iYi1yYW5rLWxpbmUyIHtcbiAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgZm9udDogNDAwIDExcHgvMS4zIHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5iYi1yYW5rLWNoZXZyb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFZhcmlhbnQgMyAtIFN0YW5kLWNoaXAgKGNhcmQgY29ybmVyIHBpbGwpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLnFkbmFwcm8tYmF0dGxlLWJhci0tY2hpcCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYmItY2hpcC1hY2NlbnQsIHZhcigtLWMtYnJhbmQtcHVycGxlKSkgMTQlLCB2YXIoLS1jLWNoaXAtcHVycGxlLWJnKSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1waWxsLCA5OTlweCk7XG4gICAgcGFkZGluZzogM3B4IDEwcHg7XG59XG4uYmItY2hpcC1sYWJlbCB7XG4gICAgZm9udDogNjAwIDEycHgvMS4yIHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xuICAgIC8vIC0tYmItY2hpcC10ZXh0IGlzIHRoZSByZWFkYWJsZSBjb2xvdXItbWl4IChzZWUgYmJUZWFtVGV4dFZhciBpblxuICAgIC8vIHFkbmEtYmF0dGxlLWJhci5qcyksIE5PVCAtLWJiLWNoaXAtYWNjZW50IC0gdGhlIHJhdyB0ZWFtIGNvbG91ciByZWFkc1xuICAgIC8vIGZpbmUgYXMgYSAxNCUgYmFja2dyb3VuZCB0aW50IGJ1dCBmYWlscyBjb250cmFzdCBhcyBzbWFsbCBib2xkIHRleHRcbiAgICAvLyBmb3Igc2V2ZXJhbCB0ZWFtcyAobWVhc3VyZWQ6IGFzIGxvdyBhcyAxLjU6MSkuXG4gICAgY29sb3I6IHZhcigtLWJiLWNoaXAtdGV4dCwgdmFyKC0tYy1jaGlwLXB1cnBsZS10ZXh0KSk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLy8gLS0tLSBEYXJrIG1vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBPbmx5IC0tYy1iYXR0bGUtdGVhbS00IGhhcyBpdHMgb3duIGRhcmstbW9kZSB2YWx1ZSAoc2VlIGRlc2lnbi10b2tlbnMuc2Nzcyk7XG4vLyB0aGUgcmVzdCBhcmUgZml4ZWQgcHJpbWl0aXZlcyBhY3Jvc3MgdGhlbWVzLCBzYW1lIGFzIHJldmVhbC1zdGFnZSdzIHRlYW1cbi8vIGNvbG91cnMuIE5vdGhpbmcgdG8gcmUtbWFwIGhlcmUgLSB0aGUgc2VtYW50aWMgdG9rZW5zICgtLWMtdGV4dC1tdXRlZCxcbi8vIC0tYy10ZXh0LWhlYWRpbmcsIC0tYy1ib3JkZXItY2FyZCwgLS1jLWNoaXAtcHVycGxlLWJnLy10ZXh0LCAtLWZvY3VzLXJpbmcpXG4vLyBhbHJlYWR5IGZsaXAgdmlhIHRoZSBkZXNpZ24tdG9rZW5zIGRhcmsgb3ZlcnJpZGUgYmxvY2suXG4iLCIvLyBxZG5hcHJvLWJvdHRvbS1zaGVldCDigJQgc2NyaW0gKyBzbGlkZS11cCBwYW5lbCwgYXV0by1oZWlnaHQsIHN3aXBlLXRvLWRpc21pc3MuXG4vLyBGTEFUIENTUzsgY29sb3Vycy9yYWRpaSBmcm9tIHRoZSBkZXNpZ24tdG9rZW4gOnJvb3QgKHZhcigtLWMtKikgLyAtLXItKikuXG4vLyBFZGl0IEhFUkUsIHRoZW4gYGd1bHAgc2Fzcy12MWAgKyB0aGUgc3luYy5cblxuLyogRGUgc2hlZXQgd29yZHQgYmlqIG9wZW5lbiBuYWFyIDxib2R5PiBnZXBvcnRhbGQgKHppZSBfc2hvdykuIENvbnRhaW5lciBpc1xuICAgcG9zaXRpb246Zml4ZWQgKE5JRVQgdHJhbnNmb3JtIOKAlCBkYXQgem91IGRlIGZpeGVkIGtpbmRlcmVuIHZhbmdlbikgem9kYXQgei1pbmRleFxuICAgZ2VsZHQgZW4gaGlqIGVlbiBzdGFja2luZy1jb250ZXh0IG9wIDEwMDAgbWFha3Q7IGRlIGZpeGVkIHNjcmltL3BhbmVlbCBibGlqdmVuXG4gICB2aWV3cG9ydC1yZWxhdGllZi4gKi9cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDA7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1mb250LWZhbWlseSwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5pcy12aXNpYmxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qIMOJw4lOIHNjcmltLW9iamVjdCBkZWt0IGhldCBIRUxFIHNjaGVybSDigJQgaW5jbHVzaWVmIGRlIGlPUyBzYWZlLWFyZWFzIChib3ZlbiArXG4gICBvbmRlciksIHdhbnQgcG9zaXRpb246Zml4ZWQgKyBpbnNldDowIGlzIHZpZXdwb3J0LXJlbGF0aWVmIG1ldCB2aWV3cG9ydC1maXQ9XG4gICBjb3Zlci4gSGV0IHBhbmVlbCBsaWd0IGVyYm92ZW5vcCAobGF0ZXIgaW4gZGUgRE9NKSBlbiB3b3JkdCBkdXMgbmlldCBnZWRpbWQuXG4gICBFw6luIG9iamVjdCA9IMOpw6luIHVuaWZvcm1lIGRpbSwgZ2VlbiBzYWZlLWFyZWEtdHJ1Y3MsIGdlZW4gdGltaW5nLXJhY2UuIFtKYW4gMzAuMDYuMjAyNl0gKi9cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtc2NyaW0ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJsYWNrLTQ1KTtcbiAgLyogSU5TVEFOVCBkaW0g4oCUIGdlZW4gb3BhY2l0eS10cmFuc2l0aWUuIERlIHNjcmltIGlzIGVyIHpvZHJhIGRlIHNoZWV0IHppY2h0YmFhclxuICAgICBpcyAoZGlzcGxheTpibG9jayB2aWEgLmlzLXZpc2libGUpIGVuIHZlcmR3aWpudCBpbmVlbnMgYmlqIHNsdWl0ZW4uIEJld3VzdCBnZWVuXG4gICAgIGFuaW1hdGllOiBlZW4gZ2VhbmltZWVyZGUgb3BhY2l0eSBvcCBlZW4gc2FmZS1hcmVhLWtydWlzZW5kIGZpeGVkIGVsZW1lbnQgd29yZHRcbiAgICAgZG9vciBpT1MgV0tXZWJWaWV3IGluIGRlIHNhZmUtYXJlYSBtZXQgYW5kZXJlIHRpbWluZyBnZWNvbXBvc2l0IChsYWcpLiBIZXRcbiAgICAgcGFuZWVsIHNsaWRldCB3ZWwuIFtKYW4gMzAuMDYuMjAyNl0gKi9cbn1cblxuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1wYW5lbCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogMTsgLyogYm92ZW4gZGUgc2NyaW0gKHplbGZkZSBzdGFja2luZy1jb250ZXh0KSAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXgtaGVpZ2h0OiA4NiU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gIGJvcmRlci1yYWRpdXM6IDMycHggMzJweCAwIDA7XG4gIC8qIElubGluZSBwYWRkaW5nIGFzIGEgY3VzdG9tIHByb3BlcnR5IHNvIGFueXRoaW5nIHRoYXQgaGFzIHRvIENBTkNFTCBpdCAodGhlXG4gICAgIGZ1bGwtYmxlZWQgLmJzLWRpYWxvZy1pbWFnZSkgc3RheXMgaW4gc3RlcCB3aXRoIHZhcmlhbnRzIHRoYXQgY2hhbmdlIGl0IOKAlCB0aGVcbiAgICAgcmVhZGluZyB2YXJpYW50IHJhaXNlcyBpdCB0byAxNnB4LiBBIGhhcmRjb2RlZCBuZWdhdGl2ZSBtYXJnaW4gd291bGQgc2lsZW50bHlcbiAgICAgYmUgd3Jvbmcgb24gdGhvc2UgdmFyaWFudHMuIFtLaW0gMzEuMDcuMjAyNl0gKi9cbiAgLS1icy1wYWQteDogOHB4O1xuICBwYWRkaW5nOiA0cHggdmFyKC0tYnMtcGFkLXgpIDA7XG4gIGJveC1zaGFkb3c6IDAgLTEwcHggMzRweCByZ2JhKDAsIDAsIDAsIDAuMTYpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gIC8qIFNhbWUgdGltaW5nIGFzIHRoZSBzY3JpbSAobm8gZGVsYXkpIOKAlCB0aGV5IHN0YXJ0IHRvZ2V0aGVyIHNvIHRoZSBwYW5lbCBzbGlkaW5nXG4gICAgIHVwIGFuZCB0aGUgc2NyZWVuIGRhcmtlbmluZyByZWFkIGFzIG9uZSBtb3Rpb24uIHdpbGwtY2hhbmdlIGtlZXBzIHRoZSBzbGlkZSBvblxuICAgICBpdHMgb3duIEdQVSBsYXllciAoc21vb3RoIG9uIGlPUywgbm8gamFuaykuICovXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjMycyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSk7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIG91dGxpbmU6IG5vbmU7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQuaXMtb3BlbiAuYnMtcGFuZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG59XG5cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtaGFuZGxlLXpvbmUge1xuICBwYWRkaW5nOiAxMHB4IDAgMjRweDtcbiAgbWFyZ2luOiAwIC0xNnB4OyAvKiBmdWxsLXdpZHRoIGdyYWIgdGFyZ2V0ICovXG4gIGN1cnNvcjogZ3JhYjtcbiAgdG91Y2gtYWN0aW9uOiBub25lOyAvKiBsZXQgdGhlIHBvaW50ZXItZHJhZyBvd24gdGhlIGdlc3R1cmUgKi9cbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWdyYWIge1xuICB3aWR0aDogMzhweDtcbiAgaGVpZ2h0OiA1cHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItcGlsbCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0zMDApO1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiAxMnB4O1xuICBwYWRkaW5nOiA0cHggMCAxMnB4O1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtaGVhZGVyLXRleHQge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG59XG4vLyBERUZBVUxUIHNpbmRzIDE5LjA4LjIwMjYgKGJlc2x1aXQgS2ltKTogZ2VjZW50cmVlcmQgZW4gendhYXIsIHpvYWxzIGRlXG4vLyBQdWxzZS1yZWFjdGllcy1zaGVldCBkYXQgYWxzIGVlcnN0ZSBoYWQuIERhdCB3YXMgdG90IHZhbmRhYWcganVpc3QgZWVuXG4vLyBTQ09QRUQgdWl0em9uZGVyaW5nIChcImVsa2UgYW5kZXJlIHNoZWV0IGxpam50IGxpbmtzIHVpdFwiLCAxNi4wOC4yMDI2KSAtXG4vLyBLaW0gZHJhYWlkZSBkYXQgb20gdG9lbiBkZSBVcGRhdGVzLXNoZWV0IGVybmFhc3QgZWVuIGFuZGVyIGtvcHR5cGUgYmxlZWtcbi8vIHRlIGhlYmJlbjogZWVuIHRpdGVsIGhvb3J0IGVyIG92ZXJhbCB1aXQgdGUgemllbiBhbHMgXCJSZWFjdGllc1wiLlxuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcpO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1zdWJ0aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyAvLyB2b2xndCBkZSB0aXRlbCwgYW5kZXJzIG9vZ3QgZGUga29wIGhhbGYgdmVyc2Nob3ZlblxuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgbWFyZ2luLXRvcDogMnB4O1xufVxuLy8gTWV0IGVlbiBzbHVpdGtydWlzamUgKGNsb3NhYmxlKSB6b3UgZGUgdGl0ZWwgYmlubmVuIHppam4gZmxleHZhayBjZW50cmVyZW5cbi8vIGVuIGR1cyBvcHRpc2NoIExJTktTIHZhbiBoZXQgc2hlZXRtaWRkZW4gaGFuZ2VuOiBoZXQga3J1aXNqZSBpcyAzMHB4IHBsdXNcbi8vIGRlIDEycHggaGVhZGVyLWdhcC4gRGV6ZSBjb21wZW5zYXRpZSBob3VkdCBkZSB0ZWtzdCBvcCBoZXQgZWNodGUgbWlkZGVuLlxuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1oZWFkZXI6aGFzKC5icy1jbG9zZSkgLmJzLWhlYWRlci10ZXh0IHtcbiAgcGFkZGluZy1sZWZ0OiA0MnB4O1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1jbG9zZSB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItcGlsbCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmxhY2stMDYpO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWNsb3NlOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmxhY2stMTIpO1xufVxuXG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWJvZHkge1xuICBmbGV4OiAxO1xuICBtaW4taGVpZ2h0OiAwO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogOHB4O1xuICAvKiBSRVZFUlRFRCAxMy4wNy4yMDI2IChLaW0pOiB0aGUgZ2xvYmFsIHBhZGRpbmctYm90dG9tIDAgbWFkZSB0aGUgYnV0dG9uXG4gICAgIHNoZWV0cyAoZWRpdC1leGl0IGNvbmZpcm0pIHNpdCBjcmFtcGVkIGFnYWluc3QgdGhlIGJvdHRvbSBlZGdlLCBzbyB0aGVcbiAgICAgYmFzZSBrZWVwcyBpdHMgYnJlYXRoaW5nIHJvb20gKyBpT1Mgc2FmZS1hcmVhIGFnYWluLiBPTkxZIHRoZSByZWFkaW5nXG4gICAgIHZhcmlhbnQgKGZ1cnRoZXIgZG93bikga2VlcHMgdGhlIGRlbGliZXJhdGUgb3ZlcmZsb3cgZmVlbCBhdCAwLlxuICAgICAyNHB4IGZpeGVkIGJyZWF0aGluZyByb29tICsgc2FmZS1hcmVhIGZvciB0aGUgaG9tZSBpbmRpY2F0b3IuIFtLaW0gMTUuMDcuMjAyNl0gKi9cbiAgcGFkZGluZy1ib3R0b206IGNhbGMoMjRweCArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLCAwcHgpKTtcbiAgLyogQSBib3R0b20gc2hlZXQgbXVzdCBORVZFUiBzaG93IGEgdmlzaWJsZSBzY3JvbGxiYXIg4oCUIGNvbnRlbnQgc3RpbGwgc2Nyb2xscy5cbiAgICAgRmxhdCBzY3JvbGxiYXItaGlkZSAodGhlIHFkbmEtc2Nyb2xsYmFyLWhpZGRlbiBtaXhpbiBjYW4ndCBiZSB1c2VkIGhlcmU6IHRoaXNcbiAgICAgcGFydGlhbCBpcyBjb3BpZWQgdmVyYmF0aW0gdG8gdGhlIFBXQSkuICovXG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTsgLyogRmlyZWZveCAqL1xuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7IC8qIG9sZCBFZGdlL0lFICovXG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgZGlzcGxheTogbm9uZTsgLyogQ2hyb21lIC8gU2FmYXJpICovXG59XG5cbi8qIFNlZ21lbnQgY29udHJvbHMgaW5zaWRlIHRoZSBib2R5IHNob3VsZCBzaXplIHRvIGNvbnRlbnQgYW5kIGNlbnRlciDigJQgbm90IHN0cmV0Y2ggZnVsbC13aWR0aC4gKi9cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtYm9keSA+IHFkbmFwcm8tc2VnbWVudCB7IGFsaWduLXNlbGY6IGNlbnRlcjsgfVxuXG4vKiBBdXRvLWNhcmQ6IGJ1dHRvbnMgcGxhY2VkIGRpcmVjdGx5IGluIHRoZSBzaGVldCBib2R5IChub3QgaW5zaWRlIGEgZ3JvdXApIGFsd2F5cyBnZXRcbiAgIGEgY2FyZCBmcmFtZSDigJQgZmlyc3QgYnV0dG9uIGdldHMgdG9wIGNvcm5lcnMsIGxhc3QgZ2V0cyBib3R0b20gY29ybmVycy4gVGhpcyBlbmZvcmNlc1xuICAgdGhlIGRlc2lnbiBydWxlIHRoYXQgYnV0dG9ucyBhcmUgTkVWRVIgc2hvd24gbmFrZWQgb24gdGhlIHNoZWV0IHN1cmZhY2UuICovXG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWJvZHkgPiBxZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24geyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdmFyaWFudC1wdXJwbGUgLmJzLWJvZHkgPiBxZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24geyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdoaXRlLTE0KTsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1ib2R5ID4gcWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uOmZpcnN0LW9mLXR5cGUgeyBib3JkZXItcmFkaXVzOiAyNHB4IDI0cHggMCAwOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWJvZHkgPiBxZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b246bGFzdC1vZi10eXBlICB7IGJvcmRlci1yYWRpdXM6IDAgMCAyNHB4IDI0cHg7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtYm9keSA+IHFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbjpvbmx5LW9mLXR5cGUgIHsgYm9yZGVyLXJhZGl1czogMjRweDsgfVxuXG4vKiBQdXJwbGUgdmFyaWFudCDigJQgZm9yIGFjdGlvbiBtZW51cyAodGhlIFBXQSdzIHB1cnBsZSBib3R0b20gc2hlZXRzKS4gVXNlcyB0aGUgZml4ZWRcbiAgIHByaW1pdGl2ZSAtLWMtcHVycGxlLTUwMCAoTk9UIC0tYy1icmFuZC1wdXJwbGUsIHdoaWNoIGxpZnRzIHRvIGxpZ2h0IHB1cnBsZSBpbiBkYXJrXG4gICBtb2RlIOKAlCB0aGUgc2hlZXQgbXVzdCBzdGF5IHB1cnBsZSkuICovXG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdmFyaWFudC1wdXJwbGUgLmJzLXBhbmVsIHsgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNTAwKTsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXZhcmlhbnQtcHVycGxlIC5icy1ncmFiIHsgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZS00NSk7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy12YXJpYW50LXB1cnBsZSAuYnMtdGl0bGUgeyBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy12YXJpYW50LXB1cnBsZSAuYnMtc3VidGl0bGUgeyBjb2xvcjogdmFyKC0tYy13aGl0ZS00NSk7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy12YXJpYW50LXB1cnBsZSAuYnMtY2xvc2Uge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdoaXRlLTE0KTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xufVxuXG4vKiBHbGFzcyB2YXJpYW50IOKAlCBhIGRhcmssIHRyYW5zbHVjZW50LCBibHVycmVkIHBhbmVsIChpT1MvV2hhdHNBcHAgZW1vamktcGlja2VyXG4gICBsb29rKS4gVGhlIHNjcmltIHN0YXlzIHRoZSBub3JtYWwgZGltOyB0aGUgcGFuZWwgaXRzZWxmIGlzIHRoZSBmcm9zdGVkIGxheWVyLlxuICAgQ29udGVudCBvbiB0b3AgaXMgd2hpdGUuIENvbnN1bWVycyB0aGF0IHdhbnQgYSBnbGFzcyBzdXJmYWNlIChlLmcuXG4gICBxZG5hcHJvLWVtb2ppLXNoZWV0KSBvcHQgaW4gd2l0aCB2YXJpYW50PVwiZ2xhc3NcIi4gKi9cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy12YXJpYW50LWdsYXNzIC5icy1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMzgsIDM4LCA0NCwgMC43Mik7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigzMHB4KSBzYXR1cmF0ZSgxNjAlKTtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMzBweCkgc2F0dXJhdGUoMTYwJSk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgYm94LXNoYWRvdzogMCAtMTBweCAzNHB4IHJnYmEoMCwgMCwgMCwgMC4yOCk7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdmFyaWFudC1nbGFzcyAuYnMtZ3JhYiB7IGJhY2tncm91bmQ6IHZhcigtLWMtd2hpdGUtNDUpOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdmFyaWFudC1nbGFzcyAuYnMtdGl0bGUgeyBjb2xvcjogI2ZmZjsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXZhcmlhbnQtZ2xhc3MgLmJzLXN1YnRpdGxlIHsgY29sb3I6IHZhcigtLWMtd2hpdGUtNDUpOyB9XG4vKiBTb2xpZCBmYWxsYmFjayB3aGVyZSBiYWNrZHJvcC1maWx0ZXIgaXMgdW5zdXBwb3J0ZWQgKG9sZCBXZWJWaWV3cykuICovXG5Ac3VwcG9ydHMgbm90ICgoYmFja2Ryb3AtZmlsdGVyOiBibHVyKDFweCkpIG9yICgtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxcHgpKSkge1xuICAucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdmFyaWFudC1nbGFzcyAuYnMtcGFuZWwgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktODAwKTsgfVxufVxuXG4vKiBSZWFkaW5nIHZhcmlhbnQg4oCUIGZvciB0ZXh0LWhlYXZ5IGNvbnRlbnQgKG5ld3MgaXRlbXMsIGJyaWVmaW5ncywgcXVlc3Rpb25uYWlyZVxuICAgcHJldmlld3MpLiBPcnRob2dvbmFsIHRvIHB1cnBsZS9nbGFzczogb25seSB0aGUgcGFuZWwgYnJlYXRoaW5nLXJvb20gKyBsb29zZS10ZXh0XG4gICBzaXplIGNoYW5nZSwgdGhlIHN1cmZhY2UgY29sb3VycyBzdGF5IHRoZSBiYXNlIHdoaXRlIGNhcmQuIFtLaW0gMTMuMDcuMjAyNl1cbiAgIFJvb21pZXIgaG9yaXpvbnRhbCBwYW5lbCBwYWRkaW5nICgxNnB4IHZzIHRoZSBiYXNlIDhweCwgd2hpY2ggaXMgdHVuZWQgZm9yXG4gICBidXR0b24tcm93IHNoZWV0cyBhbmQgc3RheXMgdW5jaGFuZ2VkKS4gKi9cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy12YXJpYW50LXJlYWRpbmcgLmJzLXBhbmVsIHtcbiAgLS1icy1wYWQteDogMTZweDtcbiAgcGFkZGluZzogNHB4IHZhcigtLWJzLXBhZC14KSAwO1xufVxuLyogQm9keSBzdGF5cyBlZGdlLXRvLWVkZ2UgaW5zaWRlIHRoYXQgcm9vbWllciBwYW5lbCAobm8gaG9yaXpvbnRhbCBwYWRkaW5nKSBhbmRcbiAgIHJ1bnMgdG8gdGhlIGJvdHRvbSBlZGdlIChtYXRjaGVzIHRoZSBnbG9iYWwgYmFzZSwga2VwdCBleHBsaWNpdCBmb3IgY2xhcml0eSkuICovXG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdmFyaWFudC1yZWFkaW5nIC5icy1ib2R5IHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cbi8qIDE2cHggaXMgdGhlIGxvb3NlLXRleHQgcmVhZGluZyBzaXplLCBhcHBsaWVkIE9OTFkgdG8gdGV4dCB0aGF0IG9wdHMgaW4gd2l0aCB0aGVcbiAgIC5icy10ZXh0IHdyYXBwZXIg4oCUIGRlbGliZXJhdGVseSBOT1QgdG8gZXZlcnkgLmJzLWJvZHkgY2hpbGQuIFdZU0lXWUcgYnJpZWZpbmcgSFRNTFxuICAgYnJpbmdzIGl0cyBvd24gc2l6ZXMgZnJvbSB0aGUgZWRpdG9yIGFuZCBtdXN0IG5ldmVyIGJlIGZvcmNlZCB0byAxNnB4LCBzbyBpdCBpc1xuICAgbGVmdCB1bnRvdWNoZWQgKGl0IGNhcnJpZXMgbm8gLmJzLXRleHQpLiBbS2ltIDEzLjA3LjIwMjZdICovXG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdmFyaWFudC1yZWFkaW5nIC5icy1ib2R5IC5icy10ZXh0IHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4vKiDilIDilIAgU2xpZGVyIChgc2xpZGVyYCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gICBUaGUgYm9keSBiZWNvbWVzIGEgaG9yaXpvbnRhbCBwYWdlcjogYHNsb3Q9XCJwYWdlXCJgIGNoaWxkcmVuIG1vdmUgaW50byBhIHRyYWNrIGFuZCBhXG4gICBkb3RzIHN0cmlwIGxhbmRzIHVuZGVyIHRoZW0uIFRoZSBsb29rcyArIGJlaGF2aW91ciBhcmUgU0hBUkVEIHdpdGggcWRuYXByby1wb3BvdmVyXG4gICAoLnFkbmEtcGFnZXItKiBpbiBfZGVzaWduLXRva2Vucy5zY3NzICsgd2luZG93LlFkbmFQYWdlciksIGJlY2F1c2UgdGhlIGFwcCBzd2Fwc1xuICAgYmV0d2VlbiB0aG9zZSB0d28gc2hlbGxzIHBlciBwbGF0Zm9ybSDigJQgcGhvbmUgZ2V0cyB0aGUgc2hlZXQsID49MTAyNHB4IHRoZSBwb3BvdmVyIOKAlFxuICAgYW5kIGEgcGFnZXIgdGhhdCBvbmx5IHdvcmtlZCBpbiBvbmUgb2YgdGhlbSB3b3VsZCBiZSBjb3BpZWQgaW50byB0aGUgb3RoZXIgd2l0aGluIGFcbiAgIGRheS4gT25seSB0aGUgdHdvIHJ1bGVzIGJlbG93IGFyZSBzaGVldC1zcGVjaWZpYy4gW0tpbSAwNC4wOS4yMDI2XSAqL1xuXG4vKiBUaGUgcmVhZGluZyB2YXJpYW50IGRlbGliZXJhdGVseSBydW5zIGl0cyBib2R5IHRvIHRoZSBib3R0b20gZWRnZSAocGFkZGluZy1ib3R0b206MCksXG4gICBzbyBhIGRvdHMgc3RyaXAgd291bGQgc2l0IG9uIHRoZSBwYW5lbCBlZGdlIC8gdW5kZXIgdGhlIGlPUyBob21lIGluZGljYXRvci4gR2l2ZSB0aGVcbiAgIGJyZWF0aGluZyByb29tIGJhY2sgSEVSRSByYXRoZXIgdGhhbiBpbiBldmVyeSBjb25zdW1lciB0aGF0IGNvbWJpbmVzIHRoZSB0d28uICovXG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdmFyaWFudC1yZWFkaW5nIC5xZG5hLXBhZ2VyLWRvdHMge1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYygxNHB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sIDBweCkpO1xufVxuXG4vKiBEaWFsb2cgdmFyaWFudCDigJQgQUxXQVlTIHB1cnBsZTogYSBwdXJwbGUgaWxsdXN0cmF0ZWQgZGlhbG9nIChpbGx1c3RyYXRpb24gKyBib2xkXG4gICB3aGl0ZSB0aXRsZSArIHdoaXRlIGJvZHkgdGV4dCArIG9wdGlvbmFsIGNvbnN1bWVyIGJvZHkgY29udGVudCArIGEgZmxleGlibGUgZm9vdGVyKS5cbiAgIFNlcnZlcyBib3RoIHRoZSBkZXN0cnVjdGl2ZSBjb25maXJtIChyZXNldC11bml0cykgQU5EIGEgYmxvY2tpbmcgbm90aWNlIChmaW5pc2hcbiAgIGF1ZGl0IHdpdGggbWFuZGF0b3J5IHVuaXRzIHN0aWxsIG9wZW4pLiBgdmFyaWFudD1cImNvbmZpcm1cImAgaXMgYW4gYWxpYXMg4oaSIHNhbWVcbiAgIC5icy12YXJpYW50LWRpYWxvZyBjbGFzcy4gQ29tcG9zZWQgZnJvbSBxZG5hcHJvLWlsbHVzdHJhdGlvbiArIHFkbmFwcm8tYnV0dG9uIHVzaW5nXG4gICBpdHMgb3duIG9uLXB1cnBsZSAvIG9uLXB1cnBsZS1zb2xpZCBUWVBFUyAoc2VlIF9idXR0b24uc2Nzcykg4oCUIGxheW91dCBvbmx5LCBub1xuICAgYmVzcG9rZSBjb2xvdXIgb3ZlcnJpZGVzLiBbS2ltIDE1LjA3LjIwMjZdICovXG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdmFyaWFudC1kaWFsb2cgLmJzLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy12YXJpYW50LWRpYWxvZyAuYnMtZ3JhYiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtd2hpdGUtNDUpO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1ib2R5LmJzLWRpYWxvZyB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZ2FwOiAwO1xuICBwYWRkaW5nLXRvcDogOHB4O1xufVxuLyogR2FwIGlsbHVzdHJhdGlvbiDihpIgdGl0bGUuIFRhcmdldCB0aGUgVEFHLCBub3QgLmJzLWRpYWxvZy1pbGx1c3RyYXRpb246XG4gICBxZG5hcHJvLWlsbHVzdHJhdGlvbiB3aXBlcyBpdHMgb3duIGNsYXNzTmFtZSBvbiByZW5kZXIgKHRoaXMuY2xhc3NOYW1lID0g4oCmKSwgc28gYVxuICAgY2xhc3MgaG9vayBpcyBkZWFkIGJ5IHRoZSB0aW1lIGl0IHBhaW50cyBhbmQgdGhlIGdhcCBjb2xsYXBzZWQgdG8gMCAoXCJjcmFtcGVkXCIpLlxuICAgW0tpbSAxNS4wNy4yMDI2XSAqL1xuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1ib2R5LmJzLWRpYWxvZyA+IHFkbmFwcm8taWxsdXN0cmF0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvIDIwcHg7XG59XG4vKiBGdWxsLWJsZWVkIGhlcm8gaW1hZ2UgKGBpbWFnZWAgYXR0ciksIHRoZSBhbHRlcm5hdGl2ZSB0byB0aGUgY2VudGVyZWQgaWxsdXN0cmF0aW9uLlxuICAgSXQgTVVTVCByZWFjaCB0aGUgcGFuZWwgZWRnZXM6IHRoZSBjZWxlYnJhdGlvbiBpbGx1c3RyYXRpb25zIGhhdmUgdGhlaXIgb3duIHB1cnBsZVxuICAgYmFja2dyb3VuZCBiYWtlZCBpbiwgbWF0Y2hpbmcgdGhlIGRpYWxvZyBzdXJmYWNlLCBzbyB0aGUgYXJ0d29yayBmbG93cyBpbnRvIHRoZSBwYW5lbFxuICAgYW5kIHRoZSBlZGdlIG9mIGl0cyBzaGFwZSBpcyBpbnZpc2libGUuIEFueSBwYWRkaW5nIHR1cm5zIHRoYXQgZWRnZSBpbnRvIGEgc2VhbS5cbiAgIFRoZSBpbmxpbmUgbWFyZ2lucyBjYW5jZWwgdGhlIHBhbmVsJ3Mgb3duIC0tYnMtcGFkLXggKG5ldmVyIGEgaGFyZGNvZGVkIG51bWJlcjpcbiAgIHRoZSByZWFkaW5nIHZhcmlhbnQgcmFpc2VzIHRoYXQgcGFkZGluZyB0byAxNnB4LCBhbmQgYSBmaXhlZCAtOHB4IHdvdWxkIHRoZW4gbGVhdmVcbiAgIHRoZSBpbWFnZSA4cHggc2hvcnQgb24gZWFjaCBzaWRlKS4gVGhlIG5lZ2F0aXZlIHRvcCBtYXJnaW4gZWF0cyBtb3N0IG9mIHRoZVxuICAgaGFuZGxlLXpvbmUncyAyNHB4IGJyZWF0aGluZyByb29tIHNvIHRoZSBpbWFnZSBzaXRzIGp1c3QgdW5kZXIgdGhlIGdyYWIgaGFuZGxlLlxuICAgVGhlIHBhbmVsJ3MgMzJweCB0b3Agcm91bmRpbmcgaXMgbm90IGNsaXBwZWQgYXdheTogdGhlIGFydHdvcmsncyBvd24gY29ybmVycyBhcmVcbiAgIHRyYW5zcGFyZW50LCBzbyBub3RoaW5nIHBva2VzIG91dC4gQW4gb3BhcXVlIGltYWdlIFdPVUxEIG5lZWQgY2xpcHBpbmcgaGVyZS5cbiAgIFtLaW0gMzEuMDcuMjAyNl0gKi9cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtYm9keS5icy1kaWFsb2cgPiAuYnMtZGlhbG9nLWltYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyAyICogdmFyKC0tYnMtcGFkLXgpKTtcbiAgbWFyZ2luOiAtMjRweCBjYWxjKC0xICogdmFyKC0tYnMtcGFkLXgpKSA0cHg7XG59XG4vKiBgY2VudGVyZWRgIOKAlCB3aWRlLXNjcmVlbiBtb2RpZmllcjogcGhvbmUga2VlcHMgdGhlIGJvdHRvbSBzaGVldCwgdGFibGV0IGdldHMgYVxuICAgY2VudGVyZWQgZGlhbG9nLCBmcm9tIHRoZSBzYW1lIGVsZW1lbnQuIEJlbG93IDc2OHB4IHRoaXMgYmxvY2sgZG9lcyBub3QgZXhpc3QsIHNvIGFcbiAgIHBob25lIGlzIHVudG91Y2hlZC4gNzY4cHggaXMgdGhlIGJyZWFrcG9pbnQgdGhlIFBXQSBkb2N1bWVudHMgbW9kdWxlIGFscmVhZHkgdXNlcyBmb3JcbiAgIGl0cyB0YWJsZXQgbGF5b3V0LCBub3QgYSBuZXcgbnVtYmVyLiBbS2ltIDMxLjA3LjIwMjZdXG5cbiAgIENlbnRlcmluZyBpcyBkb25lIHdpdGggYXV0byBpbmxpbmUgbWFyZ2lucyBhbmQgYSBgYm90dG9tYCBvZmZzZXQsIGRlbGliZXJhdGVseSBOT1RcbiAgIHdpdGggdHJhbnNmb3JtOiB0aGUgc3dpcGUtdG8tZGlzbWlzcyBoYW5kbGVyIHdyaXRlcyBgcGFuZWwuc3R5bGUudHJhbnNmb3JtID1cbiAgIHRyYW5zbGF0ZVkoLi4uKWAgZHVyaW5nIGEgZHJhZyBhbmQgY2xlYXJzIGl0IG9uIHJlbGVhc2UsIHNvIGFueXRoaW5nIHBhcmtlZCBpblxuICAgdHJhbnNmb3JtIHdvdWxkIGJlIHdpcGVkIG1pZC1nZXN0dXJlLiBUaGlzIHdheSB0aGUgb3Blbi9jbG9zZSBzbGlkZSBhbmQgdGhlIGRyYWcga2VlcFxuICAgd29ya2luZyBleGFjdGx5IGFzIHRoZXkgZG8gb24gYSBwaG9uZSDigJQgZHJhZ2dpbmcgdGhlIGRpYWxvZyBkb3duIHN0aWxsIGNsb3NlcyBpdC4gKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAucWRuYXByby1ib3R0b20tc2hlZXQuYnMtY2VudGVyZWQgLmJzLXBhbmVsIHtcbiAgICBtYXgtd2lkdGg6IDQyMHB4O1xuICAgIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gICAgYm90dG9tOiA3dmg7XG4gICAgYm9yZGVyLXJhZGl1czogMzJweDtcbiAgICAvKiBTaGFkb3cgcG9pbnRzIG91dHdhcmQgb24gYWxsIHNpZGVzIG5vdyB0aGF0IGl0IGZsb2F0cywgaW5zdGVhZCBvZiB0aGVcbiAgICAgICB1cHdhcmQtb25seSBzaGFkb3cgb2YgYSBwYW5lbCBnbHVlZCB0byB0aGUgYm90dG9tIGVkZ2UuICovXG4gICAgYm94LXNoYWRvdzogMCAxOHB4IDUwcHggcmdiYSgwLCAwLCAwLCAwLjI0KTtcbiAgICBtYXgtaGVpZ2h0OiA4MCU7XG4gIH1cbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtZGlhbG9nLXRpdGxlIHtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS4zO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWRpYWxvZy10ZXh0IHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBsaW5lLWhlaWdodDogMS42O1xuICBjb2xvcjogdmFyKC0tYy13aGl0ZS03MCk7XG4gIG1hcmdpbi10b3A6IDEycHg7XG4gIG1heC13aWR0aDogMzIwcHg7XG59XG4vKiBUT05FRCBESUFMT0dTICh0b25lPVwiZGFuZ2VyXCIgLyB0b25lPVwic3VjY2Vzc1wiKSDigJQgdGhlIHNhbWUgZGlhbG9nIGluIGEgZGlmZmVyZW50XG4gICBtZWFuaW5nLiBBIHRvbmUgaXMgYSBNRUFOSU5HLCBub3QgYSBjb2xvdXIgcGlja2VyOiBcInRoaXMgY29zdHMgeW91IHNvbWV0aGluZyB5b3UgY2Fubm90XG4gICBnZXQgYmFja1wiLCBvciBcInRoaXMgd2VudCB3ZWxsXCIuIEFueXRoaW5nIGVsc2Ugc3RheXMgdGhlIHB1cnBsZSBkaWFsb2cuXG5cbiAgIEV2ZXJ5dGhpbmcgYmVsb3cgdGhpcyBjb21tZW50IGV4Y2VwdCB0aGUgdHdvIGNvbG91ciBibG9ja3MgaXMgU0hBUkVEIGJ5IGJvdGggdG9uZXMsIHNvXG4gICB0aGV5IGNhbm5vdCBkcmlmdCBhcGFydDogZnVsbC13aGl0ZSB0ZXh0LCBhIDI4cHggdGl0bGUsIHN0YWNrZWQgYnV0dG9ucy5cblxuICAgQ09MT1VSUyAoMDMuMDkuMjAyNik6IEtpbSdzIGV4YWN0IHNldCBmb3IgdGhlIFB1bHNlIHZlcmRpY3Qgc2hlZXRzLCBhcyBkZXNpZ24gdG9rZW5zXG4gICAtLWMtZGlhbG9nLTx0b25lPi1zdXJmYWNlIC8gLWNhcmQgLyAtYnV0dG9uIC8gLWdyYWIsIHNoYXJlZCB3aXRoIHRoZSBwb3BvdmVyIGRpYWxvZyBhbmRcbiAgIHRoZSBvbi08dG9uZT4tc29saWQgYnV0dG9uIHR5cGVzIHNvIGV2ZXJ5IHRvbmVkIGRpYWxvZyBpcyBvbmUgZmFtaWx5LiBBIHRoaXJkIHRvbmUsXG4gICBcIndhcm5pbmdcIiAob3JhbmdlKSwgd2FzIGFkZGVkIGZvciB0aGUgaGFsZi1yaWdodCB2ZXJkaWN0LiBUZXh0IHN0YXlzIEZVTEwgd2hpdGUuIEtpbVxuICAgbWVhc3VyZWQgYW5kIGFjY2VwdGVkIHRoZSBjb250cmFzdCBhcy1pcyAoZ3JlZW4gc3VyZmFjZSAyLjQ6MSB1bmRlciB0aGUgMjhweCB0aXRsZSxcbiAgIGdyZWVuIGNhcmQgNC4xOjEgdW5kZXIgYm9keSB0ZXh0KTsgZG8gbm90IFwiaW1wcm92ZVwiIHRoZXNlIHdpdGhvdXQgaGVyLiBUaGUgZ3JhYiBoYW5kbGVcbiAgIGlzIG5vdyBhIHNvbGlkIGNvbG91ciBmcm9tIHRoZSBzZXQsIG5vIGxvbmdlciBhIDQ1JSBzaGFkZS4gW0tpbSAxOC4wOC4yMDI2IC8gMDMuMDkuMjAyNl0gKi9cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy12YXJpYW50LWRpYWxvZy5icy10b25lLWRhbmdlciAuYnMtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy1kYW5nZXItc3VyZmFjZSk7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdmFyaWFudC1kaWFsb2cuYnMtdG9uZS1kYW5nZXIgLmJzLWdyYWIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy1kYW5nZXItZ3JhYik7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdmFyaWFudC1kaWFsb2cuYnMtdG9uZS1zdWNjZXNzIC5icy1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLXN1Y2Nlc3Mtc3VyZmFjZSk7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdmFyaWFudC1kaWFsb2cuYnMtdG9uZS1zdWNjZXNzIC5icy1ncmFiIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctc3VjY2Vzcy1ncmFiKTtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy12YXJpYW50LWRpYWxvZy5icy10b25lLXdhcm5pbmcgLmJzLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctd2FybmluZy1zdXJmYWNlKTtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy12YXJpYW50LWRpYWxvZy5icy10b25lLXdhcm5pbmcgLmJzLWdyYWIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy13YXJuaW5nLWdyYWIpO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXRvbmUtZGFuZ2VyIC5icy1kaWFsb2ctdGl0bGUsXG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdG9uZS1kYW5nZXIgLmJzLWRpYWxvZy10ZXh0LFxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXRvbmUtc3VjY2VzcyAuYnMtZGlhbG9nLXRpdGxlLFxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXRvbmUtc3VjY2VzcyAuYnMtZGlhbG9nLXRleHQsXG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdG9uZS13YXJuaW5nIC5icy1kaWFsb2ctdGl0bGUsXG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdG9uZS13YXJuaW5nIC5icy1kaWFsb2ctdGV4dCB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbn1cbi8qIEJpZ2dlciB0aGFuIHRoZSBwdXJwbGUgZGlhbG9nJ3MgMjJweDogYSB0b25lZCBkaWFsb2cgaGFzIG5vIGlsbHVzdHJhdGlvbiBjb21wZXRpbmcgZm9yXG4gICBhdHRlbnRpb24sIHNvIHRoZSB0aXRsZSBjYXJyaWVzIHRoZSB3ZWlnaHQuIDI4cHggdW50aWwgMDMuMDkuMjAyNjsgS2ltJ3MgdmVyZGljdC1zaGVldFxuICAgZGVzaWduIGhhcyBpdCBhdCAyNHB4IG5leHQgdG8gYSA0MHB4IGljb24sIGFuZCBzaGUgYXNrZWQgZm9yIGV4YWN0bHkgdGhhdC4gKi9cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy10b25lLWRhbmdlciAuYnMtZGlhbG9nLXRpdGxlLFxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXRvbmUtc3VjY2VzcyAuYnMtZGlhbG9nLXRpdGxlLFxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXRvbmUtd2FybmluZyAuYnMtZGlhbG9nLXRpdGxlIHtcbiAgZm9udC1zaXplOiAyNHB4O1xufVxuLyogQnV0dG9ucyBTVEFDS0VELCBjYW5jZWwgb24gdG9wLCBjb25maXJtIGZ1bGwgd2lkdGggYmVsb3cuIFNpZGUgYnkgc2lkZSBnaXZlcyB0aGUgdHdvXG4gICBhbnN3ZXJzIGVxdWFsIHZpc3VhbCB3ZWlnaHQ7IHN0YWNrZWQgcHV0cyB0aGUgY29uc2VxdWVuY2UgdW5kZXIgeW91ciB0aHVtYiBhbmQgbWFrZXMgaXRcbiAgIGEgZGVsaWJlcmF0ZSBwcmVzcy4gVGhlIHB1cnBsZSBkaWFsb2cga2VlcHMgaXRzIHJvdy4gQ2FuY2VsIGNvbWVzIGZpcnN0IGluIHRoZSBET00sIHNvXG4gICBwbGFpbiBgY29sdW1uYCBhbHJlYWR5IHB1dHMgaXQgb24gdG9wLiAqL1xuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXRvbmUtZGFuZ2VyIC5icy1kaWFsb2ctZm9vdGVyLFxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXRvbmUtc3VjY2VzcyAuYnMtZGlhbG9nLWZvb3Rlcixcbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy10b25lLXdhcm5pbmcgLmJzLWRpYWxvZy1mb290ZXIge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDRweDtcbn1cblxuLyogQmFkZ2Ug4oCUIHRoZSBhbHRlcm5hdGl2ZSB0byB0aGUgaWxsdXN0cmF0aW9uLCBmb3IgYSBkaWFsb2cgdGhhdCBoYXMgdG8gcmVhZCBhcyBhIHNpZ25hbFxuICAgcmF0aGVyIHRoYW4gYSBzY2VuZS4gRnJlZS1zdGFuZGluZyBieSBkZWZhdWx0IGFuZCBsYXJnZTsgYGJhZGdlLWNpcmNsZWAgcHV0cyBpdCBpbiBhXG4gICBmaWxsZWQgZGlzYyBpbnN0ZWFkLiBUaGUgY2lyY2xlIGtlZXBzIGl0cyBvd24gc2l6aW5nIHNvIHRoZSBhcnQgYWx3YXlzIGxhbmRzIGF0IDU1JS4gKi9cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtYm9keS5icy1kaWFsb2cgPiAuYnMtZGlhbG9nLWJhZGdlIHtcbiAgZmxleDogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbjogNHB4IGF1dG8gMTZweDtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtYm9keS5icy1kaWFsb2cgPiAuYnMtZGlhbG9nLWJhZGdlLWNpcmNsZSB7XG4gIC0tYnMtYmFkZ2Utc2l6ZTogOTZweDtcbiAgd2lkdGg6IHZhcigtLWJzLWJhZGdlLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLWJzLWJhZGdlLXNpemUpO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTQwMCk7XG59XG4vKiBTYW1lIHNlbGVjdG9yIFNIQVBFIGFzIHRoZSBkZWZhdWx0IGFib3ZlLCBub3QgYSBzaG9ydGVyIG9uZTogdGhlIGRlZmF1bHQgaXMgZm91clxuICAgY2xhc3NlcyBkZWVwIGFuZCBhIHBsYWluIGAuYnMtdG9uZS1kYW5nZXIgLmJzLWRpYWxvZy1iYWRnZS1jaXJjbGVgIGxvc2VzIHRoZVxuICAgc3BlY2lmaWNpdHkgcmFjZSwgd2hpY2ggbGVmdCB0aGUgYmFkZ2UgcHVycGxlIG9uIGEgcmVkIHNoZWV0IHRoZSBmaXJzdCB0aW1lLiAqL1xuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXRvbmUtZGFuZ2VyIC5icy1ib2R5LmJzLWRpYWxvZyA+IC5icy1kaWFsb2ctYmFkZ2UtY2lyY2xlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctZGFuZ2VyLWNhcmQpO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXRvbmUtc3VjY2VzcyAuYnMtYm9keS5icy1kaWFsb2cgPiAuYnMtZGlhbG9nLWJhZGdlLWNpcmNsZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLXN1Y2Nlc3MtY2FyZCk7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdG9uZS13YXJuaW5nIC5icy1ib2R5LmJzLWRpYWxvZyA+IC5icy1kaWFsb2ctYmFkZ2UtY2lyY2xlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctd2FybmluZy1jYXJkKTtcbn1cbi8qIEZyZWUtc3RhbmRpbmcgYXJ0IGlzIHJvdWdobHkgdHdpY2UgdGhlIHNpemUgaXQgaXMgaW5zaWRlIGEgY2lyY2xlLiBCb3RoIHRoZSBsb3R0aWVcbiAgIGVsZW1lbnQgYW5kIHRoZSBpY29uIGxhbmQgb24gdGhpcyBjbGFzczsgcWRuYXByby1sb3R0aWUgc2l6ZXMgZnJvbSAtLXFsLXNpemUsIGFuZCB0aGVcbiAgIGljb24gaXMgY2FwcGVkIGhlcmUgdG9vIHNvIGEgd3Jvbmcgc2l6ZSBhdHRyaWJ1dGUgY2Fubm90IGJsb3cgdGhlIGxheW91dCBvcGVuLiAqL1xuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1kaWFsb2ctYmFkZ2UtYXJ0IHtcbiAgLS1xbC1zaXplOiA4OHB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDg4cHg7XG4gIGhlaWdodDogODhweDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1kaWFsb2ctYmFkZ2UtY2lyY2xlIC5icy1kaWFsb2ctYmFkZ2UtYXJ0IHtcbiAgLS1xbC1zaXplOiBjYWxjKHZhcigtLWJzLWJhZGdlLXNpemUpICogMC41NSk7XG4gIHdpZHRoOiBjYWxjKHZhcigtLWJzLWJhZGdlLXNpemUpICogMC41NSk7XG4gIGhlaWdodDogY2FsYyh2YXIoLS1icy1iYWRnZS1zaXplKSAqIDAuNTUpO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXRvbmUtZGFuZ2VyIC5icy1kaWFsb2ctYmFkZ2UtY2lyY2xlIC5icy1kaWFsb2ctYmFkZ2UtYXJ0LFxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXRvbmUtc3VjY2VzcyAuYnMtZGlhbG9nLWJhZGdlLWNpcmNsZSAuYnMtZGlhbG9nLWJhZGdlLWFydCxcbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy10b25lLXdhcm5pbmcgLmJzLWRpYWxvZy1iYWRnZS1jaXJjbGUgLmJzLWRpYWxvZy1iYWRnZS1hcnQge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG59XG5cbi8qIENvbnN1bWVyIGJvZHkgY29udGVudCAoc3RhdCByb3dzLCBhIG5vdGljZSBsaW5lLCBldGMuKSBzaXRzIGJlbG93IHRoZSBpbGx1c3RyYXRpb24vXG4gICB0aXRsZS90ZXh0LiBUaGUgZGlhbG9nIGJvZHkgY2VudGVycyBpdHMgYnVpbHQtaW5zOyB0aGlzIHdyYXBwZXIgc3RyZXRjaGVzIGZ1bGwtd2lkdGhcbiAgIGFuZCBsZWZ0LWFsaWducyBzbyBjdXN0b20gcm93cyBhcmVuJ3Qgc2hyaW5rLXdyYXBwZWQgb3IgY2VudGVyZWQuIFtLaW0gMTUuMDcuMjAyNl0gKi9cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtYm9keS5icy1kaWFsb2cgPiAuYnMtZGlhbG9nLWNvbnRlbnQge1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWFyZ2luLXRvcDogMjBweDtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtZGlhbG9nLWZvb3RlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMTJweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIC8qIFRoZSBmb290ZXIgc2l0cyBPVVRTSURFIC5icy1ib2R5LCBzbyBpdCBkb2Vzbid0IGluaGVyaXQgdGhlIGJvZHkncyBib3R0b21cbiAgICAgYnJlYXRoaW5nIHJvb20g4oCUIGdpdmUgaXQgdGhlIHNhbWUgMjRweCArIHNhZmUtYXJlYSBzbyB0aGUgYnV0dG9ucyBkb24ndCBnbHVlXG4gICAgIHRvIHRoZSBwYW5lbCBlZGdlLiBbS2ltIDE1LjA3LjIwMjZdXG5cbiAgICAgVGhlIGhvcml6b250YWwgMTZweCB3YXMgYWRkZWQgMTguMDguMjAyNi4gVGhlIHBhbmVsJ3Mgb3duIC0tYnMtcGFkLXggaXMgOHB4LFxuICAgICB0dW5lZCBmb3IgYnV0dG9uLVJPVyBzaGVldHMgd2hlcmUgYW4gb3B0aW9uIHJvdyBpcyBzdXBwb3NlZCB0byBydW4gbmVhcmx5IGVkZ2VcbiAgICAgdG8gZWRnZS4gQSBkaWFsb2cncyBmb290ZXIgaXMgbm90IGEgcm93IG9mIG9wdGlvbnMsIGl0IGlzIHR3byBidXR0b25zLCBhbmQgb25lXG4gICAgIG9mIHRoZW0gaXMgYSBzb2xpZCBmaWxsOiBhdCA4cHggaXQgcmVhZHMgYXMgZ2x1ZWQgdG8gdGhlIHBhbmVsIGVkZ2UuIE1lYXN1cmVkXG4gICAgIGlkZW50aWNhbGx5IG9uIHRoZSBwdXJwbGUgZGlhbG9nLCBzbyB0aGlzIGlzIG5vdCBhIGRhbmdlci10b25lIHByb2JsZW0gYW5kIHRoZVxuICAgICBmaXggYmVsb25ncyBvbiBib3RoLiA4ICsgMTYgPSAyNHB4LCBtYXRjaGluZyB0aGUgZm9vdGVyJ3Mgb3duIHZlcnRpY2FsIHJoeXRobS4gKi9cbiAgcGFkZGluZzogMjBweCAxNnB4IGNhbGMoMjRweCArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLCAwcHgpKTtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtZGlhbG9nLWZvb3RlciBxZG5hcHJvLWJ1dHRvbiB7XG4gIGZsZXg6IDE7XG59XG4vKiBUaGUgZGlhbG9nIHZhcmlhbnQgaXMgYWx3YXlzLXB1cnBsZTsgZXZlcnkgT1RIRVIgdmFyaWFudCBrZWVwcyB0aGUgYmFzZSB3aGl0ZSBjYXJkLlxuICAgQ29tYmluaW5nIGRpYWxvZyB3aXRoIHB1cnBsZS9nbGFzcy9yZWFkaW5nIGlzIG5vdCBzdXBwb3J0ZWQg4oCUIHZhcmlhbnQgaXMgYSBzaW5nbGVcbiAgIHZhbHVlIChzYW1lIGxpbWl0YXRpb24gdGhlIHJlYWRpbmcgdmFyaWFudCBhbHJlYWR5IGhhcykuICovXG5cbi8qIOKUgOKUgCBUb3AgcGxhY2VtZW50IChwbGFjZW1lbnQ9XCJ0b3BcIikg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gICBUaGUgU0FNRSBzaGVldCwgaGluZ2VkIG9uIHRoZSBUT1AgZWRnZTogYSBxdWljaywgbG93LWNvbW1pdG1lbnQgb3B0aW9ucyBtZW51IHRoYXRcbiAgIGRyb3BzIGRvd24gZnJvbSB1bmRlciB0aGUgaGVhZGVyIGl0cyB0cmlnZ2VyIHNpdHMgaW4gKE91dGxvb2sncyBjYWxlbmRhciB2aWV3LVxuICAgc3dpdGNoZXIgaXMgdGhlIHJlZmVyZW5jZSkuIEEgYm90dG9tIHNoZWV0IGlzIHRoZSBpbnRydXNpdmUgb25lIHRoYXQgdGFrZXMgb3ZlciB0aGVcbiAgIHNjcmVlbjsgdGhpcyBpcyB0aGUgbGlnaHQgb25lIGZvciBhIGhhbmRmdWwgb2Ygb3B0aW9ucy4gW0tpbSAyOS4wNy4yMDI2XVxuXG4gICBPTkxZIGdlb21ldHJ5ICsgZGlyZWN0aW9uIGZsaXAgaGVyZSDigJQgdGhlIHN1cmZhY2UgdmFyaWFudHMgKHB1cnBsZSAvIGdsYXNzIC9cbiAgIHJlYWRpbmcpIGFyZSB1bnRvdWNoZWQgYW5kIGNvbWJpbmUgZnJlZWx5LiBIb3Jpem9udGFsIHBhZGRpbmcgaXMgZGVsaWJlcmF0ZWx5IGxlZnRcbiAgIHRvIHRoZSBiYXNlICg4cHgpIG9yIHRoZSByZWFkaW5nIHZhcmlhbnQgKDE2cHgpOyBvbmx5IHRoZSB2ZXJ0aWNhbCBwYWRkaW5nIGNoYW5nZXMsXG4gICBiZWNhdXNlIHRoZSBncmFiLWhhbmRsZSBtb3ZlZCBvdXQgb2YgdGhlIHRvcC5cblxuICAgLS1icy10b3AgaXMgc2V0IGlubGluZSBieSBfYXBwbHlUb3BPZmZzZXQoKTogdGhlIGBhbmNob3JgIGVsZW1lbnQncyBib3R0b20gZWRnZSwgb3JcbiAgIHRoZSBsaXRlcmFsIGBvZmZzZXQtdG9wYC4gQWJzZW50IOKGkiBoYW5nIGp1c3QgYmVsb3cgdGhlIG5vdGNoLiAqL1xuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXBsYWNlbWVudC10b3AgLmJzLXBhbmVsIHtcbiAgdG9wOiB2YXIoLS1icy10b3AsIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wLCAwcHgpKTtcbiAgYm90dG9tOiBhdXRvO1xuICAvKiBIZWlnaHQgZm9sbG93cyB0aGUgY29udGVudDsgdGhpcyBjYXAgb25seSBiaXRlcyBvbiBhIGxvbmcgbGlzdCAoYW5kIGdpdmVzIGJhY2tcbiAgICAgd2hhdGV2ZXIgdGhlIGhlYWRlciBhYm92ZSBhbHJlYWR5IHRvb2spLiAqL1xuICBtYXgtaGVpZ2h0OiBjYWxjKDg2JSAtIHZhcigtLWJzLXRvcCwgMHB4KSk7XG4gIC8qIFNxdWFyZSwgTk9UIHJvdW5kZWQg4oCUIHRoZSBPdXRsb29rIHJlZmVyZW5jZTogdGhlIHRvcCBzaGVldCBydW5zIHRoZSBwYW5lbFxuICAgICBzdHJhaWdodCBpbnRvIHRoZSBoZWFkZXIgaXQgaGFuZ3MgZnJvbSwgbm8gY29ybmVyIHJhZGl1cyBhdCBhbGwuIFRoaXMgaXMgdGhlXG4gICAgIERFRkFVTFQgZm9yIHRoZSB0b3Agc2hlZXQgKG5vdCBhbiBhdHRyaWJ1dGUpOiBpdCBoYXMgbm8gb3RoZXIgY29uc3VtZXJzIHlldFxuICAgICB0aGFuIHRoZSB0d28gYWdlbmRhIG1lbnVzLCBhbmQgZmx1c2ggY29ybmVycyBhcmUgdGhlIGludGVuZGVkIGxvb2suIFRoZVxuICAgICBib3R0b20gc2hlZXQncyBvd24gcm91bmRpbmcgKDMycHggMzJweCAwIDAsIGFib3ZlKSBpcyB1bnRvdWNoZWQuIFtLaW0gMjkuMDcuMjAyNl0gKi9cbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgLyogU2hhZG93IGZhbGxzIERPV05XQVJELCBhd2F5IGZyb20gdGhlIGVkZ2UgaXQgaGFuZ3Mgb24uICovXG4gIGJveC1zaGFkb3c6IDAgMTBweCAzNHB4IHJnYmEoMCwgMCwgMCwgMC4xNik7XG4gIC8qIFBhcmtlZCBiZWhpbmQgaXRzIG93biBlZGdlIHdoaWxlIGNsb3NlZCAoYmFzZSBzaGVldCB1c2VzICsxMDAlKS4gKi9cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgcGFkZGluZy10b3A6IDE2cHg7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtcGxhY2VtZW50LXRvcC5pcy1vcGVuIC5icy1wYW5lbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbn1cbi8qIFRoZSBzY3JpbSBtdXN0IHN0YXJ0IHdoZXJlIHRoZSBwYW5lbCBzdGFydHMsIE5PVCBjb3ZlciB0aGUgd2hvbGUgc2NyZWVuICh0aGUgYmFzZVxuICAgLmJzLXNjcmltIGFib3ZlIGlzIGluc2V0OjAgZm9yIHRoZSBib3R0b20gc2hlZXQsIHdoaWNoIHBpbnMgdGhlIHNjcmltIHVuZGVyIHRoZVxuICAgZnVsbCB2aWV3cG9ydCBpbmNsdWRpbmcgYW55IGhlYWRlciB0aGUgc2hlZXQgaGFuZ3MgZnJvbSkuIEZpeCBsaXZlcyBIRVJFLCBhdCB0aGVcbiAgIHNvdXJjZSwgcmF0aGVyIHRoYW4gdGhlIGNvbnN1bWVyIHJlYWNoaW5nIGZvciBhIHotaW5kZXggd2FyIGl0IGNhbid0IHdpbjogYSBoZWFkZXJcbiAgIGxpdmluZyBpbnNpZGUgaXRzIG93biBzdGFja2luZy1jb250ZXh0IGFuY2VzdG9yIGNhbiBuZXZlciBvdXQtc3RhY2sgYSBzY3JpbVxuICAgcG9ydGFsbGVkIHN0cmFpZ2h0IG9udG8gPGJvZHk+LCBubyBtYXR0ZXIgd2hhdCB6LWluZGV4IGl0J3MgZ2l2ZW4uIFN0YXJ0aW5nIHRoZVxuICAgc2NyaW0gaXRzZWxmIGF0IC0tYnMtdG9wIG1lYW5zIHRoZSBoZWFkZXIgc2ltcGx5IGZhbGxzIE9VVFNJREUgdGhlIGRpbW1lZCBhcmVhIOKAlFxuICAgbm8gei1pbmRleCBuZWVkZWQgYW55d2hlcmUuIFNhbWUgZmFsbGJhY2sgY2hhaW4gYXMgdGhlIHBhbmVsJ3Mgb3duIGB0b3BgIGFib3ZlLlxuICAgQ29uc2VxdWVuY2U6IGEgdGFwIG9uIHRoZSBoZWFkZXIgbm8gbG9uZ2VyIGNsb3NlcyB0aGUgc2hlZXQgKGl0J3Mgb3V0c2lkZSB0aGVcbiAgIHNjcmltKSDigJQgaW50ZW5kZWQgZm9yIHRoaXMgcGF0dGVybiwgdGhlIGhlYWRlciBzdGF5cyB1c2FibGU7IHNjcmltLXRhcCwgRXNjIGFuZFxuICAgdGhlIGhhbmRsZSByZW1haW4gdGhlIHdheXMgdG8gZGlzbWlzcy4gW0tpbSAyOS4wNy4yMDI2XSAqL1xuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXBsYWNlbWVudC10b3AgLmJzLXNjcmltIHtcbiAgdG9wOiB2YXIoLS1icy10b3AsIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wLCAwcHgpKTtcbn1cbi8qIENvbWUgb3V0IGZyb20gVU5ERVIgdGhlIGhlYWRlciwgbmV2ZXIgT1ZFUiBpdCAoS2ltIDI5LjA3LjIwMjY6IFwidm9lbHQgdmVlbFxuICAgbmF0dXVybGlqa2VyXCIpLiBUaGUgcGFuZWwgb3BlbnMgYnkgc2xpZGluZyBkb3duIGZyb20gdHJhbnNsYXRlWSgtMTAwJSksIHdoaWNoXG4gICBwYXJrcyBpdCBvbmUgcGFuZWwtaGVpZ2h0IEFCT1ZFIGl0cyBvd24gdG9wIGVkZ2Ug4oCUIHN0cmFpZ2h0IG9uIHRvcCBvZiB0aGUgaGVhZGVyXG4gICBpdCBpcyBzdXBwb3NlZCB0byBoYW5nIHVuZGVyLCBhbmQgaXQgcGFpbnRzIHRoZXJlIGJlY2F1c2UgdGhlIHNoZWV0IHNpdHMgb25cbiAgIDxib2R5Pi4gQ2xpcHBpbmcgdGhlIEhPU1QgYXQgLS1icy10b3Aga2lsbHMgdGhhdCBvdmVybGFwIGZvciBnb29kOiB0aGUgaG9zdCBpc1xuICAgYWxyZWFkeSBgcG9zaXRpb246IGZpeGVkOyBpbnNldDogMGAsIHNvIGl0cyBib3ggSVMgdGhlIHZpZXdwb3J0IGFuZCB0aGlzIGNsaXAgaXNcbiAgIGluIHZpZXdwb3J0IGNvb3JkaW5hdGVzLCB3aGljaCBtZWFucyBOT1RISU5HIGFib3V0IHRoZSBwYW5lbCdzIG9yIHNjcmltJ3Mgb3duXG4gICBnZW9tZXRyeSBoYXMgdG8gY2hhbmdlLiBJdCBhbHNvIGZpeGVzIHRoZSBzYW1lIG92ZXJsYXAgd2hpbGUgRFJBR0dJTkcgdGhlIHNoZWV0XG4gICBjbG9zZWQgYnkgaGFuZCwgd2hpY2ggYSByZXZlYWwtYW5pbWF0aW9uIG9uIHRoZSBwYW5lbCBhbG9uZSB3b3VsZCBub3QuXG4gICBUaGUgc2NyaW0gcnVsZSBhYm92ZSBzdGF5cyBhcyBhIGJlbHQtYW5kLWJyYWNlczogaWYgY2xpcC1wYXRoIGV2ZXIgZmFpbHMsIHRoZVxuICAgaGVhZGVyIHN0aWxsIGlzIG5vdCBkaW1tZWQuICovXG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtcGxhY2VtZW50LXRvcCB7XG4gIGNsaXAtcGF0aDogaW5zZXQodmFyKC0tYnMtdG9wLCBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCwgMHB4KSkgMCAwIDApO1xufVxuLyogRHJvcCB0aGUgcGFuZWwncyBvd24gY29tcG9zaXRpbmcgaGludCBmb3IgdG9wIHBsYWNlbWVudC4gYHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm1gXG4gICBwcm9tb3RlcyBpdCB0byBpdHMgb3duIEdQVSBsYXllciwgYW5kIGEgY29tcG9zaXRlZCBsYXllciBpcyBleGFjdGx5IHRoZSBjYXNlIHdoZXJlXG4gICBpT1MgV0tXZWJWaWV3IGhhcyBoaXN0b3JpY2FsbHkgZXNjYXBlZCBhbiBhbmNlc3RvcidzIGNsaXAtcGF0aCDigJQgd2hpY2ggd291bGQgYnJpbmdcbiAgIHRoZSBvdmVybGFwIHJpZ2h0IGJhY2sgb24gdGhlIG9uZSBwbGF0Zm9ybSB0aGF0IG1hdHRlcnMgbW9zdCBoZXJlLiBUaGUgc2xpZGUgaXMgYVxuICAgc2luZ2xlIHNob3J0IHRyYW5zZm9ybSBvbiBhIHNtYWxsIHBhbmVsLCBzbyBpdCBkb2VzIG5vdCBuZWVkIHRoZSBoaW50LiAqL1xuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXBsYWNlbWVudC10b3AgLmJzLXBhbmVsIHtcbiAgd2lsbC1jaGFuZ2U6IGF1dG87XG59XG4vKiBHcmFiLWhhbmRsZSB0byB0aGUgQk9UVE9NIG9mIHRoZSBwYW5lbCB2aWEgZmxleCBvcmRlciBPTkxZIOKAlCB0aGUgRE9NIHN0YXlzIGFzXG4gICByZW5kZXJlZCwgc28gcmVuZGVyKCkgYW5kIHRoZSBwb2ludGVyLWRyYWcgYmluZGluZyByZW1haW4gc2hhcmVkIHdpdGggdGhlIGJvdHRvbVxuICAgc2hlZXQuIEV2ZXJ5IG90aGVyIHBhbmVsIGNoaWxkIGtlZXBzIG9yZGVyOjAsIGhlbmNlIGl0cyBET00gb3JkZXIgKGhlYWRlciwgYm9keSxcbiAgIGFuZCB0aGUgZGlhbG9nIGZvb3RlciBpZiB0aGVyZSBpcyBvbmUpLiAqL1xuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXBsYWNlbWVudC10b3AgLmJzLWhhbmRsZS16b25lIHtcbiAgb3JkZXI6IDk7XG4gIHBhZGRpbmc6IDE2cHggMCAxMnB4O1xufVxuLyogTm8gaG9tZS1pbmRpY2F0b3IgdG8gY2xlYXIgdXAgaGVyZSDigJQgdGhlIGhhbmRsZS16b25lIHVuZGVybmVhdGggaXMgdGhlIGJyZWF0aGluZ1xuICAgcm9vbSwgc28gZHJvcCB0aGUgYmFzZSdzIDI0cHggKyBzYWZlLWFyZWEtaW5zZXQtYm90dG9tLiAqL1xuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXBsYWNlbWVudC10b3AgLmJzLWJvZHkge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLyog4pSA4pSAIG5vLWhhbmRsZSAoYm9vbGVhbiBhdHRyKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgIEhpZGVzIHRoZSBncmFiIGhhbmRsZSBlbnRpcmVseSDigJQgT3V0bG9vayBoYXMgbm9uZSBvbiBpdHMgY2FsZW5kYXIgcXVpY2sgbWVudXMsXG4gICBmaXJzdCByZXF1ZXN0ZWQgZm9yIHRoZSBhZ2VuZGEgdG9wIHNoZWV0cy4gS2VwdCBhcyBhIENMQVNTIG9uIHRoZSBob3N0IChzYW1lXG4gICBwYXR0ZXJuIGFzIGJzLXBsYWNlbWVudC10b3AgLyBicy12YXJpYW50LXB1cnBsZSksIGFuZCB0aGUgaGFuZGxlLXpvbmUgZWxlbWVudFxuICAgc3RheXMgaW4gdGhlIERPTSAoZGlzcGxheTpub25lIG9ubHkpOiB0aGUgcG9pbnRlci1kcmFnIGxpc3RlbmVyIGJpbmRzIHRvXG4gICAuYnMtaGFuZGxlLXpvbmUgaW4gdGhlIEpTIGFuZCB3b3VsZCB0aHJvdyBvbiBudWxsIGlmIGl0IHdlcmUgcmVtb3ZlZC4gW0tpbSAyOS4wNy4yMDI2XSAqL1xuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLW5vLWhhbmRsZSAuYnMtaGFuZGxlLXpvbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogVGhlIGhhbmRsZS16b25lIGRvdWJsZWQgYXMgdGhpcyBlZGdlJ3MgYnJlYXRoaW5nIHJvb20g4oCUIGhpZGluZyBpdCB3b3VsZCBvdGhlcndpc2VcbiAgIGdsdWUgdGhlIGFkamFjZW50IGNvbnRlbnQgc3RyYWlnaHQgdG8gdGhlIHBhbmVsIGVkZ2UsIHNvIGdpdmUgdGhlIHNwYWNlIGJhY2s6XG4gICAtIGJvdHRvbSBwbGFjZW1lbnQ6IHRoZSB6b25lIHNpdHMgQUJPVkUgdGhlIGhlYWRlci9ib2R5IChwYW5lbCdzIHRvcCBlZGdlKSDihpIgcGFkXG4gICAgIHRoZSBwYW5lbCdzIHRvcC5cbiAgIC0gdG9wIHBsYWNlbWVudDogdGhlIHpvbmUgc2l0cyBCRUxPVyB0aGUgYm9keSAoZmxleCBvcmRlcjo5IGFib3ZlLCBwYW5lbCdzIGJvdHRvbVxuICAgICBlZGdlKSDihpIgcGFkIHRoZSBib2R5J3MgYm90dG9tLCBzbyB0aGUgbGFzdCBvcHRpb24gcm93IGtlZXBzIGl0cyBicmVhdGhpbmcgcm9vbS4gKi9cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy1uby1oYW5kbGU6bm90KC5icy1wbGFjZW1lbnQtdG9wKSAuYnMtcGFuZWwge1xuICBwYWRkaW5nLXRvcDogMTZweDtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy1wbGFjZW1lbnQtdG9wLmJzLW5vLWhhbmRsZSAuYnMtYm9keSB7XG4gIHBhZGRpbmctYm90dG9tOiAxNnB4O1xufVxuXG4vKiBFeHBsYWluZXIgXCJidWxsZXRcIiByb3c6IFtpY29uL2JhZGdlXSArIHdoaXRlIHRleHQsIHVzZWQgaW5zaWRlIC5icy1kaWFsb2ctY29udGVudFxuICAgZm9yIHRoaW5ncyBsaWtlIFwid2hhdCBkb2VzIHRoaXMgYmFkZ2UgbWVhblwiIChQV0EgZG9jdW1lbnRzIGJhZGdlLWluZm8gZGlhbG9nLFxuICAgMjguMDcuMjAyNikuIE5PVCBhIG5ldyBjb21wb25lbnQg4oCUIGp1c3QgYSBjb25zdW1lci1zaWRlIHJvdyB3cmFwcGluZyB3aGF0ZXZlciBpY29uXG4gICB0aGUgY29uc3VtZXIgcGFzc2VzIChlLmcuIDxxZG5hcHJvLXN0YXR1cy1iYWRnZSBmYXZvcml0ZSBzaXplPVwic21hbGxcIj4pIHBsdXMgYSB0ZXh0XG4gICBub2RlLiBTQU1FIGNsYXNzIG5hbWUgKyBydWxlIGFzIHRoZSBwb3BvdmVyJ3MgZGlhbG9nLWFycm93IGNvdW50ZXJwYXJ0IChzZWVcbiAgIF9wb3BvdmVyLnNjc3MpIHNvIGEgc2hlZXQgb24gcGhvbmUgYW5kIGEgcG9wb3ZlciBvbiB0YWJsZXQgcmVuZGVyIGJ5dGUtaWRlbnRpY2FsXG4gICBjb250ZW50LiBUaGUgaWNvbiBhbGlnbnMgdG8gdGhlIFRPUCBvZiB0aGUgdGV4dCBibG9jayAoZmxleC1zdGFydCkgcmF0aGVyIHRoYW4gYVxuICAgc3RyaWN0IHR5cG9ncmFwaGljIGJhc2VsaW5lIOKAlCB0aGUgaWNvbiBoZXJlIGlzIGEgc3RhdHVzLWJhZGdlIHBpbGwsIG5vdCBhIGdseXBoLCBzb1xuICAgdGhlcmUgaXMgbm8gc2luZ2xlIGJhc2VsaW5lIHRvIGhvb2sgaW50bzsgdG9wLWFsaWduaW5nIGlzIHRoZSBjbG9zZXN0IG1hdGNoIHRvXG4gICBcImljb24gbmV4dCB0byB0aGUgZmlyc3QgdGV4dCBsaW5lXCIgd2hlbiB0aGUgdGV4dCBjYW4gd3JhcCB0byAyIGxpbmVzLiAqL1xuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1kaWFsb2ctY29udGVudCAuYnMtZGlhbG9nLWJ1bGxldCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDEycHg7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlLTkwLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSkpO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWRpYWxvZy1jb250ZW50IC5icy1kaWFsb2ctYnVsbGV0ICsgLmJzLWRpYWxvZy1idWxsZXQge1xuICBtYXJnaW4tdG9wOiAxNHB4O1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1kaWFsb2ctY29udGVudCAuYnMtZGlhbG9nLWJ1bGxldCA+IHFkbmFwcm8tc3RhdHVzLWJhZGdlIHtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi8qIOKUgOKUgCBUaXRsZSBhcnQgKHRpdGxlLWxvdHRpZSAvIHRpdGxlLWxvdHRpZS1uYW1lIC8gdGl0bGUtaWNvbikg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gICBBIFNNQUxMIGFuaW1hdGVkIGdseXBoIHJpZ2h0IG5leHQgdG8gdGhlIGhlYWRpbmcsIGFzIG9uIHRoZSBQdWxzZSB2ZXJkaWN0IHNoZWV0c1xuICAgKFwiQ29ycmVjdCFcIiArIGEgY2hlY2spLiBUaGUgdGl0bGUgcm93IGNlbnRyZXMgdGV4dCArIGFydCB0b2dldGhlcjsgdGhlIGFydCBpcyA0MHB4XG4gICAoS2ltJ3MgZGVzaWduOiAyNHB4IHRpdGxlLCA0MHg0MCBpY29uKS4gVGhlIExvdHRpZSBsb29wcyB3aGlsZSB0aGUgc2hlZXQgaXMgb3BlbiAtIGFcbiAgIHNpbmdsZSBwbGF5IGZpbmlzaGVkIGR1cmluZyB0aGUgc2xpZGUtaW4gYW5kIEtpbSBzYXcgYSBzdGlsbCBpY29uLiBbS2ltIDAzLjA5LjIwMjZdICovXG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWRpYWxvZy10aXRsZS13aXRoLWFydCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiAxMnB4O1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1kaWFsb2ctdGl0bGUtYXJ0IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4OiAwIDAgYXV0bztcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtZGlhbG9nLXRpdGxlLWxvdHRpZSB7XG4gIC0tcWwtc2l6ZTogNDBweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWRpYWxvZy10aXRsZS1pY29uIHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xufVxuXG4vKiDilIDilIAgRmxvYXQgc2xvdCAoc2xvdD1cImZsb2F0XCIpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAgQ2hpbGRyZW4gbWFya2VkIHNsb3Q9XCJmbG9hdFwiIGFyZSBwYXJrZWQgaGVyZSwgQUJPVkUgdGhlIHBhbmVsJ3MgdG9wIGVkZ2UsIHJpZ2h0LWFsaWduZWRcbiAgIGFuZCAxNHB4IGNsZWFyIG9mIGl0IChLaW0ncyBkZXNpZ246IHRoZSBwb2ludHMgcGlsbCBzaXRzIGluIHRoZSBnYXAgYmV0d2VlbiB0aGUgY2FyZFxuICAgcGhvdG8gYW5kIHRoZSBzaGVldCkuIEFic29sdXRlIGluc2lkZSB0aGUgZml4ZWQgcGFuZWwsIHNvIGl0IHRyYXZlbHMgd2l0aCB0aGUgc2xpZGUtaW5cbiAgIGFuZCB3aXRoIGEgc3dpcGUtZG93bi4gcG9pbnRlci1ldmVudHMgb2ZmOiBpdCBpcyBhIGxhYmVsLCBub3QgYSBjb250cm9sLCBhbmQgbXVzdCBub3RcbiAgIGJsb2NrIHRoZSBzY3JpbSBiZWhpbmQgaXQuIFRoZSBwYW5lbCBoYXMgbm8gb3ZlcmZsb3cgY2xpcHBpbmcgKG9ubHkgLmJzLWJvZHkgc2Nyb2xscyksXG4gICBzbyBub3RoaW5nIGhlcmUgaXMgY3V0IG9mZi4gW0tpbSAwMy4wOS4yMDI2XSAqL1xuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1mbG9hdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDEwcHg7XG4gIGJvdHRvbTogY2FsYygxMDAlICsgMTRweCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi8qIFRoZSBwaWxsOiB0aGUgdG9uZSdzIFNVUkZBQ0UgY29sb3VyLCBzbyBpdCByZWFkcyBhcyBhIHBpZWNlIG9mIHRoZSBzaGVldCBmbG9hdGluZyBmcmVlLlxuICAgNDlweCB0YWxsIGxpa2UgdGhlIGRlc2lnbiwgZnVsbCByYWRpdXMsIHdoaXRlIGJvbGQgMjBweC4gVGhlIHB1cnBsZSBkaWFsb2cgZ2V0cyB0aGVcbiAgIHB1cnBsZSBzdXJmYWNlIGZvciB0aGUgc2FtZSByZWFzb24uICovXG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLXBpbGwge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGhlaWdodDogNDlweDtcbiAgcGFkZGluZzogMCAxOHB4IDAgMTRweDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1waWxsLCA5OTlweCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogODAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy10b25lLWRhbmdlciAuYnMtcGlsbCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLWRhbmdlci1zdXJmYWNlKTtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy10b25lLXN1Y2Nlc3MgLmJzLXBpbGwge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy1zdWNjZXNzLXN1cmZhY2UpO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXRvbmUtd2FybmluZyAuYnMtcGlsbCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLXdhcm5pbmctc3VyZmFjZSk7XG59XG5cbi8qIOKUgOKUgCBWZXJkaWN0IGNhcmRzICguYnMtZGlhbG9nLWNhcmQpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAgT25lIHJvdW5kZWQgYmxvY2sgcGVyIGFuc3dlciBvcHRpb24gb24gYSB0b25lZCBkaWFsb2c6IGEgYm9sZCBoZWFkICh2ZXJkaWN0IGljb24gK1xuICAgb3B0aW9uIHRleHQpIGFuZCB0aGUgZXhwbGFuYXRpb24gdW5kZXIgaXQsIHdoaXRlIG9uIHRoZSB0b25lJ3MgQ0FSRCBjb2xvdXIgKHRoZSBkYXJrZXJcbiAgIGZpbGwgZnJvbSBLaW0ncyBzZXQpLiBkYXRhLXZlcmRpY3Q9XCJyaWdodHx3cm9uZ1wiIHBpY2tzIHRoZSBpY29uIC0gS2ltJ3Mgb3duIGNoZWNrIGFuZFxuICAgY3Jvc3MgU1ZHcywgaW5saW5lZCBzbyB0aGV5IGFyZSB0aGVyZSBvZmZsaW5lIC0gYW5kLCBvbiB0aGUgd2FybmluZyB0b25lIG9ubHksIGFcbiAgIHNsaWdodGx5IHJlZGRlciBmaWxsIGZvciBhIHdyb25nIG9wdGlvbiAoZGVzaWduIGNob2ljZSwgc2VlIHRoZSB0b2tlbnMpLiBMaXZlcyBpbnNpZGVcbiAgIC5icy1kaWFsb2ctY29udGVudCBsaWtlIHRoZSBidWxsZXQgcm93czsgOHB4IGJldHdlZW4gY2FyZHMgYXMgaW4gdGhlIGRlc2lnbi4gKi9cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtZGlhbG9nLWNvbnRlbnQgLmJzLWRpYWxvZy1jYXJkIHtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgcGFkZGluZzogMTRweCAxMnB4IDE2cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTcwMCk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBsaW5lLWhlaWdodDogMS43NTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtZGlhbG9nLWNvbnRlbnQgLmJzLWRpYWxvZy1jYXJkICsgLmJzLWRpYWxvZy1jYXJkIHtcbiAgbWFyZ2luLXRvcDogOHB4O1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1kaWFsb2ctY29udGVudCAuYnMtZGlhbG9nLWNhcmQtaGVhZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1kaWFsb2ctY29udGVudCAuYnMtZGlhbG9nLWNhcmQtaWNvbiB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB3aWR0aDogMjFweDtcbiAgaGVpZ2h0OiAyMXB4O1xuICBiYWNrZ3JvdW5kOiBuby1yZXBlYXQgY2VudGVyIC8gY29udGFpbjtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtZGlhbG9nLWNvbnRlbnQgLmJzLWRpYWxvZy1jYXJkW2RhdGEtdmVyZGljdD1cInJpZ2h0XCJdIC5icy1kaWFsb2ctY2FyZC1pY29uIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMjEnIGhlaWdodD0nMjEnIHZpZXdCb3g9JzAgMCAyMSAyMScgZmlsbD0nbm9uZScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZD0nTTEwLjQ0MTMgMjAuMDk4NkMxNS43NzQ3IDIwLjA5ODYgMjAuMDk4NCAxNS43NzUgMjAuMDk4NCAxMC40NDE1QzIwLjA5ODQgNS4xMDgwNSAxNS43NzQ3IDAuNzg0NDI0IDEwLjQ0MTMgMC43ODQ0MjRDNS4xMDc4MSAwLjc4NDQyNCAwLjc4NDE4IDUuMTA4MDUgMC43ODQxOCAxMC40NDE1QzAuNzg0MTggMTUuNzc1IDUuMTA3ODEgMjAuMDk4NiAxMC40NDEzIDIwLjA5ODZaJyBmaWxsPSclMjM1OEI5OTInLyUzRSUzQ3BhdGggZD0nTTEwLjQ0MTQgMjAuODgyOEM0LjY4NCAyMC44ODI4IDAgMTYuMTk4OCAwIDEwLjQ0MTRDMCA0LjY4NCA0LjY4NCAwIDEwLjQ0MTQgMEMxNi4xOTg4IDAgMjAuODgyOCA0LjY4NCAyMC44ODI4IDEwLjQ0MTRDMjAuODgyOCAxNi4xOTg4IDE2LjE5ODggMjAuODgyOCAxMC40NDE0IDIwLjg4MjhaTTEwLjQ0MTQgMS41Njg2M0M1LjU0ODk0IDEuNTY4NjMgMS41Njg2MyA1LjU0ODk0IDEuNTY4NjMgMTAuNDQxNEMxLjU2ODYzIDE1LjMzMzkgNS41NDg5NCAxOS4zMTQyIDEwLjQ0MTQgMTkuMzE0MkMxNS4zMzM5IDE5LjMxNDIgMTkuMzE0MiAxNS4zMzM5IDE5LjMxNDIgMTAuNDQxNEMxOS4zMTQyIDUuNTQ4OTQgMTUuMzMzOSAxLjU2ODYzIDEwLjQ0MTQgMS41Njg2M1onIGZpbGw9JyUyMzJGNUQ0QScvJTNFJTNDcGF0aCBkPSdNOS4yNjczOSAxNC4yMTk3QzguOTM0OTIgMTQuMjE5NyA4LjYyMjM3IDE0LjA5MDIgOC4zODczMiAxMy44NTUxTDUuODM5MDggMTEuMzA2OUM1LjUzMjgxIDExLjAwMDYgNS41MzI4MSAxMC41MDQgNS44MzkwOCAxMC4xOTc2QzYuMTQ1MzYgOS44OTEzNiA2LjY0MTk4IDkuODkxMzYgNi45NDgyNiAxMC4xOTc2TDkuMjY3MzIgMTIuNTE2N0wxMy45MzQyIDcuODQ5NzlDMTQuMjQwNSA3LjU0MzYgMTQuNzM3IDcuNTQzNTIgMTUuMDQzNCA3Ljg0OTc5QzE1LjM0OTcgOC4xNTYwNyAxNS4zNDk3IDguNjUyNyAxNS4wNDM0IDguOTU5MDVMMTAuMTQ3MyAxMy44NTVDOS45MTI0MSAxNC4wOTAyIDkuNTk5ODYgMTQuMjE5NyA5LjI2NzM5IDE0LjIxOTdaJyBmaWxsPSd3aGl0ZScvJTNFJTNDL3N2ZyUzRVwiKTtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtZGlhbG9nLWNvbnRlbnQgLmJzLWRpYWxvZy1jYXJkW2RhdGEtdmVyZGljdD1cIndyb25nXCJdIC5icy1kaWFsb2ctY2FyZC1pY29uIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMjEnIGhlaWdodD0nMjEnIHZpZXdCb3g9JzAgMCAyMSAyMScgZmlsbD0nbm9uZScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZD0nTTEwLjE5MDIgMTkuNjE0NkMxNS4zOTUzIDE5LjYxNDYgMTkuNjE0OSAxNS4zOTUxIDE5LjYxNDkgMTAuMTlDMTkuNjE0OSA0Ljk4NDkyIDE1LjM5NTMgMC43NjUzODEgMTAuMTkwMiAwLjc2NTM4MUM0Ljk4NTE3IDAuNzY1MzgxIDAuNzY1NjI1IDQuOTg0OTIgMC43NjU2MjUgMTAuMTlDMC43NjU2MjUgMTUuMzk1MSA0Ljk4NTE3IDE5LjYxNDYgMTAuMTkwMiAxOS42MTQ2WicgZmlsbD0nJTIzRkYzQTMwJy8lM0UlM0NwYXRoIGQ9J00xMC4xOSAyMC4zODAxQzQuNTcxMjQgMjAuMzgwMSAwIDE1LjgwODkgMCAxMC4xOUMwIDQuNTcxMjQgNC41NzEyNCAwIDEwLjE5IDBDMTUuODA4OSAwIDIwLjM4MDEgNC41NzEyNCAyMC4zODAxIDEwLjE5QzIwLjM4MDEgMTUuODA4OSAxNS44MDg5IDIwLjM4MDEgMTAuMTkgMjAuMzgwMVpNMTAuMTkgMS41MzA3OUM1LjQxNTM2IDEuNTMwNzkgMS41MzA4NiA1LjQxNTI4IDEuNTMwODYgMTAuMTlDMS41MzA4NiAxNC45NjQ3IDUuNDE1MzYgMTguODQ5MiAxMC4xOSAxOC44NDkyQzE0Ljk2NDcgMTguODQ5MiAxOC44NDkyIDE0Ljk2NDcgMTguODQ5MiAxMC4xOUMxOC44NDkyIDUuNDE1MjggMTQuOTY0OCAxLjUzMDc5IDEwLjE5IDEuNTMwNzlaJyBmaWxsPSclMjM3QzE5MTQnLyUzRSUzQ3BhdGggZD0nTTExLjI3MjYgMTAuMTlMMTMuOTY2MiA3LjQ5NjQxQzE0LjI2NTEgNy4xOTc1MSAxNC4yNjUxIDYuNzEyODQgMTMuOTY2MiA2LjQxMzk0QzEzLjY2NzIgNi4xMTQ5NiAxMy4xODI2IDYuMTE1MTIgMTIuODgzNyA2LjQxMzg2TDEwLjE5IDkuMTA3NUw3LjQ5NjQxIDYuNDEzODZDNy4xOTc1MSA2LjExNDk2IDYuNzEyODQgNi4xMTQ5NiA2LjQxMzg2IDYuNDEzOTRDNi4xMTQ5NiA2LjcxMjg0IDYuMTE0OTYgNy4xOTc1MSA2LjQxMzk0IDcuNDk2NDFMOS4xMDc1NyAxMC4xOUw2LjQxMzk0IDEyLjg4MzVDNi4xMTUwNCAxMy4xODI0IDYuMTE0OTYgMTMuNjY3MSA2LjQxMzg2IDEzLjk2NkM2LjU2MzM1IDE0LjExNTUgNi43NTkyMyAxNC4xOTAyIDYuOTU1MSAxNC4xOTAyQzcuMTUwOTcgMTQuMTkwMiA3LjM0NjkzIDE0LjExNTQgNy40OTYzNCAxMy45NjZMMTAuMTkgMTEuMjcyNEwxMi44ODM2IDEzLjk2NkMxMy4wMzMgMTQuMTE1NSAxMy4yMjkgMTQuMTkwMiAxMy40MjQ4IDE0LjE5MDJDMTMuNjIwNyAxNC4xOTAyIDEzLjgxNjcgMTQuMTE1NCAxMy45NjYxIDEzLjk2NkMxNC4yNjUgMTMuNjY3MSAxNC4yNjUgMTMuMTgyNCAxMy45NjYxIDEyLjg4MzVMMTEuMjcyNiAxMC4xOVonIGZpbGw9J3doaXRlJy8lM0UlM0Mvc3ZnJTNFXCIpO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1kaWFsb2ctY29udGVudCAuYnMtZGlhbG9nLWNhcmQtdGV4dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXRvbmUtZGFuZ2VyIC5icy1kaWFsb2ctY29udGVudCAuYnMtZGlhbG9nLWNhcmQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy1kYW5nZXItY2FyZCk7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdG9uZS1zdWNjZXNzIC5icy1kaWFsb2ctY29udGVudCAuYnMtZGlhbG9nLWNhcmQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy1zdWNjZXNzLWNhcmQpO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXRvbmUtd2FybmluZyAuYnMtZGlhbG9nLWNvbnRlbnQgLmJzLWRpYWxvZy1jYXJkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctd2FybmluZy1jYXJkKTtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy10b25lLXdhcm5pbmcgLmJzLWRpYWxvZy1jb250ZW50IC5icy1kaWFsb2ctY2FyZFtkYXRhLXZlcmRpY3Q9XCJ3cm9uZ1wiXSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLXdhcm5pbmctY2FyZC13cm9uZyk7XG59XG5cbi8qIGRhdGEtdmVyZGljdD1cIm1pc3NlZFwiOiByaWdodCwgYnV0IHRoZSByZWFkZXIgZGlkIE5PVCBwaWNrIGl0LiBLaW0gMDQuMDkuMjAyNiAtIGEgc2hlZXRcbiAgIHRoYXQgb25seSBsaXN0cyB5b3VyIG93biBwaWNrcyBjYW5ub3QgZXhwbGFpbiBcInBhcnRseSByaWdodFwiIHdoZW4gZXZlcnkgY2FyZCBvbiBzY3JlZW5cbiAgIGlzIGdyZWVuLiBTYW1lIGxhbmd1YWdlIHRoZSBhbnN3ZXIgcm93cyBvbiB0aGUgY2FyZCBhbHJlYWR5IHVzZSBmb3IgdGhhdCBzdGF0ZVxuICAgKGRhdGEtcHVsc2Utc3RhbmQ9XCJnb2VkLWdlbWlzdFwiKTogTk8gZmlsbGVkIGJsb2NrLCBhIGRhc2hlZCBvdXRsaW5lIGFuZCBhIGRhc2hlZCB0aWNrLlxuICAgVGhlIGZpbGwgc3RheXMgdGhlIHRvbmUncyBvd24gY2FyZCBjb2xvdXIgc28gdGhlIGJsb2NrIHN0aWxsIGJlbG9uZ3MgdG8gdGhlIHNoZWV0LCBhbmRcbiAgIHRoZSBkYXNoZWQgYm9yZGVyIGlzIHdoYXQgc2VwYXJhdGVzIFwidGhlIHRydXRoXCIgZnJvbSBcIndoYXQgeW91IGNob3NlXCIuICovXG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWRpYWxvZy1jb250ZW50IC5icy1kaWFsb2ctY2FyZFtkYXRhLXZlcmRpY3Q9XCJtaXNzZWRcIl0ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAycHggZGFzaGVkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgcGFkZGluZzogMTJweCAxMHB4IDE0cHg7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWRpYWxvZy1jb250ZW50IC5icy1kaWFsb2ctY2FyZFtkYXRhLXZlcmRpY3Q9XCJtaXNzZWRcIl0gLmJzLWRpYWxvZy1jYXJkLWljb24ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScyMScgaGVpZ2h0PScyMScgdmlld0JveD0nMCAwIDIxIDIxJyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDY2lyY2xlIGN4PScxMC41JyBjeT0nMTAuNScgcj0nOS4zJyBzdHJva2U9J3doaXRlJyBzdHJva2Utd2lkdGg9JzEuNycgc3Ryb2tlLWRhc2hhcnJheT0nMy4yIDIuOCcvJTNFJTNDcGF0aCBkPSdNOS4yNjczOSAxNC4yMTk3QzguOTM0OTIgMTQuMjE5NyA4LjYyMjM3IDE0LjA5MDIgOC4zODczMiAxMy44NTUxTDUuODM5MDggMTEuMzA2OUM1LjUzMjgxIDExLjAwMDYgNS41MzI4MSAxMC41MDQgNS44MzkwOCAxMC4xOTc2QzYuMTQ1MzYgOS44OTEzNiA2LjY0MTk4IDkuODkxMzYgNi45NDgyNiAxMC4xOTc2TDkuMjY3MzIgMTIuNTE2N0wxMy45MzQyIDcuODQ5NzlDMTQuMjQwNSA3LjU0MzYgMTQuNzM3IDcuNTQzNTIgMTUuMDQzNCA3Ljg0OTc5QzE1LjM0OTcgOC4xNTYwNyAxNS4zNDk3IDguNjUyNyAxNS4wNDM0IDguOTU5MDVMMTAuMTQ3MyAxMy44NTVDOS45MTI0MSAxNC4wOTAyIDkuNTk5ODYgMTQuMjE5NyA5LjI2NzM5IDE0LjIxOTdaJyBmaWxsPSd3aGl0ZScvJTNFJTNDL3N2ZyUzRVwiKTtcbn1cbi8qIFRoZSBsaW5lIGFib3ZlIHRoYXQgZ3JvdXAgb2YgY2FyZHMgKFwiRGV6ZSBoYWQgamUgbm9nIG1vZXRlbiBraWV6ZW5cIikuIE5vdCBhIGhlYWRpbmdcbiAgIGVsZW1lbnQ6IHRoZSBkaWFsb2cgYWxyZWFkeSBvd25zIHRoZSBvbmx5IGgtbGV2ZWwgaW4gdGhpcyBwYW5lbC4gKi9cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtZGlhbG9nLWNvbnRlbnQgLmJzLWRpYWxvZy1sYWJlbCB7XG4gIG1hcmdpbjogMTZweCAwIDhweDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWRpYWxvZy1jb250ZW50IC5icy1kaWFsb2ctbGFiZWw6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuIiwiLy8gcWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uICgrIC1ncm91cCkg4oCUIGFjdGlvbi9vcHRpb24gcm93cyBmb3IgYSBib3R0b20gc2hlZXQuXG4vLyBGTEFUIENTUzsgY29sb3Vycy9yYWRpaSBmcm9tIHRoZSBkZXNpZ24tdG9rZW4gOnJvb3QuXG4vLyBMYXlvdXQ6IGxlYWRpbmcgaWNvbiB8IGxhYmVsIHwgdHJhaWxpbmcgY2hlY2sgKGFjdGl2ZSBvbmx5LCBsaWtlIEluc3RhZ3JhbSkuXG4vLyBvbi13aGl0ZSAvIG9uLXB1cnBsZSA9IGZsYXQgcm93cyAobm8gaW5kaXZpZHVhbCBmaWxsIGF0IGlkbGUpLCBkaXZpZGVkIGJ5IGEgaGFpcmxpbmUuXG4vLyBJbnRlbnQgdmFyaWFudHMgKHdhcm5pbmcvZGVzdHJ1Y3RpdmUvc3VjY2Vzcykga2VlcCB0aGVpciBvd24gdGludGVkIGNhcmQuXG5cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItdG9wOiBub25lO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTMpO1xuICBwYWRkaW5nOiAxM3B4IDE2cHg7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1mb250LWZhbWlseSwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNHMgZWFzZSwgdHJhbnNmb3JtIDAuMXMgZWFzZTtcbn1cblxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbiAuYnNiLWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1hcmdpbi1yaWdodDogMTRweDtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24gLmJzYi1sYWJlbCB7IGZsZXg6IDE7IG1pbi13aWR0aDogMDsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbiAuYnNiLWNoZWNrIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1hcmdpbi1sZWZ0OiAxMnB4O1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2ItYWN0aXZlIC5ic2ItY2hlY2sgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfVxuXG4vLyB2YWx1ZS1sYWJlbCDigJQgdHJhaWxpbmcgbXV0ZWQgdGV4dCBvbiB0aGUgcmlnaHQgKHRoZSBjdXJyZW50IGNob2ljZSwgZS5nLiBcIk5vbmVcIlxuLy8gb3IgYSB0YXNrbGlzdCBuYW1lKTsgZWxsaXBzaXplZCBzbyBhIGxvbmcgbmFtZSBuZXZlciBwdXNoZXMgdGhlIHJvdyB3aWRlci5cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24gLmJzYi12YWx1ZSB7XG4gIGZsZXgtc2hyaW5rOiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIG1heC13aWR0aDogNTUlO1xuICBtYXJnaW4tbGVmdDogMTJweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1vbi1wdXJwbGUgLmJzYi12YWx1ZSB7IGNvbG9yOiB2YXIoLS1jLXdoaXRlLTcwKTsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2ItZGlzYWJsZWQgLmJzYi12YWx1ZSB7IGNvbG9yOiBpbmhlcml0OyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi10aWxlIC5ic2ItdmFsdWUgeyBkaXNwbGF5OiBub25lOyB9XG5cbi8vIHN1YnRpdGxlIOKAlCBhIHNlY29uZCwgc21hbGxlciBsaW5lIHVuZGVyIHRoZSBsYWJlbCwgZm9yIGFuIG9wdGlvbiB0aGF0IG5lZWRzIGEgYml0IG9mXG4vLyBleHBsYW5hdGlvbi4gUnVsZXMgZnJvbSBLaW0gMDMuMDguMjAyNjpcbi8vICAgKiBPTkUgbGluZSwgZWxsaXBzaXplZC4gQSBzaGVldCByb3cgbmV2ZXIgZ3Jvd3MgdG8gdGhyZWUgbGluZXMsIHNvIHRoZSByb3cgaGVpZ2h0XG4vLyAgICAgc3RheXMgcHJlZGljdGFibGUgYW5kIHRoZSBzaGVldCBvdXRsaW5lIG5ldmVyIG1vdmVzLiBLZWVwIHRoZSBjb3B5IHNob3J0LlxuLy8gICAqIDEzcHggKG5vdCB0aGUgMTJweCB1c2VkIGluIGxpc3Qtcm93L2V2ZW50LWNhcmQpOiB0aGUgbGFiZWwgaGVyZSBpcyAxNnB4LCBzbyAxMnB4XG4vLyAgICAgZHJvcHMgdG9vIGZhciBhd2F5IGZyb20gaXQuXG4vLyAgICogVGhlIGljb24gYWxpZ25zIHdpdGggdGhlIEZJUlNUIGxpbmUsIG5vdCB3aXRoIHRoZSBtaWRkbGUgb2YgdGhlIHR3by1saW5lIGJsb2NrIOKAlFxuLy8gICAgIHRoZSBpY29uIGJlbG9uZ3MgdG8gdGhlIGxhYmVsLlxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbiAuYnNiLXRleHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDJweDtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbiAuYnNiLXRleHQgLmJzYi1sYWJlbCB7IGZsZXg6IG5vbmU7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24gLmJzYi1zdWIge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi8vIGZsZXgtc3RhcnQgcHVzaGVzIGljb24vdmFsdWUvY2hlY2sgdG8gdGhlIHRvcDsgdGhlIG5lZ2F0aXZlIG9mZnNldCB0aGVuIGNlbnRyZXMgdGhlXG4vLyAyNHB4IGdseXBoIE9OIHRoZSAxNnB4LzEuMiBsYWJlbCBsaW5lIGluc3RlYWQgb2Ygb24gaXRzIHRvcCBlZGdlLlxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2ItaGFzLXN1Yjpub3QoLmJzYi10aWxlKSB7IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1oYXMtc3ViOm5vdCguYnNiLXRpbGUpIC5ic2ItaWNvbiB7IG1hcmdpbi10b3A6IC0ycHg7IH1cblxuLy8gb24td2hpdGUg4oCUIGZsYXQgaWRsZSAobm8gcmFkaXVzLCBubyBmaWxsKTsgcmFkaXVzICsgZmlsbCBvbmx5IG9uIGludGVyYWN0aW9uXG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1vbi13aGl0ZSB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNzAwKTsgYm9yZGVyLXJhZGl1czogMDsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2Itb24td2hpdGU6aG92ZXI6bm90KC5ic2ItZGlzYWJsZWQpOm5vdCguYnNiLWFjdGl2ZSkgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTMpOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1vbi13aGl0ZS5pcy1wcmVzc2VkIHsgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTEwMCk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItMyk7IHRyYW5zZm9ybTogc2NhbGUoMC45ODUpOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1vbi13aGl0ZS5ic2ItYWN0aXZlIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGNvbG9yOiB2YXIoLS1jLXB1cnBsZS03MDApOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1vbi13aGl0ZS5ic2ItZGlzYWJsZWQgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY29sb3I6IHZhcigtLWMtZ3JleS0zMDApOyBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuLy8gb24tcHVycGxlIOKAlCBmbGF0IHJvd3Mgb24gYSBwdXJwbGUgc2hlZXQsIHdoaXRlIHRleHRcbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLW9uLXB1cnBsZSB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7IGJvcmRlci1yYWRpdXM6IDA7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLW9uLXB1cnBsZTpob3Zlcjpub3QoLmJzYi1kaXNhYmxlZCk6bm90KC5ic2ItYWN0aXZlKSB7IGJhY2tncm91bmQ6IHZhcigtLWMtd2hpdGUtMTQpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTMpOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1vbi1wdXJwbGUuaXMtcHJlc3NlZCB7IGJhY2tncm91bmQ6IHZhcigtLWMtd2hpdGUtMjIpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTMpOyB0cmFuc2Zvcm06IHNjYWxlKDAuOTg1KTsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2Itb24tcHVycGxlLmJzYi1hY3RpdmUgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1vbi1wdXJwbGUuYnNiLWRpc2FibGVkIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGNvbG9yOiB2YXIoLS1jLXdoaXRlLTQ1KTsgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi8vIHRpbGUg4oCUIGljb24gYWJvdmUgbGFiZWwsIHNxdWFyZSBhc3BlY3QsIGZvciBob3Jpem9udGFsIHJvd3MgKGFsd2F5cyBpbnNpZGUgYSBncm91cClcbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLXRpbGUge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIHBhZGRpbmc6IDE0cHggOHB4O1xuICBmbGV4OiAxO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTMpO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2ItdGlsZSAuYnNiLWljb24geyBtYXJnaW4tcmlnaHQ6IDA7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLXRpbGUgLmJzYi1sYWJlbCB7IGZsZXg6IG5vbmU7IGZvbnQtc2l6ZTogMTJweDsgdGV4dC1hbGlnbjogY2VudGVyOyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4vLyB0aWxlICsgc3VidGl0bGUgKEtpbSAwMy4wOC4yMDI2OiB5ZXMsIHRpbGVzIGdldCBpdCB0b28pIOKAlCBjZW50cmVkIGFuZCBhIHN0ZXAgc21hbGxlclxuLy8gdGhhbiB0aGUgMTJweCB0aWxlIGxhYmVsLCBzdGlsbCBvbmUgZWxsaXBzaXplZCBsaW5lLiBBIHRpbGUgaXMgbmFycm93LCBzbyB0aGUgY29weSBoYXNcbi8vIHRvIGJlIG9uZSBvciB0d28gd29yZHMuXG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi10aWxlIC5ic2ItdGV4dCB7IGZsZXg6IG5vbmU7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMXB4OyBtYXgtd2lkdGg6IDEwMCU7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLXRpbGUgLmJzYi1zdWIgeyBmb250LXNpemU6IDExcHg7IGxpbmUtaGVpZ2h0OiAxLjI1OyBtYXgtd2lkdGg6IDEwMCU7IHRleHQtYWxpZ246IGNlbnRlcjsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2ItdGlsZSAuYnNiLWNoZWNrLFxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2ItdGlsZS5ic2ItYWN0aXZlIC5ic2ItY2hlY2sgeyBkaXNwbGF5OiBub25lOyB9XG5cbi8vIHRpbGUgZ3JvdXAg4oCUIGhvcml6b250YWwgcm93IGxheW91dFxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi1ncm91cC5ic2JnLXRpbGVzIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IHJvdzsgZ2FwOiA2cHg7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24tZ3JvdXAuYnNiZy10aWxlcyAucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uIHsgYm9yZGVyLXJhZGl1czogdmFyKC0tci0zKTsgcGFkZGluZzogMTRweCA4cHg7IH1cblxuLy8gdGlsZSBvbiB3aGl0ZSDigJQgZWFjaCB0aWxlIGlzIGEgbWluaSByYWlzZWQgY2FyZFxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi1ncm91cC5ic2JnLXRpbGVzLmJzYmctb24td2hpdGUgLmJzYi10aWxlIHsgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTsgY29sb3I6IHZhcigtLWMtcHVycGxlLTcwMCk7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24tZ3JvdXAuYnNiZy10aWxlcy5ic2JnLW9uLXdoaXRlIC5ic2ItdGlsZTpob3Zlcjpub3QoLmJzYi1kaXNhYmxlZCkgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMTAwKTsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi1ncm91cC5ic2JnLXRpbGVzLmJzYmctb24td2hpdGUgLmJzYi10aWxlLmlzLXByZXNzZWQgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMTAwKTsgdHJhbnNmb3JtOiBzY2FsZSgwLjk3KTsgfVxuXG4vLyB0aWxlIG9uIHB1cnBsZSDigJQgc2xpZ2h0bHkgbGlnaHRlciB0aGFuIGdyb3VwIGJnIHNvIHRpbGVzIHZpc3VhbGx5IHNlcGFyYXRlXG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLWdyb3VwLmJzYmctdGlsZXMuYnNiZy1vbi1wdXJwbGUgLmJzYi10aWxlIHsgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZS0yMik7IGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi1ncm91cC5ic2JnLXRpbGVzLmJzYmctb24tcHVycGxlIC5ic2ItdGlsZTpob3Zlcjpub3QoLmJzYi1kaXNhYmxlZCkgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdoaXRlLTI4KTsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi1ncm91cC5ic2JnLXRpbGVzLmJzYmctb24tcHVycGxlIC5ic2ItdGlsZS5pcy1wcmVzc2VkIHsgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZS0yOCk7IHRyYW5zZm9ybTogc2NhbGUoMC45Nyk7IH1cblxuLy8gSW50ZW50IHZhcmlhbnRzIOKAlCBrZWVwIHRoZWlyIHRpbnRlZCBjYXJkIChzZW1hbnRpYyBtZWFuaW5nIG5lZWRzIHRoZSBmaWxsKVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2ItZGVzdHJ1Y3RpdmUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1yZWQtc29mdCk7IGNvbG9yOiB2YXIoLS1jLXRhZy1jcml0aWNhbC10ZXh0KTsgbWFyZ2luLXRvcDogOHB4OyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1kZXN0cnVjdGl2ZTpob3Zlcjpub3QoLmJzYi1kaXNhYmxlZCkgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1yZWQtYmcpOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1kZXN0cnVjdGl2ZS5pcy1wcmVzc2VkIHsgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtcmVkLWJnKTsgdHJhbnNmb3JtOiBzY2FsZSgwLjk4NSk7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLWRlc3RydWN0aXZlLmJzYi1kaXNhYmxlZCB7IGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7IGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwKTsgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLXdhcm5pbmcgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LWJnKTsgY29sb3I6IHZhcigtLWMtd2FybmluZy1icmlnaHQtdGV4dCk7IG1hcmdpbi10b3A6IDhweDsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2Itd2FybmluZzpob3Zlcjpub3QoLmJzYi1kaXNhYmxlZCkgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC15ZWxsb3ctYmcpOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi13YXJuaW5nLmlzLXByZXNzZWQgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC15ZWxsb3ctYmcpOyB0cmFuc2Zvcm06IHNjYWxlKDAuOTg1KTsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2Itd2FybmluZy5ic2ItZGlzYWJsZWQgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApOyBjb2xvcjogdmFyKC0tYy1ncmV5LTQwMCk7IGN1cnNvcjogZGVmYXVsdDsgfVxuXG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1zdWNjZXNzIHsgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtZ3JlZW4tMTAwKTsgY29sb3I6IHZhcigtLWMtc2lnbmFsLWdyZWVuLXRleHQpOyBtYXJnaW4tdG9wOiA4cHg7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLXN1Y2Nlc3M6aG92ZXI6bm90KC5ic2ItZGlzYWJsZWQpIHsgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtZ3JlZW4tYmcpOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1zdWNjZXNzLmlzLXByZXNzZWQgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi1iZyk7IHRyYW5zZm9ybTogc2NhbGUoMC45ODUpOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1zdWNjZXNzLmJzYi1kaXNhYmxlZCB7IGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7IGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwKTsgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi8vIGdyb3VwIChyYWRpbyBmYW1pbHkpIOKAlCBvbmUgcm91bmRlZCBjYXJkIGNvbnRhaW5lcjsgaWRsZSBpdGVtcyB0cmFuc3BhcmVudCBzbyB0aGV5XG4vLyBtZXJnZSBpbnRvIHRoZSBjYXJkIHN1cmZhY2U7IG9ubHkgYWN0aXZlL2hvdmVyL3ByZXNzZWQgc3RhbmQgb3V0LlxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi1ncm91cCB7IGRpc3BsYXk6IGJsb2NrOyBib3gtc2l6aW5nOiBib3JkZXItYm94OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTMpOyBwYWRkaW5nOiA2cHg7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24tZ3JvdXAuYnNiZy1vbi13aGl0ZSAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLWdyb3VwLmJzYmctb24tcHVycGxlIHsgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZS0xNCk7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24tZ3JvdXAgLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbiB7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItcm93KTsgcGFkZGluZzogMTFweCAxNnB4OyBib3JkZXItdG9wOiBub25lOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLWdyb3VwIC5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24gKyAucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uIHsgbWFyZ2luLXRvcDogMnB4OyBib3JkZXItdG9wOiBub25lOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLWdyb3VwIC5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLW9uLXdoaXRlICsgLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2Itb24td2hpdGUsXG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLWdyb3VwIC5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLW9uLXB1cnBsZSArIC5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLW9uLXB1cnBsZSB7IGJvcmRlci10b3A6IG5vbmU7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24tZ3JvdXAgLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbjpub3QoLmlzLXByZXNzZWQpOm5vdCg6aG92ZXIpIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbi8vIEluc2lkZSBhIGJzYmctb24td2hpdGUgZ3JvdXAgdGhlIHN1cmZhY2UgaXMgLS1jLWdyZXktNTAsIHNvIHRoZSBkZWZhdWx0IG9uLXdoaXRlIGhvdmVyIChhbHNvIGdyZXktNTApIGlzIGludmlzaWJsZS5cbi8vIE92ZXJyaWRlIHRvIGdyZXktMTAwIHNvIGhvdmVyIGlzIGFjdHVhbGx5IHZpc2libGUuXG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLWdyb3VwLmJzYmctb24td2hpdGUgLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2Itb24td2hpdGU6aG92ZXI6bm90KC5ic2ItZGlzYWJsZWQpOm5vdCguYnNiLWFjdGl2ZSkgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMTAwKTsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi1ncm91cC5ic2JnLW9uLXdoaXRlIC5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLW9uLXdoaXRlLmlzLXByZXNzZWQgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMjAwKTsgfVxuLy8gSW5zaWRlIGEgZ3JvdXAgb24gcHVycGxlOiBpZGxlID0gd2hpdGUgdGV4dDsgYWN0aXZlID0gdHJhbnNwYXJlbnQgKyBzYW1lIHdoaXRlIHRleHQgKG9ubHkgdGhlIGNoZWNrIGNoYW5nZXMpXG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLWdyb3VwLmJzYmctb24tcHVycGxlIC5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24geyBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24tZ3JvdXAuYnNiZy1vbi1wdXJwbGUgLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2ItYWN0aXZlIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTsgfVxuLy8gRElTQUJMRUQgbXVzdCBzdXJ2aXZlIHRoZSBncm91cCBydWxlIHJpZ2h0IGFib3ZlIChLaW0gMDMuMDguMjAyNikuIEJvdGhcbi8vIGAucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1vbi1wdXJwbGUuYnNiLWRpc2FibGVkYCAoZnVydGhlciB1cCwgdGhlIGRpbW1lZFxuLy8gY29sb3VyKSBhbmQgdGhlIGdyb3VwIHJ1bGUgd2VpZ2ggZXhhY3RseSB0aGUgc2FtZSDigJQgdGhyZWUgY2xhc3NlcyBlYWNoIOKAlCBzbyB0aGVcbi8vIGdyb3VwIHJ1bGUgd29uIG9uIHNvdXJjZSBvcmRlciBhbG9uZSBhbmQgYSBkaXNhYmxlZCBidXR0b24gaW5zaWRlIGEgcHVycGxlIGdyb3VwXG4vLyByZW5kZXJlZCBpbiBGVUxMIHdoaXRlOiB2aXN1YWxseSBpZGVudGljYWwgdG8gYSB3b3JraW5nIGJ1dHRvbiwgc2lsZW50bHkgc3dhbGxvd2luZ1xuLy8gZXZlcnkgdGFwLiBGb3VuZCB2aWEgdGhlIGFnZW5kYSdzIFwiU3RhcnQgdGFha1wiIGJ1dHRvbiBvbiBhIGZ1dHVyZSB0YXNrLiBGb3VyIGNsYXNzZXNcbi8vIGhlcmUsIHNvIHRoaXMgd2lucyBvdXRyaWdodCwgYW5kIGl0IGlzIHZhcmlhbnQtYWdub3N0aWMgb24gcHVycG9zZTogYW55IGJ1dHRvbiBpbiBhXG4vLyBwdXJwbGUgZ3JvdXAgZGltcyB0aGUgc2FtZSB3YXksIGFsc28gb25lIHRoYXQgY2FycmllcyB0aGUgb24td2hpdGUgdmFyaWFudC5cbi8vIFRoZSBvbi13aGl0ZSBncm91cCBuZWVkcyBubyBlcXVpdmFsZW50IOKAlCBpdCBoYXMgbm8gcGxhaW4gY29sb3VyIG92ZXJyaWRlIHRvIGJlYXQuXG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLWdyb3VwLmJzYmctb24tcHVycGxlIC5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLWRpc2FibGVkIHsgY29sb3I6IHZhcigtLWMtd2hpdGUtNDUpOyBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuLy8gU3VidGl0bGUgY29sb3VycyBwZXIgc3VyZmFjZS4gRGVsaWJlcmF0ZWx5IGF0IHRoZSBFTkQgb2YgdGhlIGZpbGU6IHNldmVyYWwgb2YgdGhlc2Vcbi8vIHNlbGVjdG9ycyB3ZWlnaCB0aGUgc2FtZSBhcyB0aGUgZ3JvdXAgcnVsZXMgYWJvdmUsIHNvIHNvdXJjZSBvcmRlciBkZWNpZGVzIOKAlCBhbmQgdGhlXG4vLyBkaXNhYmxlZCBvbmVzIGhhdmUgdG8gd2luLCBmb3IgdGhlIHNhbWUgcmVhc29uIHRoZSBkaXNhYmxlZCBjb2xvdXIgYWJvdmUgaGFkIHRvXG4vLyAoYSBmdWxsLXN0cmVuZ3RoIHJvdyB0aGF0IHNpbGVudGx5IHN3YWxsb3dzIGV2ZXJ5IHRhcCwgS2ltIDAzLjA4LjIwMjYpLlxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2Itb24tcHVycGxlIC5ic2Itc3ViLFxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi1ncm91cC5ic2JnLW9uLXB1cnBsZSAucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uIC5ic2Itc3ViIHsgY29sb3I6IHZhcigtLWMtd2hpdGUtNzApOyB9XG4vLyBJbnRlbnQgdmFyaWFudHMga2VlcCB0aGVpciBvd24gc2VtYW50aWMgY29sb3VyIOKAlCBhIGdyZXkgc3VidGl0bGUgb24gYSByZWQveWVsbG93L2dyZWVuXG4vLyBjYXJkIHJlYWRzIGFzIGEgZm9yZWlnbiBlbGVtZW50IOKAlCBzbyBkaW0gdGhlIHJvdyBjb2xvdXIgaW5zdGVhZCBvZiByZWNvbG91cmluZyBpdC5cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLXdhcm5pbmcgLmJzYi1zdWIsXG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1kZXN0cnVjdGl2ZSAuYnNiLXN1Yixcbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLXN1Y2Nlc3MgLmJzYi1zdWIgeyBjb2xvcjogY3VycmVudENvbG9yOyBvcGFjaXR5OiAwLjc4OyB9XG4vLyBEaXNhYmxlZDogdGhlIHdob2xlIHJvdyBpcyBhbHJlYWR5IGRpbW1lZCwgc28gdGhlIHN1YnRpdGxlIGZvbGxvd3MgdGhlIHJvdyBjb2xvdXIuXG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1kaXNhYmxlZCAuYnNiLXN1YiB7IGNvbG9yOiBpbmhlcml0OyBvcGFjaXR5OiAxOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1vbi13aGl0ZS5ic2ItZGlzYWJsZWQgLmJzYi1zdWIgeyBjb2xvcjogdmFyKC0tYy1ncmV5LTMwMCk7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLW9uLXB1cnBsZS5ic2ItZGlzYWJsZWQgLmJzYi1zdWIsXG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLWdyb3VwLmJzYmctb24tcHVycGxlIC5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLWRpc2FibGVkIC5ic2Itc3ViIHsgY29sb3I6IHZhcigtLWMtd2hpdGUtNDUpOyB9XG5cbi8vIENoZWNrbWFyayBhcHBlYXIgYW5pbWF0aW9uOiBkcmF3LWluIChzdHJva2UpICsgY29udGFpbmVyIHBvcC93b2JibGUg4oCUIG1pcnJvcnMgcWRuYXByby11bml0LWNhcmRcbkBrZXlmcmFtZXMgYnNiLWNoZWNrLXBvcCB7XG4gIDAlICAgeyB0cmFuc2Zvcm06IHNjYWxlKDAuNikgIHJvdGF0ZSgwZGVnKTsgIH1cbiAgMjAlICB7IHRyYW5zZm9ybTogc2NhbGUoMS4yMCkgcm90YXRlKC01ZGVnKTsgfVxuICA0NCUgIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjkyKSByb3RhdGUoM2RlZyk7ICB9XG4gIDY0JSAgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMDYpIHJvdGF0ZSgtMWRlZyk7IH1cbiAgODAlICB7IHRyYW5zZm9ybTogc2NhbGUoMC45Nykgcm90YXRlKDBkZWcpOyAgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKSAgICByb3RhdGUoMGRlZyk7ICB9XG59XG5Aa2V5ZnJhbWVzIGJzYi1jaGVjay1kcmF3IHtcbiAgMCUgICB7IHN0cm9rZS1kYXNob2Zmc2V0OiAyMjsgIH1cbiAgNjIlICB7IHN0cm9rZS1kYXNob2Zmc2V0OiAtMTsgIH1cbiAgODAlICB7IHN0cm9rZS1kYXNob2Zmc2V0OiAwLjc7IH1cbiAgMTAwJSB7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyAgIH1cbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24gLmJzYi1jaGVjay1wYXRoIHtcbiAgc3Ryb2tlLWRhc2hhcnJheTogMjI7XG4gIHN0cm9rZS1kYXNob2Zmc2V0OiAyMjtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLWFjdGl2ZSAuYnNiLWNoZWNrIHtcbiAgYW5pbWF0aW9uOiBic2ItY2hlY2stcG9wIDAuNTJzIGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjUsIDEpIGZvcndhcmRzO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2ItYWN0aXZlIC5ic2ItY2hlY2stcGF0aCB7XG4gIGFuaW1hdGlvbjogYnNiLWNoZWNrLWRyYXcgMC4zOHMgY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpIDAuMDRzIGZvcndhcmRzO1xufVxuIiwiLy8gcWRuYXByby1wb3BvdmVyIOKAlCBmbG9hdGluZyBhY3Rpb24gY2FyZCBhbmNob3JlZCB0byBhIHRyaWdnZXIgZWxlbWVudC5cbi8vIEZMQVQgQ1NTOyBjb2xvdXJzL3JhZGlpIGZyb20gdGhlIGRlc2lnbi10b2tlbiA6cm9vdCAodmFyKC0tYy0qKSAvIC0tci0qKS5cbi8vIFRhYmxldC1maXJzdCBhbHRlcm5hdGl2ZSB0byB0aGUgYm90dG9tIHNoZWV0ICh1c2Ugb24gd2luZG93LmlubmVyV2lkdGggPj0gNzY4KS5cbi8vIEVkaXQgSEVSRSwgdGhlbiBgZ3VscCBzYXNzLXYxYCArIHRoZSBzeW5jLlxuXG4ucWRuYXByby1wb3BvdmVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAxMDAxO1xuICB3aWR0aDogMjgwcHg7XG4gIHBhZGRpbmc6IDZweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1jYXJkKTtcbiAgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMjIpO1xuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZSwgdmlzaWJpbGl0eSAwLjE1cyBlYXNlO1xufVxuLnFkbmFwcm8tcG9wb3Zlci5pcy1vcGVuIHtcbiAgb3BhY2l0eTogMTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbi8vIC0tLSBHcm93LWluIC8gc2hyaW5rLW91dCAoS2ltIDA0LjA4LjIwMjYpIC0tLVxuLy8gRGUgcG9wb3ZlciBncm9laXQgdWl0IGhldCBhYW5nZXRpa3RlIGdlYmllZCBuYWFyIHZvbGxlIGdyb290dGUgaW4gcGxhYXRzIHZhblxuLy8gYWxsZWVuIGluIHRlIGZhZGVuLCBlbiBrcmltcHQgYmlqIHNsdWl0ZW4gdGVydWcgbmFhciBkYXQgcHVudC5cbi8vXG4vLyBIZXQgR1JPRUlQVU5UIGlzIGRlIHBpamw6IC0tcG9wLWFycm93LXggc3RhYXQgYWwgb3AgaGV0IG1pZGRlbiB2YW4gZGUgdHJpZ2dlclxuLy8gKGdlemV0IGRvb3IgX3Bvc2l0aW9uKCkgaW4gZGUgSlMpIGVuIHZlcnRpY2FhbCBpcyBkYXQgZGUgcmFuZCBkaWUgbmFhciBkZVxuLy8gdHJpZ2dlciB3aWpzdC4gRGFhcmRvb3Iga29tdCBoZXQgcGFuZWVsIGFsdGlqZCB1aXQgZGUga25vcCBkaWUgamUgYWFudGlrdGUsXG4vLyBvb2sgYmlqIGVlbiB2aXJ0dWVlbCBhbmtlciAoZWVuIHRpayBpbiBlZW4ga2FsZW5kZXJrb2xvbSkgZW4gb29rIGJpaiBgYmFyZWBcbi8vIHBvcG92ZXJzLCB3YWFyIGRlIHBpamwgb256aWNodGJhYXIgaXMgbWFhciBkZSB2YXJpYWJlbGUgd2VsIGdlemV0IHdvcmR0LlxuLy9cbi8vIEJld3VzdCBlZW4gQGtleWZyYW1lcyBlbiBHRUVOIHRyYW5zaXRpb24gbWV0IGVlbiBydXN0LXRyYW5zZm9ybTogZWVuIHRyYW5zZm9ybVxuLy8gZGllIG5hIGRlIGFuaW1hdGllIGJsaWpmdCBzdGFhbiBtYWFrdCB2YW4gZGUgcG9wb3ZlciBlZW4gY29udGFpbmluZyBibG9jaywgZW5cbi8vIGRhbiBnYWF0IGVlbiBwb3NpdGlvbjpmaXhlZCBraW5kIGJpbm5lbiBkZSBwb3BvdmVyIChlZW4gZ2VuZXN0IG1lbnUsIHpvYWxzIGluXG4vLyBkZSB0YWtlbmxpanN0LWtpZXplcikgbWV0IGRlIHBvcG92ZXIgbWVlIGluIHBsYWF0cyB2YW4gbWV0IGhldCB2ZW5zdGVyLiBFZW5cbi8vIGFuaW1hdGllIHpvbmRlciBmaWxsLW1vZGUgbGFhdCBkZSB0cmFuc2Zvcm0gbmEgYWZsb29wIHdlZXIgbG9zLlxuLy9cbi8vIERlIGdyb3RlIGdlY2VudHJlZXJkZSB2YXJpYW50IChcImRpYWxvZ1wiKSBkb2V0IGhpZXIgTklFVCBhYW4gbWVlOiBkaWUgaGFuZ3Rcbi8vIG5pZXQgYWFuIGVlbiB0cmlnZ2VyLCBzdGFhdCBtaWRkZW4gaW4gaGV0IGJlZWxkIGFjaHRlciBlZW4gc2x1aWVyIGVuIGhlZWZ0XG4vLyB6aWpuIGVpZ2VuIHNjYWxlIG9wIC5wb3AtcGFuZWwgKHppZSBvbmRlcikuXG4ucWRuYXByby1wb3BvdmVyLnBvcC1iZWxvdyB7IHRyYW5zZm9ybS1vcmlnaW46IHZhcigtLXBvcC1hcnJvdy14LCA1MCUpIDA7IH1cbi8vIFpJSldBQVJUU0UgU1RBTkQgKHByZWZlci1zaWRlLCAwNy4wOC4yMDI2KS4gR2VlbiBwaWpsOiBkaWUgd2lqc3Qgb21ob29nIG9mIG9tbGFhZ1xuLy8gZW4gem91IG5hYXN0IGRlIGthYXJ0IGxvcyBpbiBkZSBsdWNodCBoYW5nZW4uIEhldCBncm9laXB1bnQgc2NodWlmdCBtZWUgbmFhciBkZVxuLy8gcmFuZCBkaWUgbmFhciBoZXQga2xpa3B1bnQgd2lqc3QsIHpvZGF0IGRlIG9wZW5hbmltYXRpZSBub2cgc3RlZWRzIHVpdCBkaWUga2FudFxuLy8ga29tdCBlbiBuaWV0IHVpdCBoZXQgbWlkZGVuLlxuLnFkbmFwcm8tcG9wb3Zlci5wb3Atc2lkZTo6YmVmb3JlIHsgZGlzcGxheTogbm9uZTsgfVxuLnFkbmFwcm8tcG9wb3Zlci5wb3Atc2lkZSB7IHRyYW5zZm9ybS1vcmlnaW46IDAgMjAlOyB9XG5cbi5xZG5hcHJvLXBvcG92ZXIucG9wLWFib3ZlIHsgdHJhbnNmb3JtLW9yaWdpbjogdmFyKC0tcG9wLWFycm93LXgsIDUwJSkgMTAwJTsgfVxuXG4vLyBEZSBvdmVyc2hvb3QgKEtpbSAwNC4wOC4yMDI2OiBcIndoYXRzYXBwIGhlZWZ0IGVlbiBrbGVpbmUgb3ZlcnNob290XCIpIHppdCBpbiBkZVxuLy8gVElNSU5HIGVuIG5pZXQgaW4gZWVuIGV4dHJhIGtleWZyYW1lOiBkZXplIGVhc2Utb3V0LWJhY2sgc2NoaWV0IHZvb3JiaWogMSBlbiB2ZWVydFxuLy8gdGVydWcuIFZhbiAwLjcyIG5hYXIgMSBpcyBkZSBwaWVrIHNjYWxlIDEuMDI3ICgyLDclIGRvb3IpIHJvbmQgMTE1bXMsIGRhYXJuYSBrb210XG4vLyBoaWogb3AgMjAwbXMgdG90IHJ1c3QuIFdpbCBqZSBkZSBzdHVpdGVyIGdyb3RlciBvZiBrbGVpbmVyLCB2ZXJhbmRlciBkYW4gaGV0IFRXRUVERVxuLy8gZ2V0YWwgaW4gZGUgYmV6aWVyICgxLjU2KTogaG9nZXIgPSBtZWVyIG92ZXJzaG9vdC4gRG9lIGhldCBuaWV0IG1ldCBlZW4gZXh0cmFcbi8vIGtleWZyYW1lIG9wIGVlbiB2YXN0ZSBzY2FsZSwgd2FudCBkYW4gc2NoaWV0IGVsa2UgcG9wb3ZlciBoZXR6ZWxmZGUgQUFOVEFMIFBJWEVMU1xuLy8gZG9vciBlbiBsZWVzdCBkYXQgb3AgZWVuIGtsZWluIG1lbnUgYWxzIGVlbiBzdHVpdGVyIGVuIG9wIGVlbiBncm90ZSBrYWFydCBhbHMgbmlldHMuXG4ucWRuYXByby1wb3BvdmVyLmlzLW9wZW46bm90KC5wb3AtdmFyaWFudC1kaWFsb2cpIHtcbiAgYW5pbWF0aW9uOiBxZG5hcHJvLXBvcC1ncm93IDAuMnMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpO1xufVxuQGtleWZyYW1lcyBxZG5hcHJvLXBvcC1ncm93IHtcbiAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogc2NhbGUoMC43Mik7IH1cbiAgdG8gICB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbn1cblxuLy8gU2x1aXRlbjogZGUgSlMgemV0IGBwb3AtY2xvc2luZ2Agb3AgaGV0IG1vbWVudCBkYXQgYGlzLW9wZW5gIGVyYWYgZ2FhdCBlblxuLy8gaGFhbHQgaGVtIGVyIG5hIGRlIGFuaW1hdGllIHdlZXIgYWYgKHppZSBjbG9zZSgpIGluIHFkbmEtcG9wb3Zlci5qcykuIFpvbmRlclxuLy8gZGllIGNsYXNzIHZhbHQgZGUgcG9wb3ZlciBtZXRlZW4gdGVydWcgb3AgZGUgYmFzaXNyZWdlbCBoaWVyYm92ZW4gZW4gZmFkZSBoaWpcbi8vIGdld29vbiB3ZWcsIGR1cyBlZW4gZ2VtaXN0ZSBjbGFzcyBrYW4gbm9vaXQgZWVuIHBvcG92ZXIgbGF0ZW4gaGFuZ2VuLlxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtY2xvc2luZzpub3QoLnBvcC12YXJpYW50LWRpYWxvZykge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBhbmltYXRpb246IHFkbmFwcm8tcG9wLXNocmluayAwLjEycyBlYXNlLWluO1xufVxuQGtleWZyYW1lcyBxZG5hcHJvLXBvcC1zaHJpbmsge1xuICBmcm9tIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICB0byAgIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiBzY2FsZSgwLjg1KTsgfVxufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAucWRuYXByby1wb3BvdmVyLmlzLW9wZW46bm90KC5wb3AtdmFyaWFudC1kaWFsb2cpLFxuICAucWRuYXByby1wb3BvdmVyLnBvcC1jbG9zaW5nOm5vdCgucG9wLXZhcmlhbnQtZGlhbG9nKSB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG4gIC5xZG5hcHJvLXBvcG92ZXIucG9wLWNsb3Npbmc6bm90KC5wb3AtdmFyaWFudC1kaWFsb2cpIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cbn1cblxuLy8gRGVmZW5zaXZlIGd1YXJkICgyMS4wNy4yMDI2LCBLaW0ncyB0b2VzdGVsLXRlc3QgLSBQV0EgdGFibGV0IHBvcG92ZXIgYnVnKTpcbi8vIHRoZSBvcGFjaXR5L3Zpc2liaWxpdHkgcnVsZSBhYm92ZSBvbmx5IGFwcGxpZXMgb25jZSB0aGUgY29tcG9uZW50J3Mgb3duXG4vLyByZW5kZXIoKSBoYXMgc2V0IHRoZSAucWRuYXByby1wb3BvdmVyIGNsYXNzIC0gd2hpY2ggaGFwcGVucyBBRlRFUiB0aGVcbi8vIGN1c3RvbSBlbGVtZW50IGlzIGRlZmluZWQgYW5kIHVwZ3JhZGVkLiBCZWZvcmUgdGhhdCBtb21lbnQgdGhlIHRhZyBzaXRzIGluXG4vLyB0aGUgcGFnZSB3aXRoIE5PIGNsYXNzIGF0IGFsbCAoYm8yIHdyaXRlcyA8cWRuYXByby1wb3BvdmVyPiBkaXJlY3RseSBpblxuLy8gbWFya3VwIG9uIHBsYW5uZXIvZG9jdW1lbnRzIHBhZ2VzLCB3aGlsZSBjb21wb25lbnRzLmpzIGlzIGEgZGVmZXJyZWRcbi8vIG1vZHVsZSksIHNvIGl0cyBsaWdodC1ET00gY2hpbGRyZW4gKGUuZy4gYW4gZW1iZWRkZWQgcWRuYXByby1tZW51KSB3b3VsZFxuLy8gcmVuZGVyIGJhcmUvZXhwb3NlZC4gVEFHIHNlbGVjdG9yIG9uIHB1cnBvc2U6IGEgY2xhc3MtYmFzZWRcbi8vIC5xZG5hcHJvLXBvcG92ZXI6bm90KDpkZWZpbmVkKSBjYW4gbmV2ZXIgbWF0Y2gsIGJlY2F1c2UgdGhlIGNsYXNzIGFuZFxuLy8gOmRlZmluZWQgYWx3YXlzIGZsaXAgdG9nZXRoZXIuIFNhbWUgZ3VhcmQgYXMgcWRuYXByby1zZWFyY2gtb3ZlcmxheS5cbnFkbmFwcm8tcG9wb3Zlcjpub3QoOmRlZmluZWQpIHsgZGlzcGxheTogbm9uZTsgfVxuXG4vLyBBcnJvdyDigJQgcG9pbnRzIHRvd2FyZCB0aGUgdHJpZ2dlciBlbGVtZW50LlxuLy8gLS1wb3AtYXJyb3cteCBpcyBzZXQgaW5saW5lIGJ5IHRoZSBKUyBwb3NpdGlvbmluZyBsb2dpYy5cbi5xZG5hcHJvLXBvcG92ZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogOXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBsZWZ0OiB2YXIoLS1wb3AtYXJyb3cteCwgNTAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtYmVsb3c6OmJlZm9yZSB7XG4gIHRvcDogLTE4cHg7XG59XG4ucWRuYXByby1wb3BvdmVyLnBvcC1hYm92ZTo6YmVmb3JlIHtcbiAgYm90dG9tOiAtMThweDtcbn1cblxuLy8gLS0tIFdoaXRlIHZhcmlhbnQgKGRlZmF1bHQpIC0tLVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdmFyaWFudC13aGl0ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG59XG4ucWRuYXByby1wb3BvdmVyLnBvcC12YXJpYW50LXdoaXRlOjpiZWZvcmUge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jLWJnLWNhcmQpO1xufVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdmFyaWFudC13aGl0ZS5wb3AtYWJvdmU6OmJlZm9yZSB7XG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWMtYmctY2FyZCk7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vLyAtLS0gUHVycGxlIHZhcmlhbnQgLS0tXG4ucWRuYXByby1wb3BvdmVyLnBvcC12YXJpYW50LXB1cnBsZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG4ucWRuYXByby1wb3BvdmVyLnBvcC12YXJpYW50LXB1cnBsZTo6YmVmb3JlIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXZhcmlhbnQtcHVycGxlLnBvcC1hYm92ZTo6YmVmb3JlIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8vIC0tLSBCYXJlIHZhcmlhbnQ6IGNocm9tZS1sZXNzIHBvc2l0aW9uaW5nIGxheWVyIC0tLVxuLy8gRm9yIGhvc3RpbmcgY29udGVudCB0aGF0IGFscmVhZHkgY2FycmllcyBpdHMgb3duIGRlc2lnbmVkIGNocm9tZSAoZS5nLlxuLy8gcWRuYXByby1tZW51LCB3aGljaCBoYXMgaXRzIG93biBib3JkZXIvcmFkaXVzL3NoYWRvdy9wYWRkaW5nKS4gVGhlIHBvcG92ZXJcbi8vIGtlZXBzIGl0cyBwb3NpdGlvbjpmaXhlZCAvIG9wZW4tY2xvc2UgLyBvdXRzaWRlLWNsaWNrIC8gRXNjYXBlIGJlaGF2aW91cixcbi8vIGl0IGp1c3Qgbm8gbG9uZ2VyIHBhaW50cyBpdHMgb3duIHBhbmVsIGFyb3VuZCB0aGUgY29udGVudC4gUGxhY2VkIGFmdGVyXG4vLyB0aGUgdmFyaWFudCBibG9ja3Mgc28gaXQgd2lucyBhdCBlcXVhbCBzcGVjaWZpY2l0eSAoS2ltIDE2LjA3LjIwMjY6IFwiaWtcbi8vIHdpbCBkYXQgZGllIG1lbnUncyBvb2sgZGFhZHdlcmtlbGlqayBoZXQgcWRuYXByby1tZW51IHppam5cIiDigJQgdGhlIG1lbnUnc1xuLy8gb3duIGxvb2sgbXVzdCBiZSB3aGF0IHNob3dzLCBub3QgYSBzZWNvbmQgcGFuZWwgd3JhcHBlZCBhcm91bmQgaXQpLlxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtYmFyZSB7XG4gIHdpZHRoOiBhdXRvO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtYmFyZTo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8gQm9keTogZmxleCBjb2x1bW4gd2l0aCBnYXBzIGJldHdlZW4gYnV0dG9uIGdyb3Vwc1xuLnFkbmFwcm8tcG9wb3ZlciAucG9wLWJvZHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDZweDtcbn1cblxuLy8gLS0tIERpYWxvZyB2YXJpYW50czogYmlnIGNlbnRlcmVkIFwiZGlhbG9nXCIgKyBzbWFsbCBhbmNob3JlZCBcImRpYWxvZy1hcnJvd1wiIC0tLVxuLy8gSWxsdXN0cmF0ZWQgZGlhbG9nIHBvcG92ZXJzLCBjb21wb3NlZCB0aGUgc2FtZSB3YXkgYXMgcWRuYXByby1ib3R0b20tc2hlZXQnc1xuLy8gZGlhbG9nL2NvbmZpcm0gdmFyaWFudCAoaWxsdXN0cmF0aW9uICsgYm9sZCB3aGl0ZSB0aXRsZSArIHdoaXRlIGJvZHkgdGV4dCArXG4vLyBvcHRpb25hbCBjb25zdW1lciBjb250ZW50ICsgYSBmbGV4aWJsZSBDYW5jZWwvQ29uZmlybSBmb290ZXIpLiBTYW1lIG1hYXR2b2VyaW5nL1xuLy8ga2xldXJlbiBhcyAuYnMtdmFyaWFudC1kaWFsb2cgaW4gX2JvdHRvbS1zaGVldC5zY3NzLCByZXVzZWQgaGVyZS4gW0tpbSAyMi4wNy4yMDI2XVxuXG4vLyBTaGFyZWQgY29udGVudCBibG9jazogaWxsdXN0cmF0aW9uLCB0aXRsZSwgYm9keSB0ZXh0LCBjb25zdW1lciBzbG90IGNvbnRlbnQuXG4ucWRuYXByby1wb3BvdmVyIC5wb3AtZGlhbG9nLWJvZHkge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGdhcDogMDtcbn1cbi8vIHFkbmFwcm8taWxsdXN0cmF0aW9uIHdpcGVzIGl0cyBvd24gY2xhc3NOYW1lIG9uIHJlbmRlciAodGhpcy5jbGFzc05hbWUgPSDigKYpLCBzbyBhXG4vLyBjbGFzcyBob29rIGlzIGRlYWQgYnkgdGhlIHRpbWUgaXQgcGFpbnRzIOKAlCB0YXJnZXQgdGhlIFRBRywgc2FtZSB0cmljayBhcyB0aGVcbi8vIGJvdHRvbS1zaGVldCBkaWFsb2cuXG4ucWRuYXByby1wb3BvdmVyIC5wb3AtZGlhbG9nLWJvZHkgPiBxZG5hcHJvLWlsbHVzdHJhdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAgYXV0byAxNnB4O1xuICAvLyBOZXZlciBvdmVyZmxvdyBhIHBhbmVsIHRoYXQgaGFzIHNocnVuayAobmFycm93IHZpZXdwb3J0KTogdGhlIGNvbXBvbmVudCBzZXRzIGFuXG4gIC8vIGV4cGxpY2l0IHBpeGVsIHdpZHRoIGlubGluZSwgdGhpcyBjYXBzIGl0IHRvIHRoZSBhdmFpbGFibGUgc3BhY2UsIGtlZXBpbmcgcmF0aW8uXG4gIG1heC13aWR0aDogMTAwJTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIgLnBvcC1kaWFsb2ctdGl0bGUge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIgLnBvcC1kaWFsb2ctdGV4dCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgY29sb3I6IHZhcigtLWMtd2hpdGUtNzApO1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuLy8gQ29uc3VtZXIgY29udGVudCAoZS5nLiBidWxsZXQgcm93cykgc2l0cyBiZWxvdyB0aGUgaWxsdXN0cmF0aW9uL3RpdGxlL3RleHQ7IHRoZVxuLy8gZGlhbG9nIGJvZHkgY2VudGVycyBpdHMgYnVpbHQtaW5zLCB0aGlzIHdyYXBwZXIgc3RyZXRjaGVzIGZ1bGwtd2lkdGggYW5kXG4vLyBsZWZ0LWFsaWducyBzbyBjdXN0b20gcm93cyBhcmVuJ3Qgc2hyaW5rLXdyYXBwZWQgb3IgY2VudGVyZWQuXG4ucWRuYXByby1wb3BvdmVyIC5wb3AtZGlhbG9nLWJvZHkgPiAucG9wLWRpYWxvZy1jb250ZW50IHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1hcmdpbi10b3A6IDE2cHg7XG59XG4ucWRuYXByby1wb3BvdmVyIC5wb3AtZGlhbG9nLWZvb3RlciBxZG5hcHJvLWJ1dHRvbiB7XG4gIGZsZXg6IDE7XG59XG5cbi8vIEV4cGxhaW5lciBcImJ1bGxldFwiIHJvdzogW2ljb24vYmFkZ2VdICsgd2hpdGUgdGV4dCwgZS5nLiBcIndoYXQgZG9lcyB0aGlzIGJhZGdlXG4vLyBtZWFuXCIgKFBXQSBkb2N1bWVudHMgYmFkZ2UtaW5mbyBkaWFsb2csIDI4LjA3LjIwMjYpLiBTQU1FIGNsYXNzIG5hbWUgKyBydWxlIGFzXG4vLyBxZG5hcHJvLWJvdHRvbS1zaGVldCdzIGRpYWxvZyBjb3VudGVycGFydCAoc2VlIC5icy1kaWFsb2ctYnVsbGV0IGluXG4vLyBfYm90dG9tLXNoZWV0LnNjc3MpIHNvIGEgcG9wb3ZlciBvbiB0YWJsZXQgYW5kIGEgc2hlZXQgb24gcGhvbmUgcmVuZGVyIHRoZSBleGFjdFxuLy8gc2FtZSBjb25zdW1lci1idWlsdCByb3cgKHRoZSBQV0EgYnVpbGRzIE9ORSByb3cgc2hhcGUgYW5kIGFwcGVuZHMgaXQgdG8gd2hpY2hldmVyXG4vLyBzdXJmYWNlIGl0IG9wZW5zKS4gSWNvbiB0b3AtYWxpZ25lZCB3aXRoIHRoZSB0ZXh0IGJsb2NrIOKAlCBzZWUgdGhlIGJvdHRvbS1zaGVldFxuLy8gcGFydGlhbCdzIGNvbW1lbnQgZm9yIHdoeSAobm8gc2luZ2xlIGdseXBoIGJhc2VsaW5lIHRvIGhvb2sgYSBiYWRnZSBwaWxsIHRvKS5cbi5xZG5hcHJvLXBvcG92ZXIgLnBvcC1kaWFsb2ctY29udGVudCAuYnMtZGlhbG9nLWJ1bGxldCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDEycHg7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlLTkwLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSkpO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4ucWRuYXByby1wb3BvdmVyIC5wb3AtZGlhbG9nLWNvbnRlbnQgLmJzLWRpYWxvZy1idWxsZXQgKyAuYnMtZGlhbG9nLWJ1bGxldCB7XG4gIG1hcmdpbi10b3A6IDE0cHg7XG59XG4ucWRuYXByby1wb3BvdmVyIC5wb3AtZGlhbG9nLWNvbnRlbnQgLmJzLWRpYWxvZy1idWxsZXQgPiBxZG5hcHJvLXN0YXR1cy1iYWRnZSB7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vLyAtLS0gdmFyaWFudD1cImRpYWxvZ1wiOiBCSUcgcG9wb3ZlciwgY2VudGVyZWQgYmVoaW5kIGEgZnVsbC12aWV3cG9ydCBzY3JpbSAtLS1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXZhcmlhbnQtZGlhbG9nIHtcbiAgLy8gRnVsbC12aWV3cG9ydCBmaXhlZCBvdmVybGF5LiBVc2UgdGhlIGxvbmctaGFuZCBlZGdlcyAoTk9UIGBpbnNldDowYCBmb2xsb3dlZCBieVxuICAvLyBgbGVmdC90b3A6YXV0b2AsIHdoaWNoIGNhbmNlbHMgdHdvIG9mIHRoZSBmb3VyIGVkZ2VzIGFuZCBzaHJpbmstd3JhcHMgdGhlIGhvc3RcbiAgLy8gaW50byB0aGUgYm90dG9tLXJpZ2h0IGNvcm5lciDigJQgdGhhdCByZWFkIGFzIFwidGhlIGRpYWxvZyBkb2Vzbid0IG9wZW5cIikuIFsyMi4wNy4yMDI2XVxuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3gtc2hhZG93OiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi8vIE5vIGFuY2hvciBhcnJvdyBvbiB0aGUgY2VudGVyZWQgZGlhbG9nLlxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdmFyaWFudC1kaWFsb2c6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ucWRuYXByby1wb3BvdmVyLnBvcC12YXJpYW50LWRpYWxvZyAucG9wLXNjcmltIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICB6LWluZGV4OiAwO1xufVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdmFyaWFudC1kaWFsb2cgLnBvcC1wYW5lbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLy8gTWF0Y2hlcyB0aGUgZGVzaWduIGNhbnZhcyAocG9wb3Zlcl9iaWcuc3ZnIGlzIDcwMiB3aWRlKTsgaG9sZHMgdGhlIDU0MC13aWRlXG4gIC8vIGlsbHVzdHJhdGlvbiB3aXRoIHJvb20gdG8gYnJlYXRoZS4gRmFsbHMgYmFjayB0byA5NHZ3IG9uIG5hcnJvdyBzY3JlZW5zLlxuICB3aWR0aDogbWluKDk0dncsIDcwMnB4KTtcbiAgbWF4LWhlaWdodDogODZ2aDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcGFkZGluZzogMjhweCAyNHB4IDI0cHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItY2FyZCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgwLCAwLCAwLCAwLjIyKTtcbiAgLy8gU3VidGxlIHNjYWxlLWluIG9uIHRvcCBvZiB0aGUgaG9zdCdzIGV4aXN0aW5nIG9wYWNpdHkgdHJhbnNpdGlvbiAoYmFzZSBydWxlKS5cbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk2KTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMThzIGVhc2U7XG59XG4ucWRuYXByby1wb3BvdmVyLnBvcC12YXJpYW50LWRpYWxvZy5pcy1vcGVuIC5wb3AtcGFuZWwge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xufVxuLy8gUm91bmQgbmF2eSBjbG9zZSAoWCksIHRvcC1yaWdodCDigJQgc2FtZSBuYXZ5IGFzIGJ1dHRvbi1vbi1wdXJwbGUtc29saWRcbi8vICgtLWMtcHVycGxlLTcwMCwgIzJhMzI2OCkgc28gdGhlIGNsb3NlIGNpcmNsZSBhbmQgdGhlIHByaW1hcnkgZm9vdGVyIGJ1dHRvblxuLy8gcmVhZCBhcyBvbmUgY29uc2lzdGVudCBzeXN0ZW0uXG4ucWRuYXByby1wb3BvdmVyLnBvcC12YXJpYW50LWRpYWxvZyAucG9wLWNsb3NlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE2cHg7XG4gIHJpZ2h0OiAxNnB4O1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNzAwKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLy8gVE9ORUQgRElBTE9HUyAoZGFuZ2VyIC8gc3VjY2Vzcykg4oCUIG1pcnJvciBvZiAuYnMtdG9uZS0qIG9uIHRoZSBib3R0b20gc2hlZXQ6IHNhbWVcbi8vIHJlZC01MDAgcGFuZWwsIHNhbWUgd2hpdGUgdGV4dCwgc2FtZSBmcmVlLXN0YW5kaW5nIGJhZGdlLiBUaGUgdGFibGV0IHNpZGUgb2YgYSBjb25maXJtXG4vLyB0aGF0IGlzIGEgYm90dG9tIHNoZWV0IG9uIHRoZSBwaG9uZSwgc28gdGhlIHR3byBtdXN0IG5vdCBkcmlmdC5cbi8vIFN1cmZhY2UgaXMgcmVkLTUwMCBhbmQgdGV4dCBpcyBGVUxMIHdoaXRlIGZvciB0aGUgY29udHJhc3QgcmVhc29uIGRvY3VtZW50ZWQgb24gdGhlXG4vLyBzaGVldCBhbmQgb24gdGhlIHJhbXAgaW4gX2Rlc2lnbi10b2tlbnMuc2Nzcy5cbi8vXG4vLyBUaGUgZm9vdGVyIHN0YXlzIFNJREUgQlkgU0lERSBoZXJlIHdoaWxlIHRoZSBzaGVldCBzdGFja3M6IHN0YWNraW5nIGlzIHdoYXQgbWFrZXMgYVxuLy8gcGhvbmUncyBjb25maXJtIGEgZGVsaWJlcmF0ZSB0aHVtYiBwcmVzcywgYW5kIG9uIGEgNTIwcHggZGlhbG9nIGl0IGp1c3QgbGVhdmVzIGEgd2lkZVxuLy8gYnV0dG9uIGZsb2F0aW5nIGluIHNwYWNlLiBbS2ltIDE4LjA4LjIwMjZdXG4vKiBTdXJmYWNlIGNvbG91cnMgY29tZSBmcm9tIHRoZSBzaGFyZWQgZGlhbG9nLXRvbmUgdG9rZW5zIChLaW0ncyBleGFjdCBzZXQgZm9yIHRoZVxuICAgUHVsc2UgdmVyZGljdCBzaGVldHMsIDAzLjA5LjIwMjYpIHNvIGEgY29uZmlybSByb3V0ZWQgdG8gdGhpcyBwb3BvdmVyIG9uIGEgd2lkZVxuICAgc2NyZWVuIGlzIHRoZSBzYW1lIGNvbG91ciBhcyB0aGUgYm90dG9tIHNoZWV0IGl0IHJlcGxhY2VzIG9uIGEgcGhvbmUuICovXG4ucWRuYXByby1wb3BvdmVyLnBvcC10b25lLWRhbmdlciAucG9wLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctZGFuZ2VyLXN1cmZhY2UpO1xufVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdG9uZS1kYW5nZXIgLnBvcC1jbG9zZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLWRhbmdlci1ncmFiKTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXRvbmUtc3VjY2VzcyAucG9wLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctc3VjY2Vzcy1zdXJmYWNlKTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXRvbmUtc3VjY2VzcyAucG9wLWNsb3NlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctc3VjY2Vzcy1ncmFiKTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXRvbmUtd2FybmluZyAucG9wLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctd2FybmluZy1zdXJmYWNlKTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXRvbmUtd2FybmluZyAucG9wLWNsb3NlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctd2FybmluZy1ncmFiKTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXRvbmUtZGFuZ2VyIC5wb3AtZGlhbG9nLXRpdGxlLFxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdG9uZS1kYW5nZXIgLnBvcC1kaWFsb2ctdGV4dCxcbi5xZG5hcHJvLXBvcG92ZXIucG9wLXRvbmUtc3VjY2VzcyAucG9wLWRpYWxvZy10aXRsZSxcbi5xZG5hcHJvLXBvcG92ZXIucG9wLXRvbmUtc3VjY2VzcyAucG9wLWRpYWxvZy10ZXh0LFxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdG9uZS13YXJuaW5nIC5wb3AtZGlhbG9nLXRpdGxlLFxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdG9uZS13YXJuaW5nIC5wb3AtZGlhbG9nLXRleHQge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG59XG4vLyBCaWdnZXIgdGhhbiB0aGUgcHVycGxlIGRpYWxvZydzIDIwcHgsIG1hdGNoaW5nIHRoZSBib3R0b20gc2hlZXQncyB0b25lZCB0aXRsZVxuLy8gKDI0cHggbmV4dCB0byBhIDQwcHggaWNvbiwgS2ltJ3MgdmVyZGljdC1zaGVldCBkZXNpZ24sIDAzLjA5LjIwMjYgLyBtaXJyb3JlZCBoZXJlXG4vLyAwNC4wOS4yMDI2KTogYSB0b25lZCBkaWFsb2cgaGFzIG5vIGlsbHVzdHJhdGlvbiBjb21wZXRpbmcgZm9yIGF0dGVudGlvbiwgc28gdGhlXG4vLyB0aXRsZSBjYXJyaWVzIHRoZSB3ZWlnaHQuXG4ucWRuYXByby1wb3BvdmVyLnBvcC10b25lLWRhbmdlciAucG9wLWRpYWxvZy10aXRsZSxcbi5xZG5hcHJvLXBvcG92ZXIucG9wLXRvbmUtc3VjY2VzcyAucG9wLWRpYWxvZy10aXRsZSxcbi5xZG5hcHJvLXBvcG92ZXIucG9wLXRvbmUtd2FybmluZyAucG9wLWRpYWxvZy10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbn1cbi5xZG5hcHJvLXBvcG92ZXIgLnBvcC1kaWFsb2ctYmFkZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luOiAwIGF1dG8gMTZweDtcbn1cbi5xZG5hcHJvLXBvcG92ZXIgLnBvcC1kaWFsb2ctYmFkZ2UtY2lyY2xlIHtcbiAgLS1wb3AtYmFkZ2Utc2l6ZTogOTZweDtcbiAgd2lkdGg6IHZhcigtLXBvcC1iYWRnZS1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1wb3AtYmFkZ2Utc2l6ZSk7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNDAwKTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXRvbmUtZGFuZ2VyIC5wb3AtZGlhbG9nLWJhZGdlLWNpcmNsZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtd2Fybi1yZWQtMzAwKTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXRvbmUtc3VjY2VzcyAucG9wLWRpYWxvZy1iYWRnZS1jaXJjbGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1Y2Nlc3MtMzAwKTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXRvbmUtd2FybmluZyAucG9wLWRpYWxvZy1iYWRnZS1jaXJjbGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy13YXJuaW5nLWNhcmQpO1xufVxuLnFkbmFwcm8tcG9wb3ZlciAucG9wLWRpYWxvZy1iYWRnZS1hcnQge1xuICAtLXFsLXNpemU6IDg4cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogODhweDtcbiAgaGVpZ2h0OiA4OHB4O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG59XG4ucWRuYXByby1wb3BvdmVyIC5wb3AtZGlhbG9nLWJhZGdlLWNpcmNsZSAucG9wLWRpYWxvZy1iYWRnZS1hcnQge1xuICAtLXFsLXNpemU6IGNhbGModmFyKC0tcG9wLWJhZGdlLXNpemUpICogMC41NSk7XG4gIHdpZHRoOiBjYWxjKHZhcigtLXBvcC1iYWRnZS1zaXplKSAqIDAuNTUpO1xuICBoZWlnaHQ6IGNhbGModmFyKC0tcG9wLWJhZGdlLXNpemUpICogMC41NSk7XG59XG4ucWRuYXByby1wb3BvdmVyLnBvcC10b25lLWRhbmdlciAucG9wLWRpYWxvZy1iYWRnZS1jaXJjbGUgLnBvcC1kaWFsb2ctYmFkZ2UtYXJ0IHtcbiAgY29sb3I6IHZhcigtLWMtd2Fybi1yZWQtOTAwKTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXRvbmUtc3VjY2VzcyAucG9wLWRpYWxvZy1iYWRnZS1jaXJjbGUgLnBvcC1kaWFsb2ctYmFkZ2UtYXJ0IHtcbiAgY29sb3I6IHZhcigtLWMtc3VjY2Vzcy05MDApO1xufVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdmFyaWFudC1kaWFsb2cgLnBvcC1kaWFsb2ctYm9keSB7XG4gIHBhZGRpbmctdG9wOiA0cHg7XG59XG4ucWRuYXByby1wb3BvdmVyLnBvcC12YXJpYW50LWRpYWxvZyAucG9wLWRpYWxvZy1pbGx1c3RyYXRpb24ge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuLy8gRm9vdGVyOiBidXR0b25zIE5FWFQgVE8gZWFjaCBvdGhlciAocm93KSwgcHJpbWFyeSBvbiB0aGUgcmlnaHQuXG4ucWRuYXByby1wb3BvdmVyLnBvcC12YXJpYW50LWRpYWxvZyAucG9wLWRpYWxvZy1mb290ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEycHg7XG4gIG1hcmdpbi10b3A6IDI0cHg7XG59XG5cbi8vIC0tLSBsaWdodDogZGV6ZWxmZGUgZGlhbG9nIG9wIFdJVCAoS2ltIDAzLjA4LjIwMjYpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBcIkt1biBqZSBkaXQgZ2V3b29uIGVlbiB3aXR0ZSBkaWFsb2cgdmVyc2llIGRvZW4sIHBhYXJzIHZpbmQgaWsgZWVuIGJlZXRqZSB0ZSB2ZWVsLlwiXG4vLyBCZXd1c3QgQUxMRUVOIGVlbiBrbGV1ci1tb2RpZmllcjogbWFhdHZvZXJpbmcsIHNsdWl0LVgtcG9zaXRpZSwgc2NyaW0tZ2VkcmFnLCBzdGlja3lcbi8vIGhlYWRlciBlbiB2b2V0dGVrc3QgYmxpanZlbiB2YW4gLnBvcC12YXJpYW50LWRpYWxvZy4gVmllciBwbGVra2VuIHpldHRlbiBkZSBwYWFyc2Vcbi8vIGtsZXVyIGVuIGRpZSB2aWVyIHdvcmRlbiBoaWVyIG9tZ2V6ZXQsIG5pZXRzIG1lZXIuIEJlZG9lbGQgdm9vciBlZW4gZGlhbG9nIGRpZSB2b29yYWxcbi8vIElOSE9VRCBpcyAoZWVuIGxpanN0KTsgZWVuIHZyYWFnIG3DqXQgaWxsdXN0cmF0aWUgYmxpamZ0IHBhYXJzLlxuLy8gRGUgU0NSSU0gYmxpamZ0IGJld3VzdCBoZXR6ZWxmZGUgZG9ua2VyOiBlZW4gd2l0dGUga2FhcnQgaGVlZnQganVpc3QgZGF0IGNvbnRyYXN0XG4vLyBub2RpZyBvbSBhbHMga2FhcnQgdGUgbGV6ZW4uXG4vLyBMRVQgT1A6IGRlIHZvZXR0ZWtzdGtub3BwZW4gemlqbiBxZG5hcHJvLWJ1dHRvbiB0eXBlPVwib24tcHVycGxlKC1zb2xpZClcIi4gRGllIHppam5cbi8vIG9ubGVlc2JhYXIgb3Agd2l0LCBkdXMgZWVuIGxpY2h0ZSBkaWFsb2cgTUVUIGZvb3RlciBtb2V0IHppam4gZWlnZW4ga25vcHR5cGVzIHpldHRlbi5cbi8vIERlemUgZWVyc3RlIGFmbmVtZXIgKGRlIGRvY3VtZW50ZW5saWpzdCB2YW4gZWVuIHRha2VubGlqc3QpIGhlZWZ0IGdlZW4gZm9vdGVyLlxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtZGlhbG9nLWxpZ2h0IC5wb3AtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmZmZmYpO1xufVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtZGlhbG9nLWxpZ2h0IC5wb3AtZGlhbG9nLXRpdGxlIHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMWExZjRkKTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLWRpYWxvZy1saWdodCAucG9wLWRpYWxvZy10ZXh0IHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG59XG4ucWRuYXByby1wb3BvdmVyLnBvcC1kaWFsb2ctbGlnaHQgLnBvcC1jbG9zZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLWhvdmVyLCAjZjVmNmY4KTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMWExZjRkKTtcbn1cblxuLy8gLS0tIFN0aWNreSBoZWFkZXIgcm93ICh2YXJpYW50PVwiZGlhbG9nXCIgd2l0aCBhIFtkYXRhLXBvcC1oZWFkZXJdIGNoaWxkKSAtLS1cbi8vIE9wdC1pbiwgZm9yIGEgZGlhbG9nIHdob3NlIGNvbnRlbnQgaXMgYSBzZWFyY2hhYmxlL3Njcm9sbGFibGUgTElTVCBpbnN0ZWFkIG9mIGEgc2hvcnRcbi8vIGlsbHVzdHJhdGVkIG1lc3NhZ2UgKFBXQSB0YXNrbGlzdCBjaG9vc2VyKS4gVHdvIHRoaW5ncyBjaGFuZ2UsIGFuZCBvbmx5IHdoZW4gYSBoZWFkZXJcbi8vIGlzIGFjdHVhbGx5IHByZXNlbnQsIHNvIGV2ZXJ5IGV4aXN0aW5nIGRpYWxvZyBrZWVwcyBpdHMgYWJzb2x1dGUgWCArIHNjcm9sbGluZyBjYXJkOlxuLy8gICAxLiB0aGUgcm91bmQgWCBiZWNvbWVzIGEgZmxleCBpdGVtIGluIHRoaXMgcm93LCBzbyBoZWFkZXIgY29udGVudCBhbmQgWCBsaW5lIHVwIGJ5XG4vLyAgICAgIGNvbnN0cnVjdGlvbiBpbnN0ZWFkIG9mIGJ5IG1hdGNoaW5nIHR3byBpbmRlcGVuZGVudCBvZmZzZXRzO1xuLy8gICAyLiB0aGUgQ0FSRCBzdG9wcyBzY3JvbGxpbmcgYW5kIHRoZSBCT0RZIHNjcm9sbHMsIHdoaWNoIGlzIHdoYXQga2VlcHMgdGhpcyByb3cgKGFuZFxuLy8gICAgICB0aGUgZm9vdGVyKSBpbiBwbGFjZSB3aGlsZSB0aGUgbGlzdCBtb3ZlcyB1bmRlcm5lYXRoLlxuLy8gW0tpbSAyOS4wNy4yMDI2XVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdmFyaWFudC1kaWFsb2cgLnBvcC1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xufVxuLy8gVGhlIGZpcnN0IGhlYWRlciBjaGlsZCB0YWtlcyB0aGUgZnJlZSB3aWR0aCAoYSBzZWFyY2ggZmllbGQsIGEgdGl0bGUpOyB0aGUgWCBrZWVwcyBpdHNcbi8vIG93biBzaXplLiBEZWxpYmVyYXRlbHkgcG9zaXRpb25hbCBhbmQgbm90IGEgbmFtZWQgY2xhc3M6IHRoZSByb3cgaXMgYSBjb25zdW1lciBzbG90LlxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdmFyaWFudC1kaWFsb2cgLnBvcC1oZWFkZXIgPiAqOmZpcnN0LWNoaWxkIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbn1cbi8vIE91dCBvZiB0aGUgY29ybmVyLCBpbnRvIHRoZSByb3cuIHRvcC9yaWdodCBhcmUgcmVzZXQgZXhwbGljaXRseSBiZWNhdXNlIHRoZSBiYXNlIHJ1bGVcbi8vIHN0aWxsIHNldHMgdGhlbSBhbmQgYSBzdGF0aWMgYm94IHdvdWxkIG90aGVyd2lzZSBrZWVwIHRoZW0gYXMgZGVhZCBkZWNsYXJhdGlvbnMuXG4vLyBUaGUgNDRweCBib3ggKGluc3RlYWQgb2YgdGhlIGNvcm5lciBYJ3MgMzIpIGlzIHFkbmFwcm8taWNvbi1idG4gc2l6ZT1cInRvdWNoXCI6IGluIGEgcm93XG4vLyB0aGUgWCBpcyBvbmUgYnV0dG9uIGFtb25nIHNldmVyYWwsIHNvIGl0IGhhcyB0byBjYXJyeSBhIHNpemUgZnJvbSB0aGUgQlVUVE9OIHNjYWxlLCBub3Rcbi8vIGl0cyBvd24uIFRoZSBnbHlwaCBzdGVwcyB0byAyNHB4IGluIEpTIHRvIG1hdGNoLiBDb25zdW1lcnMgcHV0IHRoZWlyIG93biByb3VuZCBidXR0b25zXG4vLyBoZXJlICh0aGUgUFdBIHRhc2tsaXN0IGNob29zZXIgaGFzIGEgdmlldy1vcHRpb25zIGljb24tYnRuIG5leHQgdG8gaXQpIGFuZCB0aHJlZVxuLy8gZGlmZmVyZW50IGRpYW1ldGVycyBpbiBvbmUgcm93IGlzIGV4YWN0bHkgd2hhdCBLaW0gZmxhZ2dlZC4gNDQgYW5kIG5vdCAyODogS2ltIGFza2VkIGZvclxuLy8gdGhlc2UgY2lyY2xlcyB0byBzaW1wbHkgYmUgQklHIG5leHQgdG8gdGhlIHNlYXJjaCBmaWVsZCwgYW5kIHRvdWNoIGlzIGJvdGggdGhlIGxhcmdlc3Rcbi8vIGV4aXN0aW5nIHNpemUgYW5kIHRoZSBtaW5pbXVtIHRhcCB0YXJnZXQgLSBzbyBubyBmb3VydGggZGlhbWV0ZXIgZW50ZXJzIHRoZSBzeXN0ZW0uXG4vLyBbS2ltIDMwLjA3LjIwMjZdXG4ucWRuYXByby1wb3BvdmVyLnBvcC12YXJpYW50LWRpYWxvZy5wb3AtaGFzLWhlYWRlciAucG9wLWNsb3NlIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgdG9wOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiA0NHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG59XG4vLyBQYW5lbCA9IGZpeGVkIGZyYW1lIChoZWFkZXIgLyBzY3JvbGxpbmcgYm9keSAvIGZvb3RlciksIG5vIGxvbmdlciB0aGUgc2Nyb2xsIGNvbnRhaW5lci5cbi8vIHBhZGRpbmctdG9wIG1hdGNoZXMgdGhlIDE2cHggdGhlIGFic29sdXRlIFggdXNlZCB0byBzaXQgYXQsIHNvIHRoZSBoZWFkZXIgcm93IGxhbmRzXG4vLyB3aGVyZSB0aGUgWCBhbHJlYWR5IHdhcyBhbmQgdGhlIGNhcmQncyB0b3AgZWRnZSBkb2VzIG5vdCBzaGlmdC5cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXZhcmlhbnQtZGlhbG9nLnBvcC1oYXMtaGVhZGVyIC5wb3AtcGFuZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nLXRvcDogMTZweDtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXZhcmlhbnQtZGlhbG9nLnBvcC1oYXMtaGVhZGVyIC5wb3AtYm9keSB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4taGVpZ2h0OiAwOyAvLyB3aXRob3V0IHRoaXMgYSBmbGV4IGNoaWxkIHJlZnVzZXMgdG8gc2hyaW5rIGJlbG93IGl0cyBjb250ZW50XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuLy8gTWVkaXVtIHNpemUgb2YgdGhlIGJpZyBkaWFsb2c6IG5hcnJvd2VyIGNhcmQgKGlsbHVzdHJhdGlvbiBzY2FsZXMgdG8gNDAwIGluIEpTKS5cbi8vIEhpZ2hlciBzcGVjaWZpY2l0eSB0aGFuIHRoZSBiYXNlIC5wb3AtdmFyaWFudC1kaWFsb2cgLnBvcC1wYW5lbCBzbyBpdCB3aW5zIHRoZSB3aWR0aC5cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXZhcmlhbnQtZGlhbG9nLnBvcC1zaXplLW1lZGl1bSAucG9wLXBhbmVsIHtcbiAgd2lkdGg6IG1pbig5MnZ3LCA1MjBweCk7XG59XG5cbi8vIC0tLSB2YXJpYW50PVwiZGlhbG9nLWFycm93XCI6IFNNQUxMIHBvcG92ZXIsIGFuY2hvcmVkICsgYXJyb3dlZCB0byBhIHRyaWdnZXIgLS0tXG4ucWRuYXByby1wb3BvdmVyLnBvcC12YXJpYW50LWRpYWxvZy1hcnJvdyB7XG4gIC8vIDM0MCBtYXRjaGVzIHRoZSBkZXNpZ24gY2FudmFzIChwb3BvdmVyX3NtYWxsLnN2ZyBpcyAzMzkgd2lkZSkgYW5kIGdpdmVzIHRoZVxuICAvLyAyMjAtd2lkZSBpbGx1c3RyYXRpb24gY29tZm9ydGFibGUgbWFyZ2lucy5cbiAgd2lkdGg6IDM0MHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAvLyBUaGUgYmFzZSBydWxlJ3MgNnB4IHBhZGRpbmcgc3VpdHMgYW4gYWN0aW9uLWxpc3QgKGJ1dHRvbi1ncm91cHMgY2FycnkgdGhlaXIgb3duXG4gIC8vIGluc2V0cyk7IGEgZnVsbCBpbGx1c3RyYXRlZCBkaWFsb2cgbmVlZHMgcmVhbCBicmVhdGhpbmcgcm9vbSwgc28gZ2l2ZSB0aGUgc21hbGxcbiAgLy8gZGlhbG9nIGl0cyBvd24gcGFkZGluZyAobWF0Y2hlcyB0aGUgY29tcGFjdCBzcGFjaW5nIGluIEtpbSdzIHNjcmVlbnNob3QpLlxuICBwYWRkaW5nOiAyMHB4IDIwcHggMThweDtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXZhcmlhbnQtZGlhbG9nLWFycm93OjpiZWZvcmUge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xufVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdmFyaWFudC1kaWFsb2ctYXJyb3cucG9wLWFib3ZlOjpiZWZvcmUge1xuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi8vIC5wb3AtcGFuZWwgaXMgYSBwbGFpbiB1bnN0eWxlZCB3cmFwcGVyIGhlcmUg4oCUIHRoZSBob3N0IGl0c2VsZiAoYmFzZSBydWxlKSBhbHJlYWR5XG4vLyBjYXJyaWVzIHRoZSBwYWRkaW5nL2JhY2tncm91bmQvcmFkaXVzL3NoYWRvdywgc2FtZSBhcyB3aGl0ZS9wdXJwbGUuIFRoaXMga2VlcHNcbi8vIHRoZSBzbWFsbCBwb3BvdmVyJ3Mgc3BhY2luZyBpZGVudGljYWwgdG8gdGhlIGV4aXN0aW5nIChub24tZGlhbG9nKSB2YXJpYW50cy5cbi8vIEZvb3RlcjogYnV0dG9ucyBTVEFDS0VEIChjb2x1bW4pLCBmdWxsLXdpZHRoLlxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdmFyaWFudC1kaWFsb2ctYXJyb3cgLnBvcC1kaWFsb2ctZm9vdGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA4cHg7XG4gIG1hcmdpbi10b3A6IDE2cHg7XG59XG5cbi8vIOKUgOKUgCBUaXRsZSBhcnQgKHRpdGxlLWxvdHRpZSAvIHRpdGxlLWxvdHRpZS1uYW1lIC8gdGl0bGUtaWNvbikg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBBIFNNQUxMIGFuaW1hdGVkIGdseXBoIHJpZ2h0IG5leHQgdG8gdGhlIGhlYWRpbmcsIG1pcnJvciBvZiAuYnMtZGlhbG9nLXRpdGxlLWFydCBvblxuLy8gcWRuYXByby1ib3R0b20tc2hlZXQgKHNlZSB0aGF0IGZpbGUncyBkb2NibG9jayBhbmQgX2JvdHRvbS1zaGVldC5zY3NzKSDigJQgdGhlIFB1bHNlXG4vLyB2ZXJkaWN0IGRpYWxvZyAoXCJDb3JyZWN0IVwiICsgYSBjaGVjaykgaGFzIHRvIGxvb2sgYnl0ZS1pZGVudGljYWwgd2hldGhlciBpdCBvcGVucyBhcyBhXG4vLyBzaGVldCBvbiB0aGUgcGhvbmUgb3IgdGhpcyBwb3BvdmVyIG9uIGEgd2lkZSBzY3JlZW4uIDQweDQwLCBsb29wcyB3aGlsZSB0aGUgcG9wb3ZlciBpc1xuLy8gb3BlbiAoc2VlIHRoZSBKUyBmb3Igd2h5KS4gW0tpbSAwNC4wOS4yMDI2XVxuLnFkbmFwcm8tcG9wb3ZlciAucG9wLWRpYWxvZy10aXRsZS13aXRoLWFydCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiAxMnB4O1xufVxuLnFkbmFwcm8tcG9wb3ZlciAucG9wLWRpYWxvZy10aXRsZS1hcnQge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xufVxuLnFkbmFwcm8tcG9wb3ZlciAucG9wLWRpYWxvZy10aXRsZS1sb3R0aWUge1xuICAtLXFsLXNpemU6IDQwcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xufVxuLnFkbmFwcm8tcG9wb3ZlciAucG9wLWRpYWxvZy10aXRsZS1pY29uIHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xufVxuXG4vLyDilIDilIAgRmxvYXQgc2xvdCAoc2xvdD1cImZsb2F0XCIpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gQ2hpbGRyZW4gbWFya2VkIHNsb3Q9XCJmbG9hdFwiIGFyZSBwYXJrZWQgaGVyZSwgQUJPVkUgdGhlIHBhbmVsJ3MgdG9wIGVkZ2UsIHJpZ2h0LWFsaWduZWRcbi8vIGFuZCAxNHB4IGNsZWFyIG9mIGl0IOKAlCBtaXJyb3Igb2YgcWRuYXByby1ib3R0b20tc2hlZXQncyBgLmJzLWZsb2F0YCAoS2ltJ3MgZGVzaWduOiB0aGVcbi8vIHBvaW50cyBwaWxsIHNpdHMgaW4gdGhlIGdhcCBiZXR3ZWVuIHRoZSBjYXJkIHBob3RvIGFuZCB0aGUgc2hlZXQvcG9wb3ZlcikuIEFic29sdXRlXG4vLyBpbnNpZGUgYC5wb3AtcGFuZWxgLCB3aGljaCBpcyBgcG9zaXRpb246IHJlbGF0aXZlYCBvbiB0aGUgYmlnIGNlbnRlcmVkIGRpYWxvZyBhbmQgbGFuZHNcbi8vIG9uIHRoZSBob3N0J3Mgb3duIGBwb3NpdGlvbjogZml4ZWRgIGJveCBvbiB0aGUgc21hbGwgYW5jaG9yZWQgZGlhbG9nLWFycm93IOKAlCBlaXRoZXIgd2F5XG4vLyB0aGUgZmxvYXQgc3RyaXAgc2l0cyByaWdodCBhYm92ZSB0aGUgdmlzaWJsZSBwYW5lbC4gcG9pbnRlci1ldmVudHMgb2ZmOiBpdCBpcyBhIGxhYmVsLFxuLy8gbm90IGEgY29udHJvbCwgYW5kIG11c3Qgbm90IGJsb2NrIGEgY2xpY2sgbWVhbnQgZm9yIHRoZSBzY3JpbS9vdXRzaWRlLWNsaWNrIGRpc21pc3NhbFxuLy8gYmVoaW5kIGl0LiBbS2ltIDA0LjA5LjIwMjZdXG4vKiBFZW4gZGlhbG9vZyBNRVQgZWVuIGZsb2F0LWtpbmQgbWFnIG5pZXQga2xpcHBlbjogZGUgcGlsIGhhbmd0IGJvdmVuIGRlIGJvdmVucmFuZFxuICAgdmFuIGhldCBwYW5lZWwgZW4gYG92ZXJmbG93LXk6IGF1dG9gIG9wIGRhdCBwYW5lZWwgc25lZWQgaGVtIGNvbXBsZWV0IHdlZyAoZ2VtZXRlblxuICAgb3AgZWVuIHJlbmRlciwgMDQuMDkuMjAyNikuIEhldCBzY2h1aXZlbiB2ZXJodWlzdCBkYWFyb20gbmFhciBkZSBkaWFsb29nLWJvZHksIGVuXG4gICBhbGxlZW4gdm9vciBlZW4gZGlhbG9vZyBkaWUgZWNodCBlZW4gZmxvYXQgZHJhYWd0IC0gZWVuIGRpYWxvb2cgem9uZGVyIGZsb2F0IGhvdWR0XG4gICBleGFjdCBoZXQgZ2VkcmFnIGRhdCBoaWogaGFkLiBEZSBob29ndGUtY2FwIHppdCBkYW4gb3AgZGUgYm9keToga29wLCBzbHVpdC1YIGVuXG4gICB2b2V0a25vcCBibGlqdmVuIHN0YWFuIGVuIGFsbGVlbiBkZSBpbmhvdWQgc2NodWlmdCwgd2F0IHZvb3IgZWVuIGRpYWxvb2cgbWV0IGVlblxuICAgcmlqIGFudHdvb3Jka2FhcnRlbiBvb2sgaGV0IGJldGVyZSBnZWRyYWcgaXMuICovXG4ucWRuYXByby1wb3BvdmVyLnBvcC12YXJpYW50LWRpYWxvZy5wb3AtaGFzLWZsb2F0IC5wb3AtcGFuZWwge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXZhcmlhbnQtZGlhbG9nLnBvcC1oYXMtZmxvYXQgLnBvcC1kaWFsb2ctYm9keSB7XG4gIG1heC1oZWlnaHQ6IDYydmg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5xZG5hcHJvLXBvcG92ZXIgLnBvcC1mbG9hdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDEwcHg7XG4gIGJvdHRvbTogY2FsYygxMDAlICsgMTRweCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi8vIFRoZSBwaWxsIGtlZXBzIHRoZSBCT1RUT00gU0hFRVQncyBvd24gY2xhc3MgKGBicy1waWxsYCwgbm90IGEgcG9wb3Zlci1zcGVjaWZpYyBvbmUpOlxuLy8gdGhlIGNvbnN1bWVyIGhhbmRzIHRoZSBleGFjdCBzYW1lIG1hcmt1cCB0byB0aGUgc2hlZXQgYW5kIHRvIHRoaXMgcG9wb3Zlciwgc28gdGhlIHBpbGxcbi8vIG11c3QgYmUgc3R5bGVkIGhlcmUgdG9vIChzYW1lIGFmc3ByYWFrIGFzIGAuYnMtZGlhbG9nLWJ1bGxldGAgYWJvdmUpLiBTYW1lIHNpemluZy90b25lXG4vLyBydWxlcyBhcyBgLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1waWxsYCBpbiBfYm90dG9tLXNoZWV0LnNjc3Mg4oCUIHRoZSB0b25lJ3MgU1VSRkFDRVxuLy8gY29sb3VyLCBzbyBpdCByZWFkcyBhcyBhIHBpZWNlIG9mIHRoZSBkaWFsb2cgZmxvYXRpbmcgZnJlZTsgdGhlIHB1cnBsZSBkaWFsb2cgZ2V0cyB0aGVcbi8vIHB1cnBsZSBzdXJmYWNlIGZvciB0aGUgc2FtZSByZWFzb24uXG4ucWRuYXByby1wb3BvdmVyIC5icy1waWxsIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBoZWlnaHQ6IDQ5cHg7XG4gIHBhZGRpbmc6IDAgMThweCAwIDE0cHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItcGlsbCwgOTk5cHgpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ucWRuYXByby1wb3BvdmVyLnBvcC10b25lLWRhbmdlciAuYnMtcGlsbCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLWRhbmdlci1zdXJmYWNlKTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXRvbmUtc3VjY2VzcyAuYnMtcGlsbCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLXN1Y2Nlc3Mtc3VyZmFjZSk7XG59XG4ucWRuYXByby1wb3BvdmVyLnBvcC10b25lLXdhcm5pbmcgLmJzLXBpbGwge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy13YXJuaW5nLXN1cmZhY2UpO1xufVxuXG4vLyDilIDilIAgVmVyZGljdCBjYXJkcyAoLmJzLWRpYWxvZy1jYXJkKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIE9uZSByb3VuZGVkIGJsb2NrIHBlciBhbnN3ZXIgb3B0aW9uIG9uIGEgdG9uZWQgZGlhbG9nOiBhIGJvbGQgaGVhZCAodmVyZGljdCBpY29uICtcbi8vIG9wdGlvbiB0ZXh0KSBhbmQgdGhlIGV4cGxhbmF0aW9uIHVuZGVyIGl0LCB3aGl0ZSBvbiB0aGUgdG9uZSdzIENBUkQgY29sb3VyIOKAlCBtaXJyb3Igb2Zcbi8vIGAuYnMtZGlhbG9nLWNhcmRgIG9uIHFkbmFwcm8tYm90dG9tLXNoZWV0IChzZWUgX2JvdHRvbS1zaGVldC5zY3NzIGZvciB0aGUgZnVsbCBjb21tZW50KS5cbi8vIFNBTUUgY2xhc3MgbmFtZXMgYXMgdGhlIHNoZWV0IChgLmJzLWRpYWxvZy1jYXJkYCwgbm90IGEgcG9wb3Zlci1zcGVjaWZpYyBvbmUpLCBmb3IgdGhlXG4vLyBzYW1lIHJlYXNvbiB0aGUgcGlsbCBrZWVwcyBgYnMtcGlsbGA6IHRoZSBjb25zdW1lciBidWlsZHMgdGhpcyBtYXJrdXAgT05DRSBhbmQgaGFuZHMgaXRcbi8vIHRvIHdoaWNoZXZlciBzdXJmYWNlIGlzIHNob3dpbmcuIFRoZSB0d28gaW5saW5lIGRhdGEtVVJJIFNWR3MgKEtpbSdzIGNoZWNrIGFuZCBjcm9zcylcbi8vIGFyZSBjb3BpZWQgdmVyYmF0aW0gZnJvbSBfYm90dG9tLXNoZWV0LnNjc3MsIG5vdCByZWRyYXduLiBMaXZlcyBpbnNpZGVcbi8vIC5wb3AtZGlhbG9nLWNvbnRlbnQgbGlrZSB0aGUgYnVsbGV0IHJvd3MuIFtLaW0gMDQuMDkuMjAyNl1cbi5xZG5hcHJvLXBvcG92ZXIgLnBvcC1kaWFsb2ctY29udGVudCAuYnMtZGlhbG9nLWNhcmQge1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBwYWRkaW5nOiAxNHB4IDEycHggMTZweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNzAwKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjc1O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLnFkbmFwcm8tcG9wb3ZlciAucG9wLWRpYWxvZy1jb250ZW50IC5icy1kaWFsb2ctY2FyZCArIC5icy1kaWFsb2ctY2FyZCB7XG4gIG1hcmdpbi10b3A6IDhweDtcbn1cbi5xZG5hcHJvLXBvcG92ZXIgLnBvcC1kaWFsb2ctY29udGVudCAuYnMtZGlhbG9nLWNhcmQtaGVhZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuLnFkbmFwcm8tcG9wb3ZlciAucG9wLWRpYWxvZy1jb250ZW50IC5icy1kaWFsb2ctY2FyZC1pY29uIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiAyMXB4O1xuICBoZWlnaHQ6IDIxcHg7XG4gIGJhY2tncm91bmQ6IG5vLXJlcGVhdCBjZW50ZXIgLyBjb250YWluO1xufVxuLnFkbmFwcm8tcG9wb3ZlciAucG9wLWRpYWxvZy1jb250ZW50IC5icy1kaWFsb2ctY2FyZFtkYXRhLXZlcmRpY3Q9XCJyaWdodFwiXSAuYnMtZGlhbG9nLWNhcmQtaWNvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzIxJyBoZWlnaHQ9JzIxJyB2aWV3Qm94PScwIDAgMjEgMjEnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J00xMC40NDEzIDIwLjA5ODZDMTUuNzc0NyAyMC4wOTg2IDIwLjA5ODQgMTUuNzc1IDIwLjA5ODQgMTAuNDQxNUMyMC4wOTg0IDUuMTA4MDUgMTUuNzc0NyAwLjc4NDQyNCAxMC40NDEzIDAuNzg0NDI0QzUuMTA3ODEgMC43ODQ0MjQgMC43ODQxOCA1LjEwODA1IDAuNzg0MTggMTAuNDQxNUMwLjc4NDE4IDE1Ljc3NSA1LjEwNzgxIDIwLjA5ODYgMTAuNDQxMyAyMC4wOTg2WicgZmlsbD0nJTIzNThCOTkyJy8lM0UlM0NwYXRoIGQ9J00xMC40NDE0IDIwLjg4MjhDNC42ODQgMjAuODgyOCAwIDE2LjE5ODggMCAxMC40NDE0QzAgNC42ODQgNC42ODQgMCAxMC40NDE0IDBDMTYuMTk4OCAwIDIwLjg4MjggNC42ODQgMjAuODgyOCAxMC40NDE0QzIwLjg4MjggMTYuMTk4OCAxNi4xOTg4IDIwLjg4MjggMTAuNDQxNCAyMC44ODI4Wk0xMC40NDE0IDEuNTY4NjNDNS41NDg5NCAxLjU2ODYzIDEuNTY4NjMgNS41NDg5NCAxLjU2ODYzIDEwLjQ0MTRDMS41Njg2MyAxNS4zMzM5IDUuNTQ4OTQgMTkuMzE0MiAxMC40NDE0IDE5LjMxNDJDMTUuMzMzOSAxOS4zMTQyIDE5LjMxNDIgMTUuMzMzOSAxOS4zMTQyIDEwLjQ0MTRDMTkuMzE0MiA1LjU0ODk0IDE1LjMzMzkgMS41Njg2MyAxMC40NDE0IDEuNTY4NjNaJyBmaWxsPSclMjMyRjVENEEnLyUzRSUzQ3BhdGggZD0nTTkuMjY3MzkgMTQuMjE5N0M4LjkzNDkyIDE0LjIxOTcgOC42MjIzNyAxNC4wOTAyIDguMzg3MzIgMTMuODU1MUw1LjgzOTA4IDExLjMwNjlDNS41MzI4MSAxMS4wMDA2IDUuNTMyODEgMTAuNTA0IDUuODM5MDggMTAuMTk3NkM2LjE0NTM2IDkuODkxMzYgNi42NDE5OCA5Ljg5MTM2IDYuOTQ4MjYgMTAuMTk3Nkw5LjI2NzMyIDEyLjUxNjdMMTMuOTM0MiA3Ljg0OTc5QzE0LjI0MDUgNy41NDM2IDE0LjczNyA3LjU0MzUyIDE1LjA0MzQgNy44NDk3OUMxNS4zNDk3IDguMTU2MDcgMTUuMzQ5NyA4LjY1MjcgMTUuMDQzNCA4Ljk1OTA1TDEwLjE0NzMgMTMuODU1QzkuOTEyNDEgMTQuMDkwMiA5LjU5OTg2IDE0LjIxOTcgOS4yNjczOSAxNC4yMTk3WicgZmlsbD0nd2hpdGUnLyUzRSUzQy9zdmclM0VcIik7XG59XG4ucWRuYXByby1wb3BvdmVyIC5wb3AtZGlhbG9nLWNvbnRlbnQgLmJzLWRpYWxvZy1jYXJkW2RhdGEtdmVyZGljdD1cIndyb25nXCJdIC5icy1kaWFsb2ctY2FyZC1pY29uIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMjEnIGhlaWdodD0nMjEnIHZpZXdCb3g9JzAgMCAyMSAyMScgZmlsbD0nbm9uZScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZD0nTTEwLjE5MDIgMTkuNjE0NkMxNS4zOTUzIDE5LjYxNDYgMTkuNjE0OSAxNS4zOTUxIDE5LjYxNDkgMTAuMTlDMTkuNjE0OSA0Ljk4NDkyIDE1LjM5NTMgMC43NjUzODEgMTAuMTkwMiAwLjc2NTM4MUM0Ljk4NTE3IDAuNzY1MzgxIDAuNzY1NjI1IDQuOTg0OTIgMC43NjU2MjUgMTAuMTlDMC43NjU2MjUgMTUuMzk1MSA0Ljk4NTE3IDE5LjYxNDYgMTAuMTkwMiAxOS42MTQ2WicgZmlsbD0nJTIzRkYzQTMwJy8lM0UlM0NwYXRoIGQ9J00xMC4xOSAyMC4zODAxQzQuNTcxMjQgMjAuMzgwMSAwIDE1LjgwODkgMCAxMC4xOUMwIDQuNTcxMjQgNC41NzEyNCAwIDEwLjE5IDBDMTUuODA4OSAwIDIwLjM4MDEgNC41NzEyNCAyMC4zODAxIDEwLjE5QzIwLjM4MDEgMTUuODA4OSAxNS44MDg5IDIwLjM4MDEgMTAuMTkgMjAuMzgwMVpNMTAuMTkgMS41MzA3OUM1LjQxNTM2IDEuNTMwNzkgMS41MzA4NiA1LjQxNTI4IDEuNTMwODYgMTAuMTlDMS41MzA4NiAxNC45NjQ3IDUuNDE1MzYgMTguODQ5MiAxMC4xOSAxOC44NDkyQzE0Ljk2NDcgMTguODQ5MiAxOC44NDkyIDE0Ljk2NDcgMTguODQ5MiAxMC4xOUMxOC44NDkyIDUuNDE1MjggMTQuOTY0OCAxLjUzMDc5IDEwLjE5IDEuNTMwNzlaJyBmaWxsPSclMjM3QzE5MTQnLyUzRSUzQ3BhdGggZD0nTTExLjI3MjYgMTAuMTlMMTMuOTY2MiA3LjQ5NjQxQzE0LjI2NTEgNy4xOTc1MSAxNC4yNjUxIDYuNzEyODQgMTMuOTY2MiA2LjQxMzk0QzEzLjY2NzIgNi4xMTQ5NiAxMy4xODI2IDYuMTE1MTIgMTIuODgzNyA2LjQxMzg2TDEwLjE5IDkuMTA3NUw3LjQ5NjQxIDYuNDEzODZDNy4xOTc1MSA2LjExNDk2IDYuNzEyODQgNi4xMTQ5NiA2LjQxMzg2IDYuNDEzOTRDNi4xMTQ5NiA2LjcxMjg0IDYuMTE0OTYgNy4xOTc1MSA2LjQxMzk0IDcuNDk2NDFMOS4xMDc1NyAxMC4xOUw2LjQxMzk0IDEyLjg4MzVDNi4xMTUwNCAxMy4xODI0IDYuMTE0OTYgMTMuNjY3MSA2LjQxMzg2IDEzLjk2NkM2LjU2MzM1IDE0LjExNTUgNi43NTkyMyAxNC4xOTAyIDYuOTU1MSAxNC4xOTAyQzcuMTUwOTcgMTQuMTkwMiA3LjM0NjkzIDE0LjExNTQgNy40OTYzNCAxMy45NjZMMTAuMTkgMTEuMjcyNEwxMi44ODM2IDEzLjk2NkMxMy4wMzMgMTQuMTE1NSAxMy4yMjkgMTQuMTkwMiAxMy40MjQ4IDE0LjE5MDJDMTMuNjIwNyAxNC4xOTAyIDEzLjgxNjcgMTQuMTE1NCAxMy45NjYxIDEzLjk2NkMxNC4yNjUgMTMuNjY3MSAxNC4yNjUgMTMuMTgyNCAxMy45NjYxIDEyLjg4MzVMMTEuMjcyNiAxMC4xOVonIGZpbGw9J3doaXRlJy8lM0UlM0Mvc3ZnJTNFXCIpO1xufVxuLnFkbmFwcm8tcG9wb3ZlciAucG9wLWRpYWxvZy1jb250ZW50IC5icy1kaWFsb2ctY2FyZC10ZXh0IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ucWRuYXByby1wb3BvdmVyLnBvcC10b25lLWRhbmdlciAucG9wLWRpYWxvZy1jb250ZW50IC5icy1kaWFsb2ctY2FyZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLWRhbmdlci1jYXJkKTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXRvbmUtc3VjY2VzcyAucG9wLWRpYWxvZy1jb250ZW50IC5icy1kaWFsb2ctY2FyZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLXN1Y2Nlc3MtY2FyZCk7XG59XG4ucWRuYXByby1wb3BvdmVyLnBvcC10b25lLXdhcm5pbmcgLnBvcC1kaWFsb2ctY29udGVudCAuYnMtZGlhbG9nLWNhcmQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy13YXJuaW5nLWNhcmQpO1xufVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdG9uZS13YXJuaW5nIC5wb3AtZGlhbG9nLWNvbnRlbnQgLmJzLWRpYWxvZy1jYXJkW2RhdGEtdmVyZGljdD1cIndyb25nXCJdIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctd2FybmluZy1jYXJkLXdyb25nKTtcbn1cbi8vIGRhdGEtdmVyZGljdD1cIm1pc3NlZFwiIGVuIC5icy1kaWFsb2ctbGFiZWw6IGRlIGp1aXN0ZSBhbnR3b29yZGVuIGRpZSBqZSBOSUVUIGFhbnZpbmt0ZSxcbi8vIG1ldCBoZXQga29wamUgZXJib3Zlbi4gWmVsZmRlIHJlZ2VscyBhbHMgaW4gX2JvdHRvbS1zaGVldC5zY3NzIChkYXNoZWQgb21saWpuaW5nLFxuLy8gZ2VzdGlwcGVsZCB2aW5ramUpIC0gZGUgdHdlZSBzY2hpbGxlbiBkZWxlbiBkaXQgZGlhbG9vZy1jb250cmFjdC4gW0tpbSAwNC4wOS4yMDI2XVxuLnFkbmFwcm8tcG9wb3ZlciAucG9wLWRpYWxvZy1jb250ZW50IC5icy1kaWFsb2ctY2FyZFtkYXRhLXZlcmRpY3Q9XCJtaXNzZWRcIl0ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAycHggZGFzaGVkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgcGFkZGluZzogMTJweCAxMHB4IDE0cHg7XG59XG4ucWRuYXByby1wb3BvdmVyIC5wb3AtZGlhbG9nLWNvbnRlbnQgLmJzLWRpYWxvZy1jYXJkW2RhdGEtdmVyZGljdD1cIm1pc3NlZFwiXSAuYnMtZGlhbG9nLWNhcmQtaWNvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzIxJyBoZWlnaHQ9JzIxJyB2aWV3Qm94PScwIDAgMjEgMjEnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NjaXJjbGUgY3g9JzEwLjUnIGN5PScxMC41JyByPSc5LjMnIHN0cm9rZT0nd2hpdGUnIHN0cm9rZS13aWR0aD0nMS43JyBzdHJva2UtZGFzaGFycmF5PSczLjIgMi44Jy8lM0UlM0NwYXRoIGQ9J005LjI2NzM5IDE0LjIxOTdDOC45MzQ5MiAxNC4yMTk3IDguNjIyMzcgMTQuMDkwMiA4LjM4NzMyIDEzLjg1NTFMNS44MzkwOCAxMS4zMDY5QzUuNTMyODEgMTEuMDAwNiA1LjUzMjgxIDEwLjUwNCA1LjgzOTA4IDEwLjE5NzZDNi4xNDUzNiA5Ljg5MTM2IDYuNjQxOTggOS44OTEzNiA2Ljk0ODI2IDEwLjE5NzZMOS4yNjczMiAxMi41MTY3TDEzLjkzNDIgNy44NDk3OUMxNC4yNDA1IDcuNTQzNiAxNC43MzcgNy41NDM1MiAxNS4wNDM0IDcuODQ5NzlDMTUuMzQ5NyA4LjE1NjA3IDE1LjM0OTcgOC42NTI3IDE1LjA0MzQgOC45NTkwNUwxMC4xNDczIDEzLjg1NUM5LjkxMjQxIDE0LjA5MDIgOS41OTk4NiAxNC4yMTk3IDkuMjY3MzkgMTQuMjE5N1onIGZpbGw9J3doaXRlJy8lM0UlM0Mvc3ZnJTNFXCIpO1xufVxuLnFkbmFwcm8tcG9wb3ZlciAucG9wLWRpYWxvZy1jb250ZW50IC5icy1kaWFsb2ctbGFiZWwge1xuICBtYXJnaW46IDE2cHggMCA4cHg7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS40O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLnFkbmFwcm8tcG9wb3ZlciAucG9wLWRpYWxvZy1jb250ZW50IC5icy1kaWFsb2ctbGFiZWw6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvYnJlYWRjcnVtYi9fYnJlYWRjcnVtYi1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4ucWRuYXByby1icmVhZGNydW1iIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xufVxuXG4ucWRuYXByby1icmVhZGNydW1iID4gKiB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLnFkbmFwcm8tYnJlYWRjcnVtYiA+IGE6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5xZG5hcHJvLWJyZWFkY3J1bWIgLmJyZWFkY3J1bWItY3VycmVudCB7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ucWRuYXByby1icmVhZGNydW1iIC5icmVhZGNydW1iLXNlcCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ucWRuYXByby1icmVhZGNydW1iIC5icmVhZGNydW1iLXNlcCBzdmcge1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAxMnB4O1xuICBzdHJva2U6IGN1cnJlbnRDb2xvcjtcbiAgZmlsbDogbm9uZTtcbiAgc3Ryb2tlLXdpZHRoOiAyLjU7XG4gIHN0cm9rZS1saW5lY2FwOiByb3VuZDtcbiAgc3Ryb2tlLWxpbmVqb2luOiByb3VuZDtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYnJlYWRjcnVtYixcbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWJyZWFkY3J1bWIgPiAqIHtcbiAgY29sb3I6ICNhNmFhYjM7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWJyZWFkY3J1bWIgPiBhOmhvdmVyIHtcbiAgY29sb3I6ICNjMGM1ZmY7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWJyZWFkY3J1bWIgLmJyZWFkY3J1bWItY3VycmVudCB7XG4gIGNvbG9yOiAjYzBjNWZmO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1icmVhZGNydW1iIC5icmVhZGNydW1iLXNlcCB7XG4gIGNvbG9yOiAjYTZhYWIzO1xufSIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL2J1dHRvbi9fYnV0dG9uLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi5xZG5hcHJvLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAtLWJ0bi1mb2N1cy1yaW5nOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAtLWJ0bi1mb2N1cy1nbG93OiByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbiAgZm9udC1mYW1pbHk6IGludGVyLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZS1vdXQsIGJvcmRlci1jb2xvciAxMjBtcyBlYXNlLW91dCwgY29sb3IgMTIwbXMgZWFzZS1vdXQ7XG59XG4ucWRuYXByby1idXR0b24gPiBxZG5hcHJvLW51bWJlci1pbmRpY2F0b3ItYmFkZ2VbZGF0YS1idXR0b24tYmFkZ2VdIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2l6ZS1iaWcge1xuICBtaW4taGVpZ2h0OiA1NnB4O1xuICBwYWRkaW5nOiAxMnB4IDE2cHg7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXNpemUtYmlnLmJ1dHRvbi1pY29uLW9ubHkge1xuICB3aWR0aDogNTZweDtcbiAgbWluLXdpZHRoOiA1NnB4O1xuICBwYWRkaW5nOiAwO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zaXplLXNtYWxsIHtcbiAgbWluLWhlaWdodDogNDBweDtcbiAgcGFkZGluZzogOHB4IDEycHg7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXNpemUtc21hbGwuYnV0dG9uLWljb24tb25seSB7XG4gIHdpZHRoOiA0MHB4O1xuICBtaW4td2lkdGg6IDQwcHg7XG4gIHBhZGRpbmc6IDA7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXNpemUtc251ZyB7XG4gIG1pbi1oZWlnaHQ6IDMycHg7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuLyogQW4gaWNvbiBpbiBhIGJ1dHRvbiBvdGhlcndpc2UgaW5oZXJpdHMgaXRzIHNpemUgZnJvbSB0aGUgZm9udCAoLnFkbmFwcm8taWNvbiBpc1xuICAgMWVtIHdpZGUpLCBzbyBhIHNudWcgYnV0dG9uIGRyZXcgYSAxM3B4IGdseXBoIHdoaWxlIHRoZSBzZWdtZW50IGJlc2lkZSBpdCBpbiB0aGVcbiAgIHNhbWUgdG9vbGJhciBkcmF3cyAxNnB4IOKAlCB2aXNpYmx5IHNtYWxsZXIgZm9yIG5vIHJlYXNvbi4gQSBzaXplIHNob3VsZCBkZWNpZGUgaXRzXG4gICBvd24gZ2x5cGgsIHNvIGBzbnVnYCBzYXlzIDE2IG91dCBsb3VkLiBTY29wZWQgdG8gdGhpcyBzaXplOiBub3RoaW5nIGVsc2UgbW92ZXMuXG4gICBbS2ltIDEwLjA4LjIwMjZdICovXG4ucWRuYXByby1idXR0b24uYnV0dG9uLXNpemUtc251ZyA+IHFkbmFwcm8taWNvbiB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG59XG5cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2l6ZS1zbnVnLmJ1dHRvbi1pY29uLW9ubHkge1xuICB3aWR0aDogMzJweDtcbiAgbWluLXdpZHRoOiAzMnB4O1xuICBwYWRkaW5nOiAwO1xufVxuXG4ucWRuYXByby1idXR0b24uYnV0dG9uLXNpemUtY29tcGFjdCB7XG4gIG1pbi1oZWlnaHQ6IDI4cHg7XG4gIHBhZGRpbmc6IDRweCAxMHB4O1xuICBnYXA6IDZweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMThweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zaXplLWNvbXBhY3QuYnV0dG9uLWljb24tb25seSB7XG4gIHdpZHRoOiAyOHB4O1xuICBtaW4td2lkdGg6IDI4cHg7XG4gIHBhZGRpbmc6IDA7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXNpemUtbWljcm8ge1xuICBtaW4taGVpZ2h0OiAyNHB4O1xuICBwYWRkaW5nOiAzcHggMTBweDtcbiAgZ2FwOiA0cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2l6ZS1taWNyby5idXR0b24taWNvbi1vbmx5IHtcbiAgd2lkdGg6IDI0cHg7XG4gIG1pbi13aWR0aDogMjRweDtcbiAgcGFkZGluZzogMDtcbn1cbi8vIFBXQS1vbmx5IHRvdWNoIHNpemVzIOKAlCBzZWUgZG9jYmxvY2sgaW4gcWRuYS1idXR0b24uanMuIE5vdCB1c2VkIGluIHRoZVxuLy8gYmFja29mZmljZS4gWzIwMjYtMDctMDFdXG4ucWRuYXByby1idXR0b24uYnV0dG9uLXNpemUtdG91Y2gge1xuICBtaW4taGVpZ2h0OiA0NHB4O1xuICBwYWRkaW5nOiAxMHB4IDE0cHg7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXNpemUtdG91Y2guYnV0dG9uLWljb24tb25seSB7XG4gIHdpZHRoOiA0NHB4O1xuICBtaW4td2lkdGg6IDQ0cHg7XG4gIHBhZGRpbmc6IDA7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXNpemUtdG91Y2gtbGcge1xuICBtaW4taGVpZ2h0OiA0OHB4O1xuICAvLyB2ZXJ0aWNhbCBwYWRkaW5nIGtlcHQgYmVsb3cgYmlnJ3MgKDEycHgpIOKAlCBhdCAxMnB4IHRoZSAyNHB4IGxpbmUtaGVpZ2h0ICtcbiAgLy8gMXB4IGJvcmRlciB0b3AvYm90dG9tIGFscmVhZHkgbmVlZHMgNTBweCwgc28gbWluLWhlaWdodDo0OCB3b3VsZCBuZXZlclxuICAvLyBhY3R1YWxseSBhcHBseS4gMTBweCBrZWVwcyB0aGUgY29udGVudC1kcml2ZW4gaGVpZ2h0IHVuZGVyIDQ4LiBbMjAyNi0wNy0wMV1cbiAgcGFkZGluZzogMTBweCAxNnB4O1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zaXplLXRvdWNoLWxnLmJ1dHRvbi1pY29uLW9ubHkge1xuICB3aWR0aDogNDhweDtcbiAgbWluLXdpZHRoOiA0OHB4O1xuICBwYWRkaW5nOiAwO1xufVxuLnFkbmFwcm8tYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5xZG5hcHJvLWJ1dHRvbjpmb2N1cy12aXNpYmxlLCAucWRuYXByby1idXR0b24uZm9yY2UtZm9jdXMge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYnRuLWZvY3VzLXJpbmcpO1xuICBvdXRsaW5lLW9mZnNldDogdmFyKC0tYnRuLWZvY3VzLW9mZnNldCwgLTJweCk7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDRweCB2YXIoLS1idG4tZm9jdXMtZ2xvdyk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLWRpc2FibGVkOmZvY3VzLXZpc2libGUsIC5xZG5hcHJvLWJ1dHRvbi5idXR0b24tZGlzYWJsZWQuZm9yY2UtZm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1wcmltYXJ5LXB1cnBsZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgLS1idG4tZm9jdXMtcmluZzogdmFyKC0tYy1wdXJwbGUtNzAwKTtcbiAgLS1idG4tZm9jdXMtZ2xvdzogcmdiYSg3MCwgODIsIDI0MywgMC40MCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXByaW1hcnktcHVycGxlOmZvY3VzLXZpc2libGUsIC5xZG5hcHJvLWJ1dHRvbi5idXR0b24tcHJpbWFyeS1wdXJwbGUuZm9yY2UtZm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tYnRuLWZvY3VzLXJpbmcpLCAwIDAgMCA2cHggdmFyKC0tYnRuLWZvY3VzLWdsb3cpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1wcmltYXJ5LXB1cnBsZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS02MDApO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1wcmltYXJ5LXB1cnBsZTphY3RpdmU6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNzAwKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tcHJpbWFyeS1vcmFuZ2Uge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdhcm4teWVsbG93LTYwMCk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgLS1idG4tZm9jdXMtcmluZzogdmFyKC0tYy10YWctd2FybmluZy10ZXh0KTtcbiAgLS1idG4tZm9jdXMtZ2xvdzogcmdiYSgyMzksIDE0MiwgMiwgMC40NSk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXByaW1hcnktb3JhbmdlOmZvY3VzLXZpc2libGUsIC5xZG5hcHJvLWJ1dHRvbi5idXR0b24tcHJpbWFyeS1vcmFuZ2UuZm9yY2UtZm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tYnRuLWZvY3VzLXJpbmcpLCAwIDAgMCA2cHggdmFyKC0tYnRuLWZvY3VzLWdsb3cpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1wcmltYXJ5LW9yYW5nZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC15ZWxsb3ctdGV4dCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXByaW1hcnktb3JhbmdlOmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXRhZy13YXJuaW5nLXRleHQpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zdWJ0bGUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zdWJ0bGU6aG92ZXI6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc3VidGxlOmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbn1cbi8vIHN1YnRsZS1tdXRlZCDigJQgdGhlIGRlLWVtcGhhc2lzZWQgdHdpbiBvZiBgc3VidGxlYDogc2FtZSB0cmFuc3BhcmVudCBzdXJmYWNlIGFuZFxuLy8gc2FtZSBob3ZlciwgYnV0IG11dGVkIGdyZXkgdGV4dC4gRm9yIGEgcGFpciBvZiBmbGF0IHRleHQgYWN0aW9ucyB3aGVyZSBvbmUgaXNcbi8vIGNsZWFybHkgc2Vjb25kYXJ5IGFuZCBhIHNlY29uZCBkYXJrIGxhYmVsIHdvdWxkIHJlYWQgYXMgdHdvIGVxdWFsIGNob2ljZXNcbi8vICh0aGUgbm90aWZpY2F0aW9uIGFjdGlvbiBmb290ZXI6IFwiTWFya2VlciBhbHMgZ2VsZXplblwiIG5leHQgdG8gXCJCZWtpamsgcmFwcG9ydFwiKS5cbi8vIEFkZGVkIDA0LjA4LjIwMjYgcmF0aGVyIHRoYW4gdGludGluZyBhIGBzdWJ0bGVgIGJ1dHRvbiBmcm9tIHRoZSBjb25zdW1lcidzIFNDU1MuXG4ucWRuYXByby1idXR0b24uYnV0dG9uLXN1YnRsZS1tdXRlZCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmE2ZTlhKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc3VidGxlLW11dGVkOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktOTUwKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc3VidGxlLW11dGVkOmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zdWJ0bGUtcHVycGxlLWJnIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zdWJ0bGUtcHVycGxlLWJnOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0KTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc3VidGxlLXB1cnBsZS1iZzphY3RpdmU6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWRlYmFyLWljb24pO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApO1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMzAwKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5OmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNDAwKTtcbn1cbi8vIFBlcnNpc3RlbnQgcHJlc3NlZC9zZWxlY3RlZCBzdGF0ZSAodGhlIGBhY3RpdmVgIGF0dHJpYnV0ZSkg4oCUIGZvciBhXG4vLyBzZWdtZW50ZWQgdG9nZ2xlIG92ZXIgYHNlY29uZGFyeWAsIGUuZy4gdGhlIExhYmVsLXRhYiBhbGlnbiBidXR0b25zLlxuLy8gUmV1c2VzIHRoZSBzZWNvbmRhcnktcHVycGxlIHRva2VucyBzbyB0aGUgXCJzZWxlY3RlZFwiIGxvb2sgc3RheXMgb24tYnJhbmRcbi8vIGluc3RlYWQgb2YgaW52ZW50aW5nIGEgbmV3IGNvbG91ci4gWzIwMjYtMDctMTZdXG4ucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS5idXR0b24tYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI2U2ZTlmZjtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS5idXR0b24tYWN0aXZlOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0KTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5LmJ1dHRvbi1hY3RpdmU6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc2lkZWJhci1pY29uKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5LW91dGxpbmUge1xuICBiYWNrZ3JvdW5kOiAjZTZlOWZmO1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnktb3V0bGluZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS1vdXRsaW5lOmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZGViYXItaWNvbik7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS1wdXJwbGUge1xuICBiYWNrZ3JvdW5kOiAjZTZlOWZmO1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5LXB1cnBsZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS1wdXJwbGU6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc2lkZWJhci1pY29uKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5LXdoaXRlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS13aGl0ZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS13aGl0ZTphY3RpdmU6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWRlYmFyLWljb24pO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi13YXJuaW5nLXJlZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7XG4gIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXdhcm5pbmctcmVkOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0zMDApO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi13YXJuaW5nLXJlZDphY3RpdmU6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTQwMCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXdhcm5pbmctcmVkLXdoaXRlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0KTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24td2FybmluZy1yZWQtd2hpdGU6aG92ZXI6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtcmVkLXNvZnQpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi13YXJuaW5nLXJlZC13aGl0ZTphY3RpdmU6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtcmVkLWJnKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24td2FybmluZy1yZWQtdGludCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLXJlZC1iZyk7XG4gIGNvbG9yOiB2YXIoLS1jLXRhZy1jcml0aWNhbC10ZXh0KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWNoaXAtcmVkLTItYmcpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi13YXJuaW5nLXJlZC10aW50OmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1yZWQtaG92ZXIpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtdGFnLWNyaXRpY2FsLXRleHQpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi13YXJuaW5nLXJlZC10aW50OmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAtcmVkLWhvdmVyKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24td2FybmluZy15ZWxsb3ctdGludCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtd2FybmluZy1icmlnaHQtYmcpO1xuICBjb2xvcjogdmFyKC0tYy13YXJuaW5nLWJyaWdodC10ZXh0KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LWJvcmRlcik7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXdhcm5pbmcteWVsbG93LXRpbnQ6aG92ZXI6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLXllbGxvdy0yLWJnKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXdhcm4teWVsbG93LTUwMCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXdhcm5pbmcteWVsbG93LXRpbnQ6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC15ZWxsb3ctMi1iZyk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXdhcm5pbmctcmVkLXN1YnRsZSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXdhcm5pbmctcmVkLXN1YnRsZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAtcmVkLWhvdmVyKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24td2FybmluZy1yZWQtc3VidGxlOmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAtcmVkLWhvdmVyKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24td2FybmluZy15ZWxsb3ctc3VidGxlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktOTUwKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24td2FybmluZy15ZWxsb3ctc3VidGxlOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC15ZWxsb3ctMi1iZyk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXdhcm5pbmcteWVsbG93LXN1YnRsZTphY3RpdmU6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLXllbGxvdy0yLWJnKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tZ2xhc3Mge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMwKTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tZ2xhc3M6aG92ZXI6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMwKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDApO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1nbGFzczphY3RpdmU6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM4KTtcbn1cbi8qIG9uLXB1cnBsZSAvIG9uLXB1cnBsZS1zb2xpZCDigJQgZm9yIGEgcHVycGxlL2Rhcmsgc3VyZmFjZSAoZS5nLiBxZG5hcHJvLWJvdHRvbS1zaGVldCdzXG4gICBjb25maXJtIHZhcmlhbnQpLCB3aGVyZSB0aGUgcGxhaW4gYnV0dG9uLXN1YnRsZSdzIGhhcmRjb2RlZCBkYXJrIHRleHQgd291bGQgYmVcbiAgIGludmlzaWJsZSBhbmQgcHJpbWFyeS1wdXJwbGUgaXRzZWxmIHdvdWxkIGJsZW5kIGludG8gYSBwdXJwbGUgYmFja2dyb3VuZC5cbiAgIFtLaW0gMTQuMDcuMjAyNl0gKi9cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tb24tcHVycGxlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tb24tcHVycGxlOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLW9uLXB1cnBsZTphY3RpdmU6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tb24tcHVycGxlLXNvbGlkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNzAwKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1vbi1wdXJwbGUtc29saWQ6aG92ZXI6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNjAwKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tb24tcHVycGxlLXNvbGlkOmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS03MDApO1xufVxuLyogb24tZGFuZ2VyIC8gb24tZGFuZ2VyLXNvbGlkIOKAlCB0aGUgcGFpciBmb3IgdGhlIFJFRCBkaWFsb2cgc3VyZmFjZVxuICAgKHFkbmFwcm8tYm90dG9tLXNoZWV0IC8gLXBvcG92ZXIgd2l0aCB0b25lPVwiZGFuZ2VyXCIpLiBJdHMgb3duIHR5cGUgcmF0aGVyIHRoYW4gdGhlXG4gICBzaGVldCBvdmVycmlkaW5nIG9uLXB1cnBsZSdzIGNvbG91cnM6IHRoZSBidXR0b24ga2VlcHMgb3duaW5nIGl0cyBwYWxldHRlLCB3aGljaCBpc1xuICAgdGhlIHJ1bGUgdGhlIGRpYWxvZyB2YXJpYW50cyB3ZXJlIGJ1aWx0IG9uLlxuXG4gICBUaGUgc3VyZmFjZSBjYXJyaWVzIHdoaXRlIHRleHQsIHNvIHRoZSBTRUNPTkRBUlkgYnV0dG9uIGlzIHdoaXRlIG9uIHRyYW5zcGFyZW50LFxuICAgc2FtZSBhcyBvbi1wdXJwbGUuIFRoZSBTT0xJRCBvbmUgdGFrZXMgdGhlIGRpYWxvZydzIG93biBidXR0b24gY29sb3VyIGZyb20gdGhlXG4gICBkZXNpZ24gdG9rZW5zICgtLWMtZGlhbG9nLTx0b25lPi1idXR0b24pOiBLaW0ncyBleGFjdCBjb2xvdXIgc2V0IGZvciB0aGUgUHVsc2VcbiAgIHZlcmRpY3Qgc2hlZXRzLCAwMy4wOS4yMDI2LCBzaGFyZWQgYnkgZXZlcnkgdG9uZWQgZGlhbG9nIHNvIHRoZXkgcmVhZCBhcyBvbmUgZmFtaWx5LlxuICAgSG92ZXIvcHJlc3NlZCBkYXJrZW4gdGhhdCBPTkUgY29sb3VyIHdpdGggYSBmaWx0ZXIgaW5zdGVhZCBvZiBzdGVwcGluZyB0aHJvdWdoIGFcbiAgIHJhbXAgLSB0aGUgc2V0IGhhcyBleGFjdGx5IG9uZSBidXR0b24gY29sb3VyIHBlciB0b25lIGFuZCB3ZSBkbyBub3QgaW52ZW50IGFcbiAgIHNlY29uZC4gW0tpbSAxOC4wOC4yMDI2LCByZWNvbG91cmVkIDAzLjA5LjIwMjZdICovXG4ucWRuYXByby1idXR0b24uYnV0dG9uLW9uLWRhbmdlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLW9uLWRhbmdlcjpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1vbi1kYW5nZXI6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNik7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLW9uLWRhbmdlci1zb2xpZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLWRhbmdlci1idXR0b24pO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLW9uLWRhbmdlci1zb2xpZDpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy1kYW5nZXItYnV0dG9uKTtcbiAgZmlsdGVyOiBicmlnaHRuZXNzKDAuOTIpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1vbi1kYW5nZXItc29saWQ6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLWRhbmdlci1idXR0b24pO1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMC44NCk7XG59XG4vKiBvbi1zdWNjZXNzIC8gb24tc3VjY2Vzcy1zb2xpZCDigJQgdGhlIHNhbWUgcGFpciBmb3IgdGhlIEdSRUVOIGRpYWxvZyBzdXJmYWNlXG4gICAodG9uZT1cInN1Y2Nlc3NcIikuIFN0cnVjdHVyYWxseSBpZGVudGljYWwgdG8gdGhlIGRhbmdlciBwYWlyLCBhbmQgZGVsaWJlcmF0ZWx5IHNvOiB0aGVcbiAgIHR3byBkaWFsb2dzIGRpZmZlciBpbiBodWUgYW5kIGluIG5vdGhpbmcgZWxzZS4gW0tpbSAxOC4wOC4yMDI2XSAqL1xuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1vbi1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tb24tc3VjY2Vzczpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1vbi1zdWNjZXNzOmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1vbi1zdWNjZXNzLXNvbGlkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctc3VjY2Vzcy1idXR0b24pO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLW9uLXN1Y2Nlc3Mtc29saWQ6aG92ZXI6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctc3VjY2Vzcy1idXR0b24pO1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMC45Mik7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLW9uLXN1Y2Nlc3Mtc29saWQ6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLXN1Y2Nlc3MtYnV0dG9uKTtcbiAgZmlsdGVyOiBicmlnaHRuZXNzKDAuODQpO1xufVxuLyogb24td2FybmluZyAvIG9uLXdhcm5pbmctc29saWQg4oCUIHRoZSB0aGlyZCBwYWlyLCBmb3IgdGhlIE9SQU5HRSBkaWFsb2cgc3VyZmFjZVxuICAgKHRvbmU9XCJ3YXJuaW5nXCI6IHRoZSBQdWxzZSBcIkJlZXRqZSBnb2VkLCBiZWV0amUgZm91dFwiIHZlcmRpY3QpLiBTYW1lIHN0cnVjdHVyZSBhcyB0aGVcbiAgIG90aGVyIHR3byBvbiBwdXJwb3NlLiBbS2ltIDAzLjA5LjIwMjZdICovXG4ucWRuYXByby1idXR0b24uYnV0dG9uLW9uLXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1vbi13YXJuaW5nOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNik7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLW9uLXdhcm5pbmc6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNik7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLW9uLXdhcm5pbmctc29saWQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy13YXJuaW5nLWJ1dHRvbik7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tb24td2FybmluZy1zb2xpZDpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy13YXJuaW5nLWJ1dHRvbik7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygwLjkyKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tb24td2FybmluZy1zb2xpZDphY3RpdmU6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctd2FybmluZy1idXR0b24pO1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMC44NCk7XG59XG4vLyB0aGVtZSAvIHRoZW1lLXNlY29uZGFyeSAvIHRoZW1lLXN1YnRsZSDigJQgUFdBLU9OTFksIGZvciB0aGUgZmxvdyBuYXZpZ2F0aW9uIG9uIGFcbi8vIHRoZW1lZCBxdWVzdGlvbiBzY3JlZW4gKFZvbGdlbmRlLCBWb3JpZ2UsIHRoZSBiYWNrIGFycm93KS4gUm91dGUgdGhlaXIgc3VyZmFjZVxuLy8gdGhyb3VnaCB0aGUgdGFza2xpc3QtdGhlbWUgZWRpdG9yIHZhcnMgc28gYSB0aGVtZSBjYW4gcmVjb2xvdXIgdGhlbTsgdGhlIFFETkFcbi8vIHB1cnBsZSB2YWx1ZXMgYXJlIHRoZSBmYWxsYmFja3MsIHNvIGFuIHVudGhlbWVkIHNjcmVlbiBsb29rcyB1bmNoYW5nZWQuXG4vL1xuLy8gQURESVRJVkUgT04gUFVSUE9TRTogYHNlY29uZGFyeWAgYW5kIGBzdWJ0bGVgIGtlZXAgdGhlaXIgZml4ZWQgZ3JleXMsIGJlY2F1c2UgdGhlXG4vLyB3aG9sZSBiYWNrb2ZmaWNlIHVzZXMgdGhlbSBhbmQgbmV2ZXIgaGFzIGEgdGhlbWUuIERvIG5vdCBmb2xkIHRoZXNlIGludG8gdGhvc2UuXG4vL1xuLy8gVGhlIHRpbnQgbGFkZGVyICgxMiUgaWRsZSAvIDIwJSBob3ZlciAvIDI4JSBwcmVzc2VkIG9mIHRoZSB0aGVtZSBjb2xvdXIgbWl4ZWQgaW50b1xuLy8gd2hpdGUpIGlzIHRoZSBTQU1FIGxhZGRlciBhcyBxZG5hcHJvLWFuc3dlci1idXR0b24sIHNvIHRoZSBuYXZpZ2F0aW9uIGFuZCB0aGUgYW5zd2VyXG4vLyBvcHRpb25zIHJlYWQgYXMgb25lIHNldCBpbnN0ZWFkIG9mIHR3byB1bnJlbGF0ZWQgYnV0dG9uIGZhbWlsaWVzLlxuLy9cbi8vIC0tdGhlbWUtbmF2LWNvbG9yIC8gLS10aGVtZS1uYXYtdGV4dC1jb2xvciBhcmUgdGhlIGRlZGljYXRlZCBuYXZpZ2F0aW9uIHNsb3RzLlxuLy8gVW5zZXQgPSBkZXJpdmVkIGZyb20gLS10aGVtZS1idG4tY29sb3IsIHNvIGEgdGhlbWUgdGhhdCBuZXZlciBzZXRzIHRoZW0ga2VlcHNcbi8vIHdvcmtpbmcgZXhhY3RseSBhcyBiZWZvcmUuIFRoZSBob3Zlci9wcmVzc2VkIHN0ZXBzIGRhcmtlbiB3aGF0ZXZlciB0aGUgcmVzb2x2ZWRcbi8vIHN1cmZhY2UgaXMgKHZpYSAtLWJ0bi10aGVtZS1zdXJmYWNlKSwgc28gdGhleSBzdGF5IGNvcnJlY3Qgd2hldGhlciB0aGUgc3VyZmFjZSBjYW1lXG4vLyBmcm9tIHRoZSBuYXYgc2xvdCBvciBmcm9tIHRoZSBkZXJpdmVkIHRpbnQuXG4vL1xuLy8gTkI6IGRlbGliZXJhdGVseSBkb2VzIE5PVCByZWFkIC0tdGhlbWUtYnRuLWhvdmVyLWNvbG9yLiBUaGF0IHZhciBpcyBmaWxsZWQgd2l0aCBhXG4vLyBoYXJkY29kZWQgIzNhNDI5MCBieSB0aGUgdGhlbWUgY29udHJvbGxlciB3aGVuIG5vIGhvdmVyIGlzIGNob3Nlbiwgd2hpY2ggZHJhZ3MgYVxuLy8gbm9uLXB1cnBsZSB0aGVtZSdzIGJ1dHRvbiBiYWNrIHRvIFFETkEgcHVycGxlIG9uIHRhcC4gRGVyaXZpbmcgdGhlIGhvdmVyIGZyb20gdGhlXG4vLyBidXR0b24ncyBvd24gY29sb3VyIGF2b2lkcyB0aGF0LiBbMDUuMDguMjAyNl1cbi8vXG4vLyBObyBbZGF0YS10aGVtZT1kYXJrXSBibG9jayBoZXJlOiB0aGUgUFdBIG5ldmVyIHNldHMgZGF0YS10aGVtZSAvIGRhdGEtdGhlbWUtZGFya1xuLy8gKGNoZWNrZWQgMDUuMDguMjAyNiwgbm8gSlMgb3IgdGVtcGxhdGUgd3JpdGVzIGVpdGhlciBhdHRyaWJ1dGUpLCBzbyBhIGRhcmsgYmxvY2tcbi8vIHdvdWxkIGJlIGRlYWQgY29kZSBBTkQgd291bGQgZmlnaHQgdGhlIHRoZW1lJ3Mgb3duIGJhY2tncm91bmQgY2hvaWNlLlxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi10aGVtZSB7XG4gIC8vIEhvdmVyIGlzIGl0cyBvd24gc2xvdCBhZ2FpbiBzaW5jZSAwNi4wOC4yMDI2OiBhIHN1cnZleSBjYW4gYmUgc2VudCBhcyBhIGJyb3dzZXIgTElOSywgYW5kXG4gIC8vIHRoZXJlIGEgbW91c2UgZXhpc3RzLCBzbyBcImhvdmVyIGlzIGlycmVsZXZhbnQgb24gdG91Y2hcIiBvbmx5IGNvdmVyZWQgaGFsZiB0aGUgcHJvZHVjdC5cbiAgLy8gVW5zZXQgPSB0aGUgZGVyaXZlZCAxMyUtZGFya2VyIHN0ZXAsIGkuZS4gdW5jaGFuZ2VkIGZvciBldmVyeSBleGlzdGluZyB0aGVtZS5cbiAgLy9cbiAgLy8gUFJFU1NFRCBkZXJpdmVzIGZyb20gdGhlIFJFU09MVkVEIGhvdmVyLCBub3QgZnJvbSB0aGUgaWRsZSBjb2xvdXIsIHNvIGlkbGUgLT4gaG92ZXIgLT5cbiAgLy8gcHJlc3NlZCBzdGF5cyBvcmRlcmVkIHdoaWNoZXZlciBvZiB0aGUgdHdvIHRoZSBhZG1pbiBzZXQuIFdpdGggbm90aGluZyBzZXQgdGhlIHJlc3VsdCBpc1xuICAvLyB0aGUgc2FtZSBhcyBiZWZvcmUgKDkwJSBvZiA4NyUgPSA3OCUsIHRoZSBvbGQgcHJlc3NlZCB2YWx1ZSkuXG4gIC0tYnRuLXRoZW1lLWhvdmVyOiB2YXIoLS10aGVtZS1idG4taG92ZXItY29sb3IsIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpIDg3JSwgIzAwMCkpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpO1xuICBjb2xvcjogdmFyKC0tdGhlbWUtYnRuLXRleHQtY29sb3IsICNmZmZmZmYpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi10aGVtZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tdGhlbWUtaG92ZXIpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi10aGVtZTphY3RpdmU6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJ0bi10aGVtZS1ob3ZlcikgOTAlLCAjMDAwKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tdGhlbWUtc2Vjb25kYXJ5IHtcbiAgLS1idG4tdGhlbWUtc3VyZmFjZTogdmFyKC0tdGhlbWUtbmF2LWNvbG9yLCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKSAxMiUsICNmZmYpKTtcbiAgLy8gU2FtZSBjb250cmFjdCBhcyBhYm92ZTogZXhwbGljaXQgaG92ZXIgd2lucywgZWxzZSBkYXJrZW4gdGhlIHJlc29sdmVkIHN1cmZhY2UuIFVuc2V0XG4gIC8vIHJlcHJvZHVjZXMgdGhlIG9sZCBwYWlyIGV4YWN0bHkgKDkyJSwgdGhlbiA5MiUgb2YgdGhhdCA9IDg1JSkuXG4gIC0tYnRuLXRoZW1lLXNlYy1ob3ZlcjogdmFyKC0tdGhlbWUtbmF2LWhvdmVyLWNvbG9yLCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYnRuLXRoZW1lLXN1cmZhY2UpIDkyJSwgIzAwMCkpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tdGhlbWUtc3VyZmFjZSk7XG4gIGNvbG9yOiB2YXIoLS10aGVtZS1uYXYtdGV4dC1jb2xvciwgdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKSk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXRoZW1lLXNlY29uZGFyeTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tdGhlbWUtc2VjLWhvdmVyKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tdGhlbWUtc2Vjb25kYXJ5OmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYnRuLXRoZW1lLXNlYy1ob3ZlcikgOTIlLCAjMDAwKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tdGhlbWUtc3VidGxlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIC8vIC0tdGhlbWUtbmF2LWFycm93LWNvbG9yLCBOT1QgLS10aGVtZS1uYXYtdGV4dC1jb2xvcjogdGhlIGFycm93IGlzIHRyYW5zcGFyZW50IHNvIGl0IGlzXG4gIC8vIGp1ZGdlZCBhZ2FpbnN0IHRoZSBzY3JlZW4gYmFja2dyb3VuZCwgd2hpbGUgdGhlIFZvcmlnZSBsYWJlbCBpcyBqdWRnZWQgYWdhaW5zdCBpdHMgb3duXG4gIC8vIHBpbGwuIE9uZSBlZGl0b3IgZmllbGQgc3RpbGwgZHJpdmVzIGJvdGg7IG9ubHkgdGhlIGRlcml2ZWQgdmFsdWUgZGlmZmVycy4gWzA1LjA4LjIwMjZdXG4gIGNvbG9yOiB2YXIoLS10aGVtZS1uYXYtYXJyb3ctY29sb3IsIHZhcigtLXRoZW1lLW5hdi10ZXh0LWNvbG9yLCB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpKSk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXRoZW1lLXN1YnRsZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGhlbWUtbmF2LWNvbG9yLCB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpKSAxNCUsIHRyYW5zcGFyZW50KTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tdGhlbWUtc3VidGxlOmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGhlbWUtbmF2LWNvbG9yLCB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpKSAyMiUsIHRyYW5zcGFyZW50KTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tdGhlbWUtc3VidGxlLmJ1dHRvbi1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG5cbi8vIEZvcmNlLXN0YXRlIGhvb2sg4oCUIGxldHMgYSBwcmV2aWV3IFNIT1cgaG92ZXIvcHJlc3NlZCB3aXRob3V0IGEgbW91c2UsIGFuZCBvbiB0b3VjaCB3aGVyZVxuLy8gaG92ZXIgY2Fubm90IGhhcHBlbiBhdCBhbGwuIFVzZWQgYnkgdGhlIHRhc2tsaXN0LXRoZW1lIGVkaXRvcidzIHBob25lIHByZXZpZXcgc28gYW4gYWRtaW5cbi8vIGNhbiBqdWRnZSB0aGUgaG92ZXIgY29sb3VycyB0aGV5IGp1c3QgcGlja2VkLlxuLy9cbi8vIEEgREFUQS1BVFRSSUJVVEUsIG5vdCBhIGNsYXNzLCBhbmQgdGhhdCBpcyBub3QgYSBzdHlsZSBwcmVmZXJlbmNlOiBxZG5hLWJ1dHRvbi5qcyBydW5zXG4vLyBgdGhpcy5jbGFzc05hbWUgPSBcIlwiYCBvbiBldmVyeSByZW5kZXIgYW5kIG9ubHkgcmVzdG9yZXMgdGhlIGNsYXNzZXMgdGhhdCB3ZXJlIHByZXNlbnQgYXRcbi8vIEZJUlNUIHJlbmRlciwgc28gYW55IGNsYXNzIHRvZ2dsZWQgbGF0ZXIgaXMgc2lsZW50bHkgd2lwZWQgb24gdGhlIG5leHQgYXR0cmlidXRlIGNoYW5nZS5cbi8vIFNhbWUgdHJhcCBhcyB0aGUgYGRhdGEtYmVhbWAgaG9vayBpbiB0aGUgUFdBJ3MgMDMtc3R5bGUuY3NzLlxuLy9cbi8vIFBsYWNlZCBhZnRlciB0aGUgcmVhbCA6aG92ZXIvOmFjdGl2ZSBydWxlcyBhbmQgY2FycnlpbmcgdGhlIHNhbWUgOm5vdCguYnV0dG9uLWRpc2FibGVkKSxcbi8vIHNvIGl0IG1hdGNoZXMgdGhlaXIgc3BlY2lmaWNpdHkgYW5kIHdpbnMgb24gb3JkZXIuXG4ucWRuYXByby1idXR0b24uYnV0dG9uLXRoZW1lW2RhdGEtZm9yY2Utc3RhdGU9XCJob3ZlclwiXTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tdGhlbWUtaG92ZXIpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi10aGVtZVtkYXRhLWZvcmNlLXN0YXRlPVwicHJlc3NlZFwiXTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYnRuLXRoZW1lLWhvdmVyKSA5MCUsICMwMDApO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi10aGVtZS1zZWNvbmRhcnlbZGF0YS1mb3JjZS1zdGF0ZT1cImhvdmVyXCJdOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ0bi10aGVtZS1zZWMtaG92ZXIpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi10aGVtZS1zZWNvbmRhcnlbZGF0YS1mb3JjZS1zdGF0ZT1cInByZXNzZWRcIl06bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJ0bi10aGVtZS1zZWMtaG92ZXIpIDkyJSwgIzAwMCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXRoZW1lLXN1YnRsZVtkYXRhLWZvcmNlLXN0YXRlPVwiaG92ZXJcIl06bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRoZW1lLW5hdi1jb2xvciwgdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKSkgMTQlLCB0cmFuc3BhcmVudCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXRoZW1lLXN1YnRsZVtkYXRhLWZvcmNlLXN0YXRlPVwicHJlc3NlZFwiXTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGhlbWUtbmF2LWNvbG9yLCB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpKSAyMiUsIHRyYW5zcGFyZW50KTtcbn1cblxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCkgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc3VidGxlLmJ1dHRvbi1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXN1YnRsZS1wdXJwbGUtYmcuYnV0dG9uLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZC1wcCkgIWltcG9ydGFudDtcbn1cblxuW2RhdGEtYmctY29udGV4dD1wdXJwbGVdIC5xZG5hcHJvLWJ1dHRvbi5idXR0b24tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCkgIWltcG9ydGFudDtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1wcmltYXJ5LXB1cnBsZSB7XG4gIGJhY2tncm91bmQ6ICMzODQyYzI7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1wcmltYXJ5LXB1cnBsZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiAjMmEzMTkyO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1wcmltYXJ5LW9yYW5nZSB7XG4gIGJhY2tncm91bmQ6ICNlZjhlMDI7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1wcmltYXJ5LW9yYW5nZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiAjZjJhNTM1O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zdWJ0bGUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICNlMWUzZTY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1idXR0b24uYnV0dG9uLXN1YnRsZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiAjNTY1YjY2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zdWJ0bGUtcHVycGxlLWJnIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZjBmMWYyO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zdWJ0bGUtcHVycGxlLWJnOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6ICM1NjViNjY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQ6ICMyZTMwMzY7XG4gIGNvbG9yOiAjZTFlM2U2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnk6aG92ZXI6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogIzQwNDQ0ZDtcbn1cbi8vIFNhbWUgdGludCBwYWlyIGFzIHNlY29uZGFyeS1wdXJwbGUgYmVsb3cg4oCUIHRoZSBhY3RpdmUgc3RhdGUgcmV1c2VzIHRob3NlXG4vLyB0b2tlbnMgKHNlZSB0aGUgbGlnaHQgcnVsZXMpLCBzbyBrZWVwIHRoZSB0d28gaW4gc3luYy4gWzIxLjA3LjIwMjZdXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS5idXR0b24tYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogIzNhMzU1NTtcbiAgY29sb3I6ICNhNWFjZmY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS5idXR0b24tYWN0aXZlOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6ICM0YzQ3Njc7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS1vdXRsaW5lIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZjBmMWYyO1xuICBib3JkZXItY29sb3I6ICM1NjViNjY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS1vdXRsaW5lOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6ICM0MDQ0NGQ7XG4gIGJvcmRlci1jb2xvcjogIzY2NmRhZTtcbn1cbi8vIEtlZXBzIGl0cyBwdXJwbGUgaWRlbnRpdHkgb24gZGFyayDigJQgc2FtZSB0aW50IHBhaXIgYXMgdGhlIHB1cnBsZSB0aWxlXG4vLyB0aW50cyBpbiBncmlkLXRpbGUvbGlzdC1yb3cgKCMzYTM1NTUgYmcgLyAjYTVhY2ZmIGZnKS4gWzIxLjA3LjIwMjZdXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS1wdXJwbGUge1xuICBiYWNrZ3JvdW5kOiAjM2EzNTU1O1xuICBjb2xvcjogI2E1YWNmZjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5LXB1cnBsZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiAjNGM0NzY3O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnktd2hpdGUge1xuICBiYWNrZ3JvdW5kOiAjMmUzMDM2O1xuICBjb2xvcjogI2UxZTNlNjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5LXdoaXRlOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6ICM0MDQ0NGQ7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1idXR0b24uYnV0dG9uLXdhcm5pbmctcmVkLXdoaXRlIHtcbiAgYmFja2dyb3VuZDogIzJlMzAzNjtcbiAgY29sb3I6ICNlYzg1ODU7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1idXR0b24uYnV0dG9uLXdhcm5pbmctcmVkLXdoaXRlOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6ICM0MDQ0NGQ7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1idXR0b24uYnV0dG9uLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZDogIzQwNDQ0ZCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzZiNzI4MCAhaW1wb3J0YW50O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zdWJ0bGUuYnV0dG9uLWRpc2FibGVkLCBbZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1idXR0b24uYnV0dG9uLXN1YnRsZS1wdXJwbGUtYmcuYnV0dG9uLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM2YjcyODAgIWltcG9ydGFudDtcbn1cbi8vIFBXQS1vbmx5OiBwaWxsIHNoYXBlIG1vZGlmaWVyLlxuLy8gVXNlZCBmb3IgbmF2aWdhdGlvbiBhY3Rpb25zIGluIHRoZSBmaWVsZC13b3JrZXIgYXBwIChlLmcuIFwiVm9sZ2VuZGUgLyBOZXh0XCIpLlxuLy8gTm90IHVzZWQgYW55d2hlcmUgaW4gdGhlIGJhY2tvZmZpY2UuXG4ucWRuYXByby1idXR0b24uYnV0dG9uLXBpbGwge1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1waWxsLmJ1dHRvbi1pY29uLW9ubHkge1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXBpbGwuYnV0dG9uLXNpemUtc21hbGwge1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXBpbGwuYnV0dG9uLXNpemUtdG91Y2gge1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWJ1dHRvbjpmb2N1cy12aXNpYmxlLCBbZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1idXR0b24uZm9yY2UtZm9jdXMge1xuICBvdXRsaW5lLWNvbG9yOiAjYTVhY2ZmO1xuICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSg3MCwgODIsIDI0MywgMC40KTtcbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUuIENvbXBpbGVkIGludG8gc3R5bGUtdjEuY3NzIHZpYVxuLy8gYGd1bHAgc2Fzcy12MWAgKGJhY2tvZmZpY2UyL3Njc3MvY29tcG9uZW50cy9jb21wb25lbnRzLnNjc3MgQHVzZSdzIHRoaXNcbi8vIGZpbGUpLiBFZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2sg4oCUIG5ldmVyIGhhbmQtZWRpdCB0aGUgY29tcGlsZWRcbi8vIENTUy4gRkxBVCBzZWxlY3RvcnMgb24gcHVycG9zZSAobm8gU0NTUyBuZXN0aW5nKSwgbWF0Y2hpbmcgdGhlIHNpYmxpbmdcbi8vIHYyIGNvbXBvbmVudCBmaWxlcyAoX3BpY2tlci1yb3cuc2NzcywgX3Rhc2tsaXN0LWNhcmQuc2NzcykuXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1jYWxlbmRhci1zZXJ2aWNlLWJ1dHRvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgRnVsbC13aWR0aCB0aWxlLXN0eWxlIHJvdyBidXR0b24gZm9yIHRoZSBcIktpZXMgamUgYWdlbmRhXCIgY2FsZW5kYXJcbi8vICBzdWJzY3JpcHRpb24gcGlja2VyIChNaWpuIHBsYW5uaW5nID4gQWdlbmRhIGtvcHBlbGVuIG1vZGFsKS4gSG91c2Vcbi8vICBzdHlsZSArIG5ldXRyYWwgaWNvbiBvbmx5IOKAlCBubyBvZmZpY2lhbCBHb29nbGUvT3V0bG9vay9BcHBsZSBsb2dvc1xuLy8gIChLaW0sIDIwLjA3LjIwMjYpLiBUaGUgb25seSBwZXItc2VydmljZSBkaWZmZXJlbmNlIGlzIHRoZSBpY29uLXRpbGUnc1xuLy8gIGFjY2VudCBjb2xvdXI7IHRoZSBnbHlwaCBpdHNlbGYgKGNhbGVuZGFyLXBsdXMtb3V0bGluZSkgaXMgaWRlbnRpY2FsXG4vLyAgZm9yIGFsbCB0aHJlZSwgc28gbm90aGluZyBoZXJlIHJlYWRzIGFzIGEgYnJhbmQgbWFyay5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5xZG5hcHJvLWNhbGVuZGFyLXNlcnZpY2UtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5xZG5hcHJvLWNhbGVuZGFyLXNlcnZpY2UtYnV0dG9uICosXG5xZG5hcHJvLWNhbGVuZGFyLXNlcnZpY2UtYnV0dG9uICo6OmJlZm9yZSxcbnFkbmFwcm8tY2FsZW5kYXItc2VydmljZS1idXR0b24gKjo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi8vIC0tLS0gVGhlIHJlYWwgPGJ1dHRvbj4g4oCUIG5hdGl2ZSBjbGljay9rZXlib2FyZCBzZW1hbnRpY3MgLS0tLVxuXG4ucWRuYXByby1jYWxlbmRhci1zZXJ2aWNlLWJ1dHRvbiAuY3NiLWlubmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWdyZXktMTAwKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTIpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE1MG1zIGVhc2UsIGJvcmRlci1jb2xvciAxNTBtcyBlYXNlO1xufVxuXG4ucWRuYXByby1jYWxlbmRhci1zZXJ2aWNlLWJ1dHRvbiAuY3NiLWljb24tdGlsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHdpZHRoOiAzMnB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTEpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNzYi10aW50LCB2YXIoLS1jLWdyZXktNTApKTtcbiAgICBjb2xvcjogdmFyKC0tY3NiLWFjY2VudCwgdmFyKC0tYy1ncmV5LTYwMCkpO1xufVxuXG4ucWRuYXByby1jYWxlbmRhci1zZXJ2aWNlLWJ1dHRvbiAuY3NiLWljb24tdGlsZSBxZG5hcHJvLWljb24ge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLnFkbmFwcm8tY2FsZW5kYXItc2VydmljZS1idXR0b24gLmNzYi1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMy41cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCwgIzBiMGIwZCk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4vLyAtLS0tIEhvdmVyIC8gcHJlc3NlZCAoaG91c2UgZ3JleS9wdXJwbGUgdGludCwgcGVyIHFkbmEtcHJvLWNvbnZlbnRpb25zKSAtLS0tXG5cbi5xZG5hcHJvLWNhbGVuZGFyLXNlcnZpY2UtYnV0dG9uIC5jc2ItaW5uZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLWhvdmVyLCAjZjBmMWYyKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtZ3JleS0yMDAsICNkMWQ1ZGIpO1xufVxuXG4ucWRuYXByby1jYWxlbmRhci1zZXJ2aWNlLWJ1dHRvbiAuY3NiLWlubmVyOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1hY3Rpb24tMDgsIHJnYmEoNzAsIDgyLCAyNDMsIDAuMDgpKTtcbn1cblxuLy8gLS0tLSBGb2N1cy12aXNpYmxlIChwdXJwbGUgcmluZywgaG91c2Ugc3RhbmRhcmQpIC0tLS1cblxuLnFkbmFwcm8tY2FsZW5kYXItc2VydmljZS1idXR0b24gLmNzYi1pbm5lcjpmb2N1cy12aXNpYmxlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKSwgMCAwIDAgNHB4IHZhcigtLWMtYWN0aW9uLTI1LCByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KSk7XG59XG5cbi8vIC0tLS0gUGVyLXNlcnZpY2UgYWNjZW50IChwbGFpbiBjb2xvdXIgYWNjZW50IOKAlCBub3QgYSBsb2dvKSAtLS0tXG5cbi5xZG5hcHJvLWNhbGVuZGFyLXNlcnZpY2UtYnV0dG9uLS1nb29nbGUgLmNzYi1pY29uLXRpbGUge1xuICAgIC0tY3NiLWFjY2VudDogIzQyODVmNDtcbiAgICAtLWNzYi10aW50OiByZ2JhKDY2LCAxMzMsIDI0NCwgMC4xMik7XG59XG5cbi5xZG5hcHJvLWNhbGVuZGFyLXNlcnZpY2UtYnV0dG9uLS1vdXRsb29rIC5jc2ItaWNvbi10aWxlIHtcbiAgICAtLWNzYi1hY2NlbnQ6ICMwMDcyYzY7XG4gICAgLS1jc2ItdGludDogcmdiYSgwLCAxMTQsIDE5OCwgMC4xMik7XG59XG5cbi5xZG5hcHJvLWNhbGVuZGFyLXNlcnZpY2UtYnV0dG9uLS1hcHBsZSAuY3NiLWljb24tdGlsZSB7XG4gICAgLS1jc2ItYWNjZW50OiAjMWMxYjI5O1xuICAgIC0tY3NiLXRpbnQ6IHJnYmEoMjgsIDI3LCA0MSwgMC4wOCk7XG59XG5cbi8vIC0tLS0gRGFyayBtb2RlIC0tLS1cblxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLWNhbGVuZGFyLXNlcnZpY2UtYnV0dG9uIC5jc2ItaW5uZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS04MDAsICMyZTMwMzYpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1ncmV5LTcwMCwgIzQwNDQ0ZCk7XG59XG5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1jYWxlbmRhci1zZXJ2aWNlLWJ1dHRvbiAuY3NiLWxhYmVsIHtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYyk7XG59XG5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1jYWxlbmRhci1zZXJ2aWNlLWJ1dHRvbiAuY3NiLWlubmVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNzAwLCAjNDA0NDRkKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtZ3JleS02MDAsICM1NjViNjYpO1xufVxuIiwiLy8gcWRuYXByby1jZWxlYnJhdGlvbiDigJQgY2FudmFzIG92ZXJsYXkgZm9yIGNlbGVicmF0aW9uIGVmZmVjdHMgKGNvbmZldHRpLCBiYWxsb29ucywgZXRjKS5cbi8vIEZMQVQgQ1NTLiBUaGUgaG9zdCBpcyBhbiBvdmVybGF5OiBpdCBmaWxscyBpdHMgcG9zaXRpb25lZCBwYXJlbnQgYW5kIG5ldmVyIGJsb2Nrc1xuLy8gY2xpY2tzLiBFZGl0IEhFUkUsIHRoZW4gYGd1bHAgc2Fzcy12MWAuXG4ucWRuYXByby1jZWxlYnJhdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLWNlbGVicmF0aW9uIC5xZG5hcHJvLWNlbGVicmF0aW9uLWNhbnZhcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuIiwiLy8gcWRuYXByby1wYXJ0eS1zY2VuZSDigJQgYnVpbGQteW91ci1wYXJ0eTogbGF5ZXJlZCBmaWd1cmUgU1ZHcyByZXZlYWxlZCBwZXIgY2xpY2ssXG4vLyB3aXRoIGFuIGVzY2FsYXRpbmcgZmlsbC9kcmFpbiBidXR0b24gYW5kIGEgY2VsZWJyYXRpb24gYnVyc3QgZnJvbSBiZWhpbmQuXG4vLyBGTEFUIENTUy4gRWRpdCBIRVJFLCB0aGVuIGBndWxwIHNhc3MtdjFgLlxuLnFkbmFwcm8tcGFydHktc2NlbmUgeyBkaXNwbGF5OiBibG9jazsgfVxuXG4ucWRuYXByby1wYXJ0eS1zY2VuZSAucHMtc2NlbmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAyMnB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoNzAlIDgwJSBhdCA1MCUgNjIlLCB2YXIoLS1jLXB1cnBsZS01MDApIDAlLCB2YXIoLS1jLXNpZGViYXItYmcpIDU1JSwgdmFyKC0tYy1wdXJwbGUtNjAwKSAxMDAlKTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNik7XG59XG4ucWRuYXByby1wYXJ0eS1zY2VuZSAucHMtbGF5ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb250YWluO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1kcmFnOiBub25lO1xufVxuLnFkbmFwcm8tcGFydHktc2NlbmUgLnBzLWd1ZXN0IHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIuMiUpIHNjYWxlKDAuOTc1KTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDkwJTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2UsIHRyYW5zZm9ybSAwLjU1cyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSk7XG59XG4ucWRuYXByby1wYXJ0eS1zY2VuZSAucHMtZ3Vlc3QuaXMtaGVyZSB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogbm9uZTsgfVxuXG4ucWRuYXByby1wYXJ0eS1zY2VuZSAucHMtY29udHJvbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEycHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi10b3A6IDE0cHg7XG59XG4ucWRuYXByby1wYXJ0eS1zY2VuZSAucHMtYnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIHBhZGRpbmc6IDE2cHggMzJweDtcbiAgbWluLXdpZHRoOiAyNDBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy10ZXh0LWhlYWRpbmcpO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07XG4gIGJveC1zaGFkb3c6IDAgMTBweCAyNnB4IC0xMHB4IHJnYmEoMCwgMCwgMCwgMC41KSwgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMgZWFzZTtcbn1cbi5xZG5hcHJvLXBhcnR5LXNjZW5lIC5wcy1idG46YWN0aXZlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjk3KTsgfVxuLnFkbmFwcm8tcGFydHktc2NlbmUgLnBzLWZpbGwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7IHRvcDogMDsgYm90dG9tOiAwO1xuICB3aWR0aDogMCU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tYy1wdXJwbGUtNTAwKSAwJSwgdmFyKC0tYy1wdXJwbGUtNDAwKSA1NSUsIHZhcigtLWMtd2Fybi15ZWxsb3ctNjAwKSAxMDAlKTtcbiAgei1pbmRleDogMDtcbn1cbi5xZG5hcHJvLXBhcnR5LXNjZW5lIC5wcy1sYmwgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDE7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuLnFkbmFwcm8tcGFydHktc2NlbmUgLnBzLXJlc2V0IHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KTtcbiAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgcGFkZGluZzogMTRweCAyMHB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCBib3JkZXItY29sb3IgMC4xNnM7XG59XG4ucWRuYXByby1wYXJ0eS1zY2VuZSAucHMtcmVzZXQuaXMtc2hvd24geyBvcGFjaXR5OiAxOyBwb2ludGVyLWV2ZW50czogYXV0bzsgfVxuLnFkbmFwcm8tcGFydHktc2NlbmUgLnBzLXJlc2V0OmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXdhcm4tcmVkLTQwMCk7IGNvbG9yOiB2YXIoLS1jLXdhcm4tcmVkLTMwMCk7IH1cbi5xZG5hcHJvLXBhcnR5LXNjZW5lIC5wcy1jb3VudCB7IHdpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZC1wcCk7IGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7IH1cbi5xZG5hcHJvLXBhcnR5LXNjZW5lIC5wcy1jb3VudCBiIHsgY29sb3I6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSk7IGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiIsIi8vIHFkbmFwcm8tc2NvcmUtY291bnQg4oCUIGFuaW1hdGVkIGNvdW50LXVwIHNjb3JlIGZvciB0aGUgZWluZHNjaGVybS5cbi8vIEZMQVQgQ1NTLiBFZGl0IEhFUkUsIHRoZW4gYGd1bHAgc2Fzcy12MWAuXG4ucWRuYXByby1zY29yZS1jb3VudCB7IGRpc3BsYXk6IGJsb2NrOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnFkbmFwcm8tc2NvcmUtY291bnQgLnNjLW51bSB7XG4gIGZvbnQtc2l6ZTogNTZweDtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5xZG5hcHJvLXNjb3JlLWNvdW50IC5zYy1udW0uaXMtcG9wIHsgYW5pbWF0aW9uOiBxZG5hcHJvLXNjb3JlLXBvcCAwLjQycyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSk7IH1cbi5xZG5hcHJvLXNjb3JlLWNvdW50IC5zYy1sYWJlbCB7XG4gIG1hcmdpbi10b3A6IDZweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43Mik7XG59XG5cbkBrZXlmcmFtZXMgcWRuYXByby1zY29yZS1wb3Age1xuICAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgNDUlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjE2KTsgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAucWRuYXByby1zY29yZS1jb3VudCAuc2MtbnVtLmlzLXBvcCB7IGFuaW1hdGlvbjogbm9uZTsgfVxufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvY2hlY2tib3gvX2NoZWNrYm94LWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi5xZG5hcHJvLWNoZWNrYm94IHtcbiAgLS1jYi1zaXplOiAxNnB4O1xuICAtLWNiLWJvcmRlcjogdmFyKC0tYy1ncmV5LTMwMCk7XG4gIC0tY2ItYmc6ICNmZmZmZmY7XG4gIC0tY2ItYmctaG92ZXI6IHZhcigtLWMtZ3JleS01MCk7XG4gIC0tY2ItZmlsbGVkLWJnOiB2YXIoLS1jLWFjdGlvbi01MDApO1xuICAtLWNiLWZpbGxlZC1ib3JkZXI6IHZhcigtLWMtYWN0aW9uLTUwMCk7XG4gIC0tY2ItbWFyazogI2ZmZmZmZjtcbiAgLS1jYi1mb2N1cy1yaW5nOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAtLWNiLWZvY3VzLWdsb3c6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjUpO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiB2YXIoLS1jYi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1jYi1zaXplKTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNiLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2ItYmcpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2Utb3V0LCBib3JkZXItY29sb3IgMTIwbXMgZWFzZS1vdXQ7XG59XG4ucWRuYXByby1jaGVja2JveCAuY2hlY2tib3gtbWFyayB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAxMnB4O1xuICBjb2xvcjogdmFyKC0tY2ItbWFyayk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjIwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuMzUsIDAuNjQsIDEpLCBvcGFjaXR5IDE0MG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8tY2hlY2tib3ggLmNoZWNrYm94LW1hcmsgc3ZnIHtcbiAgZmlsbDogY3VycmVudENvbG9yO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnFkbmFwcm8tY2hlY2tib3ggLmNoZWNrYm94LW1hcmstZGFzaCB7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYi1tYXJrKTtcbiAgYm9yZGVyLXJhZGl1czogMXB4O1xufVxuLnFkbmFwcm8tY2hlY2tib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ucWRuYXByby1jaGVja2JveC5jaGVja2JveC1jaGVja2VkIC5jaGVja2JveC1tYXJrLWNoZWNrIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgb3BhY2l0eTogMTtcbn1cbi5xZG5hcHJvLWNoZWNrYm94LmNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLmNoZWNrYm94LW1hcmstZGFzaCB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIG9wYWNpdHk6IDE7XG59XG4ucWRuYXByby1jaGVja2JveC5jaGVja2JveC1zaGFwZS1zcXVhcmUge1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4ucWRuYXByby1jaGVja2JveC5jaGVja2JveC1zaGFwZS1yb3VuZCB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuLy8gc2l6ZT1cInRvdWNoXCIg4oCUIDQ0cHgsIFBXQS1PTkxZIG1pbmltdW0gdGFwIHRhcmdldCAobWF0Y2hlcyBxZG5hcHJvLWljb24tYnRuJ3Mgb3duXG4vLyBzaXplPVwidG91Y2hcIikuIE5vdCB1c2VkIGluIHRoZSBiYWNrb2ZmaWNlLiBNYXJrL2Rhc2gvYm9yZGVyIHNjYWxlIHVwIHdpdGggdGhlIGJveFxuLy8gc28gdGhlIHNhbWUgcHJvcG9ydGlvbnMgaG9sZCBhdCBib3RoIHNpemVzLiBbMjAyNi0wNy0wMV1cbi5xZG5hcHJvLWNoZWNrYm94LmNoZWNrYm94LXNpemUtdG91Y2gge1xuICAtLWNiLXNpemU6IDQ0cHg7XG4gIGJvcmRlci13aWR0aDogMnB4O1xufVxuLnFkbmFwcm8tY2hlY2tib3guY2hlY2tib3gtc2l6ZS10b3VjaC5jaGVja2JveC1zaGFwZS1zcXVhcmUge1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG4ucWRuYXByby1jaGVja2JveC5jaGVja2JveC1zaXplLXRvdWNoIC5jaGVja2JveC1tYXJrIHtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbn1cbi5xZG5hcHJvLWNoZWNrYm94LmNoZWNrYm94LXNpemUtdG91Y2ggLmNoZWNrYm94LW1hcmstZGFzaCB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDVweDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuXG4vLyBzaXplPVwidG91Y2gtc21cIiDigJQgMjhweCwgUFdBLU9OTFkuIEZvciBhIGNoZWNrYm94IGluc2lkZSBhIGRlbnNlIGxpc3Qgcm93IChlLmcuIHRoZVxuLy8gXCJTZWxlY3RlZCB1bml0c1wiIG92ZXJsYXkncyB+NTBweCByb3dzKSwgd2hlcmUgdGhlIGZ1bGwgNDRweCBcInRvdWNoXCIgYm94IHRvb2sgdXAgODclXG4vLyBvZiB0aGUgcm93IGhlaWdodCBhbmQgZG9taW5hdGVkIGV2ZXJ5dGhpbmcgZWxzZSBpbiBpdC4gU3RpbGwgY2xlYXJseSBiaWdnZXIvZWFzaWVyXG4vLyB0byBoaXQgdGhhbiB0aGUgMTZweCBkZWZhdWx0LiBOb3QgdXNlZCBpbiB0aGUgYmFja29mZmljZS4gW0tpbSwgMjAyNi0wNy0wMV1cbi5xZG5hcHJvLWNoZWNrYm94LmNoZWNrYm94LXNpemUtdG91Y2gtc20ge1xuICAtLWNiLXNpemU6IDI4cHg7XG59XG4ucWRuYXByby1jaGVja2JveC5jaGVja2JveC1zaXplLXRvdWNoLXNtLmNoZWNrYm94LXNoYXBlLXNxdWFyZSB7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbi5xZG5hcHJvLWNoZWNrYm94LmNoZWNrYm94LXNpemUtdG91Y2gtc20gLmNoZWNrYm94LW1hcmsge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuLnFkbmFwcm8tY2hlY2tib3guY2hlY2tib3gtc2l6ZS10b3VjaC1zbSAuY2hlY2tib3gtbWFyay1kYXNoIHtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogM3B4O1xuICBib3JkZXItcmFkaXVzOiAxLjVweDtcbn1cbi5xZG5hcHJvLWNoZWNrYm94LmNoZWNrYm94LWNoZWNrZWQsIC5xZG5hcHJvLWNoZWNrYm94LmNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYi1maWxsZWQtYmcpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNiLWZpbGxlZC1ib3JkZXIpO1xufVxuLnFkbmFwcm8tY2hlY2tib3g6aG92ZXI6bm90KC5jaGVja2JveC1kaXNhYmxlZCk6bm90KC5jaGVja2JveC1jaGVja2VkKTpub3QoLmNoZWNrYm94LWluZGV0ZXJtaW5hdGUpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2ItYmctaG92ZXIpO1xufVxuLnFkbmFwcm8tY2hlY2tib3g6YWN0aXZlOm5vdCguY2hlY2tib3gtZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHJnYmEoMCwgMCwgMCwgMC4xNSksIHJnYmEoMCwgMCwgMCwgMC4xNSkpO1xufVxuLnFkbmFwcm8tY2hlY2tib3g6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuLnFkbmFwcm8tY2hlY2tib3g6Zm9jdXMtdmlzaWJsZSwgLnFkbmFwcm8tY2hlY2tib3guZm9yY2UtZm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tY2ItZm9jdXMtcmluZyksIDAgMCAwIDZweCB2YXIoLS1jYi1mb2N1cy1nbG93KTtcbn1cbi5xZG5hcHJvLWNoZWNrYm94LmZvcmNlLWhvdmVyOm5vdCguY2hlY2tib3gtZGlzYWJsZWQpOm5vdCguY2hlY2tib3gtY2hlY2tlZCk6bm90KC5jaGVja2JveC1pbmRldGVybWluYXRlKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNiLWJnLWhvdmVyKTtcbn1cbi5xZG5hcHJvLWNoZWNrYm94LmZvcmNlLXByZXNzZWQ6bm90KC5jaGVja2JveC1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLCAwLCAwLCAwLjE1KSwgcmdiYSgwLCAwLCAwLCAwLjE1KSk7XG59XG4ucWRuYXByby1jaGVja2JveC5jaGVja2JveC1zdGF0ZS1lcnJvciB7XG4gIC0tY2ItYm9yZGVyOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCk7XG4gIC0tY2ItZmlsbGVkLWJnOiB2YXIoLS1jLXdhcm4tcmVkLTQwMCk7XG4gIC0tY2ItZmlsbGVkLWJvcmRlcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpO1xuICAtLWNiLWZvY3VzLXJpbmc6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0KTtcbiAgLS1jYi1mb2N1cy1nbG93OiByZ2JhKDE5OCwgOTAsIDkwLCAwLjI1KTtcbn1cbi5xZG5hcHJvLWNoZWNrYm94LmNoZWNrYm94LXN0YXRlLXN1Y2Nlc3Mge1xuICAtLWNiLWJvcmRlcjogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCk7XG4gIC0tY2ItZmlsbGVkLWJnOiB2YXIoLS1jLWNoaXAtZ3JlZW4tMi1ob3Zlcik7XG4gIC0tY2ItZmlsbGVkLWJvcmRlcjogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCk7XG4gIC0tY2ItZm9jdXMtcmluZzogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCk7XG4gIC0tY2ItZm9jdXMtZ2xvdzogcmdiYSg2NiwgMTM5LCAxMTAsIDAuMjUpO1xufVxuLnFkbmFwcm8tY2hlY2tib3guY2hlY2tib3gtZGlzYWJsZWQge1xuICAtLWNiLWJvcmRlcjogdmFyKC0tYy1ncmV5LTMwMCk7XG4gIC0tY2ItYmc6IHZhcigtLWMtZ3JleS01MCk7XG4gIC0tY2ItZmlsbGVkLWJnOiB2YXIoLS1jLWdyZXktNTApO1xuICAtLWNiLWZpbGxlZC1ib3JkZXI6IHZhcigtLWMtZ3JleS0zMDApO1xuICAtLWNiLW1hcms6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCk7XG4gIG9wYWNpdHk6IDAuNTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWNoZWNrYm94IHtcbiAgLS1jYi1ib3JkZXI6ICM1NjViNjY7XG4gIC0tY2ItYmc6ICMyZTMwMzY7XG4gIC0tY2ItYmctaG92ZXI6ICM0MDQ0NGQ7XG4gIC0tY2ItZmlsbGVkLWJnOiAjNDY1MmYzO1xuICAtLWNiLWZpbGxlZC1ib3JkZXI6ICM0NjUyZjM7XG4gIC0tY2ItbWFyazogI2ZmZmZmZjtcbiAgLS1jYi1mb2N1cy1yaW5nOiAjYTVhY2ZmO1xuICAtLWNiLWZvY3VzLWdsb3c6IHJnYmEoNzAsIDgyLCAyNDMsIDAuNCk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1jaGVja2JveC5jaGVja2JveC1zdGF0ZS1lcnJvciB7XG4gIC0tY2ItYm9yZGVyOiAjYzY1YTVhO1xuICAtLWNiLWZpbGxlZC1iZzogI2M2NWE1YTtcbiAgLS1jYi1maWxsZWQtYm9yZGVyOiAjYzY1YTVhO1xuICAtLWNiLWZvY3VzLXJpbmc6ICNlODkwOTA7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1jaGVja2JveC5jaGVja2JveC1zdGF0ZS1zdWNjZXNzIHtcbiAgLS1jYi1ib3JkZXI6ICM0MjhiNmU7XG4gIC0tY2ItZmlsbGVkLWJnOiAjNDI4YjZlO1xuICAtLWNiLWZpbGxlZC1ib3JkZXI6ICM0MjhiNmU7XG4gIC0tY2ItZm9jdXMtcmluZzogIzdjY2ZhODtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWNoZWNrYm94LmNoZWNrYm94LWRpc2FibGVkIHtcbiAgLS1jYi1ib3JkZXI6ICM1NjViNjY7XG4gIC0tY2ItYmc6ICM0MDQ0NGQ7XG4gIC0tY2ItZmlsbGVkLWJnOiAjNDA0NDRkO1xuICAtLWNiLWZpbGxlZC1ib3JkZXI6ICM1NjViNjY7XG4gIC0tY2ItbWFyazogIzZiNzI4MDtcbn1cblxuLyogPT09IHRoZW1lOiBnbGFzcyDigJQgYWRkZWQgMjAyNi0wNi0wOCA9PT1cbiAgIFRyYW5zbHVjZW50IGNoZWNrYm94IGZvciBhIGRhcmsgLyBjb2xvdXJlZCBzdXJmYWNlIChsb2dpbikuIEFjdGl2YXRlIHZpYVxuICAgZGF0YS10aGVtZT1cImdsYXNzXCIgb24gYW4gYW5jZXN0b3I7IGxpbGEgZm9jdXMgcmluZyB0byBtYXRjaCB0aGUgaW5wdXRzLiAqL1xuW2RhdGEtdGhlbWU9Z2xhc3NdIC5xZG5hcHJvLWNoZWNrYm94IHtcbiAgLS1jYi1ib3JkZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40NSk7XG4gIC0tY2ItYmc6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG4gIC0tY2ItYmctaG92ZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG4gIC8qIENoZWNrZWQgPSBzb2xpZCB3aGl0ZSBib3ggd2l0aCBhIGRhcmsgY2hlY2ssIHNvIGl0IHN0YW5kcyBvdXQgb24gdGhlXG4gICAgIGRhcmsgc3VyZmFjZSAoYSB0aW50ZWQgZmlsbCBibGVuZHMgaW50byB0aGUgaW5kaWdvIC0gdG9vIGxvdyBjb250cmFzdCkuICovXG4gIC0tY2ItZmlsbGVkLWJnOiAjZmZmZmZmO1xuICAtLWNiLWZpbGxlZC1ib3JkZXI6ICNmZmZmZmY7XG4gIC0tY2ItbWFyazogIzI2MjE1YztcbiAgLS1jYi1mb2N1cy1yaW5nOiAjOWE4ZmZmO1xuICAtLWNiLWZvY3VzLWdsb3c6IHJnYmEoMTU0LCAxNDMsIDI1NSwgMC4zNSk7XG59XG5bZGF0YS10aGVtZT1nbGFzc10gLnFkbmFwcm8tY2hlY2tib3guY2hlY2tib3gtZGlzYWJsZWQge1xuICAtLWNiLWJvcmRlcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbiAgLS1jYi1iZzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgLS1jYi1maWxsZWQtYmc6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIC0tY2ItZmlsbGVkLWJvcmRlcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbiAgLS1jYi1tYXJrOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9jb2xvci1waWNrZXIvX2NvbG9yLXBpY2tlci1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIHFkbmFwcm8tY29sb3ItcGlja2VyXG4gKiBQYXN0ZWwgc3dhdGNoIHBpY2tlci4gUGFsZXR0ZSBtYXRjaGVzIHRoZSB0YXNrbGlzdC1jYXJkXG4gKiAudGxjLWNvbG9yLSogdGludHMgZXhhY3RseSBzbyB0aGUgc3dhdGNoID09IHRoZSBjYXJkIHRpbnQuXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5xZG5hcHJvLWNvbG9yLXBpY2tlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ucWRuYXByby1jb2xvci1waWNrZXIgKixcbi5xZG5hcHJvLWNvbG9yLXBpY2tlciAqOjpiZWZvcmUsXG4ucWRuYXByby1jb2xvci1waWNrZXIgKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1ncmlkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDEwcHg7XG59XG5cbi5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMzZweDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjEpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1xY3AtYmcsICNlZWYwZjIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxMjBtcyBlYXNlLCBib3gtc2hhZG93IDEyMG1zIGVhc2UsIGJvcmRlci1jb2xvciAxMjBtcyBlYXNlO1xufVxuXG4ucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2g6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaDphY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG59XG5cbi5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaDpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSg3MCwgODIsIDI0MywgMC4yKTtcbn1cblxuLnFkbmFwcm8tY29sb3ItcGlja2VyIC5xY3Atc3dhdGNoLnFjcC1zd2F0Y2gtc2VsZWN0ZWQge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1jLXB1cnBsZS01MDApLCAwIDAgMCA1cHggcmdiYSg3MCwgODIsIDI0MywgMC4xOCk7XG59XG5cbi8qIFZhcmlhbnQgXCJzb2Z0XCI6IExJR0hULXB1cnBsZSBzZWxlY3Rpb24gcmluZyAoc2FtZSBodWUgYXMgdGhlIGZvY3VzIGdsb3cpXG4gICBpbnN0ZWFkIG9mIHRoZSBoZWF2eSBkYXJrIHZhcigtLWMtcHVycGxlLTUwMCkgcmluZy4gVGhlIGNoZWNrbWFyayBzdGlsbCBtYXJrcyB0aGUgcGljay5cbiAgIExvb2tzIG11Y2ggYmV0dGVyIG9uIGRhcmsgLyBzYXR1cmF0ZWQgc3dhdGNoZXMuIFtLaW0gMjAyNi0wNi0yMl0gKi9cbi5xZG5hcHJvLWNvbG9yLXBpY2tlci5xY3AtdmFyaWFudC1zb2Z0IC5xY3Atc3dhdGNoLnFjcC1zd2F0Y2gtc2VsZWN0ZWQge1xuICBib3JkZXItY29sb3I6IHJnYmEoNzAsIDgyLCAyNDMsIDAuNDUpO1xuICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSg3MCwgODIsIDI0MywgMC4yMik7XG59XG5cbi8qIENoZWNrIG1hcmsgLSB2aXNpYmxlIG9ubHkgb24gdGhlIHNlbGVjdGVkIHN3YXRjaC4gKi9cbi5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLWNoZWNrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC1zZWxlY3RlZCAucWNwLWNoZWNrIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLnFkbmFwcm8tY29sb3ItcGlja2VyIC5xY3AtY2hlY2s6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogNnB4O1xuICAvKiAtLXFjcC1jaGVjayBpcyBzZXQgcGVyIHN3YXRjaCBieSB0aGUgSlMgY29udHJhc3QgZGV0ZWN0b3I6XG4gICAgIHdoaXRlIG9uIGRhcmsgc3dhdGNoZXMsIGJyYW5kIGluZGlnbyBvbiBsaWdodCBvbmVzLiAqL1xuICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigtLXFjcC1jaGVjaywgIzQwNDk5YSk7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS1xY3AtY2hlY2ssICM0MDQ5OWEpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi8qIFBhbGV0dGUgLSBtYXRjaGVzIHRoZSAudGxjLWNvbG9yLSogdGFza2xpc3QtY2FyZCB0aW50cyBleGFjdGx5LiAqL1xuLnFkbmFwcm8tY29sb3ItcGlja2VyIC5xY3Atc3dhdGNoLS1ncmV5IHtcbiAgLS1xY3AtYmc6IHZhcigtLWMtZ3JleS01MCk7XG59XG5cbi5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tcmVkIHtcbiAgLS1xY3AtYmc6IHZhcigtLWMtc2lnbmFsLXJlZC1iZyk7XG59XG5cbi5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0teWVsbG93IHtcbiAgLS1xY3AtYmc6IHZhcigtLWMtY2hpcC15ZWxsb3ctYmcpO1xufVxuXG4ucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLWdyZWVuIHtcbiAgLS1xY3AtYmc6IHZhcigtLWMtY2hpcC1ncmVlbi1iZyk7XG59XG5cbi5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tYmx1ZSB7XG4gIC0tcWNwLWJnOiB2YXIoLS1jLXNpZ25hbC1ibHVlLWJnKTtcbn1cblxuLnFkbmFwcm8tY29sb3ItcGlja2VyIC5xY3Atc3dhdGNoLS1icmlnaHQtYmx1ZSB7XG4gIC0tcWNwLWJnOiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtMi1iZyk7XG59XG5cbi5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tcGluayB7XG4gIC0tcWNwLWJnOiB2YXIoLS1jLXNpZ25hbC1waW5rLWJnKTtcbn1cblxuLnFkbmFwcm8tY29sb3ItcGlja2VyIC5xY3Atc3dhdGNoLS1wdXJwbGUge1xuICAtLXFjcC1iZzogdmFyKC0tYy1jaGlwLXB1cnBsZS1iZyk7XG59XG5cbi5xZG5hcHJvLWNvbG9yLXBpY2tlci5xY3AtZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjU1O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLyogU2VtYW50aWMgcGFsZXR0ZSAoZmxvd2VkaXRvciBwZXItb3B0aW9uIGFwcGVhcmFuY2UgbW9kYWwsIDEyLjA3LjIwMjYpOlxuICAgc3RhbmRhYXJkIC8gcG9zaXRpdmUgLyB3YXJuaW5nIC8gbmVnYXRpdmUgLyBuZXV0cmFsX2FsdCDigJQgdGhlIGNsb3NlZFxuICAgNS12YWx1ZSBzZXQgdGhlIE9wdGlvbkFwcGVhcmFuY2VPdmVybGF5LnZ1ZSBkYXRhbW9kZWwgdXNlcy4gVGludHMgY29tZVxuICAgZnJvbSB0aGUgc2hhcmVkIHNpZ25hbCBkZXNpZ24gdG9rZW5zIChzYW1lIHRva2VucyBxZG5hcHJvLWFuc3dlci1idXR0b24nc1xuICAgLS1wb3NpdGl2ZS8tLXdhcm5pbmcvLS1uZWdhdGl2ZS8tLW5ldXRyYWxfYWx0IHZhcmlhbnRzIGFscmVhZHkgdXNlKSBzbyBhXG4gICBwaWNrZWQgY29sb3VyIHJlYWRzIGlkZW50aWNhbGx5IGluIHRoZSBwaWNrZXIgYW5kIGluIHRoZSBsaXZlIHByZXZpZXcuXG4gICBcInN0YW5kYWFyZFwiIGhhcyBubyBzaWduYWwgdG9rZW4gKGl0IG1hcHMgdG8gJycgaW4gdGhlIGRhdGFtb2RlbCkg4oCUIGFcbiAgIGxpZ2h0IGJyYW5kLXB1cnBsZSBuZXV0cmFsICgtLWMtcHVycGxlLTUwKSBmaXRzIHRoZSBcIm5ldXRyYWFsXG4gICBwdXJwZXIvZ3JpanNcIiBhc2sgYmV0dGVyIHRoYW4gcGxhaW4gZ3JleSBpbiB0aGlzIHB1cnBsZS1icmFuZGVkIHByb2R1Y3QuICovXG4ucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLXN0YW5kYWFyZCB7XG4gIC0tcWNwLWJnOiB2YXIoLS1jLXB1cnBsZS01MCwgI2U2ZTlmZik7XG59XG5cbi5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tcG9zaXRpdmUge1xuICAtLXFjcC1iZzogdmFyKC0tYy1zaWduYWwtZ3JlZW4tYmcsICNjNWY1ZTIpO1xufVxuXG4ucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLXdhcm5pbmcge1xuICAtLXFjcC1iZzogdmFyKC0tYy1zaWduYWwteWVsbG93LWJnLCAjZmVlZGI4KTtcbn1cblxuLnFkbmFwcm8tY29sb3ItcGlja2VyIC5xY3Atc3dhdGNoLS1uZWdhdGl2ZSB7XG4gIC0tcWNwLWJnOiB2YXIoLS1jLXNpZ25hbC1yZWQtYmcsICNmZWUzZTMpO1xufVxuXG4ucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLW5ldXRyYWxfYWx0IHtcbiAgLS1xY3AtYmc6IHZhcigtLWMtc2lnbmFsLWJsdWUtYmcsICNlNmVmZjkpO1xufSIsIi8vIF9jb2xvci1wYW5lbC5zY3NzXG4vL1xuLy8gcWRuYXByby1jb2xvci1wYW5lbCAtIFdvcmQtc3R5bGUgc3RhY2tlZCBjb2xvdXIgcGFuZWwgZm9yIHRoZSBQdWxzZSBzdGVwXG4vLyB3aXphcmQgKGJhY2tncm91bmQgY29sb3VyIEFORCB0ZXh0IGNvbG91cikuIFNlZSBxZG5hLWNvbG9yLXBhbmVsLmpzIGZvclxuLy8gdGhlIGZ1bGwgZG9jYmxvY2sgKHdoeSB0aGlzIGV4aXN0cyBuZXh0IHRvIHFkbmFwcm8tY29sb3ItcGlja2VyLCB2YWx1ZVxuLy8gY29udHJhY3QsIGV2ZW50cykuXG4vL1xuLy8gVGhyZWUgc3RhY2tlZCBwaWVjZXMsIHRvcCB0byBib3R0b206XG4vLyAgIC5xY3AyLWF1dG8gIC0gZnVsbC13aWR0aCBcIkF1dG9tYXRpc2NoXCIgYnV0dG9uIChoaWRlYWJsZSB2aWEgYG5vLWF1dG9gKS5cbi8vICAgLnFjcDItZ3JpZCAgLSBhIGdyaWQgb2Ygc3dhdGNoIGJ1dHRvbnMgKDUgcGVyIHJvdyksIHNlbGVjdGlvbiBzaG93biB3aXRoXG4vLyAgICAgICAgICAgICAgICAgYSByaW5nICsgYSBjZW50cmVkIGNoZWNrbWFyayAoc2FtZSB2aXN1YWwgbGFuZ3VhZ2UgYXNcbi8vICAgICAgICAgICAgICAgICBxZG5hcHJvLWNvbG9yLXBpY2tlcidzIC5xY3AtY2hlY2spLlxuLy8gICAucWNwMi1tb3JlICAtIFwiTWVlciBrbGV1cmVuXCIgcm93IHRoYXQgb3BlbnMgYSBxZG5hcHJvLXBvcG92ZXIgaG9zdGluZyBhXG4vLyAgICAgICAgICAgICAgICAgbmF0aXZlIDxpbnB1dCB0eXBlPVwiY29sb3JcIj4gKC5xY3AyLXdoZWVsLXBhbmVsIGJlbG93KS5cblxuLnFkbmFwcm8tY29sb3ItcGFuZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG59XG5cbi5xZG5hcHJvLWNvbG9yLXBhbmVsICosXG4ucWRuYXByby1jb2xvci1wYW5lbCAqOjpiZWZvcmUsXG4ucWRuYXByby1jb2xvci1wYW5lbCAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLy8gLS0tIDEuIEF1dG9tYXRpc2NoIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5xY3AyLWF1dG8ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDEwcHggMTRweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLCAjZmZmZmZmKTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYTFmNGQpO1xuICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAxMjBtcyBlYXNlLCBiYWNrZ3JvdW5kIDEyMG1zIGVhc2UsIGJveC1zaGFkb3cgMTIwbXMgZWFzZTtcbn1cblxuLnFjcDItYXV0bzpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyLCAjZjdmOGZhKTtcbn1cblxuLnFjcDItYXV0bzpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1yaW5nKSwgMCAwIDAgNXB4IHZhcigtLWZvY3VzLWdsb3cpO1xufVxuXG4ucWNwMi1hdXRvLnFjcDItYXV0by1zZWxlY3RlZCB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTUwLCAjZTZlOWZmKTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKTtcbiAgICAvLyAtLWMtcHVycGxlLTUwIGhhcyBOTyBkYXJrLW1vZGUgdmFsdWU6IGl0IHN0YXlzIGxpZ2h0IGluIGJvdGggdGhlbWVzLlxuICAgIC8vIFRoZSBpbmhlcml0ZWQgLS1jLXRleHQtaGVhZGluZyBET0VTIGZsaXAgKHRvIGdyZXktNTApLCBzbyB3aXRob3V0IHRoaXNcbiAgICAvLyBsaW5lIHRoZSBzZWxlY3RlZCBsYWJlbCB3YXMgbmVhci1pbnZpc2libGUgbGlnaHQtb24tbGlnaHQgaW4gZGFyayBtb2RlXG4gICAgLy8gKG1lYXN1cmVkIGluIGEgaGVhZGxlc3MgcmVuZGVyLCAyOC4wOC4yMDI2KS4gUGluIHRoZSB0ZXh0IHRvIHRoZSBkYXJrXG4gICAgLy8gcHVycGxlIHNvIGl0IHBhaXJzIHdpdGggdGhlIGJhY2tncm91bmQgdGhhdCBkb2VzIG5vdCBtb3ZlLlxuICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS03MDAsICMyYTMyNjgpO1xufVxuXG4vLyAtLS0gMi4gU3dhdGNoIGdyaWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ucWNwMi1ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsIDFmcik7XG4gICAgZ2FwOiA4cHg7XG59XG5cbi5xY3AyLXN3YXRjaCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCwgcmdiYSgwLCAwLCAwLCAwLjA3KSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcWNwMi1iZywgI2VlZjBmMik7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxMjBtcyBlYXNlLCBib3gtc2hhZG93IDEyMG1zIGVhc2UsIGJvcmRlci1jb2xvciAxMjBtcyBlYXNlO1xufVxuXG4ucWNwMi1zd2F0Y2g6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cblxuLnFjcDItc3dhdGNoOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG4ucWNwMi1zd2F0Y2g6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtcmluZyksIDAgMCAwIDVweCB2YXIoLS1mb2N1cy1nbG93KTtcbn1cblxuLnFjcDItc3dhdGNoLnFjcDItc3dhdGNoLXNlbGVjdGVkIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG59XG5cbi5xY3AyLWNoZWNrIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG9wYWNpdHk6IDA7XG59XG5cbi5xY3AyLXN3YXRjaC1zZWxlY3RlZCAucWNwMi1jaGVjayB7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLnFjcDItY2hlY2s6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHdpZHRoOiA5cHg7XG4gICAgaGVpZ2h0OiA1cHg7XG4gICAgLy8gLS1xY3AyLWNoZWNrIGlzIHNldCBwZXIgc3dhdGNoIGJ5IHRoZSBKUyBjb250cmFzdCBjaGVjazogXCIjZmZmZmZmXCIgb25cbiAgICAvLyBkYXJrIHN3YXRjaGVzLCB1bnNldCAoZmFsbHMgdGhyb3VnaCB0byAtLWMtcHVycGxlLTUwMCkgb24gbGlnaHQgb25lcy5cbiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigtLXFjcDItY2hlY2ssIHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSkpO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS1xY3AyLWNoZWNrLCB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi8vIC0tLSAzLiBcIk1lZXIga2xldXJlblwiIHJvdyArIGNvbG91ci13aGVlbCBwb3BvdmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLnFjcDItbW9yZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjMGIwYjBkKTtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2U7XG59XG5cbi5xY3AyLW1vcmU6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLWhvdmVyLCB2YXIoLS1jLWdyZXktNTAsICNmMGYxZjIpKTtcbn1cblxuLnFjcDItbW9yZTpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1yaW5nKSwgMCAwIDAgNXB4IHZhcigtLWZvY3VzLWdsb3cpO1xufVxuXG4ucWNwMi1tb3JlLnFjcDItbW9yZS1zZWxlY3RlZCB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xufVxuXG4ucWNwMi1tb3JlLXN3YXRjaCB7XG4gICAgZmxleDogbm9uZTtcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQsIHJnYmEoMCwgMCwgMCwgMC4wNykpO1xuICAgIC8vIGNvbmljLWdyYWRpZW50IHN0YW5kLWluIGZvciBcIm5vIGN1c3RvbSBjb2xvdXIgY2hvc2VuIHlldFwiIC0gdGhlIHNhbWVcbiAgICAvLyBpZGVhIGFzIFdvcmQncyBlbXB0eSBjdXN0b20tY29sb3VyIHN3YXRjaC4gLS1xY3AyLW1vcmUtYmcgaXMgc2V0IHRvXG4gICAgLy8gYW4gYWN0dWFsIGhleCBieSB0aGUgSlMgb25jZSBhIGN1c3RvbSBjb2xvdXIgSVMgYWN0aXZlLlxuICAgIGJhY2tncm91bmQ6IHZhcigtLXFjcDItbW9yZS1iZywgdHJhbnNwYXJlbnQpO1xufVxuXG4ucWNwMi1tb3JlOm5vdCgucWNwMi1tb3JlLXNlbGVjdGVkKSAucWNwMi1tb3JlLXN3YXRjaCB7XG4gICAgYmFja2dyb3VuZDpcbiAgICAgICAgY29uaWMtZ3JhZGllbnQoXG4gICAgICAgICAgICBmcm9tIDBkZWcsXG4gICAgICAgICAgICAvLyBEZWxpYmVyYXRlbHkgYSBORVVUUkFMIHJhaW5ib3csIG5vdCB0aGUgdGVuIFB1bHNlIGNvbG91cnM6IHRoaXNcbiAgICAgICAgICAgIC8vIHdoZWVsIG1lYW5zIFwiYW55IGNvbG91ciB5b3UgbGlrZVwiLCBhbmQgcmVwZWF0aW5nIHRoZSBwYWxldHRlXG4gICAgICAgICAgICAvLyBoZXJlIHdvdWxkIGJvdGggZHVwbGljYXRlIHBhdHRlcm5zLmpzb24gKG9uZSBzb3VyY2Ugb2YgdHJ1dGgpXG4gICAgICAgICAgICAvLyBhbmQgaW1wbHkgdGhlIHdoZWVsIG9ubHkgb2ZmZXJzIHRob3NlIHRlbi4gU2FtZSBzaXggdG9rZW5zLCBpblxuICAgICAgICAgICAgLy8gdGhlIHNhbWUgb3JkZXIsIGFzIHFkbmFwcm8tYmFja2dyb3VuZC1waWNrZXIncyBvd24gd2hlZWwgdGlsZVxuICAgICAgICAgICAgLy8gKF9iYWNrZ3JvdW5kLXBpY2tlci5zY3NzKTogb25lIHdoZWVsLCBvbmUgcmVjaXBlLlxuICAgICAgICAgICAgdmFyKC0tYy13YXJuLXJlZC01MDAsICNkYzI2MjYpLFxuICAgICAgICAgICAgdmFyKC0tYy13YXJuLW9yYW5nZS01MDAsICNlYTU4MGMpLFxuICAgICAgICAgICAgdmFyKC0tYy13YXJuLXllbGxvdy01MDAsICNmYmJmMjQpLFxuICAgICAgICAgICAgdmFyKC0tYy1zdWNjZXNzLTUwMCwgIzEyODA1ZSksXG4gICAgICAgICAgICB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpLFxuICAgICAgICAgICAgdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKSxcbiAgICAgICAgICAgIHZhcigtLWMtd2Fybi1yZWQtNTAwLCAjZGMyNjI2KVxuICAgICAgICApO1xufVxuXG4ucWNwMi1tb3JlLWxhYmVsIHtcbiAgICBmbGV4OiBhdXRvO1xufVxuXG4vLyAtLS0gQ29sb3VyLXdoZWVsIHBvcG92ZXIgY29udGVudCAtLS1cblxuLnFjcDItd2hlZWwtcGFuZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbn1cblxuLnFjcDItd2hlZWwtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZywgIzFhMWY0ZCk7XG59XG5cbi5xY3AyLXdoZWVsLWlucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1jYXJkLCAjZTFlM2U2KTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5xY3AyLXdoZWVsLWlucHV0OmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLXJpbmcpLCAwIDAgMCA1cHggdmFyKC0tZm9jdXMtZ2xvdyk7XG59XG5cbi8vIFN0cmlwIHRoZSBuYXRpdmUgc3dhdGNoJ3Mgb3duIGluc2V0IGJvcmRlciBzbyBvdXJzIChhYm92ZSkgaXMgdGhlIG9ubHkgb25lLlxuLnFjcDItd2hlZWwtaW5wdXQ6Oi13ZWJraXQtY29sb3Itc3dhdGNoLXdyYXBwZXIge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xufVxuXG4ucWNwMi13aGVlbC1pbnB1dDo6LXdlYmtpdC1jb2xvci1zd2F0Y2gge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG59XG5cbi5xY3AyLXdoZWVsLWlucHV0OjotbW96LWNvbG9yLXN3YXRjaCB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbn1cblxuLy8gLS0tIERpc2FibGVkIC0tLVxuXG4ucWRuYXByby1jb2xvci1wYW5lbC5xY3AyLWRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjU1O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1kYXRlLXBpY2tlciDigJQgY29tcGFjdCBtb250aC9kYXRlIHBpY2tlciAoRmlnbWEgMTYuMDcuMjAyNilcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFFETkEgdG9rZW5zIHVzZWQgKGRheSBidXR0b25zLCBwZXIgS2ltJ3MgRmlnbWEpOlxuLy8gICAgLS1jLWdyZXktNTAgICAgICAgICAgI2YwZjFmMiAgICAgICAgICAgICAgICAgICAgaG92ZXIgYmFja2dyb3VuZFxuLy8gICAgLS1jLWdyZXktMTAwICAgICAgICAgI2U3ZTllYyAgICAgICAgICAgICAgICAgICAgcHJlc3NlZCBiYWNrZ3JvdW5kXG4vLyAgICAtLWMtcHVycGxlLWhpZ2hsaWdodCB2YXIoLS1jLWFjdGlvbi01MDApICM0NjUyZjMgc2VsZWN0ZWQgZmlsbFxuLy8gICAgLS1jLWFjdGlvbi02MDAgICAgICAgIzM1NDBkNiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQgKyBob3ZlclxuLy8gICAgLS1jLWFjdGlvbi03MDAgICAgICAgIzJhMzZiOCAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQgKyBwcmVzc2VkXG4vLyAgICAtLWZvY3VzLXJpbmcgICAgICAgICB2YXIoLS1jLWJyYW5kLXB1cnBsZSkgIzQwNDk5YSAgZm9jdXMgb3V0bGluZVxuLy8gICAgLS1mb2N1cy1nbG93ICAgICAgICAgdmFyKC0tYy1hY3Rpb24tMjUpICAgICAgICAgZm9jdXMgZ2xvdyByaW5nXG4vLyAgICAtLWMtYnJhbmQtcHVycGxlICAgICB2YXIoLS1jLXB1cnBsZS01MDApICM0MDQ5OWEgdG9kYXkgbnVtYmVyXG4vLyAgICAtLWMtdGV4dC1kaXNhYmxlZCAgICAjODk4ZTk5ICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZCBkYXkgbnVtYmVyXG4vLyAgICAtLWMtZ3JleS00MDAgICAgICAgICAjYTZhYWIzICAgICAgICAgICAgICAgICAgICBtdXRlZCBhZGphY2VudC1tb250aCBkYXlzXG4vLyAgICAtLWMtZ3JleS01MDAgICAgICAgICAjNmI3MjgwICAgICAgICAgICAgICAgICAgICB3ZWVrZGF5IGhlYWRlclxuLy8gICAgLS1jLXRleHQtaGVhZGluZyAgICAgIzFhMWY0ZCAgICAgICAgICAgICAgICAgICAgbW9udGggbGFiZWxcbi8vICBTdHJ1Y3R1cmUgcmVmZXJlbmNlOiAucGxhbm5lci1jYWwgKHBsYW5uZXIvaW5kZXguaHRtbCkg4oCUIHRoaXMgY29tcG9uZW50XG4vLyAgcmVwbGFjZXMgdGhhdCBoYW5kLXJvbGxlZCBwYXR0ZXJuIHBsYXRmb3JtLXdpZGUuXG4vLyAgRkxBVCBDU1MgKG5vIG5lc3RpbmcpLCBwZXIgdGhlIHYyIGNvbXBvbmVudCBjb252ZW50aW9uLlxuXG4ucWRuYXByby1kYXRlLXBpY2tlciB7XG4gIC8vIE1hYXQgdmFuIMOpw6luIGRhZ2tub3Ag4oCUIGRlIGVuaWdlIGtub3Agd2FhciBkZSByZXN0IHppY2ggbmFhciB2b2VndCAoZGVcbiAgLy8gYmFuZC1ob29ndGUgZW4gZGUgcGlsLXJhZGl1cyBoaWVyb25kZXIgcmVrZW5lbiBlcnVpdCkuIEJlc3RvbmQgZWVyc3QgYWxzXG4gIC8vIGVlbiAzMiBkaWUgb3AgdmlqZiBwbGVra2VuIGxvcyBpbiBoZXQgYmVzdGFuZCBzdG9uZDsgYWxzIHZhcmlhYmVsZSBrYW5cbiAgLy8gYHRvdWNoYCBoZW0gaW4gw6nDqW4gcmVnZWwgb216ZXR0ZW4gem9uZGVyIGRpZSB2aWpmIHRlIGhlcmhhbGVuLiBbMDcuMDguMjAyNl1cbiAgLS1kYXRlLXBpY2tlci1kYXk6IDMycHg7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi13aWR0aDogMjMycHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4vLyBwYW5lbCDigJQgdGhlIHFkbmFwcm8tbWVudSBjaHJvbWUsIHZlcmJhdGltIHRva2VucyBmcm9tIF9tZW51LnNjc3Mnc1xuLy8gLm1lbnUtY29sb3ItbmV1dHJhbCBibG9jayAoYm9yZGVyICNjNGM3Y2MsIHJhZGl1cyA4LCB0aGUgbWVudSBzaGFkb3cpLFxuLy8gc28gYSBwaWNrZXIgaG9zdGVkIGluIGEgYmFyZSBwb3BvdmVyIHJlYWRzIGlkZW50aWNhbCB0byB0aGUgb3RoZXJcbi8vIGRyb3Bkb3duIHBhbmVscyAoS2ltLCAxNi4wNy4yMDI2KS4gUGFkZGluZyAxMHB4IDEycHg6IHRoZSBtZW51J3MgOHB4XG4vLyBmZWVscyBjcmFtcGVkIGFyb3VuZCBhIDctY29sdW1uIGdyaWQuXG4ucWRuYXByby1kYXRlLXBpY2tlci5xZG5hcHJvLWRhdGUtcGlja2VyLS1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0zMDApO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSksIDAgOHB4IDEycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICBwYWRkaW5nOiAxMHB4IDEycHg7XG59XG5cbi8vIEhlYWRlciDigJQgbW9udGggbGFiZWwgTEVGVCwgcGFpcmVkIGNoZXZyb25zIFJJR0hUIChLaW0ncyBGaWdtYSwgMTYuMDcuMjAyNilcbi5xZG5hcHJvLWRhdGUtcGlja2VyX19oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogNHB4O1xuICBtYXJnaW4tYm90dG9tOiA2cHg7XG59XG4ucWRuYXByby1kYXRlLXBpY2tlcl9fbmF2IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAycHg7XG4gIGZsZXg6IG5vbmU7XG59XG4ucWRuYXByby1kYXRlLXBpY2tlcl9fbGFiZWwge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYTFmNGQpO1xufVxuXG4vLyBXZWVrZGF5IHJvdyArIGRheSBncmlkIHNoYXJlIHRoZSA3LWNvbHVtbiByYXN0ZXJcbi5xZG5hcHJvLWRhdGUtcGlja2VyX193ZWVrZGF5cyxcbi5xZG5hcHJvLWRhdGUtcGlja2VyX19ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNywgMWZyKTtcbiAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICBnYXA6IDJweDtcbn1cbi5xZG5hcHJvLWRhdGUtcGlja2VyX193ZWVrZGF5cyBzcGFuIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNzI4MCk7XG4gIHBhZGRpbmc6IDJweCAwIDRweDtcbn1cblxuLy8gRGF5IGJ1dHRvbiDigJQgcm91bmQgfjMycHggaGl0IHRhcmdldC4gVGhlIC5mb3JjZS0qIGNsYXNzZXMgbWlycm9yIHRoZVxuLy8gcHNldWRvLWNsYXNzIHN0YXRlcyBmb3IgdGhlIGxpYnJhcnkgcHJldmlldyAodHJhbnNpZW50IHN0YXRlcyBtdXN0IGJlXG4vLyBzY3JlZW5zaG90LWFibGUsIHBlciB0aGUgcHJldmlld3MgY29udmVudGlvbikuXG4ucWRuYXByby1kYXRlLXBpY2tlcl9fZGF5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IHZhcigtLWRhdGUtcGlja2VyLWRheSk7XG4gIGhlaWdodDogdmFyKC0tZGF0ZS1waWNrZXItZGF5KTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBmb250OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHksICMwYjBiMGQpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xcyBlYXNlO1xufVxuXG4vLyBIb3ZlciAvIHByZXNzZWQgKG5ldmVyIG9uIGRpc2FibGVkIGRheXMpXG4ucWRuYXByby1kYXRlLXBpY2tlcl9fZGF5Om5vdCguaXMtZGlzYWJsZWQpOm5vdCguaXMtc2VsZWN0ZWQpOmhvdmVyLFxuLnFkbmFwcm8tZGF0ZS1waWNrZXJfX2RheS5mb3JjZS1ob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCwgI2YwZjFmMik7XG59XG4ucWRuYXByby1kYXRlLXBpY2tlcl9fZGF5Om5vdCguaXMtZGlzYWJsZWQpOm5vdCguaXMtc2VsZWN0ZWQpOmFjdGl2ZSxcbi5xZG5hcHJvLWRhdGUtcGlja2VyX19kYXkuZm9yY2UtcHJlc3NlZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0xMDAsICNlN2U5ZWMpO1xufVxuXG4vLyBUb2RheSDigJQgcHVycGxlIGJvbGQgbnVtYmVyOyBOT1QgdGhlIHNlbGVjdGVkIHN0eWxlIChib3RoIGNhbiBjb2V4aXN0IG9uXG4vLyBkaWZmZXJlbnQgZGF5czsgdG9kYXkrc2VsZWN0ZWQgc2hvd3MgdGhlIHNlbGVjdGVkIHN0eWxlIGJlbG93KS5cbi5xZG5hcHJvLWRhdGUtcGlja2VyX19kYXkuaXMtdG9kYXkge1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpO1xufVxuXG4vLyBTZWxlY3RlZCDigJQgZmlsbGVkIGhpZ2hsaWdodCBjaXJjbGUsIHdoaXRlIG51bWJlciAod2lucyBvdmVyIHRvZGF5KVxuLnFkbmFwcm8tZGF0ZS1waWNrZXJfX2RheS5pcy1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLWhpZ2hsaWdodCwgIzQ2NTJmMyk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uLCAjZmZmZmZmKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5xZG5hcHJvLWRhdGUtcGlja2VyX19kYXkuaXMtc2VsZWN0ZWQ6bm90KC5pcy1kaXNhYmxlZCk6aG92ZXIsXG4ucWRuYXByby1kYXRlLXBpY2tlcl9fZGF5LmlzLXNlbGVjdGVkLmZvcmNlLWhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1hY3Rpb24tNjAwLCAjMzU0MGQ2KTtcbn1cbi5xZG5hcHJvLWRhdGUtcGlja2VyX19kYXkuaXMtc2VsZWN0ZWQ6bm90KC5pcy1kaXNhYmxlZCk6YWN0aXZlLFxuLnFkbmFwcm8tZGF0ZS1waWNrZXJfX2RheS5pcy1zZWxlY3RlZC5mb3JjZS1wcmVzc2VkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1hY3Rpb24tNzAwLCAjMmEzNmI4KTtcbn1cblxuLy8gQWRqYWNlbnQtbW9udGggZGF5c1xuLnFkbmFwcm8tZGF0ZS1waWNrZXJfX2RheS5pcy1tdXRlZCB7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwLCAjYTZhYWIzKTtcbn1cblxuLy8gRGlzYWJsZWQgKG91dHNpZGUgbWluL21heCkg4oCUIG11dGVkIHRleHQsIG5vIGhvdmVyLCBjdXJzb3IgZGVmYXVsdFxuLnFkbmFwcm8tZGF0ZS1waWNrZXJfX2RheS5pcy1kaXNhYmxlZCB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQsICM4OThlOTkpO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8vIEZvY3VzIOKAlCBvdXRsaW5lZCBjaXJjbGUgbWlycm9yaW5nIHRoZSBxZG5hcHJvLWJ1dHRvbiBmb2N1cy12aXNpYmxlXG4vLyB0cmVhdG1lbnQgKHJpbmcgKyBzb2Z0IGdsb3cpOyBvdXRsaW5lIGZvbGxvd3MgdGhlIGJvcmRlci1yYWRpdXMuXG4ucWRuYXByby1kYXRlLXBpY2tlcl9fZGF5OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5xZG5hcHJvLWRhdGUtcGlja2VyX19kYXk6Zm9jdXMtdmlzaWJsZSxcbi5xZG5hcHJvLWRhdGUtcGlja2VyX19kYXkuZm9yY2UtZm9jdXMge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tZm9jdXMtcmluZywgIzQwNDk5YSk7XG4gIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDVweCB2YXIoLS1mb2N1cy1nbG93LCByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KSk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU3BhbiAvIHJhbmdlIHNlbGVjdGlvbiBiYW5kIChLaW0sIDE2LjA3LjIwMjYg4oCUIHZpZXctc3BhbiArIHNuYXAtbW9uZGF5LFxuLy8gbW9kZT1cInJhbmdlXCIpLiBPbmx5IHJlbmRlcmVkIHdoZW4gdmlldy1zcGFuID4gMSBvciBtb2RlPVwicmFuZ2VcIiDigJQgdGhlXG4vLyBwbGFpbiBzaW5nbGUtZGF5IHBpY2tlciAodmlldy1zcGFuIDEsIG5vIHJhbmdlIG1vZGUpIG5ldmVyIGdldHMgYVxuLy8gLnFkbmFwcm8tZGF0ZS1waWNrZXJfX2NlbGwgd3JhcHBlciwgc28gaXQgc3RheXMgcGl4ZWwtaWRlbnRpY2FsLlxuLy9cbi8vIEVhY2ggZGF5IGlzIHdyYXBwZWQgaW4gYSBjZWxsOyB0aGUgYmFuZCBpcyBhIDo6YmVmb3JlIHVuZGVybGF5IHRoYXRcbi8vIGZpbGxzIHRoZSBjZWxsIGFuZCBibGVlZHMgMXB4IGludG8gdGhlIDJweCBncmlkIGdhcCBvbiBzaWRlcyB0b3VjaGluZ1xuLy8gYW5vdGhlciBiYW5kIGRheSwgc28gYSBtdWx0aS1kYXkgYmFuZCByZWFkcyBhcyBvbmUgY29udGludW91cyBwaWxsLlxuLy8gUm91bmRlZCBvbmx5IGF0IHRoZSBiYW5kJ3MgVFJVRSBzdGFydC9lbmQ7IGEgYmFuZCB0aGF0IHdyYXBzIG9udG8gdGhlXG4vLyBuZXh0IGdyaWQgcm93IGlzIGxlZnQgZmx1c2ggKG5vIHJvdW5kaW5nLCBubyBibGVlZCkgYXQgdGhlIHJvdyBlZGdlIOKAlFxuLy8gaXQgcmVhZHMgYXMgXCJjb250aW51ZXMgYmVsb3dcIiBpbnN0ZWFkIG9mIHR3byBzZXBhcmF0ZSBwaWxscy5cbi5xZG5hcHJvLWRhdGUtcGlja2VyX19jZWxsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAganVzdGlmeS1zZWxmOiBzdHJldGNoO1xuICBoZWlnaHQ6IHZhcigtLWRhdGUtcGlja2VyLWRheSk7XG59XG4ucWRuYXByby1kYXRlLXBpY2tlcl9fY2VsbC5pcy1iYW5kOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgei1pbmRleDogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4vLyBHaG9zdCDigJQgcHJvc3BlY3RpdmUgc3BhbiBwcmV2aWV3IG9uIGhvdmVyIG9ubHkgKGNhcGFiaWxpdHkgMSk6IHN1YnRsZVxuLy8gZ3JleSBwaWxsLCBubyBmaWxsZWQgY2lyY2xlcy5cbi5xZG5hcHJvLWRhdGUtcGlja2VyX19jZWxsLmlzLWJhbmQtZ2hvc3Q6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCwgI2YwZjFmMik7XG59XG4vLyBGaWxsIOKAlCB0aGUgY29tbWl0dGVkIHNwYW4vcmFuZ2UsIGFuZCBpdHMgaW4tcHJvZ3Jlc3MgaG92ZXIgcHJldmlldyBpblxuLy8gbW9kZT1cInJhbmdlXCI6IGxpZ2h0IHB1cnBsZSB0aW50OyB0aGUgdHdvIHRydWUgZW5kcyBhZGRpdGlvbmFsbHkgY2Fycnlcbi8vIC5pcy1zZWxlY3RlZCBvbiB0aGUgZGF5IGJ1dHRvbiAocmV1c2VkIGFzLWlzIOKAlCBmaWxsZWQgY2lyY2xlLCB3aGl0ZSB0ZXh0KS5cbi5xZG5hcHJvLWRhdGUtcGlja2VyX19jZWxsLmlzLWJhbmQtZmlsbDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1hY3Rpb24tMTIsIHJnYmEoNzAsIDgyLCAyNDMsIDAuMTIpKTtcbn1cbi5xZG5hcHJvLWRhdGUtcGlja2VyX19jZWxsLmlzLWJhbmQtcm91bmQtc3RhcnQ6OmJlZm9yZSB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGNhbGModmFyKC0tZGF0ZS1waWNrZXItZGF5KSAvIDIpO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBjYWxjKHZhcigtLWRhdGUtcGlja2VyLWRheSkgLyAyKTtcbn1cbi5xZG5hcHJvLWRhdGUtcGlja2VyX19jZWxsLmlzLWJhbmQtcm91bmQtZW5kOjpiZWZvcmUge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogY2FsYyh2YXIoLS1kYXRlLXBpY2tlci1kYXkpIC8gMik7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBjYWxjKHZhcigtLWRhdGUtcGlja2VyLWRheSkgLyAyKTtcbn1cbi5xZG5hcHJvLWRhdGUtcGlja2VyX19jZWxsLmlzLWJhbmQtYmxlZWQtc3RhcnQ6OmJlZm9yZSB7XG4gIGxlZnQ6IC0xcHg7XG59XG4ucWRuYXByby1kYXRlLXBpY2tlcl9fY2VsbC5pcy1iYW5kLWJsZWVkLWVuZDo6YmVmb3JlIHtcbiAgcmlnaHQ6IC0xcHg7XG59XG4vLyBCYW5kIG1pZGRsZS1kYXkgbnVtYmVycyByZWFkIGFzIHBhcnQgb2YgdGhlIHNlbGVjdGlvbiAocHVycGxlLCBtZWRpdW1cbi8vIHdlaWdodCkgd2l0aG91dCB0aGUgZmlsbGVkLWNpcmNsZSB0cmVhdG1lbnQgcmVzZXJ2ZWQgZm9yIHRoZSB0cnVlIGVuZHMuXG4ucWRuYXByby1kYXRlLXBpY2tlcl9fY2VsbC5pcy1iYW5kLWZpbGwgLnFkbmFwcm8tZGF0ZS1waWNrZXJfX2RheTpub3QoLmlzLXNlbGVjdGVkKTpub3QoLmlzLWRpc2FibGVkKSB7XG4gIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5xZG5hcHJvLWRhdGUtcGlja2VyX19kYXkge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgVE9VQ0ggKDA3LjA4LjIwMjYpIOKAlCBkZXplbGZkZSBwaWNrZXIsIG1ldCBlZW4gdmluZ2VyIGJlZGllbmJhYXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIERlIG1hdGVuIGhpZXJib3ZlbiBrb21lbiB1aXQgS2ltcyBGaWdtYSB2b29yIGRlIEJBQ0tPRkZJQ0UsIHdhYXIgZWVuXG4vLyAgbXVpcyBkZSBhYW53aWp6ZXIgaXM6IGVlbiBkYWdrbm9wIHZhbiAzMnB4IGlzIGRhYXIgcHJpbWEuIEluIGRlIFBXQSBpc1xuLy8gIGhpaiBkYXQgbmlldCDigJQgNDRweCBpcyBkZSBvbmRlcmdyZW5zIGRpZSBkZSByZXN0IHZhbiBkZXplIGxpYnJhcnlcbi8vICBhYW5ob3VkdCAocWRuYXByby1idXR0b24gc2l6ZT1cInRvdWNoXCIsIHFkbmFwcm8taWNvbi1idG4gc2l6ZT1cInRvdWNoXCIsXG4vLyAgZGUgbWFhbmRuYXZpZ2F0aWUgdmFuIHFkbmFwcm8tbW9udGgtZ3JpZCkuIFZhbmRhYXIgZGV6ZSB2YXJpYW50IGVuIG5pZXRcbi8vICBlZW4gc2V0amUgb3ZlcnJpZGVzIGJpaiBkZSBjb25zdW1lcjogZWVuIHR3ZWVkZSBwbGVrIG1ldCBlaWdlbiBtYXRlblxuLy8gIGdhYXQgZWVuIGtlZXIgdWl0IGRlIHBhcyBsb3BlbiBtZXQgZGUgZWVyc3RlLlxuLy9cbi8vICBHZXZvbGcgdm9vciB3aWUgaGVtIGluYm91d3Q6IDcgKiA0NCArIDYgKiAycHggdHVzc2VucnVpbXRlID0gMzIwcHgsIHBsdXNcbi8vICBkZSBwYWRkaW5nIHZhbiBkZSBvbWdldmluZy4gRWVuIHBhbmVlbCBvZiBrYWFydCBlcm9taGVlbiBtb2V0IGR1cyBvcCB6aWpuXG4vLyAgbWluc3QgfjMzNnB4IGJyZWVkIHppam4uIERhdCBpcyBnZWVuIGRldGFpbCBvbSB3ZWcgdGUgYmV6dWluaWdlbiDigJQga25panAgamVcbi8vICBkZSBicmVlZHRlIGFmLCBkYW4ga3JpbXBlbiBkZSBkYWdrbm9wcGVuIG1lZSBlbiBiZW4gamUgdGVydWcgYmlqIGhldFxuLy8gIHByb2JsZWVtIGRhdCBkZXplIHZhcmlhbnQgb3Bsb3N0LlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4ucWRuYXByby1kYXRlLXBpY2tlclt0b3VjaF0ge1xuICAtLWRhdGUtcGlja2VyLWRheTogNDRweDtcbn1cbi8vIERlIHdlZWtkYWdrb3AgZW4gaGV0IG1hYW5kbGFiZWwgZ3JvZWllbiBtZWUsIGFuZGVycyBsZWVzdCBkZSBrb3AgYWxzIGVlblxuLy8gYmlqc2NocmlmdCBiaWogZWVuIGdyaWQgZGF0IHR3ZWUga2VlciB6byBncm9vdCBpcy5cbi5xZG5hcHJvLWRhdGUtcGlja2VyW3RvdWNoXSAucWRuYXByby1kYXRlLXBpY2tlcl9fd2Vla2RheXMgc3BhbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5xZG5hcHJvLWRhdGUtcGlja2VyW3RvdWNoXSAucWRuYXByby1kYXRlLXBpY2tlcl9fZGF5IHtcbiAgZm9udC1zaXplOiAxNXB4O1xufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvZGl2aWRlci9fZGl2aWRlci1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4vKiBjb21waWxlZCBmcm9tIF9kaXZpZGVyLnNjc3MgKi9cbi5xZG5hcHJvLWRpdmlkZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYm9yZGVyLXRyZWUpO1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbn1cbi5xZG5hcHJvLWRpdmlkZXIuZGl2aWRlci1ob3Jpem9udGFsIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMXB4OyB9XG4ucWRuYXByby1kaXZpZGVyLmRpdmlkZXItdmVydGljYWwgICB7IHdpZHRoOiAxcHg7IGhlaWdodDogMTAwJTsgYWxpZ24tc2VsZjogc3RyZXRjaDsgfVxuLnFkbmFwcm8tZGl2aWRlci5kaXZpZGVyLXZlcnRpY2FsLmRpdmlkZXItZml4ZWQtbGVuZ3RoIHsgYWxpZ24tc2VsZjogY2VudGVyOyB9XG4ucWRuYXByby1kaXZpZGVyLmRpdmlkZXItY29sb3ItbmV1dHJhbCB7IGJhY2tncm91bmQ6IHZhcigtLWMtYm9yZGVyLXRyZWUpOyB9XG4ucWRuYXByby1kaXZpZGVyLmRpdmlkZXItY29sb3Itc3VidGxlICB7IGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xMCk7IH1cblxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLWRpdmlkZXIuZGl2aWRlci1jb2xvci1uZXV0cmFsLFxuW2RhdGEtdGhlbWUtZGFya10gIC5xZG5hcHJvLWRpdmlkZXIuZGl2aWRlci1jb2xvci1uZXV0cmFsIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLWRpdmlkZXIuZGl2aWRlci1jb2xvci1zdWJ0bGUsXG5bZGF0YS10aGVtZS1kYXJrXSAgLnFkbmFwcm8tZGl2aWRlci5kaXZpZGVyLWNvbG9yLXN1YnRsZSAgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpOyB9XG4iLCIvLyBfZG9jdW1lbnQtdmlld2VyLnNjc3Ncbi8vXG4vLyBxZG5hcHJvLWRvY3VtZW50LXZpZXdlciDigJQgZnVsbHNjcmVlbiBQV0EgZG9jdW1lbnQgdmlld2VyIChmYXNlIDUsIHN0YXAgMSkuXG4vLyBEYXJrIGxpZ2h0Ym94IHRoYXQgbWlycm9ycyB0aGUgYmFja29mZmljZSBETVMgdmlld2VyIHBhbGV0dGUgKCMxNjE4MmIgZmllbGQsXG4vLyAjMWQyMDM4IHRvcGJhcikgc28gdGhlIGFwcCBhbmQgYmFja29mZmljZSByZWFkIGFzIG9uZSBmYW1pbHkuIFN0ZXAgMSBzdHlsZXNcbi8vIHRoZSBzaGVsbCArIGltYWdlIHJlbmRlcmVyICsgYWxsIHN0YXRlczsgUERGL3ZpZGVvIHJlbmRlcmVycyBsYW5kIGxhdGVyIGJ1dFxuLy8gcmV1c2UgdGhpcyBzYW1lIHN0YWdlL2NhcmQvY2hyb21lIHZvY2FidWxhcnkuXG4vL1xuLy8gU1lOQ0VEIFRPIFRIRSBQV0Egd2l0aCBjb21waWxlU2NzczogdHJ1ZSAodGhpcyBmaWxlIHVzZXMgYCZgLW5lc3RpbmcpLCBzYW1lIGFzXG4vLyBsaXN0LXJvdy9hcHAtaGVhZGVyIOKAlCBhIGZsYXQgY3NzOnRydWUgc3luYyB3b3VsZCBsZWF2ZSBgJjouLi5gIGxpdGVyYWwgYW5kIHRoZVxuLy8gY2hyb21lL2FuaW1hdGlvbiB3b3VsZCBub3Qgd29yayBpbiB0aGUgYXBwIChncmlkLXRpbGUgbGVzc29uLCAyMi4wNy4yMDI2KS5cblxuLnFkbmFwcm8tZG9jdW1lbnQtdmlld2VyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgaW5zZXQ6IDA7XG4gICAgei1pbmRleDogOTUwMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTkwMCk7XG4gICAgY29sb3I6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSk7XG4gICAgLy8gc2l0IGFib3ZlIHRoZSBzYWZlIGFyZWFzOyB0aGUgdG9wYmFyIHBhZHMgZm9yIHRoZSBub3RjaCBpdHNlbGZcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mZiwgXCJJbnRlclwiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWYpO1xuICAgIC8vIHRyYW5zZm9ybS9vcGFjaXR5IGFyZSBkcml2ZW4gaW5saW5lIGJ5IHRoZSBzd2lwZS10by1kaXNtaXNzIGdlc3R1cmU7XG4gICAgLy8gZ2l2ZSB0aGUgc25hcC1iYWNrIGEgdHJhbnNpdGlvbiAoY2xlYXJlZCB3aGlsZSBkcmFnZ2luZyB2aWEgaW5saW5lIHN0eWxlKS5cbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTgwbXMgZWFzZSwgb3BhY2l0eSAxODBtcyBlYXNlO1xuXG4gICAgJltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgLy8gLS0tLSB0b3BiYXIgKGNocm9tZSkgLS0tLVxuICAgIC5xZHYtdG9wYmFyIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgbWluLWhlaWdodDogNTZweDtcbiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiBjYWxjKDhweCArIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wLCAwcHgpKTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKDEwcHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQsIDBweCkpO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKDEwcHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0LCAwcHgpKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy10ZXh0LWhlYWRpbmcpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLCB0cmFuc2Zvcm0gMjAwbXMgZWFzZTtcbiAgICB9XG5cbiAgICAucWR2LWZuYW1lIHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB9XG4gICAgLnFkdi1mbmFtZSBxZG5hcHJvLWZpbGUtaWNvbiB7IGZsZXg6IDAgMCBhdXRvOyB9XG4gICAgLnFkdi1mbmFtZS10ZXh0IHtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB9XG5cbiAgICAucWR2LXRvb2xzIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMnB4O1xuICAgIH1cbiAgICAucWR2LXRvb2xzIHFkbmFwcm8taWNvbi1idG4geyBjb2xvcjogdmFyKC0tYy1ib3JkZXItdHJlZS1icmlnaHQpOyB9XG4gICAgLnFkdi10b29scyBxZG5hcHJvLWljb24tYnRuW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4gICAgLnFkdi1jbG9zZSB7IGNvbG9yOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCk7IH1cblxuICAgIC8vIC0tLS0gY29udGVudCBzdGFnZSAtLS0tXG4gICAgLnFkdi1zdGFnZSB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAvLyB0b3VjaC1hY3Rpb24gaXMgc2V0IFBFUiByZW5kZXJlcjogdGhlIGltYWdlIHdyYXAgb3ducyBpdHMgcGluY2gvcGFuL1xuICAgICAgICAvLyBzd2lwZSAodG91Y2gtYWN0aW9uOm5vbmUpLCB0aGUgUERGIHNjcm9sbGVyIHVzZXMgbmF0aXZlIHBhbi15IC0gc28gdGhlXG4gICAgICAgIC8vIHN0YWdlIGl0c2VsZiBzdGF5cyBuZXV0cmFsLCBvdGhlcndpc2UgYSBgbm9uZWAgaGVyZSB3b3VsZCBraWxsIFBERiBzY3JvbGwuXG4gICAgfVxuXG4gICAgLy8gLS0tLSBpbWFnZSByZW5kZXJlciAtLS0tXG4gICAgLnFkdi1pbWd3cmFwIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTgwbXMgZWFzZTtcbiAgICAgICAgdG91Y2gtYWN0aW9uOiBub25lOyAvLyBpbWFnZSBvd25zIHBpbmNoL3Bhbi9zd2lwZVxuICAgIH1cbiAgICAucWR2LWltZ3dyYXAuaXMtbG9hZGVkIHsgb3BhY2l0eTogMTsgfVxuICAgIC5xZHYtaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICAgICAgICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTtcbiAgICB9XG5cbiAgICAvLyAtLS0tIGludGVyYWN0aXZlIGRvY3VtZW50cyAoLnFpZCkg4oCUIFBXQSBmYXNlIDEsIDA1LjA4LjIwMjYgLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIFRoZSByZWFkaW5nIHN1cmZhY2Ugc2hvd0ludGVyYWN0aXZlKCkgaGFuZHMgdG8gdGhlIFNIQVJFRCBibG9jayByZW5kZXJlclxuICAgIC8vICh3aW5kb3cuRG1zSWRvY1JlbmRlcikuIE9ubHkgdGhlIHNjcm9sbCB3cmFwcGVyIGxpdmVzIGhlcmU7IGV2ZXJ5IC5kbXMtaWRvYy0qXG4gICAgLy8gcnVsZSBpbnNpZGUgaXQgY29tZXMgZnJvbSB0aGUgc2hhcmVkIHN0eWxlc2hlZXQgKHNjc3MvcGFydGlhbHMvdjEvXG4gICAgLy8gX2Rtcy1pZG9jLnNjc3MsIHN5bmNlZCBpbnRvIHRoZSBQV0EgYXMgcWRuYS1pZG9jLmNzcyksIHNvIHRoZSBhcHAgYW5kIHRoZVxuICAgIC8vIGJhY2tvZmZpY2UgZHJlc3MgdGhlIGJsb2NrcyBmcm9tIG9uZSBzb3VyY2UuXG4gICAgLy9cbiAgICAvLyBNaXJyb3JzIHdoYXQgdGhlIGJhY2tvZmZpY2Ugdmlld2VyJ3Mgb3duICNkbXMtdmlld2VyIC5kbXMtaWRvYy1zY3JvbGwgd3JhcHBlclxuICAgIC8vIGRvZXMg4oCUIHNhbWUgam9iLCBzYW1lIGRhcmsgY2hyb21lIGFyb3VuZCBhIGxpZ2h0IHBhZ2UuXG4gICAgLnFkdi1pZG9jIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgLy8gTkVWRVIgb3ZlcmZsb3cteDogYXV0byBoZXJlLiBBIHdpZGUgcHJvdG9jb2wgdGFibGUgc2Nyb2xscyBpbnNpZGUgaXRzIE9XTlxuICAgICAgICAvLyB3cmFwcGVyICguZG1zLWlkb2MtdGFibGUtd3JhcCk7IGlmIHRoaXMgc3VyZmFjZSBjb3VsZCBzY3JvbGwgc2lkZXdheXMgdG9vLFxuICAgICAgICAvLyB0aGUgd2hvbGUgcGFnZSB3b3VsZCBkcmlmdCBvZmYtY2VudHJlIHRoZSBmaXJzdCB0aW1lIHNvbWVvbmUgZHJhZ2dlZCBhXG4gICAgICAgIC8vIHRhYmxlLiBUaGlzIGlzIHRoZSBvbmUgcnVsZSB0aGF0IGtlZXBzIGJlc2x1aXQgMiB3b3JraW5nLlxuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICAgICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICAgICAgLy8gUm9vbSBmb3IgdGhlIHRvcGJhciBhYm92ZSBhbmQgdGhlIGhvbWUgaW5kaWNhdG9yIGJlbG93LCBzbyB0aGUgZmlyc3RcbiAgICAgICAgLy8gaGVhZGluZyBpcyBub3QgdHVja2VkIHVuZGVyIHRoZSBjaHJvbWUgYW5kIHRoZSBsYXN0IGJsb2NrIGlzIHJlYWNoYWJsZS5cbiAgICAgICAgcGFkZGluZzogMTJweCAwIGNhbGMoMjRweCArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLCAwcHgpKTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgLy8gU2xpbSBzY3JvbGxiYXIgb24gYSBUUkFOU1BBUkVOVCB0cmFjayDigJQgaG91c2UgY29udmVudGlvbiwgbmV2ZXIgdGhlIHdpZGVcbiAgICAgICAgLy8gZGVmYXVsdCBicm93c2VyIGJhciBvdmVyIGRhcmsgY2hyb21lLlxuICAgICAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47XG4gICAgICAgIHNjcm9sbGJhci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI4KSB0cmFuc3BhcmVudDtcblxuICAgICAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiA4cHg7IGhlaWdodDogOHB4OyB9XG4gICAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIyKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE9uIGEgcGhvbmUgdGhlIHBhZ2UgZmlsbHMgdGhlIHdpZHRoIGVkZ2UgdG8gZWRnZSAodGhlIHNoYXJlZCBzdHlsZXNoZWV0IGRyb3BzXG4gICAgLy8gaXRzIG93biByYWRpdXMgYmVsb3cgNjQwcHgpOyB0aGUgZGFyayBndXR0ZXIgdGhhdCBsb29rcyByaWdodCBvbiBhIHRhYmxldCBqdXN0XG4gICAgLy8gZWF0cyByZWFkaW5nIHdpZHRoIGhlcmUuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgICAgIC5xZHYtaWRvYyB7IHBhZGRpbmctdG9wOiAwOyB9XG4gICAgfVxuXG4gICAgLy8gLS0tLSBQREYgcmVuZGVyZXIgKGNvbnRpbnVvdXMgdmVydGljYWwgc2Nyb2xsIG9mIHJlbmRlcmVkIHBhZ2VzKSAtLS0tXG4gICAgLnFkdi1wZGYge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgICAgICB0b3VjaC1hY3Rpb246IHBhbi15OyAgICAgICAgLy8gbmF0aXZlIHZlcnRpY2FsIHNjcm9sbDsgSlMgb3ducyBwaW5jaCAoMi1maW5nZXIpXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAvLyBUaGUgcmVuZGVyZXIgc3dhcHMgcGFnZSBjYW52YXNlcyBpbiBhbmQgb3V0IGNvbnN0YW50bHkgKGxhenkgcmVuZGVyL3JlbGVhc2UpLlxuICAgICAgICAvLyBUaGUgYnJvd3NlcidzIG93biBzY3JvbGwgYW5jaG9yaW5nIHJlYWN0cyB0byB0aGF0IGJ5IG1vdmluZyB0aGUgc2Nyb2xsIG9mZnNldCxcbiAgICAgICAgLy8gd2hpY2ggZmlnaHRzIHRoZSByZWFkaW5nIHBvc2l0aW9uIHRoZSByZW5kZXJlciByZXN0b3JlcyBpdHNlbGYgYWZ0ZXIgYSB3aWR0aFxuICAgICAgICAvLyBjaGFuZ2UgLSBtZWFzdXJlZCAwMy4wOC4yMDI2OiBpdCB0aHJldyB0aGUgdmlldyBiYWNrIHRvIHBhZ2UgMS5cbiAgICAgICAgb3ZlcmZsb3ctYW5jaG9yOiBub25lO1xuICAgIH1cbiAgICAucWR2LXBkZi5pcy16b29tZWQgeyB0b3VjaC1hY3Rpb246IHBhbi14IHBhbi15OyB9XG4gICAgLnFkdi1wZGYtcGFnZXMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMCBjYWxjKDEycHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSwgMHB4KSk7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7ICAgLy8gbGl2ZSBwaW5jaCBmZWVkYmFjayBzY2FsZXMgZnJvbSB0aGUgdG9wXG4gICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gICAgfVxuICAgIC5xZHYtcGFnZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAycHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMzUpO1xuICAgICAgICAvLyB3aWR0aC9oZWlnaHQgc2V0IGlubGluZSBwZXIgcGFnZSAoZml0LXdpZHRoKTsgYSBwbGFpbiBib3ggdW50aWwgcmVuZGVyZWRcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAvLyBORVZFUiBsZXQgdGhlIGNvbHVtbiBmbGV4IHNocmluayBhIHBhZ2UuIFRoZSBwYWdlcyB3cmFwcGVyIGlzIHN0cmV0Y2hlZCB0byB0aGVcbiAgICAgICAgLy8gc3RhZ2UgaGVpZ2h0LCBzbyBhcyBzb29uIGFzIHRoZSBkb2N1bWVudCBpcyB0YWxsZXIgdGhhbiB0aGUgc3RhZ2UgdGhlIHBhZ2VzIGFyZVxuICAgICAgICAvLyBcIm92ZXJmbG93aW5nIGZsZXggaXRlbXNcIiBhbmQgdGhlIGRlZmF1bHQgZmxleC1zaHJpbms6MSBzcXVhc2hlcyB0aGVtLiBBIHBhZ2VcbiAgICAgICAgLy8gaG9sZGluZyBhIGNhbnZhcyByZXNpc3RzICh0aGUgY2FudmFzIGdpdmVzIGl0IGEgbWluaW11bSBzaXplKSwgYnV0IGFuIEVNUFRZIG9uZVxuICAgICAgICAvLyAtIG5vdCB5ZXQgcmVuZGVyZWQsIG9yIHJlbGVhc2VkIHRvIHNhdmUgbWVtb3J5IC0gY29sbGFwc2VzIHRvIDBweCwgd2hpY2ggdGhyb3dzXG4gICAgICAgIC8vIG9mZiB0aGUgc2Nyb2xsIGhlaWdodCBhbmQgdGhlIHJlYWRpbmcgcG9zaXRpb24uIE1lYXN1cmVkIDAzLjA4LjIwMjYuXG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgICAucWR2LXBhZ2UgY2FudmFzIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuICAgIC8vIHBhZ2UgcGxhY2Vob2xkZXIgc2hpbW1lciB1bnRpbCBpdHMgY2FudmFzIGlzIHJlbmRlcmVkXG4gICAgLnFkdi1wYWdlOm5vdCguaXMtcmVuZGVyZWQpOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMDBkZWcsIHZhcigtLWMtYmctY2FyZC1ob3ZlcikgMzAlLCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIpIDUwJSwgdmFyKC0tYy1iZy1jYXJkLWhvdmVyKSA3MCUpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcbiAgICAgICAgYW5pbWF0aW9uOiBxZHYtc2hpbW1lciAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgIH1cblxuICAgIC8vIC0tLS0gcGFnZSBwaWxsIChcIjMgLyAxMlwiKSAtLS0tXG4gICAgLnFkdi1wYWdlcGlsbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICBib3R0b206IGNhbGMoMTZweCArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLCAwcHgpKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIwLCAyMiwgNDAsIDAuODIpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHBhZGRpbmc6IDVweCAxMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjIwbXMgZWFzZTtcbiAgICAgICAgei1pbmRleDogMztcbiAgICB9XG4gICAgLnFkdi1wYWdlcGlsbC5pcy12aXNpYmxlIHsgb3BhY2l0eTogMTsgfVxuICAgICYucWR2LWNocm9tZS1oaWRkZW4gLnFkdi1wYWdlcGlsbCB7IGJvdHRvbTogMTZweDsgfVxuXG4gICAgLy8gLS0tLSBQREYgdGV4dCBsYXllciAoc2VsZWN0YWJsZSB0ZXh0ICsgc2VhcmNoIGhpZ2hsaWdodCBvdmVyIGVhY2ggY2FudmFzKSAtLS0tXG4gICAgLnFkdi10ZXh0bGF5ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgdGV4dC1hbGlnbjogaW5pdGlhbDtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTtcbiAgICB9XG4gICAgLnFkdi10ZXh0bGF5ZXIgc3BhbixcbiAgICAucWR2LXRleHRsYXllciBiciB7XG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlO1xuICAgICAgICBjdXJzb3I6IHRleHQ7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICB9XG4gICAgLnFkdi10ZXh0bGF5ZXIgOjpzZWxlY3Rpb24geyBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAwLjM1KTsgfVxuICAgIC5xZHYtdGV4dGxheWVyIC5xZHYtaGwgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjEzLCAwLCAwLjQ1KTsgYm9yZGVyLXJhZGl1czogMnB4OyB9XG4gICAgLnFkdi10ZXh0bGF5ZXIgLnFkdi1obC1jdXJyZW50IHsgYmFja2dyb3VuZDogcmdiYSgyNTUsIDE0NSwgMCwgMC43KTsgfVxuXG4gICAgLy8gLS0tLSBpbi1kb2N1bWVudCBzZWFyY2ggYmFyIChQREYgb25seSkgLS0tLVxuICAgIC5xZHYtc2VhcmNoYmFyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgdG9wOiBjYWxjKDhweCArIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wLCAwcHgpKTtcbiAgICAgICAgei1pbmRleDogNDtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMjRweCk7XG4gICAgICAgIHBhZGRpbmc6IDZweCA4cHggNnB4IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1icmlnaHQtYmx1ZS10ZXh0KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBib3gtc2hhZG93OiAwIDZweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgICB9XG4gICAgJi5xZHYtc2VhcmNoaW5nIC5xZHYtc2VhcmNoYmFyIHsgZGlzcGxheTogZmxleDsgfVxuICAgICYucWR2LXNlYXJjaGluZyAucWR2LXRvcGJhciB7IG9wYWNpdHk6IDA7IHBvaW50ZXItZXZlbnRzOiBub25lOyB9IC8vIHNlYXJjaCB0YWtlcyBvdmVyIHRoZSBiYXJcbiAgICAucWR2LXNlYXJjaC1pbnB1dCB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICBtaW4td2lkdGg6IDgwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpO1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICB9XG4gICAgLnFkdi1zZWFyY2gtaW5wdXQ6OnBsYWNlaG9sZGVyIHsgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZC1wcCk7IH1cbiAgICAucWR2LXNlYXJjaC1jb3VudCB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXNpZGViYXItaWNvbik7XG4gICAgICAgIG1pbi13aWR0aDogMzhweDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gICAgfVxuICAgIC5xZHYtc2VhcmNoYmFyIHFkbmFwcm8taWNvbi1idG4geyBjb2xvcjogdmFyKC0tYy1ib3JkZXItdHJlZS1icmlnaHQpOyBmbGV4OiAwIDAgYXV0bzsgfVxuXG4gICAgLy8gLS0tLSB2aWRlbyAvIGF1ZGlvIHJlbmRlcmVyIC0tLS1cbiAgICAucWR2LW1lZGlhIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuICAgIC5xZHYtdmlkZW8ge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS05NTApO1xuICAgIH1cbiAgICAucWR2LWF1ZGlvIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMzIwcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICB9XG5cbiAgICAvLyAtLS0tIGxvYWRpbmcgKHNwaW5uZXIgKyBvcHRpb25hbCBibHVyLXVwIHRodW1ibmFpbCkgLS0tLVxuICAgIC5xZHYtbG9hZGluZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbiAgICAucWR2LXRodW1iIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtYXgtd2lkdGg6IDkwJTtcbiAgICAgICAgbWF4LWhlaWdodDogOTAlO1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICBmaWx0ZXI6IGJsdXIoMTRweCk7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTsgLy8gaGlkZSB0aGUgYmx1cnJlZCBlZGdlXG4gICAgfVxuICAgIC5xZHYtc3Bpbm5lciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDM4cHg7XG4gICAgICAgIGhlaWdodDogMzhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBib3JkZXI6IDNweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjIpO1xuICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpO1xuICAgICAgICBhbmltYXRpb246IHFkdi1zcGluIDAuOHMgbGluZWFyIGluZmluaXRlO1xuICAgIH1cblxuICAgIC8vIC0tLS0gc3RhdGUgLyBzdHViIC8gZmFsbGJhY2sgY2FyZCAtLS0tXG4gICAgLnFkdi1jYXJkIHtcbiAgICAgICAgbWF4LXdpZHRoOiAzMjBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgIH1cbiAgICAucWR2LWNhcmQtaWNvbiB7XG4gICAgICAgIC0tcWRuYXByby1pY29uLXNpemU6IDQ0cHg7XG4gICAgICAgIHdpZHRoOiA0NHB4O1xuICAgICAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQtcHApO1xuICAgIH1cbiAgICAucWR2LWNhcmQtZmlsZWljb24geyBtYXJnaW4tYm90dG9tOiA0cHg7IH1cbiAgICAucWR2LWNhcmQtdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpO1xuICAgIH1cbiAgICAucWR2LWNhcmQtdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXNpZGViYXItaWNvbik7XG4gICAgfVxuICAgIC5xZHYtY2FyZCBxZG5hcHJvLWJ1dHRvbiB7IG1hcmdpbi10b3A6IDZweDsgfVxuXG4gICAgLy8gLS0tLSByYXRpbmcgcGlsbCAoXCJ3YXMgdGhpcyBkb2N1bWVudCBoZWxwZnVsP1wiKSAtLS0tXG4gICAgLy8gQm90dG9tLUxFRlQ6IHRoZSBOb3ZhIGxhdW5jaGVyIG93bnMgYm90dG9tLXJpZ2h0IGFjcm9zcyB0aGlzIHByb2R1Y3QsIHNvIGFcbiAgICAvLyByYXRpbmcgY29udHJvbCBtdXN0IG5ldmVyIGJlIHBsYWNlZCB0aGVyZS4gUGFydCBvZiB0aGUgY2hyb21lLCBzbyBpdCBmYWRlc1xuICAgIC8vIG91dCB0b2dldGhlciB3aXRoIHRoZSB0b3BiYXIgb24gYSB0YXAgKHJ1bGUgYmVsb3cpIOKAlCBhIHJlYWRlciB3aG8gd2FudHMgdG9cbiAgICAvLyBsb29rIGF0IHRoZSBkb2N1bWVudCB1bmRpc3R1cmJlZCBsb3NlcyBpdCBpbiB0aGUgc2FtZSBnZXN0dXJlLlxuICAgIC5xZHYtZmIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IGNhbGMoMTZweCArIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCwgMHB4KSk7XG4gICAgICAgIGJvdHRvbTogY2FsYygxNnB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sIDBweCkpO1xuICAgICAgICB6LWluZGV4OiA0O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgICAgcGFkZGluZzogNHB4IDZweCA0cHggMTRweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyOSwgMzIsIDU2LCAwLjk0KTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgNnB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjM4KSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLCB0cmFuc2Zvcm0gMjAwbXMgZWFzZTtcblxuICAgICAgICAmW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4gICAgfVxuICAgIC5xZHYtZmItbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDAuODJyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCk7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDRweDtcblxuICAgICAgICAmW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4gICAgfVxuICAgIC5xZHYtZmIgcWRuYXByby1pY29uLWJ0biB7IGNvbG9yOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCk7IGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuICAgIC8vIENob3NlbiB0aHVtYjogZmlsbGVkIGljb24gKyBhIGxpZ2h0IHBpbGwgYmVoaW5kIGl0LiBEZWxpYmVyYXRlbHkgbm8gZ3JlZW4gb3JcbiAgICAvLyByZWQg4oCUIGFuIG9waW5pb24gYWJvdXQgYSBkb2N1bWVudCBpcyBub3QgYSBzdGF0dXMsIGFuZCBjb2xvdXIgd291bGQgcmVhZCBhc1xuICAgIC8vIGFwcHJvdmFsIG9yIHJlamVjdGlvbi5cbiAgICAucWR2LWZiIHFkbmFwcm8taWNvbi1idG4uaXMtYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICAgIH1cblxuICAgIC8vIC0tLS0gXCJ3aHkgbm90IGhlbHBmdWw/XCIgcG9wdXAgKGdyb3dzIG91dCBvZiB0aGUgcmF0aW5nIHBpbGwpIC0tLS1cbiAgICAvLyBEZWxpYmVyYXRlbHkgTk9UIGEgYm90dG9tLXNoZWV0OiBhIHNoZWV0IHRha2VzIG92ZXIgdGhlIHdob2xlIHNjcmVlbiBhbmRcbiAgICAvLyByZWFkcyBhcyBcInlvdSBtdXN0IGFuc3dlciB0aGlzXCIsIHdoaWxlIHRoZSBub3RlIGlzIHZvbHVudGFyeSDigJQgdGhlIHZvdGUgaXNcbiAgICAvLyBhbHJlYWR5IHNhdmVkIGJ5IHRoZSB0aW1lIHRoaXMgYXBwZWFycy5cbiAgICAucWR2LWZiLW5vdGUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IGNhbGMoMTZweCArIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCwgMHB4KSk7XG4gICAgICAgIGJvdHRvbTogY2FsYyg3MnB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sIDBweCkpO1xuICAgICAgICByaWdodDogY2FsYygxNnB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCwgMHB4KSk7XG4gICAgICAgIG1heC13aWR0aDogMzgwcHg7XG4gICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgcGFkZGluZzogMTRweCAxNHB4IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtdGV4dC1oZWFkaW5nKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLCAwLCAwLCAwLjQ1KTtcblxuICAgICAgICAmW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4gICAgfVxuICAgIC5xZHYtZmItbm90ZS1oZWFkIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBmb250LXNpemU6IDAuODZyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zNTtcblxuICAgICAgICBxZG5hcHJvLWljb24geyBmbGV4OiAwIDAgYXV0bzsgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZC1wcCk7IG1hcmdpbi10b3A6IDFweDsgfVxuICAgIH1cbiAgICAucWR2LWZiLW5vdGUtc3ViIHtcbiAgICAgICAgbWFyZ2luOiAtNHB4IDAgMDtcbiAgICAgICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkLXBwKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICB9XG4gICAgLy8gTmF0aXZlIHRleHRhcmVhIChzYW1lIHNlbGYtY29udGFpbmVkIGNob2ljZSBhcyAucWR2LXNlYXJjaC1pbnB1dCBhYm92ZSk6XG4gICAgLy8gdGhlIHZpZXdlciBtdXN0IGxvb2sgdGhlIHNhbWUgd2hlcmV2ZXIgaXQgaXMgbW91bnRlZCwgc28gaXQgbmV2ZXIgbGVhbnMgb25cbiAgICAvLyBhbm90aGVyIGNvbXBvbmVudCBiZWluZyBsb2FkZWQuXG4gICAgLnFkdi1mYi1ub3RlLWlucHV0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHJlc2l6ZTogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLWJyaWdodC1ibHVlLXRleHQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHsgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZC1wcCk7IH1cbiAgICAgICAgJjpmb2N1cyB7IGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMyKTsgfVxuICAgIH1cbiAgICAucWR2LWZiLW5vdGUtYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGdhcDogOHB4O1xuICAgIH1cbiAgICAvLyBBIHN1YnRsZSBidXR0b24gaXMgbmVhci1ibGFjayBieSBkZWZhdWx0IOKAlCB1bnJlYWRhYmxlIG9uIHRoaXMgZGFyayBjYXJkLlxuICAgIC5xZHYtZmItbm90ZS1hY3Rpb25zIHFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zdWJ0bGUgeyBjb2xvcjogdmFyKC0tYy1ib3JkZXItdHJlZS1icmlnaHQpOyB9XG5cbiAgICAvLyAtLS0tIGNocm9tZSBoaWRkZW4gKHRhcC10by10b2dnbGUpIC0tLS1cbiAgICAmLnFkdi1jaHJvbWUtaGlkZGVuIC5xZHYtdG9wYmFyIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICAgICYucWR2LWNocm9tZS1oaWRkZW4gLnFkdi1mYiB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gICAgLy8gVGhlIG5vdGUgcG9wdXAgZG9lcyBOT1QgaGlkZSB3aXRoIHRoZSBjaHJvbWU6IHNvbWVvbmUgdHlwaW5nIGEgc2VudGVuY2UgdGFwc1xuICAgIC8vIHRoZSBzY3JlZW4gYW5kIHdvdWxkIG90aGVyd2lzZSBsb3NlIGJvdGggdGhlIHBvcHVwIGFuZCB0aGVpciB0ZXh0LlxuXG4gICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICAgICAgLnFkdi10b3BiYXIsIC5xZHYtZmIgeyB0cmFuc2l0aW9uOiBub25lOyB9XG4gICAgICAgIC5xZHYtc3Bpbm5lciB7IGFuaW1hdGlvbi1kdXJhdGlvbjogMS42czsgfVxuICAgIH1cbn1cblxuQGtleWZyYW1lcyBxZHYtc3BpbiB7XG4gICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XG59XG5cbkBrZXlmcmFtZXMgcWR2LXNoaW1tZXIge1xuICAgIGZyb20geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAyMDAlIDA7IH1cbiAgICB0byB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMDAlIDA7IH1cbn1cblxuLy8gTG9jayB0aGUgdW5kZXJseWluZyBwYWdlIHdoaWxlIHRoZSB2aWV3ZXIgaXMgb3BlbiAocG9ydGFsbGVkIHRvIDxib2R5PikuXG46cm9vdC5xZHYtb3Blbixcbjpyb290LnFkdi1vcGVuIGJvZHkge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9kcm9wLXpvbmUvX2Ryb3Atem9uZS1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4udGV4dC1oMSB7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDYwcHg7XG4gIGxpbmUtaGVpZ2h0OiA3MnB4O1xufVxuXG4udGV4dC1oMiB7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDQwcHg7XG4gIGxpbmUtaGVpZ2h0OiA1NnB4O1xufVxuXG4udGV4dC1oMyB7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDMycHg7XG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xufVxuXG4udGV4dC1oNCB7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDI4cHg7XG4gIGxpbmUtaGVpZ2h0OiA0NHB4O1xufVxuXG4udGV4dC1oNSB7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGxpbmUtaGVpZ2h0OiAzNnB4O1xufVxuXG4udGV4dC1oNiB7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4udGV4dC1ib2R5LXhzIHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG59XG5cbi50ZXh0LWJvZHktc20ge1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbn1cblxuLnRleHQtYm9keS1tZCB7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4udGV4dC1ib2R5LWxnIHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG59XG5cbi50ZXh0LWJvZHkteGwge1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMzJweDtcbn1cblxuLnFkbmFwcm8tZHJvcC16b25lIHtcbiAgLS1kei1jLWJvcmRlcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgLS1kei1jLWJvcmRlci1oaWdobGlnaHQ6IHZhcigtLWMtYWN0aW9uLTUwMCk7XG4gIC0tZHotYy1iZy10aW50OiByZ2JhKDcwLCA4MiwgMjQzLCAwLjA4KTtcbiAgLS1kei1jLWJnLXRpbnQtZnVsbDogcmdiYSg3MCwgODIsIDI0MywgMC4xNCk7XG4gIC0tZHotYy1vdmVybGF5LXRleHQ6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIC0tZHotYy1vdmVybGF5LXRleHQtaGlnaGxpZ2h0OiB2YXIoLS1jLWFjdGlvbi01MDApO1xuICAtLWR6LWMtcmVqZWN0LWJvcmRlcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpO1xuICAtLWR6LWMtcmVqZWN0LWJnOiByZ2JhKDE5OCwgOTAsIDkwLCAwLjEwKTtcbiAgLS1kei1jLXJlamVjdC1iZy1mdWxsOiByZ2JhKDE5OCwgOTAsIDkwLCAwLjE2KTtcbiAgLS1kei1jLXJlamVjdC10ZXh0OiB2YXIoLS1jLWNoaXAtcmVkLXRleHQpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDE4MG1zIGVhc2UsIGJhY2tncm91bmQgMTgwbXMgZWFzZTtcbn1cbi5xZG5hcHJvLWRyb3Atem9uZSAuZHJvcC16b25lLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTgwbXMgZWFzZTtcbiAgei1pbmRleDogMjtcbn1cbi5xZG5hcHJvLWRyb3Atem9uZSAuZHJvcC16b25lLW1hcmNoLXN2ZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby1kcm9wLXpvbmUgLmRyb3Atem9uZS1tYXJjaC1yZWN0IHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDJweCk7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gMnB4KTtcbiAgYW5pbWF0aW9uOiBkcm9wLXpvbmUtbWFyY2ggMS42cyBsaW5lYXIgaW5maW5pdGU7XG59XG4ucWRuYXByby1kcm9wLXpvbmUuZHJvcC16b25lLWFjdGl2ZSAuZHJvcC16b25lLW1hcmNoLXN2ZywgLnFkbmFwcm8tZHJvcC16b25lLmZvcmNlLWFjdGl2ZSAuZHJvcC16b25lLW1hcmNoLXN2ZyB7XG4gIGNvbG9yOiB2YXIoLS1kei1tYXJjaC1jb2xvcik7XG59XG4ucWRuYXByby1kcm9wLXpvbmUgLmRyb3Atem9uZS1vdmVybGF5LWlubmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDE2cHggMjRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnFkbmFwcm8tZHJvcC16b25lIC5kcm9wLXpvbmUtb3ZlcmxheS1pY29uIHtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgY29sb3I6IHZhcigtLWR6LWMtb3ZlcmxheS10ZXh0KTtcbn1cbi5xZG5hcHJvLWRyb3Atem9uZS5kcm9wLXpvbmUtYWN0aXZlIC5kcm9wLXpvbmUtb3ZlcmxheS1pY29uLCAucWRuYXByby1kcm9wLXpvbmUuZm9yY2UtYWN0aXZlIC5kcm9wLXpvbmUtb3ZlcmxheS1pY29uIHtcbiAgYW5pbWF0aW9uOiBkcm9wLXpvbmUtaWNvbi1maWd1cmU4IDZzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuLnFkbmFwcm8tZHJvcC16b25lIC5kcm9wLXpvbmUtb3ZlcmxheS1pY29uIHN2ZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnFkbmFwcm8tZHJvcC16b25lIC5kcm9wLXpvbmUtb3ZlcmxheS10ZXh0IHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tZHotYy1vdmVybGF5LXRleHQpO1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuLnFkbmFwcm8tZHJvcC16b25lIC5kcm9wLXpvbmUtb3ZlcmxheS1oaW50IHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogdmFyKC0tZHotYy1vdmVybGF5LXRleHQpO1xuICBvcGFjaXR5OiAwLjc7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG4ucWRuYXByby1kcm9wLXpvbmUgPiA6bm90KC5kcm9wLXpvbmUtb3ZlcmxheSk6bm90KC5kcm9wLXpvbmUtaW5wdXQpIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxODBtcyBlYXNlLCBmaWx0ZXIgMTgwbXMgZWFzZSwgd2lkdGggMzIwbXMgZWFzZS1pbi1vdXQ7XG59XG4ucWRuYXByby1kcm9wLXpvbmUuZHJvcC16b25lLWFjdGl2ZSA+IDpub3QoLmRyb3Atem9uZS1vdmVybGF5KTpub3QoLmRyb3Atem9uZS1pbnB1dCkge1xuICBvcGFjaXR5OiAwLjQ1O1xuICBmaWx0ZXI6IGJsdXIoNnB4KTtcbn1cbi5xZG5hcHJvLWRyb3Atem9uZS5kcm9wLXpvbmUtc3R5bGUtZGFzaGVkLmRyb3Atem9uZS1hY3RpdmU6bm90KC5kcm9wLXpvbmUtcmVqZWN0KSB7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCB0b3AgbGVmdCwgdmFyKC0tZHotYy1iZy10aW50KSwgdHJhbnNwYXJlbnQgNTUlKSwgcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgYm90dG9tIHJpZ2h0LCB2YXIoLS1kei1jLWJnLXRpbnQpLCB0cmFuc3BhcmVudCA1NSUpO1xuICAtLWR6LW1hcmNoLWNvbG9yOiB2YXIoLS1kei1jLWJvcmRlcik7XG59XG4ucWRuYXByby1kcm9wLXpvbmUuZHJvcC16b25lLXN0eWxlLXNvbGlkLmRyb3Atem9uZS1hY3RpdmU6bm90KC5kcm9wLXpvbmUtcmVqZWN0KSB7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWR6LWMtYm9yZGVyKTtcbiAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgdG9wIGxlZnQsIHZhcigtLWR6LWMtYmctdGludCksIHRyYW5zcGFyZW50IDU1JSksIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IGJvdHRvbSByaWdodCwgdmFyKC0tZHotYy1iZy10aW50KSwgdHJhbnNwYXJlbnQgNTUlKTtcbn1cbi5xZG5hcHJvLWRyb3Atem9uZS5kcm9wLXpvbmUtc3R5bGUtaGlnaGxpZ2h0LmRyb3Atem9uZS1hY3RpdmU6bm90KC5kcm9wLXpvbmUtcmVqZWN0KSB7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1kei1jLWJnLXRpbnQtZnVsbCk7XG4gIC0tZHotYy1vdmVybGF5LXRleHQ6IHZhcigtLWR6LWMtb3ZlcmxheS10ZXh0LWhpZ2hsaWdodCk7XG4gIC0tZHotbWFyY2gtY29sb3I6IHZhcigtLWR6LWMtYm9yZGVyLWhpZ2hsaWdodCk7XG59XG4ucWRuYXByby1kcm9wLXpvbmUuZHJvcC16b25lLXN0eWxlLWRhc2hlZC5kcm9wLXpvbmUtYWN0aXZlLmRyb3Atem9uZS1yZWplY3Qge1xuICBib3JkZXI6IDJweCBkYXNoZWQgdmFyKC0tZHotYy1yZWplY3QtYm9yZGVyKTtcbiAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgdG9wIGxlZnQsIHZhcigtLWR6LWMtcmVqZWN0LWJnKSwgdHJhbnNwYXJlbnQgNTUlKSwgcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgYm90dG9tIHJpZ2h0LCB2YXIoLS1kei1jLXJlamVjdC1iZyksIHRyYW5zcGFyZW50IDU1JSk7XG4gIC0tZHotYy1vdmVybGF5LXRleHQ6IHZhcigtLWR6LWMtcmVqZWN0LXRleHQpO1xufVxuLnFkbmFwcm8tZHJvcC16b25lLmRyb3Atem9uZS1zdHlsZS1zb2xpZC5kcm9wLXpvbmUtYWN0aXZlLmRyb3Atem9uZS1yZWplY3Qge1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1kei1jLXJlamVjdC1ib3JkZXIpO1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCB0b3AgbGVmdCwgdmFyKC0tZHotYy1yZWplY3QtYmcpLCB0cmFuc3BhcmVudCA1NSUpLCByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCBib3R0b20gcmlnaHQsIHZhcigtLWR6LWMtcmVqZWN0LWJnKSwgdHJhbnNwYXJlbnQgNTUlKTtcbiAgLS1kei1jLW92ZXJsYXktdGV4dDogdmFyKC0tZHotYy1yZWplY3QtdGV4dCk7XG59XG4ucWRuYXByby1kcm9wLXpvbmUuZHJvcC16b25lLXN0eWxlLWhpZ2hsaWdodC5kcm9wLXpvbmUtYWN0aXZlLmRyb3Atem9uZS1yZWplY3Qge1xuICBib3JkZXI6IDJweCBkYXNoZWQgdmFyKC0tZHotYy1yZWplY3QtYm9yZGVyKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tZHotYy1yZWplY3QtYmctZnVsbCk7XG4gIC0tZHotYy1vdmVybGF5LXRleHQ6IHZhcigtLWR6LWMtcmVqZWN0LXRleHQpO1xufVxuLnFkbmFwcm8tZHJvcC16b25lLmRyb3Atem9uZS1hY3RpdmUgLmRyb3Atem9uZS1vdmVybGF5IHtcbiAgb3BhY2l0eTogMTtcbn1cbi5xZG5hcHJvLWRyb3Atem9uZS5kcm9wLXpvbmUtY2xpY2thYmxlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnFkbmFwcm8tZHJvcC16b25lLmRyb3Atem9uZS1jbGlja2FibGU6bm90KC5kcm9wLXpvbmUtYWN0aXZlKTpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZHotYy1ib3JkZXIpO1xuICBvcGFjaXR5OiAxO1xufVxuLnFkbmFwcm8tZHJvcC16b25lLmRyb3Atem9uZS1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWRyb3Atem9uZSB7XG4gIC0tZHotYy1ib3JkZXI6ICNhNWFjZmY7XG4gIC0tZHotYy1ib3JkZXItaGlnaGxpZ2h0OiAjYzRjYWZmO1xuICAtLWR6LWMtYmctdGludDogcmdiYSgxNjUsIDE3MiwgMjU1LCAwLjEwKTtcbiAgLS1kei1jLWJnLXRpbnQtZnVsbDogcmdiYSgxNjUsIDE3MiwgMjU1LCAwLjE4KTtcbiAgLS1kei1jLW92ZXJsYXktdGV4dDogI2M0Y2FmZjtcbiAgLS1kei1jLW92ZXJsYXktdGV4dC1oaWdobGlnaHQ6ICNkNmRhZmY7XG4gIC0tZHotYy1yZWplY3QtYm9yZGVyOiAjZmJhYWFhO1xuICAtLWR6LWMtcmVqZWN0LWJnOiByZ2JhKDI1MSwgMTcwLCAxNzAsIDAuMTApO1xuICAtLWR6LWMtcmVqZWN0LWJnLWZ1bGw6IHJnYmEoMjUxLCAxNzAsIDE3MCwgMC4xOCk7XG4gIC0tZHotYy1yZWplY3QtdGV4dDogI2ZlZTNlMztcbn1cblxuQGtleWZyYW1lcyBkcm9wLXpvbmUtbWFyY2gge1xuICB0byB7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0xMjtcbiAgfVxufVxuQGtleWZyYW1lcyBkcm9wLXpvbmUtaWNvbi1maWd1cmU4IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICB9XG4gIDEyLjUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg0cHgsIDNweCk7XG4gIH1cbiAgMjUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIDApO1xuICB9XG4gIDM3LjUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg0cHgsIC0zcHgpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIH1cbiAgNjIuNSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC00cHgsIDNweCk7XG4gIH1cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNXB4LCAwKTtcbiAgfVxuICA4Ny41JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTRweCwgLTNweCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIH1cbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5xZG5hcHJvLWRyb3Atem9uZSAuZHJvcC16b25lLW92ZXJsYXktaWNvbiB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG4gIC5xZG5hcHJvLWRyb3Atem9uZTo6YmVmb3JlIHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gIH1cbn1cbiIsIi8vIHFkbmFwcm8tZWRpdC1mcmFtZSDigJQgc2hhcmVkIGRvdHRlZC1ncmlkIFwid29ya3NwYWNlXCIgY2FudmFzLlxuLy9cbi8vIFByb21vdGVkIG91dCBvZiBiYWNrb2ZmaWNlMi9zY3NzL3YxL3Rhc2tsaXN0LWFjdGl2aXRpZXMuc2NzcyAofmxpbmVzXG4vLyA3MzQtNzY2LCBjbGFzcyBgLmVkaXQtZnJhbWVgKSwgcGVyIHRoZSBUT0RPIEtpbSBsZWZ0IGRpcmVjdGx5IGFib3ZlIHRoYXRcbi8vIHJ1bGU6XG4vLyAgIFwiVE9ETyBbS2ltXTogdGhpcyBkb3R0ZWQtZ3JpZCBmcmFtZSBpcyBoYW5kcm9sbGVkIC0gc2hvdWxkIG1vdmUgdG8gYVxuLy8gICAgZGVzaWduLXN5c3RlbSBjb21wb25lbnQgKGUuZy4gcWRuYXByby1lZGl0LWZyYW1lKSBzbyBpdHMgdG9rZW5zIGFyZVxuLy8gICAgc2hhcmVkIGFuZCBkYXJrIG1vZGUgbGl2ZXMgaW4gb25lIHBsYWNlLlwiXG4vLyBUaGlzIGZpbGUgaXMgdGhhdCBjb21wb25lbnQuIHRhc2tsaXN0LWFjdGl2aXRpZXMuc2NzcyBpdHNlbGYgaXMgbGVmdFxuLy8gdW50b3VjaGVkIOKAlCBtaWdyYXRpbmcgdGhlIHRha2VubGlqc3QgcGFnZSBvbnRvIHRoaXMgY2xhc3MgaXMgYSBzZXBhcmF0ZSxcbi8vIGxhdGVyIHRhc2suXG4vL1xuLy8gQ29sb3VyczogYmFja2dyb3VuZCArIGRhcmsgYmFja2dyb3VuZCBtYXRjaCBleGlzdGluZyBwcmltaXRpdmVzIGV4YWN0bHlcbi8vICgtLWMtcHVycGxlLTUwIC8gLS1jLWdyZXktOTAwKSwgc28gdGhvc2UgYXJlIHRva2VuaXplZC4gVGhlIGRvdHRlZC1ncmlkXG4vLyBjb2xvdXIgKCM5ZDk0ZTgpIGFuZCB0aGUgYm9yZGVyL3NoYWRvdyByZ2JhIHRpbnRzIGhhdmUgbm8gbWF0Y2hpbmcgdG9rZW5cbi8vIGluIGRlc2lnbi10b2tlbnMgKHRoZXkgc2l0IGJldHdlZW4gZXhpc3RpbmcgcHVycGxlIHN0ZXBzKSDigJQgcG9ydGVkXG4vLyBsaXRlcmFsbHkgZnJvbSB0aGUgc291cmNlIHJhdGhlciB0aGFuIGludmVudGluZyBhIG5ldyB0b2tlbiwgbWF0Y2hpbmcgaG93XG4vLyBib3JkZXIvc2hhZG93IHRpbnRzIGFyZSBoYW5kbGVkIGVsc2V3aGVyZSBpbiB0aGlzIG1hcCAoZS5nLiBzdGF0LWNhcmQnc1xuLy8gYm94LXNoYWRvdyByZ2JhIHZhbHVlcyBhcmUgYWxzbyBsaXRlcmFsLCBub3QgdG9rZW5pemVkKS5cbi8vXG4vLyBEZWxpYmVyYXRlbHkgTk8gbWluLWhlaWdodC9oZWlnaHQgaGVyZTogdGhlIHNvdXJjZSdzIG1pbi1oZWlnaHQgd2FzIGFcbi8vIHBhZ2Utc3BlY2lmaWMgY2FsYygpIGFnYWluc3QgdGhhdCBwYWdlJ3Mgb3duIHRvcGJhciArIHN1Yi1oZWFkZXIgaGVpZ2h0cy5cbi8vIENvbnN1bWVycyBvZiB0aGlzIGNsYXNzIHNldCB0aGVpciBvd24gaGVpZ2h0L21pbi1oZWlnaHQuXG5cbi5xZG5hcHJvLWVkaXQtZnJhbWUge1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLWNhcmQpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MCk7IC8vIGV4YWN0IG1hdGNoIGZvciB0aGUgc291cmNlJ3MgI2U2ZTlmZlxuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCAjOWQ5NGU4IDFweCwgdHJhbnNwYXJlbnQgMXB4KTtcbiAgYmFja2dyb3VuZC1zaXplOiAyMHB4IDIwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNzAsIDgyLCAyNDMsIDAuMTUpOyAvLyByZ2Igb2YgLS1jLWFjdGlvbi01MDAgKCM0NjUyZjMpLCB0aW50LW9ubHksIG5vIHRva2VuIGZvciB0aGlzIG9wYWNpdHlcbiAgYm94LXNoYWRvdzogaW5zZXQgMCA0cHggMzJweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjA2KSwgaW5zZXQgMCAxcHggOHB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMDQpO1xufVxuXG4vLyBEYXJrIG1vZGU6IFRXTyBzZWxlY3RvciBmb3JtcyBvbiBwdXJwb3NlLCBub3QgYSBkdXBsaWNhdGUuXG4vLyBbZGF0YS10aGVtZT1cImRhcmtcIl0gaXMgdGhlIGZvcm0gdGhlIHNhc3MtdjEgYnVuZGxlIChzdHlsZS12MS5zY3NzLCBlLmcuXG4vLyBfcHVsc2Uuc2NzcykgdGhlbWVzIHdpdGg7IFtkYXRhLXRoZW1lLWRhcmtdIGlzIHRoZSBib29sZWFuIGF0dHJpYnV0ZSB0aGVcbi8vIHN0YW5kYWxvbmUgdGFza2xpc3QtYWN0aXZpdGllcy5zY3NzL2NzcyBidWlsZCB0aGVtZXMgd2l0aCAoc2VlIHRoZVxuLy8gY29tbWVudCBibG9jayBpbiBkZXNpZ24tdG9rZW5zL19kZXNpZ24tdG9rZW5zLnNjc3MgbGluZXMgfjM0MS0zNDQpLiBUaGlzXG4vLyBwYXJ0aWFsIGNvbXBpbGVzIGludG8gc3R5bGUtdjEuY3NzIGJ1dCBpcyBtZWFudCB0byBhbHNvIHdvcmsgb25jZSB0aGVcbi8vIHRha2VubGlqc3QgbWlncmF0ZXMgb250byBpdCBsYXRlciwgc28gYm90aCBmb3JtcyBhcmUgY292ZXJlZCBoZXJlIGZyb21cbi8vIGRheSBvbmUuXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tZWRpdC1mcmFtZSxcbltkYXRhLXRoZW1lLWRhcmtdIC5xZG5hcHJvLWVkaXQtZnJhbWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWdyZXktOTAwKTsgLy8gZXhhY3QgbWF0Y2ggZm9yIHRoZSBzb3VyY2UncyAjMTgxODFjXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYmEoMTY1LCAxNzIsIDI1NSwgMC4yMikgMXB4LCB0cmFuc3BhcmVudCAxcHgpOyAvLyByZ2Igb2YgLS1jLXB1cnBsZS0yMDAgKCNhNWFjZmYpLCBubyB0b2tlbiBmb3IgdGhpcyBvcGFjaXR5XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy13aGl0ZS0wNik7IC8vIGV4YWN0IG1hdGNoIGZvciB0aGUgc291cmNlJ3MgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KVxuICBib3gtc2hhZG93OlxuICAgIGluc2V0IDAgNHB4IDMycHggcmdiYSgwLCAwLCAwLCAwLjQ1KSxcbiAgICBpbnNldCAwIDFweCA4cHggcmdiYSgwLCAwLCAwLCAwLjMwKTtcbn1cbiIsIi8vIHFkbmFwcm8tZW1vamktc2hlZXQg4oCUIFdoYXRzQXBwL2lPUy1zdHlsZSBlbW9qaSBwaWNrZXIgaW4gYSBnbGFzcyBib3R0b20gc2hlZXQuXG4vLyBGTEFUIENTUzsgdGhlIGdsYXNzIHN1cmZhY2UgaXRzZWxmIGxpdmVzIG9uIHFkbmFwcm8tYm90dG9tLXNoZWV0ICh2YXJpYW50PVwiZ2xhc3NcIikuXG4vLyBFZGl0IEhFUkUsIHRoZW4gYGd1bHAgc2Fzcy12MWAuXG4vL1xuLy8gSU1QT1JUQU5UOiB0aGUgaW5uZXIgYm90dG9tLXNoZWV0IFBPUlRBTFMgaXRzZWxmIHRvIDxib2R5PiBvbiBvcGVuLCBzbyBpdHMgY29udGVudFxuLy8gbm8gbG9uZ2VyIHNpdHMgdW5kZXIgdGhlIDxxZG5hcHJvLWVtb2ppLXNoZWV0PiBob3N0LiBBbGwgc3R5bGluZyBpcyB0aGVyZWZvcmUgc2NvcGVkXG4vLyB0byAuZXMtc2hlZXQgKHRoZSBjbGFzcyBvbiB0aGF0IGlubmVyIGJvdHRvbS1zaGVldCwgd2hpY2ggdHJhdmVscyB3aXRoIHRoZSBwb3J0YWwpXG4vLyBhbmQgLmVzLXJvb3QgKHRoZSBjb250ZW50IHJvb3QgaW5zaWRlIGl0KSDigJQgTkVWRVIgdW5kZXIgLnFkbmFwcm8tZW1vamktc2hlZXQuXG5cbi5xZG5hcHJvLWVtb2ppLXNoZWV0IHtcbiAgZGlzcGxheTogY29udGVudHM7IC8vIHRoZSBob3N0IGlzIGp1c3QgYSB3cmFwcGVyOyB0aGUgcmVhbCBVSSBsaXZlcyBvbiAuZXMtc2hlZXRcbn1cblxuLy8gVGhlIGJvdHRvbS1zaGVldCByb290IGRlZmF1bHRzIHRvIHotaW5kZXg6MTAwMCwgYnV0IGNvbnN1bWVycyBtYXkgbGl2ZSB1bmRlciBhXG4vLyBoaWdoZXIgb3ZlcmxheSDigJQgdGhlIFBXQSBwaG90by1hbm5vdGF0b3IgZWRpdG9yIHNpdHMgYXQgei1pbmRleDoyMDAwMC4gTGlmdCBUSElTXG4vLyBzaGVldCBhYm92ZSBpdCAoc2NvcGVkIHRvIC5lcy1zaGVldCwgc28gb3RoZXIgc2hlZXRzIGFyZSB1bnRvdWNoZWQpLiBbMDQuMDcuMjAyNl1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5lcy1zaGVldCB7XG4gIHotaW5kZXg6IDIxMDAwO1xufVxuXG4vLyAtLS0tIFBhbmVsOiBvbmUgRklYRUQgdGFsbCBoZWlnaHQgZm9yIHRoZSB3aG9sZSBsaWZldGltZSAobm8gSlMgbWVhc3VyaW5nKSAtLS0tXG4ucWRuYXByby1ib3R0b20tc2hlZXQuZXMtc2hlZXQgLmJzLXBhbmVsIHtcbiAgaGVpZ2h0OiA4MiU7XG4gIG1heC1oZWlnaHQ6IDgyJTtcbiAgcGFkZGluZzogNHB4IDZweCAwO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmVzLXNoZWV0IC5icy1oYW5kbGUtem9uZSB7XG4gIHBhZGRpbmc6IDhweCAwIDRweDtcbn1cbi8vIFRoZSBib2R5IGp1c3QgZnJhbWVzIHRoZSBlbW9qaSBVSTsgc2Nyb2xsaW5nIGhhcHBlbnMgaW5zaWRlIC5lcy1zY3JvbGwuXG4ucWRuYXByby1ib3R0b20tc2hlZXQuZXMtc2hlZXQgLmJzLWJvZHkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBnYXA6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZXMtcm9vdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gY29udGFpbmluZyBibG9jayBmb3IgdGhlIGFic29sdXRlbHktcG9zaXRpb25lZCB0b25lIHBvcG92ZXJcbiAgZmxleDogMTtcbiAgbWluLWhlaWdodDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xufVxuXG4vLyBDb2xvdXIgZW1vamkgZXZlcnl3aGVyZSBnbHlwaHMgcmVuZGVyLiBTaGFyZWQgd2l0aCAuZXNwLXJvb3QgKHZhcmlhbnQ9XCJwb3BvdmVyXCIsXG4vLyBzZWUgdGhlIGJvdHRvbSBvZiB0aGlzIGZpbGUpOiB0aGUgZ2x5cGggZm9udCBzdGFjayBpcyBpZGVudGljYWwgb24gYm90aCBzdXJmYWNlcy5cbi5lcy1yb290IC5lcy1lbW9qaSxcbi5lcy1yb290IC5lcy10b25lLFxuLmVzcC1yb290IC5lcy1lbW9qaSxcbi5lc3Atcm9vdCAuZXMtdG9uZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCIsIHNhbnMtc2VyaWY7XG59XG5cbi8vIC0tLS0gSWNvbnMgKGlubGluZSBsaW5lIFNWR3MpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5lcy1yb290IC5lcy1pY29uIHsgd2lkdGg6IDI0cHg7IGhlaWdodDogMjRweDsgZGlzcGxheTogYmxvY2s7IGZsZXgtc2hyaW5rOiAwOyB9XG4uZXMtcm9vdCAuZXMtdGFiIC5lcy1pY29uIHsgd2lkdGg6IDIycHg7IGhlaWdodDogMjJweDsgfVxuXG4vLyAtLS0tIFNlYXJjaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uZXMtcm9vdCAuZXMtc2VhcmNoIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHBhZGRpbmc6IDZweCA2cHggMTBweDtcbn1cbi5lcy1yb290IC5lcy1zZWFyY2gtdHJpZ2dlcixcbi5lcy1yb290IC5lcy1zZWFyY2gtZmllbGQge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA0MHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgcGFkZGluZzogMCAxMnB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtd2hpdGUtMDgpO1xuICBjb2xvcjogdmFyKC0tYy13aGl0ZS01NSk7XG4gIGZvbnQtc2l6ZTogMTVweDtcbn1cbi5lcy1yb290IC5lcy1zZWFyY2gtdHJpZ2dlciB7IGN1cnNvcjogdGV4dDsgdGV4dC1hbGlnbjogbGVmdDsgfVxuLmVzLXJvb3QgLmVzLXNlYXJjaC1wbGFjZWhvbGRlciB7IGNvbG9yOiB2YXIoLS1jLXdoaXRlLTQ1KTsgfVxuXG4vLyBDb2xsYXBzZWQgYnkgZGVmYXVsdDsgLmVzLXNlYXJjaGluZyAob24gLmVzLXJvb3QpIHN3YXBzIHRyaWdnZXIgPC0+IGZpZWxkLlxuLmVzLXJvb3QgLmVzLXNlYXJjaC1maWVsZCB7IGRpc3BsYXk6IG5vbmU7IH1cbi5lcy1yb290LmVzLXNlYXJjaGluZyAuZXMtc2VhcmNoLXRyaWdnZXIgeyBkaXNwbGF5OiBub25lOyB9XG4uZXMtcm9vdC5lcy1zZWFyY2hpbmcgLmVzLXNlYXJjaC1maWVsZCB7IGRpc3BsYXk6IGZsZXg7IH1cblxuLmVzLXJvb3QgLmVzLXNlYXJjaC1maWVsZC1pY29uIHsgY29sb3I6IHZhcigtLWMtd2hpdGUtNDUpOyB9XG4uZXMtcm9vdCAuZXMtc2VhcmNoLWlucHV0IHtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbn1cbi5lcy1yb290IC5lcy1zZWFyY2gtaW5wdXQ6OnBsYWNlaG9sZGVyIHsgY29sb3I6IHZhcigtLWMtd2hpdGUtNDUpOyB9XG4uZXMtcm9vdCAuZXMtc2VhcmNoLWNhbmNlbCB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAwIDJweDtcbn1cblxuLy8gLS0tLSBTY3JvbGxlciArIHNlY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmVzLXJvb3QgLmVzLXNjcm9sbCB7XG4gIGZsZXg6IDE7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7XG59XG4uZXMtcm9vdCAuZXMtc2Nyb2xsOjotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiAwOyBoZWlnaHQ6IDA7IGRpc3BsYXk6IG5vbmU7IH1cblxuLmVzLXJvb3QgLmVzLXNlY3Rpb24tdGl0bGUge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDI7XG4gIHBhZGRpbmc6IDhweCA4cHggNHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlLTQ1KTtcbiAgLy8gT3BhcXVlLWVub3VnaCBiYWNraW5nIHNvIHNjcm9sbGluZyBlbW9qaSBkb24ndCBibGVlZCB0aHJvdWdoIHRoZSBzdGlja3kgdGl0bGUuXG4gIGJhY2tncm91bmQ6IHJnYmEoMzgsIDM4LCA0NCwgMC44Nik7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMnB4KTtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7XG59XG5cbi5lcy1yb290IC5lcy1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoOCwgMWZyKTtcbiAgcGFkZGluZzogMnB4IDRweCA2cHg7XG59XG4uZXMtcm9vdCAuZXMtZW1vamkge1xuICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IDI3cHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLmVzLXJvb3QgLmVzLWVtb2ppOmFjdGl2ZSB7IGJhY2tncm91bmQ6IHZhcigtLWMtd2hpdGUtMTQpOyB9XG5cbi8vIFNlYXJjaCByZXN1bHRzIHJlcGxhY2UgdGhlIGNhdGVnb3Jpc2VkIHNlY3Rpb25zIHdoaWxlIGEgcXVlcnkgaXMgYWN0aXZlLlxuLmVzLXJvb3QuZXMtaGFzLXF1ZXJ5IC5lcy1zZWN0aW9uIHsgZGlzcGxheTogbm9uZTsgfVxuLmVzLXJvb3QgLmVzLXJlc3VsdHMgeyBwYWRkaW5nLXRvcDogOHB4OyB9XG5cbi5lcy1yb290IC5lcy1lbXB0eSB7XG4gIHBhZGRpbmc6IDQ0cHggMTZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlLTQ1KTtcbn1cblxuLy8gLS0tLSBDYXRlZ29yeSBuYXYgKGJvdHRvbSkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmVzLXJvb3QgLmVzLWNhdG5hdiB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDJweDtcbiAgcGFkZGluZzogNnB4IDZweCBjYWxjKDZweCArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLCAwcHgpKTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtd2hpdGUtMDgpO1xufVxuLmVzLXJvb3QgLmVzLXRhYiB7XG4gIGZsZXg6IDE7XG4gIGhlaWdodDogNDBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgY29sb3I6IHZhcigtLWMtd2hpdGUtNDUpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZXMtcm9vdCAuZXMtdGFiOmFjdGl2ZSB7IGJhY2tncm91bmQ6IHZhcigtLWMtd2hpdGUtMDgpOyB9XG4uZXMtcm9vdCAuZXMtdGFiLmlzLWFjdGl2ZSB7IGNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdoaXRlLTEyKTsgfVxuXG4vLyAtLS0tIFNraW4tdG9uZSBwb3BvdmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTaGFyZWQgd2l0aCAuZXNwLXJvb3QgKHZhcmlhbnQ9XCJwb3BvdmVyXCIpOiB0aGUgU0FNRSAuZXMtdG9uZS1wb3BvdmVyLy5lcy10b25lXG4vLyBtYXJrdXAgaXMgcmV1c2VkIHRoZXJlIHRvbyAoc2VlIF9vcGVuVG9uZVBvcG92ZXIgaW4gcWRuYS1lbW9qaS1zaGVldC5qcyksIHNvIHRoZVxuLy8gY2FyZCBpdHNlbGYgbmVlZHMgbm8gc2VwYXJhdGUgbGlnaHQvZGFyayBzdHlsaW5nIOKAlCBpdCBhbHJlYWR5IHJlYWRzIGZpbmUgb24gYVxuLy8gd2hpdGUgcG9wb3ZlciBzdXJmYWNlIGFzLWlzLlxuLmVzLXJvb3QgLmVzLXRvbmUtcG9wb3Zlcixcbi5lc3Atcm9vdCAuZXMtdG9uZS1wb3BvdmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA1O1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDJweDtcbiAgcGFkZGluZzogNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICBib3gtc2hhZG93OiAwIDZweCAyNHB4IHJnYmEoMCwgMCwgMCwgMC4yOCk7XG59XG4uZXMtcm9vdCAuZXMtdG9uZS1wb3BvdmVyW2hpZGRlbl0sXG4uZXNwLXJvb3QgLmVzLXRvbmUtcG9wb3ZlcltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLy8gRG93bndhcmQgdGFpbCBwb2ludGluZyBhdCB0aGUgcHJlc3NlZCBlbW9qaS5cbi5lcy1yb290IC5lcy10b25lLXBvcG92ZXI6OmFmdGVyLFxuLmVzcC1yb290IC5lcy10b25lLXBvcG92ZXI6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IC05cHg7XG4gIGxlZnQ6IHZhcigtLWVzLXRhaWwteCwgNTAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICBib3JkZXI6IDlweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cbi5lcy1yb290IC5lcy10b25lLFxuLmVzcC1yb290IC5lcy10b25lIHtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAyNnB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmVzLXJvb3QgLmVzLXRvbmU6YWN0aXZlLFxuLmVzcC1yb290IC5lcy10b25lOmFjdGl2ZSB7IGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNik7IH1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gdmFyaWFudD1cInBvcG92ZXJcIiAoYWRkZWQgMDEuMDkuMjAyNikg4oCUIGEgU0VQQVJBVEUsIHdoaXRlL2xpZ2h0IGlubmVyIHN1cmZhY2UuXG4vLyBNb2RlbGVkIG9uIHFkbmFwcm8tc3RpY2tlci1zaGVldCdzIHBvcG92ZXIgKHNhbWUgd2lkdGgvaGVpZ2h0IGZlZWwsIHNhbWVcbi8vIHNlYXJjaCArIGNhdGVnb3J5LWNoaXBzICsgY291bnQgKyBncmlkIHN0cnVjdHVyZSDigJQgc2VlIC5zcy0qIGluXG4vLyBzY3NzL2NvbXBvbmVudHMvdjIvc3RpY2tlci1zaGVldC9fc3RpY2tlci1zaGVldC5zY3NzKSwgTk9UIG9uIHRoZSBkYXJrIGdsYXNzXG4vLyAuZXMtcm9vdCBhYm92ZTogdGhlIHNoZWV0J3MgY29sbGFwc2luZyBzZWFyY2gtdHJpZ2dlciArIHN0aWNreSBzZWN0aW9uIGhlYWRlcnNcbi8vICsgYm90dG9tIGNhdGVnb3J5LW5hdiBpcyBhIHBob25lL2dsYXNzIHBhcmFkaWdtIHRoYXQgZG9lcyBub3QgbWF0Y2ggdGhlXG4vLyByZXF1ZXN0ZWQgd2hpdGUgcG9wb3ZlciBsb29rIChLaW0ncyBzY3JlZW5zaG90LCAwMS4wOS4yMDI2KS4gU2VlIHRoZSBkb2NibG9ja1xuLy8gb2YgcWRuYS1lbW9qaS1zaGVldC5qcyArIF9yZW5kZXJQb3BvdmVyU2hlbGwoKSBmb3Igd2h5IHRoaXMgY291bGQgbm90IGJlIHRoZVxuLy8gc2FtZSBzaW5nbGUgRE9NIHRyZWUgYXMgLmVzLXJvb3QuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIOKaoO+4jyBUaGUgSE9TVCBzZXRzIHRoZSB3aWR0aDogcWRuYXByby1wb3BvdmVyIGRlZmF1bHRzIHRvIDI4MHB4IChhIE1FTlUgc2l6ZSksIGFuXG4vLyA4LWNvbHVtbiBlbW9qaSBncmlkIG5lZWRzIG1vcmUgcm9vbSDigJQgc2FtZSByZWFzb25pbmcgKyBzYW1lIDM4MHB4IGFzIHRoZVxuLy8gc3RpY2tlciBwb3BvdmVyLlxucWRuYXByby1wb3BvdmVyW2RhdGEtZW1vamktc2hlZXRdIHtcbiAgd2lkdGg6IG1pbig5MnZ3LCAzODBweCk7XG4gIHBhZGRpbmc6IDhweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi8vIEEgRklYRUQgaGVpZ2h0LCBzYW1lIHJlYXNvbmluZyBhcyB0aGUgc3RpY2tlciBwb3BvdmVyJ3MgNDYwcHg6IHRoZSBjb250ZW50XG4vLyBjaGFuZ2VzIChjaGlwcywgc2VhcmNoIHJlc3VsdHMsIGVtcHR5IHN0YXRlKSBhbmQgYSBjYXJkIHRoYXQgZ3Jvd3Mgd2l0aCBpdHNcbi8vIGNvbnRlbnQganVtcHMgb24gZXZlcnkga2V5c3Ryb2tlLiAuZXNwLXNjcm9sbCBzY3JvbGxzIHdpdGhpbiB0aGlzIGhlaWdodC5cbnFkbmFwcm8tcG9wb3ZlcltkYXRhLWVtb2ppLXNoZWV0XSAuZXNwLXJvb3Qge1xuICBmbGV4OiBub25lOyAvLyAuZXNwLXJvb3QgYWxzbyBjYXJyaWVzIGZsZXg6MSBmb3IgcG90ZW50aWFsIHJlLXVzZTsgYSBwb3BvdmVyIHNpemVzIGJ5IGhlaWdodCwgbm90IGZsZXgtZ3Jvd1xuICBoZWlnaHQ6IDQ2MHB4O1xufVxuXG4uZXNwLXJvb3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIGNvbnRhaW5pbmcgYmxvY2sgZm9yIHRoZSBhYnNvbHV0ZWx5LXBvc2l0aW9uZWQgdG9uZSBwb3BvdmVyXG4gIGZsZXg6IDE7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1mb250LWZhbWlseSwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcbn1cblxuLy8gLS0tLSBTZWFyY2ggKGFsd2F5cyB2aXNpYmxlLCB1bmxpa2UgdGhlIHNoZWV0J3MgY29sbGFwc2luZyB0cmlnZ2VyKSAtLS0tLS0tLVxuLmVzcC1yb290IC5lc3Atc2VhcmNoIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHBhZGRpbmc6IDRweCAwIDhweDtcbn1cblxuLy8gLS0tLSBDYXRlZ29yeSBjaGlwcyAoaG9yaXpvbnRhbCBzY3JvbGwpLCBzYW1lIG1vZGVsIGFzIC5zcy1jYXRzIC0tLS0tLS0tLS0tXG4uZXNwLXJvb3QgLmVzcC1jYXRzIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiAwIDAgMTBweDtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7XG59XG4uZXNwLXJvb3QgLmVzcC1jYXRzOjotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiAwOyBoZWlnaHQ6IDA7IGRpc3BsYXk6IG5vbmU7IH1cbi8vIENoaXBzIGFyZSBwbGFpbiBxZG5hcHJvLXRhZ3MgKHZhcmlhbnQ9XCJvdXRsaW5lXCIgdW5jaG9zZW4sIGNvbG9yPVwiYWN0aW9uXCIgY2hvc2VuKSxcbi8vIHNhbWUgcmVhbCBjb21wb25lbnQgc3RhdGVzIGFzIC5zcy1jYXQg4oCUIG5vIGNvbG91ciBydWxlcyBuZWVkZWQgaGVyZSBlaXRoZXIuXG5cbi8vIC0tLS0gU2Nyb2xsaW5nIHBhcnQ6IGNvdW50ICsgZ3JpZCArIGVtcHR5IHN0YXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5lc3Atcm9vdCAuZXNwLXNjcm9sbCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4taGVpZ2h0OiAwO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbiAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xufVxuLmVzcC1yb290IC5lc3Atc2Nyb2xsOjotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiAwOyBoZWlnaHQ6IDA7IGRpc3BsYXk6IG5vbmU7IH1cblxuLmVzcC1yb290IC5lc3AtY291bnQge1xuICBwYWRkaW5nOiAwIDAgNnB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xufVxuXG4vLyA4IGNvbHVtbnMgKHNhbWUgYXMgdGhlIGRhcmsgc2hlZXQncyBncmlkKSDigJQgZW1vamkgZ2x5cGhzIGFyZSBzbWFsbCBzaW5nbGVcbi8vIGNoYXJhY3RlcnMsIHVubGlrZSB0aGUgc3RpY2tlciBncmlkJ3MgMToxIGltYWdlcywgc28gbW9yZSBjb2x1bW5zIGZpdCBjbGVhbmx5LlxuLmVzcC1yb290IC5lc3AtZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDgsIDFmcik7XG4gIHBhZGRpbmc6IDAgMCA4cHg7XG59XG4vLyBTYW1lIFtoaWRkZW5dIHRyYXAgYXMgdGhlIHNoZWV0J3MgLmVzLWdyaWQgLyB0aGUgc3RpY2tlcidzIC5zcy1ncmlkOiBgZGlzcGxheTpcbi8vIGdyaWRgIGFib3ZlIHdpbnMgb3ZlciB0aGUgYnJvd3NlcidzIG93biBbaGlkZGVuXSBydWxlIHdpdGhvdXQgdGhpcy5cbi5lc3Atcm9vdCAuZXNwLWdyaWRbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLmVzcC1yb290IC5lcy1lbW9qaSB7XG4gIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4uZXNwLXJvb3QgLmVzLWVtb2ppOmFjdGl2ZSB7IGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZC1ob3Zlcik7IH1cblxuLy8gLS0tLSBFbXB0eSBzZWFyY2ggc3RhdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uZXNwLXJvb3QgLmVzcC1lbXB0eSB7XG4gIHBhZGRpbmc6IDQ0cHggMjRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xufVxuLmVzcC1yb290IC5lc3AtZW1wdHlbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL2VtcHR5LXN0YXRlL19lbXB0eS1zdGF0ZS1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4ucWRuYXByby1lbXB0eS1zdGF0ZVtoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnFkbmFwcm8tZW1wdHktc3RhdGUge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiA2MjBweDtcbiAgbWFyZ2luOiAzMnB4IGF1dG8gMDtcbiAgcGFkZGluZzogNDRweCA0OHB4IDQ4cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU1KTtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU1KTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMjAsIDI1LCA4MCwgMC4wNCksIDAgOHB4IDI0cHggcmdiYSgyMCwgMjUsIDgwLCAwLjA2KTtcbn1cblxuLnFkbmFwcm8tZW1wdHktc3RhdGUgKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi8qIFNvbGlkIHZhcmlhbnQgKHN1cmZhY2U9XCJzb2xpZFwiKTogYSBsaWdodC1wdXJwbGUgY2FyZCBpbnN0ZWFkIG9mIHRoZVxuICAgZnJvc3RlZC1nbGFzcyBwYW5lbCwgc28gdGhlIGVtcHR5IHN0YXRlIHJlYWRzIHdlbGwgb24gYSBwbGFpbiB3aGl0ZVxuICAgYmFja2dyb3VuZCAodGhlIGRlZmF1bHQgZ2xhc3Mgb25seSB3b3JrcyBvdmVyIGEgdGludGVkL3B1cnBsZSBiYWNrZHJvcCkuICovXG4ucWRuYXByby1lbXB0eS1zdGF0ZS5lbXB0eS1zdGF0ZS1zb2xpZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSk7XG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBub25lO1xuICBiYWNrZHJvcC1maWx0ZXI6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtcHVycGxlLTUwKTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLnFkbmFwcm8tZW1wdHktc3RhdGUuZW1wdHktc3RhdGUtc29saWQgLmVtcHR5LXN0YXRlLXRpdGxlIHtcbiAgY29sb3I6IHZhcigtLWMtc2lkZWJhci1iZyk7XG59XG5cbi8qIE9uIHRoZSBsaWdodC1wdXJwbGUgc29saWQgc3VyZmFjZSBhIHBsYWluIGBzdWJ0bGVgIGJ1dHRvbidzIG5ldXRyYWwgZ3JleVxuICAgaG92ZXIgKHZhcigtLWMtZ3JleS01MCkpIGFsbCBidXQgZGlzYXBwZWFycyBhZ2FpbnN0IHRoZSBjYXJkICh2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpKS4gUmUtdGludCBhbnlcbiAgIHN1YnRsZSBhY3Rpb24gdG8gdGhlIHN1YnRsZS1vbi1wdXJwbGUgdHJlYXRtZW50IHNvIGEgZGVmYXVsdCBgc3VidGxlYCBDVEFcbiAgIHJlYWRzIGNvcnJlY3RseSBoZXJlIHdpdGhvdXQgdGhlIGNvbnN1bWVyIGhhdmluZyB0byByZWFjaCBmb3IgYSBzdXJmYWNlLVxuICAgc3BlY2lmaWMgYnV0dG9uIHR5cGUuIFRoZSBzb2xpZCBjYXJkIGlzIGxpZ2h0LXB1cnBsZSBpbiBib3RoIHRoZW1lcywgc29cbiAgIHRoZXNlIHZhbHVlcyBhcHBseSBpbiBsaWdodCBhbmQgZGFyayBhbGlrZS4gVmFsdWVzIG1pcnJvclxuICAgLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zdWJ0bGUtcHVycGxlLWJnLiBbS2ltIDIwMjYtMDctMDldICovXG4ucWRuYXByby1lbXB0eS1zdGF0ZS5lbXB0eS1zdGF0ZS1zb2xpZCAuZW1wdHktc3RhdGUtYWN0aW9ucyAucWRuYXByby1idXR0b24uYnV0dG9uLXN1YnRsZSB7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xufVxuLnFkbmFwcm8tZW1wdHktc3RhdGUuZW1wdHktc3RhdGUtc29saWQgLmVtcHR5LXN0YXRlLWFjdGlvbnMgLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zdWJ0bGU6aG92ZXI6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ib3JkZXItdHJlZS1icmlnaHQpO1xufVxuLnFkbmFwcm8tZW1wdHktc3RhdGUuZW1wdHktc3RhdGUtc29saWQgLmVtcHR5LXN0YXRlLWFjdGlvbnMgLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zdWJ0bGU6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc2lkZWJhci1pY29uKTtcbn1cblxuLyogUGFnZSB2YXJpYW50IChzdXJmYWNlPVwicGFnZVwiKTogS2ltJ3MgUFdBIGVtcHR5LXN0YXRlIGRlc2lnbiwgMjEuMDcuMjAyNi5cbiAgIE5ldXRyYWwgYmFja2dyb3VuZCwgbm8gY2FyZC9zdXJmYWNlL3NoYWRvdyAtLSBzaXRzIGRpcmVjdGx5IG9uIHRoZVxuICAgcGFnZS9hcHAgYmFja2dyb3VuZC4gQWx3YXlzIGEgc2luZ2xlIHZlcnRpY2FsIGNvbHVtbiAodGl0bGUsIHN1YnRleHQsXG4gICBhY3Rpb25zLCBpbGx1c3RyYXRpb24pOiB0aGUgXCJleHRlbmRlZFwiIHR3by1jb2x1bW4gZ3JpZCBuZXZlciBhcHBsaWVzXG4gICBoZXJlLCBiZWNhdXNlIHRoZSBKUyBrZWVwcyBgZW1wdHktc3RhdGUtZXh0ZW5kZWRgIG9mZiB3aGVuZXZlclxuICAgYGVtcHR5LXN0YXRlLXBhZ2VgIGlzIG9uIChzZWUgcWRuYS1lbXB0eS1zdGF0ZS5qcyBfcmVuZGVyKCkpLiBXaXRoXG4gICBgZW1wdHktc3RhdGUtZXh0ZW5kZWRgIGFic2VudCwgdGhlIGhvc3Qgc3RheXMgcGxhaW4gYGRpc3BsYXk6IGJsb2NrYFxuICAgKHRoZSBiYXNlIC5xZG5hcHJvLWVtcHR5LXN0YXRlIHJ1bGUgYWJvdmUpLCBzbyB0aGUgY29weSBjb2x1bW4gYW5kIHRoZVxuICAgaWxsdXN0cmF0aW9uIGNvbHVtbiAtLSBib3RoIGFscmVhZHkgc2libGluZ3MgYXBwZW5kZWQgaW4gdGhhdCBvcmRlciAtLVxuICAgc2ltcGx5IHN0YWNrIHRvcCB0byBib3R0b20gd2l0aCBubyBleHRyYSBsYXlvdXQgcnVsZSBuZWVkZWQgZm9yIHRoYXQuXG5cbiAgIFRpdGxlIGFuZCBzdWJ0ZXh0IHVzZSB0aGUgc2VtYW50aWMgLS1jLWJyYW5kLXB1cnBsZSAvIC0tYy10ZXh0LWhlYWRpbmdcbiAgIGN1c3RvbSBwcm9wZXJ0aWVzIChkZXNpZ24tdG9rZW5zL19kZXNpZ24tdG9rZW5zLnNjc3MpIGluc3RlYWQgb2ZcbiAgIGhhcmRjb2RlZCBoZXgsIHNvIGJvdGggYXV0b21hdGljYWxseSByZWFkIGNvcnJlY3RseSBpblxuICAgW2RhdGEtdGhlbWU9ZGFya10gd2l0aCBubyBzZXBhcmF0ZSBkYXJrLW1vZGUgb3ZlcnJpZGUgcmVxdWlyZWQgaGVyZS4gKi9cbi5xZG5hcHJvLWVtcHR5LXN0YXRlLmVtcHR5LXN0YXRlLXBhZ2Uge1xuICBtYXgtd2lkdGg6IDQ4MHB4O1xuICBwYWRkaW5nOiA4cHggMjRweCAzMnB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogbm9uZTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBub25lO1xufVxuXG4ucWRuYXByby1lbXB0eS1zdGF0ZS5lbXB0eS1zdGF0ZS1wYWdlIC5lbXB0eS1zdGF0ZS10aXRsZSB7XG4gIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5xZG5hcHJvLWVtcHR5LXN0YXRlLmVtcHR5LXN0YXRlLXBhZ2UgLmVtcHR5LXN0YXRlLXdpbmsge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYTFmNGQpO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbi8qIE9uLXB1cnBsZSB2YXJpYW50IChzdXJmYWNlPVwib24tcHVycGxlXCIpOiB0aGUgcGFnZSB2YXJpYW50J3MgbGF5b3V0LCByZWNvbG91cmVkIGZvclxuICAgYSBwdXJwbGUgc3VyZmFjZS4gVGhlIEpTIGdpdmVzIHRoaXMgdmFyaWFudCBCT1RIIGVtcHR5LXN0YXRlLXBhZ2UgYW5kXG4gICBlbXB0eS1zdGF0ZS1vbi1wdXJwbGUsIHNvIGV2ZXJ5dGhpbmcgYWJvdmUgc3RpbGwgYXBwbGllcyBhbmQgb25seSB0aGUgY29weSBjb2xvdXJzXG4gICBjaGFuZ2UgaGVyZSAtLSBvbmUgbGF5b3V0LCB0d28gY29sb3VyIHNldHMsIHNvIGEgc3BhY2luZyBmaXggY2FuIG5ldmVyIGxhbmQgb24gb25lXG4gICBhbmQgbWlzcyB0aGUgb3RoZXIuIFVzZWQgYnkgdGhlIFBXQSB0YXNrbGlzdCBjaG9vc2VyLCB3aGljaCBwYWludHMgaXRzIG93blxuICAgLS1jLXB1cnBsZS01MDAgYmFja2dyb3VuZDsgd2l0aG91dCB0aGlzIHRoZSBwYWdlIHZhcmlhbnQncyBicmFuZC1wdXJwbGUgdGl0bGUgYW5kXG4gICBkYXJrLWdyZXkgc3VidGV4dCBzaXQgdW5yZWFkYWJsZSBvbiB0aGF0IHB1cnBsZS4gW0tpbSAzMC4wNy4yMDI2XSAqL1xuLnFkbmFwcm8tZW1wdHktc3RhdGUuZW1wdHktc3RhdGUtcGFnZS5lbXB0eS1zdGF0ZS1vbi1wdXJwbGUgLmVtcHR5LXN0YXRlLXRpdGxlIHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24sICNmZmZmZmYpO1xufVxuLnFkbmFwcm8tZW1wdHktc3RhdGUuZW1wdHktc3RhdGUtcGFnZS5lbXB0eS1zdGF0ZS1vbi1wdXJwbGUgLmVtcHR5LXN0YXRlLXdpbmsge1xuICBjb2xvcjogdmFyKC0tYy13aGl0ZS03MCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpKTtcbn1cblxuLyogQWN0aW9ucyByb3c6IDAsIDEgb3IgMiBxZG5hcHJvLWJ1dHRvbiBjaGlsZHJlbiAoc2VlIHRoZSBhY3Rpb25zLXNsb3RcbiAgIGNvbnRyYWN0IGluIHFkbmEtZW1wdHktc3RhdGUuanMpLiBFdmVyeSBidXR0b24gZ2V0cyBmbGV4OiAxIDEgMCwgc28gYVxuICAgc2luZ2xlIGJ1dHRvbiBmaWxscyB0aGUgd2hvbGUgcm93IChzb2Z0IGZ1bGwtd2lkdGggQ1RBKSBhbmQgdHdvXG4gICBidXR0b25zIHNwbGl0IGl0IGV2ZW5seSB3aXRoIGVxdWFsIGhlaWdodCAoYWxpZ24taXRlbXM6IHN0cmV0Y2gpIC0tXG4gICBubyA6b25seS1jaGlsZCAvIDpoYXMoKSBzZWxlY3RvciBuZWVkZWQgZm9yIHRoYXQuIFJhZGl1cyBpcyBidW1wZWQgdG9cbiAgIHRoZSAtLXItMyAoMTJweCkgdG9rZW4sIHNjb3BlZCB0byB0aGlzIHZhcmlhbnQncyBhY3Rpb25zIHJvdyBvbmx5LCBzb1xuICAgcWRuYXByby1idXR0b24ncyBub3JtYWwgOHB4IHJhZGl1cyBldmVyeXdoZXJlIGVsc2UgaXMgdW50b3VjaGVkLiAqL1xuLnFkbmFwcm8tZW1wdHktc3RhdGUuZW1wdHktc3RhdGUtcGFnZSAuZW1wdHktc3RhdGUtYWN0aW9ucyB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDQyMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBnYXA6IDEycHg7XG59XG5cbi5xZG5hcHJvLWVtcHR5LXN0YXRlLmVtcHR5LXN0YXRlLXBhZ2UgLmVtcHR5LXN0YXRlLWFjdGlvbnMgLnFkbmFwcm8tYnV0dG9uIHtcbiAgZmxleDogMSAxIDA7XG4gIG1pbi13aWR0aDogMDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tci0zLCAxMnB4KTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5xZG5hcHJvLWVtcHR5LXN0YXRlLmVtcHR5LXN0YXRlLXBhZ2UgLmVtcHR5LXN0YXRlLWFjdGlvbnMge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuICAucWRuYXByby1lbXB0eS1zdGF0ZS5lbXB0eS1zdGF0ZS1wYWdlIC5lbXB0eS1zdGF0ZS1hY3Rpb25zIC5xZG5hcHJvLWJ1dHRvbiB7XG4gICAgZmxleDogMSAxIDEwMCU7XG4gIH1cbn1cblxuLyogSWxsdXN0cmF0aW9uOiBsYXJnZSwgYW5kIGFsd2F5cyBmYWRlZCB0byA2MCUgb3BhY2l0eSAtLSB0aGlzIGlzIGFcbiAgIGRlY29yYXRpdmUgY2hvaWNlLCBub3QgYSBcImRpc2FibGVkXCIgc3RhdGUsIHNvIGl0IGlzIGRvbmUgaGVyZSByYXRoZXJcbiAgIHRoYW4gdmlhIHFkbmFwcm8taWxsdXN0cmF0aW9uJ3Mgb3duIGBkaXNhYmxlZGAgYXR0cmlidXRlICh3aGljaFxuICAgY2FycmllcyBkaWZmZXJlbnQgc2VtYW50aWNzL3N0eWxpbmcpLiBUaGUgZ2VuZXJpYyAyNjBweCBjYXAgYmVsb3cgaXNcbiAgIHJlbW92ZWQgc28gdGhlIGlsbHVzdHJhdGlvbidzIG93biBgc2l6ZWAgYXR0cmlidXRlIGZ1bGx5IGNvbnRyb2xzIGl0c1xuICAgd2lkdGgsIHNhbWUgYXMgYW55IG90aGVyIHFkbmFwcm8taWxsdXN0cmF0aW9uIHVzYWdlLiAqL1xuLnFkbmFwcm8tZW1wdHktc3RhdGUuZW1wdHktc3RhdGUtcGFnZSAuZW1wdHktc3RhdGUtaWxsdXN0cmF0aW9uIHtcbiAgbWFyZ2luLXRvcDogMzJweDtcbiAgb3BhY2l0eTogMC42O1xufVxuXG4ucWRuYXByby1lbXB0eS1zdGF0ZS5lbXB0eS1zdGF0ZS1wYWdlIC5lbXB0eS1zdGF0ZS1pbGx1c3RyYXRpb24gaW1nLFxuLnFkbmFwcm8tZW1wdHktc3RhdGUuZW1wdHktc3RhdGUtcGFnZSAuZW1wdHktc3RhdGUtaWxsdXN0cmF0aW9uIHN2ZyB7XG4gIG1heC13aWR0aDogbm9uZTtcbn1cblxuLyogRXh0ZW5kZWQgbGF5b3V0OiB0d28tY29sdW1uIGdyaWQgd2hlbiBwcmV2aWV3IG9yIGlsbHVzdHJhdGlvbiBpcyBwcmVzZW50LiAqL1xuLnFkbmFwcm8tZW1wdHktc3RhdGUuZW1wdHktc3RhdGUtZXh0ZW5kZWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIG1pbm1heCgwLCBhdXRvKTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWF4LXdpZHRoOiAxMDIwcHg7XG4gIHBhZGRpbmc6IDM2cHggNDBweCA0MHB4O1xuICBnYXA6IDI4cHg7XG59XG5cbi5xZG5hcHJvLWVtcHR5LXN0YXRlLmVtcHR5LXN0YXRlLWV4dGVuZGVkIC5lbXB0eS1zdGF0ZS1jb3B5IHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi5xZG5hcHJvLWVtcHR5LXN0YXRlLmVtcHR5LXN0YXRlLWV4dGVuZGVkIC5lbXB0eS1zdGF0ZS1hY3Rpb25zIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuXG4ucWRuYXByby1lbXB0eS1zdGF0ZSAuZW1wdHktc3RhdGUtY29weSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5xZG5hcHJvLWVtcHR5LXN0YXRlIC5lbXB0eS1zdGF0ZS1leWVicm93IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiA0cHggMTBweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6ICNlNmU5ZmY7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjNweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbn1cblxuLnFkbmFwcm8tZW1wdHktc3RhdGUgLmVtcHR5LXN0YXRlLXRpdGxlIHtcbiAgZm9udC1zaXplOiAyOHB4O1xuICBsaW5lLWhlaWdodDogMzZweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xuICBtYXJnaW46IDAgMCAxMnB4O1xufVxuXG4ucWRuYXByby1lbXB0eS1zdGF0ZSAuZW1wdHktc3RhdGUtd2luayB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNzAwKTtcbiAgbWFyZ2luOiAwIDAgMjRweDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4ucWRuYXByby1lbXB0eS1zdGF0ZSAuZW1wdHktc3RhdGUtYm9keSB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICBtYXJnaW46IDAgMCAyOHB4O1xuICBtYXgtd2lkdGg6IDQ4MHB4O1xufVxuXG4ucWRuYXByby1lbXB0eS1zdGF0ZSAuZW1wdHktc3RhdGUtYm9keSBwIHtcbiAgbWFyZ2luOiAwIDAgMTJweDtcbn1cblxuLnFkbmFwcm8tZW1wdHktc3RhdGUgLmVtcHR5LXN0YXRlLWJvZHkgcDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLnFkbmFwcm8tZW1wdHktc3RhdGUgLmVtcHR5LXN0YXRlLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5xZG5hcHJvLWVtcHR5LXN0YXRlIC5lbXB0eS1zdGF0ZS1wcmV2aWV3LFxuLnFkbmFwcm8tZW1wdHktc3RhdGUgLmVtcHR5LXN0YXRlLWlsbHVzdHJhdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4ucWRuYXByby1lbXB0eS1zdGF0ZSAuZW1wdHktc3RhdGUtcHJldmlldyBpbWcsXG4ucWRuYXByby1lbXB0eS1zdGF0ZSAuZW1wdHktc3RhdGUtaWxsdXN0cmF0aW9uIGltZyxcbi5xZG5hcHJvLWVtcHR5LXN0YXRlIC5lbXB0eS1zdGF0ZS1wcmV2aWV3IHN2Zyxcbi5xZG5hcHJvLWVtcHR5LXN0YXRlIC5lbXB0eS1zdGF0ZS1pbGx1c3RyYXRpb24gc3ZnIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMjYwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5xZG5hcHJvLWVtcHR5LXN0YXRlIC5lbXB0eS1zdGF0ZS1wcmV2aWV3IGltZyB7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDIwLCAyNSwgODAsIDAuMDUpLCAwIDhweCAyMnB4IHJnYmEoMjAsIDI1LCA4MCwgMC4xKTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5xZG5hcHJvLWVtcHR5LXN0YXRlLmVtcHR5LXN0YXRlLWV4dGVuZGVkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgfVxuICAucWRuYXByby1lbXB0eS1zdGF0ZS5lbXB0eS1zdGF0ZS1leHRlbmRlZCAuZW1wdHktc3RhdGUtaWxsdXN0cmF0aW9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1lbXB0eS1zdGF0ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoNDYsIDQ4LCA1NCwgMC41NSk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tZW1wdHktc3RhdGUgLmVtcHR5LXN0YXRlLWV5ZWJyb3cge1xuICBiYWNrZ3JvdW5kOiAjM2EzNTU1O1xuICBjb2xvcjogI2MwYzVmZjtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tZW1wdHktc3RhdGUgLmVtcHR5LXN0YXRlLXRpdGxlIHtcbiAgY29sb3I6ICNlMWUzZTY7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWVtcHR5LXN0YXRlIC5lbXB0eS1zdGF0ZS13aW5rIHtcbiAgY29sb3I6ICNhNmFhYjM7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWVtcHR5LXN0YXRlIC5lbXB0eS1zdGF0ZS1ib2R5IHtcbiAgY29sb3I6ICM4OThlOTk7XG59IiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1ldmVudC1jYXJkIOKAlCBjYWxlbmRhciBldmVudCBjYXJkIChQV0EgY2FsZW5kYXIgTTEpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBRRE5BIHRva2VucyB1c2VkOlxuLy8gICAgLS1jLXB1cnBsZS01MCAgICAgICAgI2U2ZTlmZiAgIHBsYW5uZWQgYmcgICAgICAoRmlnbWEgY2FsLWl0ZW0tYmctYmx1ZSDihpIgcWRuYSBwdXJwbGUpXG4vLyAgICAtLWMtcHVycGxlLTUwMCAgICAgICAjNDA0OTlhICAgcGxhbm5lZCB0ZXh0ICAgIChGaWdtYSBjYWwtaXRlbS10ZXh0LWJsdWUg4oaSIHFkbmEgcHVycGxlKVxuLy8gICAgLS1jLXNpZ25hbC1ncmVlbi0xMDAgI2Q4ZjRlMyAgIGNvbXBsZXRlIGJnICAgICAoRmlnbWEgI2Q3ZjNlNSlcbi8vICAgIC0tYy1zaWduYWwtZ3JlZW4tdGV4dCAjNDI4YjZlICBjb21wbGV0ZSB0ZXh0ICAgKEZpZ21hICMyYzliNjUpXG4vLyAgICAtLWMtc2lnbmFsLXJlZC1iZyAgICAjZmVlM2UzICAgb3ZlcmR1ZSBiZyAgICAgIChGaWdtYSAjZmVkOGRmKVxuLy8gICAgLS1jLXNpZ25hbC1yZWQtdGV4dCAgI2M2NWE1YSAgIG92ZXJkdWUgdGV4dCAgICAoRmlnbWEgI2M3MzE0ZSlcbi8vICAgIC0tYy1ncmV5LTUwICAgICAgICAgICNmMGYxZjIgICBibG9ja2VkIGJnICAgICAgKEZpZ21hICNlZGVlZjEpXG4vLyAgICAtLWMtZ3JleS02MDAgICAgICAgICAjNTY1YjY2ICAgYmxvY2tlZCB0ZXh0ICAgIChGaWdtYSAjNWI2MTZlKVxuLy8gICAgLS1yLTIgICAgICAgICAgICAgICAgOHB4ICAgICAgIGNhcmQgcmFkaXVzICAgICAoRmlnbWEgcmFkaXVzLXNtYWxsKVxuLy8gIExheW91dCBmcm9tIEZpZ21hIFwiUGxhbiBpdGVtXCIgKDM2MDQ6Mjk5NzQpOiBwYWRkaW5nIDRweCwgZ2FwIDRweCxcbi8vICB0aXRsZSAxNHB4LzIwcHggc2VtaWJvbGQsIG1ldGEgMTJweCArIDE2cHggaWNvbiwgZ2FwIDRweC5cbi8vICBFdmVyeSBzdGF0dXMgPSAyIHZhcmlhYmxlIG92ZXJyaWRlczsgYSB3cmFwcGVyIChhZ2VuZGEgbGF5ZXIsIHRoZW1lKVxuLy8gIGNhbiByZWNvbG91ciBjYXJkcyBieSBzZXR0aW5nIC0tZXZlbnQtY2FyZC1iZyAvIC0tZXZlbnQtY2FyZC10ZXh0LlxuLy8gIEZMQVQgQ1NTOyBzeW5jZWQgdG8gdGhlIFBXQSB2aWEgc3luYy12Mi1jb21wb25lbnRzLmpzLlxuXG4ucWRuYXByby1ldmVudC1jYXJkIHtcbiAgLy8gU3RhdHVzIHZhcmlhYmxlcyDigJQgcGxhbm5lZCAocHVycGxlKSBpcyB0aGUgZGVmYXVsdFxuICAtLWV2ZW50LWNhcmQtYmc6ICAgdmFyKC0tYy1wdXJwbGUtNTAsICNlNmU5ZmYpO1xuICAtLWV2ZW50LWNhcmQtdGV4dDogdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKTtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIHBvc2l0aW9uaW5nIGNvbnRleHQgZm9yIHRoZSBjb25mbGljdCBkb3QsIGJlbG93XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIHBhZGRpbmc6IDRweCA2cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMiwgOHB4KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tZXZlbnQtY2FyZC1iZyk7XG4gIGNvbG9yOiB2YXIoLS1ldmVudC1jYXJkLXRleHQpO1xuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGZpbHRlciAwLjE2cyBlYXNlLCB0cmFuc2Zvcm0gMC4xcyBlYXNlLCBib3gtc2hhZG93IDAuMTZzIGVhc2U7XG59XG5cbi5xZG5hcHJvLWV2ZW50LWNhcmQtLWNvbXBsZXRlIHtcbiAgLS1ldmVudC1jYXJkLWJnOiAgIHZhcigtLWMtc2lnbmFsLWdyZWVuLTEwMCwgI2Q4ZjRlMyk7XG4gIC0tZXZlbnQtY2FyZC10ZXh0OiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0LCAjNDI4YjZlKTtcbn1cbi5xZG5hcHJvLWV2ZW50LWNhcmQtLW92ZXJkdWUge1xuICAtLWV2ZW50LWNhcmQtYmc6ICAgdmFyKC0tYy1zaWduYWwtcmVkLWJnLCAjZmVlM2UzKTtcbiAgLS1ldmVudC1jYXJkLXRleHQ6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTtcbn1cbi5xZG5hcHJvLWV2ZW50LWNhcmQtLWJsb2NrZWQge1xuICAtLWV2ZW50LWNhcmQtYmc6ICAgdmFyKC0tYy1ncmV5LTUwLCAjZjBmMWYyKTtcbiAgLS1ldmVudC1jYXJkLXRleHQ6IHZhcigtLWMtZ3JleS02MDAsICM1NjViNjYpO1xufVxuLy8gU3RhcnRlZCBidXQgbm90IGZpbmlzaGVkIChzY29wZSB2MS4zLCAwMi4wNy4yMDI2KSDigJQgb3JhbmdlLCBiZXR3ZWVuIHBsYW5uZWQgYW5kIGNvbXBsZXRlXG4ucWRuYXByby1ldmVudC1jYXJkLS1pbnByb2dyZXNzIHtcbiAgLS1ldmVudC1jYXJkLWJnOiAgIHZhcigtLWMtc2lnbmFsLW9yYW5nZS1iZywgI2ZkZWFkYyk7XG4gIC0tZXZlbnQtY2FyZC10ZXh0OiB2YXIoLS1jLXNpZ25hbC1vcmFuZ2UtdGV4dCwgI2JjNmExZik7XG59XG4vLyBQZXJzb25hbCBldmVudCAoXCJQbGFuIGV2ZW50XCIsIHNjb3BlIHYxLjMpIOKAlCBPTkUgY2xlYXIgY29sb3VyIGZvciBhbGwgcGVyc29uYWwgaXRlbXM7XG4vLyB0aGUgb3B0aW9uYWwgY2F0ZWdvcnkgaXMgYSBsYWJlbCwgaXQgZG9lcyBub3QgZHJpdmUgdGhlIGNvbG91clxuLnFkbmFwcm8tZXZlbnQtY2FyZC0tcGVyc29uYWwge1xuICAtLWV2ZW50LWNhcmQtYmc6ICAgdmFyKC0tYy1zaWduYWwtcGluay1iZywgI2Y2ZTFlOCk7XG4gIC0tZXZlbnQtY2FyZC10ZXh0OiB2YXIoLS1jLXNpZ25hbC1waW5rLXRleHQsICNiMjU3NzcpO1xufVxuXG4vLyBkcmFmdD1cIlwiIChRRE5BIFBsYW5uZXIgZmFzZSBBLCAxOC4wNy4yMDI2KSDigJQgYSBub3QteWV0LWNvbmZpcm1lZCBwbGFubmluZ1xuLy8gaXRlbS4gTUFUQ0hFUyB0aGUgcmVzb3VyY2UtdGltZWxpbmUgYm9hcmQncyBleGlzdGluZ1xuLy8gLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX2NoaXAtLWRyYWZ0IHRyZWF0bWVudCBleGFjdGx5IChzYW1lIGRhc2hlZFxuLy8gYm9yZGVyIHdpZHRoLCBzYW1lIGNvbG9yLW1peCByZWNpcGUpOiBkYXNoZWQgYm9yZGVyIGluIHRoZSBjYXJkJ3MgT1dOXG4vLyBzdGF0dXMgY29sb3IgKC0tZXZlbnQtY2FyZC10ZXh0KSBhbmQgYSByZWR1Y2VkLW9wYWNpdHkgdmVyc2lvbiBvZiBpdHMgT1dOXG4vLyBzdGF0dXMgYmFja2dyb3VuZCAoLS1ldmVudC1jYXJkLWJnIHZpYSBjb2xvci1taXgpLCBzbyBpdCBkcm9wcyBvbnRvIEFOWVxuLy8gc3RhdHVzIChwbGFubmVkL2NvbXBsZXRlL292ZXJkdWUvYmxvY2tlZC9pbnByb2dyZXNzL3BlcnNvbmFsKSB3aXRob3V0IGFcbi8vIG5ldyB2YXJpYW50IHBlciBzdGF0dXMuIE5vIGZhbGxiYWNrIG5lZWRlZCBvbiB0aGUgdmFycyBoZXJlICh1bmxpa2UgdGhlXG4vLyByZXNvdXJjZS10aW1lbGluZSBjb3B5KSDigJQgdGhpcyBydWxlIGxpdmVzIGluc2lkZSB0aGUgY29tcG9uZW50IHRoYXQgc2V0c1xuLy8gYm90aCBjdXN0b20gcHJvcGVydGllcyBvbiBpdHNlbGYsIHNvIHRoZXkgYXJlIGFsd2F5cyBkZWZpbmVkIGJ5IHRoZSB0aW1lXG4vLyB0aGlzIGFwcGxpZXMuIFB1cmVseSB2aXN1YWw7IGRvZXMgbm90IGFmZmVjdCBwcmVzcy9rZXlib2FyZCBiZWhhdmlvdXIuXG4ucWRuYXByby1ldmVudC1jYXJkLmlzLWRyYWZ0IHtcbiAgYm9yZGVyOiAxLjVweCBkYXNoZWQgdmFyKC0tZXZlbnQtY2FyZC10ZXh0KTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWV2ZW50LWNhcmQtYmcpIDU1JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4vLyBzaXplPVwic21hbGxcIiDigJQgY29tcGFjdCBib2FyZC1jaGlwIHNjYWxlIChLaW0sIDE2LjA3LjIwMjYg4oCUIFwibmlldCBpblxuLy8gdmVyaG91ZGluZywgZm9udCB2ZWVsIHRlIGdyb290XCI6IHRoZSBjYXJkIHdhcyBkZXNpZ25lZCBhdCBQV0Egc2NhbGVcbi8vICgxNHB4IHNlbWlib2xkIHRpdGxlKSwgd2hpY2ggcmVhZHMgb3ZlcnNpemVkIGFnYWluc3QgMTNweCBib2FyZFxuLy8gdHlwb2dyYXBoeSkuIEFic2VudCAoZGVmYXVsdCkgPSB1bnRvdWNoZWQgUFdBIHNjYWxlLiBDbGFzcy1iYXNlZCwgc2FtZVxuLy8gaWRpb20gYXMgdGhlIHN0YXR1cyBtb2RpZmllcnMgYWJvdmUuIFVzZWQgYnkgcWRuYXByby1yZXNvdXJjZS10aW1lbGluZSdzXG4vLyBfYnVpbGRDaGlwIChzaXplPVwic21hbGxcIiBvbiBldmVyeSBjaGlwKSDigJQgdHVuZWQgc28gYSB+MjJweC10YWxsIGNoaXBcbi8vIGxvb2tzIGJhbGFuY2VkIG5leHQgdG8gdGhlIGJvYXJkJ3MgMTNweCBsYWJlbHMuXG4ucWRuYXByby1ldmVudC1jYXJkLS1zaXplLXNtYWxsIHtcbiAgcGFkZGluZzogMnB4IDVweDtcbiAgZ2FwOiAxcHg7XG59XG4ucWRuYXByby1ldmVudC1jYXJkLS1zaXplLXNtYWxsIC5xZG5hcHJvLWV2ZW50LWNhcmRfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTZweDtcbn1cbi5xZG5hcHJvLWV2ZW50LWNhcmQtLXNpemUtc21hbGwgLnFkbmFwcm8tZXZlbnQtY2FyZF9fbWV0YS10ZXh0IHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBsaW5lLWhlaWdodDogMTRweDtcbn1cbi5xZG5hcHJvLWV2ZW50LWNhcmQtLXNpemUtc21hbGwgLnFkbmFwcm8tZXZlbnQtY2FyZF9fbWV0YSAucWRuYXByby1pY29uLFxuLnFkbmFwcm8tZXZlbnQtY2FyZC0tc2l6ZS1zbWFsbCAucWRuYXByby1ldmVudC1jYXJkX19tZXRhIHFkbmFwcm8taWNvbiB7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG59XG5cbi8vIFByZXNzZWQg4oCUIHN5c3RlbWljIGRhcmtlbjsgaG92ZXIgaXMgaW50ZW50aW9uYWxseSBhYnNlbnQgKHRvdWNoLWZpcnN0LFxuLy8gdGhlIGdyaWQgY2VsbCBwcm92aWRlcyBubyBob3ZlciBhZmZvcmRhbmNlIGVpdGhlcilcbi5xZG5hcHJvLWV2ZW50LWNhcmQuaXMtcHJlc3NlZCB7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygwLjk0KTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTtcbn1cblxuLy8gRm9jdXMg4oCUIHVuaWZpZWQgc3RhY2tlZCBib3gtc2hhZG93IHJlY2lwZSAocmluZyBvbiBlZGdlICsgc29mdCBnbG93KVxuLnFkbmFwcm8tZXZlbnQtY2FyZDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4ucWRuYXByby1ldmVudC1jYXJkOmZvY3VzLXZpc2libGUsXG4ucWRuYXByby1ldmVudC1jYXJkLmZvcmNlLWZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDAgMCAycHggdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKSxcbiAgICAwIDAgMCA2cHggdmFyKC0tYy1wdXJwbGUtc29mdC0xOCwgcmdiYSg2NCwgNzMsIDE1NCwgMC4xOCkpO1xufVxuXG4vLyBUaXRsZSDigJQgb25lIGxpbmUgcGVyIEZpZ21hIGF0IHJlc3Q7IGhlaWdodC1hd2FyZSBtdWx0aS1saW5lIGNsYW1wIChLaW0sXG4vLyAxNi4wNy4yMDI2IOKAlCBcImVlbiBob2dlIGthYXJ0IHRvb250IG5vZyBzdGVlZHMgMSByZWdlbCwgem9uZGVcIikuIFRoZSBjYXJkJ3Ncbi8vIG93biBKUyAoX21lYXN1cmVUaXRsZUNsYW1wKSBzZXRzIC13ZWJraXQtbGluZS1jbGFtcCB0byB0aGUgbnVtYmVyIG9mIHdob2xlXG4vLyBsaW5lcyB0aGF0IGZpdCB0aGUgY2FyZCdzIGFjdHVhbCBhdmFpbGFibGUgdGl0bGUgaGVpZ2h0LCBzbyB0aGlzIHN0YXJ0cyBhdFxuLy8gMSAoaWRlbnRpY2FsIGxvb2sgdG8gdGhlIG9sZCBub3dyYXAvZWxsaXBzaXMgcnVsZSkgYW5kIG9ubHkgZ3Jvd3Mgd2hlbiB0aGVcbi8vIGNhcmQgaXMgdGFsbCBlbm91Z2guIGZsZXg6bm9uZSBpcyBrZXB0IOKAlCB0aGUgYm94IHNpemVzIHRvIGl0cyBPV04gY2xhbXBlZFxuLy8gY29udGVudCAoMS4uTiBsaW5lcyksIGl0IG5ldmVyIHN0cmV0Y2hlcyB0byBmaWxsIGxlZnRvdmVyIGNvbHVtbiBzcGFjZS5cbi5xZG5hcHJvLWV2ZW50LWNhcmRfX3RpdGxlIHtcbiAgZmxleDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAxO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbn1cblxuLy8gTGVhZGluZy1hdmF0YXIgcm93IOKAlCBvcHRpb25hbCwgYWRkaXRpdmUgKGF2YXRhci1zcmMgLyBhdmF0YXItaW5pdGlhbHMpLlxuLy8gT25seSBwcmVzZW50IHdoZW4gdGhlIGNhcmQgd2FzIGJ1aWx0IHdpdGggYW4gYXZhdGFyOyB0aGUgdGl0bGUga2VlcHNcbi8vIGVsbGlwc2l6aW5nIGFnYWluc3QgdGhlIGZpeGVkLXdpZHRoIGF2YXRhciBzaWJsaW5nLlxuLnFkbmFwcm8tZXZlbnQtY2FyZF9fcm93IHtcbiAgZmxleDogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG4gIG1pbi13aWR0aDogMDtcbn1cbi5xZG5hcHJvLWV2ZW50LWNhcmRfX3JvdyAucWRuYXByby1ldmVudC1jYXJkX190aXRsZSB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbn1cbi5xZG5hcHJvLWV2ZW50LWNhcmRfX2F2YXRhciB7XG4gIGZsZXg6IG5vbmU7XG59XG5cbi8vIE1ldGEgcm93IOKAlCAxNnB4IGljb24gKyAxMnB4IHRleHQ7IGRpc2FwcGVhcnMgYnkgY2xpcHBpbmcgb24gc2hvcnQgY2FyZHNcbi5xZG5hcHJvLWV2ZW50LWNhcmRfX21ldGEge1xuICBmbGV4OiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbiAgbWluLXdpZHRoOiAwO1xufVxuLnFkbmFwcm8tZXZlbnQtY2FyZF9fbWV0YSAucWRuYXByby1pY29uLFxuLnFkbmFwcm8tZXZlbnQtY2FyZF9fbWV0YSBxZG5hcHJvLWljb24ge1xuICBmbGV4OiBub25lO1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5xZG5hcHJvLWV2ZW50LWNhcmRfX21ldGEtdGV4dCB7XG4gIG1pbi13aWR0aDogMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi8vIENvbmZsaWN0IGRvdCAoUUROQSBQbGFubmVyIGF2YWlsYWJpbGl0eSByb3VuZCwgS2ltLWFwcHJvdmVkIDE3LjA3LjIwMjYpIOKAlFxuLy8gcGFydCBvZiB0aGUgY29tcG9uZW50J3Mgb3duIHJlbmRlcigpLCBzZWUgdGhlIGBjb25mbGljdGAgYXR0cmlidXRlIGluIHRoZVxuLy8gZG9jYmxvY2suIEZVTExZIElOU0lERSB0aGUgY2FyZCAobmVnYXRpdmUgb2Zmc2V0cyBnZXQgY2xpcHBlZCBieSBhXG4vLyBjb25zdW1lcidzIG92ZXJmbG93OmhpZGRlbikuIHBvaW50ZXItZXZlbnRzOiBub25lIHNvIGl0IG5ldmVyIGludGVyY2VwdHNcbi8vIHByZXNzL2RyYWcgaGFuZGxpbmcuIFNpbmNlIHRoZSB1bmlmaWNhdGlvbiByb3VuZCBvZiAxNy4wNy4yMDI2IHRoaXMgaXNcbi8vIFRIRSBvbmUgY29uZmxpY3QgZG90IOKAlCB0aGUgcmVzb3VyY2UtdGltZWxpbmUncyBvbGQgX19jaGlwLWNvbmZsaWN0XG4vLyBvdmVybGF5IHNwYW4gd2FzIHJlbW92ZWQ7IGV2ZXJ5IGNvbnN1bWVyIHNldHMgdGhlIGF0dHJpYnV0ZSBpbnN0ZWFkLlxuLnFkbmFwcm8tZXZlbnQtY2FyZF9fY29uZmxpY3Qge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMnB4O1xuICByaWdodDogMnB4O1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3gtc2hhZG93OiAwIDAgMCAxLjVweCAjZmZmO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLWV2ZW50LWNhcmRfX2NvbmZsaWN0LS1vdmVybGFwIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy13YXJuLXllbGxvdy02MDApO1xufVxuLnFkbmFwcm8tZXZlbnQtY2FyZF9fY29uZmxpY3QtLXVuYXZhaWxhYmxlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy13YXJuLXJlZC01MDApO1xufVxuXG4vLyBjb25mbGljdC1hY2NlcHRlZD1cIlwiIChRRE5BIFBsYW5uZXIgXCJiZXd1c3QgZ2VwbGFuZFwiIHJvdW5kLCAxOC4wNy4yMDI2KSDigJQgdGhlXG4vLyBwbGFubmVyIENPTlNDSU9VU0xZIGFjY2VwdGVkIHRoaXMgZXhhY3QgY29uZmxpY3QgKGRldGFpbHMgb2Ygd2hhdCBjb3VudHMgYXNcbi8vIFwiYWNjZXB0ZWRcIiBsaXZlIHNlcnZlci1zaWRlOyB0aGlzIGNvbXBvbmVudCBvbmx5IHJlbmRlcnMgdGhlIGZpbmdlcnByaW50KS5cbi8vIFNhbWUgOHB4IGRvdCwgc2FtZSBwb3NpdGlvbiDigJQgSE9MTE9XIGluc3RlYWQgb2YgZmlsbGVkOiB0cmFuc3BhcmVudFxuLy8gYmFja2dyb3VuZCArIGEgMS41cHggcmluZyBJTlNFVCBpbiB0aGUgY29uZmxpY3QgY29sb3IsIG9uIHRvcCBvZiB0aGVcbi8vIGV4aXN0aW5nIDEuNXB4IHdoaXRlIHJpbmcga2VwdCBPVVRTSURFIGZvciBjb250cmFzdCBhZ2FpbnN0IGFueSBjYXJkXG4vLyBiYWNrZ3JvdW5kICh0d28gYm94LXNoYWRvd3MsIGNvbW1hLXNlcGFyYXRlZCDigJQgbm8gZXh0cmEgbWFya3VwIG5lZWRlZCkuXG4vLyBPbmx5IG1lYW5pbmdmdWwgdG9nZXRoZXIgd2l0aCAtLW92ZXJsYXAgb3IgLS11bmF2YWlsYWJsZSBhYm92ZS5cbi5xZG5hcHJvLWV2ZW50LWNhcmRfX2NvbmZsaWN0LS1hY2NlcHRlZCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLnFkbmFwcm8tZXZlbnQtY2FyZF9fY29uZmxpY3QtLW92ZXJsYXAucWRuYXByby1ldmVudC1jYXJkX19jb25mbGljdC0tYWNjZXB0ZWQge1xuICBib3gtc2hhZG93OiAwIDAgMCAxLjVweCAjZmZmLCBpbnNldCAwIDAgMCAxLjVweCB2YXIoLS1jLXdhcm4teWVsbG93LTYwMCk7XG59XG4ucWRuYXByby1ldmVudC1jYXJkX19jb25mbGljdC0tdW5hdmFpbGFibGUucWRuYXByby1ldmVudC1jYXJkX19jb25mbGljdC0tYWNjZXB0ZWQge1xuICBib3gtc2hhZG93OiAwIDAgMCAxLjVweCAjZmZmLCBpbnNldCAwIDAgMCAxLjVweCB2YXIoLS1jLXdhcm4tcmVkLTUwMCk7XG59XG4iLCIvLyBxZG5hcHJvLWV4cG9ydC1tb2RhbFxuLy8gXCJDdXN0b21pemUgVGFibGUgQ29sdW1uc1wiIC8gZXhwb3J0IG1vZGFsOiB0d28tcGFuZWwgdHJhbnNmZXIgbGlzdCB3aXRoXG4vLyBwZXItY29sdW1uIG11bHRpLXNvcnQuIExpZ2h0IERPTSwgY2xhc3NlcyBwcmVmaXhlZCAucXBlbS0uXG4vLyBDb2xvdXJzIHVzZSB0aGUgc2hhcmVkIGRlc2lnbiB0b2tlbnMgKHNjc3MvY29tcG9uZW50cy92Mi9kZXNpZ24tdG9rZW5zKS5cbi8vXG4vLyBEZSBTQ0hJTCAoc2NyaW0sIGdyaWpzIGZyYW1lLCB3aXQgdmVuc3Rlciwga29wLCBib2R5LCB2b2V0KSBrb210IHVpdFxuLy8gY29tcG9uZW50cy92Mi9vdmVybGF5LXNoZWxsOiAucW9zLSouIEhpZXIgc3RhYXQgYWxsZWVuIGRlIElOSE9VRC4gVG90XG4vLyAxOS4wOC4yMDI2IHN0b25kIGRlIHNjaGlsIGhpZXIgYWxzIGVpZ2VuIGtvcGllLCBtZXQgei1pbmRleCAxMDgwIChvbmRlciBhbGxlc1xuLy8gd2F0IG9wIDkwMDArIHppdCkgZW4gem9uZGVyIGRhcmsgbW9kZS5cblxucWRuYXByby1leHBvcnQtbW9kYWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAvLyBEZSBob3N0IGlzIGRlIHZhc3RlIGxhYWcgb3ZlciBkZSBwYWdpbmEgKHplbGZkZSBkcmllIHJlZ2VscyBhbHMgLnFvcy1yb290KTtcbiAgICAvLyBkZSBzY3JpbSBkYWFyYmlubmVuIGlzIGFic29sdXRlLiBaaWUgZGUgdWl0bGVnIGluIF9vdmVybGF5LXNoZWxsLnNjc3M6IGVlblxuICAgIC8vIGZpeGVkIHNjcmltIHJla2VudCB6aWpuIGluc2V0IGFmIHRlZ2VuIGVlbiBjb250YWluaW5nIGJsb2NrIGRhdCBuaWV0IGFsdGlqZFxuICAgIC8vIGhldCB2ZW5zdGVyIGlzLlxuICAgICZbb3Blbl0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgei1pbmRleDogdmFyKC0tb3ZlcmxheS16KTtcbiAgICB9XG5cbiAgICAvLyBCcmVlZHRlLXBsYWZvbmQgdmFuIGhldCBmcmFtZS4gNzYwcHggaXMgZGUgbWFhdCBkaWUgZGl0IHZlbnN0ZXIgYWx0aWpkIGhhZDtcbiAgICAvLyBkZSBtYWF0bGFkZGVyIHZhbiBxZG5hcHJvLW1vZGFsICg0MDAvNTYwLzgwMC8xMDAwLzExMDApIGtlbnQgaGVtIG5pZXQsIGR1c1xuICAgIC8vIGRpdCBpcyBiZXd1c3QgZWVuIGVpZ2VuIHdhYXJkZSBlbiBnZWVuIGxhZGRlci1tYWF0LlxuICAgIC8vIFZBU1RFIGhvb2d0ZSAoMTkuMDguMjAyNik6IGVlcnN0IGdyb2VpZGUgZGUgbW9kYWwgbWV0IGRlIGtvbG9tbWVubGlqc3QgbWVlXG4gICAgLy8gZW4gc2Nyb2xkZSBkZSBoZWxlIGJvZHksIHdhYXJkb29yIGRlIHBpamx0amVzIGVuIGRlIHZvZXQgYmlqIGVlbiBsYW5nZVxuICAgIC8vIGxpanN0IHVpdCBiZWVsZCBsaWVwZW4uIE51IHN0YWFuIGtvcCwgdm9vcmluc3RlbGxpbmctcmVnZWwgZW4gdm9ldCB2YXN0IGVuXG4gICAgLy8gc2Nyb2xsZW4gYWxsZWVuIGRlIHR3ZWUga29sb21saWpzdGVuLCBlbGsgaW4gaHVuIGVpZ2VuIHBhbmVlbC5cbiAgICAucW9zLWRpYWxvZyB7XG4gICAgICAgIC0tcW9zLXc6IDc2MHB4O1xuICAgICAgICBoZWlnaHQ6IG1pbig3MjBweCwgY2FsYygxMDB2aCAtIDQ4cHgpKTtcbiAgICB9XG5cbiAgICAucW9zLWJvZHkge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgIC8vIFBhZ2luYWJyZWRlIGgyLXJlZ2VscyAobWFyZ2VzLCBsZXR0ZXJhZnN0YW5kKSB0cmVra2VuIGRlIHRpdGVsIHNjaGVlZiBlblxuICAgIC8vIHVpdCBoZXQgbWlkZGVuIG5hYXN0IGhldCBpY29vbjsgIWltcG9ydGFudCBvbSBkZXplbGZkZSByZWRlbiBhbHMgZGVcbiAgICAvLyBCb290c3RyYXAtYWZ3ZWVyIGluIF9tb2RhbC5zY3NzLlxuICAgIGgyLnFvcy10aXRsZSB7XG4gICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICBsaW5lLWhlaWdodDogMjRweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5xb3MtaGVhZCB7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cblxuICAgIC8vIERlIHVpdGxlZyAodm9vcmhlZW4gZWVuIGludHJvLXppbiBwbHVzIHR3ZWUgYnVsbGV0cyBkaWUgfjEwMHB4IGtvc3R0ZW4pXG4gICAgLy8geml0IGFscyB0b29sdGlwIGFjaHRlciBkaXQgaW5mby1rbm9wamUgbmFhc3QgZGUgdGl0ZWwuXG4gICAgLnFwZW0taW5mbyB7IGZsZXgtc2hyaW5rOiAwOyB9XG5cbiAgICAvLyAtLS0tIHZvb3JpbnN0ZWxsaW5nZW4gKHBlcnNvb25saWprZSBrb2xvbWtldXplcykgLS0tLVxuICAgIC8vIEFsbGVlbiB6aWNodGJhYXIgbWV0IGhldCBhdHRyaWJ1dXQgYHByZXNldHMtZW5hYmxlZGAgb3AgZGUgaG9zdDsgem9uZGVyXG4gICAgLy8gZGF0IGF0dHJpYnV1dCByZW5kZXJ0IGhldCBjb21wb25lbnQgZGV6ZSBiYWxrIGhlbGVtYWFsIG5pZXQuXG4gICAgLy8gQ29tcGFjdGUgcmVnZWwsIGdlZW4gZ3JpanplIGRvb3MgbWVlcjogZGllIGtvc3R0ZSBob29ndGUgZGllIGRlXG4gICAgLy8ga29sb21tZW5saWpzdGVuIGhhcmRlciBub2RpZyBoZWJiZW4uXG4gICAgLnFwZW0tcHJlc2V0cyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgfVxuXG4gICAgLnFwZW0tcHJlc2V0cy1sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgLy8gRGUga2V1emVsaWpzdCBtYWcgZGUgYmFsayB2dWxsZW4sIG1hYXIgbmlldCBkZSB0d2VlIGtub3BwZW4gd2VnZHV3ZW4uXG4gICAgLnFwZW0tcHJlc2V0cy1maWVsZCB7XG4gICAgICAgIGZsZXg6IDAgMSAyODBweDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cblxuICAgIC8vIE5vZyBuaWV0cyBiZXdhYXJkOiBlZW4gemluIGluIHBsYWF0cyB2YW4gZWVuIGxlZ2Uga2V1emVsaWpzdC5cbiAgICAucXBlbS1wcmVzZXRzLWVtcHR5IHtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICB9XG5cbiAgICAvLyBIZXQgdmFrIG5hYXN0IGRlIGtldXplbGlqc3Q6IFwiTmlldCBvcGdlc2xhZ2VuXCIgKyBkZSBvcHNsYWFuLWxpbmsgKGlkZWUgQikuXG4gICAgLnFwZW0tcHJlc2V0cy1tZXRhIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgfVxuXG4gICAgLnFwZW0tcHJlc2V0cy1kaXJ0eSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cblxuICAgIC8vIGBxZG5hcHJvLWljb24tYnRuYCB6ZXQgemlqbiBlaWdlbiBgZGlzcGxheTogaW5saW5lLWZsZXhgIHZpYSBlZW4ga2xhc3NlIG9wXG4gICAgLy8gZGUgaG9zdCwgZW4gZGllIHdpbnQgdmFuIGRlIGJyb3dzZXJyZWdlbCBhY2h0ZXIgaGV0IGBoaWRkZW5gLWF0dHJpYnV1dC5cbiAgICAvLyBab25kZXIgZGV6ZSByZWdlbCBibGlqZnQgZGUgcHJ1bGxlbmJhayB6aWNodGJhYXIgdGVyd2lqbCBlciBuaWV0cyBnZWtvemVuXG4gICAgLy8gaXMg4oCUIGhldHplbGZkZSBzb29ydCB2YWxzdHJpayBhbHMgQm9vdHN0cmFwcyBgZC1mbGV4YCBvcCBlZW4gdmlldy1yb290LlxuICAgIC5xcGVtLXByZXNldHMgcWRuYXByby1pY29uLWJ0bltoaWRkZW5dIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAucXBlbS1wcmVzZXQtcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIG1hcmdpbjogLThweCAwIDE2cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMTJweDtcblxuICAgICAgICAmW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG5cbiAgICAgICAgcWRuYXByby1pbnB1dCB7IGZsZXg6IDE7IG1pbi13aWR0aDogMDsgfVxuICAgIH1cblxuICAgIC5xcGVtLXByZXNldC1jb25maXJtIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNjAwKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tIHBhbmVscyAtLS0tXG4gICAgLnFwZW0tcGFuZWxzIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgYXV0byAxZnI7XG4gICAgICAgIGdhcDogMTZweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLnFwZW0tcGFuZWwge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgIH1cblxuICAgIC8vIEtvcCBlbiBhbGxlcy1zZWxlY3RlcmVuIG9wIEVFTiByZWdlbDsga2xlaW4sIGRlIGxpanN0IGlzIGRlIGhvb2ZkemFhay5cbiAgICAvLyBEZSBhbGxlcy1zZWxlY3RlcmVuLWNoZWNrYm94IHN0YWF0IExJTktTLCByZWNodCBib3ZlbiBkZSBjaGVja2JveGVzIGluIGRlXG4gICAgLy8gcmlqZW4gKDEzcHggPSBkZSBjaGlwLXJhbmQgcGx1cyB6aWpuIGxpbmtlcnBhZGRpbmcpLCB6b2RhdCBkZSBrb2xvbVxuICAgIC8vIGNoZWNrYm94ZXMgZWVuIGdlaGVlbCBpcy5cbiAgICAucXBlbS1wYW5lbC1oZWFkIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxM3B4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKTtcbiAgICB9XG5cblxuICAgIC5xcGVtLWVtcHR5IHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICB9XG5cbiAgICAucXBlbS1saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA1cHg7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDgwcHg7XG4gICAgfVxuXG4gICAgLy8gLS0tLSBjaGlwcyAtLS0tXG4gICAgLnFwZW0tY2hpcCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBwYWRkaW5nOiA1cHggOHB4IDVweCAxMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMik7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZC1ob3Zlcik7XG4gICAgICAgIGN1cnNvcjogZ3JhYjtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAgICAgLy8gU2xlZXAtYWZmb3JkYW5jZTogaGV0IHBhYXJzZSBhY2NlbnRiYWxramUgb3AgaG92ZXIsIHplbGZkZSB0YWFsIGFsc1xuICAgICAgICAvLyBxZG5hcHJvLWFuc3dlci1vcHRpb24gKDRweCwgbGlua3MsIC0tYy1hY3Rpb24tNTAwKS4gSGV0IGxvc3NlXG4gICAgICAgIC8vIGdyaXAtaWNvb24gZGF0IGhpZXIgc3RvbmQgaXMgd2VnLlxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDRweDtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgd2lkdGg6IDRweDtcbiAgICAgICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBlYXNlO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyOjpiZWZvcmUgeyBvcGFjaXR5OiAxOyB9XG5cbiAgICAgICAgLy8gVGlqZGVucyBkZSBzbGVlcDogaGV0IG9yaWdpbmVlbCB3b3JkdCBcIm9wZ2V0aWxkXCIgKHZlcmR3aWpudCB1aXQgZGVcbiAgICAgICAgLy8gbGlqc3QpOyBoZXQgc2NodWl2ZW5kZSBnYXQgKC5xcGVtLWdhcCkgdG9vbnQgd2FhciBoaWogbGFuZHQuXG4gICAgICAgICYtLWxpZnRlZCB7IGRpc3BsYXk6IG5vbmU7IH1cblxuICAgICAgICAvLyBBY3RpZWYgPSBwYWFycywgdmVyYm9yZ2VuID0gZ3JpanM6IGRlIGtsZXVyIElTIGRlIHN0YXR1cy4gWmVsZmRlXG4gICAgICAgIC8vIGxhdmVuZGVsIGFscyBoZXQgb29yc3Byb25rZWxpamtlIG9udHdlcnAuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXNlY29uZGFyeS1wdXJwbGUsICNlNmU5ZmYpO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDY0LCA3MywgMTU0LCAwLjE4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJ1aW1lciByYWFrdmxhayBvcCBkZSBjaGVja2JveGVzOiBoZXQga2xpa3ZsYWsgc3RlZWt0IDhweCBidWl0ZW4gaGV0XG4gICAgLy8gemljaHRiYXJlIHZha2plLiBab25kZXIgZGl0IGJlZ29uIGVlbiBrbGlrIG1ldCBlZW4gbWluaWJld2VnaW5nIGFscyBncmFiXG4gICAgLy8gZW4gZ2luZyBoZXQgdmlua2plIHZlcmxvcmVuIChzYW1lbiBtZXQgZGUgZHJhZ3N0YXJ0LWd1YXJkIGluIGRlIEpTKS5cbiAgICAucXBlbS1jaGlwIHFkbmFwcm8tY2hlY2tib3gsXG4gICAgLnFwZW0tcGFuZWwtaGVhZCBxZG5hcHJvLWNoZWNrYm94IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGluc2V0OiAtOHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnFwZW0tY2hpcC1sYWJlbCB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgfVxuXG4gICAgLy8gU29ydGVlcmtub3AgaXMgZWVuIGVjaHRlIHFkbmFwcm8taWNvbi1idG4uIFN0eWxpbmcgdmlhIFtkYXRhLXNvcnRdIGVuIG5pZXRcbiAgICAvLyB2aWEgZWVuIGtsYXNzZTogZGUgaWNvbi1idG4gdmVlZ3QgYmlqIGVlbiByZS1yZW5kZXIgemlqbiBrbGFzc2VuIHNjaG9vblxuICAgIC8vIChjbGFzc25hbWUtd2lwZSksIGVlbiBkYXRhLWF0dHJpYnV1dCBvdmVybGVlZnQgZGF0LiBHZWVuIHNvcnRlcmluZyA9IGdlZGltZC5cbiAgICAucXBlbS1jaGlwIHFkbmFwcm8taWNvbi1idG5bZGF0YS1zb3J0PVwibm9uZVwiXSB7IGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwKTsgfVxuXG4gICAgLy8gQmV3YWFyLXBvcG92ZXIgb25kZXJpbiAoMjgwcHggZGVmYXVsdCBpcyBlZW4gbWVudS1tYWF0OyBkaXQgaXMgZWVuXG4gICAgLy8gbWluaS1mb3JtdWxpZXIsIGR1cyBkZSBob3N0IHpldCBkZSBicmVlZHRlIOKAlCB2YWxrdWlsIDEgdWl0IGRlXG4gICAgLy8gcG9wb3Zlci1za2lsbCkuXG4gICAgcWRuYXByby1wb3BvdmVyW2RhdGEtcXBlbS1zYXZlXSB7XG4gICAgICAgIHdpZHRoOiBtaW4oOTJ2dywgMzIwcHgpO1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgfVxuXG4gICAgLnFwZW0tcG9wLXRleHQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktOTUwKTtcbiAgICB9XG5cbiAgICAucXBlbS1wb3AtYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICB9XG5cbiAgICAvLyBIZXQgZ2F0IHdhYXIgZGUgZ2VzbGVlcHRlIHJpaiBnYWF0IGxhbmRlbi4gRGUgSlMgemV0IGRlIGhvb2d0ZSAoMCAtPiBkZVxuICAgIC8vIGhvb2d0ZSB2YW4gZGUgZ2VzbGVlcHRlIHJpaik7IGRlemUgdHJhbnNpdGlvbiBsYWF0IGRlIGFuZGVyZSByaWplblxuICAgIC8vIHppY2h0YmFhciBydWltdGUgbWFrZW4gdGlqZGVucyBoZXQgc2xlcGVuLlxuICAgIC5xcGVtLWdhcCB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBib3JkZXI6IDEuNXB4IGRhc2hlZCByZ2JhKDcwLCA4MiwgMjQzLCAwLjQ1KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjA2KTtcbiAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDEzMG1zIGVhc2U7XG4gICAgfVxuXG4gICAgLy8gLS0tLSBtb3ZlcnMgLS0tLVxuICAgIC5xcGVtLW1vdmVycyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgfVxuXG5cbiAgICAvLyBuYXJyb3cgc2NyZWVuczogc3RhY2sgcGFuZWxzLCBtb3ZlcnMgYmVjb21lIGEgaG9yaXpvbnRhbCByb3dcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAgICAgLnFwZW0tcGFuZWxzIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgICB9XG4gICAgICAgIC5xcGVtLW1vdmVycyB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLW1vbnRoLWdyaWQg4oCUIEFwcGxlLXN0eWxlIG1vbnRoIHZpZXcgKFBXQSBjYWxlbmRhciBNNClcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFFETkEgdG9rZW5zIHVzZWQgKGNoaXAgcGFsZXR0ZSA9IHRoZSBldmVudC1jYXJkIHBhbGV0dGUsIDE6MSk6XG4vLyAgICAtLWMtcHVycGxlLTUwIC8gLS1jLXB1cnBsZS01MDAgICAgICAgICAgcGxhbm5lZFxuLy8gICAgLS1jLXNpZ25hbC1vcmFuZ2UtYmcgLyAtdGV4dCAgICAgICAgICAgIGlucHJvZ3Jlc3Ncbi8vICAgIC0tYy1zaWduYWwtZ3JlZW4tMTAwIC8gLS1jLXNpZ25hbC1ncmVlbi10ZXh0ICAgY29tcGxldGVcbi8vICAgIC0tYy1zaWduYWwtcmVkLWJnIC8gLS1jLXNpZ25hbC1yZWQtdGV4dCAgICAgICAgb3ZlcmR1ZVxuLy8gICAgLS1jLWdyZXktNTAgLyAtLWMtZ3JleS02MDAgICAgICAgICAgICAgIGJsb2NrZWRcbi8vICAgIC0tYy1zaWduYWwtcGluay1iZyAvIC0tYy1zaWduYWwtcGluay10ZXh0ICAgICAgcGVyc29uYWxcbi8vICAgIC0tYy1ib3JkZXItc29mdC0yICByYXN0ZXIgbGluZXMgICAtLWMtZ3JleS01MDAgIHdlZWtkYXkgaGVhZGVyL291dHNpZGUgZGF5c1xuLy8gIExheW91dDogNyBlcXVhbCBjb2x1bW5zLCB3ZWVrcyBhcyByb3dzLCBkYXkgbnVtYmVyIG9uIHRvcCwgdGhlbiAoaWYgdGhlXG4vLyAgd2VlayByb3cgaGFzIGFueSBtdWx0aS1kYXkgc3BhbikgYW4gaW52aXNpYmxlIGxhbmUtc3BhY2VyIHN0YWNrIHRoYXRcbi8vICByZXNlcnZlcyB0aGUgYmFyJ3MgdmVydGljYWwgc3BhY2UsIHRoZW4gdGhlIHNpbmdsZS1kYXkgY2hpcHMsIHRoZW4gXCIrTlwiXG4vLyAgb3ZlcmZsb3cuIFRoZSBCQVJTIHRoZW1zZWx2ZXMgYXJlIGEgcm93LWxldmVsIGFic29sdXRlIG92ZXJsYXkgZHJhd25cbi8vICBPVkVSIHRoZSBjZWxscy9ib3JkZXJzIChvbmUgY29udGludW91cyBlbGVtZW50IHBlciBzcGFuIHNlZ21lbnQsIG5vdFxuLy8gIHNsaWNlZCBwZXIgZGF5IOKAlCBzZWUgLnFkbmFwcm8tbW9udGgtZ3JpZF9fYmFyLW92ZXJsYXkpIHNvIGEgbXVsdGktZGF5XG4vLyAgc3BhbiByZWFkcyBhcyBvbmUgc2hhcGUsIEdvb2dsZS1zdHlsZS4gVG9kYXkgPSBGVUxMIGZpbGxlZCBjaXJjbGUgb24gdGhlXG4vLyAgbnVtYmVyIGFuZCBpdCBrZWVwcyB0aGF0IGZpbGwgZXZlbiB3aGVuIGl0IGlzIHRoZSBzZWxlY3RlZCBkYXk7IGEgc2VsZWN0ZWRcbi8vICBkYXkgb3RoZXIgdGhhbiB0b2RheSA9IExJR0hURVIgZmlsbCAoS2ltIDI5LjA3LjIwMjYsIEdvb2dsZSBDYWxlbmRhciBtb2RlbFxuLy8gIOKAlCBzZWUgdGhlIHJ1bGVzIGZ1cnRoZXIgZG93bjsgdGhpcyB1c2VkIHRvIGJlIHRoZSBvdGhlciB3YXkgcm91bmQpLlxuLy8gIEJhcnMvY2hpcHMgc2hhcmUgdGhlIHNhbWUgY29sb3VyIHZvY2FidWxhcnlcbi8vICAoLS1tb250aC1ncmlkLWNoaXAtYmcvLXRleHQgY3VzdG9tIHByb3BlcnRpZXMgKyBzdGF0dXMgbW9kaWZpZXIgc3VmZml4KS5cbi8vICBGTEFUIENTUzsgc3luY2VkIHRvIHRoZSBQV0EgdmlhIHN5bmMtdjItY29tcG9uZW50cy5qcy5cblxuLy8gU2hhcmVkIGxheW91dCBjb25zdGFudHMgZm9yIHRoZSBtdWx0aS1kYXkgQkFSIE9WRVJMQVkgKDIwLjA3LjIwMjYgcmV3b3JrKVxuLy8g4oCUIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIGJvdGggdGhlIGluLWZsb3cgc3BhY2VyIHN0YWNrIChjZWxsXG4vLyBwYWRkaW5nL2RheS1udW1iZXIvbGFuZSBzaXppbmcgYmVsb3cpIGFuZCB0aGUgcm93LWxldmVsIG92ZXJsYXkncyBgdG9wYFxuLy8gZm9ybXVsYSwgc28gdGhlIG92ZXJsYXkgYWx3YXlzIGxpbmVzIHVwIHdpdGggaXRzIGxhbmUncyBzcGFjZXIgd2l0aG91dFxuLy8gYW55IEpTIG1lYXN1cmVtZW50LCBob3dldmVyIHRhbGwgLS1tb250aC1ncmlkLWNlbGwgbWFrZXMgdGhlIGNlbGwgKHNlZVxuLy8gdGhlIGRvY2Jsb2NrIGluIHFkbmEtbW9udGgtZ3JpZC5qcyBmb3IgdGhlIGZ1bGwgcmVhc29uaW5nKS5cbiRtZy1jZWxsLXBhZC10b3A6IDJweDtcbiRtZy1kYXludW0tc2l6ZTogMjRweDtcbiRtZy1kYXludW0tbWFyZ2luLWI6IDJweDtcbiRtZy1iYXItaGVpZ2h0OiAxM3B4O1xuJG1nLWJhci1nYXA6IDFweDtcbiRtZy1iYXItaW5zZXQ6IDJweDsgLy8gbWF0Y2hlcyAtLWJhci1pbnNldC1sLy1yIHNldCBpbiBxZG5hLW1vbnRoLWdyaWQuanNcbi8vIFRvcCBvZmZzZXQgb2YgbGFuZSAwJ3Mgc3BhY2VyL292ZXJsYXksIG1lYXN1cmVkIGZyb20gdGhlIHJvdydzIHRvcCBlZGdlXG4kbWctYmFyLXRvcC1iYXNlOiAkbWctY2VsbC1wYWQtdG9wICsgJG1nLWRheW51bS1zaXplICsgJG1nLWRheW51bS1tYXJnaW4tYjtcbi8vIFZlcnRpY2FsIHN0ZXAgYmV0d2VlbiBjb25zZWN1dGl2ZSBsYW5lc1xuJG1nLWJhci1sYW5lLXN0ZXA6ICRtZy1iYXItaGVpZ2h0ICsgJG1nLWJhci1nYXA7XG5cbi5xZG5hcHJvLW1vbnRoLWdyaWQge1xuICAvLyBEYXktY2VsbCBtaW4taGVpZ2h0IOKAlCB0aGUgZGVuc2l0eSBob29rXG4gIC0tbW9udGgtZ3JpZC1jZWxsOiA2NHB4O1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLCAjZmZmKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLy8gQ29tcGFjdCBoZWFkZXIgcm93IChELCAyOS4wNy4yMDI2KSDigJQgbW9udGggbmFtZS95ZWFyICsgcHJldi9uZXh0IG1vbnRoXG4vLyBuYXYsIHJlbmRlcmVkIG9ubHkgd2hlbiB0aGUgYGhlYWRlcmAgYXR0cmlidXRlIGlzIHNldC4gUmVwbGFjZXMgdGhlXG4vLyBzdGFuZGFsb25lIG1vbnRoLXN0cmlwIG5hdmlnYXRpb24gdGhpcyBncmlkIHVzZWQgdG8gc2l0IHVuZGVyLiBDaGV2cm9uc1xuLy8gYXJlIDxxZG5hcHJvLWljb24+IChGLCAyOS4wNy4yMDI2IOKAlCB0aGlzIGNvbXBvbmVudCdzIGZpcnN0IGNvbXBvbmVudFxuLy8gZGVwZW5kZW5jeSwgc2VlIHRoZSBERVBFTkRFTkNZIE5PVEUgaW4gcWRuYS1tb250aC1ncmlkLmpzJ3MgZG9jYmxvY2spLlxuLnFkbmFwcm8tbW9udGgtZ3JpZF9faGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAycHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIsICNlNmU5ZWYpO1xufVxuLnFkbmFwcm8tbW9udGgtZ3JpZF9faGVhZGVyLXRpdGxlIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktODAwLCAjMWMxYjI5KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4vLyA0NHg0NCBDU1MtcHggdG91Y2ggdGFyZ2V0IChoYXJkIG1pbmltdW0gZm9yIHRoaXMgY29tcG9uZW50J3MgbWFuZGF0ZSkg4oCUXG4vLyBzaXplZCBkaXJlY3RseSBvbiB0aGUgYnV0dG9uIGl0c2VsZiByYXRoZXIgdGhhbiB2aWEgYW4gOjphZnRlciBleHBhbnNpb24sXG4vLyBzaW5jZSB0aGUgYnV0dG9uIGhhcyBubyBvdGhlciBzaXplIGNvbnN0cmFpbnQgaGVyZS5cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX25hdi1idG4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAwIDAgYXV0bztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiA0NHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNjAwLCAjNTY1YjY2KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fbmF2LWJ0biBxZG5hcHJvLWljb24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbn1cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX25hdi1idG46aG92ZXIge1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTgwMCwgIzFjMWIyOSk7XG59XG4vLyB5ZWFyLXNwYW4gZnVuY3Rpb25hbCBib3VuZGFyeSAoS2ltIDI5LjA3LjIwMjYpOiBhIHJlYWwgYGRpc2FibGVkYCBhdHRyaWJ1dGVcbi8vIChzZXQgaW4gcWRuYS1tb250aC1ncmlkLmpzJ3MgcmVuZGVyKCksIG5ldmVyIENTUy1vbmx5KSB3aGVuIHRoZSBuZXh0L3ByZXZcbi8vIHN0ZXAgd291bGQgbGFuZCBvdXRzaWRlIHRoZSBhbGxvd2VkIHNwYW4g4oCUIGRpbW1lZCBhbmQgaW5lcnQgaW5zdGVhZCBvZiBhXG4vLyB0YXAgdGhhdCBxdWlldGx5IGRvZXMgbm90aGluZy4gYDpub3QoOmRpc2FibGVkKWAgb24gdGhlIGhvdmVyIHJ1bGUgYWJvdmVcbi8vIHdvdWxkIGFsc28gd29yazsgZ3VhcmRpbmcgaGVyZSBrZWVwcyB0aGF0IHJ1bGUncyBvd24gaW50ZW50IHVuY2hhbmdlZC5cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX25hdi1idG46ZGlzYWJsZWQge1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTMwMCwgI2NkZDFkNik7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fbmF2LWJ0bjpkaXNhYmxlZDpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktMzAwLCAjY2RkMWQ2KTtcbn1cblxuLy8gV2Vla2RheSBoZWFkZXIgcm93IChNb25kYXkgZmlyc3QgYnkgZGVmYXVsdDsgdGhlIEpTIHJvdGF0ZXMgdGhlIGxhYmVsXG4vLyBvcmRlciBhdCByZW5kZXIgdGltZSBwZXIgdGhlIGBmaXJzdC13ZWVrZGF5YCBhdHRyaWJ1dGUsIDE3LjA3LjIwMjYg4oCUIHB1cmVcbi8vIGxheW91dCBoZXJlLCB1bmFmZmVjdGVkIGJ5IHdoaWNoIHdlZWtkYXkgaXMgZmlyc3QpXG4ucWRuYXByby1tb250aC1ncmlkX193ZWVrZGF5cyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDcsIDFmcik7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIsICNlNmU5ZWYpO1xufVxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fd2Vla2RheSB7XG4gIHBhZGRpbmc6IDZweCAwIDRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNzI4MCk7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG59XG5cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX3dlZWtzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX3dlZWsge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIHBvc2l0aW9uaW5nIGNvbnRleHQgZm9yIHRoZSByb3ctbGV2ZWwgYmFyIG92ZXJsYXlzXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDcsIDFmcik7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIsICNlNmU5ZWYpO1xufVxuXG4vLyBGSUxMIG1vZGUgKEEsIEtpbSAyOS4wNy4yMDI2KTogdGhlIGhvc3Qgc3RyZXRjaGVzIHRvIGl0cyBhdmFpbGFibGUgaGVpZ2h0XG4vLyBpbnN0ZWFkIG9mIGZpeGVkIC0tbW9udGgtZ3JpZC1jZWxsIHJvd3Mgd2l0aCBlbXB0eSBzcGFjZSBiZWxvdy4gVGhlIHdlZWtzXG4vLyBjb2x1bW4gYW5kIGVhY2ggd2VlayByb3cgZ3JvdyB2aWEgZmxleGJveDsgcm93IENPTlRFTlQgc3RheXMgVE9QLWFuY2hvcmVkXG4vLyAobm8gYWxpZ24taXRlbXM6IGNlbnRlciBhbnl3aGVyZSBoZXJlKSBiZWNhdXNlIHRoZSBiYXItb3ZlcmxheSBgdG9wYFxuLy8gZm9ybXVsYSBhYm92ZSBpcyBhIGZpeGVkIHBpeGVsIG9mZnNldCBmcm9tIHRoZSByb3cncyB0b3AgZWRnZSDigJQgY2VudGVyaW5nXG4vLyB0aGUgcm93IHdvdWxkIGJyZWFrIHRoYXQgZm9ybXVsYS4gRXh0cmEgaGVpZ2h0IGFsd2F5cyBmYWxscyBhcyBlbXB0eVxuLy8gc3BhY2UgQkVMT1cgdGhlIGNvbnRlbnQsIG5ldmVyIHJlZGlzdHJpYnV0ZWQgYWJvdmUgaXQuIC0tbW9udGgtZ3JpZC1jZWxsXG4vLyBzdGF5cyBpbiBmb3JjZSBhcyBhIG1pbi1oZWlnaHQgUkVBREFCSUxJVFkgRkxPT1IsIG5vdCBhIGZpeGVkIHNpemUuXG4ucWRuYXByby1tb250aC1ncmlkW2ZpbGxdIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnFkbmFwcm8tbW9udGgtZ3JpZFtmaWxsXSAucWRuYXByby1tb250aC1ncmlkX193ZWVrcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4taGVpZ2h0OiAwOyAvLyBsZXRzIHRoZSBmbGV4IGNoaWxkIHNocmluayBiZWxvdyBpdHMgY29udGVudCBzaXplXG59XG4ucWRuYXByby1tb250aC1ncmlkW2ZpbGxdIC5xZG5hcHJvLW1vbnRoLWdyaWRfX3dlZWsge1xuICBmbGV4OiAxIDEgMDtcbiAgbWluLWhlaWdodDogdmFyKC0tbW9udGgtZ3JpZC1jZWxsKTtcbn1cblxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fY2VsbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi1oZWlnaHQ6IHZhcigtLW1vbnRoLWdyaWQtY2VsbCk7XG4gIG1pbi13aWR0aDogMDtcbiAgcGFkZGluZzogI3skbWctY2VsbC1wYWQtdG9wfSAycHggM3B4O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIsICNlNmU5ZWYpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucWRuYXByby1tb250aC1ncmlkX19jZWxsOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmlnaHQ6IDA7XG59XG5cbi8vIERheSBudW1iZXIg4oCUIGNlbnRyZWQgc21hbGwgY2lyY2xlIHNvIHNlbGVjdGVkL3RvZGF5IHN0YXRlcyBoYXZlIGEgc2hhcGVcbi5xZG5hcHJvLW1vbnRoLWdyaWRfX2RheW51bSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogJG1nLWRheW51bS1zaXplO1xuICBoZWlnaHQ6ICRtZy1kYXludW0tc2l6ZTtcbiAgbWFyZ2luOiAwIGF1dG8gJG1nLWRheW51bS1tYXJnaW4tYjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTgwMCwgIzFjMWIyOSk7XG59XG4ucWRuYXByby1tb250aC1ncmlkX19jZWxsLS1vdXRzaWRlIC5xZG5hcHJvLW1vbnRoLWdyaWRfX2RheW51bSB7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwLCAjOWNhM2FmKTtcbn1cbi8vIHllYXItc3BhbiBmdW5jdGlvbmFsIGJvdW5kYXJ5IChLaW0gMjkuMDcuMjAyNik6IGFuIGFkamFjZW50LW1vbnRoIGNlbGxcbi8vIHdob3NlIE9XTiBtb250aCBmYWxscyBvdXRzaWRlIHRoZSBhbGxvd2VkIHNwYW4gKHNlZSBxZG5hLW1vbnRoLWdyaWQuanMnc1xuLy8gYHllYXItc3BhbmAgZG9jYmxvY2sgZW50cnkpIGlzIGRpbW1lZCBmdXJ0aGVyIGFuZCBpdHMgdGFwIGlzIHJlZnVzZWQgaW5cbi8vIEpTIChfb25DbGljaykg4oCUIHRoZSB2aXN1YWwgbWlycm9ycyBob3cgYSBkaXNhYmxlZCBjZWxsIHJlYWRzIGVsc2V3aGVyZSxcbi8vIHRoaXMgY29tcG9uZW50IGp1c3QgaGFkIG5vIHByaW9yIGRpc2FibGVkLWNlbGwgY29uY2VwdCB0byByZXVzZS5cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX2NlbGwtLWJsb2NrZWQge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBvcGFjaXR5OiAwLjQ1O1xufVxuLy8gVE9EQVkgKyBTRUxFQ1RFRCB1c2UgdGhlIGFjdGlvbiBjb2xvciAoS2ltLCAyMC4wNy4yMDI2KSBzbyB0aGlzIG1hdGNoZXNcbi8vIHRoZSBkYXktaGVhZGVyIHRvZGF5IHBpbGwgaW4gdGhlIHRpbWUtZ3JpZCAvIHJlc291cmNlLXRpbWVsaW5lIGNhbGVuZGFyXG4vLyB2aWV3cyDigJQgb25lIGJsdWUgXCJ0b2RheS9zZWxlY3RlZFwiIGxhbmd1YWdlIGFjcm9zcyBldmVyeSBjYWxlbmRhciBtb2RlLlxuLy9cbi8vIFRPREFZIHZzIFNFTEVDVEVEIHJld29ya2VkIDI5LjA3LjIwMjYgKEtpbSwgR29vZ2xlIENhbGVuZGFyIG1vZGVsKSwgc2FtZVxuLy8gaW52ZXJzaW9uIGFzIHFkbmFwcm8tbW9udGgtc3RyaXA6IHRvZGF5IG93bnMgdGhlIEZVTEwgZmlsbCBhbmQga2VlcHMgaXQgZXZlblxuLy8gd2hlbiBpdCBpcyBhbHNvIHRoZSBzZWxlY3RlZCBkYXksIHdoaWxlIHRoZSBzZWxlY3Rpb24gZ2V0cyBhIExJR0hURVIgZmlsbCBzb1xuLy8gaXQgcmVhZHMgY2xlYXJseSBhcyBcIm5vdCB0b2RheVwiLiBCZWZvcmUgdGhpcywgdG9kYXkgd2FzIG9ubHkgYSBib2xkIGNvbG91cmVkXG4vLyBudW1iZXIgYW5kIHRoZSBzZWxlY3Rpb24gb3duZWQgdGhlIHNvbGlkIGNpcmNsZSwgd2hpY2ggbWFkZSB0b2RheSBlYXN5IHRvIG1pc3Ncbi8vIG9uIGFueSBvdGhlciBkYXkuIGA6bm90KC5pcy10b2RheSlgIHN0YXRlcyB0aGUgcHJlY2VkZW5jZSBleHBsaWNpdGx5IHJhdGhlclxuLy8gdGhhbiBsZWFuaW5nIG9uIHNvdXJjZSBvcmRlci5cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX2NlbGwuaXMtc2VsZWN0ZWQ6bm90KC5pcy10b2RheSkgLnFkbmFwcm8tbW9udGgtZ3JpZF9fZGF5bnVtIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zZWNvbmRhcnktcHVycGxlLCAjZTZlOWZmKTtcbiAgY29sb3I6IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4ucWRuYXByby1tb250aC1ncmlkX19jZWxsLmlzLXRvZGF5IC5xZG5hcHJvLW1vbnRoLWdyaWRfX2RheW51bSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG4gIGNvbG9yOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4vLyBNdWx0aS1kYXkgU1BBTiBsYW5lIHJlc2VydmF0aW9uIOKAlCBldmVyeSBjZWxsIGluIGEgd2VlayByb3cgdGhhdCBoYXMgYW55XG4vLyBzcGFuIGdldHMgdGhlIHNhbWUgbnVtYmVyIG9mIGludmlzaWJsZSBzcGFjZXIgc2xvdHMgKG9uZSBwZXIgY29uY3VycmVudFxuLy8gbGFuZSBpbiB0aGF0IHJvdyksIHB1cmVseSB0byBtYWtlIHRoZSBDU1MgR3JpZCByb3cgYXV0by1oZWlnaHQgaXRzZWxmXG4vLyBhbmQgdG8ga2VlcCB0aGUgY2hpcHMgYmVsb3cgYWxpZ25lZCBhY3Jvc3MgdGhlIHJvdywgd2l0aG91dCB0b3VjaGluZ1xuLy8gLS1tb250aC1ncmlkLWNlbGwncyBtaW4taGVpZ2h0IGNvbnRyYWN0LiBUaGUgVklTSUJMRSBiYXIgaXRzZWxmIGlzIG5vXG4vLyBsb25nZXIgaGVyZSDigJQgc2VlIC5xZG5hcHJvLW1vbnRoLWdyaWRfX2Jhci1vdmVybGF5IGZ1cnRoZXIgZG93biwgd2hpY2hcbi8vIGlzIGEgcm93LWxldmVsIGFic29sdXRlbHktcG9zaXRpb25lZCBlbGVtZW50IHBlciBzcGFuIHNlZ21lbnQsIHBhaW50ZWRcbi8vIG92ZXIgdGhlIGNlbGxzIChLaW0ncyAyMC4wNy4yMDI2IHZlcmRpY3Q6IGl0IG11c3QgbG9vayBsaWtlIE9ORVxuLy8gY29udGludW91cyBiYXIsIG5vdCBzbGljZWQgcGVyIGNlbGwvZGF5KS5cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX2JhcnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6ICN7JG1nLWJhci1nYXB9O1xuICBtaW4td2lkdGg6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFweDtcbn1cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX2Jhcixcbi5xZG5hcHJvLW1vbnRoLWdyaWRfX2Jhci1zcGFjZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgaGVpZ2h0OiAjeyRtZy1iYXItaGVpZ2h0fTtcbiAgbWluLXdpZHRoOiAwO1xufVxuLy8gU3BhY2VyIOKAlCByZXNlcnZlcyB0aGUgbGFuZSdzIHZlcnRpY2FsIHNwYWNlIGluIGV2ZXJ5IGNlbGwgb2YgdGhlIHJvd1xuLy8gKHdoZXRoZXIgb3Igbm90IHRoaXMgcGFydGljdWxhciBkYXkgaXMgY292ZXJlZCBieSBhIHNwYW4gaW4gdGhhdCBsYW5lKSxcbi8vIHNvIGNoaXBzIHN0YXkgYWxpZ25lZCBhY3Jvc3MgdGhlIHJvdzsgbmV2ZXIgcGFpbnRlZCBvciB0YXBwYWJsZS5cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX2Jhci1zcGFjZXIge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4ucWRuYXByby1tb250aC1ncmlkX19iYXIge1xuICAvLyBTYW1lIHN0YXR1cyB2YXJpYWJsZXMgdGhlIGNoaXBzIHVzZSDigJQgaWRlbnRpY2FsIGNvbG91ciB2b2NhYnVsYXJ5LFxuICAvLyByZXVzZWQgMToxIChzZWUgdGhlIG1vZGlmaWVycyBiZWxvdyBhbmQgdGhlIGNoaXAgbW9kaWZpZXJzIGZ1cnRoZXIgZG93bikuXG4gIC0tbW9udGgtZ3JpZC1jaGlwLWJnOiAgIHZhcigtLWMtcHVycGxlLTUwLCAjZTZlOWZmKTtcbiAgLS1tb250aC1ncmlkLWNoaXAtdGV4dDogdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKTtcblxuICBwYWRkaW5nOiAwIDNweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tbW9udGgtZ3JpZC1jaGlwLWJnKTtcbiAgY29sb3I6IHZhcigtLW1vbnRoLWdyaWQtY2hpcC10ZXh0KTtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMTNweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyAvLyB0aGUgY2VsbCBpcyB0aGUgdGFwIHRhcmdldCwgc2FtZSBhcyBjaGlwc1xuICAvLyBGbGF0IGJ5IGRlZmF1bHQg4oCUIHJvdW5kZWQgb25seSBhdCB0aGUgc3BhbidzIFRSVUUgc3RhcnQvZW5kIChzZWVcbiAgLy8gLS1yb3VuZC1zdGFydC8tLXJvdW5kLWVuZCBiZWxvdyk7IGEgc2VnbWVudCBjb250aW51aW5nIGludG8gdGhlXG4gIC8vIG5leHQvcHJldmlvdXMgd2VlayByb3csIG9yIGNsYW1wZWQgdG8gdGhlIGdyaWQgZWRnZSwgc3RheXMgZmxhdC5cbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi8vIFJvdy1sZXZlbCBvdmVybGF5IOKAlCB0aGUgT05FIGNvbnRpbnVvdXMgZWxlbWVudCBwZXIgc3BhbiBzZWdtZW50LFxuLy8gcG9zaXRpb25lZCBvdmVyIHRoZSBjZWxscy9ib3JkZXJzIGluc3RlYWQgb2YgbGl2aW5nIGluc2lkZSBhIGNlbGwuXG4vLyBgbGVmdGAvYHdpZHRoYCBhcmUgZnJhY3Rpb25zIG9mIHRoZSByb3cncyA3IGVxdWFsIGNvbHVtbnMgKGV4YWN0IGJlY2F1c2Vcbi8vIC5xZG5hcHJvLW1vbnRoLWdyaWRfX3dlZWsgaGFzIG5vIGNvbHVtbiBnYXAgYW5kIGNlbGxzIGFyZSBib3gtc2l6aW5nOlxuLy8gYm9yZGVyLWJveCwgc28gYSBjZWxsJ3MgYm9yZGVyLXJpZ2h0IG5ldmVyIHNoaWZ0cyBhIGNvbHVtbiBlZGdlKTsgdGhlXG4vLyBzbWFsbCAtLWJhci1pbnNldC0qIHB1bGxzIGEgcm91bmRlZCBlbmQgaW4gc2xpZ2h0bHkgc28gdGhlIHBpbGwgcmVhZHMgYXNcbi8vIGEgcGlsbCBpbnN0ZWFkIG9mIHRvdWNoaW5nIHRoZSBjZWxsIGVkZ2UsIHdoaWxlIGZsYXQgKHJvdy13cmFwL2NsYW1wKVxuLy8gZW5kcyBzdGF5IGZsdXNoLiBgdG9wYCB1c2VzIHRoZSBTQU1FIGNvbnN0YW50cyBhcyB0aGUgY2VsbCBwYWRkaW5nL1xuLy8gZGF5LW51bWJlciBzaXppbmcgYWJvdmUsIHNvIGl0IGFsd2F5cyBsaW5lcyB1cCB3aXRoIHRoaXMgc3BhbidzIGxhbmVcbi8vIHNwYWNlciByZWdhcmRsZXNzIG9mIGhvdyB0YWxsIC0tbW9udGgtZ3JpZC1jZWxsIG1ha2VzIHRoZSBjZWxsIChncm93aW5nXG4vLyB0aGUgY2VsbCBvbmx5IGFkZHMgZW1wdHkgc3BhY2UgYmVsb3cgdGhlIHRvcC1hbmNob3JlZCBjb250ZW50KS5cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX2Jhci1vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IGNhbGMoI3skbWctYmFyLXRvcC1iYXNlfSArIHZhcigtLWJhci1sYW5lLCAwKSAqICN7JG1nLWJhci1sYW5lLXN0ZXB9KTtcbiAgbGVmdDogY2FsYygoMTAwJSAvIDcpICogdmFyKC0tYmFyLXN0YXJ0LWNvbCwgMCkgKyB2YXIoLS1iYXItaW5zZXQtbCwgMHB4KSk7XG4gIHdpZHRoOiBjYWxjKCgxMDAlIC8gNykgKiB2YXIoLS1iYXItc3Bhbi1jb2xzLCAxKSAtIHZhcigtLWJhci1pbnNldC1sLCAwcHgpIC0gdmFyKC0tYmFyLWluc2V0LXIsIDBweCkpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi8vIERpbXMgYSBzZWdtZW50IHRoYXQgaXMgRU5USVJFTFkgd2l0aGluIGFkamFjZW50LW1vbnRoIChvdXRzaWRlKSBkYXlzIOKAlFxuLy8gdGhlIG92ZXJsYXkgaXMgYSBzaWJsaW5nIG9mIHRoZSBjZWxscyBub3csIG5vdCBhIGRlc2NlbmRhbnQsIHNvIGl0IGNhbid0XG4vLyBwaWNrIHVwIC5xZG5hcHJvLW1vbnRoLWdyaWRfX2NlbGwtLW91dHNpZGUgdmlhIHRoZSBkZXNjZW5kYW50IHNlbGVjdG9yXG4vLyB0aGUgY2hpcHMvbW9yZSBzdGlsbCB1c2UgZnVydGhlciBkb3duLlxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fYmFyLS1kaW1tZWQge1xuICBvcGFjaXR5OiAwLjQ1O1xufVxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fYmFyLS1yb3VuZC1zdGFydCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xufVxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fYmFyLS1yb3VuZC1lbmQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4O1xufVxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fYmFyLWxhYmVsIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby1tb250aC1ncmlkX19iYXItLWlucHJvZ3Jlc3Mge1xuICAtLW1vbnRoLWdyaWQtY2hpcC1iZzogICB2YXIoLS1jLXNpZ25hbC1vcmFuZ2UtYmcsICNmZGVhZGMpO1xuICAtLW1vbnRoLWdyaWQtY2hpcC10ZXh0OiB2YXIoLS1jLXNpZ25hbC1vcmFuZ2UtdGV4dCwgI2JjNmExZik7XG59XG4ucWRuYXByby1tb250aC1ncmlkX19iYXItLWNvbXBsZXRlIHtcbiAgLS1tb250aC1ncmlkLWNoaXAtYmc6ICAgdmFyKC0tYy1zaWduYWwtZ3JlZW4tMTAwLCAjZDhmNGUzKTtcbiAgLS1tb250aC1ncmlkLWNoaXAtdGV4dDogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCwgIzQyOGI2ZSk7XG59XG4ucWRuYXByby1tb250aC1ncmlkX19iYXItLW92ZXJkdWUge1xuICAtLW1vbnRoLWdyaWQtY2hpcC1iZzogICB2YXIoLS1jLXNpZ25hbC1yZWQtYmcsICNmZWUzZTMpO1xuICAtLW1vbnRoLWdyaWQtY2hpcC10ZXh0OiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCwgI2M2NWE1YSk7XG59XG4ucWRuYXByby1tb250aC1ncmlkX19iYXItLWJsb2NrZWQge1xuICAtLW1vbnRoLWdyaWQtY2hpcC1iZzogICB2YXIoLS1jLWdyZXktNTAsICNmMGYxZjIpO1xuICAtLW1vbnRoLWdyaWQtY2hpcC10ZXh0OiB2YXIoLS1jLWdyZXktNjAwLCAjNTY1YjY2KTtcbn1cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX2Jhci0tcGVyc29uYWwge1xuICAtLW1vbnRoLWdyaWQtY2hpcC1iZzogICB2YXIoLS1jLXNpZ25hbC1waW5rLWJnLCAjZjZlMWU4KTtcbiAgLS1tb250aC1ncmlkLWNoaXAtdGV4dDogdmFyKC0tYy1zaWduYWwtcGluay10ZXh0LCAjYjI1Nzc3KTtcbn1cblxuLy8gQ2hpcHMg4oCUIHRpbnkgc3RhdHVzLWNvbG91cmVkIGJhcnMsIHRoZSBldmVudC1jYXJkIHBhbGV0dGUuIERlbGliZXJhdGVseVxuLy8gTk9UIHRvdWNoIHRhcmdldHMgKHRvbyBzbWFsbCk7IGEgY2hpcCB0YXAgc2VsZWN0cyBpdHMgZGF5IGxpa2UgdGhlIGNlbGwuXG4ucWRuYXByby1tb250aC1ncmlkX19jaGlwcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMXB4O1xuICBtaW4td2lkdGg6IDA7XG59XG4ucWRuYXByby1tb250aC1ncmlkX19jaGlwIHtcbiAgLy8gU3RhdHVzIHZhcmlhYmxlcyDigJQgcGxhbm5lZCAocHVycGxlKSBpcyB0aGUgZGVmYXVsdCwgbGlrZSB0aGUgZXZlbnQtY2FyZFxuICAtLW1vbnRoLWdyaWQtY2hpcC1iZzogICB2YXIoLS1jLXB1cnBsZS01MCwgI2U2ZTlmZik7XG4gIC0tbW9udGgtZ3JpZC1jaGlwLXRleHQ6IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIG1pbi13aWR0aDogMDtcbiAgcGFkZGluZzogMXB4IDNweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1tb250aC1ncmlkLWNoaXAtYmcpO1xuICBjb2xvcjogdmFyKC0tbW9udGgtZ3JpZC1jaGlwLXRleHQpO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxM3B4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8vIHRoZSBjZWxsIGlzIHRoZSB0YXAgdGFyZ2V0XG59XG4ucWRuYXByby1tb250aC1ncmlkX19jaGlwLS1pbnByb2dyZXNzIHtcbiAgLS1tb250aC1ncmlkLWNoaXAtYmc6ICAgdmFyKC0tYy1zaWduYWwtb3JhbmdlLWJnLCAjZmRlYWRjKTtcbiAgLS1tb250aC1ncmlkLWNoaXAtdGV4dDogdmFyKC0tYy1zaWduYWwtb3JhbmdlLXRleHQsICNiYzZhMWYpO1xufVxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fY2hpcC0tY29tcGxldGUge1xuICAtLW1vbnRoLWdyaWQtY2hpcC1iZzogICB2YXIoLS1jLXNpZ25hbC1ncmVlbi0xMDAsICNkOGY0ZTMpO1xuICAtLW1vbnRoLWdyaWQtY2hpcC10ZXh0OiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0LCAjNDI4YjZlKTtcbn1cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX2NoaXAtLW92ZXJkdWUge1xuICAtLW1vbnRoLWdyaWQtY2hpcC1iZzogICB2YXIoLS1jLXNpZ25hbC1yZWQtYmcsICNmZWUzZTMpO1xuICAtLW1vbnRoLWdyaWQtY2hpcC10ZXh0OiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCwgI2M2NWE1YSk7XG59XG4ucWRuYXByby1tb250aC1ncmlkX19jaGlwLS1ibG9ja2VkIHtcbiAgLS1tb250aC1ncmlkLWNoaXAtYmc6ICAgdmFyKC0tYy1ncmV5LTUwLCAjZjBmMWYyKTtcbiAgLS1tb250aC1ncmlkLWNoaXAtdGV4dDogdmFyKC0tYy1ncmV5LTYwMCwgIzU2NWI2Nik7XG59XG4ucWRuYXByby1tb250aC1ncmlkX19jaGlwLS1wZXJzb25hbCB7XG4gIC0tbW9udGgtZ3JpZC1jaGlwLWJnOiAgIHZhcigtLWMtc2lnbmFsLXBpbmstYmcsICNmNmUxZTgpO1xuICAtLW1vbnRoLWdyaWQtY2hpcC10ZXh0OiB2YXIoLS1jLXNpZ25hbC1waW5rLXRleHQsICNiMjU3NzcpO1xufVxuXG4vLyBcIitOXCIgb3ZlcmZsb3cgbGluZSDigJQgcXVpZXQsIHRha2VzIHRoZSBsYXN0IGNoaXAgc2xvdFxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fbW9yZSB7XG4gIHBhZGRpbmc6IDFweCAzcHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDEzcHg7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI3MjgwKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8vIERpbW1lZCBhZGphY2VudC1tb250aCBkYXlzIGtlZXAgdGhlaXIgY2hpcHMgcmVhZGFibGUgYnV0IG11dGVkLiBCYXJzIGFyZVxuLy8gZGltbWVkIHZpYSAucWRuYXByby1tb250aC1ncmlkX19iYXItLWRpbW1lZCBhYm92ZSAodGhlIG92ZXJsYXkgaXMgbm9cbi8vIGxvbmdlciBhIGNlbGwgZGVzY2VuZGFudCwgc2VlIHRoYXQgcnVsZSdzIGNvbW1lbnQpLlxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fY2VsbC0tb3V0c2lkZSAucWRuYXByby1tb250aC1ncmlkX19jaGlwLFxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fY2VsbC0tb3V0c2lkZSAucWRuYXByby1tb250aC1ncmlkX19tb3JlIHtcbiAgb3BhY2l0eTogMC40NTtcbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8tbW9udGgtc3RyaXAg4oCUIGV4cGFuZGFibGUgbW9udGggc3RyaXAgKFBXQSBjYWxlbmRhciBNMSlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFFETkEgdG9rZW5zIHVzZWQ6XG4vLyAgICAtLWMtcHVycGxlLTUwMCAgIzQwNDk5YSAgIHNlbGVjdGVkLWRheSBjaXJjbGUsIHRvZGF5IG51bWJlciwgZXZlbnQgZG90c1xuLy8gICAgLS1jLWdyZXktNTAwICAgICM2YjcyODAgICB3ZWVrZGF5IGhlYWRlciArIG1vbnRoIGxhYmVsXG4vLyAgICAtLWMtZ3JleS00MDAgICAgI2E2YWFiMyAgIG11dGVkIChhZGphY2VudC1tb250aCkgKyBkaXNhYmxlZCBkYXkgbnVtYmVyc1xuLy8gICAgLS1jLWdyZXktMzAwICAgICNjNGM3Y2MgICBncmFiYmVyIHBpbGxcbi8vICAgIC0tYy1ncmV5LTk1MCAgICAjMGIwYjBkICAgZGF5IG51bWJlcnNcbi8vICBMYXlvdXQgZnJvbSB0aGUgRmlnbWEgY2FsZW5kYXIgZnJhbWVzIChzZWN0aW9ucyAxOjU4NDkgLyAxOjU1MzQpOlxuLy8gIGNlbnRlcmVkIG1vbnRoIGxhYmVsLCA3LWNvbHVtbiB3ZWVrZGF5IHJvdywgNDhweCBkYXkgcm93cywgfjI4cHhcbi8vICBzZWxlY3Rpb24gY2lyY2xlLCA0cHggZXZlbnQgZG90LCBzaGVldC1zdHlsZSBncmFiYmVyIGF0IHRoZSBib3R0b20uXG4vLyAgQmx1ZSBzZWxlY3Rpb24gaW4gRmlnbWEgPSBxZGEgcHVycGxlIGhlcmUgKGNvbG91ciB0cnV0aCA9IHFkbmEpLlxuLy8gIEZMQVQgQ1NTOyBzeW5jZWQgdG8gdGhlIFBXQSB2aWEgc3luYy12Mi1jb21wb25lbnRzLmpzLlxuXG4ucWRuYXByby1tb250aC1zdHJpcCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgLy8gSGFyZCBiYWNrc3RvcDogbm90aGluZyAoY2hpcHMgcm93IGluY2x1ZGVkKSBtYXkgcGFpbnQgcGFzdCB0aGUgc3RyaXAnc1xuICAvLyBob3Jpem9udGFsIGZyYW1lLiBjbGlwIG9uIHgga2VlcHMgeSB2aXNpYmxlLCBzbyB0aGUgZ3JhYmJlciBkcmFnLWZvbGxvd1xuICAvLyBhbmQgZm9jdXMgcmluZ3MgYXJlIHVudG91Y2hlZC5cbiAgb3ZlcmZsb3cteDogY2xpcDtcbn1cblxuLnFkbmFwcm8tbW9udGgtc3RyaXBfX21vbnRoIHtcbiAgcGFkZGluZzogMnB4IDAgMnB4O1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI3MjgwKTtcbn1cblxuLnFkbmFwcm8tbW9udGgtc3RyaXBfX3dlZWtkYXlzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNywgMWZyKTtcbiAgcGFkZGluZzogMCA0cHggMnB4O1xufVxuLnFkbmFwcm8tbW9udGgtc3RyaXBfX3dlZWtkYXlzIHNwYW4ge1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI3MjgwKTtcbn1cblxuLy8gRGF5IGdyaWQg4oCUIHRoZSBib2R5IENMSVBTIChleHBsaWNpdCBoZWlnaHQgZnJvbSB0aGUgSlMsIHJvd3Mgw5cgNDhweCkgd2hpbGVcbi8vIHRoZSBpbm5lciBfX3Jvd3MgbGF5ZXIgVFJBTlNMQVRFUy4gVG9nZXRoZXIgdGhleSBkcml2ZSBib3RoIHRoZSB0YXAtdG9nZ2xlXG4vLyBhbmltYXRpb24gYW5kIHRoZSBncmFiYmVyIGRyYWctZm9sbG93IG1vcnBoIChzZWxlY3RlZCB3ZWVrIHN0YXlzIGFuY2hvcmVkXG4vLyB3aGlsZSB0aGUgb3RoZXIgbW9udGggcm93cyByZXZlYWwgdW5kZXIgdGhlIGZpbmdlcikuXG4ucWRuYXByby1tb250aC1zdHJpcF9fYm9keSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IGhlaWdodCAwLjI1cyBlYXNlO1xufVxuLnFkbmFwcm8tbW9udGgtc3RyaXBfX3Jvd3Mge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg3LCAxZnIpO1xuICBncmlkLWF1dG8tcm93czogNDhweDtcbiAgcGFkZGluZzogMCA0cHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBlYXNlO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xufVxuLy8gV2hpbGUgdGhlIGZpbmdlciBpcyBkb3duIHRoZSBzdHJpcCBtdXN0IHRyYWNrIGl0IDE6MSDigJQgbm8gZWFzaW5nXG4ucWRuYXByby1tb250aC1zdHJpcF9fYm9keS5pcy1kcmFnZ2luZyxcbi5xZG5hcHJvLW1vbnRoLXN0cmlwX19ib2R5LmlzLWRyYWdnaW5nIC5xZG5hcHJvLW1vbnRoLXN0cmlwX19yb3dzIHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cblxuLy8gRGlyZWN0aW9uYWwgc2xpZGUtaW4gd2hlbiB0aGUgc3RyaXAgcGFnZXMgKG5hdmlnYXRlLCBNNCkuIEFuaW1hdGVzIHRoZVxuLy8gaW5kZXBlbmRlbnQgYHRyYW5zbGF0ZWAgcHJvcGVydHkgc28gaXQgY29tcG9zZXMgd2l0aCB0aGUgZ3JhYmJlciBtb3JwaCdzXG4vLyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkgKHdoaWNoIG93bnMgdGhlIHZlcnRpY2FsIG9mZnNldCkg4oCUIG5ldmVyIGNsb2JiZXJzIGl0LlxuLnFkbmFwcm8tbW9udGgtc3RyaXBfX3Jvd3MuaXMtZW50ZXItbmV4dCB7IGFuaW1hdGlvbjogcW1zLXNsaWRlLW5leHQgMC4yNHMgY3ViaWMtYmV6aWVyKDAuMiwgMC43LCAwLjMsIDEpOyB9XG4ucWRuYXByby1tb250aC1zdHJpcF9fcm93cy5pcy1lbnRlci1wcmV2IHsgYW5pbWF0aW9uOiBxbXMtc2xpZGUtcHJldiAwLjI0cyBjdWJpYy1iZXppZXIoMC4yLCAwLjcsIDAuMywgMSk7IH1cbkBrZXlmcmFtZXMgcW1zLXNsaWRlLW5leHQge1xuICBmcm9tIHsgdHJhbnNsYXRlOiAyOHB4IDA7IG9wYWNpdHk6IDAuMzU7IH1cbiAgdG8gICB7IHRyYW5zbGF0ZTogMCAwOyBvcGFjaXR5OiAxOyB9XG59XG5Aa2V5ZnJhbWVzIHFtcy1zbGlkZS1wcmV2IHtcbiAgZnJvbSB7IHRyYW5zbGF0ZTogLTI4cHggMDsgb3BhY2l0eTogMC4zNTsgfVxuICB0byAgIHsgdHJhbnNsYXRlOiAwIDA7IG9wYWNpdHk6IDE7IH1cbn1cblxuLnFkbmFwcm8tbW9udGgtc3RyaXBfX2RheSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDJweDtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udDogaW5oZXJpdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ucWRuYXByby1tb250aC1zdHJpcF9fbnVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS05NTAsICMwYjBiMGQpO1xuICAvLyBNZWFuaW5nLWNvbG91ciBzbG90IChkYXlTdGF0ZXMgY29sb3IpIHRpbnRzIHRoZSBjaXJjbGVcbiAgYmFja2dyb3VuZDogdmFyKC0tZGF5LXRpbnQsIHRyYW5zcGFyZW50KTtcbiAgLy8gRGVzZWxlY3QgZmFkZXMgb3V0IHZpYSB0aGlzIHRyYW5zaXRpb24gKHNlbGVjdGlvbiBpcyBhbiBpbi1wbGFjZSBjbGFzc1xuICAvLyBzd2FwIGluIHRoZSBKUywgc28gdGhlIG9sZCBjaXJjbGUgc3RheXMgYWxpdmUgbG9uZyBlbm91Z2ggdG8gYW5pbWF0ZSlcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE4cyBlYXNlLCBjb2xvciAwLjE4cyBlYXNlO1xufVxuXG4vLyBTZWxlY3Rpb24gcG9wIOKAlCBzcHJpbmd5IG92ZXJzaG9vdCBvbiB0aGUgZnJlc2hseSBzZWxlY3RlZCBjaXJjbGUuXG4vLyAuaXMtcG9wIGlzIGFkZGVkIGJ5IHRoZSBKUyBvbiB0YXAgb25seSwgc28gcmUtcmVuZGVycyAoc3dpcGUsIGV4cGFuZClcbi8vIGRvIG5vdCByZXBsYXkgaXQgb24gZXZlcnkgcmVidWlsZC5cbkBrZXlmcmFtZXMgcWRuYXByby1tb250aC1zdHJpcC1wb3Age1xuICAwJSAgIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjU1KTsgfVxuICA3MCUgIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjEyKTsgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxufVxuLnFkbmFwcm8tbW9udGgtc3RyaXBfX2RheS5pcy1wb3AgLnFkbmFwcm8tbW9udGgtc3RyaXBfX251bSB7XG4gIGFuaW1hdGlvbjogcWRuYXByby1tb250aC1zdHJpcC1wb3AgMC4yOHMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpO1xufVxuXG4ucWRuYXByby1tb250aC1zdHJpcF9fZG90IHtcbiAgd2lkdGg6IDRweDtcbiAgaGVpZ2h0OiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKTtcbn1cblxuLy8gVE9EQVkgdnMgU0VMRUNURUQgKHJld29ya2VkIDI5LjA3LjIwMjYsIEtpbSDigJQgR29vZ2xlIENhbGVuZGFyIG1vZGVsKS5cbi8vIEJlZm9yZSB0aGlzLCB0b2RheSB3YXMgb25seSBhIGJvbGQgY29sb3VyZWQgTlVNQkVSIGFuZCB0aGUgU0VMRUNURUQgZGF5IG93bmVkXG4vLyB0aGUgZmlsbGVkIGNpcmNsZSwgc28gb24gYW55IGRheSBvdGhlciB0aGFuIHRvZGF5IHRoZSBzdHJvbmdlc3Qgc2hhcGUgb24gc2NyZWVuXG4vLyBwb2ludGVkIGF0IHRoZSBzZWxlY3Rpb24gYW5kIFwidG9kYXlcIiB3YXMgZWFzeSB0byBtaXNzLiBJbnZlcnRlZCBub3c6XG4vLyAgIHRvZGF5ICAgID0gdGhlIGZ1bGwgZmlsbCwgQUxXQVlTIChpdCBhbHNvIHdpbnMgd2hlbiBpdCBpcyB0aGUgc2VsZWN0ZWQgZGF5KVxuLy8gICBzZWxlY3RlZCA9IGEgTElHSFRFUiBmaWxsICgtLWMtYmctc2Vjb25kYXJ5LXB1cnBsZSksIGNsZWFybHkgbm90LXRvZGF5XG4vLyBgOm5vdCguaXMtdG9kYXkpYCBvbiB0aGUgc2VsZWN0ZWQgcnVsZSBtYWtlcyB0aGUgcHJlY2VkZW5jZSBleHBsaWNpdCBpbnN0ZWFkIG9mXG4vLyByZWx5aW5nIG9uIHNvdXJjZSBvcmRlciwgYW5kIGA6bm90KC5pcy1kaXNhYmxlZClgIGtlZXBzIGEgZGlzYWJsZWQgZGF5IG11dGVkXG4vLyAoaXRzIG93biBydWxlcyBiZWxvdyB3b3VsZCBvdGhlcndpc2UgYmUgb3V0cmFua2VkIGJ5IHRoZXNlKS5cbi5xZG5hcHJvLW1vbnRoLXN0cmlwX19kYXkuaXMtc2VsZWN0ZWQ6bm90KC5pcy10b2RheSk6bm90KC5pcy1kaXNhYmxlZCkgLnFkbmFwcm8tbW9udGgtc3RyaXBfX251bSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc2Vjb25kYXJ5LXB1cnBsZSwgI2U2ZTlmZik7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLnFkbmFwcm8tbW9udGgtc3RyaXBfX2RheS5pcy10b2RheTpub3QoLmlzLWRpc2FibGVkKSAucWRuYXByby1tb250aC1zdHJpcF9fbnVtIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4vLyBBZGphY2VudC1tb250aCBkYXlzIGluIHRoZSBleHBhbmRlZCBncmlkXG4ucWRuYXByby1tb250aC1zdHJpcF9fZGF5LmlzLW11dGVkIC5xZG5hcHJvLW1vbnRoLXN0cmlwX19udW0ge1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTQwMCwgI2E2YWFiMyk7XG59XG4ucWRuYXByby1tb250aC1zdHJpcF9fZGF5LmlzLW11dGVkIC5xZG5hcHJvLW1vbnRoLXN0cmlwX19kb3Qge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNDAwLCAjYTZhYWIzKTtcbn1cblxuLy8gRGlzYWJsZWQgY2VsbC1zdGF0ZSDigJQgbXV0ZWQgKyB0YXAgcmVmdXNlZCAoSlMgaWdub3JlcyB0aGUgY2xpY2spXG4ucWRuYXByby1tb250aC1zdHJpcF9fZGF5LmlzLWRpc2FibGVkIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLnFkbmFwcm8tbW9udGgtc3RyaXBfX2RheS5pcy1kaXNhYmxlZCAucWRuYXByby1tb250aC1zdHJpcF9fbnVtIHtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS00MDAsICNhNmFhYjMpO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5xZG5hcHJvLW1vbnRoLXN0cmlwX19kYXkuaXMtZGlzYWJsZWQgLnFkbmFwcm8tbW9udGgtc3RyaXBfX2RvdCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS00MDAsICNhNmFhYjMpO1xufVxuXG4vLyBGb2N1cyDigJQgdW5pZmllZCBzdGFja2VkIHJpbmcsIG9uIHRoZSBudW1iZXIgY2lyY2xlXG4ucWRuYXByby1tb250aC1zdHJpcF9fZGF5OmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxuLnFkbmFwcm8tbW9udGgtc3RyaXBfX2RheTpmb2N1cy12aXNpYmxlIC5xZG5hcHJvLW1vbnRoLXN0cmlwX19udW0ge1xuICBib3gtc2hhZG93OlxuICAgIDAgMCAwIDJweCB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpLFxuICAgIDAgMCAwIDZweCB2YXIoLS1jLXB1cnBsZS1zb2Z0LTE4LCByZ2JhKDY0LCA3MywgMTU0LCAwLjE4KSk7XG59XG5cbi8vIE1vbnRoIGNoaXBzIHJvdyAoR29vZ2xlLWNhbGVuZGFyIHN0eWxlKSDigJQgb25seSB2aXNpYmxlIGluIHRoZSBleHBhbmRlZCBzdGF0ZS5cbi8vIFJld29ya2VkIDI5LjA3LjIwMjYgKEtpbSk6IHRoZSByb3cgaXMgbm93IGEgQ09OVElOVU9VUyB0aW1lbGluZSBhY3Jvc3MgeWVhclxuLy8gYm91bmRhcmllcyAoYnVpbHQgKyBsYXppbHkgZXh0ZW5kZWQgaW4gSlMsIHNlZSBfcmVuZGVyTW9udGhzIGluIHRoZSAuanNcbi8vIGZpbGUpLCBub3QganVzdCB0aGUgMTIgbW9udGhzIG9mIG9uZSB5ZWFyLiBDaGlwcyBhcmUgMjhweCBjb21wYWN0XG4vLyA8cWRuYXByby1idXR0b24+czsgYSB2ZXJ0aWNhbCA6OmFmdGVyIGV4dGVuc2lvbiBnaXZlcyBlYWNoIGNoaXAgYSB+NDRweFxuLy8gdG91Y2ggY29sdW1uIHdpdGhvdXQgY2hhbmdpbmcgdGhlIHZpc3VhbCBzaXplLiBBIHBsYWluLCBub24tdGFwcGFibGVcbi8vIC5xZG5hcHJvLW1vbnRoLXN0cmlwX195ZWFyLWxhYmVsIHNpdHMgYmV0d2VlbiBEZWNlbWJlciBhbmQgSmFudWFyeS5cbi5xZG5hcHJvLW1vbnRoLXN0cmlwX19tb250aHMge1xuICBkaXNwbGF5OiBub25lO1xuICBnYXA6IDhweDtcbiAgcGFkZGluZzogOHB4IDEycHggMnB4O1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gIC8vIEtpbGwgdGhlIGlPUyBlbGFzdGljIGJvdW5jZSBzbyB0aGUgY2hpcHMgY2FuJ3QgYmUgZHJhZ2dlZCBvdXQgb2YgdGhlXG4gIC8vIGZyYW1lIChcInN3YWJiZXJlblwiKTsgdGhlIGhvc3QgY2xpcHMgYXMgYSBoYXJkIGJhY2tzdG9wIChzZWUgYmVsb3cpLlxuICBvdmVyc2Nyb2xsLWJlaGF2aW9yLXg6IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogcGFuLXg7XG59XG4ucWRuYXByby1tb250aC1zdHJpcF9fbW9udGhzOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ucWRuYXByby1tb250aC1zdHJpcFtleHBhbmRlZF0gLnFkbmFwcm8tbW9udGgtc3RyaXBfX21vbnRocyB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4ucWRuYXByby1tb250aC1zdHJpcF9fbW9udGhzIC5xZG5hcHJvLWJ1dHRvbiB7XG4gIGZsZXg6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5xZG5hcHJvLW1vbnRoLXN0cmlwX19tb250aHMgLnFkbmFwcm8tYnV0dG9uOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogLThweDtcbiAgYm90dG9tOiAtOHB4O1xufVxuLy8gQSB0b3VjaCBsYXJnZXIgdGhhbiB0aGUgYmFzZSBjb21wYWN0IGJ1dHRvbiDigJQgZWFzaWVyIHRvIHJlYWQgYW5kIHRhcC5cbi5xZG5hcHJvLW1vbnRoLXN0cmlwX19tb250aHMgLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zaXplLWNvbXBhY3Qge1xuICBtaW4taGVpZ2h0OiAzNHB4O1xuICBwYWRkaW5nOiA2cHggMTRweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbn1cblxuLy8gWWVhci1udW1iZXIgbGFiZWwgYmV0d2VlbiBEZWNlbWJlciBhbmQgSmFudWFyeSDigJQgcGxhaW4gdGV4dCwgTkVWRVIgYVxuLy8gY2hpcDogbm8gY2xpY2sgaGFuZGxlciBpcyB3aXJlZCB0byBpdCAodGhlIEpTIGNsaWNrIGRlbGVnYXRpb24ga2V5cyBvZmZcbi8vIFtkYXRhLW1pXSwgd2hpY2ggdGhpcyBlbGVtZW50IG5ldmVyIGNhcnJpZXMpLlxuLnFkbmFwcm8tbW9udGgtc3RyaXBfX3llYXItbGFiZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4OiBub25lO1xuICBwYWRkaW5nOiAwIDJweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjcyODApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vLyBHcmFiYmVyIOKAlCBzaGVldC1zdHlsZSBoYW5kbGUgdGhhdCB0b2dnbGVzIHdlZWsg4oaUIG1vbnRoXG4ucWRuYXByby1tb250aC1zdHJpcF9fZ3JhYmJlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAvLyBUYWxsZXIgdGhhbiB0aGUgdmlzaWJsZSBwaWxsIHNvIHRoZSB3aG9sZSBib3R0b20gYmFuZCBpcyBncmFiYmFibGUg4oCUXG4gIC8vIGVhc2llciB0byBjYXRjaCB0aGUgaGFuZGxlIGFuZCBwdWxsIHRoZSBtb250aCBncmlkIGRvd24uIFRyaW1tZWQgZnJvbVxuICAvLyAxNi8xOCB0byByZWNsYWltIHZlcnRpY2FsIHNwYWNlIHdoaWxlIGtlZXBpbmcgYSBjb21mb3J0YWJsZSBncmFiIHpvbmUuXG4gIHBhZGRpbmc6IDEwcHggMCAxMnB4O1xuICBjdXJzb3I6IGdyYWI7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cbi5xZG5hcHJvLW1vbnRoLXN0cmlwX19ncmFiYmVyIHNwYW4ge1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMzAwLCAjYzRjN2NjKTtcbn1cbi5xZG5hcHJvLW1vbnRoLXN0cmlwX19ncmFiYmVyOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxuLnFkbmFwcm8tbW9udGgtc3RyaXBfX2dyYWJiZXI6Zm9jdXMtdmlzaWJsZSBzcGFuIHtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDAgMCAycHggdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKSxcbiAgICAwIDAgMCA2cHggdmFyKC0tYy1wdXJwbGUtc29mdC0xOCwgcmdiYSg2NCwgNzMsIDE1NCwgMC4xOCkpO1xufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAucWRuYXByby1tb250aC1zdHJpcF9fYm9keSB7IHRyYW5zaXRpb246IG5vbmU7IH1cbiAgLnFkbmFwcm8tbW9udGgtc3RyaXBfX3Jvd3MgeyB0cmFuc2l0aW9uOiBub25lOyB9XG4gIC5xZG5hcHJvLW1vbnRoLXN0cmlwX19udW0geyB0cmFuc2l0aW9uOiBub25lOyB9XG4gIC5xZG5hcHJvLW1vbnRoLXN0cmlwX19kYXkuaXMtcG9wIC5xZG5hcHJvLW1vbnRoLXN0cmlwX19udW0geyBhbmltYXRpb246IG5vbmU7IH1cbiAgLnFkbmFwcm8tbW9udGgtc3RyaXBfX3Jvd3MuaXMtZW50ZXItbmV4dCxcbiAgLnFkbmFwcm8tbW9udGgtc3RyaXBfX3Jvd3MuaXMtZW50ZXItcHJldiB7IGFuaW1hdGlvbjogbm9uZTsgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby10aW1lLWdyaWQg4oCUIGhvdXItcmFzdGVyIGNhcm91c2VsIGZvciB0aGUgUFdBIGNhbGVuZGFyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBRRE5BIHRva2VucyB1c2VkOlxuLy8gICAgLS1jLWJvcmRlci1zb2Z0LTIgIHJhc3RlciBsaW5lcyArIGNvbHVtbiBzZXBhcmF0b3JzICh3YXMgLS1jLWdyZXktMTAwLFxuLy8gICAgICAgICAgICAgICAgICAgICAgIGEgcHJpbWl0aXZlIHRoYXQgc3RheWVkIGxpZ2h0IGluIGRhcmsgbW9kZSlcbi8vICAgIC0tYy1ncmV5LTUwMCAgIzZiNzI4MCAgIGd1dHRlciB0aW1lIGxhYmVsc1xuLy8gICAgLS1jLWdyZXktNTAgICAjZjBmMWYyICAgZGlzYWJsZWQgY2VsbC1zdGF0ZSBmaWxsXG4vLyAgU1RSSUNUIGF4aXMtbG9jayB2aWEgTkVTVEVEIHNpbmdsZS1heGlzIHNjcm9sbGVycyAoS2ltIDAzLjA3LjIwMjY6IHRoZSBvbGRcbi8vICBzaW5nbGUgMkQgc2Nyb2xsZXIgZmVsdCBmbGltc3kg4oCUIGRpYWdvbmFsIHBhbm5pbmcpLiBfX3Njcm9sbC15IG93bnMgdGhlXG4vLyAgVkVSVElDQUwgaG91cnMgKHRvdWNoLWFjdGlvbiBwYW4teSk7IHRoZSBpbm5lciBfX3Njcm9sbC14IG93bnMgdGhlIEhPUklaT05UQUxcbi8vICBkYXkgcGFnaW5nIHdpdGggbmF0aXZlIHNjcm9sbC1zbmFwICh0b3VjaC1hY3Rpb24gcGFuLXgpLiBFYWNoIHNjcm9sbGVyIG1vdmVzXG4vLyAgT05FIGF4aXMsIHNvIHRoZSBicm93c2VyIGxvY2tzIGEgZ2VzdHVyZSB0byB3aGljaGV2ZXIgYXhpcyBpdCBzdGFydHMgb24uXG4vLyAgVGhlIHRpbWVzIGd1dHRlciBpcyBhIHBsYWluIGZsZXggY29sdW1uIGluIHRoZSB2ZXJ0aWNhbCBzY3JvbGxlciAoc2Nyb2xsc1xuLy8gIHVwL2Rvd24gd2l0aCB0aGUgaG91cnMsIHN0YXlzIGF0IHRoZSBsZWZ0KS4gVGhlIGFsbC1kYXkgYmFuZCBzdGlja3MgdG8gdGhlXG4vLyAgdG9wIGFuZCBpdHMgdmlld3BvcnQgbWlycm9ycyB0aGUgaG9yaXpvbnRhbCBzY3JvbGxMZWZ0IChzeW5jZWQgaW4gSlMpLlxuLy8gIEZMQVQgQ1NTOyBzeW5jZWQgdG8gdGhlIFBXQSB2aWEgc3luYy12Mi1jb21wb25lbnRzLmpzIChubyBuZXN0aW5nIC8gU0NTUyB2YXJzKS5cblxuLnFkbmFwcm8tdGltZS1ncmlkIHtcbiAgLy8gSG91ciByb3cgaGVpZ2h0IOKAlCB0aGUgem9vbSBob29rOyB0b3RhbCBoZWlnaHQgZGVyaXZlcyBmcm9tIGl0XG4gIC0tdGltZS1ncmlkLWhvdXI6IDUycHg7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1mb250LWZhbWlseSwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcbn1cblxuLy8gT1VURVIgdmVydGljYWwgc2Nyb2xsZXIg4oCUIHRoZSBob3Vycy4gT25seSBwYW5zIHVwL2Rvd24uXG4ucWRuYXByby10aW1lLWdyaWRfX3Njcm9sbC15IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHRvdWNoLWFjdGlvbjogcGFuLXk7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xufVxuLnFkbmFwcm8tdGltZS1ncmlkX19zY3JvbGwteTo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogMDsgaGVpZ2h0OiAwOyBkaXNwbGF5OiBub25lOyB9XG5cbi8vIC0tLSBEYXktaGVhZGVyIHJvdyAoSzEgZ2FwIGZpeCwgMTcuMDcuMjAyNik6IE9QVElPTkFMIHN0aWNreSBkYXRlLWNvbnRleHRcbi8vIHJvdyBhYm92ZSB0aGUgYWxsLWRheSBsYW5lLCBvbmx5IHJlbmRlcmVkIHdoZW4gdGhlIGBkYXktaGVhZGVyYCBhdHRyaWJ1dGVcbi8vIGlzIHNldCAoYWJzZW50IGJ5IGRlZmF1bHQg4oCUIHplcm8gY2hhbmdlIGZvciB0aGUgUFdBKS4gU2FtZSBub24tc2Nyb2xsaW5nXG4vLyBzdGlja3kgcmVnaW9uIG9mIF9fc2Nyb2xsLXkgYXMgdGhlIGFsbC1kYXkgbGFuZSBiZWxvdyBpdDsgd2hlbiBwcmVzZW50LCB0aGVcbi8vIG1vZGlmaWVyIGNsYXNzIGJlbG93IHB1c2hlcyB0aGUgYWxsLWRheSBsYW5lJ3Mgb3duIGB0b3BgIGRvd24gYnkgdGhpcyByb3cnc1xuLy8gaGVpZ2h0IHNvIHRoZSB0d28gc3RpY2t5IHJvd3Mgc3RhY2sgaW5zdGVhZCBvZiBvdmVybGFwcGluZy5cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fZGF5aGVhZGVyIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiA3O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgaGVpZ2h0OiB2YXIoLS10aW1lLWdyaWQtZGF5aGVhZGVyLWgsIDQwcHgpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdC0yLCAjZTZlOWVmKTtcbn1cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fZGF5aGVhZGVyLWNvcm5lciB7XG4gIGZsZXg6IG5vbmU7XG4gIHdpZHRoOiA1NnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xufVxuLnFkbmFwcm8tdGltZS1ncmlkX19kYXloZWFkZXItdnAge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47IC8vIGNsaXBwZWQ7IHNjcm9sbExlZnQgaXMgZHJpdmVuIHByb2dyYW1tYXRpY2FsbHkgKG5vIHVzZXIgc2Nyb2xsKVxufVxuLnFkbmFwcm8tdGltZS1ncmlkX19kYXloZWFkZXItZ3JpZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiBtYXgtY29udGVudDtcbn1cbi8vIFJlYWwgPGJ1dHRvbj4gcGVyIGRheSwgYXQgRVhBQ1RMWSB0aGUgZGF5LWNvbHVtbiBwaXRjaCDigJQgd2lkdGggdmFyKC0tdGltZS1cbi8vIGdyaWQtY29sdykgKyBib3gtc2l6aW5nIGJvcmRlci1ib3ggKyBib3JkZXItcmlnaHQgMXB4IGlzIHRoZSBTQU1FIGZvcm11bGFcbi8vIC5xZG5hcHJvLXRpbWUtZ3JpZF9fZGF5IHVzZXMgYmVsb3cgKHNlZSB0aGF0IHJ1bGUncyBjb21tZW50IG9uIHdoeVxuLy8gYm9yZGVyLWJveCBpcyBsb2FkLWJlYXJpbmcgdGhlcmUpOiBhbnkgZHJpZnQgaGVyZSByZXByb2R1Y2VzIHRoZSBzYW1lXG4vLyBoYWxmLWNvbHVtbi1vZmYgYnVnIG9uIHRoaXMgaGVhZGVyIGluc3RlYWQgb2YgdGhlIGFsbC1kYXkgbGFuZS4gQSBmbGV4IHJvd1xuLy8gKG5vdCBDU1MgZ3JpZCkgc2lkZXN0ZXBzIHRoZSBjb2x1bW4tZ2FwIHBpdGNoIHRyYXAgZW50aXJlbHkg4oCUIG5vIGdhcCBpc1xuLy8gZGVjbGFyZWQsIHNvIHRoZXJlIGlzIG5vdGhpbmcgdG8gZGVzeW5jLlxuLnFkbmFwcm8tdGltZS1ncmlkX19kYXljZWxsIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgZm9udDogaW5oZXJpdDtcbiAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZsZXg6IG5vbmU7XG4gIHdpZHRoOiB2YXIoLS10aW1lLWdyaWQtY29sdywgMTIwcHgpO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIsICNlNmU5ZWYpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiAxcHg7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fZGF5Y2VsbDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCwgI2YwZjFmMik7XG59XG4ucWRuYXByby10aW1lLWdyaWRfX2RheWNlbGw6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xufVxuLy8gVE9EQVkgKEtpbSwgMjAuMDcuMjAyNik6IG5vIG1vcmUgZnVsbC1jZWxsIHB1cnBsZSBmaWxsIOKAlCBpdCByZWFkIGFzXG4vLyBjbHVua3kgKFwibG9tcFwiKS4gQSBjb21wYWN0IEdvb2dsZS1zdHlsZSBwaWxsIHNpdHMgYXJvdW5kIEpVU1QgdGhlIGRheVxuLy8gbnVtYmVyIChzZWUgLmlzLXRvZGF5IC5kYXludW0gYmVsb3cpLCBzbyB0aGUgdG9kYXkgY2VsbCBrZWVwcyB0aGUgc2FtZVxuLy8gbmV1dHJhbCBiYWNrZ3JvdW5kICsgaG92ZXIgYXMgZXZlcnkgb3RoZXIgaGVhZGVyIGNlbGwuIE1pcnJvcnMgdGhlXG4vLyBxZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lIGRheS1oZWFkZXIgKFwiUGVyIHRhYWtsaWpzdFwiIHZpZXcpLlxuLnFkbmFwcm8tdGltZS1ncmlkX19kYXljZWxsLXdlZWtkYXkge1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxM3B4O1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNzI4MCk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAzZW07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ucWRuYXByby10aW1lLWdyaWRfX2RheWNlbGwtZGF5bnVtIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS04MDAsICMxYzFiMjkpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLy8gV2Vla2RheSBsYWJlbCB0aW50cyB0byB0aGUgYWN0aW9uIGNvbG9yIG9uIHRvZGF5IChtYXRjaGVzIHRoZSBwaWxsKS5cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fZGF5Y2VsbC5pcy10b2RheSAucWRuYXByby10aW1lLWdyaWRfX2RheWNlbGwtd2Vla2RheSB7XG4gIGNvbG9yOiB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xufVxuLy8gVGhlIHBpbGw6IGZpbGxlZCAtLWMtYWN0aW9uLTUwMCBjaGlwIGh1Z2dpbmcganVzdCB0aGUgZGF5IG51bWJlciwga2VwdFxuLy8gZGVsaWJlcmF0ZWx5IHNtYWxsICh0aWdodCBwYWRkaW5nLCBubyBmaXhlZCBzaXplKSBzbyBpdCBzdGF5cyBzdWJ0bGVyXG4vLyB0aGFuIEdvb2dsZSdzIG92ZXJzaXplZCBjaXJjbGUuXG4ucWRuYXByby10aW1lLWdyaWRfX2RheWNlbGwuaXMtdG9kYXkgLnFkbmFwcm8tdGltZS1ncmlkX19kYXljZWxsLWRheW51bSB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1hY3Rpb24tNTAwLCAjNDY1MmYzKTtcbiAgcGFkZGluZzogMXB4IDhweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG59XG4vLyBQdXNoIHRoZSBhbGwtZGF5IGxhbmUncyBvd24gc3RpY2t5IHBvaW50IGRvd24gYnkgdGhlIGRheS1oZWFkZXIncyBoZWlnaHQgc29cbi8vIHRoZSB0d28gc3RpY2t5IHJvd3Mgc3RhY2sgKGJvdGggYXJlIGBwb3NpdGlvbjogc3RpY2t5OyB0b3BgIGluc2lkZSB0aGUgU0FNRVxuLy8gX19zY3JvbGwteSkgaW5zdGVhZCBvZiBvdmVybGFwcGluZyBhdCB0b3A6MC5cbi5xZG5hcHJvLXRpbWUtZ3JpZC0taGFzLWRheS1oZWFkZXIgLnFkbmFwcm8tdGltZS1ncmlkX19hbGxkYXkge1xuICB0b3A6IHZhcigtLXRpbWUtZ3JpZC1kYXloZWFkZXItaCwgNDBweCk7XG59XG5cbi8vIC0tLSBBbGwtZGF5IGxhbmU6IHN0aWNrcyB0byB0aGUgdG9wIG9mIHRoZSB2ZXJ0aWNhbCBzY3JvbGxlci4gSXRzIHZpZXdwb3J0XG4vLyBjbGlwcyBhbmQgSlMgbWlycm9ycyB0aGUgaG9yaXpvbnRhbCBzY3JvbGxMZWZ0IHNvIGJhcnMgdHJhY2sgdGhlIGRheSBjb2x1bW5zLlxuLnFkbmFwcm8tdGltZS1ncmlkX19hbGxkYXkge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDY7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdC0yLCAjZTZlOWVmKTtcbiAgLy8gVmlld3BvcnQtYXdhcmUgaGVpZ2h0OiBKUyBzZXRzIGFuIGV4cGxpY2l0IHB4IGhlaWdodCBmb3IgdGhlIHZpc2libGUgcm93cyBhbmRcbiAgLy8gYW5pbWF0ZXMgaXQgKDAgd2hlbiB0aGUgdmlzaWJsZSBkYXlzIGhhdmUgbm8gYWxsLWRheSBpdGVtcyDihpIgbm8gZnJhbWUpLlxuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgMC4ycyBlYXNlO1xufVxuLnFkbmFwcm8tdGltZS1ncmlkX19hbGxkYXkuaXMtZW1wdHkge1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xufVxuLnFkbmFwcm8tdGltZS1ncmlkX19hbGxkYXktY29ybmVyIHtcbiAgZmxleDogbm9uZTtcbiAgd2lkdGg6IDU2cHg7XG4gIHotaW5kZXg6IDE7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG59XG4ucWRuYXByby10aW1lLWdyaWRfX2FsbGRheS12cCB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgLy8gY2xpcHBlZDsgc2Nyb2xsTGVmdCBpcyBkcml2ZW4gcHJvZ3JhbW1hdGljYWxseSAobm8gdXNlciBzY3JvbGwpXG59XG4ucWRuYXByby10aW1lLWdyaWRfX2FsbGRheS1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgLy8gUk9XIGdhcCBvbmx5IOKAlCB0aGUgc2hvcnRoYW5kIGBnYXA6IDJweGAgYWxzbyBzZXQgYSAycHggQ09MVU1OIGdhcCxcbiAgLy8gbWFraW5nIHRoZSBsYW5lJ3MgY29sdW1uIHBpdGNoIDJweCB3aWRlciB0aGFuIHRoZSBkYXkgY29sdW1ucyBiZWxvd1xuICAvLyAod2hpY2ggaGF2ZSBubyBnYXApLiBUaGF0IGRyaWZ0cyAycHggcGVyIGRheSBmcm9tIHRoZSB3aW5kb3cgc3RhcnQ6XG4gIC8vIGludmlzaWJsZSBpbiBzbWFsbCBiYWNrb2ZmaWNlIHdpbmRvd3MsIGhhbGYgYSBjb2x1bW4gNDUgZGF5cyBpbiBvbiB0aGVcbiAgLy8gUFdBIChLaW0ncyBcIlNpY2tcIiBiYXIsIG1lYXN1cmVkIGxpdmUgMTcuMDcuMjAyNjogNDUgeCAycHggPSB+OTBweCBvZmYpLlxuICByb3ctZ2FwOiAycHg7XG4gIGNvbHVtbi1nYXA6IDA7XG4gIGdyaWQtYXV0by1yb3dzOiAyNnB4O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgcGFkZGluZzogNHB4IDJweCA0cHggMDtcbiAgd2lkdGg6IG1heC1jb250ZW50O1xufVxuLnFkbmFwcm8tdGltZS1ncmlkX19hbGxkYXktZ3JpZC5pcy1zY3JvbGxhYmxlIHtcbiAgbWF4LWhlaWdodDogY2FsYyg0ICogMjhweCk7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG4ucWRuYXByby10aW1lLWdyaWRfX2FsbGRheS1ncmlkIC5xZG5hcHJvLWV2ZW50LWNhcmQge1xuICBoZWlnaHQ6IDI2cHg7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIHBhZGRpbmc6IDNweCA4cHg7XG4gIG1hcmdpbjogMCAxcHg7XG59XG4ucWRuYXByby10aW1lLWdyaWRfX2FsbGRheS10b2dnbGUge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nOiAzcHggOHB4O1xuICBtYXJnaW46IDAgMXB4O1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjcyODApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTIsIDhweCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fYWxsZGF5LXRvZ2dsZTpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDAgMCAycHggdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKSxcbiAgICAwIDAgMCA2cHggdmFyKC0tYy1wdXJwbGUtc29mdC0xOCwgcmdiYSg2NCwgNzMsIDE1NCwgMC4xOCkpO1xufVxuXG4vLyAtLS0gSG91cnMgcm93OiB0aGUgZml4ZWQtbGVmdCBndXR0ZXIgKyB0aGUgaG9yaXpvbnRhbCBkYXkgc2Nyb2xsZXIgLS0tXG4ucWRuYXByby10aW1lLWdyaWRfX2hvdXJzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG59XG5cbi8vIEd1dHRlciDigJQgcGxhaW4gZmxleCBjb2x1bW46IHNjcm9sbHMgdmVydGljYWxseSB3aXRoIHRoZSBob3VycyAoaXQgaXMgaW5zaWRlXG4vLyB0aGUgdmVydGljYWwgc2Nyb2xsZXIpIGFuZCBzdGF5cyBhdCB0aGUgbGVmdCAodGhlIGhvcml6b250YWwgc2Nyb2xsZXIgaXMgYVxuLy8gU0lCTElORywgbm90IGEgcGFyZW50LCBzbyBob3Jpem9udGFsIHBhZ2luZyBuZXZlciBtb3ZlcyBpdCkuXG4ucWRuYXByby10aW1lLWdyaWRfX2d1dHRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleDogbm9uZTtcbiAgd2lkdGg6IDU2cHg7XG4gIGhlaWdodDogY2FsYyh2YXIoLS10aW1lLWdyaWQtaG91cnMsIDI0KSAqIHZhcigtLXRpbWUtZ3JpZC1ob3VyKSk7XG4gIHotaW5kZXg6IDU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG59XG4ucWRuYXByby10aW1lLWdyaWRfX3RpbWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA4cHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjcyODApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLy8gSU5ORVIgaG9yaXpvbnRhbCBzY3JvbGxlciDigJQgZGF5IHBhZ2luZy4gT25seSBwYW5zIGxlZnQvcmlnaHQ7IHNjcm9sbC1zbmFwXG4vLyBnaXZlcyB0aGUgcGVyLWRheSAvIHBlci13ZWVrIHJlc3QgcG9zaXRpb25zLlxuLnFkbmFwcm8tdGltZS1ncmlkX19zY3JvbGwteCB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLXRpbWUtZ3JpZC1ob3VycywgMjQpICogdmFyKC0tdGltZS1ncmlkLWhvdXIpKTtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBzY3JvbGwtc25hcC10eXBlOiB4IG1hbmRhdG9yeTtcbiAgLy8gQWxsb3cgQk9USCBwYW5zIG5hdGl2ZWx5OiBob3Jpem9udGFsIHNjcm9sbHMgdGhpcyBzY3JvbGxlciwgdmVydGljYWwgY2hhaW5zXG4gIC8vIHRvIHRoZSBvdXRlciBfX3Njcm9sbC15ICh0aGlzIG9uZSBpcyBvdmVyZmxvdy15OmhpZGRlbikuIHBhbi14IEFMT05FIGJsb2NrZWRcbiAgLy8gdGhlIHZlcnRpY2FsIGNoYWluICh0aGUgXCJ2ZXJ0aWNhbCBkb2VzIG5vdGhpbmdcIiBidWcpOyBmcmVlemluZyBhbiBheGlzIHZpYVxuICAvLyBvdmVyZmxvdyBpbiBKUyBtaWQtZ2VzdHVyZSBraWxsZWQgQk9USCAobXV0YXRpbmcgYSBzY3JvbGxlciBjYW5jZWxzIHRoZSBsaXZlXG4gIC8vIG5hdGl2ZSBzY3JvbGwpLiBTbzogYm90aCBheGVzIG5hdGl2ZSwgYW5kIHdlIHJlbHkgb24gdGhlIGJyb3dzZXIgbG9ja2luZyBhXG4gIC8vIHRvdWNoIGdlc3R1cmUgdG8gb25lIHNjcm9sbCBjb250YWluZXIgKGl0cyBkZWZhdWx0KS4gTm8gSlMgYXhpcy1sb2NrLlxuICB0b3VjaC1hY3Rpb246IHBhbi14IHBhbi15O1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3IteDogY29udGFpbjtcbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xufVxuLnFkbmFwcm8tdGltZS1ncmlkX19zY3JvbGwteDo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogMDsgaGVpZ2h0OiAwOyBkaXNwbGF5OiBub25lOyB9XG5cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fc3RyaXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4vLyBEYXkgY29sdW1uIOKAlCBvbmUgdmlld3BvcnQgc2xvdCB3aWRlOyBob3VyIHJhc3RlcnMgYXJlIGEgY2hlYXAgcmVwZWF0aW5nXG4vLyBncmFkaWVudCAob25lIHBhaW50KSBzbyBhIHdpZGUgc3RyaXAgc3RheXMgbGlnaHQuIEVhY2ggY29sdW1uIGlzIGEgc25hcCBwb2ludC5cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fZGF5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4OiBub25lO1xuICB3aWR0aDogdmFyKC0tdGltZS1ncmlkLWNvbHcsIDEyMHB4KTtcbiAgLy8gYm9yZGVyLWJveCBpcyBMT0FELUJFQVJJTkcgaGVyZSwgbm90IGNvc21ldGljOiB3aXRob3V0IGl0IHRoZSAxcHhcbiAgLy8gYm9yZGVyLXJpZ2h0IG1ha2VzIGV2ZXJ5IGRheSBjb2x1bW4gY29sdysxcHggd2lkZSB3aGlsZSB0aGUgYWxsLWRheVxuICAvLyBsYW5lIGdyaWQgdXNlcyBleGFjdGx5IGNvbHcgcGVyIGNvbHVtbiDigJQgYSAxcHgtcGVyLWRheSBkcmlmdCB0aGF0IGFkZHNcbiAgLy8gdXAgdG8gaGFsZiBhIGNvbHVtbiBvbmNlIHlvdSBhcmUgd2Vla3MgYXdheSBmcm9tIHRoZSB3aW5kb3cgc3RhcnRcbiAgLy8gKEtpbSdzIFBXQSBzY3JlZW5zaG90LCAxNy4wNy4yMDI2OiBcIlNpY2tcIiBiYXIgZmxvYXRpbmcgYmV0d2VlbiBkYXlzKS5cbiAgLy8gVGhlIGJhY2tvZmZpY2UgbWFza3MgdGhpcyB2aWEgaXRzIGdsb2JhbCBib3JkZXItYm94IHJlc2V0OyB0aGUgUFdBIGhhc1xuICAvLyBubyBzdWNoIHJlc2V0LCBzbyB0aGUgY29tcG9uZW50IG11c3QgcGluIGl0IGl0c2VsZi5cbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIsICNlNmU5ZWYpO1xuICBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgdG8gYm90dG9tLFxuICAgIHZhcigtLWMtYm9yZGVyLXNvZnQtMiwgI2U2ZTllZikgMCwgdmFyKC0tYy1ib3JkZXItc29mdC0yLCAjZTZlOWVmKSAxcHgsXG4gICAgdHJhbnNwYXJlbnQgMXB4LCB0cmFuc3BhcmVudCB2YXIoLS10aW1lLWdyaWQtaG91ciwgNTJweClcbiAgKTtcbn1cbi8vIFdlZWsgdmlldyBzbmFwcyBwZXIgV0VFSzogb25seSB0aGUgTW9uZGF5IGNvbHVtbnMgYXJlIHNuYXAgcG9pbnRzXG4ucWRuYXByby10aW1lLWdyaWQtLXdlZWsgLnFkbmFwcm8tdGltZS1ncmlkX19kYXkgeyBzY3JvbGwtc25hcC1hbGlnbjogbm9uZTsgfVxuLnFkbmFwcm8tdGltZS1ncmlkLS13ZWVrIC5xZG5hcHJvLXRpbWUtZ3JpZF9fZGF5LmlzLXdlZWtzdGFydCB7IHNjcm9sbC1zbmFwLWFsaWduOiBzdGFydDsgfVxuXG4vLyBDZWxsLXN0YXRlIHNlZ21lbnRzIOKAlCBiYWNrZ3JvdW5kIGxheWVyIHVuZGVyIHRoZSBldmVudHNcbi5xZG5hcHJvLXRpbWUtZ3JpZF9fc3RhdGVzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby10aW1lLWdyaWRfX3N0YXRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbn1cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fc3RhdGUtLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwLCAjZjBmMWYyKTtcbn1cblxuLy8gRXZlbnRzIGxheWVyIOKAlCBjYXJkcyBwb3NpdGlvbmVkIGJ5IHRoZSBKUyAodG9wL2hlaWdodC9sZWZ0L3dpZHRoKVxuLnFkbmFwcm8tdGltZS1ncmlkX19ldmVudHMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fZXZlbnRzIC5xZG5hcHJvLWV2ZW50LWNhcmQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4vLyAtLS0gRHJhZyAmIGRyb3AgLS0tXG4vLyBEZXNrdG9wIG1vdXNlIGFmZm9yZGFuY2UgKEstZGVjaXNpb24gMTguMDcuMjAyNik6IGEgZHJhZ2dhYmxlIGNhcmQgc2hvd3MgYW5cbi8vIG9wZW4gaGFuZCwgY2xvc2VkIHdoaWxlIGFjdHVhbGx5IGJlaW5nIGRyYWdnZWQuIEhhcm1sZXNzIG9uIHRvdWNoL3BlbiAobm9cbi8vIGN1cnNvciByZW5kZXJlZCB0aGVyZSkg4oCUIGNoZWFwLCBubyBjb25mbGljdGluZyBjdXJzb3IgcnVsZSBvbiB0aGlzIGVsZW1lbnQuXG4ucWRuYXByby10aW1lLWdyaWRfX2V2ZW50cyAucWRuYXByby1ldmVudC1jYXJkW2RhdGEtcXRnLWRyYWdnYWJsZV0ge1xuICBjdXJzb3I6IGdyYWI7XG59XG4ucWRuYXByby10aW1lLWdyaWRfX2V2ZW50cyAucWRuYXByby1ldmVudC1jYXJkW2RhdGEtcXRnLWRyYWdnYWJsZV06YWN0aXZlLFxuLnFkbmFwcm8tdGltZS1ncmlkX19ldmVudHMgLnFkbmFwcm8tZXZlbnQtY2FyZC5pcy1kcmFnZ2luZyB7XG4gIGN1cnNvcjogZ3JhYmJpbmc7XG59XG4ucWRuYXByby10aW1lLWdyaWRfX2V2ZW50cyAucWRuYXByby1ldmVudC1jYXJkLmlzLWRyYWdnaW5nIHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbiAgei1pbmRleDogNTtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDZweCAxOHB4IHJnYmEoMjgsIDI3LCA0MSwgMC4yMiksXG4gICAgMCAycHggNnB4IHJnYmEoMjgsIDI3LCA0MSwgMC4xNCk7XG4gIG9wYWNpdHk6IDAuOTI7XG59XG4ucWRuYXByby10aW1lLWdyaWRfX2V2ZW50cyAucWRuYXByby1ldmVudC1jYXJkLmlzLWRyYWctcmV0dXJuIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuMywgMC42NCwgMSk7XG59XG5cbi8vIC0tLSBSZXNpemUgKEsgMDMuMDguMjAyNiwgTU9VU0UgT05MWSkgLS0tXG4vLyBUaGUgZ3JhYiBzdHJpcCBpcyBhIDo6YWZ0ZXIgcHNldWRvLWVsZW1lbnQgYW5kIE5PVCBhIGNoaWxkIGVsZW1lbnQgb24gcHVycG9zZTpcbi8vIHFkbmEtZXZlbnQtY2FyZCByZWJ1aWxkcyBpdHMgb3duIGlubmVySFRNTCBvbiBldmVyeSByZW5kZXIoKSwgc28gYW4gaW5qZWN0ZWQgaGFuZGxlXG4vLyB3b3VsZCBiZSB3aXBlZCB3aXRob3V0IGEgdHJhY2UuIEl0cyBoZWlnaHQgbXVzdCBzdGF5IGluIHN0ZXAgd2l0aFxuLy8gUWRuYVRpbWVHcmlkLlJFU0laRV9IQU5ETEVfUFgsIHdoaWNoIGRvZXMgdGhlIGFjdHVhbCBoaXQtdGVzdGluZyBpbiBKUy5cbi8vXG4vLyBXcmFwcGVkIGluIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkgc28gdGhlIGFmZm9yZGFuY2UgZG9lcyBub3QgZXhpc3QgYXQgYWxsXG4vLyBvbiBhIHRvdWNoIGRldmljZTogYSAxMHB4IHN0cmlwIGlzIG5vdCBhIGZpbmdlciB0YXJnZXQsIGFuZCBvbiBhIHBob25lIGV2ZXJ5IGRvd253YXJkXG4vLyBkcmFnIHRoZXJlIGlzIGFsc28gYSBzY3JvbGwgYXR0ZW1wdC4gVGhlIEpTIGdhdGUgb24gcG9pbnRlclR5cGUgPT09IFwibW91c2VcIiBpcyB0aGVcbi8vIHJlYWwgZ3VhcmQ7IHRoaXMgb25lIGtlZXBzIHRoZSBjdXJzb3IgZnJvbSBseWluZyBvbiBhIHRhYmxldC5cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIHtcbiAgLnFkbmFwcm8tdGltZS1ncmlkX19ldmVudHMgLnFkbmFwcm8tZXZlbnQtY2FyZFtkYXRhLXF0Zy1yZXNpemFibGVdOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIGN1cnNvcjogbnMtcmVzaXplO1xuICAgIC8vIFNpdHMgYWJvdmUgdGhlIGNhcmQncyBvd24gdGV4dCBzbyB0aGUgY3Vyc29yIGlzIHJlbGlhYmxlIG5lYXIgdGhlIGVkZ2UsIGJ1dFxuICAgIC8vIHBhaW50cyBub3RoaW5nOiB0aGUgYWZmb3JkYW5jZSBpcyB0aGUgY3Vyc29yIHBsdXMgdGhlIGhvdmVyIGJhciBiZWxvdy5cbiAgICB6LWluZGV4OiAxO1xuICB9XG4gIC8vIFF1aWV0IGhpbnQgdGhhdCB0aGUgZWRnZSBpcyBncmFiYmFibGUsIG9ubHkgd2hpbGUgdGhlIHBvaW50ZXIgaXMgb24gdGhlIGNhcmQuXG4gIC5xZG5hcHJvLXRpbWUtZ3JpZF9fZXZlbnRzIC5xZG5hcHJvLWV2ZW50LWNhcmRbZGF0YS1xdGctcmVzaXphYmxlXTpob3Zlcjo6YWZ0ZXIge1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLXItMiwgOHB4KTtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tci0yLCA4cHgpO1xuICAgIG9wYWNpdHk6IDAuNTU7XG4gIH1cbn1cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fZXZlbnRzIC5xZG5hcHJvLWV2ZW50LWNhcmQuaXMtcmVzaXppbmcge1xuICB0cmFuc2l0aW9uOiBub25lO1xuICB6LWluZGV4OiA1O1xuICBjdXJzb3I6IG5zLXJlc2l6ZTtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDZweCAxOHB4IHJnYmEoMjgsIDI3LCA0MSwgMC4yMiksXG4gICAgMCAycHggNnB4IHJnYmEoMjgsIDI3LCA0MSwgMC4xNCk7XG4gIG9wYWNpdHk6IDAuOTI7XG59XG4vLyBBIGNhbmNlbGxlZCByZXNpemUgc3ByaW5ncyBiYWNrIG9uIEhFSUdIVCAoYSBjYW5jZWxsZWQgbW92ZSBzcHJpbmdzIGJhY2sgb25cbi8vIHRyYW5zZm9ybSksIHNvIGl0IG5lZWRzIGl0cyBvd24gdHJhbnNpdGlvbiBwcm9wZXJ0eSBvbiB0aGUgc2FtZSBpcy1kcmFnLXJldHVybiBjbGFzcy5cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fZXZlbnRzIC5xZG5hcHJvLWV2ZW50LWNhcmQuaXMtZHJhZy1yZXR1cm4uaXMtcmVzaXppbmcge1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgMC4ycyBjdWJpYy1iZXppZXIoMC4zNCwgMS4zLCAwLjY0LCAxKTtcbn1cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fZHJvcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMnB4O1xuICByaWdodDogMnB4O1xuICBib3JkZXI6IDJweCBkYXNoZWQgdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tci0yLCA4cHgpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS1zb2Z0LTEyLCByZ2JhKDY0LCA3MywgMTU0LCAwLjEyKSk7XG4gIHotaW5kZXg6IDI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLnFkbmFwcm8tdGltZS1ncmlkX19kcm9wLWxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDJweDtcbiAgbGVmdDogNnB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fZHJvcC5pcy1yZWplY3Qge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtcmVkLWJnLCAjZmVlM2UzKTtcbn1cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fZHJvcC5pcy1yZWplY3QgLnFkbmFwcm8tdGltZS1ncmlkX19kcm9wLWxhYmVsIHtcbiAgY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTtcbn1cbi8vIFJlc2l6ZSB0YXJnZXQ6IHRoZSBsYWJlbCBoYW5ncyBVTkRFUiB0aGUgb3V0bGluZSBpbnN0ZWFkIG9mIGluc2lkZSBpdHMgdG9wLWxlZnRcbi8vIGNvcm5lci4gQSByZXNpemVkIGNhcmQgZG9lcyBub3QgbW92ZSBvdXQgb2YgdGhlIHdheSBsaWtlIGEgZHJhZ2dlZCBvbmUgZG9lcywgc28gYVxuLy8gbGFiZWwgYXQgdGhlIHRvcCB3b3VsZCBlbmQgdXAgYmVoaW5kIGl0LiBVbmRlciB0aGUgZHJhZ2dlZCBlZGdlIGlzIGFsc28gd2hlcmUgdGhlXG4vLyBjdXJzb3IgYWxyZWFkeSBpcywgc28gdGhlIHJlYWRpbmcgZXllIGRvZXMgbm90IGhhdmUgdG8gdHJhdmVsLlxuLnFkbmFwcm8tdGltZS1ncmlkX19kcm9wLS1yZXNpemUgLnFkbmFwcm8tdGltZS1ncmlkX19kcm9wLWxhYmVsIHtcbiAgdG9wOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAycHg7XG59XG4vLyBEZXZpYXRpbmcgZnJvbSB0aGUgZXN0aW1hdGUgaXMgQUxMT1dFRCAoSyAwMy4wOC4yMDI2KSDigJQgb3JhbmdlLCBuZXZlciByZWQsIGFuZCBvbmx5IG9uXG4vLyB0aGUgbGFiZWwgcGx1cyBhIHNvZnQgYm9yZGVyLiBSZWQgaXMgcmVzZXJ2ZWQgZm9yIGEgcmVmdXNlZCBkcm9wLlxuLnFkbmFwcm8tdGltZS1ncmlkX19kcm9wLmlzLW92ZXItZXN0aW1hdGUsXG4ucWRuYXByby10aW1lLWdyaWRfX2Ryb3AuaXMtdW5kZXItZXN0aW1hdGUge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtc2lnbmFsLW9yYW5nZS10ZXh0LCAjYmM2YTFmKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtb3JhbmdlLWJnLCAjZmRlYWRjKTtcbn1cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fZHJvcC5pcy1vdmVyLWVzdGltYXRlIC5xZG5hcHJvLXRpbWUtZ3JpZF9fZHJvcC1sYWJlbCxcbi5xZG5hcHJvLXRpbWUtZ3JpZF9fZHJvcC5pcy11bmRlci1lc3RpbWF0ZSAucWRuYXByby10aW1lLWdyaWRfX2Ryb3AtbGFiZWwge1xuICBjb2xvcjogdmFyKC0tYy1zaWduYWwtb3JhbmdlLXRleHQsICNiYzZhMWYpO1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnFkbmFwcm8tdGltZS1ncmlkX19ldmVudHMgLnFkbmFwcm8tZXZlbnQtY2FyZC5pcy1kcmFnLXJldHVybiB7IHRyYW5zaXRpb246IG5vbmU7IH1cbiAgLnFkbmFwcm8tdGltZS1ncmlkX19hbGxkYXkgeyB0cmFuc2l0aW9uOiBub25lOyB9XG59XG5cbi8vIE5vdy1pbmRpY2F0b3IgKEdvb2dsZSBDYWxlbmRhciBzdHlsZSk6IHJlZCBsaW5lICsgZG90IG9uIHRoZSBjdXJyZW50IHRpbWVcbi5xZG5hcHJvLXRpbWUtZ3JpZF9fbm93IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItdG9wOiAycHggc29saWQgdmFyKC0tYy10YWctY3JpdGljYWwtdGV4dCk7XG4gIHotaW5kZXg6IDM7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLyogVGhlIFwibm93XCIgZG90IHNpdHMgZnVsbHkgSU5TSURFIHRvZGF5J3MgY29sdW1uIChmaXhlZCAyOS4wNy4yMDI2LCBLaW06IFwidmFsdFxuICAgYWx0aWpkIHdlZyBvbmRlciBoZXQgbGlua2VyIHBhbmVlbFwiKS4gSXQgdXNlZCB0byBiZSBgbGVmdDogLTVweGAsIHN0cmFkZGxpbmcgdGhlXG4gICBjb2x1bW4ncyBsZWZ0IGVkZ2UsIHNvIGhhbGYgb2YgaXQgbGFuZGVkIHVuZGVyIHRoZSB0aW1lcyBndXR0ZXIg4oCUIGFuZCB0aGUgZ3V0dGVyXG4gICBpcyBvcGFxdWUgd2l0aCB6LWluZGV4IDUgYWdhaW5zdCB0aGlzIGxpbmUncyB6LWluZGV4IDMsIHNvIHRoYXQgaGFsZiB3YXMgc2ltcGx5XG4gICBwYWludGVkIG92ZXIuIEluIHRoZSBkYXkgdmlldyB0b2RheSdzIGNvbHVtbiBpcyBBTFdBWVMgdGhlIGxlZnRtb3N0IG9uZSwgd2hpY2ggaXNcbiAgIHdoeSBpdCB3YXMgYWx3YXlzIGJyb2tlbiB0aGVyZSByYXRoZXIgdGhhbiBvbmx5IHNvbWV0aW1lcy4gUmFpc2luZyB0aGUgbGluZSBhYm92ZVxuICAgdGhlIGd1dHRlciBpbnN0ZWFkIHdvdWxkIGJlIHdyb25nOiB0aGUgbGluZSBpcyBzdXBwb3NlZCB0byBzbGlkZSB1bmRlciB0aGUgZ3V0dGVyXG4gICB3aGVuIHlvdSBzY3JvbGwgaG9yaXpvbnRhbGx5LCB0aGF0IGlzIHdoYXQgbWFrZXMgdGhlIGd1dHRlciByZWFkIGFzIGEgZml4ZWQgcGFuZWwuXG4gICBTbyB0aGUgZG90IG1vdmVzIGluLCBhbmQgdGhlIGd1dHRlciBrZWVwcyB3aW5uaW5nLiAqL1xuLnFkbmFwcm8tdGltZS1ncmlkX19ub3c6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAtNXB4O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtdGFnLWNyaXRpY2FsLXRleHQpO1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby10aW1lLXBpY2tlciDigJQgaU9TLXN0eWxlIHRpbWUgd2hlZWxzIChQV0EgY2FsZW5kYXIgTTIpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBRRE5BIHRva2VucyB1c2VkOlxuLy8gICAgLS1jLXB1cnBsZS01MDAgICAgICAjNDA0OTlhICAgICAgICAgICAgICAgIHNlbGVjdGVkIHZhbHVlXG4vLyAgICAtLWMtcHVycGxlLXNvZnQtMDggIHJnYmEoNjQsNzMsMTU0LDAuMDgpICAgY2VudHJlIGhpZ2hsaWdodCBiYXJcbi8vICAgIC0tYy1ncmV5LTQwMCAgICAgICAgI2E2YWFiMyAgICAgICAgICAgICAgICBpZGxlIHdoZWVsIHZhbHVlc1xuLy8gICAgLS1jLWdyZXktNTAwICAgICAgICAjNmI3MjgwICAgICAgICAgICAgICAgIGNvbG9uIHNlcGFyYXRvclxuLy8gIEdlb21ldHJ5OiA0MHB4IGl0ZW1zLCA1IHZpc2libGUgcm93cyAoMjAwcHggY29sdW1uKS4gVGhlIEpTIG1lYXN1cmVzXG4vLyAgdGhlIHJlYWwgaXRlbSBoZWlnaHQgYXQgcnVudGltZSwgc28gY2hhbmdpbmcgNDBweCBoZXJlIHN0YXlzIGluIHN5bmMuXG4vLyAgTmF0aXZlIHNjcm9sbCArIHNjcm9sbC1zbmFwIGRvZXMgdGhlIHBoeXNpY3M7IHRoZSBtYXNrIGZhZGVzIHRoZVxuLy8gIHdoZWVsIGVkZ2VzLiBvdmVyc2Nyb2xsLWJlaGF2aW9yIGtlZXBzIHRoZSBzcGluIGZyb20gc2Nyb2xsLWNoYWluaW5nXG4vLyAgaW50byB0aGUgYm90dG9tIHNoZWV0IHRoYXQgaG9zdHMgdGhlIHBpY2tlci5cbi8vICBGTEFUIENTUzsgc3luY2VkIHRvIHRoZSBQV0EgdmlhIHN5bmMtdjItY29tcG9uZW50cy5qcy5cblxuLnFkbmFwcm8tdGltZS1waWNrZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDJweDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLy8gQ2VudHJlIGhpZ2hsaWdodCBiYXIg4oCUIHNpdHMgYmVoaW5kIHRoZSBjb2x1bW5zIChmaXJzdCBjaGlsZCwgbm8gei1pbmRleClcbi5xZG5hcHJvLXRpbWUtcGlja2VyX19oaWdobGlnaHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDRweDtcbiAgcmlnaHQ6IDRweDtcbiAgdG9wOiA1MCU7XG4gIGhlaWdodDogNDBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS1zb2Z0LTA4LCByZ2JhKDY0LCA3MywgMTU0LCAwLjA4KSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ucWRuYXByby10aW1lLXBpY2tlcl9fY29sIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNzJweDtcbiAgaGVpZ2h0OiAyMDBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgc2Nyb2xsLXNuYXAtdHlwZTogeSBtYW5kYXRvcnk7XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gIHRvdWNoLWFjdGlvbjogcGFuLXk7XG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgLXdlYmtpdC1tYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB0cmFuc3BhcmVudCwgdmFyKC0tYy1ncmV5LTk1MCkgMjglLCB2YXIoLS1jLWdyZXktOTUwKSA3MiUsIHRyYW5zcGFyZW50KTtcbiAgbWFzay1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdHJhbnNwYXJlbnQsIHZhcigtLWMtZ3JleS05NTApIDI4JSwgdmFyKC0tYy1ncmV5LTk1MCkgNzIlLCB0cmFuc3BhcmVudCk7XG59XG4ucWRuYXByby10aW1lLXBpY2tlcl9fY29sOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIFBhZGRpbmcgc28gdGhlIGZpcnN0L2xhc3QgZW50cnkgY2FuIHJlc3QgdW5kZXIgdGhlIGhpZ2hsaWdodFxuLnFkbmFwcm8tdGltZS1waWNrZXJfX2xpc3Qge1xuICBwYWRkaW5nOiA4MHB4IDA7XG59XG5cbi5xZG5hcHJvLXRpbWUtcGlja2VyX19pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgY29sb3I6IHZhcigtLWMtZ3JleS00MDAsICNhNmFhYjMpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHNjcm9sbC1zbmFwLWFsaWduOiBjZW50ZXI7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMTJzIGVhc2UsIGZvbnQtd2VpZ2h0IDAuMTJzIGVhc2U7XG59XG4ucWRuYXByby10aW1lLXBpY2tlcl9faXRlbS5pcy1zZWxlY3RlZCB7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4ucWRuYXByby10aW1lLXBpY2tlcl9fY29sb24ge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNzI4MCk7XG59XG5cbi8vIEZvY3VzIOKAlCB1bmlmaWVkIHN0YWNrZWQgcmluZyBvbiB0aGUgY29sdW1uXG4ucWRuYXByby10aW1lLXBpY2tlcl9fY29sOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxuLnFkbmFwcm8tdGltZS1waWNrZXJfX2NvbDpmb2N1cy12aXNpYmxlIHtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDAgMCAycHggdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKSxcbiAgICAwIDAgMCA2cHggdmFyKC0tYy1wdXJwbGUtc29mdC0xOCwgcmdiYSg2NCwgNzMsIDE1NCwgMC4xOCkpO1xufVxuXG4ucWRuYXByby10aW1lLXBpY2tlcltkaXNhYmxlZF0ge1xuICBvcGFjaXR5OiAwLjQ1O1xufVxuLnFkbmFwcm8tdGltZS1waWNrZXJbZGlzYWJsZWRdIC5xZG5hcHJvLXRpbWUtcGlja2VyX19jb2wge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnFkbmFwcm8tdGltZS1waWNrZXJfX2l0ZW0geyB0cmFuc2l0aW9uOiBub25lOyB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLXRpbWUtc2VsZWN0IOKAlCBHb29nbGUtQ2FsZW5kYXItc3R5bGUgMTUtbWludXRlIHRpbWUgZHJvcGRvd25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFFETkEgdG9rZW5zIHVzZWQ6XG4vLyAgICAtLWMtZ3JleS05NTAgICAjMGIwYjBkICAgZmllbGQgdGV4dCAvIGxhYmVsXG4vLyAgICAtLWMtZ3JleS00MDAgICAjYTZhYWIzICBwbGFjZWhvbGRlciAvIGxlYWRpbmcgaWNvbiAvIGNoZXZyb25cbi8vICAgIC0tYy1ncmV5LTMwMCAgICNjNGM3Y2MgIGZpZWxkIGJvcmRlclxuLy8gICAgLS1jLWdyZXktNTAgICAgI2YwZjFmMiAgb3B0aW9uIGhvdmVyIGJhY2tncm91bmRcbi8vICAgIC0tYy1ncmV5LTEwMCAgICNlN2U5ZWMgIG9wdGlvbiBwcmVzc2VkIGJhY2tncm91bmRcbi8vICAgIC0tYy1wdXJwbGUtNTAwICM0MDQ5OWEgIHNlbGVjdGVkIG9wdGlvbiB0ZXh0ICsgb2ZmLWdyaWQgZG90XG4vLyAgICAtLWMtYWN0aW9uLTUwMCAjNDY1MmYzICBzZWxlY3RlZCBvcHRpb24gYmFja2dyb3VuZFxuLy8gICAgLS1jLWFjdGlvbi00MCAgcmdiYSg3MCw4MiwyNDMsMC40MCkgIGZvY3VzIHJpbmcgZ2xvd1xuLy8gICAgLS1jLXNpZ25hbC1yZWQtdGV4dCAjYzY1YTVhICByZXF1aXJlZCBzdGFyIC8gZXJyb3IgYm9yZGVyIC8gbWVzc2FnZVxuLy8gIEZpZWxkIG1ldHJpY3MgbWlycm9yIHFkbmFwcm8taW5wdXQncyAuaW5wdXQtZmllbGQgKHNtYWxsL2RlZmF1bHQgc2l6ZSxcbi8vICBib3JkZXIsIHJhZGl1cywgZm9jdXMgcmluZykgc28gdGhlIHRyaWdnZXIgcmVhZHMgYXMgcGFydCBvZiB0aGUgc2FtZVxuLy8gIGlucHV0IGZhbWlseSAoS2ltJ3Mgc3BlYzogXCJzYW1lIHZpc3VhbCBmYW1pbHkgYXMgcWRuYXByby1pbnB1dFxuLy8gIHR5cGU9dGltZSBzaXplPXNtYWxsXCIpLiBUaGUgZHJvcGRvd24gcGFuZWwgbWlycm9ycyB0aGUgcWRuYXByby1zZWxlY3Rcbi8vICBwb3BvdmVyIGNocm9tZSAoYm9yZGVyL3JhZGl1cy9zaGFkb3cpIGZvciBwbGF0Zm9ybSBjb25zaXN0ZW5jeS5cbi8vICBGTEFUIENTUyAobm8gbmVzdGluZyksIHBlciB0aGUgdjIgY29tcG9uZW50IGNvbnZlbnRpb24uXG5cbi5xZG5hcHJvLXRpbWUtc2VsZWN0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG59XG4ucWRuYXByby10aW1lLXNlbGVjdCAqIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLnFkbmFwcm8tdGltZS1zZWxlY3QgLnRzLWxhYmVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktOTUwLCAjMGIwYjBkKTtcbn1cbi5xZG5hcHJvLXRpbWUtc2VsZWN0IC50cy1sYWJlbCAudHMtcmVxdWlyZWQge1xuICBjb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xuICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLnFkbmFwcm8tdGltZS1zZWxlY3QgLnRzLWZpZWxkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0zMDAsICNjNGM3Y2MpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHBhZGRpbmc6IDAgMTJweDtcbiAgY3Vyc29yOiB0ZXh0O1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMTIwbXMgZWFzZS1vdXQsIGJveC1zaGFkb3cgMTIwbXMgZWFzZS1vdXQ7XG59XG4ucWRuYXByby10aW1lLXNlbGVjdC50cy1zaXplLWRlZmF1bHQgLnRzLWZpZWxkIHtcbiAgbWluLWhlaWdodDogNTJweDtcbn1cbi5xZG5hcHJvLXRpbWUtc2VsZWN0LnRzLXNpemUtc21hbGwgLnRzLWZpZWxkIHtcbiAgbWluLWhlaWdodDogNDBweDtcbn1cblxuLnFkbmFwcm8tdGltZS1zZWxlY3QgLnRzLWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS00MDAsICNhNmFhYjMpO1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLXRpbWUtc2VsZWN0IC50cy1jaGV2cm9uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwLCAjYTZhYWIzKTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNTBtcyBlYXNlO1xufVxuLnFkbmFwcm8tdGltZS1zZWxlY3QudHMtb3BlbiAudHMtY2hldnJvbiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG59XG5cbi5xZG5hcHJvLXRpbWUtc2VsZWN0IC50cy1pbnB1dCB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogMDtcbiAgb3V0bGluZTogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktOTUwLCAjMGIwYjBkKTtcbn1cbi5xZG5hcHJvLXRpbWUtc2VsZWN0IC50cy1pbnB1dDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTQwMCwgI2E2YWFiMyk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4ucWRuYXByby10aW1lLXNlbGVjdCAudHMtaW5wdXQ6ZGlzYWJsZWQge1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTQwMCwgI2E2YWFiMyk7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5xZG5hcHJvLXRpbWUtc2VsZWN0IC50cy1maWVsZDpmb2N1cy13aXRoaW4ge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtcHVycGxlLTQwMCk7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCB2YXIoLS1jLWFjdGlvbi00MCwgcmdiYSg3MCwgODIsIDI0MywgMC40MCkpO1xufVxuXG4ucWRuYXByby10aW1lLXNlbGVjdC50cy1lcnJvciAudHMtZmllbGQge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTtcbn1cbi5xZG5hcHJvLXRpbWUtc2VsZWN0LnRzLWVycm9yIC50cy1maWVsZDpmb2N1cy13aXRoaW4ge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMjQ4LCAxMTMsIDExMywgMC40KTtcbn1cblxuLnFkbmFwcm8tdGltZS1zZWxlY3QudHMtZGlzYWJsZWQgLnRzLWZpZWxkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwLCAjZjBmMWYyKTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5xZG5hcHJvLXRpbWUtc2VsZWN0LnRzLWRpc2FibGVkIC50cy1maWVsZDpmb2N1cy13aXRoaW4ge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4ucWRuYXByby10aW1lLXNlbGVjdCAudHMtbWVzc2FnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBtYXJnaW4tdG9wOiA0cHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG59XG4ucWRuYXByby10aW1lLXNlbGVjdCAudHMtbWVzc2FnZSBxZG5hcHJvLWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby10aW1lLXNlbGVjdCAudHMtbWVzc2FnZS1lcnJvciB7XG4gIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCwgI2M2NWE1YSk7XG59XG5cbi8vIC0tLS0tLS0tLS0gRHJvcGRvd24gcGFuZWwgKHBvcnRhbGVkIHRvIGRvY3VtZW50LmJvZHkpIC0tLS0tLS0tLS1cbi8vIFNhbWUgY2hyb21lIGZhbWlseSBhcyB0aGUgcWRuYXByby1zZWxlY3QgcG9wb3Zlcjogd2hpdGUgY2FyZCwgZ3JleS0zMDBcbi8vIGJvcmRlciwgcmFkaXVzIDgsIGVsZXZhdGVkIHNoYWRvdy5cbi5xZG5hcHJvLXRpbWUtc2VsZWN0LXBhbmVsIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ncmV5LTMwMCwgI2M0YzdjYyk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogNHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIGJveC1zaGFkb3c6IDAgNHB4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSksIDAgOHB4IDEycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG59XG4vLyBUaHVtYi1vbmx5IHNjcm9sbGJhciAoS2ltJ3Mgc3RhbmRpbmcgcnVsZSDigJQgZXZlcnkgc2Nyb2xsIGNvbnRhaW5lciBnZXRzXG4vLyB0aGlzLCBubyBncmV5IHRyYWNrKS5cbi5xZG5hcHJvLXRpbWUtc2VsZWN0LXBhbmVsOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogOHB4O1xufVxuLnFkbmFwcm8tdGltZS1zZWxlY3QtcGFuZWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4ucWRuYXByby10aW1lLXNlbGVjdC1wYW5lbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLnFkbmFwcm8tdGltZS1zZWxlY3QtcGFuZWw6aG92ZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuLnFkbmFwcm8tdGltZS1zZWxlY3QtcGFuZWw6Zm9jdXMtd2l0aGluOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yMik7XG59XG4ucWRuYXByby10aW1lLXNlbGVjdC1wYW5lbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzQpO1xufVxuXG4ucWRuYXByby10aW1lLXNlbGVjdC1wYW5lbCAudHMtcGFuZWwtbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMXB4O1xufVxuXG4ucWRuYXByby10aW1lLXNlbGVjdC1vcHRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udDogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgY29sb3I6IHZhcigtLWMtZ3JleS05NTAsICMwYjBiMGQpO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ucWRuYXByby10aW1lLXNlbGVjdC1vcHRpb246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTAsICNmMGYxZjIpO1xufVxuLnFkbmFwcm8tdGltZS1zZWxlY3Qtb3B0aW9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0xMDAsICNlN2U5ZWMpO1xufVxuLnFkbmFwcm8tdGltZS1zZWxlY3Qtb3B0aW9uLmlzLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCwgI2YwZjFmMik7XG59XG5cbi8vIFNlbGVjdGVkIOKAlCBmaWxsZWQgcHVycGxlIHBpbGwgKG1pcnJvcnMgdGhlIGRhdGUtcGlja2VyJ3Mgc2VsZWN0ZWQgZGF5KS5cbi5xZG5hcHJvLXRpbWUtc2VsZWN0LW9wdGlvbi5pcy1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5xZG5hcHJvLXRpbWUtc2VsZWN0LW9wdGlvbi5pcy1zZWxlY3RlZDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYWN0aW9uLTYwMCwgIzM1NDBkNik7XG59XG5cbi8vIE9mZi1ncmlkIOKAlCB0aGUgY3VycmVudGx5LXNlbGVjdGVkIHZhbHVlIGRpZCBub3QgZmFsbCBvbiB0aGUgMTUtbWludXRlXG4vLyBncmlkIChlLmcuIHR5cGVkIG1hbnVhbGx5KS4gU3RpbGwgc2hvd24gKyBoaWdobGlnaHRlZCwgd2l0aCBhIHNtYWxsIGRvdFxuLy8gbWFya2VyIHNvIGl0IHZpc3VhbGx5IHJlYWRzIGFzIGFuIGluc2VydGVkLCBub24tZ3JpZCBlbnRyeS5cbi5xZG5hcHJvLXRpbWUtc2VsZWN0LW9wdGlvbi5pcy1vZmYtZ3JpZDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA2cHg7XG4gIGhlaWdodDogNnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG4ucWRuYXByby10aW1lLXNlbGVjdC1vcHRpb24uaXMtb2ZmLWdyaWQuaXMtc2VsZWN0ZWQ6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbn1cblxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXRpbWUtc2VsZWN0IC50cy1sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAsICNmMGYxZjIpO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXRpbWUtc2VsZWN0IC50cy1maWVsZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS05MDAsICMxODE4MWMpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtZ3JleS02MDAsICM1NjViNjYpO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXRpbWUtc2VsZWN0IC50cy1pbnB1dCB7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAsICNmMGYxZjIpO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXRpbWUtc2VsZWN0LXBhbmVsIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTkwMCwgIzE4MTgxYyk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1ncmV5LTYwMCwgIzU2NWI2Nik7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tdGltZS1zZWxlY3Qtb3B0aW9uIHtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MCwgI2YwZjFmMik7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tdGltZS1zZWxlY3Qtb3B0aW9uOmhvdmVyLFxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXRpbWUtc2VsZWN0LW9wdGlvbi5pcy1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktODAwLCAjMmUzMDM2KTtcbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8tcXVpY2stZXZlbnQg4oCUIHBsYW4tdm9ybSBkaWUgTUVFR1JPRUlULCB2b29yIGluIGVlbiBwb3BvdmVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBRRE5BIHRva2VuczogLS1jLWdyZXktMTAwIChzY2hlaWRpbmdzbGlqbmVuKSwgLS1jLXRleHQtaGVhZGluZyAoc2FtZW52YXR0aW5nKSxcbi8vICAtLWMtdGV4dC1tdXRlZCAoaGV0IFwiVG90XCItd29vcmRqZSksIC0tYy1ncmV5LTUwIChob3ZlciBvcCBkZSBzYW1lbnZhdHRpbmcpLlxuLy8gIEJld3VzdCBXRUlOSUcgZWlnZW4gb3BtYWFrOiBkZSB2ZWxkZW4gZW4ga25vcHBlbiB6aWpuIGhlbGUgY29tcG9uZW50ZW4gbWV0IGh1blxuLy8gIGVpZ2VuIHZvcm0sIGR1cyBoaWVyIHN0YWF0IGFsbGVlbiBkZSBpbmRlbGluZy4gRWxrZSByZWdlbCBkaWUgbmlldCBvdmVyIHBsYWF0c2luZ1xuLy8gIGdhYXQgaG9vcnQgaW4gaGV0IGNvbXBvbmVudCB6ZWxmLlxuLy8gIEZMQVQgQ1NTLCBnZWVuIG5lc3RpbmcsIHBlciBkZSB2Mi1jb252ZW50aWUuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnFkbmFwcm8tcXVpY2stZXZlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLy8gMzIwcHggaXMgZGUgb25kZXJncmVucyB3YWFyb3AgZWVuIGRhdHVta25vcCBlbiBlZW4gdGlqZHZlbGQgbmFhc3QgZWxrYWFyIHBhc3Nlbi5cbiAgLy8gRGUgSE9TVCB6ZXQgZGUgZWNodGUgYnJlZWR0ZTogcWRuYXByby1wb3BvdmVyIGlzIHN0YW5kYWFyZCAyODBweCBlbiBkYW4gc3RlZWt0XG4gIC8vIGRlemUgdm9ybSBlcnVpdC4gWmllIGRlIHJlZ2VsIHZvb3IgW2RhdGEtc2hlZXQ9XCJxdWljay1ldmVudFwiXSBpbiBfcHdhLWN1cnJlbnQuc2Nzcy5cbiAgbWluLXdpZHRoOiAzMjBweDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xufVxuXG4vLyBFbGsgdmVsZCBvcCBlZW4gZWlnZW4gcmVnZWwgbWV0IHdhdCBsdWNodCBlcnR1c3Nlbi4gR2VlbiBtYXJnZSBvcCBoZXQgbGFhdHN0ZSxcbi8vIGFuZGVycyBzdGFwZWx0IGRpZSBvcCBkZSBwYWRkaW5nIHZhbiBkZSB2b2V0cmVnZWwuXG4ucWRuYXByby1xdWljay1ldmVudF9fdG9wID4gKixcbi5xZG5hcHJvLXF1aWNrLWV2ZW50X19yZXN0ID4gKiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4vLyAtLS0tIERlIFwid2FubmVlclwiLWdyb2VwOiBkaWNodGdla2xhcHQgw6nDqW4gcmVnZWwsIHVpdGdla2xhcHQgZGUgdmVsZGVuIC0tLS1cbi5xZG5hcHJvLXF1aWNrLWV2ZW50X193aGVuIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLy8gRGUgc2FtZW52YXR0aW5nc3JlZ2VsIFpJRVQgRVJVSVQgYWxzIGVlbiBpbnZvZXJ2ZWxkIChLaW0gMDcuMDguMjAyNjogXCJkYW4gbGlqa3QgaGV0XG4vLyBhbGxlbWFhbCBnZWxpamtcIikuIEhpaiBzdG9uZCBlZXJzdCBhbHMgdmV0Z2VkcnVrdGUgcGFhcnNlIHRla3N0IHR1c3NlbiBkZSB2ZWxkZW4gZW5cbi8vIHRyb2sgZGFhcm1lZSBhbGxlIGFhbmRhY2h0IG5hYXIgaGV0IGVuZSBkaW5nIGRhdCBtZWVzdGFsIGFsIGtsb3B0LlxuLy9cbi8vIERlIG1hdGVuIHppam4gb3Zlcmdlbm9tZW4gdmFuIHFkbmFwcm8taW5wdXQgc2l6ZT1cInNtYWxsXCIgKDQwcHggaG9vZywgcmFkaXVzIDgsIGRlemVsZmRlXG4vLyByYW5ka2xldXIpLCB6b2RhdCBoaWogaW4gZGUgcmlqIHBhc3QuIERhdCBpcyBiZXd1c3QgZWVuIE5BQk9PVFNJTkcgZW4gZ2VlbiBlY2h0ZVxuLy8gcWRuYXByby1pbnB1dDogZGl0IGRpbmcgaXMgZWVuIHVpdGtsYXBwZXIsIGdlZW4gdmVsZCB3YWFyIGplIGluIHR5cHQsIGVuIGVyIGVlbiBlY2h0XG4vLyBpbnZvZXJ2ZWxkIHZhbiBtYWtlbiB6b3UgZWVuIHRvZXRzZW5ib3JkIG9wcm9lcGVuIGVuIGVlbiB3YWFyZGUgYmVsb3ZlbiBkaWUgZXIgbmlldCBpcy5cbi8vIEJsaWpmdCBkYWFyb20gZWVuIDxidXR0b24+OiBiZXJlaWtiYWFyIG1ldCB0YWIgZW4gRW50ZXIuXG4ucWRuYXByby1xdWljay1ldmVudF9fc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiA0MHB4O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWdyZXktMjAwLCAjZDdkYWUwKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xuICBmb250OiBpbmhlcml0O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYTFmNGQpO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucWRuYXByby1xdWljay1ldmVudF9fc3VtbWFyeVtoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5xZG5hcHJvLXF1aWNrLWV2ZW50X19zdW1tYXJ5OmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWdyZXktMzAwLCAjY2RkMWQ2KTtcbn1cbi5xZG5hcHJvLXF1aWNrLWV2ZW50X19zdW1tYXJ5OmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYy1hY3Rpb24tNTAwLCAjNDY1MmYzKTtcbiAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbn1cblxuLnFkbmFwcm8tcXVpY2stZXZlbnRfX2RldGFpbCB7XG4gIHBhZGRpbmc6IDRweCAwIDJweDtcbn1cbi5xZG5hcHJvLXF1aWNrLWV2ZW50X19kZXRhaWxbaGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIERhdHVtIGVuIGJlaWRlIHRpamRlbiBvcCDDicOJTiByZWdlbCAoS2ltIDA3LjA4LjIwMjYsIG1ldCBHb29nbGUgZXJuYWFzdCkuIERlIGRhdHVtXG4vLyBrcmlqZ3QgZGUgZHViYmVsZSBicmVlZHRlIHZhbiBlZW4gdGlqZHZlbGQsIHdhbnQgXCJaYXRlcmRhZyA4IGF1Z3VzdHVzXCIgaXMgbnUgZWVubWFhbFxuLy8gbGFuZ2VyIGRhbiBcIjA5OjAwXCIuIEFsbGVzIG1hZyBrcmltcGVuIChtaW4td2lkdGg6IDApLCB6b2RhdCBlZW4gbGFuZ2UgZGFnbmFhbSBkZVxuLy8gdGlqZHZlbGRlbiBuaWV0IGRlIGthYXJ0IHVpdCBkdXd0IOKAlCBkYXQgd2FzIGRlIHZvcmlnZSBmb3V0LlxuLnFkbmFwcm8tcXVpY2stZXZlbnRfX3doZW4tcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4ucWRuYXByby1xdWljay1ldmVudF9fZGF0ZWZpZWxkIHtcbiAgZmxleDogMiAxIDA7XG4gIG1pbi13aWR0aDogMDtcbn1cbi5xZG5hcHJvLXF1aWNrLWV2ZW50X190aW1lIHtcbiAgZmxleDogMSAxIDA7XG4gIG1pbi13aWR0aDogMDtcbn1cbi5xZG5hcHJvLXF1aWNrLWV2ZW50X19kYXNoIHtcbiAgZmxleDogbm9uZTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG59XG5cbi8vIERlIGthbGVuZGVyIGlzIGVlbiBPVkVSTEFZIChlaWdlbiBxZG5hcHJvLXBvcG92ZXIsIHppZSBfb3BlbkRhdGVQb3BvdmVyKSwgZ2VlblxuLy8gaW5saW5lIHVpdGtsYXBwZXI6IGlubGluZSBicmFjaHQgZGUga2FhcnQgb3AgMTAwOHB4IGhvb2cuIERlIGhhYWsgd2Fhcm1lZSBkZVxuLy8gb21odWxsZW5kZSBwb3BvdmVyIGhlbSBoZXJrZW50IGlzIGhldCBBVFRSSUJVVVQgW2RhdGEtcXVpY2stZXZlbnQtZGF0ZXBvcF0gZW4gZ2VlblxuLy8gY2xhc3Mg4oCUIHFkbmFwcm8tcG9wb3ZlciBvdmVyc2NocmlqZnQgemlqbiBlaWdlbiBjbGFzc05hbWUgYmlqIGVsa2UgcmVuZGVyLiBFciBpc1xuLy8gaGllciBnZWVuIG9wbWFhayBub2RpZzogYHBhbmVsYCBvcCBkZSBkYXR1bWtpZXplciBsZXZlcnQgZGUgb21rYWRlcmluZyBhbC5cblxuLnFkbmFwcm8tcXVpY2stZXZlbnRfX2FsbGRheSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi8vIEhldCBsYWJlbCBuYWFzdCBkZSBzY2hha2VsYWFyIGlzIGtsaWtiYWFyICh6aWUgZGUgSlMpLCBkdXMgaGV0IGtyaWpndCBvb2sgZGVcbi8vIGN1cnNvciBkaWUgZGF0IGJlbG9vZnQuXG4ucWRuYXByby1xdWljay1ldmVudF9fdG9nZ2xlLWxhYmVsIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYTFmNGQpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ucWRuYXByby1xdWljay1ldmVudF9fcmVwZWF0IHtcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuXG4vLyAtLS0tIFZvZXRyZWdlbCAtLS0tXG4vLyBmbGV4LXdyYXAgaXMgZGUgVkFOR1JBSUwgZW4gbmlldCBkZSBiZWRvZWxpbmc6IG5vcm1hYWwgcGFzc2VuIGRlIGRyaWUga25vcHBlbiBvcFxuLy8gw6nDqW4gcmVnZWwgKGdlbWV0ZW4gMzQ1cHgsIGVuIGRlIGhvc3QgZ2VlZnQgZGUgcG9wb3ZlciA0MDBweCkuIE1hYXIgZWVuIGxhbmdlcmVcbi8vIHZlcnRhbGluZyBvZiBlZW4gZ3JvdGVyIGxldHRlcnR5cGUga2FuIGRhYXJvdmVyaGVlbiBnYWFuLCBlbiBkYW4gaXMgZWVuIGtub3AgZGllXG4vLyBuZXRqZXMgbmFhciBkZSB2b2xnZW5kZSByZWdlbCB6YWt0IG9uZWluZGlnIHZlZWwgYmV0ZXIgZGFuIGVlbiBrbm9wIGRpZSBkZSBrYWFydFxuLy8gdWl0c3RlZWt0LiBEYXQgbGFhdHN0ZSBpcyBwcmVjaWVzIHdhdCBlciAwNy4wOC4yMDI2IG9wIEtpbXMgc2NoZXJtIGdlYmV1cmRlIHRvZW5cbi8vIGRlIHBvcG92ZXIgbm9nIG9wIHppam4gc3RhbmRhYXJkIDI4MHB4IHN0b25kLlxuLnFkbmFwcm8tcXVpY2stZXZlbnRfX2Zvb3RlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmctdG9wOiAxMnB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYyk7XG59XG4vLyBEdXd0IEFubnVsZXJlbiBlbiBCZXZlc3RpZ2VuIG5hYXIgcmVjaHRzIGVuIGxhYXQgXCJNZWVyIG9wdGllc1wiIGxpbmtzIHN0YWFuLiBEaWVcbi8vIHNjaGVpZGluZyBpcyBkZSBiZWRvZWxpbmc6IGxpbmtzIGdhIGplIHZlcmRlciBpbiBlZW4gYW5kZXJlIHZvcm0sIHJlY2h0cyByb25kIGplXG4vLyBkZXplIGFmLlxuLnFkbmFwcm8tcXVpY2stZXZlbnRfX3NwYWNlciB7XG4gIGZsZXg6IDEgMSBhdXRvO1xufVxuIiwiLy8gcWRuYXByby1ldmVudC1zaGVldCDigJQgdGhlIFwiTmV3IGpvYlwiIGV2ZW50LWNyZWF0aW9uIHNoZWV0IChQV0EgY2FsZW5kYXIgTTIpLlxuLy8gRkxBVCBDU1MgKHRoZSBQV0EgY29tcG9uZW50IHN5bmMgc3RyaXBzIGNvbW1lbnRzIG9ubHksIG5vIG5lc3RpbmcvdmFycykuXG4vLyBUaGUgaW5uZXIgcWRuYXByby1ib3R0b20tc2hlZXQgcG9ydGFscyB0byA8Ym9keT4sIHNvIGV2ZXJ5IGhvb2sgbGl2ZXMgb25cbi8vIFtkYXRhLWVzLXNoZWV0XSAodGhlIGlubmVyIHNoZWV0IGhvc3QsIGEgZGF0YS1hdHRyIGJlY2F1c2UgdGhlIHNoZWV0IHdpcGVzXG4vLyBpdHMgb3duIGNsYXNzTmFtZSkgYW5kIC5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgKHRoZSBjb250ZW50IHJvb3QpLlxuLy8gRmlnbWEgbGF5b3V0IHRydXRoOiBncmV5IHNoZWV0IHN1cmZhY2Ugd2l0aCB3aGl0ZSBvcHRpb24gY2FyZHMuIFR5cGUgYW5kXG4vLyBSZXBlYXQgdXNlIHRoZSBzd2l0Y2gtcGFnZSBwYXR0ZXJuIChLaW0gMDIuMDcuMjAyNik6IHRoZSB3aG9sZSBzaGVldCBmYWNlXG4vLyBzbGlkZXMgbGVmdCBhbmQgYSBzdWIgcGFnZSAoQmFjayArIHNlYXJjaCArIGxpc3QpIHNsaWRlcyBpbiBmcm9tIHRoZSByaWdodC5cblxuLy8gVGhlIGhvc3QgaXMgb25seSBhIGhvbGRlcjsgdGhlIGlubmVyIHNoZWV0IGlzIGZpeGVkLXBvc2l0aW9uIGVsc2V3aGVyZVxucWRuYXByby1ldmVudC1zaGVldCB7IGRpc3BsYXk6IGNvbnRlbnRzOyB9XG5cbi8vIEdyZXkgc2hlZXQgc3VyZmFjZSBiZWhpbmQgdGhlIHdoaXRlIGNhcmRzIChGaWdtYSAjZWRlZWYxIOKGkiBncmV5LTUwIHRva2VuKS5cbi8vIEZVTkRBTUVOVEFMIGhlaWdodCBtb2RlbCAoS2ltIDAyLjA3LjIwMjYpOiB0aGUgc2hlZXQgaGFzIE9ORSBGSVhFRCBoZWlnaHQgZm9yXG4vLyBpdHMgd2hvbGUgbGlmZXRpbWUg4oCUIGFsbCA4IEZpZ21hIHN0YXRlcyBhcmUgZXF1YWxseSB0YWxsLiBQaWNrZXJzIGZvbGRpbmcgb3V0LFxuLy8gZHJpbGwtaW4gcGFnZXMgYW5kIHNlYXJjaCBhbGwgbGl2ZSBJTlNJREUgdGhhdCBoZWlnaHQgd2l0aCBpbnRlcm5hbCBzY3JvbGxpbmcsXG4vLyBzbyB0aGUgc2hlZXQgb3V0bGluZSBuZXZlciBtb3ZlcyBhbmQgbm90aGluZyBuZWVkcyBtZWFzdXJpbmcgaW4gSlMuXG4ucWRuYXByby1ib3R0b20tc2hlZXRbZGF0YS1lcy1zaGVldF0gLmJzLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwKTtcbiAgaGVpZ2h0OiA4NiU7IC8vIHRoZSBzaGVldCdzIGV4aXN0aW5nIG1heCBkZXRlbnQsIG5vdyBmaXhlZFxufVxuLy8gVGhlIHBhZ2VzIG93biB0aGVpciBzY3JvbGxpbmc7IHRoZSBib2R5IGlzIGp1c3QgdGhlIHN0cmV0Y2ggZnJhbWVcbi5xZG5hcHJvLWJvdHRvbS1zaGVldFtkYXRhLWVzLXNoZWV0XSAuYnMtYm9keSB7IG92ZXJmbG93OiBoaWRkZW47IH1cblxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1mb250LWZhbWlseSwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcbiAgZmxleDogMTtcbiAgbWluLWhlaWdodDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLy8gLS0tIFBhZ2Ugc2xpZGVyIChtYWluIGZhY2Ug4oaUIHN1YiBwYWdlKSwgYm90aCBleGFjdGx5IHRoZSBmcmFtZSdzIGhlaWdodCAtLS1cbi8vIFRIRSBNT1ZFTUVOVCBJUyBOT1QgSEVSRSBBTlkgTU9SRSAoMDMuMDguMjAyNikuIFRoZSB0cmFuc2Zvcm1zLCB0aGUgZHVyYXRpb24sIHRoZSBjdXJ2ZVxuLy8gYW5kIHRoZSBmYWRlIGFsbCBjb21lIGZyb20gdGhlIHNoYXJlZCAucWRuYXByby1zbGlkZS1wYWdlcyB2b2NhYnVsYXJ5IGluIGRlc2lnbi10b2tlbnM7XG4vLyB0aGUgbWFya3VwIGNhcnJpZXMgYHFkbmFwcm8tc2xpZGUtcGFnZXMtLWZyYW1lYCBwbHVzIC0tZmlyc3QvLS1zZWNvbmQsIGFuZCB0aGUgSlMgdG9nZ2xlc1xuLy8gaXMtc2Vjb25kL2lzLWN1cnJlbnQuIEtpbSBjYXVnaHQgdGhlIFBXQSBncm93aW5nIGEgVEhJUkQgaGFuZC13cml0dGVuIGNvcHkgb2YgdGhlc2UgZXhhY3Rcbi8vIG51bWJlcnMsIHNvIHRoZXkgbm93IGxpdmUgaW4gb25lIHBsYWNlLiBXaGF0IHN0YXlzIGJlbG93IGlzIG9ubHkgd2hhdCBpcyBnZW51aW5lbHlcbi8vIGV2ZW50LXNoZWV0OiB0aGUgZmxleCBmcmFtZSwgdGhlIGdhcCBiZXR3ZWVuIHJvd3MgYW5kIHRoZSBtYWluIGZhY2UncyBpbnRlcm5hbCBzY3JvbGxpbmcuXG4vLyBEbyBOT1QgcmUtYWRkIGEgdHJhbnNmb3JtIG9yIGEgZHVyYXRpb24gaGVyZS5cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLXBhZ2VzIHtcbiAgZmxleDogMTtcbiAgbWluLWhlaWdodDogMDtcbn1cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLXBhZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEwcHg7XG59XG4vLyBNYWluIGZhY2Ugc2Nyb2xscyBpbnRlcm5hbGx5IHdoZW4gYW4gaW5saW5lIHBpY2tlciBmb2xkcyBvdXQgKGhpZGRlbiBzY3JvbGxiYXIsXG4vLyBzYW1lIHJ1bGUgYXMgYnMtYm9keTogYSBzaGVldCBuZXZlciBzaG93cyBvbmUpXG4ucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy1wYWdlLW1haW4ge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbn1cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLXBhZ2UtbWFpbjo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogMDsgaGVpZ2h0OiAwOyBkaXNwbGF5OiBub25lOyB9XG5cbi8vIFN1YiBwYWdlIGhlYWRlcjogQmFja1xuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtc3ViLWhlYWQgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBwYWRkaW5nOiAycHggMDsgfVxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtYmFjayB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1yb3cpO1xuICBwYWRkaW5nOiAxMHB4IDE0cHggMTBweCA4cHg7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1mb250LWZhbWlseSwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNzAwKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTRzIGVhc2U7XG59XG4ucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy1iYWNrOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTEwMCk7IH1cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLWJhY2s6YWN0aXZlIHsgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTIwMCk7IH1cblxuLy8gVGFza2xpc3QgbGlzdCAoc3ViIHBhZ2UpOiB3aGl0ZSBjYXJkIG9mIHJvd3MuIFRoZSBzdWIgcGFnZSBoYXMgYSBmaXhlZCBoZWlnaHRcbi8vICh0aGUgZHJpbGwgaGVpZ2h0KSwgc28gdGhlIGxpc3QgZmxleGVzIGludG8gdGhlIHJlbWFpbmluZyBzcGFjZSBiZWxvdyB0aGVcbi8vIEJhY2sgaGVhZGVyICsgc2VhcmNoIGZpZWxkIGFuZCBzY3JvbGxzIGludGVybmFsbHkuXG4ucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy10bC1saXN0IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tci0zKTtcbiAgcGFkZGluZzogNnB4O1xuICBmbGV4OiAwIDEgYXV0bztcbiAgbWluLWhlaWdodDogMDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbn1cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLXRsLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItcm93KTtcbiAgcGFkZGluZzogOXB4IDEycHg7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1mb250LWZhbWlseSwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMS4yO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNzAwKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTRzIGVhc2U7XG59XG4ucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy10bC1yb3c6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApOyB9XG4ucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy10bC1yb3c6YWN0aXZlIHsgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTEwMCk7IH1cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLXRsLXJvd1toaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLy8gVGhlIHRhc2tsaXN0J3MgYWN0aXZpdHkgaWNvbiBvbiBpdHMgYWN0aXZpdHkgY29sb3VyXG4ucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy10bC1pY28ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aWR0aDogMzhweDtcbiAgaGVpZ2h0OiAzOHB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xufVxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtdGwtaWNvIC5lcy10bC1pbWcge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBvYmplY3QtZml0OiBjb250YWluO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLXRsLW5hbWUge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtdGwtY2hlY2sgeyBkaXNwbGF5OiBub25lOyBmbGV4LXNocmluazogMDsgY29sb3I6IHZhcigtLWMtcHVycGxlLTcwMCk7IH1cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLXRsLXJvdy5pcy1hY3RpdmUgLmVzLXRsLWNoZWNrIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IH1cblxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtdHlwZS1lbXB0eSB7XG4gIHBhZGRpbmc6IDEycHggMTZweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbn1cblxuLy8gUmVwZWF0IHN1YiBwYWdlOiB0aGUgcmFkaW8gZ3JvdXAgY2FyZCAoY2hlY2sgYW5pbWF0aW9uIGNvbWVzIHdpdGggdGhlIGdyb3VwKVxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtcGFnZS1zdWIgLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi1ncm91cCB7IGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7IH1cblxuLy8gLS0tIE1haW4gcGFnZSAtLS1cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLXRvcGJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMnB4IDJweCA0cHg7XG59XG5cbi8vIFdoaXRlIG9wdGlvbiBjYXJkcyBvbiB0aGUgZ3JleSBzaGVldFxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtY2FyZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMyk7XG4gIHBhZGRpbmc6IDZweDtcbn1cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLWNhcmQgPiBxZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24geyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXJvdyk7IH1cblxuLy8gQ29sbGFwc2libGUgaW5saW5lIHBhbmVscyAoZGF0ZSAvIHRpbWUgcGlja2Vycylcbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLXBhbmVsIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gIHRyYW5zaXRpb246IGdyaWQtdGVtcGxhdGUtcm93cyAwLjI4cyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSk7XG59XG4ucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy1wYW5lbCA+IC5lcy1wYW5lbC1pbm5lciB7IG92ZXJmbG93OiBoaWRkZW47IG1pbi1oZWlnaHQ6IDA7IH1cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLXBhbmVsLmlzLW9wZW4geyBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjsgfVxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtcGFuZWwtaW5uZXIgPiBxZG5hcHJvLW1vbnRoLXN0cmlwLFxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtcGFuZWwtaW5uZXIgPiBxZG5hcHJvLXRpbWUtcGlja2VyIHsgbWFyZ2luOiA0cHggNnB4IDhweDsgfVxuLy8gQ2VudHJlIHRoZSB0aW1lIHdoZWVsIGluIHRoZSBjYXJkIChGaWdtYSBTdGFydC9FbmQgdGltZSBzdGF0ZXMpLiBUaGUgcGlja2VyIGlzXG4vLyBpbmxpbmUtZmxleCwgc28gdGV4dC1hbGlnbiBjZW50cmVzIGl0IFdJVEhPVVQgYnJlYWtpbmcgdGhlIDBmci8xZnIgZm9sZCB0cmlja1xuLy8gKGEgZmxleCAuZXMtcGFuZWwtaW5uZXIgY29sbGFwc2VzIHRoZSAxZnIgcm93IHRvIDAgaGVpZ2h0KS5cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgW2RhdGEtZXMtcGFuZWw9XCJzdGFydC10aW1lXCJdIC5lcy1wYW5lbC1pbm5lcixcbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgW2RhdGEtZXMtcGFuZWw9XCJlbmQtdGltZVwiXSAuZXMtcGFuZWwtaW5uZXIgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLy8gV2hvbGUtZGF5IHJvd1xuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtYWxsZGF5LXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogN3B4IDEycHggN3B4IDE2cHg7XG59XG4ucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy1hbGxkYXktbGVhZCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTcwMCk7XG59XG5cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLWRpdmlkZXIge1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiA0cHggNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMTAwKTtcbn1cblxuLy8gU3RhcnQgLyBFbmQgcm93czogZGF0ZSBidXR0b24gbGVmdCwgdGltZSBidXR0b24gcmlnaHRcbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLWR0LXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG59XG4ucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy1kdC1idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXJvdyk7XG4gIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS03MDApO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNHMgZWFzZSwgY29sb3IgMC4xNHMgZWFzZTtcbn1cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLWR0LWJ0bjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7IH1cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLWR0LWJ0bjphY3RpdmUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMTAwKTsgfVxuLy8gVGhlIGJ1dHRvbiB3aG9zZSBwaWNrZXIgcGFuZWwgaXMgb3BlblxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtZHQtYnRuLmlzLWFjdGl2ZSB7IGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7IGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApOyB9XG5cbi8vIEFsbC1kYXk6IHRoZSB0aW1lIGJ1dHRvbnMgZGlzYXBwZWFyIChGaWdtYSBBbGwgRGF5IHZhcmlhbnQpXG4ucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy1jYXJkLXdoZW4uZXMtYWxsZGF5LW9uIC5lcy1kdC10aW1lIHsgZGlzcGxheTogbm9uZTsgfVxuXG4ucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy1jYXJkLWRlc2MgeyBwYWRkaW5nOiAxMHB4IDEycHggMTJweDsgfVxuXG4vLyBQbGFuLWV2ZW50IG1vZGUgKG1vZGU9XCJldmVudFwiKTogZnJlZSB0aXRsZSBmaWVsZCArIHJlZCBkZWxldGUgKGVkaXQgb25seSlcbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLWNhcmQtdGl0bGUgeyBwYWRkaW5nOiAxMHB4IDEycHggMTJweDsgfVxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtY2FyZC1kZWxldGUge1xuICBwYWRkaW5nOiA4cHggMTJweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbn1cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLWNhcmQtZGVsZXRlID4gcWRuYXByby1idXR0b24geyB3aWR0aDogMTAwJTsgfVxuXG4vLyBDb25maXJtIHdpdGhvdXQgYSBjaG9zZW4gdGFza2xpc3Q6IHNoYWtlIHRoZSBUeXBlIHJvd1xuQGtleWZyYW1lcyBlcy13aWdnbGUge1xuICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuICAyMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTZweCk7IH1cbiAgNDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCk7IH1cbiAgNjAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zcHgpOyB9XG4gIDgwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpOyB9XG59XG4ucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy13aWdnbGUgeyBhbmltYXRpb246IGVzLXdpZ2dsZSAwLjRzIGVhc2U7IH1cblxuLyogUmVjdXJyaW5nIHBlcnNvbmFsIGV2ZW50cyAoUGxhbm5lciBGNiBmYXNlIDEsIDIwLjA3LjIwMjYpIOKAlCB0aGVcbiAqIHJlcGVhdC1pbnRlcnZhbC91bnRpbCBmaWVsZHMgaW5zaWRlIHRoZSByZXBlYXQgc3ViLXBhZ2UsIGFuZCB0aGVcbiAqIGVkaXQvZGVsZXRlIGVkaXQtc2NvcGUgY2hvb3NlciBzdWItcGFnZS4gQmFjay1wb3J0ZWQgaGVyZSAoYm8yIGlzIHRoZVxuICogY2Fub25pY2FsIGV2ZW50LXNoZWV0IHNvdXJjZTsgdGhlIFBXQSBjb3B5IGlzIGdlbmVyYXRlZCBieVxuICogc3luYy12Mi1jb21wb25lbnRzKSBzbyBhIHN5bmMgbm8gbG9uZ2VyIHdpcGVzIHRoZSBQV0Etc2lkZSBydWxlcy4gKi9cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLXJlcGVhdC1leHRyYSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTBweDtcbn1cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLXNjb3BlLXRpdGxlIHtcbiAgcGFkZGluZzogNHB4IDEycHggMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS40O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbn1cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLXNjb3BlLWNvbmZpcm0tYnRuIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDI0cHgpO1xuICBtYXJnaW46IDRweCAxMnB4IDA7XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLXBhbmVsIHsgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy1wYWdlcyxcbiAgLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtcGFnZS1tYWluLFxuICAucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy1wYWdlLXN1YiB7IHRyYW5zaXRpb246IG5vbmU7IH1cbiAgLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtd2lnZ2xlIHsgYW5pbWF0aW9uOiBub25lOyB9XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9mYXZvcml0ZS1idXR0b24vX2Zhdm9yaXRlLWJ1dHRvbi1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4ucWRuYXByby1mYXZvcml0ZS1idXR0b24ge1xuICAtLWMtZm9jdXMtcmluZzogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgLS1jLWZvY3VzLWdsb3c6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjUpO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIHBhZGRpbmc6IDRweDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjY0LCAxKSwgYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLCBjb2xvciAzMDBtcyBlYXNlLWluLW91dCwgYm94LXNoYWRvdyAxMjBtcyBlYXNlO1xufVxuLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uOmhvdmVyOm5vdCguZmF2b3JpdGUtYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtZ3JleS01MCk7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktOTUwKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xufVxuLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uOmFjdGl2ZTpub3QoLmZhdm9yaXRlLWJ1dHRvbi1kaXNhYmxlZCkge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA4MG1zIGVhc2Utb3V0LCBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2UsIGNvbG9yIDMwMG1zIGVhc2UtaW4tb3V0O1xufVxuLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbjpmb2N1cy12aXNpYmxlLCAucWRuYXByby1mYXZvcml0ZS1idXR0b24uZm9yY2UtZm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tYy1mb2N1cy1yaW5nKSwgMCAwIDAgNnB4IHZhcigtLWMtZm9jdXMtZ2xvdyk7XG59XG4ucWRuYXByby1mYXZvcml0ZS1idXR0b24gLmZhdm9yaXRlLWJ1dHRvbi1pY29ucyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbi5mYXZvcml0ZS1idXR0b24tc2l6ZS1iaWcge1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG4ucWRuYXByby1mYXZvcml0ZS1idXR0b24uZmF2b3JpdGUtYnV0dG9uLXNpemUtYmlnIC5mYXZvcml0ZS1idXR0b24taWNvbnMge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uIC5mYXZvcml0ZS1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZmlsbDogY3VycmVudENvbG9yO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyBlYXNlLWluLW91dDtcbn1cbi5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbiAuZmF2b3JpdGUtaWNvbi1vdXRsaW5lIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbiAuZmF2b3JpdGUtaWNvbi1maWxsZWQge1xuICBvcGFjaXR5OiAwO1xuICBmaWxsOiB2YXIoLS1jLXB1cnBsZS01MDApO1xufVxuLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uIC5mYXZvcml0ZS1pY29uLXB1bHNlIHtcbiAgb3BhY2l0eTogMDtcbiAgZmlsbDogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cbi5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbi5mYXZvcml0ZS1idXR0b24tZmF2b3JpdGVkIHtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG4ucWRuYXByby1mYXZvcml0ZS1idXR0b24uZmF2b3JpdGUtYnV0dG9uLWZhdm9yaXRlZCAuZmF2b3JpdGUtaWNvbi1vdXRsaW5lIHtcbiAgb3BhY2l0eTogMDtcbn1cbi5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbi5mYXZvcml0ZS1idXR0b24tZmF2b3JpdGVkIC5mYXZvcml0ZS1pY29uLWZpbGxlZCB7XG4gIG9wYWNpdHk6IDE7XG59XG4ucWRuYXByby1mYXZvcml0ZS1idXR0b24uZmF2b3JpdGUtYnV0dG9uLXB1bHNpbmcgLmZhdm9yaXRlLWljb24tcHVsc2Uge1xuICBhbmltYXRpb246IHFkbmFwcm8tZmF2b3JpdGUtcHVsc2UgNjAwbXMgZWFzZS1vdXQ7XG59XG4ucWRuYXByby1mYXZvcml0ZS1idXR0b24uZmF2b3JpdGUtYnV0dG9uLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC41O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLyogSGVhcnQgbW9kZSAoS2ltIDIwMjYtMDYtMzApOiByZWQvcGluayBmaWxsLCBubyByaXBwbGUgcHVsc2UsIGFuZCBhXG4gICBwb3AgYW5pbWF0aW9uIG9uIHRoZSBmaWxsZWQgaGVhcnQgd2hlbiBmYXZvcml0ZWQuIFBhcnRpY2xlcyBhcmUgc3Bhd25lZFxuICAgaW4gSlMgYW5kIGFwcGVuZGVkIHRvIDxib2R5Pi4gKi9cbi5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbi5mYXZvcml0ZS1idXR0b24tbW9kZS1oZWFydC5mYXZvcml0ZS1idXR0b24tZmF2b3JpdGVkIHtcbiAgY29sb3I6IHZhcigtLWMtZmF2b3JpdGUtaGVhcnQpO1xufVxuLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uLmZhdm9yaXRlLWJ1dHRvbi1tb2RlLWhlYXJ0IC5mYXZvcml0ZS1pY29uLWZpbGxlZCB7XG4gIGZpbGw6IHZhcigtLWMtZmF2b3JpdGUtaGVhcnQpO1xufVxuLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uLmZhdm9yaXRlLWJ1dHRvbi1tb2RlLWhlYXJ0IC5mYXZvcml0ZS1pY29uLXB1bHNlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbi5mYXZvcml0ZS1idXR0b24tbW9kZS1oZWFydC5mYXZvcml0ZS1idXR0b24tcG9wcGluZyAuZmF2b3JpdGUtaWNvbi1maWxsZWQge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIGFuaW1hdGlvbjogcWRuYXByby1oZWFydC1wb3AgNTIwbXMgY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpO1xufVxuXG5Aa2V5ZnJhbWVzIHFkbmFwcm8taGVhcnQtcG9wIHtcbiAgMCUgICB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgMjAlICB7IHRyYW5zZm9ybTogc2NhbGUoMC44KTsgfVxuICA1MCUgIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjQ1KTsgfVxuICA3MCUgIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTsgfVxuICA4NSUgIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOyB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG59XG5cbkBrZXlmcmFtZXMgcWRuYXByby1mYXZvcml0ZS1wdWxzZSB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwLjU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMik7XG4gIH1cbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbixcbiAgLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uIC5mYXZvcml0ZS1pY29uIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDEyMG1zIGVhc2UsIGNvbG9yIDEyMG1zIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZTtcbiAgfVxuICAucWRuYXByby1mYXZvcml0ZS1idXR0b246aG92ZXI6bm90KC5mYXZvcml0ZS1idXR0b24tZGlzYWJsZWQpLFxuICAucWRuYXByby1mYXZvcml0ZS1idXR0b246YWN0aXZlOm5vdCguZmF2b3JpdGUtYnV0dG9uLWRpc2FibGVkKSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIC5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbi5mYXZvcml0ZS1idXR0b24tcHVsc2luZyAuZmF2b3JpdGUtaWNvbi1wdWxzZSB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG4gIC5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbi5mYXZvcml0ZS1idXR0b24tcG9wcGluZyAuZmF2b3JpdGUtaWNvbi1maWxsZWQge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uIHtcbiAgLS1jLWZvY3VzLXJpbmc6ICNhNWFjZmY7XG4gIC0tYy1mb2N1cy1nbG93OiByZ2JhKDE2NSwgMTcyLCAyNTUsIDAuNDApO1xuICBjb2xvcjogIzg5OGU5OTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbjpob3Zlcjpub3QoLmZhdm9yaXRlLWJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICBjb2xvcjogI2YwZjFmMjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbi5mYXZvcml0ZS1idXR0b24tZmF2b3JpdGVkIHtcbiAgY29sb3I6ICNhNWFjZmY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1mYXZvcml0ZS1idXR0b24uZmF2b3JpdGUtYnV0dG9uLWZhdm9yaXRlZCAuZmF2b3JpdGUtaWNvbi1maWxsZWQge1xuICBmaWxsOiAjYTVhY2ZmO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uLmZhdm9yaXRlLWJ1dHRvbi1mYXZvcml0ZWQgLmZhdm9yaXRlLWljb24tcHVsc2Uge1xuICBmaWxsOiAjYTVhY2ZmO1xufVxuXG4vKiBXaGl0ZSB2YXJpYW50OiB3aGl0ZSBzdGFyIGZvciB1c2Ugb3ZlciBwaG90b3MgLyBpbWFnZXJ5LiBQbGFjZWRcbiAgIGxhc3Qgc28gaXQgd2lucyBvdmVyIHRoZSBmYXZvcml0ZWQgKyBkYXJrLXRoZW1lIGNvbG91ciBydWxlcy4gKi9cbi5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbi5mYXZvcml0ZS1idXR0b24tdmFyaWFudC13aGl0ZSxcbi5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbi5mYXZvcml0ZS1idXR0b24tdmFyaWFudC13aGl0ZS5mYXZvcml0ZS1idXR0b24tZmF2b3JpdGVkLFxuLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uLmZhdm9yaXRlLWJ1dHRvbi12YXJpYW50LXdoaXRlOmhvdmVyOm5vdCguZmF2b3JpdGUtYnV0dG9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbn1cbi5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbi5mYXZvcml0ZS1idXR0b24tdmFyaWFudC13aGl0ZSAuZmF2b3JpdGUtaWNvbi1maWxsZWQsXG4ucWRuYXByby1mYXZvcml0ZS1idXR0b24uZmF2b3JpdGUtYnV0dG9uLXZhcmlhbnQtd2hpdGUgLmZhdm9yaXRlLWljb24tcHVsc2Uge1xuICBmaWxsOiAjZmZmZmZmO1xufVxuXG4vKiMgc291cmNlTWFwcGluZ1VSTD1mYXZvcml0ZS1idXR0b24uY3NzLm1hcCAqL1xuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvZmlsZS1pY29uL19maWxlLWljb24tY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiAgcWRuYXByby1maWxlLWljb24g4oCUIGNvbXBpbGVkIGZyb20gX2ZpbGUtaWNvbi5zY3NzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnFkbmFwcm8tZmlsZS1pY29uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICAvKiBBbmNob3IgZm9yIHRoZSBhYnNvbHV0ZWx5LXBvc2l0aW9uZWQgZmFsbGJhY2sgYmFkZ2UuXG4gICAgICAgV2l0aG91dCB0aGlzLCB0aGUgYmFkZ2UgZXNjYXBlcyB0byB0aGUgbmVhcmVzdCBwb3NpdGlvbmVkXG4gICAgICAgYW5jZXN0b3IgYW5kIHJlbmRlcnMgQUJPVkUgdGhlIGljb24gaW5zdGVhZCBvZiBvdmVybGF5aW5nIGl0LlxuICAgICAgIFtLaW0gMjAyNi0wNS0wNl0gKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ucWRuYXByby1maWxlLWljb24uZmlsZS1pY29uLTI0IHsgd2lkdGg6IDI0cHg7IGhlaWdodDogMzBweDsgfVxuLnFkbmFwcm8tZmlsZS1pY29uLmZpbGUtaWNvbi0zMiB7IHdpZHRoOiAzMnB4OyBoZWlnaHQ6IDQwcHg7IH1cbi5xZG5hcHJvLWZpbGUtaWNvbi5maWxlLWljb24tNDAgeyB3aWR0aDogNDBweDsgaGVpZ2h0OiA1MHB4OyB9XG4ucWRuYXByby1maWxlLWljb24uZmlsZS1pY29uLTQ4IHsgd2lkdGg6IDQ4cHg7IGhlaWdodDogNjBweDsgfVxuXG4vKiBFeHQtdGV4dCBmYWxsYmFjayBiYWRnZSDigJQgSElEREVOIGJ5IGRlZmF1bHQuIFRoZSBjb21wb25lbnQncyBKU1xuICAgYWRkcyBgcWRuYXByby1maWxlLWljb24tbm8tYXNzZXRgIHRvIHRoZSBob3N0IG9ubHkgd2hlbiBCT1RIIHRoZVxuICAgZXh0LXNwZWNpZmljIEFORCB0aGUgZ2VuZXJpYyBTVkcgZmFpbCB0byBsb2FkLiBUaGUgZGlzcGxheTpub25lXG4gICBrZWVwcyB0aGUgYmFkZ2UgZnJvbSBibGVlZGluZyB0aHJvdWdoIGFudGktYWxpYXNlZCAvIHRyYW5zcGFyZW50XG4gICBwaXhlbHMgb2YgYSBzdWNjZXNzZnVsIFNWRyBsb2FkLiAqL1xuLnFkbmFwcm8tZmlsZS1pY29uIC5xZG5hcHJvLWZpbGUtaWNvbi1iYWRnZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi5xZG5hcHJvLWZpbGUtaWNvbi5xZG5hcHJvLWZpbGUtaWNvbi1uby1hc3NldCAucWRuYXByby1maWxlLWljb24tYmFkZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWdyZXktMzAwKTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDApO1xuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDhweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB6LWluZGV4OiAwO1xufVxuXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tZmlsZS1pY29uLnFkbmFwcm8tZmlsZS1pY29uLW5vLWFzc2V0IC5xZG5hcHJvLWZpbGUtaWNvbi1iYWRnZSB7XG4gICAgYmFja2dyb3VuZDogIzJlMzAzNjtcbiAgICBib3JkZXItY29sb3I6ICM1NjViNjY7XG4gICAgY29sb3I6ICNhNmFhYjM7XG59XG5cbi8qIERhcmstbW9kZSBwb2xpc2gg4oCUIHN1YnRsZSBvdXRlciBnbG93IG9uIHRoZSBTVkcgYm9keSBzbyB0aGVcbiAgIHdoaXRlIHBhcGVyLW9uLXNjcmVlbiBpY29uIHN0YXlzIHZpc2libGUgYWdhaW5zdCBkYXJrIGNhbnZhcy4gKi9cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1maWxlLWljb24gc3ZnIHtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEwKSk7XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjFcIiBpbnRvIHdlYi9jc3MvdjEvc3R5bGUtdjEuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiAgcWRuYXByby1mb2xkZXItaWNvbiDigJQgY29tcGlsZWQgZnJvbSBfZm9sZGVyLWljb24uc2Nzc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5xZG5hcHJvLWZvbGRlci1pY29uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICAvKiBBbmNob3IgZm9yIHRoZSBhYnNvbHV0ZWx5LXBvc2l0aW9uZWQgZmFsbGJhY2sgYmFkZ2UuIFdpdGhvdXQgdGhpcyxcbiAgICAgICB0aGUgYmFkZ2UgZXNjYXBlcyB0byB0aGUgbmVhcmVzdCBwb3NpdGlvbmVkIGFuY2VzdG9yIGluc3RlYWQgb2ZcbiAgICAgICBvdmVybGF5aW5nIHRoZSBpY29uIOKAlCBzYW1lIHJlYXNvbmluZyBhcyBxZG5hcHJvLWZpbGUtaWNvbi4gKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8qIEV4dC10ZXh0IGZhbGxiYWNrIGJhZGdlIOKAlCBISURERU4gYnkgZGVmYXVsdC4gVGhlIGNvbXBvbmVudCdzIEpTIGFkZHNcbiAgIGBxZG5hcHJvLWZvbGRlci1pY29uLW5vLWFzc2V0YCB0byB0aGUgaG9zdCBvbmx5IHdoZW4gQk9USCB0aGVcbiAgIHZhcmlhbnQtc3BlY2lmaWMgQU5EIHRoZSBcImNsb3NlZFwiIGZhbGxiYWNrIFNWRyBmYWlsIHRvIGxvYWQuICovXG4ucWRuYXByby1mb2xkZXItaWNvbiAucWRuYXByby1mb2xkZXItaWNvbi1iYWRnZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi5xZG5hcHJvLWZvbGRlci1pY29uLnFkbmFwcm8tZm9sZGVyLWljb24tbm8tYXNzZXQgLnFkbmFwcm8tZm9sZGVyLWljb24tYmFkZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWdyZXktMzAwKTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDApO1xuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDhweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB6LWluZGV4OiAwO1xufVxuXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tZm9sZGVyLWljb24ucWRuYXByby1mb2xkZXItaWNvbi1uby1hc3NldCAucWRuYXByby1mb2xkZXItaWNvbi1iYWRnZSB7XG4gICAgYmFja2dyb3VuZDogIzJlMzAzNjtcbiAgICBib3JkZXItY29sb3I6ICM1NjViNjY7XG4gICAgY29sb3I6ICNhNmFhYjM7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLXN0YXR1cy1iYWRnZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgV2hpdGUgcGlsbCBzdXJmYWNpbmcgZG9jdW1lbnQvZm9sZGVyIHN0YXR1cyBpbiB0aGUgUFdBOlxuLy8gIGhlYXJ0IChmYXZvcml0ZSksIGNoZWNrLWRlY2FncmFtIChkb3dubG9hZGVkIG9mZmxpbmUpIGFuZC9vclxuLy8gIHN0YXItZm91ci1wb2ludHMgKG5ldyAvIHVucmVhZCkuIEVhY2ggaWNvbiBzaG93cyBpbmRlcGVuZGVudGx5LlxuLy8gIE5lc3RlZCBxZG5hcHJvLWljb24gaW5zdGFuY2VzIGNhcnJ5IHRoZSBnbHlwaHM7IHRoaXMgZmlsZSBvbmx5XG4vLyAgc2l6ZXMgdGhlIHBpbGwgYW5kIGNvbG91cnMgdGhlIGljb25zLlxuLy9cbi8vICBGTEFUIENTUyAoZnVsbHktcXVhbGlmaWVkIHNlbGVjdG9ycywgbm8gbmVzdGluZykgc28gdGhlIFBXQSBzeW5jXG4vLyAgKC8vLXN0cmlwIGNvcHkgaW50byBjb21wb25lbnRzLXYyL3FkbmEtc3RhdHVzLWJhZGdlLmNzcykgc3RheXMgdmFsaWQuXG4vL1xuLy8gIFFETkEgdG9rZW5zIHVzZWQ6XG4vLyAgICAtLWMtcHVycGxlLTUwICAgICAgI2U2ZTlmZiAgIDFweCBib3JkZXIgKHNvZnRlbmVkIGZyb20gcHVycGxlLTEwMCDigJQgS2ltIDIyLjA3LjIwMjYpXG4vLyAgICAtLWMtYWN0aW9uLTUwMCAgICAgIzQ2NTJmMyAgIG9mZmxpbmUgLyBjaGVjay1kZWNhZ3JhbSBpY29uXG4vLyAgICAtLWMtZmF2b3JpdGUtaGVhcnQgI2ZmNGQ2YSAgIGhlYXJ0IGljb25cbi8vICAgIC0tYy1wdXJwbGUtNTAwICAgICAjNDA0OTlhICAgdW5yZWFkIC8gc3F1YXJlLXJvdW5kZWQtYmFkZ2Utb3V0bGluZSBpY29uXG4vLyAgICB3aGl0ZSAgICAgICAgICAgICAgI2ZmZmZmZiAgIGZpbGwgKEZpZ21hIEZGRkZGRilcbi8vXG4vLyAgU2l6ZXMgKEZpZ21hKTpcbi8vICAgIGxhcmdlIChkZWZhdWx0KSAgaWNvbnMgMjRweCAtPiAzMnB4IHRhbGwsIDY0cHggd2lkZSB3LyB0d28gaWNvbnNcbi8vICAgIHNtYWxsICAgICAgICAgICAgaWNvbnMgMjBweCAtPiAyOHB4IHRhbGwsIDU2cHggd2lkZSB3LyB0d28gaWNvbnNcbi8vICAgIHBhZGRpbmcgNHB4LCBnYXAgOHB4LCByYWRpdXMgMjRweCAoZnVsbHkgcm91bmRlZCBwaWxsKSwgY2xpcCBjb250ZW50LlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5xZG5hcHJvLXN0YXR1cy1iYWRnZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAgIC8qIGtlZXBzIHRoZSAxcHggYm9yZGVyIFwiaW5zaWRlXCIgKEZpZ21hIHN0cm9rZTogSW5zaWRlKSAqL1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLXB1cnBsZS01MCwgI2U2ZTlmZik7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47ICAgICAgICAgLyogRmlnbWEgXCJDbGlwIGNvbnRlbnRcIiAqL1xufVxuXG4vKiBIaWRkZW4gd2hlbiBubyBzdGF0dXMgaXMgc2V0IOKAlCBjb2xsYXBzZSBvdXQgb2YgZmxvdy4gKi9cbi5xZG5hcHJvLXN0YXR1cy1iYWRnZVtoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBJY29uIGNvbG91cnMuIHFkbmFwcm8taWNvbiByZW5kZXJzIE1ESSBTVkcgd2l0aCBmaWxsOiBjdXJyZW50Q29sb3IsXG4gICBzbyBzZXR0aW5nIGBjb2xvcmAgb24gdGhlIG5lc3RlZCBlbGVtZW50IHRpbnRzIHRoZSBnbHlwaC4gKi9cbi5xZG5hcHJvLXN0YXR1cy1iYWRnZSAuc3RhdHVzLWJhZGdlLWhlYXJ0IHtcbiAgICBjb2xvcjogdmFyKC0tYy1mYXZvcml0ZS1oZWFydCwgI2ZmNGQ2YSk7XG59XG5cbi5xZG5hcHJvLXN0YXR1cy1iYWRnZSAuc3RhdHVzLWJhZGdlLW9mZmxpbmUge1xuICAgIGNvbG9yOiB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xufVxuXG4ucWRuYXByby1zdGF0dXMtYmFkZ2UgLnN0YXR1cy1iYWRnZS11bnJlYWQge1xuICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIGludGVyYWN0aXZlIHZhcmlhbnQgKDI4LjA3LjIwMjYsIFBXQSBkb2N1bWVudHMgYmFkZ2UtaW5mbyBkaWFsb2cpICAqL1xuLyogT3B0LWluOiByb2xlPVwiYnV0dG9uXCIgKyB0YWJpbmRleCBpcyBzZXQgYnkgdGhlIEpTLiBQdXJlbHkgdmlzdWFsICAgKi9cbi8qIGFkZGl0aW9ucyBoZXJlIOKAlCBob3Zlci9hY3RpdmUgZmVlZGJhY2sgKyB0aGUgaW52aXNpYmxlIGhpdC1hcmVhLiAgICovXG4vKiBXSVRIT1VUIFtpbnRlcmFjdGl2ZV0gbm9uZSBvZiB0aGlzIGFwcGxpZXMsIHNvIHRoZSBkZWZhdWx0IHBpbGwgICAgKi9cbi8qIHN0YXlzIHBpeGVsLWZvci1waXhlbCB3aGF0IGl0IHdhcyBiZWZvcmUgdGhpcyB2YXJpYW50IGV4aXN0ZWQuICAgICAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ucWRuYXByby1zdGF0dXMtYmFkZ2Uuc3RhdHVzLWJhZGdlLWludGVyYWN0aXZlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7ICAgLyogY29udGFpbmluZyBibG9jayBmb3IgdGhlIDo6YWZ0ZXIgaGl0LWFyZWEgKi9cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLCBib3JkZXItY29sb3IgMTIwbXMgZWFzZSwgdHJhbnNmb3JtIDgwbXMgZWFzZS1vdXQ7XG59XG5cbi5xZG5hcHJvLXN0YXR1cy1iYWRnZS5zdGF0dXMtYmFkZ2UtaW50ZXJhY3RpdmU6aG92ZXIge1xuICAgIC8qIFN1YnRsZSDigJQgcmV1c2UgdGhlIHNhbWUgc29mdCBwdXJwbGUgd2FzaCB0aGUgcmVzdCBvZiB0aGUgbGlicmFyeVxuICAgICAgIHVzZXMgZm9yIGhvdmVyLW9uLXdoaXRlIChxZG5hcHJvLWdyaWQtdGlsZSdzIC0tcWd0LWJnLWhvdmVyIHRva2VuKS4gKi9cbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQtaG92ZXIsICNmN2Y4ZmEpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtMTAwLCAjYzBjNWZmKTtcbn1cblxuLnFkbmFwcm8tc3RhdHVzLWJhZGdlLnN0YXR1cy1iYWRnZS1pbnRlcmFjdGl2ZTphY3RpdmUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NCk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDcwbXMgZWFzZS1vdXQ7XG59XG5cbi5xZG5hcHJvLXN0YXR1cy1iYWRnZS5zdGF0dXMtYmFkZ2UtaW50ZXJhY3RpdmU6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG5cbi5xZG5hcHJvLXN0YXR1cy1iYWRnZS5zdGF0dXMtYmFkZ2UtaW50ZXJhY3RpdmU6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtcmluZyksIDAgMCAwIDZweCB2YXIoLS1mb2N1cy1nbG93KTtcbn1cblxuLyogSW52aXNpYmxlIGhpdC1hcmVhLCBOT1QgYSBiaWdnZXIgcGlsbC4gVGhlIHBpbGwgaXRzZWxmIGtlZXBzIHRoZSBGaWdtYVxuICAgc2l6ZSAoMjhweCB0YWxsIGF0IHNpemU9XCJzbWFsbFwiKSBiZWNhdXNlIGl0IHNpdHMgcmlnaHQgbmV4dCB0byBvdGhlclxuICAgY29udHJvbHMg4oCUIGEgMy1kb3QgbWVudSBidXR0b24gaW4gYSBsaXN0IHJvdywgb3IgdGhlIGNvcm5lciBvZiBhIGdyaWRcbiAgIHRpbGUg4oCUIGFuZCBhIGxhcmdlIGhpdC1hcmVhIHdvdWxkIGVhdCBpbnRvIHRob3NlIG5laWdoYm91cnMuIEEgZmxhdFxuICAgNnB4LXBlci1zaWRlIGluc2V0IGxhbmRzIHNpemU9XCJzbWFsbFwiICgyOHB4IHRhbGwpIG9uIGEgfjQwcHggdGFwcGFibGVcbiAgIHNxdWFyZSAodGhlIG1pbmltdW0gdG91Y2ggdGFyZ2V0KSB3aXRob3V0IHJlYWNoaW5nIGZhciBlbm91Z2ggdG9cbiAgIG92ZXJsYXAgYW55dGhpbmcgYmVzaWRlIGl0OyBzaXplPVwibGFyZ2VcIiAoMzIvMzZweCB0YWxsKSBjbGVhcnMgNDBweFxuICAgd2l0aCB0aGUgc2FtZSA2cHgsIGtlcHQgZm9yIG9uZSBjb25zaXN0ZW50IHJ1bGUuICovXG4ucWRuYXByby1zdGF0dXMtYmFkZ2Uuc3RhdHVzLWJhZGdlLWludGVyYWN0aXZlOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IC02cHg7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLXN0YXR1cy10cmFja1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgQ29tcGFjdCBzZWdtZW50ZWQgc3RhdHVzIHRyYWNrIGZvciBhIGxpc3Qgcm93LiBaaWUgZGUgZG9jYmxvY2sgaW5cbi8vICB3ZWIvanMvY29tcG9uZW50cy92Mi9zdGF0dXMtdHJhY2svcWRuYS1zdGF0dXMtdHJhY2suanMgdm9vciB3YWFyb20gZGl0XG4vLyAgY29tcG9uZW50IGJlc3RhYXQgZW4gd2Fhcm9tIHFkbmFwcm8tcHJvZ3Jlc3MgbmlldCB2b2xkZWVkLlxuLy9cbi8vICBBbGxlIGtsZXVyZW4gdmlhIGRlc2lnbi10b2tlbnMuIERlIHZpZXIgdG9uZW4gc3R1cmVuIHR3ZWUgY3VzdG9tXG4vLyAgcHJvcGVydGllcyBhYW4gKC0tc3QtZmlsbCBlbiAtLXN0LXRleHQpOyBkZSByZXN0IHZhbiBoZXQgYmVzdGFuZCB3ZWV0XG4vLyAgbmlldHMgdmFuIGtsZXVyIGFmLiBEYWFyZG9vciBrbG9wdCBkZSBkb25rZXJlIG1vZHVzIHZhbnplbGY6IGRlIHRva2Vuc1xuLy8gIGRyYWFpZW4gb20sIGRpdCBiZXN0YW5kIG5pZXQuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnFkbmFwcm8tc3RhdHVzLXRyYWNrIHtcbiAgICAvLyBTdGFuZGFhcmR0b29uLiBFbGtlIFtkYXRhLXRvbmVdIGhpZXJvbmRlciB6ZXQgYWxsZWVuIGRlemUgdHdlZSBvbS5cbiAgICAtLXN0LWZpbGw6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNWI0ZGQxKTtcbiAgICAtLXN0LXRleHQ6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gICAgLS1zdC1lbXB0eTogdmFyKC0tYy1ib3JkZXItc29mdCwgI2UzZTJmMCk7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIC8vIE5vb2l0IG1lZWdyb2VpZW4gbWV0IGRlIHJpajogZGl0IGlzIGVlbiBpbmRpY2F0b3IsIGdlZW4ga29sb20uXG4gICAgZmxleDogbm9uZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgJl9fYmFyIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogM3B4O1xuICAgIH1cblxuICAgICZfX3NlZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTJweDtcbiAgICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc3QtZW1wdHkpO1xuICAgICAgICAvLyBEZSBkdXVyIGhvb3J0IGJpaiBoZXQgbWljcm8tcmVnaXN0ZXIgKDEyMCB0b3QgMjUwbXMpLCBuaWV0IGJpaiBkZVxuICAgICAgICAvLyA1MjBtcyB2YW4gaGV0IGhhcnRqZTogZGV6ZSByaWogc3RhYXQgNjYga2VlciBvcCBoZXQgc2NoZXJtLlxuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE4MG1zIGVhc2UsIG9wYWNpdHkgMTgwbXMgZWFzZTtcblxuICAgICAgICAvLyBWZXJsb29wIG92ZXIgaGV0IHNwb29yLiBab25kZXIgZGl0IHppam4gdHdlZSBnZXZ1bGRlIHNlZ21lbnRlblxuICAgICAgICAvLyBhbGxlZW4gdGFscmlqa2VyIGRhbiDDqcOpbiwgbmlldCB6aWNodGJhYXIgdmVyZGVyOiBcInRvZWdld2V6ZW5cIiBlblxuICAgICAgICAvLyBcIm9wZW5cIiBrcmVnZW4gZXhhY3QgZGV6ZWxmZGUga2xldXIgKEtpbSAwOC4wOC4yMDI2KS4gLS1zdC1pIGlzIGRlXG4gICAgICAgIC8vIHBvc2l0aWUgMC4uMSBkaWUgaGV0IGNvbXBvbmVudCBwZXIgc2VnbWVudCBtZWVnZWVmdDsgaGV0IGxhYXRzdGVcbiAgICAgICAgLy8gZ2V2dWxkZSBzZWdtZW50IGlzIGFsdGlqZCBoZXQgc3RlcmtzdCwgZHVzIGplIGxlZXN0IGRlIHZvb3J0Z2FuZ1xuICAgICAgICAvLyBvb2sgem9uZGVyIGRlIGJsb2tqZXMgdGUgdGVsbGVuLlxuICAgICAgICAvL1xuICAgICAgICAvLyBEZWtraW5nIGVuIG5pZXQgZWVuIHR3ZWVkZSBrbGV1ciwgd2FudCBkYW4gd2Vya3QgaGV0IHZlcmxvb3AgaW5cbiAgICAgICAgLy8gYmVpZGUgdGhlbWEnczogb3Agd2l0IHdvcmR0IGhldCBsaWNodGVyLCBvcCBkb25rZXIgZG9ua2VyZGVyLlxuICAgICAgICAmLmlzLWZpbGxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zdC1maWxsKTtcbiAgICAgICAgICAgIG9wYWNpdHk6IGNhbGMoMC40MiArIDAuNTggKiB2YXIoLS1zdC1pLCAxKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgY29sb3I6IHZhcigtLXN0LXRleHQpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB0b25lblxuICAgICZbZGF0YS10b25lPVwiZG9uZVwiXSB7XG4gICAgICAgIC0tc3QtZmlsbDogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCwgIzJjN2E1Yik7XG4gICAgICAgIC0tc3QtdGV4dDogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCwgIzJjN2E1Yik7XG4gICAgfVxuXG4gICAgLy8gXCJUZSBsYWF0XCIgaXMgaW4gaGV0IGRhdGFtb2RlbCBnZWVuIHN0YXR1cyBtYWFyIGVlbiBhZmxlaWRpbmcgb3BcbiAgICAvLyBsZWVzbW9tZW50LiBEYWFyb20ga2xldXJ0IGhpZXIgaGV0IFNQT09SLCBlbiB2ZXJzY2h1aWZ0IGRlIGhhbHRlIG5pZXQ6XG4gICAgLy8gamUgemlldCBub2cgc3RlZWRzIGhvZSB2ZXIgaGV0IGlzLCBwbHVzIGRhdCBoZXQgdGUgbGFhdCBpcy5cbiAgICAvL1xuICAgIC8vIFR3ZWUgendhYXJ0ZXMgdmFuIGhldHplbGZkZSBmZWl0LiBUZSBsYWF0IE1FVCBlZW4gZGF0dW0gZXJvcCBpcyBtaW5kZXJcbiAgICAvLyBhbGFybWVyZW5kIGRhbiB0ZSBsYWF0IHdhYXIgbmllbWFuZCBuYWFyIGtpamt0LCBlbiBlZW4gbXV1ciB2YW4gdW5pZm9ybVxuICAgIC8vIHJvb2QgdmVyYmVyZ3QgcHJlY2llcyBkYXQgdmVyc2NoaWwgKEtpbSAwOC4wOC4yMDI2KS5cbiAgICAvLyBIaWVyIGxvcGVuIHZ1bGxpbmcgZW4gdGVrc3QgQkVXVVNUIHVpdGVlbiwgZW4gZGF0IGlzIHByZWNpZXMgd2Fhcm9tXG4gICAgLy8gLS1zdC1maWxsIGVuIC0tc3QtdGV4dCB0d2VlIGxvc3NlIHByb3BlcnRpZXMgemlqbi5cbiAgICAvL1xuICAgIC8vIEhldCBwcm9ibGVlbTogLS1jLXNpZ25hbC1vcmFuZ2UtdGV4dCAoI2JjNmExZikgZW4gLS1jLXNpZ25hbC1yZWQtdGV4dFxuICAgIC8vICgjYzY1YTVhKSBoZWJiZW4gdnJpandlbCBkZXplbGZkZSBoZWxkZXJoZWlkLiBPcCA0cHggaG9nZSBibG9ramVzIGVuXG4gICAgLy8gMTJweCB0ZWtzdCB3YXJlbiB6ZSBuaWV0IHVpdCBlbGthYXIgdGUgaG91ZGVuIChLaW0gMDguMDguMjAyNikuXG4gICAgLy9cbiAgICAvLyBEZSBvcGxvc3Npbmcgc3BsaXRzdCBkZSByb2xsZW4uIERlIFNFR01FTlRFTiB6aWpuIGJsb2tqZXMsIGdlZW4gdGVrc3QsXG4gICAgLy8gZHVzIGRhYXIgbWFnIGVlbiBmZWwgYW1iZXIgZGF0IG9ubWlza2VuYmFhciBuYWFzdCByb29kIHN0YWF0LiBIZXQgTEFCRUxcbiAgICAvLyBpcyB3ZWwgdGVrc3QgZW4gbW9ldCBsZWVzYmFhciBibGlqdmVuIG9wIHdpdCwgZHVzIGRhdCBrcmlqZ3QgZGUgZG9ua2VyZVxuICAgIC8vIHZhcmlhbnQuIFNhbWVuOiBnb2VkIHRlIG9uZGVyc2NoZWlkZW4gZW4gZ29lZCB0ZSBsZXplbi5cbiAgICAmW2RhdGEtdG9uZT1cIndhcm5cIl0ge1xuICAgICAgICAtLXN0LWZpbGw6IHZhcigtLWMtd2Fybi15ZWxsb3ctNjAwLCAjZjU5ZTBiKTtcbiAgICAgICAgLS1zdC10ZXh0OiB2YXIoLS1jLXdhcm4tYW1iZXItNjAwLCAjYjQ1MzA5KTtcbiAgICB9XG5cbiAgICAmW2RhdGEtdG9uZT1cImxhdGVcIl0ge1xuICAgICAgICAtLXN0LWZpbGw6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYjgzNTNhKTtcbiAgICAgICAgLS1zdC10ZXh0OiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCwgI2I4MzUzYSk7XG4gICAgfVxuXG4gICAgLy8gVmVydmFsbGVuIHN0YWF0IG5hYXN0IGRlIHJlaXMuIE51bCBnZXZ1bGRlIHNlZ21lbnRlbiBsZWVzdCBhbHNcbiAgICAvLyBcImhldCBpcyBub29pdCBiZWdvbm5lblwiLCBlbiBkYXQga2xvcHQuXG4gICAgJltkYXRhLXRvbmU9XCJvZmZcIl0ge1xuICAgICAgICAtLXN0LWZpbGw6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCwgIzlhOWFiMCk7XG4gICAgICAgIC0tc3QtdGV4dDogdmFyKC0tYy10ZXh0LWRpc2FibGVkLCAjOWE5YWIwKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHRvZWdhbmtlbGlqa2hlaWRcbiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgICAgICAucWRuYXByby1zdGF0dXMtdHJhY2tfX3NlZyB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gcWRuYXByby1maWxlLXVwbG9hZCDigJQgYSBzZWxmLWNvbnRhaW5lZCB1cGxvYWQgY2FyZCAoaW5mbyBub3RlICsgZGFzaGVkIGRyb3Bcbi8vIHpvbmUgKyBjaG9zZW4tZmlsZSByb3cgKyBpbmxpbmUgZXJyb3IpLiBQb3J0ZWQgZnJvbSB0aGUgaW1wb3J0LWFjdGl2aXR5XG4vLyBtb2RhbCdzIHVwbG9hZCBibG9jayBzbyBhbnkgbW9kYWwgY2FuIHJldXNlIHRoZSBzYW1lIGZyaWVuZGx5IGZpbGUgcGlja2VyLlxuLy8gVmFsdWVzIG1pcnJvciB0aGF0IGFwcHJvdmVkIGRlc2lnbiAxOjE7IHRoZSBwaWNrIGJ1dHRvbiBtYXRjaGVzIHRoZSB2MlxuLy8gcHJpbWFyeS1wdXJwbGUgYnV0dG9uLlxuXG4ucWRuYXByby1maWxlLXVwbG9hZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vIC0tLSBPcHRpb25hbCBpbmZvIG5vdGUgKHB1cnBsZSkgLS0tXG4ucWRuYXByby1maWxlLXVwbG9hZF9fbm90ZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDhweDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtcHVycGxlLXNvZnQtMTIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG5cbiAgICAmW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG59XG4ucWRuYXByby1maWxlLXVwbG9hZF9fbm90ZS1pY29uIHsgZmxleC1zaHJpbms6IDA7IG1hcmdpbi10b3A6IDFweDsgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTsgfVxuLnFkbmFwcm8tZmlsZS11cGxvYWRfX25vdGUtdGV4dCBzdHJvbmcgeyBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUpOyB9XG5cbi8vIC0tLSBEcm9wIHpvbmUgKGRhc2hlZCkgLS0tXG4vLyBEdXJpbmcgYSBkcmFnIHRoZSBzdGF0aWMgZGFzaGVkIGJvcmRlciBpcyBzd2FwcGVkIGZvciB0aGUgU0FNRSBtYXJjaGluZy1hbnRzXG4vLyBvdmVybGF5IGFzIHFkbmFwcm8tZHJvcC16b25lIChkYXNoZWQgdmFyaWFudCk6IGFuIGFuaW1hdGVkIFNWRyA8cmVjdD4gcmlkZXNcbi8vIHRoZSBlZGdlICsgc29mdCBjb3JuZXIgcmFkaWFscyB0aW50IHRoZSBzdXJmYWNlLiBQdXJwbGUgPSB2YWxpZCwgcmVkID0gcmVqZWN0LlxuLnFkbmFwcm8tZmlsZS11cGxvYWRfX3pvbmUge1xuICAgIC8vIENvbG91cnMgKG1pcnJvciBxZG5hcHJvLWRyb3Atem9uZSdzIC0tZHotKiBzZXQpLlxuICAgIC0tZnUtYy1ib3JkZXI6ICAgICAgdmFyKC0tYy1wdXJwbGUtNTAwKTsgICAgICAgICAgICAgICAgICAvLyB2YWxpZCBtYXJjaGluZy1hbnRzICsgdGludCBiYXNlXG4gICAgLS1mdS1jLWJnLXRpbnQ6ICAgICByZ2JhKDcwLCA4MiwgMjQzLCAwLjA4KTsgIC8vIGNvcm5lciByYWRpYWxzICh2YWxpZClcbiAgICAtLWZ1LWMtcmVqZWN0OiAgICAgIHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0KTsgICAgICAgICAgICAgICAgICAvLyByZWplY3QgbWFyY2hpbmctYW50c1xuICAgIC0tZnUtYy1yZWplY3QtdGludDogcmdiYSgxOTgsIDkwLCA5MCwgMC4xMCk7ICAvLyBjb3JuZXIgcmFkaWFscyAocmVqZWN0KVxuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuY2hvciB0aGUgYWJzb2x1dGUgYW50cyBvdmVybGF5XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgcGFkZGluZzogMjhweCAxNnB4O1xuICAgIGJvcmRlcjogMnB4IGRhc2hlZCB2YXIoLS1jLWJvcmRlci10cmVlKTtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZC1ob3Zlcik7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMTQwbXMgZWFzZSwgYmFja2dyb3VuZCAxNDBtcyBlYXNlO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLXZpc2libGUgeyBib3JkZXItY29sb3I6IHZhcigtLWMtcHVycGxlLTMwMCk7IGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSk7IG91dGxpbmU6IG5vbmU7IH1cblxuICAgIC8vIEFjdGl2ZSAodmFsaWQpOiBoaWRlIHRoZSBzdGF0aWMgYm9yZGVyLCB0aW50IHRoZSBjb3JuZXJzLCBwYWludCArIHJ1biB0aGUgYW50cy5cbiAgICAmLmlzLWRyYWdvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IHRvcCBsZWZ0LCB2YXIoLS1mdS1jLWJnLXRpbnQpLCB0cmFuc3BhcmVudCA1NSUpLFxuICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgYm90dG9tIHJpZ2h0LCB2YXIoLS1mdS1jLWJnLXRpbnQpLCB0cmFuc3BhcmVudCA1NSUpO1xuICAgICAgICAtLWZ1LW1hcmNoLWNvbG9yOiB2YXIoLS1mdS1jLWJvcmRlcik7XG4gICAgfVxuICAgIC8vIFJlamVjdCAoYSBNSU1FLXR5cGVkIGRyYWcgdGhhdCBkb2Vzbid0IG1hdGNoIGBhY2NlcHRgKTogcmVkIGFudHMgKyB0aW50LlxuICAgICYuaXMtZHJhZ292ZXIuaXMtcmVqZWN0IHtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IHRvcCBsZWZ0LCB2YXIoLS1mdS1jLXJlamVjdC10aW50KSwgdHJhbnNwYXJlbnQgNTUlKSxcbiAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IGJvdHRvbSByaWdodCwgdmFyKC0tZnUtYy1yZWplY3QtdGludCksIHRyYW5zcGFyZW50IDU1JSk7XG4gICAgICAgIC0tZnUtbWFyY2gtY29sb3I6IHZhcigtLWZ1LWMtcmVqZWN0KTtcbiAgICB9XG59XG4ucWRuYXByby1maWxlLXVwbG9hZF9fem9uZS1pY29uIHsgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZC1wcCk7IGxpbmUtaGVpZ2h0OiAwOyB9XG5cbi8vIC0tLSBNYXJjaGluZy1hbnRzIG92ZXJsYXkgKFNWRykgLS0tXG4ucWRuYXByby1maWxlLXVwbG9hZF9fYW50cyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICAvLyBEZWZhdWx0IFNWRyBvdmVyZmxvdzpoaWRkZW4gY2xpcHMgdGhlIG91dGVyIGhhbGYgb2Ygc3Ryb2tlLXdpZHRoPTIsIGxlYXZpbmdcbiAgICAvLyBhIGNsZWFuIHJpbmcgb24gdGhlIGluc2lkZSBhbGlnbmVkIHdpdGggdGhlIHpvbmUncyBib3JkZXItcmFkaXVzLlxuICAgIGNvbG9yOiB0cmFuc3BhcmVudDsgICAgICAgICAgICAvLyBpbnZpc2libGUgdW50aWwgLS1mdS1tYXJjaC1jb2xvciBpcyBzZXQgKGFjdGl2ZSlcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgICAgICAgICAgLy8gY2xpY2tzIHBhc3MgdGhyb3VnaCB0byB0aGUgem9uZSAvIHBpY2sgYnV0dG9uXG59XG4ucWRuYXByby1maWxlLXVwbG9hZF9fYW50cy1yZWN0IHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDJweCk7XG4gICAgYW5pbWF0aW9uOiBxZG5hLWZ1LW1hcmNoIDEuNnMgbGluZWFyIGluZmluaXRlO1xufVxuLnFkbmFwcm8tZmlsZS11cGxvYWRfX3pvbmUuaXMtZHJhZ292ZXIgLnFkbmFwcm8tZmlsZS11cGxvYWRfX2FudHMge1xuICAgIGNvbG9yOiB2YXIoLS1mdS1tYXJjaC1jb2xvcik7ICAvLyBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiDihpIgcGFpbnRzIHRoZSBhbnRzXG59XG5cbkBrZXlmcmFtZXMgcWRuYS1mdS1tYXJjaCB7XG4gICAgdG8geyBzdHJva2UtZGFzaG9mZnNldDogLTEyOyB9XG59XG4ucWRuYXByby1maWxlLXVwbG9hZF9fdGl0bGUgeyBtYXJnaW46IDRweCAwIDA7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWMtY2hpcC1wdXJwbGUtdGV4dCk7IH1cbi5xZG5hcHJvLWZpbGUtdXBsb2FkX19vciAgICB7IG1hcmdpbjogMDsgZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tYy1ncmV5LTQwMCk7IH1cbi5xZG5hcHJvLWZpbGUtdXBsb2FkX19oaW50ICB7IG1hcmdpbjogNnB4IDAgMDsgZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tYy1ncmV5LTQwMCk7IH1cblxuLy8gLS0tIFBpY2sgYnV0dG9uIC0tLVxuLy8gVXNlcyB0aGUgcmVhbCA8cWRuYXByby1idXR0b24gdHlwZT1cInByaW1hcnktcHVycGxlXCIgc2l6ZT1cInNtYWxsXCI+IGNvbXBvbmVudCxcbi8vIHdoaWNoIGJyaW5ncyBpdHMgb3duIHN0eWxpbmcg4oCUIG5vIGJ1dHRvbiBydWxlcyBuZWVkZWQgaGVyZS4gVGhlIG1hcmtlciBjbGFzc1xuLy8gaXMgb25seSBmb3IgdGhlIEpTIHJlZiBsb29rdXAuXG4ucWRuYXByby1maWxlLXVwbG9hZF9fcGljayB7IGZsZXg6IDAgMCBhdXRvOyB9XG5cbi8vIC0tLSBDaG9zZW4tZmlsZSByb3cgLS0tXG4ucWRuYXByby1maWxlLXVwbG9hZF9fY2hvc2VuIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLXRvcDogMTRweDtcbiAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdC0yKTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG5cbiAgICAmW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG59XG4ucWRuYXByby1maWxlLXVwbG9hZF9fZmlsZS1pY29uIHsgZmxleC1zaHJpbms6IDA7IGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7IGxpbmUtaGVpZ2h0OiAwOyB9XG4ucWRuYXByby1maWxlLXVwbG9hZF9fZmlsZS1uYW1lIHsgZmxleDogMSAxIGF1dG87IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZhcigtLWMtY2hpcC1wdXJwbGUtdGV4dCk7IHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsgfVxuLnFkbmFwcm8tZmlsZS11cGxvYWRfX3JlbW92ZSB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMjhweDsgaGVpZ2h0OiAyOHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS00MDApO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEyMG1zIGVhc2UsIGNvbG9yIDEyMG1zIGVhc2U7XG5cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyKTsgY29sb3I6ICNjMzNhMzA7IH1cbn1cblxuLy8gLS0tIElubGluZSBlcnJvciAtLS1cbi5xZG5hcHJvLWZpbGUtdXBsb2FkX19lcnJvciB7XG4gICAgbWFyZ2luOiAxMnB4IDAgMDtcbiAgICBwYWRkaW5nOiA5cHggMTJweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1yZWQtc29mdCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1jaGlwLXJlZC1ob3Zlcik7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6IHZhcigtLWMtdGFnLWNyaXRpY2FsLXRleHQpO1xuXG4gICAgJltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxufVxuXG4vLyAtLS0gRGlzYWJsZWQgLS0tXG4ucWRuYXByby1maWxlLXVwbG9hZC5pcy1kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vLyAtLS0gRGFyayB0aGVtZSAobGlmdGVkIHB1cnBsZSwgc2FtZSBhcyBxZG5hcHJvLWRyb3Atem9uZSkgLS0tXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tZmlsZS11cGxvYWRfX3pvbmUge1xuICAgIC0tZnUtYy1ib3JkZXI6ICAgICAgI2E1YWNmZjtcbiAgICAtLWZ1LWMtYmctdGludDogICAgIHJnYmEoMTY1LCAxNzIsIDI1NSwgMC4xMCk7XG4gICAgLS1mdS1jLXJlamVjdDogICAgICAjZmJhYWFhO1xuICAgIC0tZnUtYy1yZWplY3QtdGludDogcmdiYSgyNTEsIDE3MCwgMTcwLCAwLjEwKTtcbn1cblxuLy8gLS0tIFJlZHVjZWQgbW90aW9uOiBrZWVwIHRoZSBkYXNoZWQgcmluZywgZHJvcCB0aGUgbW92ZW1lbnQgLS0tXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5xZG5hcHJvLWZpbGUtdXBsb2FkX19hbnRzLXJlY3QgeyBhbmltYXRpb246IG5vbmU7IH1cbn1cbiIsIi8vIHFkbmFwcm8tZmlsdGVyLXNoZWV0IOKAlCB0aHJlZS1zZWN0aW9uIGZpbHRlciBib2R5IGZvciBpbnNpZGUgYSBxZG5hcHJvLWJvdHRvbS1zaGVldFxuLy8gKFNvcnQgLyBGaWx0ZXIgLyBEaXNwbGF5KS4gRkxBVCBDU1Mgb24gcHVycG9zZTsgY29sb3Vycy9yYWRpaS9zcGFjaW5nIGFsbCBjb21lXG4vLyBmcm9tIHRoZSBkZXNpZ24tdG9rZW4gOnJvb3QgKHZhcigtLWMtKikgLyAtLXItKiAvIC0tcy0qKSDigJQgbm8gJC12YXJpYWJsZXMsIG5vXG4vLyBuZXN0ZWQgJiDigJQgc28gdGhpcyBmaWxlIGNhbiBiZSBjb3BpZWQgdmVyYmF0aW0gaW50byB0aGUgUFdBIHdpdGhvdXQgbmVlZGluZyB0aGVcbi8vIGNvbXBpbGVTY3NzIGZsYWcgb24gc3luYy4gRWRpdCBIRVJFLCB0aGVuIGBndWxwIHNhc3MtdjFgLlxuLy9cbi8vIExheW91dCBvbmx5LiBFdmVyeSByb3cgaW5zaWRlIGEgc2VjdGlvbiBpcyBhIHFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbiAob3IgYVxuLy8gcWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLWdyb3VwIC8gcGxhaW4tZGl2IGdyb3VwIGFyb3VuZCB0aGVtKSDigJQgdGhpcyBmaWxlXG4vLyBuZXZlciByZXN0eWxlcyB0aG9zZSwgaXQgb25seSBsYXlzIG91dCB0aGUgc2VjdGlvbiB3cmFwcGVyLCB0aGUgaGVhZGluZyBhbmQgdGhlXG4vLyBmb290ZXIgY2xlYXItYnV0dG9uIHJvdy5cblxuLnFkbmFwcm8tZmlsdGVyLXNoZWV0LWJvZHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXMtNik7XG59XG5cbi5xZG5hcHJvLWZpbHRlci1zaGVldC1ib2R5IC5mcy1zZWN0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1zLTIpO1xufVxuXG4ucWRuYXByby1maWx0ZXItc2hlZXQtYm9keSAuZnMtc2VjdGlvbi10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LW1lZGl1bSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICBwYWRkaW5nOiAwIHZhcigtLXMtMSk7XG59XG5cbi8vIFVpdGxlZyBvbmRlciBkZSBzZWN0aWVrb3AuIEtsZWluZXIgZW4gZ3JpanMsIHplbGZkZSB2ZXJob3VkaW5nIGFscyBkZSBzdWJ0aXRlbCB2YW5cbi8vIGRlIGJvdHRvbS1zaGVldCB6ZWxmLCB6b2RhdCBkZSB0d2VlIG5pZXQgbWV0IGVsa2FhciB2ZWNodGVuLlxuLmZzLXNlY3Rpb24tbm90ZSB7XG4gICAgbWFyZ2luOiAycHggMCA4cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG59XG5cbi8vIEZvb3RlciBjbGVhci1hbGwgYWN0aW9uLiBTaXRzIGluc2lkZSB0aGUgc2hlZXQncyBvd24gc2Nyb2xsYWJsZSBib2R5ICh0aGUgYmFzZVxuLy8gcWRuYXByby1ib3R0b20tc2hlZXQgdmFyaWFudCBoYXMgbm8gc2VwYXJhdGUgZm9vdGVyIHNsb3QsIG9ubHkgdGhlIGRpYWxvZy9jb25maXJtXG4vLyB2YXJpYW50IGRvZXMpLCBzbyBhIGhhaXJsaW5lICsgZXh0cmEgdG9wIGFpciBpcyB3aGF0IHNlcGFyYXRlcyBpdCBmcm9tIHRoZSBsYXN0XG4vLyBzZWN0aW9uIGluc3RlYWQgb2YgYSBoYXJkLWZpeGVkIGZvb3RlciBiYXIuXG4vLyBEZSB3aXMta25vcCBQTEFLVCBvbmRlcmFhbiAoS2ltLCAzMS4wNy4yMDI2OiBcImthbiBqZSBkaWUgYWxsZXMgd2lzc2VuIG9uZGVyaW4gc3RpY2t5XG4vLyB6ZXR0ZW4sIHpvZGF0IGplIGRpZSBhbHRpamQgc25lbCBrYW4gc2VsZWN0ZXJlbiBlbiBuaWV0IGhlbGVtYWFsIG5hYXIgYmVuZWRlbiBob2VmdCB0ZVxuLy8gc2Nyb2xsZW5cIikuIEdlbGR0IGluIGJlaWRlIHZvcm1lbjogaW4gZGUgcG9wb3ZlciBpcyBkaXQgYmxvayB6ZWxmIGRlIHNjcm9sbGVyICh6aWVcbi8vIHZlcmRlcm9wKSwgaW4gZGUgYm90dG9tIHNoZWV0IGlzIGRhdCBkZSAuYnMtYm9keSBlcmJvdmVuLCBlbiBzdGlja3kgcGFrdCBpbiBiZWlkZVxuLy8gZ2V2YWxsZW4gZGUgZWVyc3RlIHNjcm9sbGVuZGUgdm9vcm91ZGVyLlxuLy9cbi8vIFR3ZWUgZGluZ2VuIGRpZSBlciBiaWogaG9yZW4gZW4gZGllIGplIG5pZXQgbWFnIHdlZ2xhdGVuOlxuLy8gLSBlZW4gZWlnZW4gQUNIVEVSR1JPTkQsIGFuZGVycyBzY3JvbGxlbiBkZSBvcHRpZXJpamVuIHppY2h0YmFhciBvbmRlciBkZSBrbm9wIGRvb3I7XG4vLyAtIHBhZGRpbmcgT05ERVIgZGUga25vcCBlbiBuaWV0IGFsbGVlbiBlcmJvdmVuLCB3YW50IGRlIGtub3AgaXMgbnUgZGUgb25kZXJrYW50IHZhblxuLy8gICBoZXQgemljaHRiYXJlIGdlYmllZCBlbiB6b3UgYW5kZXJzIHRlZ2VuIGRlIHJhbmQgcGxha2tlbi5cbi8vXG4vLyBHRUVOIG5lZ2F0aWV2ZSB6aWptYXJnZXMgb20gaGV0IHdpdHRlIHZsYWsgYnJlZGVyIHRlIG1ha2VuIGRhbiBkZSBpbmhvdWQsIGVuIGRhdCBpc1xuLy8gZ2Vwcm9iZWVyZCBlbiB0ZXJ1Z2dlZHJhYWlkICgzMS4wNy4yMDI2LCBpbiBlZW4gaGVhZGxlc3MgQ2hyb21lIGdlemllbik6IGhldCBsZXZlcmRlXG4vLyBlZW4gSE9SSVpPTlRBTEUgU0NST0xMQkFMSyBvbmRlcmFhbiBoZXQgcGFuZWVsIG9wLiBEZSByZWRlbiBkYXQgemUgb29rIG5pZXQgbm9kaWcgemlqbjpcbi8vIGRlIGx1Y2h0IGxpbmtzIGVuIHJlY2h0cyAoOHB4IGJpaiBkZSBib3R0b20gc2hlZXQsIDZweCBiaWogZGUgcG9wb3ZlcikgaGFuZ3QgYWFuIGhldFxuLy8gUEFORUVMIGVuIHZhbHQgYnVpdGVuIGhldCBnZWJpZWQgZGF0IHNjcm9sbHQuIERlIGtub3AgaXMgZHVzIHBlciBkZWZpbml0aWUgYWwgZXZlblxuLy8gYnJlZWQgYWxzIGFsbGVzIHdhdCBlciBvbmRlcmRvb3Iga2FuIHNjaHVpdmVuLlxuLnFkbmFwcm8tZmlsdGVyLXNoZWV0LWJvZHkgLmZzLWZvb3RlciB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogMTtcbiAgcGFkZGluZzogdmFyKC0tcy00KSAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmZmZmYpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdC0yLCAjZTZlOWVmKTtcbn1cblxuLnFkbmFwcm8tZmlsdGVyLXNoZWV0LWJvZHkgLmZzLWZvb3RlciBxZG5hcHJvLWJ1dHRvbiB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vLyDilIDilIAgUE9QT1ZFUi1TVEFORCAoMzEuMDcuMjAyNiwgS2ltOiBcIm9wIGlQYWQgbW9ldCBkaXQgZ2VlbiBib3R0b20gc2hlZXQgemlqbiBtYWFyIGVlblxuLy8gcG9wb3ZlclwiKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFplbGZkZSBpbmhvdWQsIGFuZGVyIG9taHVsc2VsOiBxZG5hLWZpbHRlci1zaGVldC5qcyBib3V3dCBlZW4gcWRuYXByby1wb3BvdmVyIGluXG4vLyBwbGFhdHMgdmFuIGVlbiBxZG5hcHJvLWJvdHRvbS1zaGVldCB6b2RyYSBvcGVuKCkgZWVuIGFua2VyIG1lZWtyaWpndCwgZW4gemV0XG4vLyBkYXRhLWZzLXBvcCBvcCBkYXQgcGFuZWVsLiBBbGxlZW4gdHdlZSBkaW5nZW4gZGllIGRlIHNoZWV0IG5pZXQgbm9kaWcgaGFkOlxuLy9cbi8vIDEuIEVlbiBCUkVFRFRFLiBFZW4gYm90dG9tIHNoZWV0IGlzIHpvIGJyZWVkIGFscyBoZXQgc2NoZXJtOyBlZW4gcG9wb3ZlciBzY2hhYWx0XG4vLyAgICBuYWFyIHppam4gaW5ob3VkLCBlbiBkZSBvcHRpZXJpamVuIGRhYXJpbiB6aWpuIGxvcyB2YW4gZWxrYWFyIHpvIGJyZWVkIGFscyBodW5cbi8vICAgIGVpZ2VuIHRla3N0LiBab25kZXIgZGV6ZSByZWdlbCB3b3JkdCBoZXQgcGFuZWVsIGR1cyB6byBicmVlZCBhbHMgaGV0IGxhbmdzdGVcbi8vICAgIGxhYmVsIGVuIHZlcnNwcmluZ3QgaGlqIHBlciB0YWFsLlxuLy8gMi4gRWVuIE1BWElNVU0gSE9PR1RFIG1ldCBlaWdlbiBzY3JvbGwuIERlIHZpZXIgc2VjdGllcyBzYW1lbiB6aWpuIGhvZ2VyIGRhbiBlZW5cbi8vICAgIGlQYWQtdmVuc3RlciBpbiBsaWdnZW5kZSBzdGFuZCwgZW4gZWVuIHBvcG92ZXIgaGVlZnQgZ2VlbiBlaWdlbiBzY3JvbGw6IGhpalxuLy8gICAgcG9zaXRpb25lZXJ0IHppY2ggYm92ZW4gb2Ygb25kZXIgaGV0IGFua2VyIGVuIGxvb3B0IGFuZGVycyBnZXdvb24gdmFuIGhldCBzY2hlcm0uXG4vLyAgICBEZSA3MnZoIGxhYXQgYm92ZW4gZW4gb25kZXIgcnVpbXRlIHpvZGF0IGhldCBwYW5lZWwgbmlldCB0ZWdlbiBkZSByYW5kZW4gcGxha3QuXG4ucWRuYXByby1wb3BvdmVyW2RhdGEtZnMtcG9wXSB7XG4gIHdpZHRoOiAzNDBweDtcbiAgbWF4LXdpZHRoOiA5MnZ3O1xufVxuXG4ucWRuYXByby1wb3BvdmVyW2RhdGEtZnMtcG9wXSAucWRuYXByby1maWx0ZXItc2hlZXQtYm9keSB7XG4gIG1heC1oZWlnaHQ6IDcydmg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLWNvbXBvc2l0aW9uLWJhclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgWmllIGRlIGRvY2Jsb2NrIGluIHdlYi9qcy9jb21wb25lbnRzL3YyL2NvbXBvc2l0aW9uLWJhci9cbi8vICBxZG5hLWNvbXBvc2l0aW9uLWJhci5qcyB2b29yIHdhYXJvbSBkaXQgbmFhc3QgcWRuYXByby1wcm9ncmVzcyBiZXN0YWF0LlxuLy9cbi8vICBEZXplbGZkZSB0b29uLW5hbWVuIGFscyBxZG5hcHJvLXN0YXR1cy10cmFjaywgbWV0IGRlemVsZmRlIHRva2VucyBlcmFjaHRlci5cbi8vICBFZW4gcGFnaW5hIGRpZSBhbGxlYmVpIGdlYnJ1aWt0IG1hZyBkZSBsZXplciBnZWVuIHR3ZWUga2xldXJzeXN0ZW1lblxuLy8gIGxlcmVuLiBBbGxlIGtsZXVyZW4gdmlhIGRlc2lnbi10b2tlbnMsIGR1cyBkb25rZXJlIG1vZHVzIHZvbGd0IHZhbnplbGYuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnFkbmFwcm8tY29tcG9zaXRpb24tYmFyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxleDogbm9uZTtcbiAgICB3aWR0aDogdmFyKC0tY2ItdywgMTIwcHgpO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuXG4gICAgJl9fdHJhY2sge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1jYi1oLCA2cHgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgLy8gRGUgbGVnZSBzdGFhdCBpcyBkZSByZXN0IHZhbiBkZSBiYWxrOiBnZWVuIHN0dWsgdm9vciBcIm5pZXRzXCIsIG1hYXJcbiAgICAgICAgLy8gZWVuIHNwb29yIGRhdCB6aWNodGJhYXIgbm9nIG5pZXQgZ2V2dWxkIGlzLlxuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvcmRlci1zb2Z0LCAjZTNlMmYwKTtcbiAgICB9XG5cbiAgICAmX19wYXJ0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IHZhcigtLWNiLXBhcnQsIDAlKTtcbiAgICAgICAgLy8gR3JvZWllbiBlbiBrcmltcGVuIG1hZyBqZSB6aWVuOiBkYXQgaXMgcHJlY2llcyBkZSBiZXdlZ2luZyB3YWFyIGRlXG4gICAgICAgIC8vIGJhbGsgdm9vciBiZWRvZWxkIGlzLiBNaWNyby1yZWdpc3RlciwgbmlldCBkZSA1MjBtcyB2YW4gaGV0IGhhcnRqZS5cbiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMjIwbXMgY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpO1xuXG4gICAgICAgICZbZGF0YS10b25lPVwiZG9uZVwiXSAgICB7IGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLWdyZWVuLXRleHQsICM0MjhiNmUpOyB9XG4gICAgICAgICZbZGF0YS10b25lPVwid2FyblwiXSAgICB7IGJhY2tncm91bmQ6IHZhcigtLWMtd2Fybi15ZWxsb3ctNjAwLCAjZjU5ZTBiKTsgfVxuICAgICAgICAmW2RhdGEtdG9uZT1cImxhdGVcIl0gICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCwgI2M2NWE1YSk7IH1cbiAgICAgICAgJltkYXRhLXRvbmU9XCJpbmZvXCJdICAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtYmx1ZS10ZXh0LCAjNmE4YWI0KTsgfVxuICAgICAgICAmW2RhdGEtdG9uZT1cIm11dGVkXCJdICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMzAwLCAjY2ZkMGRkKTsgfVxuICAgICAgICAmW2RhdGEtdG9uZT1cImRlZmF1bHRcIl0geyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzViNGRkMSk7IH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgICAgICAucWRuYXByby1jb21wb3NpdGlvbi1iYXJfX3BhcnQge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8tY29udGV4dC1tZW51XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBQb3NpdGlvbmluZyBsYXllciBvbmx5IOKAlCBvcGVucyBhIHFkbmFwcm8tbWVudSBhdCBhbiBhcmJpdHJhcnlcbi8vICB2aWV3cG9ydCBjb29yZGluYXRlIChhIHJpZ2h0LWNsaWNrIHBvaW50KS4gRXZlcnkgcGl4ZWwgb2YgaG93IHRoZVxuLy8gIHBhbmVsIGFuZCBpdHMgcm93cyBMT09LIGNvbWVzIGZyb20gcWRuYXByby1tZW51ICsgcWRuYXByby1tZW51LWl0ZW07XG4vLyAgdGhpcyBmaWxlIGRvZXMgbm90IHJlcGVhdCBhbnkgb2YgdGhlaXIgYmFja2dyb3VuZC9ib3JkZXIvc2hhZG93L1xuLy8gIHBhZGRpbmcvdHlwb2dyYXBoeSBydWxlcy5cbi8vXG4vLyAgRkxBVCBvbiBwdXJwb3NlIChubyAkIHZhcmlhYmxlcywgbm8gbmVzdGVkICYpIOKAlCBzYW1lIHJlYXNvblxuLy8gIF9tZW51LnNjc3MgaXMgd3JpdHRlbiB0aGlzIHdheTogaXQgbGV0cyB0aGUgc3luYy10by1hcHAgcGF0aCBjb3B5XG4vLyAgdGhpcyBmaWxlIGFzIHBsYWluIENTUyB3aXRob3V0IG5lZWRpbmcgdGhlIGNvbXBpbGVTY3NzIGZsYWcuXG4vL1xuLy8gIFNDT1BFLXB3YS1pbmJveC5tZCBkZWNpc2lvbiAyNCAobGFwdG9wLW9ubHkgcm93IHJpZ2h0LWNsaWNrIG1lbnUpLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5xZG5hcHJvLWNvbnRleHQtbWVudSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDEwMDI7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ucWRuYXByby1jb250ZXh0LW1lbnUuaXMtb3BlbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLWZvcm0tY2FyZCAtIG1vYmlsZS1hcHAgZnJhbWUgZm9yIE9ORSBmb3JtIHNjcmVlblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgVGl0bGVkIGNhcmQgaG9sZGluZyB0aGUgYXBwIHJ1bnRpbWUncyBxdWVzdGlvbiBjb250ZW50IChjaGlsZCBET00sXG4vLyAgbmV2ZXIgcmUtcmVuZGVyZWQgYnkgdGhpcyBjb21wb25lbnQpLCB3aXRoIGFuIG9wdGlvbmFsIGhlYWRlciBpbWFnZSxcbi8vICBhbiBvcHRpb25hbCBcIm4vdG90YWxcIiBwcm9ncmVzcyBwaWxsICsgZmlsbCBiYXIsIGFuZCBhIHByZXYvbmV4dCBmb290ZXIuXG4vL1xuLy8gIEhlYWRlciBmb2xsb3dzIHRoZSBzdXJ2ZXkncyBSVU5USU1FIHRoZW1lIGNvbG91ciAoLS10aGVtZS1idG4tY29sb3IsIHNldCBieSB0aGVcbi8vICBQV0EgcGVyLWNoZWNrbGlzdCB0aGVtZSAtIHNlZSBwaG90by5qcydzIHJlYWQgb2YgaXQgYW5kIDAtY29yZS5qcydzIHNldFByb3BlcnR5IG9uXG4vLyAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSwgZmFsbGluZyBiYWNrIHRvIHRoZSBmbG93LWVkaXRvciAvIHNpZGViYXIgcHVycGxlXG4vLyAgKC0tYy1zaWRlYmFyLWJnLCAjM2E0MjkwKSBmb3IgY29uc3VtZXJzIHRoYXQgbmV2ZXIgc2V0IGEgdGhlbWUgKGVkaXRvciBwcmV2aWV3LFxuLy8gIGJvMiBsaWJyYXJ5IHByZXZpZXcpLiBSb3VuZGVkIGNhcmQsIHNvZnQgc2hhZG93LCB3aGl0ZSBib2R5LlxuLy9cbi8vICBIZWFkZXIgdGV4dCBzdGF5cyB3aGl0ZS90cmFuc2x1Y2VudC13aGl0ZSByZWdhcmRsZXNzIG9mIHRoZSB0aGVtZSBjb2xvdXIgLSBmaW5lXG4vLyAgZm9yIHRoZSBkYXJrL21pZC1zYXR1cmF0aW9uIGNvbG91cnMgdGhlIHRoZW1lIHBpY2tlciBvZmZlcnMgdG9kYXkuIEZMQUdHRUQsIG5vdFxuLy8gIHNvbHZlZCBoZXJlOiBhIHZlcnkgTElHSFQgdGhlbWUgY29sb3VyIHdvdWxkIGZhaWwgY29udHJhc3QgYWdhaW5zdCB3aGl0ZSB0ZXh0IC1cbi8vICBhIHByZS1leGlzdGluZyBjb25jZXJuIHNoYXJlZCBieSBldmVyeSBvdGhlciAtLXRoZW1lLWJ0bi0qIGNvbnN1bWVyIGluIHRoZSBQV0Fcbi8vICAoYnV0dG9ucywgYW5zd2VyIGNoaXBzKSwgbm90IHNvbWV0aGluZyB0aGlzIGNoYW5nZSBhdHRlbXB0cyB0byBmaXguXG4vL1xuLy8gIC0tZm9ybS1jYXJkLW1heC1oZWlnaHQgKGRlZmF1bHQgbm9uZSkgY2FwcyB0aGUgYm9keSBoZWlnaHQgc28gaXRcbi8vICBzY3JvbGxzIGludGVybmFsbHkgaW5zdGVhZCBvZiBncm93aW5nIHRoZSBjYXJkIHBhc3QgdGhhdCBoZWlnaHQgLVxuLy8gIG5lZWRlZCBvbmNlIHF1ZXN0aW9uIGNvbnRlbnQgZ2V0cyB0YWxsIChtYW55IGJsb2NrcyAvIGxvbmcgb3B0aW9ucykuXG4vL1xuLy8gIEZMQVQgQ1NTIChubyBuZXN0aW5nKSBzbyBpdCBjYW4gYmUgc3luY2VkIHRvIHRoZSBQV0EgdmVyYmF0aW0sIGV4YWN0bHlcbi8vICBsaWtlIHFkbmFwcm8taW5mby1jYXJkIC8gcWRuYXByby1ldmVudC1jYXJkLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5xZG5hcHJvLWZvcm0tY2FyZCB7XG4gIC0tZm9ybS1jYXJkLWhlYWRlci1iZzogICAgdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCB2YXIoLS1jLXNpZGViYXItYmcsICMzYTQyOTApKTtcbiAgLS1mb3JtLWNhcmQtaGVhZGVyLXRleHQ6ICAjZmZmZmZmO1xuICAtLWZvcm0tY2FyZC1zdWJ0aXRsZTogICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7XG4gIC0tZm9ybS1jYXJkLWJvZHktYmc6ICAgICAgdmFyKC0tYy1iZy1jYXJkLCAjZmZmZmZmKTtcbiAgLS1mb3JtLWNhcmQtYm9yZGVyOiAgICAgICB2YXIoLS1jLWJvcmRlci1jYXJkLCAjZTFlM2U2KTtcbiAgLS1mb3JtLWNhcmQtcmFkaXVzOiAgICAgICB2YXIoLS1yLWNhcmQsIDE2cHgpO1xuICAtLWZvcm0tY2FyZC1tYXgtaGVpZ2h0OiAgIG5vbmU7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNDIwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1mb3JtLWNhcmQtcmFkaXVzKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1jYXJkLWJvZHktYmcpO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctY2FyZCwgMCAxcHggMnB4IHJnYmEoMjAsIDI1LCA4MCwgMC4wNCksIDAgNHB4IDE2cHggcmdiYSgyMCwgMjUsIDgwLCAwLjA4KSk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1mb250LWZhbWlseSwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcbn1cblxuLy8gLS0tIEhlYWRlciAtLS1cbi5xZG5hcHJvLWZvcm0tY2FyZF9faGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA2cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDIwcHggMjBweCAxOHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1mb3JtLWNhcmQtaGVhZGVyLWJnKTtcbiAgY29sb3I6IHZhcigtLWZvcm0tY2FyZC1oZWFkZXItdGV4dCk7XG59XG5cbi8vIHN0YXJ0L2ZpbmlzaDogbW9yZSBnZW5lcm91cyBwYWRkaW5nICsgY2VudGVyZWQgdGl0bGUgLSBzdWJ0bGUsIHRva2VuLWJhc2VkXG4ucWRuYXByby1mb3JtLWNhcmQtLWNlbGVicmF0b3J5IC5xZG5hcHJvLWZvcm0tY2FyZF9faGVhZGVyIHtcbiAgcGFkZGluZzogMzJweCAyNHB4IDI2cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnFkbmFwcm8tZm9ybS1jYXJkX19pbWFnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBsaW5lLWhlaWdodDogMDtcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xufVxuLnFkbmFwcm8tZm9ybS1jYXJkX19pbWFnZVtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLnFkbmFwcm8tZm9ybS1jYXJkX19pbWFnZS1pbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDE2MHB4O1xuICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cblxuLnFkbmFwcm8tZm9ybS1jYXJkX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTlweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgY29sb3I6IHZhcigtLWZvcm0tY2FyZC1oZWFkZXItdGV4dCk7XG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xufVxuLnFkbmFwcm8tZm9ybS1jYXJkLS1jZWxlYnJhdG9yeSAucWRuYXByby1mb3JtLWNhcmRfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAyMnB4O1xufVxuXG4ucWRuYXByby1mb3JtLWNhcmRfX3N1YnRpdGxlIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMS40O1xuICBjb2xvcjogdmFyKC0tZm9ybS1jYXJkLXN1YnRpdGxlKTtcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG59XG4ucWRuYXByby1mb3JtLWNhcmRfX3N1YnRpdGxlW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG5cbi8vIC0tLSBQcm9ncmVzcyBpbmRpY2F0b3IgKHBpbGwgKyB0aGluIGZpbGwgYmFyKSAtLS1cbi5xZG5hcHJvLWZvcm0tY2FyZF9fcHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDJweDtcbn1cbi5xZG5hcHJvLWZvcm0tY2FyZF9fcHJvZ3Jlc3NbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLnFkbmFwcm8tZm9ybS1jYXJkX19wcm9ncmVzcy1waWxsIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHBhZGRpbmc6IDJweCA5cHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItcGlsbCwgOTk5cHgpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAxZW07XG4gIGNvbG9yOiB2YXIoLS1mb3JtLWNhcmQtaGVhZGVyLXRleHQpO1xufVxuXG4ucWRuYXByby1mb3JtLWNhcmRfX3Byb2dyZXNzLXRyYWNrIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIGhlaWdodDogNHB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXBpbGwsIDk5OXB4KTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIwKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5xZG5hcHJvLWZvcm0tY2FyZF9fcHJvZ3Jlc3MtZmlsbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAwJTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1waWxsLCA5OTlweCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gIHRyYW5zaXRpb246IHdpZHRoIDIyMG1zIGVhc2U7XG59XG5cbi8vIC0tLSBCb2R5ICh0aGUgYXBwIHJ1bnRpbWUncyBxdWVzdGlvbiBjb250ZW50IC0gbmV2ZXIgcmUtcmVuZGVyZWQgaGVyZSkgLS0tXG4ucWRuYXByby1mb3JtLWNhcmRfX2JvZHkge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLXdpZHRoOiAwO1xuICBwYWRkaW5nOiAyMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDE2cHg7XG4gIG1heC1oZWlnaHQ6IHZhcigtLWZvcm0tY2FyZC1tYXgtaGVpZ2h0KTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLy8gLS0tIEZvb3RlciAtLS1cbi5xZG5hcHJvLWZvcm0tY2FyZF9fZm9vdGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDEycHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDE0cHggMjBweCAxOHB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZm9ybS1jYXJkLWJvcmRlcik7XG59XG4ucWRuYXByby1mb3JtLWNhcmRfX2Zvb3RlcltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG4vLyBObyBwcmV2IGJ1dHRvbiAoZmlyc3QgY2FyZCk6IG5leHQgdGFrZXMgdGhlIGZ1bGwgcm93LCByaWdodC1hbGlnbmVkLlxuLnFkbmFwcm8tZm9ybS1jYXJkX19mb290ZXIgW2RhdGEtZmM9XCJwcmV2XCJdW2hpZGRlbl0gfiBbZGF0YS1mYz1cIm5leHRcIl0ge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuLnFkbmFwcm8tZm9ybS1jYXJkX19mb290ZXIgcWRuYXByby1idXR0b24ge1xuICBmbGV4OiAwIDAgYXV0bztcbn1cbi5xZG5hcHJvLWZvcm0tY2FyZF9fZm9vdGVyIHFkbmFwcm8tYnV0dG9uW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4iLCIvLyBxZG5hcHJvLWZvcm1hdC1ydWxlc1xuLy8gVm9vcndhYXJkZWxpamtlIG9wbWFhazogZWVuIGxpanN0IHZvb3J3YWFyZGVuIG9wIGVlbiBnZXRhbCwgZWxrIG1ldCBlZW4gbGV2ZW5kIHZvb3JiZWVsZCBlbiBlZW5cbi8vIGNvbnRyYXN0d2FhcnNjaHV3aW5nLiBMaWdodCBET00sIGNsYXNzZXMgbWV0IGRlIHByZWZpeCBgLnFmci1gLiBLbGV1cmVuIHVpdCBkZSB0b2tlbnMuXG5cbi8vIERlIFNDSElMIGtvbXQgdWl0IGNvbXBvbmVudHMvdjIvb3ZlcmxheS1zaGVsbCAoYC5xb3MtKmApOyBoaWVyIHN0YWF0IGFsbGVlbiBkZVxuLy8gSU5IT1VELiBUb3QgMTkuMDguMjAyNiBzdG9uZCBkZSBzY2hpbCBoaWVyIGFscyBlaWdlbiBrb3BpZS5cblxucWRuYXByby1mb3JtYXQtcnVsZXMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAvLyBWYXN0ZSBsYWFnIG92ZXIgZGUgcGFnaW5hICh6ZWxmZGUgZHJpZSByZWdlbHMgYWxzIGAucW9zLXJvb3RgKS4gR2VuZXN0ZVxuICAgIC8vIGxhYWcsIHdhbnQgZGl0IHZlbnN0ZXIgd29yZHQgZ2VvcGVuZCB2YW51aXQgZWVuIGZvcm11bGllci9tb2RhbCBlbiBtb2V0XG4gICAgLy8gYm92ZW4gZGUgOTMwMC1sYWFnIHZhbiBkZSBmbG93ZWRpdG9yIHVpdGtvbWVuIOKAlCBkZSByZWRlbiB2b29yIGRlIDk0MDAgZGllXG4gICAgLy8gaGllciBzdG9uZC5cbiAgICAmW29wZW5dIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIHotaW5kZXg6IHZhcigtLW92ZXJsYXktei1uZXN0ZWQpO1xuICAgIH1cblxuICAgIC5xb3MtZGlhbG9nIHsgLS1xb3MtdzogODIwcHg7IH1cblxuICAgIC8vIC0tLS0ga29wIC0tLS1cblxuICAgIC8vIERlIHJlZ2VsIGRpZSB1aXRsZWd0IGRhdCBkZSBFRVJTVEUgdm9vcndhYXJkZSBkaWUgcGFzdCB3aW50LiBHZWVuIHdhYXJzY2h1d2tsZXVyOiBoZXQgaXMgZGVcbiAgICAvLyB3ZXJraW5nIHZhbiBkZSBmdW5jdGllLCBuaWV0IGVlbiBwcm9ibGVlbS5cbiAgICAucWZyLWZpcnN0bWF0Y2gge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgZ2FwOiA3cHg7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogOXB4IDExcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlLCAjZjNmNWZmKTtcbiAgICAgICAgZm9udC1zaXplOiAxMi41cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSwgIzI0MjYyYyk7XG5cbiAgICAgICAgcWRuYXByby1pY29uIHsgZmxleDogMCAwIGF1dG87IGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSk7IG1hcmdpbi10b3A6IDFweDsgfVxuICAgIH1cblxuICAgIC8vIC0tLS0gZGUgbGlqc3QgLS0tLVxuICAgIC5xZnItbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgLy8gUnVpbXRlIHZvb3IgZGUgZm9jdXNyaW5nIHZhbiBoZXQgZWVyc3RlIHZlbGQ7IHpvbmRlciBwYWRkaW5nIHdvcmR0IGRpZSBkb29yIGRlIHNjcm9sbGJveFxuICAgICAgICAvLyBhZmdlc25lZGVuLlxuICAgICAgICBwYWRkaW5nOiAycHg7XG4gICAgfVxuXG4gICAgLnFmci1lbXB0eSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMTRweCAycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbiAgICB9XG5cbiAgICAvLyBFw6luIHZvb3J3YWFyZGU6IGVlbiBwYW5lZWx0amUgbWV0IGRlIGNvbmRpdGllIG9wIGRlIGVlcnN0ZSByZWdlbCBlbiBkZSBvcG1hYWsgb3AgZGUgdHdlZWRlLlxuICAgIC8vIFplbGZkZSBwYWFyIChwYWFyc2UgcmFuZCBvcCBlZW4gbGljaHRlIHBhYXJzZSB2dWxsaW5nKSBhbHMgZWVuIG1lZXR3YWFyZGUtcGFuZWVsdGplIGluIGRlXG4gICAgLy8gcmFwcG9ydGVkaXRvciwgem9kYXQgaGV0IMOpw6luIHRhYWwgYmxpamZ0LlxuICAgIC5xZnItcnVsZSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtcHVycGxlLTMwMCwgIzhhOTJkMCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlLCAjZjNmNWZmKTtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgfVxuXG4gICAgLy8gRGUgcmlqIGRpZSBiaWogaGV0IG9wc2xhYW4gaW5jb21wbGVldCBibGVlay4gQWxsZWVuIGRlIHJhbmQg4oCUIGVlbiByb2RlIHZ1bGxpbmcgem91IGRlXG4gICAgLy8ga2xldXJ2b29yYmVlbGRlbiBlcmluIG9ubGVlc2JhYXIgbWFrZW4uXG4gICAgLnFmci1ydWxlLWZvdXQge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtdGFnLWNyaXRpY2FsLXRleHQsICNjMzNhMzApO1xuICAgIH1cblxuICAgIC5xZnItY29uZCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuXG4gICAgLnFmci1uciB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2NTA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci10cmVlLCAjZDRkOGVjKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgcGFkZGluZzogMXB4IDdweDtcbiAgICB9XG5cbiAgICAvLyBHRU1FVEVOOiBvcCAxMzJweCB3ZXJkIFwibG93ZXIgdGhhblwiIGFmZ2VrYXB0IHRvdCBcImxvd2VyIHRo4oCmXCIgZW4gXCJiZXR3ZWVuXCIgdG90IFwiYmV0d2Vl4oCmXCIg4oCUIGRlXG4gICAgLy8gRW5nZWxzZSBlbiBEdWl0c2UgbGFiZWxzIHppam4gbGFuZ2VyIGRhbiBkZSBOZWRlcmxhbmRzZS4gMTY4cHggdmFuZ3QgYWxsZSB2aWVyIGRlIHRhbGVuLlxuICAgIC5xZnItb3AgICB7IGZsZXg6IDAgMCAxNjhweDsgfVxuICAgIC5xZnItbnVtICB7IGZsZXg6IDAgMCA5NnB4OyB9XG4gICAgLnFmci1hbmQgIHsgZm9udC1zaXplOiAxMi41cHg7IGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApOyB9XG4gICAgLy8g4pqg77iPIGBtYXJnaW4tbGVmdDogYXV0b2Agb3AgZGUgS05PUCBlbiBuaWV0IG9wIGhldCBsYWJlbDogaGV0IGxhYmVsIHZlcnNjaGlqbnQgbGlua3MgdmFuIGRlIGtub3BcbiAgICAvLyAgICBvcCBoZXQgbW9tZW50IGRhdCBoaWogd2FwZW50LCBlbiBtZXQgZGUgbWFyZ2Ugb3AgaGV0IGxhYmVsIHpvdSBkZSBrbm9wIG5hYXIgcmVjaHRzIG9wc2NodWl2ZW5cbiAgICAvLyAgICB0dXNzZW4ga2xpayDDqcOpbiBlbiB0d2VlLiBQcmVjaWVzIGRlIHZhbCBkaWUgaW4gZGUgcmFwcG9ydGVkaXRvciBnZWRvY3VtZW50ZWVyZCBzdGFhdC5cbiAgICAvLyDik5ggSGV0IFwiWmVrZXI/XCItbGFiZWwgKGAucWZyLWFybWApIGlzIGhpZXIgbmlldCBnZXN0eWxlZCBtYWFyIGluIGBwYXJ0aWFscy92MS9fYmxvY2stc3RyaXAuc2Nzc2AsXG4gICAgLy8gICBpbiDDqcOpbiBkZWNsYXJhdGllIG1ldCBgLmJzdHJpcC1hcm0tbGFiZWxgLCBgLmlkb2MtYXJtLWxhYmVsYCBlbiBgLnJwZS1hcm1gIOKAlCB2aWVyIG5hbWVuLCDDqcOpblxuICAgIC8vICAgcmVnZWwsIGFuZGVycyBrcmlqZ3QgaGV0emVsZmRlIGdlYmFhciBvcCB2aWVyIHBsZWtrZW4gZWVuIGFuZGVyZSBrbGV1ci4gRGUgVEVSTUlKTiBrb210IHZhbiBkZVxuICAgIC8vICAgaG9zdCBtZWUgKGBhcm0tbXNgLCB1aXQgYGNsaWVudC9zaGFyZWQvYXJtLWRlbGV0ZS5qc2ApLlxuICAgIC5xZnItZGVsICB7IG1hcmdpbi1sZWZ0OiBhdXRvOyBmbGV4OiAwIDAgYXV0bzsgfVxuXG4gICAgLnFmci1mbXQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB9XG5cbiAgICAucWZyLWZsYWcge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDZweDtcbiAgICAgICAgZm9udC1zaXplOiAxMi41cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAvLyAtLS0tIGRlIHZyaWplIGtsZXVya2V1emUgLS0tLVxuICAgIC8vIFN3YXRjaCB2YW4gMzJweCBtZXQgZGUgbmF0aXZlIGA8aW5wdXQgdHlwZT1cImNvbG9yXCI+YCBlciBvbnppY2h0YmFhciBib3Zlbm9wLCBwbHVzIGVlbiB3aXNrbm9wLlxuICAgIC8vIFplbGZkZSBhbmF0b21pZSBhbHMgYC5kY3Ytc2V0LXN3YXRjaGAgaW4gaGV0IGRhc2hib2FyZCBlbiBgLnRsdC1jb2xvci1zd2F0Y2hgIGluIGRlXG4gICAgLy8gdGFrZW5saWpzdHRoZW1hJ3Mg4oCUIGRhdCBpcyBoZXQgc3RhYW5kZSBwYXRyb29uIHZvb3IgZWVuIHZyaWplIGtsZXVyIGluIGRlemUgYXBwLlxuICAgIC5xZnItY29sb3Ige1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgfVxuXG4gICAgLnFmci1zd2F0Y2gge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIGZsZXg6IDAgMCAyOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHJnYmEoNjQsIDczLCAxNTQsIDAuMTgpO1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgICB0cmFuc2l0aW9uOiBvdXRsaW5lLWNvbG9yIDE1MG1zO1xuXG4gICAgICAgICY6aG92ZXIgeyBvdXRsaW5lLWNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSk7IH1cbiAgICB9XG5cbiAgICAvLyBHZWVuIGtsZXVyIGdla296ZW46IGVlbiBzY2h1aW5lIHN0cmVlcCwgem9kYXQgXCJsZWVnXCIgdGUgb25kZXJzY2hlaWRlbiBpcyB2YW4gXCJ3aXQgZ2Vrb3plblwiLlxuICAgIC8vIOKaoO+4jyBHUklKUyBlbiBuaWV0IHJvb2Q6IGVlbiByb2RlIHN0cmVlcCBsZWVzdCBhbHMgZWVuIGZvdXRtZWxkaW5nIG9wIGVlbiB2ZWxkIGRhdCBnZXdvb24gbm9nIGxlZWdcbiAgICAvLyAgICBpcy4gR2VtZXRlbiBpbiBkZSBwcmV2aWV3IOKAlCBtZXQgcm9vZCB6YWcgZGUgcmlqIGVydWl0IGFsc29mIGVyIGlldHMgbWlzIHdhcy5cbiAgICAucWZyLXN3YXRjaC1sZWVnIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHRvcCByaWdodCxcbiAgICAgICAgICAgIHRyYW5zcGFyZW50IGNhbGMoNTAlIC0gMXB4KSwgdmFyKC0tYy1ncmV5LTMwMCwgI2M0YzdjYykgNTAlLFxuICAgICAgICAgICAgdHJhbnNwYXJlbnQgY2FsYyg1MCUgKyAxcHgpKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1iZy1jYXJkLCAjZmZmKTtcbiAgICB9XG5cbiAgICAucWZyLXN3YXRjaC1pbnB1dCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgICAgICBpbnNldDogMCAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgb3BhY2l0eTogMCAhaW1wb3J0YW50O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnFmci1jbGVhciB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgcGFkZGluZzogMnB4IDNweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcblxuICAgICAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtaG92ZXIsICNmMGYxZjIpOyBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHksICMyNDI2MmMpOyB9XG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7IG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1mb2N1cy1yaW5nLCAjNDA0OTlhKTsgb3V0bGluZS1vZmZzZXQ6IDFweDsgfVxuICAgIH1cblxuICAgIC8vIEhldCBsZXZlbmRlIHZvb3JiZWVsZC4gU3RhYXQgb3AgV0lUICh6b2FscyBlZW4gcmFwcG9ydGNlbCkgem9kYXQgZWVuIGdla296ZW4gYWNodGVyZ3JvbmRrbGV1clxuICAgIC8vIHRvb250IHdhdCBoaWogaW4gaGV0IHJhcHBvcnQgZG9ldCwgZW4gbmlldCBvcGxvc3QgaW4gZGUgcGFhcnNlIHBhbmVlbHZ1bGxpbmcuXG4gICAgLnFmci1wcmV2aWV3IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1pbi13aWR0aDogODRweDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIHBhZGRpbmc6IDRweCA4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItdHJlZSwgI2Q0ZDhlYyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG4gICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFwiU0YgTW9ub1wiLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZTtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHksICMyNDI2MmMpO1xuICAgIH1cblxuICAgIC5xZnItY29udHJhc3Qge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGFnLXdhcm5pbmctdGV4dCwgI2EwNjQwMCk7XG5cbiAgICAgICAgJltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuICAgIH1cblxuICAgIC8vIC0tLS0gdG9ldm9lZ2VuICsgdm9ldCAtLS0tXG4gICAgLnFmci1hZGRiYXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgfVxuXG4gICAgLnFmci1tYXgge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xuICAgIH1cblxuICAgIC5xZnItc3RhdHVzLWZvdXQgeyBjb2xvcjogdmFyKC0tYy10YWctY3JpdGljYWwtdGV4dCwgI2MzM2EzMCk7IH1cblxuICAgIC8vIFNjcm9sbGJhcjogc21hbCwgYmlubmVuIGhldCBjb21wb25lbnQsIHRyYW5zcGFyYW50ZSB0cmFjayDigJQgaHVpc3JlZ2VsLlxuICAgIC5xZnItbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogNnB4OyB9XG4gICAgLnFmci1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgLnFmci1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7IGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgLjE4KTsgYm9yZGVyLXJhZGl1czogM3B4OyB9XG4gICAgLnFmci1saXN0IHsgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOyBzY3JvbGxiYXItY29sb3I6IHJnYmEoMCwgMCwgMCwgLjE4KSB0cmFuc3BhcmVudDsgfVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gICAgICAgIC5xZnItb3AsIC5xZnItbnVtIHsgZmxleDogMSAxIDEwMHB4OyB9XG4gICAgICAgIC5xZnItcHJldmlldyB7IG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgfVxufVxuIiwiLy8gcWRuYXByby1mb3JtdWxhLWVkaXRvclxuLy8gQm91d2VyIHZvb3IgZWVuIGZvcm11bGV2ZWxkOiBkcmllIGtvbG9tbWVuICh3YWFybWVlIGplIHJla2VudCDCtyBvcGVyYXRvcnMgwrcgaW5zdHJ1Y3RpZXMpIGJvdmVuIGVlblxuLy8gdGVrc3R2YWsuIExpZ2h0IERPTSwgY2xhc3NlcyBtZXQgZGUgcHJlZml4IGAucWZlLWAuIEtsZXVyZW4gdWl0IGRlIHRva2Vuc1xuLy8gKHNjc3MvY29tcG9uZW50cy92Mi9kZXNpZ24tdG9rZW5zKSDigJQgaGllciBzdGFhdCBnZWVuIGxvcyBoZXggZGF0IGVlbiB0b2tlbiBkdWJiZWx0LlxuXG4vLyBEZSBTQ0hJTCAoc2NyaW0sIGdyaWpzIGZyYW1lLCB3aXQgdmVuc3Rlciwga29wLCBib2R5LCB2b2V0KSBrb210IHVpdFxuLy8gY29tcG9uZW50cy92Mi9vdmVybGF5LXNoZWxsOiBgLnFvcy0qYC4gSGllciBzdGFhdCBhbGxlZW4gZGUgSU5IT1VELiBUb3Rcbi8vIDE5LjA4LjIwMjYgc3RvbmQgZGUgc2NoaWwgaGllciBhbHMgZWlnZW4ga29waWUgdmFuIHFkbmFwcm8tbW9kYWwuXG5cbnFkbmFwcm8tZm9ybXVsYS1lZGl0b3Ige1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAvLyBEZSBob3N0IGlzIGRlIHZhc3RlIGxhYWcgb3ZlciBkZSBwYWdpbmEgKHplbGZkZSBkcmllIHJlZ2VscyBhbHMgYC5xb3Mtcm9vdGApLlxuICAgIC8vIGAtLXFvcy16YCBvcCBkZSBnZW5lc3RlIGxhYWc6IGRpdCB2ZW5zdGVyIHdvcmR0IGdlb3BlbmQgVkFOVUlUIGVlblxuICAgIC8vIHFkbmFwcm8tbW9kYWwgKDkwMDApIGVuIG1vZXQgYm92ZW4gZGUgXCJhbHRpamQgYm92ZW5vcFwiLWxhYWcgdmFuIGRlXG4gICAgLy8gZmxvd2VkaXRvciAoOTMwMCkgdWl0a29tZW4uIERhdCB3YXMgZGUgcmVkZW4gdm9vciBkZSA5NDAwIGRpZSBoaWVyIHN0b25kLFxuICAgIC8vIGVuIGRpZSByZWRlbiBpcyBuaWV0IHZlcmFuZGVyZCDigJQgYWxsZWVuIGRlIHBsZWsgd2FhciBoZXQgZ2V0YWwgd29vbnQuXG4gICAgJltvcGVuXSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICB6LWluZGV4OiB2YXIoLS1vdmVybGF5LXotbmVzdGVkKTtcbiAgICB9XG5cbiAgICAvLyBCcmVlZHRlLXBsYWZvbmQgdmFuIGhldCBmcmFtZTsgZGUgbWFhdCBkaWUgZGl0IHZlbnN0ZXIgYWx0aWpkIGhhZC5cbiAgICAucW9zLWRpYWxvZyB7IC0tcW9zLXc6IDg4MHB4OyB9XG5cbiAgICAvLyAtLS0tIGtvcCAtLS0tXG5cbiAgICAvLyAtLS0tIGRlIGRyaWUga29sb21tZW4gLS0tLVxuICAgIC8vIERlIG9wZXJhdG9ya29sb20gaXMgc21hbCBlbiB2YXN0OyBkZSB0d2VlIGxpanN0ZW4gdmVyZGVsZW4gZGUgcmVzdC4gRGUgcmVjaHRlcmtvbG9tIGtyaWpndCBpZXRzXG4gICAgLy8gbWVlciwgd2FudCBkYWFyIHN0YWFuIGhlbGUgdm9vcmJlZWxkZW4gaW4gKGBST1VORCAoIGdldGFsICwgZGVjaW1hbGVuIClgKS5cbiAgICAucWZlLWNvbHMge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIDEwNHB4IG1pbm1heCgwLCAxLjFmcik7XG4gICAgICAgIGdhcDogMTRweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgIH1cblxuICAgIC5xZmUtY29sIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG5cbiAgICAucWZlLWNvbC1sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDY1MDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wN2VtO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbiAgICB9XG5cbiAgICAucWZlLWxpc3Qge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci10cmVlLCAjZDRkOGVjKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLCAjZmZmKTtcbiAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAyMzJweDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICB9XG5cbiAgICAvLyBLb3ByZWdlbCBiaW5uZW4gZWVuIGxpanN0IChcIlZvcmlnZSBwZXJpb2RlXCIsIFwiVmVyZ2VsaWprZW5cIikuXG4gICAgLnFmZS1ncm91cCB7XG4gICAgICAgIHBhZGRpbmc6IDhweCAxMHB4IDNweDtcbiAgICAgICAgZm9udC1zaXplOiAxMC41cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2NTA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDZlbTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gICAgfVxuXG4gICAgLy8gTWlzbHVrdGUgd29vcmRlbmxpanN0OiBnZXdvbmUgbGVlc3Rla3N0LCBnZWVuIGthcGl0YWxlbiDigJQgaGV0IGlzIGVlbiBtZWxkaW5nLCBnZWVuIGtvcC5cbiAgICAucWZlLWdyb3VwLWZhaWwge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgIH1cblxuICAgIC8vIOKTmCBgLm1lbnUtaXRlbS1sYWJlbGAgaXMgZGUgaW50ZXJuZSBjbGFzcyB2YW4gcWRuYXByby1tZW51LWl0ZW0gKHN0YWJpZWwgc2luZHMgZGUgYm91dykuIEFsbGVlblxuICAgIC8vICAgaGV0IExFVFRFUlRZUEUgd29yZHQgaGllciBnZXpldDogZWVuIGZvcm11bGUgaXMgY29kZSwgZW4gZWVuIHByb3BvcnRpb25lZWwgbGV0dGVydHlwZSBtYWFrdFxuICAgIC8vICAgYFJPVU5EICggTTEgLyBNMiAsIDEgKWAgc2xlY2h0IGxlZXNiYWFyLiBEZSByZXN0IHZhbiBkZSByaWogYmxpamZ0IGhldCBjb21wb25lbnQgemVsZi5cbiAgICAucWZlLWl0ZW0gLm1lbnUtaXRlbS1sYWJlbCB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFwiU0YgTW9ub1wiLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZTtcbiAgICAgICAgZm9udC1zaXplOiAxMi41cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSk7XG4gICAgfVxuXG4gICAgLy8gLS0tLSBvcGVyYXRvcmtub3BwZW4gLS0tLVxuICAgIC5xZmUtb3BzIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgICAgICBnYXA6IDZweDtcbiAgICB9XG5cbiAgICAucWZlLW9wcyBxZG5hcHJvLWJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC8vIC0tLS0gaGV0IGZvcm11bGV2ZWxkIC0tLS1cbiAgICAucWZlLWZpZWxkd3JhcCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogNnB4O1xuICAgIH1cblxuICAgIC5xZmUtZmllbGQge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWluLWhlaWdodDogODRweDtcbiAgICAgICAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNHB4O1xuICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBcIlNGIE1vbm9cIiwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2U7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjMjQyNjJjKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLCAjZmZmKTtcbiAgICAgICAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHZhcigtLWMtYmctc2Vjb25kYXJ5LXB1cnBsZSwgI2U2ZTlmZik7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEZSBvcGVuIHBsZWsgYOKAueKApuKAumAgd29yZHQgZ2VzZWxlY3RlZXJkIG5hIGhldCBpbnZvZWdlbjsgZGllIHNlbGVjdGllIG1vZXQgT1BWQUxMRU4sIHdhbnRcbiAgICAgICAgLy8gaGlqIGlzIGRlIGhlbGUgYWFud2lqemluZyBkYXQgZXIgbm9nIGlldHMgaW5nZXZ1bGQgbW9ldCB3b3JkZW4uXG4gICAgICAgICY6OnNlbGVjdGlvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucWZlLWhpbnQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbiAgICB9XG5cbiAgICAucWZlLXN0YXR1cyB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbWluLWhlaWdodDogMS4yZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgIH1cblxuICAgIC5xZmUtc3RhdHVzLWdvZWQgICAgICAgICAgIHsgY29sb3I6IHZhcigtLWMtdGFnLW5ldy10ZXh0LCAjMWY3YTQ4KTsgfVxuICAgIC5xZmUtc3RhdHVzLWZvdXQgICAgICAgICAgIHsgY29sb3I6IHZhcigtLWMtdGFnLWNyaXRpY2FsLXRleHQsICNjMzNhMzApOyB9XG4gICAgLnFmZS1zdGF0dXMtd2FhcnNjaHV3aW5nICAgeyBjb2xvcjogdmFyKC0tYy10YWctd2FybmluZy10ZXh0LCAjYTA2NDAwKTsgfVxuXG4gICAgLy8gLS0tLSB2b2V0IC0tLS1cblxuICAgIC8vIFNjcm9sbGJhcjogc21hbCwgYmlubmVuIGhldCBjb21wb25lbnQsIHRyYW5zcGFyYW50ZSB0cmFjayDigJQgaHVpc3JlZ2VsLlxuICAgIC5xZmUtbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogNnB4OyB9XG4gICAgLnFmZS1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgLnFmZS1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgLjE4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIH1cbiAgICAucWZlLWxpc3QgeyBzY3JvbGxiYXItd2lkdGg6IHRoaW47IHNjcm9sbGJhci1jb2xvcjogcmdiYSgwLCAwLCAwLCAuMTgpIHRyYW5zcGFyZW50OyB9XG5cbiAgICAvLyBTbWFsIHNjaGVybTogZGUgZHJpZSBrb2xvbW1lbiBvbmRlciBlbGthYXIsIG9wZXJhdG9ycyBhbHMgZWVuIHJpaiBrbm9wcGVuLlxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAgICAgICAucWZlLWNvbHMgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgfVxuICAgICAgICAucWZlLW9wcyAgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpOyB9XG4gICAgICAgIC5xZmUtbGlzdCB7IG1heC1oZWlnaHQ6IDE2OHB4OyB9XG4gICAgfVxufVxuIiwiLy8gcWRuYXByby1naWYtc2hlZXQg4oCUIFB1bHNlIEdJRiBwaWNrZXIgKEtMSVBZKSwgVFdPIHN1cmZhY2VzIGp1c3QgbGlrZVxuLy8gcWRuYXByby1zdGlja2VyLXNoZWV0OiBhIGJvdHRvbSBzaGVldCBvbiBwaG9uZSwgYSBwaW5uZWQgcG9wb3ZlciBvblxuLy8gdGFibGV0L2Rlc2t0b3AuIEZMQVQgQ1NTLiBFZGl0IEhFUkUsIHRoZW4gYGd1bHAgc2Fzcy12MWAuXG4vL1xuLy8gVGhlIGlubmVyIGJvdHRvbS1zaGVldCAvIHBvcG92ZXIgUE9SVEFMUyBpdHNlbGYgdG8gPGJvZHk+IG9uIG9wZW4sIHNvIGl0c1xuLy8gY29udGVudCBubyBsb25nZXIgc2l0cyB1bmRlciB0aGUgPHFkbmFwcm8tZ2lmLXNoZWV0PiBob3N0LiBBbGwgc3R5bGluZyBpc1xuLy8gdGhlcmVmb3JlIHNjb3BlZCB0byBbZGF0YS1naWYtc2hlZXRdIChhIERBVEEtQVRUUklCVVRFIGhvb2sgdGhhdCB0cmF2ZWxzXG4vLyB3aXRoIHRoZSBwb3J0YWwpIGFuZCAuZ3Mtcm9vdCDigJQgTkVWRVIgdW5kZXIgLnFkbmFwcm8tZ2lmLXNoZWV0IGl0c2VsZi5cbi8vIEEgZGF0YS1hdHRyaWJ1dGUgYW5kIG5vdCBhIGNsYXNzOiBib3RoIHNoZWxscyByZWJ1aWxkIHRoZWlyIG93biBjbGFzc05hbWVcbi8vIG9uIGV2ZXJ5IHJlbmRlcigpIGFuZCB3b3VsZCBzaWxlbnRseSB3aXBlIGEgY2xhc3MgYWRkZWQgaGVyZSDigJQgdGhlIHNhbWVcbi8vIGxlc3NvbiBhcyBxZG5hcHJvLXN0aWNrZXItc2hlZXQncyBbZGF0YS1zdGlja2VyLXNoZWV0XS5cblxuLnFkbmFwcm8tZ2lmLXNoZWV0IHtcbiAgZGlzcGxheTogY29udGVudHM7IC8vIHRoZSBob3N0IGlzIGp1c3QgYSB3cmFwcGVyOyB0aGUgcmVhbCBVSSBsaXZlcyBvbiB0aGUgcG9ydGFsZWQgc2hlbGxcbn1cblxuLy8gLS0tLSBTdXJmYWNlIDE6IHRoZSBib3R0b20gc2hlZXQgKHBob25lKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRml4ZWQgaGVpZ2h0IGZvciB0aGUgd2hvbGUgbGlmZXRpbWUsIHNhbWUgcmVhc29uaW5nIGFzIGV2ZXJ5IHNoZWV0IGluIHRoaXNcbi8vIGZhbWlseTogdGhlIGNvbnRlbnQgdW5kZXJuZWF0aCBjaGFuZ2VzIChzZWFyY2ggcmVzdWx0cywgZW1wdHkgc3RhdGUsXG4vLyBsb2FkaW5nKSBhbmQgYSBzaGVldCB3aG9zZSBvdXRsaW5lIG1vdmVzIGFsb25nIHdpdGggaXQgaXMgdGhlXG4vLyBldmVudC1zaGVldCdzIHdoYWNrLWEtbW9sZS4gODAlIG1pcnJvcnMgcWRuYXByby1zdGlja2VyLXNoZWV0J3Mgb3duIHBhbmVsLlxuLnFkbmFwcm8tYm90dG9tLXNoZWV0W2RhdGEtZ2lmLXNoZWV0XSAuYnMtcGFuZWwge1xuICBoZWlnaHQ6IDgwJTtcbiAgbWF4LWhlaWdodDogODAlO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0W2RhdGEtZ2lmLXNoZWV0XSAuYnMtYm9keSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGdhcDogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLy8gLS0tLSBTdXJmYWNlIDI6IHRoZSBwb3BvdmVyICh0YWJsZXQvZGVza3RvcCkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhlIEhPU1QgbXVzdCBzZXQgdGhlIHdpZHRoOiBxZG5hcHJvLXBvcG92ZXIgZGVmYXVsdHMgdG8gMjgwcHggKGEgTUVOVVxuLy8gc2l6ZSksIGFuZCBhIDItY29sdW1uIEdJRiBncmlkIGRvZXMgbm90IGZpdCBpbiB0aGF0LiAzODBweCBtaXJyb3JzXG4vLyBxZG5hcHJvLXN0aWNrZXItc2hlZXQncyBvd24gcG9wb3ZlciBjYXJkLlxucWRuYXByby1wb3BvdmVyW2RhdGEtZ2lmLXNoZWV0XSB7XG4gIHdpZHRoOiBtaW4oOTJ2dywgMzgwcHgpO1xuICBwYWRkaW5nOiA4cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5xZG5hcHJvLXBvcG92ZXJbZGF0YS1naWYtc2hlZXRdIC5ncy1yb290IHtcbiAgLy8gYGZsZXg6IG5vbmVgIG1hdHRlcnMgaGVyZTogLmdzLXJvb3QgY2FycmllcyBgZmxleDogMWAgZm9yIHRoZSBib3R0b21cbiAgLy8gc2hlZXQsIGFuZCBpbiBhIGZsZXggY29sdW1uIHRoYXQgZmxleCBkaXN0cmlidXRpb24gY29tcHV0ZXMgdGhlIGhlaWdodFxuICAvLyBhbmQgaWdub3JlcyBhbiBleHBsaWNpdCBgaGVpZ2h0YCBlbnRpcmVseS4gU2FtZSBmaXggYXMgc3RpY2tlci1zaGVldC5cbiAgZmxleDogbm9uZTtcbiAgaGVpZ2h0OiA0NjBweDtcbn1cbnFkbmFwcm8tcG9wb3ZlcltkYXRhLWdpZi1zaGVldF0gLmdzLWhlYWRlciB7XG4gIHBhZGRpbmc6IDAgMCA4cHg7XG59XG5xZG5hcHJvLXBvcG92ZXJbZGF0YS1naWYtc2hlZXRdIC5ncy1zY3JvbGwge1xuICBwYWRkaW5nOiAwIDAgOHB4O1xufVxuXG4uZ3Mtcm9vdCB7XG4gIGZsZXg6IDE7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1mb250LWZhbWlseSwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcbn1cblxuLy8gLS0tLSBIZWFkZXI6IHNlYXJjaCBmaWVsZCArIHBlcm1hbmVudCBLTElQWSBiYWRnZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmdzLWhlYWRlciB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBwYWRkaW5nOiA0cHggMTJweCA4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNnB4O1xufVxuXG4vLyBgLmdzLXNlYXJjaC1yb3dgIGlzIHRoZSBmbGV4IHJvdyB0aGF0IGhvbGRzIEJPVEggdGhlIHNlYXJjaCBmaWVsZCBhbmQgdGhlXG4vLyBLTElQWSBiYWRnZSwgc2lkZSBieSBzaWRlIG9uIHRoZSBzYW1lIGxpbmUgKGthYXJ0IDIyLCAxOS4wOC4yMDI2IOKAlCBLaW0nc1xuLy8gZGVjaXNpb246IHRoZSBiYWRnZSBtb3ZlcyBvZmYgaXRzIG93biByb3cgaW50byBhIGNvbXBhY3QgcmlnaHQtYWxpZ25lZFxuLy8gc3BvdCBuZXh0IHRvIHRoZSBzZWFyY2ggZmllbGQsIG1hdGNoaW5nIEtMSVBZJ3Mgb3duIGV4YW1wbGUpLiBUaGUgZmllbGRcbi8vIHNocmlua3MgZmlyc3QgKGAuZ3Mtc2VhcmNoLWZpZWxkYCBiZWxvdyBjYXJyaWVzIGBmbGV4OiAxIDEgYXV0b2AgK1xuLy8gYG1pbi13aWR0aDogMGApOyB0aGUgYmFkZ2Uga2VlcHMgYSBmaXhlZCB3aWR0aCB2aWEgYGZsZXgtc2hyaW5rOiAwYCBvblxuLy8gYC5ncy1iYWRnZS13cmFwYCBzbyBhIG5hcnJvdyBzaGVldCAofjMyMHB4KSBuZXZlciBjcnVzaGVzIGl0LlxuLmdzLXNlYXJjaC1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbn1cblxuLy8gVGhlIGlubmVyIHdyYXBwZXIgYXJvdW5kIGp1c3QgdGhlIDxxZG5hcHJvLWlucHV0PiDigJQgYHBvc2l0aW9uOiByZWxhdGl2ZWBcbi8vIGxpdmVzIEhFUkUgKG5vdCBvbiBgLmdzLXNlYXJjaC1yb3dgKSBzbyBgLmdzLWNvbXBsZXRpb25zYCAoa2FhcnQgMTgpIHN0aWxsXG4vLyBhbmNob3JzIGRpcmVjdGx5IHVuZGVyIHRoZSBGSUVMRCBhbG9uZSwgbm90IHVuZGVyIHRoZSBiYWRnZSB0b28uXG4uZ3Mtc2VhcmNoLWZpZWxkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4vLyAtLS0tIENvbXBsZXRpb25zIGRyb3Bkb3duIChzZXRDb21wbGV0aW9ucywga2FhcnQgMTgpIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBcIkF1dG9jb21wbGV0ZSB0aWpkZW5zIHR5cGVuXCI6IGEgY2FyZCBvZiByb3dzIGRpcmVjdGx5IHVuZGVyIHRoZSBzZWFyY2hcbi8vIGZpZWxkLiBWaXN1YWwgbGFuZ3VhZ2UgY29waWVkIGZyb20gcWRuYXByby1pbnB1dCdzIG93biB0eXBlPVwiYXV0b2NvbXBsZXRlXCJcbi8vIGRyb3Bkb3duICguaW5wdXQtYWMtZHJvcGRvd24gLyAuaW5wdXQtYWMtaXRlbSBpbiBzY3NzL2NvbXBvbmVudHMvdjIvaW5wdXQvXG4vLyBfaW5wdXQuc2NzcykgcmF0aGVyIHRoYW4gaW52ZW50ZWQg4oCUIHNhbWUgY2FyZCBzaGFwZSwgcm93IGhlaWdodCwgaG92ZXIg4oCUXG4vLyBzbyBhIGNvbXBvbmVudCB0aGF0IElTTidUIGEgcWRuYXByby1pbnB1dCBzdGlsbCByZWFkcyBhcyBcInRoZSBzYW1lIGtpbmRcbi8vIG9mIGF1dG9jb21wbGV0ZVwiIHRvIHRoZSB1c2VyLiBQb3NpdGlvbmVkIGFic29sdXRlIHNvIGl0IG92ZXJsYXlzIHRoZVxuLy8gY2F0ZWdvcnkgcm93IC8gZ3JpZCBiZWxvdyBpbnN0ZWFkIG9mIHB1c2hpbmcgdGhlbSBkb3duLlxuLmdzLWNvbXBsZXRpb25zIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMTAwJSArIDRweCk7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiAyNjBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ncmV5LTMwMCk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm94LXNoYWRvdzogMCAxcHggM3B4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDgpLCAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpO1xuICBwYWRkaW5nOiA2cHg7XG4gIHotaW5kZXg6IDU7XG59XG4uZ3MtY29tcGxldGlvbnNbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5ncy1jb21wbGV0aW9uLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzNnB4O1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5ncy1jb21wbGV0aW9uLWl0ZW0gKyAuZ3MtY29tcGxldGlvbi1pdGVtIHtcbiAgbWFyZ2luLXRvcDogMnB4O1xufVxuLmdzLWNvbXBsZXRpb24taXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7XG59XG5cbi8vIC0tLS0gQ2F0ZWdvcnkgY2hpcCByb3cgKHNldENhdGVnb3JpZXMsIGthYXJ0IDIwKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBIb3Jpem9udGFsbHkgc2Nyb2xsYWJsZSByb3cgb2YgcWRuYXByby10YWcgQ0hJUFMg4oCUIHJlcGxhY2VzIGthYXJ0IDE4J3Ncbi8vIGltYWdlLXRpbGUgcm93IChLaW0ncyBkZXNpZ24gY29ycmVjdGlvbiwgMTkuMDguMjAyNjogXCJleGFjdCB6b2Fsc1xuLy8gcWRuYXByby1zdGlja2VyLXNoZWV0IGRhdCBkb2V0IGVuIHpvYWxzIEtMSVBZJ3MgZWlnZW4gZGVtb1wiLCBzZWUga2FhcnRcbi8vIDIwL0JPQVJELXB1bHNlLWdpZnMubWQpLiBMYXlvdXQgY29waWVkIDE6MSBmcm9tIHFkbmFwcm8tc3RpY2tlci1zaGVldCdzXG4vLyBvd24gLnNzLWNhdHMgKHNjc3MvY29tcG9uZW50cy92Mi9zdGlja2VyLXNoZWV0L19zdGlja2VyLXNoZWV0LnNjc3MpOlxuLy8gc2FtZSBmbGV4IHJvdywgc2FtZSBoaWRkZW4tc2Nyb2xsYmFyIHJlY2lwZS4gQWx3YXlzIHZpc2libGUgd2hpbGUgdGhlXG4vLyBzaGVldCBpcyBvcGVuIOKAlCBubyBoaWRlLW9uLXNlYXJjaCBoZXJlIChzZWUgdGhlIEpTIGRvY2Jsb2NrKS5cbi5ncy1jYXRlZ29yaWVzIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbiAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwIDEycHggMTBweDtcbn1cbi5ncy1jYXRlZ29yaWVzOjotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiAwOyBoZWlnaHQ6IDA7IGRpc3BsYXk6IG5vbmU7IH1cblxuLy8gVGhlIGNoaXBzIGFyZSBwbGFpbiBxZG5hcHJvLXRhZ3M6IHZhcmlhbnQ9XCJvdXRsaW5lXCIgd2hlbiB1bmNob3Nlbixcbi8vIGNvbG9yPVwiYWN0aW9uXCIgd2hlbiBjaG9zZW4g4oCUIHRoZSBTQU1FIGNvbXBvbmVudC9zdGF0ZSBwYWlyIGFzXG4vLyBxZG5hcHJvLXN0aWNrZXItc2hlZXQncyBvd24gLnNzLWNhdCBjaGlwcy4gTm8gY29sb3VyIHJ1bGUgbGl2ZXMgaGVyZSBvblxuLy8gcHVycG9zZTogZXZlcnkgY29sb3VyL3N1cmZhY2UgdmFsdWUgaXMgb24gdGhlIHRhZyBjb21wb25lbnQgaXRzZWxmLlxuXG4vLyAtLS0tIFwiVHJ5IGluc3RlYWRcIiBjaGlwcyBpbiB0aGUgZW1wdHkgc3RhdGUgKHNldFN1Z2dlc3Rpb25zLCBrYWFydCAxOCkgLS1cbi5ncy1zdWdnZXN0aW9ucyB7XG4gIG1hcmdpbi10b3A6IDE0cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xufVxuLmdzLXN1Z2dlc3Rpb25zLWxhYmVsIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbn1cbi5ncy1zdWdnZXN0aW9ucy1jaGlwcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogOHB4O1xufVxuXG4vLyBUaGUgYmFkZ2UgaXMgYSBmaXhlZC1yYXRpbyBQTkcgKDQ4Njd4ODI4IGluIHRoZSBzb3VyY2UsIH41Ljk6MSkuIDE2cHggdGFsbFxuLy8ga2VlcHMgaXQgbGVnaWJsZSB3aXRob3V0IGNvbXBldGluZyB3aXRoIHRoZSBzZWFyY2ggZmllbGQgbmV4dCB0byBpdC5cbi8vIGBmbGV4LXNocmluazogMGA6IHRoaXMgc2l0cyBpbiBgLmdzLXNlYXJjaC1yb3dgIG5leHQgdG8gdGhlIHNlYXJjaCBmaWVsZFxuLy8gKGthYXJ0IDIyKSDigJQgdGhlIGZpZWxkIGlzIHRoZSBvbmUgdGhhdCBzaHJpbmtzIG9uIGEgbmFycm93IHNoZWV0LCB0aGVcbi8vIGJhZGdlIGtlZXBzIGl0cyBvd24gd2lkdGggc28gaXQgbmV2ZXIgZ2V0cyBjcnVzaGVkIGF0IH4zMjBweC5cbi5ncy1iYWRnZS13cmFwIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uZ3MtYmFkZ2Uge1xuICBoZWlnaHQ6IDE2cHg7XG4gIHdpZHRoOiBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8vIERlZmF1bHQgPSBsaWdodCB0aGVtZSAoYmxhY2sgd29yZG1hcmspLiBbZGF0YS10aGVtZT1kYXJrXSBzd2FwcyB0byB0aGVcbi8vIHdoaXRlIFBORyDigJQgc2FtZSBvdmVycmlkZSBtZWNoYW5pc20gYXMgcWRuYXByby1hY3Rpdml0eS1pY29uJ3MgZGFyay1tb2RlXG4vLyBydWxlLCBuZXZlciBhIEpTIG1lZGlhLXF1ZXJ5IGNoZWNrLlxuLmdzLWJhZGdlLWRhcmsgeyBkaXNwbGF5OiBub25lOyB9XG5bZGF0YS10aGVtZT1kYXJrXSAuZ3MtYmFkZ2UtbGlnaHQgeyBkaXNwbGF5OiBub25lOyB9XG5bZGF0YS10aGVtZT1kYXJrXSAuZ3MtYmFkZ2UtZGFyayB7IGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8vIC0tLS0gU2Nyb2xsaW5nIGFyZWE6IGdyaWQgKyBza2VsZXRvbiArIGVtcHR5IHN0YXRlICsgc2VudGluZWwgLS0tLS0tLS0tLS1cbi8vIGBjb250YWluZXItdHlwZTogaW5saW5lLXNpemVgIHR1cm5zIC5ncy1zY3JvbGwgaW50byBhIFFVRVJZIENPTlRBSU5FUiBmb3Jcbi8vIHRoZSBjb2x1bW4tY291bnQgYnJlYWtwb2ludHMgYmVsb3cuIFRoaXMgbXVzdCBrZXkgb2ZmIHRoZSByYXN0ZXIncyBvd25cbi8vIHJlbmRlcmVkIHdpZHRoLCBub3QgdGhlIHZpZXdwb3J0OiB0aGUgcG9wb3ZlciBzdXJmYWNlIGlzIGEgZml4ZWQgMzgwcHhcbi8vIGNhcmQgb24gYSBkZXNrdG9wIHZpZXdwb3J0LCBhbmQgYSBwbGFpbiBAbWVkaWEgcXVlcnkgd291bGQgb25seSBldmVyIHNlZVxuLy8gdGhlICh3aWRlKSB2aWV3cG9ydCBhbmQgbmV2ZXIgZHJvcCBiZWxvdyBpdHMgbmFycm93ZXN0IGJyZWFrcG9pbnQuIFNhbWVcbi8vIG5hbWVkLWNvbnRhaW5lciBwYXR0ZXJuIGFzIHFkbmFwcm8tbGlrZXJ0LXNjYWxlJ3Mgcm93L3NjYWxlIGxheW91dCBzd2l0Y2hcbi8vIChjb250YWluZXI6IHFkbmFwcm8tbGlrZXJ0LXNjYWxlIC8gaW5saW5lLXNpemUpIOKAlCBpbmxpbmUtc2l6ZSBvbmx5LCBzbyBpdFxuLy8gZG9lcyBub3QgaW50ZXJmZXJlIHdpdGggLmdzLXNjcm9sbCdzIG93biBoZWlnaHQvb3ZlcmZsb3cgYmVoYXZpb3VyLlxuLmdzLXNjcm9sbCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4taGVpZ2h0OiAwO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbiAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xuICBjb250YWluZXI6IHFkbmFwcm8tZ2lmLXNoZWV0IC8gaW5saW5lLXNpemU7XG59XG4uZ3Mtc2Nyb2xsOjotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiAwOyBoZWlnaHQ6IDA7IGRpc3BsYXk6IG5vbmU7IH1cblxuLy8gLS0tLSBHcmlkOiByZXNwb25zaXZlLWNvbHVtbiBtYXNvbnJ5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR0lGcyBjb21lIGluIGV2ZXJ5IGFzcGVjdCByYXRpbyBLTElQWSBzaGlwcywgdW5saWtlIHRoZSBzdGlja2VyLXNoZWV0J3Ncbi8vIHVuaWZvcm0gc3F1YXJlIGNhdGFsb2cg4oCUIGEgcmlnaWQgQ1NTIGdyaWQgd291bGQgZWl0aGVyIGNyb3AgZXZlcnkgdGlsZSB0b1xuLy8gYSBzcXVhcmUgb3IgbGVhdmUgYmlnIGdhcHMuIEEgQ1NTIG11bHRpLWNvbHVtbiBsYXlvdXQgaXMgdGhlIHBsYWluLUNTU1xuLy8gbWFzb25yeTogZWFjaCBjZWxsIGtlZXBzIGl0cyBvd24gYXNwZWN0IHJhdGlvIGFuZCBgYnJlYWstaW5zaWRlOiBhdm9pZGBcbi8vIHN0b3BzIGEgdGlsZSBzcGxpdHRpbmcgYWNyb3NzIHRoZSBjb2x1bW4gYnJlYWsuXG4vL1xuLy8gQ29sdW1uIENPVU5UIHJlc3BvbmRzIHRvIHRoZSBjb250YWluZXIncyBhdmFpbGFibGUgd2lkdGggKHNlZSAuZ3Mtc2Nyb2xsXG4vLyBhYm92ZSksIG5vdCBhIGZpeGVkIG51bWJlcjogb24gdGhlIDM4MHB4IHBvcG92ZXIgc3VyZmFjZSAyIGNvbHVtbnMga2VlcHNcbi8vIEtMSVBZJ3Mgc20gcHJldmlldyAoMTY1cHgsIHNlZSBMaXR0bGUucGhwIHB1bHNlR2lmU2hhcGUoKSkgY2xvc2UgdG8gaXRzXG4vLyBuYXRpdmUgc2l6ZSwgYnV0IHRoZSBTQU1FIGdyaWQgYWxzbyByZW5kZXJzIGluc2lkZSBhIHBob25lIGJvdHRvbSBzaGVldFxuLy8gdGhhdCBjYW4gb3BlbiB+MTAwMHB4IHdpZGUgb24gdGFibGV0L2Rlc2t0b3Ag4oCUIGEgZml4ZWQgY29sdW1uLWNvdW50OjJcbi8vIHRoZXJlIHN0cmV0Y2hlcyBldmVyeSB0aWxlIHRvIH40NTBweCBhbmQgdmlzaWJseSBibG93cyB1cC9ibHVycyB0aGF0IHNhbWVcbi8vIDE2NXB4IHByZXZpZXcgKEtpbSdzIHRlc3QsIDE5LjA4LjIwMjYpLiAzLzQgY29sdW1ucyBrZWVwIHRpbGVzIGluIHRoZVxuLy8gfjE2NS0yMjBweCByYW5nZSBhcyB0aGUgcmFzdGVyIGdldHMgd2lkZXIuXG4uZ3MtZ3JpZCB7XG4gIGNvbHVtbi1jb3VudDogMjtcbiAgY29sdW1uLWdhcDogOHB4O1xuICBwYWRkaW5nOiAwIDEycHggMTJweDtcbn1cbi8vIFRoZSBKUyBoaWRlcyB0aGUgZ3JpZCB3aXRoIHRoZSBgaGlkZGVuYCBBVFRSSUJVVEUgd2hpbGUgZW1wdHkvbG9hZGluZztcbi8vIHdpdGhvdXQgdGhpcyBydWxlIGBjb2x1bW4tY291bnRgIGFib3ZlIHdpbnMgb3ZlciB0aGUgYnJvd3NlcidzIG93blxuLy8gW2hpZGRlbl0geyBkaXNwbGF5Om5vbmUgfSDigJQgc2FtZSB0cmFwIGFzIHFkbmFwcm8tc3RpY2tlci1zaGVldCdzIC5zcy1ncmlkLlxuLmdzLWdyaWRbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuQGNvbnRhaW5lciBxZG5hcHJvLWdpZi1zaGVldCAobWluLXdpZHRoOiA1NjBweCkge1xuICAuZ3MtZ3JpZCwgLmdzLXNrZWxldG9uIHsgY29sdW1uLWNvdW50OiAzOyB9XG59XG5AY29udGFpbmVyIHFkbmFwcm8tZ2lmLXNoZWV0IChtaW4td2lkdGg6IDgyMHB4KSB7XG4gIC5ncy1ncmlkLCAuZ3Mtc2tlbGV0b24geyBjb2x1bW4tY291bnQ6IDQ7IH1cbn1cblxuLmdzLWNlbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCAwIDhweDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZ3MtY2VsbDphY3RpdmUgeyBvcGFjaXR5OiAwLjg1OyB9XG4uZ3MtaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQtaG92ZXIpO1xufVxuXG4vLyAtLS0tIExvYWRpbmcgc2tlbGV0b24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNhbWUgcmVzcG9uc2l2ZSBjb2x1bW4tY291bnQgYXMgLmdzLWdyaWQgYWJvdmUgKHNlZSB0aGUgQGNvbnRhaW5lciBydWxlc1xuLy8gdGhlcmUpIOKAlCB0aGUgc2tlbGV0b24gbWlycm9ycyB0aGUgcmFzdGVyJ3MgcmVhbCBsYXlvdXQgc28gaXQgZG9lcyBub3Rcbi8vIGZsYXNoIGEgZGlmZmVyZW50IGNvbHVtbiBjb3VudCB0aGFuIHRoZSBHSUZzIHRoYXQgcmVwbGFjZSBpdC5cbi5ncy1za2VsZXRvbiB7XG4gIGNvbHVtbi1jb3VudDogMjtcbiAgY29sdW1uLWdhcDogOHB4O1xuICBwYWRkaW5nOiAwIDEycHggMTJweDtcbn1cbi5ncy1za2VsZXRvbltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLmdzLXNrZWwtY2VsbCB7XG4gIG1hcmdpbjogMCAwIDhweDtcbiAgYnJlYWstaW5zaWRlOiBhdm9pZDtcbn1cbi5ncy1za2VsZXRvbiBxZG5hcHJvLXNrZWxldG9uLWJvbmUge1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xufVxuXG4vLyAtLS0tIEVtcHR5IHNlYXJjaCBzdGF0ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmdzLWVtcHR5W2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4uZ3MtZW1wdHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIHBhZGRpbmc6IDU2cHggMjRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbn1cbi5ncy1lbXB0eS1pY29uIHtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbn1cbi5ncy1lbXB0eS10ZXh0IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtYXgtd2lkdGg6IDI2MHB4O1xufVxuXG4vLyAtLS0tIFBhZ2luZyBzZW50aW5lbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gWmVyby1oZWlnaHQgbWFya2VyIHRoZSBJbnRlcnNlY3Rpb25PYnNlcnZlciB3YXRjaGVzOyBpdCBjYXJyaWVzIG5vIHZpc2libGVcbi8vIFVJIG9mIGl0cyBvd24g4oCUIHRoZSBza2VsZXRvbiAvIGEgZnV0dXJlIHNwaW5uZXIgaXMgd2hhdCB0ZWxscyB0aGUgdXNlclxuLy8gbW9yZSBpcyBvbiBpdHMgd2F5LlxuLmdzLXNlbnRpbmVsIHtcbiAgaGVpZ2h0OiAxcHg7XG59XG4iLCIvLyBfZ3JpZC10aWxlLnNjc3Ncbi8vXG4vLyBxZG5hcHJvLWdyaWQtdGlsZSAtIGdlbmVyaWMgYXBwLXdpZGUgZ3JpZCB0aWxlICh0aW50ZWQgYXJ0d29yayB6b25lICtcbi8vIHRpdGxlICsgb3B0aW9uYWwgbWV0YSwgY2VudGVyZWQsIGJlbG93IGl0KS4gR2VuZXJhbGlzZXMgdGhlIFBXQVxuLy8gZG9jdW1lbnRzIGdyaWQgYW5hdG9teSAoYXBwX2FwaV9xZG5hdjIvc3JjL1JFWC9SZXNvdXJjZXMvU2Nzcy9fZG9jdW1lbnRzLnNjc3Ncbi8vIC5kb2N1bWVudHNfcm93LS1ncmlkLCBOT1QgZWRpdGVkIGhlcmUpIHNvIGFueSBncmlkIG9mIGZpbGVzL2ZvbGRlcnMvdW5pdHMvXG4vLyBldGMuIGNhbiByZXVzZSBPTkUgY29tcG9uZW50IGluc3RlYWQgb2YgZm9ya2luZyB0aWxlIG1hcmt1cC5cbi8vXG4vLyBTSVpFIFRBQkxFIChLaW0ncyBicmllZjogMyBmaXhlZCBzaXplcywgZG9jdW1lbnQgKyBqdXN0aWZ5IHRoZSBudW1iZXJzKTpcbi8vICAgc2l6ZT1cInNcIiAgICAgICAgICAgIHdpZHRoIDk2cHggICBhcnR3b3JrIDYweDYwICAgZmFsbGJhY2sgZ2x5cGggMzBweCAgIHRpdGxlIDEycHgvNTAwICAgbWV0YSAxMHB4LzQwMFxuLy8gICBzaXplPVwibVwiIChkZWZhdWx0KSAgIHdpZHRoIDEyMHB4ICBhcnR3b3JrIDc2eDc2ICAgZmFsbGJhY2sgZ2x5cGggMzhweCAgIHRpdGxlIDEzcHgvNTAwICAgbWV0YSAxMXB4LzQwMFxuLy8gICBzaXplPVwibFwiICAgICAgICAgICAgIHdpZHRoIDE0OHB4ICBhcnR3b3JrIDkyeDkyICAgZmFsbGJhY2sgZ2x5cGggNDZweCAgIHRpdGxlIDE0cHgvNTAwICAgbWV0YSAxMnB4LzQwMFxuLy8gRGVsaWJlcmF0ZWx5IGRpc2NyZXRlIChub3QgYSBmcmVlIHBpeGVsIGF0dHJpYnV0ZSkgLSBzYW1lIHJlYXNvbmluZyBhc1xuLy8gcWRuYXByby1pY29uLWJ0bidzIDMgc2l6ZXM6IGEgZ3JpZCBtaXhpbmcgdGlsZSBzaXplcyBuZWVkcyB0byBsaW5lIHVwXG4vLyBhZ2FpbnN0IGEgc21hbGwgZml4ZWQgdm9jYWJ1bGFyeSwgbm90IGFyYml0cmFyeSB2YWx1ZXMuIFwibVwiIG1pcnJvcnNcbi8vIHFkbmFwcm8tbGlzdC1yb3cncyA0MHg0MCBsZWFkaW5nIHRpbGUgc2NhbGVkIHVwIGZvciBhIGdyaWQgY29udGV4dCAoYVxuLy8gZ3JpZCB0aWxlIGNhcnJpZXMgbW9yZSB2aXN1YWwgd2VpZ2h0IHRoYW4gYW4gaW5saW5lIHJvdyBpY29uKTsgcy9sIHN0ZXBcbi8vIGJ5IHJvdWdobHkgdGhlIHNhbWUgMy00cHgtcGVyLXRpZXIgcmF0aW8gdXNlZCBhY3Jvc3MgdGhpcyBsaWJyYXJ5J3Mgb3RoZXJcbi8vIHNpemVkIGNvbXBvbmVudHMgKGljb24tYnRuIDI0LzI4LzQ0LCBhdmF0YXIncyBvd24gc2l6ZSByYW1wKS5cbi8vXG4vLyBUSU5UIERFQ0lTSU9OIChnb3Zlcm5zIHRoZSBBUlRXT1JLIFpPTkUsIG5vdCB0aGUgd2hvbGUgdGlsZSBjYXJkKTpcbi8vIHFkbmFwcm8tbGlzdC1yb3cncyBgdGludGAgY29sb3VycyBpdHMgbGVhZGluZyBpY29uLVRJTEUgLSB0aGUgYXJ0d29yayB6b25lXG4vLyBoZXJlIGlzIHRoZSBkaXJlY3QgZXF1aXZhbGVudCBvZiB0aGF0IHRpbGUsIGp1c3Qgc3F1YXJlIGFuZCBiaWdnZXIuIFRoZVxuLy8gYWx0ZXJuYXRpdmUgKHRpbnRpbmcgdGhlIEVOVElSRSBjYXJkKSB3YXMgY29uc2lkZXJlZCBhbmQgcmVqZWN0ZWQ6IHRoZVxuLy8gY3VycmVudCBQV0EgZG9jdW1lbnRzIGdyaWQgYWxyZWFkeSBnaXZlcyBldmVyeSB0aWxlIGEgbmV1dHJhbCB3aGl0ZSBjYXJkXG4vLyB3aXRoIGEgXCJkb2N1bWVudHNfc2VjdGlvblwiLXN0eWxlIGhvdmVyIGxpZnQgKHNlZSB0aGUgZXhhY3QgbGlmdCB2YWx1ZXNcbi8vIHJldXNlZCBiZWxvdyk7IHRpbnRpbmcgdGhlIGZ1bGwgY2FyZCBwZXIgZmlsZS9mb2xkZXIgY29sb3VyIHdvdWxkIHR1cm4gYVxuLy8gZ3JpZCBvZiBtYW55IGZpbGVzIGludG8gYSBzb2xpZCB3YWxsIG9mIGNvbG91ciBhbmQgZmlnaHQgdGhhdCBlc3RhYmxpc2hlZFxuLy8gbmV1dHJhbC1jYXJkLXBsdXMtbGlmdCBsYW5ndWFnZSBldmVyeSBvdGhlciBjYXJkIGluIHRoaXMgZ3JpZCBhbHJlYWR5XG4vLyB1c2VzLiBDb25maW5pbmcgYHRpbnRgIHRvIHRoZSBhcnR3b3JrIHpvbmUga2VlcHMgdGhlIHRpbGUgY2FyZCBpdHNlbGZcbi8vIGNvbnNpc3RlbnQgd2l0aCBldmVyeSBvdGhlciBjYXJkIHdoaWxlIHN0aWxsIGdpdmluZyBmb2xkZXJzL2ZpbGVzIHRoZVxuLy8gc2FtZSBhdC1hLWdsYW5jZSBjb2xvdXIgY29kaW5nIHFkbmFwcm8tbGlzdC1yb3cvcWRuYXByby1waWNrZXItcm93L1xuLy8gcWRuYXByby10YXNrbGlzdC1jYXJkIGFscmVhZHkgdXNlIGVsc2V3aGVyZS4gU2FtZSA4IGhleCBwYWlycyBhc1xuLy8gcWRuYXByby1saXN0LXJvdydzIC5xbHItdGlsZS1jb2xvci0qIChjb3BpZWQgMToxLCBzYW1lIFwibm8gc2hhcmVkIHBhbGV0dGVcbi8vIG1vZHVsZSB5ZXRcIiBzaXR1YXRpb24gYXMgdGhhdCBjb21wb25lbnQncyBvd24gaGVhZGVyIGNvbW1lbnQgLSBldmVyeSB0aWxlXG4vLyBjb21wb25lbnQgaW4gdGhpcyBsaWJyYXJ5IGtlZXBzIGl0cyBvd24gY29weSB0b2RheSkuXG4vL1xuLy8gRk9OVC1XRUlHSFQ6IHRpdGxlIDUwMCAobWVkaXVtKSwgTk9UIDYwMC83MDAgLSBzYW1lIGNvbnZlbnRpb25cbi8vIHFkbmFwcm8tbGlzdC1yb3cncyB0aXRsZSBsYW5kZWQgb24gYWZ0ZXIgS2ltJ3MgXCJkb2N1bWVudHNfcm93IGZlbHQgdG9vXG4vLyBoZWF2eSBhdCA2MDBcIiBmZWVkYmFjayAoc2VlIF9saXN0LXJvdy5zY3NzJ3Mgb3duIGNyb3NzLWNvbXBvbmVudFxuLy8gZXZpZGVuY2UpLiBNZXRhIGZvbGxvd3MgdGhlIHNhbWUgbXV0ZWQvNDAwIGNvbnZlbnRpb24gYXMgbGlzdC1yb3cnc1xuLy8gc3VidGl0bGUgLyBldmVudC1jYXJkJ3MgbWV0YSB0ZXh0LlxuLy9cbi8vIFBSRVNTLU9OTFkgKDIyLjA3LjIwMjYpOiB0aGUgdGlsZSBoYXMgTk8gbWVudSBidXR0b24sIGxvbmctcHJlc3Mgb3Jcbi8vIGNvbnRleHRtZW51IGdlc3R1cmUgLSBpdCBmaXJlcyBhIHNpbmdsZSBxZG5hcHJvLWdyaWQtdGlsZS1wcmVzcyBhbmQgYVxuLy8gY29uc3VtZXIgb3BlbnMgYW55IHBlci10aWxlIGFjdGlvbnMgZnJvbSB0aGVyZS4gU28gdGhlIGNhcmQgcGFkZGluZyBpcyBhXG4vLyBwbGFpbiBzeW1tZXRyaWMgMTBweCAobm8gdG9wIGNsZWFyYW5jZSB0byByZXNlcnZlKSBhbmQgdGhlIHRvcC1yaWdodCBjb3JuZXJcbi8vIGlzIGZyZWUgZm9yIHRoZSBiYWRnZSBzbG90LlxuLy9cbi8vIEJBREdFIFNMT1Q6IGEgc2luZ2xlIG92ZXJsYXkgKHR5cGljYWxseSBxZG5hcHJvLXN0YXR1cy1iYWRnZTogZmF2b3VyaXRlXG4vLyBoZWFydCAvIG9mZmxpbmUgLyBuZXcpIGhhbmdzIG9uIHRoZSBjYXJkJ3MgT1VURVIgdG9wLXJpZ2h0IGNvcm5lciBhbmRcbi8vIG92ZXJoYW5ncyB0aGUgdG9wIGVkZ2UgKGEgY2hpbGQgb2YgdGhlIGhvc3QsIG5vdCB0aGUgYXJ0d29yayAtIHRoZSBhcnR3b3JrXG4vLyBjbGlwczsgdGhlIGNhcmQgZG9lcyBub3QpLiBTZWUgYC5xZ3QtYmFkZ2VgLlxuLy9cbi8vIEhPVkVSIExJRlQ6IHJldXNlcyB0aGUgRVhBQ1QgdHJhbnNsYXRlWSArIGJveC1zaGFkb3cgcGFpciBmcm9tIHRoZSBQV0Enc1xuLy8gb3duIFwiZG9jdW1lbnRzX3NlY3Rpb25cIiBjYXJkIGhvdmVyIChhcHBfYXBpX3FkbmF2MidzIF9kb2N1bWVudHMuc2Nzcyxcbi8vIHJlYWQtb25seSByZWZlcmVuY2UpIC0gS2ltJ3MgYnJpZWYgYXNrZWQgZm9yIFwibGlmdCB6b2FscyBkZVxuLy8gZG9jdW1lbnRlbi1rYWFydGVuXCIsIHNvIHRoaXMgaXMgdGhhdCBzYW1lIHJlY2lwZSwgbm90IGEgbmV3IG9uZS5cblxuLnFkbmFwcm8tZ3JpZC10aWxlIHtcbiAgICAtLXFndC1iZzogdmFyKC0tYy1iZy1jYXJkLCAjZmZmZmZmKTtcbiAgICAtLXFndC1iZy1ob3ZlcjogdmFyKC0tYy1iZy1jYXJkLWhvdmVyLCAjZjdmOGZhKTtcbiAgICAtLXFndC1iZy1wcmVzc2VkOiB2YXIoLS1jLXB1cnBsZS1zb2Z0LTEyLCByZ2JhKDY0LCA3MywgMTU0LCAwLjEyKSk7XG4gICAgLS1xZ3QtdGl0bGUtY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMWExZjRkKTtcbiAgICAtLXFndC1tZXRhLWNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xuICAgIC0tcWd0LWZvY3VzLXJpbmc6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKTtcbiAgICAtLXFndC1mb2N1cy1nbG93OiB2YXIoLS1jLXB1cnBsZS1zb2Z0LTE4LCByZ2JhKDY0LCA3MywgMTU0LCAwLjE4KSk7XG4gICAgLS1xZ3Qtc2VsZWN0ZWQtcmluZzogdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpO1xuICAgIC0tcWd0LXNlbGVjdGVkLWdsb3c6IHZhcigtLWMtYWN0aW9uLTE4LCByZ2JhKDcwLCA4MiwgMjQzLCAwLjE4KSk7XG4gICAgLy8gTEVUIE9QIDE4LjA4LjIwMjYgKGxhdGVyIGRpZSBkYWcpOiBhbGxlZW4gZGUgRE9NLXZvcm0gaXMgbm9nIGdlc3BpZWdlbGRcbiAgICAvLyBtZXQgcWRuYXByby10b3VjaC1idXR0b24uIERpZSBzdHlsZWVydCBkZSBwaWxsZW4gc2luZHMgS2ltcyBtb2NrdXAgYWxzXG4gICAgLy8gZ3JvdGUgaW4tZmxvdyBiYWxrZW4gKC5xdGItaGFzLXBpbGxzLCB6aWUgX3RvdWNoLWJ1dHRvbi5zY3NzKTsgZGl0XG4gICAgLy8gYmVzdGFuZCBob3VkdCBkZSBrbGVpbmUgaG9lay1jaGlwcyB0b3QgZWVuIGNvbnN1bWVudCBhbmRlcnMgdnJhYWd0LlxuICAgIC8vIFBpbGxzICgxOC4wOC4yMDI2LCBzZWUgLnFndC1waWxscyBiZWxvdykgLSBzdHJvbmcgcmV1c2VzIHRoZSBTQU1FXG4gICAgLy8gc29saWQgc2lnbmFsLXJlZCBxZG5hcHJvLW51bWJlci1pbmRpY2F0b3ItYmFkZ2UncyBgYWxlcnRgIGNvbG91ciB1c2VzXG4gICAgLy8gKC0tYy13YXJuLXJlZC01MDApLCBub3QgYSBuZXcgcmVkOyBzb2Z0IGlzIGEgZmxhdCBsaWdodC1ncmV5IGNoaXAgd2l0aFxuICAgIC8vIGFuIGFjdGlvbi1ibHVlIGljb24gYW5kIGEgZGFyayBjb3VudC5cbiAgICAtLXFndC1waWxsLXN0cm9uZy1iZzogdmFyKC0tYy13YXJuLXJlZC01MDAsICNkYzI2MjYpO1xuICAgIC0tcWd0LXBpbGwtc3Ryb25nLWZnOiAjZmZmZmZmO1xuICAgIC0tcWd0LXBpbGwtc29mdC1iZzogdmFyKC0tYy1ncmV5LTUwLCAjZjBmMWYyKTtcbiAgICAtLXFndC1waWxsLXNvZnQtaWNvbi1mZzogdmFyKC0tYy1hY3Rpb24tNTAwLCAjNDY1MmYzKTtcbiAgICAtLXFndC1waWxsLXNvZnQtY291bnQtZmc6IHZhcigtLXFndC10aXRsZS1jb2xvcik7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1xZ3QtYmcpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMywgMTJweCk7IC8vIDEycHggY2FyZCBjb3JuZXJzIChLaW0gMjIuMDcuMjAyNiwgd2FzIC0tci1jYXJkLzE2cHgpXG4gICAgcGFkZGluZzogMTBweDsgLy8gc3ltbWV0cmljIC0gbm8gbWVudSBidXR0b24gdG8gcmVzZXJ2ZSB0b3AgY2xlYXJhbmNlIGZvciAoS2ltIDIyLjA3LjIwMjYpXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZmLCBcIkludGVyXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZik7XG4gICAgY29sb3I6IHZhcigtLXFndC10aXRsZS1jb2xvcik7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAxNTBtcyBlYXNlLCB0cmFuc2Zvcm0gMTUwbXMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAxMDBtcyBlYXNlLW91dDtcblxuICAgICY6aG92ZXI6bm90KC5xZ3QtZGlzYWJsZWQpOm5vdCgucWd0LXN0YXRpYykge1xuICAgICAgICAvLyBFeGFjdCBsaWZ0IHJlY2lwZSBhcyBQV0EgLmRvY3VtZW50c19zZWN0aW9uOmhvdmVyIChyZWFkLW9ubHlcbiAgICAgICAgLy8gcmVmZXJlbmNlIGluIGFwcF9hcGlfcWRuYXYyJ3MgX2RvY3VtZW50cy5zY3NzKSAtIFwibGlmdCB6b2FscyBkZVxuICAgICAgICAvLyBkb2N1bWVudGVuLWthYXJ0ZW5cIiBwZXIgS2ltJ3MgYnJpZWYuXG4gICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjA3KSwgMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4wNik7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbiAgICB9XG5cbiAgICAvLyBBIHN0YXRpYyB0aWxlIGlzIGRpc3BsYXksIG5vdCBhIGNvbnRyb2wgLSBzZWUgdGhlIGBzdGF0aWNgIGF0dHJpYnV0ZSBpblxuICAgIC8vIHRoZSBKUyBoZWFkZXIuIE5vIHBvaW50ZXIgY3Vyc29yIGFuZCBubyBsaWZ0LCBzbyBpdCBkb2VzIG5vdCBhZHZlcnRpc2UgYVxuICAgIC8vIGNsaWNrIHRoYXQgZG9lcyBub3QgZXhpc3QuIFsxMC4wOC4yMDI2XVxuICAgICYucWd0LXN0YXRpYyB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICAmLmlzLXByZXNzZWQ6bm90KC5xZ3QtZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcWd0LWJnLXByZXNzZWQpO1xuICAgICAgICAvLyBTdWJ0bGUgc2NhbGUtZG93biBvbiB0YXAvcHJlc3MgZmVlZGJhY2sgKHNhbWUgcmVjaXBlIGFzXG4gICAgICAgIC8vIHFkbmFwcm8tdW5pdC1jYXJkJ3MgLmlzLXByZXNzaW5nKS5cbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk2KTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDcwbXMgZWFzZS1vdXQ7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpmb2N1cy12aXNpYmxlLFxuICAgICYuZm9yY2UtZm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgICAgaW5zZXQgMCAwIDAgMnB4IHZhcigtLXFndC1mb2N1cy1yaW5nKSxcbiAgICAgICAgICAgIGluc2V0IDAgMCAwIDVweCB2YXIoLS1xZ3QtZm9jdXMtZ2xvdyk7XG4gICAgfVxuXG4gICAgJi5xZ3Qtc2VsZWN0ZWQge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggdmFyKC0tcWd0LXNlbGVjdGVkLWdsb3cpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUsICNmM2Y1ZmYpO1xuXG4gICAgICAgIC5xZ3QtdGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXFndC1zZWxlY3RlZC1yaW5nKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucWd0LXNlbGVjdGVkOmhvdmVyOm5vdCgucWd0LWRpc2FibGVkKSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCB2YXIoLS1xZ3Qtc2VsZWN0ZWQtZ2xvdyksIDAgNHB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjA3KTtcbiAgICB9XG5cbiAgICAmLnFndC1kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgICAmOmhvdmVyOm5vdCgucWd0LWRpc2FibGVkKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJi5pcy1wcmVzc2VkOm5vdCgucWd0LWRpc2FibGVkKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUHJldmlldy1vbmx5IGZvcmNlLXN0YXRlIHV0aWxpdGllcyAobWlycm9yIHFkbmFwcm8tbGlzdC1yb3cpLlxuICAgICYuZm9yY2UtaG92ZXIge1xuICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4wNyksIDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gICAgfVxuICAgICYuZm9yY2UtcHJlc3NlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXFndC1iZy1wcmVzc2VkKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk2KTtcbiAgICB9XG59XG5cbi8vIC0tLS0gU2l6ZSB2YXJpYW50cyAtLS0tXG4vLyBXaWR0aCBpcyBzZXQgb24gdGhlIGhvc3QgaXRzZWxmICh0aGUgdGlsZSBpcyBhIGZpeGVkLWZvb3RwcmludCBncmlkIGNlbGwsXG4vLyBub3QgYSBmbHVpZCBibG9jaykgLSBhIGNvbnN1bWVyJ3MgQ1NTIGdyaWQganVzdCBuZWVkc1xuLy8gYGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDxzaXplIHdpZHRoPiwgMWZyKSlgIHRvXG4vLyBsaW5lIHRpbGVzIHVwIGNsZWFubHk7IHNlZSB0aGUgcHJldmlldyBmb3IgYSB3b3JraW5nIGV4YW1wbGUgcGVyIHNpemUuXG4ucWRuYXByby1ncmlkLXRpbGUucWd0LXNpemUtcyB7XG4gICAgd2lkdGg6IDk2cHg7XG5cbiAgICAucWd0LWFydHdvcmsgeyB3aWR0aDogNjBweDsgaGVpZ2h0OiA2MHB4OyB9XG4gICAgLnFndC1hcnR3b3JrLWljb24geyB3aWR0aDogMzBweDsgaGVpZ2h0OiAzMHB4OyB9XG4gICAgLnFndC10aXRsZSB7IGZvbnQtc2l6ZTogMTJweDsgfVxuICAgIC5xZ3QtbWV0YSB7IGZvbnQtc2l6ZTogMTBweDsgfVxufVxuXG4ucWRuYXByby1ncmlkLXRpbGUucWd0LXNpemUtbSB7XG4gICAgd2lkdGg6IDEyMHB4O1xuXG4gICAgLnFndC1hcnR3b3JrIHsgd2lkdGg6IDc2cHg7IGhlaWdodDogNzZweDsgfVxuICAgIC5xZ3QtYXJ0d29yay1pY29uIHsgd2lkdGg6IDM4cHg7IGhlaWdodDogMzhweDsgfVxuICAgIC5xZ3QtdGl0bGUgeyBmb250LXNpemU6IDEzcHg7IH1cbiAgICAucWd0LW1ldGEgeyBmb250LXNpemU6IDExcHg7IH1cbn1cblxuLnFkbmFwcm8tZ3JpZC10aWxlLnFndC1zaXplLWwge1xuICAgIHdpZHRoOiAxNDhweDtcblxuICAgIC5xZ3QtYXJ0d29yayB7IHdpZHRoOiA5MnB4OyBoZWlnaHQ6IDkycHg7IH1cbiAgICAucWd0LWFydHdvcmstaWNvbiB7IHdpZHRoOiA0NnB4OyBoZWlnaHQ6IDQ2cHg7IH1cbiAgICAucWd0LXRpdGxlIHsgZm9udC1zaXplOiAxNHB4OyB9XG4gICAgLnFndC1tZXRhIHsgZm9udC1zaXplOiAxMnB4OyB9XG59XG5cbi8vIC0tLS0gQXJ0d29yayB6b25lIC0tLS1cbi5xZ3QtYXJ0d29yayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMywgMTJweCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXFndC1hcnR3b3JrLWJnLCB2YXIoLS1jLXB1cnBsZS1zb2Z0LTEyLCByZ2JhKDY0LCA3MywgMTU0LCAwLjEyKSkpO1xuICAgIGNvbG9yOiB2YXIoLS1xZ3QtYXJ0d29yay1mZywgdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyAvLyBrZWVwIHRoZSBhY3Rpdml0eS1pY29uIHZhcmlhbnQgY2xpcHBlZCB0byB0aGUgcm91bmRlZCB6b25lXG59XG5cbi8vIEFjdGl2aXR5LWljb24gdmFyaWFudDogdGhlIHR3by10b25lIGlsbHVzdHJhdGl2ZSBpY29uIGZpbGxzIHRoZSBhcnR3b3JrLWljb25cbi8vIGJveCAoaXRzIG93biA8aW1nPiBzY2FsZXMgdG8gdGhlIGJveCB0aGUgc2l6ZSBydWxlcyBzZXQpLiBTYW1lIGlkZWEgYXMgdGhlXG4vLyBsaXN0LXJvdyBhY3Rpdml0eS1pY29uIHZhcmlhbnQsIGluIHRpbGUgZm9ybS4gWzIyLjA3LjIwMjZdXG4ucWd0LWFydHdvcmstYWN0aXZpdHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5xZ3QtYXJ0d29yay1hY3Rpdml0eSBpbWcsXG4ucWd0LWFydHdvcmstYWN0aXZpdHkgLmFjdGl2aXR5LWljb24taW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuLy8gVGlsZSBjb2xvdXIgcGFsZXR0ZSAtIFNBTUUgOCBodWVzICsgaGV4IHBhaXJzIGFzIHFkbmFwcm8tbGlzdC1yb3cnc1xuLy8gLnFsci10aWxlLWNvbG9yLSogKGNvcGllZCAxOjEgc28gYSBwYWdlIG1peGluZyBncmlkIHRpbGVzIHdpdGggbGlzdC1yb3dzXG4vLyByZWFkcyBhcyBvbmUgY29uc2lzdGVudCB0aW50ZWQtdGlsZSBmYW1pbHk7IG5vIHNoYXJlZCBTQ1NTXG4vLyBtYXAvbWl4aW4gZXhpc3RzIGZvciB0aGlzIHBhbGV0dGUgYW55d2hlcmUgeWV0LCBlYWNoIGNvbXBvbmVudCBtaXJyb3JzXG4vLyBpdHMgb3duIGNvcHkgLSBmb2xsb3dpbmcgdGhhdCBlc3RhYmxpc2hlZCBwYXR0ZXJuIHJhdGhlciB0aGFuIGludmVudGluZ1xuLy8gYSBuZXcgb25lIGhlcmUpLlxuLnFndC10aW50LXB1cnBsZSAgICAgIHsgLS1xZ3QtYXJ0d29yay1iZzogdmFyKC0tYy1jaGlwLXB1cnBsZS1iZyk7IC0tcWd0LWFydHdvcmstZmc6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKTsgfVxuLnFndC10aW50LWdyZXkgICAgICAgIHsgLS1xZ3QtYXJ0d29yay1iZzogdmFyKC0tYy1ncmV5LTUwKTsgLS1xZ3QtYXJ0d29yay1mZzogdmFyKC0tYy1ncmV5LTYwMCwgIzU2NWI2Nik7IH1cbi5xZ3QtdGludC1yZWQgICAgICAgICB7IC0tcWd0LWFydHdvcmstYmc6IHZhcigtLWMtc2lnbmFsLXJlZC1iZyk7IC0tcWd0LWFydHdvcmstZmc6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTsgfVxuLnFndC10aW50LXllbGxvdyAgICAgIHsgLS1xZ3QtYXJ0d29yay1iZzogdmFyKC0tYy1jaGlwLXllbGxvdy1iZyk7IC0tcWd0LWFydHdvcmstZmc6IHZhcigtLWMtc2lnbmFsLXllbGxvdy10ZXh0LCAjYmY3MjAyKTsgfVxuLnFndC10aW50LWdyZWVuICAgICAgIHsgLS1xZ3QtYXJ0d29yay1iZzogdmFyKC0tYy1jaGlwLWdyZWVuLWJnKTsgLS1xZ3QtYXJ0d29yay1mZzogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCwgIzQyOGI2ZSk7IH1cbi5xZ3QtdGludC1ibHVlICAgICAgICB7IC0tcWd0LWFydHdvcmstYmc6IHZhcigtLWMtc2lnbmFsLWJsdWUtYmcpOyAtLXFndC1hcnR3b3JrLWZnOiB2YXIoLS1jLXNpZ25hbC1ibHVlLXRleHQsICM2YThhYjQpOyB9XG4ucWd0LXRpbnQtYnJpZ2h0LWJsdWUgeyAtLXFndC1hcnR3b3JrLWJnOiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtMi1iZyk7IC0tcWd0LWFydHdvcmstZmc6IHZhcigtLWMtcHVycGxlLTQwMCk7IH1cbi5xZ3QtdGludC1waW5rICAgICAgICB7IC0tcWd0LWFydHdvcmstYmc6IHZhcigtLWMtc2lnbmFsLXBpbmstYmcpOyAtLXFndC1hcnR3b3JrLWZnOiB2YXIoLS1jLXNpZ25hbC1waW5rLXRleHQsICNiMjU3NzcpOyB9XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZ3QtdGludC1wdXJwbGUgICAgICB7IC0tcWd0LWFydHdvcmstYmc6ICMzYTM1NTU7IC0tcWd0LWFydHdvcmstZmc6IHZhcigtLWMtcHVycGxlLTIwMCwgI2E1YWNmZik7IH1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZ3QtdGludC1ncmV5ICAgICAgICB7IC0tcWd0LWFydHdvcmstYmc6ICM0MDQ0NGQ7IC0tcWd0LWFydHdvcmstZmc6IHZhcigtLWMtZ3JleS0zMDAsICNjNGM3Y2MpOyB9XG5bZGF0YS10aGVtZT1kYXJrXSAucWd0LXRpbnQtcmVkICAgICAgICAgeyAtLXFndC1hcnR3b3JrLWJnOiAjNWEyYjJiOyAtLXFndC1hcnR3b3JrLWZnOiB2YXIoLS1jLXdhcm4tcmVkLTQwMCwgI2Y4NzE3MSk7IH1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZ3QtdGludC15ZWxsb3cgICAgICB7IC0tcWd0LWFydHdvcmstYmc6ICM1YTRkMWY7IC0tcWd0LWFydHdvcmstZmc6IHZhcigtLWMtd2Fybi15ZWxsb3ctNTAwLCAjZmJiZjI0KTsgfVxuW2RhdGEtdGhlbWU9ZGFya10gLnFndC10aW50LWdyZWVuICAgICAgIHsgLS1xZ3QtYXJ0d29yay1iZzogIzJhNTU0NDsgLS1xZ3QtYXJ0d29yay1mZzogIzdmZTBiYzsgfVxuW2RhdGEtdGhlbWU9ZGFya10gLnFndC10aW50LWJsdWUgICAgICAgIHsgLS1xZ3QtYXJ0d29yay1iZzogIzJlM2U1NDsgLS1xZ3QtYXJ0d29yay1mZzogIzhmYjRlMDsgfVxuW2RhdGEtdGhlbWU9ZGFya10gLnFndC10aW50LWJyaWdodC1ibHVlIHsgLS1xZ3QtYXJ0d29yay1iZzogIzNhNGE4YTsgLS1xZ3QtYXJ0d29yay1mZzogI2I5YzhmNTsgfVxuW2RhdGEtdGhlbWU9ZGFya10gLnFndC10aW50LXBpbmsgICAgICAgIHsgLS1xZ3QtYXJ0d29yay1iZzogIzRlMmEzNjsgLS1xZ3QtYXJ0d29yay1mZzogI2U0YTBiODsgfVxuXG4vLyAtLS0tIFNsb3Qtd3JhcCB1dGlsaXR5IChzdGFibGUgd3JhcHBlciBmb3IgY29uZGl0aW9uYWwgdGVtcGxhdGluZy1lbmdpbmVcbi8vIGNvbnRlbnQgaW5zaWRlIGEgc2xvdCwgZS5nLiBSYWN0aXZlIHt7I2lmfX0pIC0tLS1cbi8vIFNhbWUgZml4LCBzYW1lIHJlYXNvbmluZywgYXMgcWRuYXByby1saXN0LXJvdydzIC5xbHItc2xvdC13cmFwIChzZWVcbi8vIF9saXN0LXJvdy5zY3NzJ3Mgb3duIGNvbW1lbnQgZm9yIHRoZSBmdWxsIGluY2lkZW50IHdyaXRldXAgLyBlcnJvciA1MzMxKTpcbi8vIGEgdGVtcGxhdGluZyBlbmdpbmUncyBjb25kaXRpb25hbCBhbmNob3IgbXVzdCBuZXZlciBzaXQgZGlyZWN0bHkgb24gdGhlXG4vLyBzbG90PVwiLi4uXCIgZWxlbWVudCBpdHNlbGYsIHNpbmNlIHRoaXMgY29tcG9uZW50IG1vdmVzIHRoYXQgZWxlbWVudCBpbnRvIGFuXG4vLyBpbnRlcm5hbCBjb250YWluZXIgb24gZmlyc3QgcmVuZGVyIC0gYWx3YXlzIHdyYXAgdGhlIGNvbmRpdGlvbmFsIGluc2lkZSBhblxuLy8gYWx3YXlzLXByZXNlbnQgPHNwYW4gc2xvdD1cIi4uLlwiIGNsYXNzPVwicWd0LXNsb3Qtd3JhcFwiPi4gVGhpcyBjbGFzcyB3YXNcbi8vIGRvY3VtZW50ZWQgaW4gcWRuYS1ncmlkLXRpbGUuanMncyBoZWFkZXIgY29tbWVudCBiZWZvcmUgaXQgZXhpc3RlZCBoZXJlXG4vLyAoYSBQV0Etc2lkZSBmb2xsb3ctdXAgKEUtZG9jdW1lbnRzLmh0bWwpIGhhZCB0byBkZWZpbmUgaXRzIG93biBsb2NhbFxuLy8gLmRvY3VtZW50c19ncmlkX2JhZGdlX3dyYXAgaW4gdGhlIG1lYW50aW1lKSAtIGRlZmluZWQgZm9yIHJlYWwgbm93IHNvXG4vLyBub3RoaW5nIG5lZWRzIGEgbG9jYWwgc3RhbmQtaW4gYW55bW9yZS5cbi5xZ3Qtc2xvdC13cmFwIHtcbiAgICBkaXNwbGF5OiBjb250ZW50cztcbn1cblxuLy8gLS0tLSBCYWRnZSBzbG90OiBzdHJhZGRsaW5nIHRoZSBjYXJkJ3MgT1VURVIgdG9wLXJpZ2h0IGNvcm5lciAtLS0tXG4vLyBUaGUgc3RhdHVzLWJhZGdlIChmYXZvdXJpdGUgaGVhcnQgLyBvZmZsaW5lIC8gbmV3KSBoYW5ncyBvbiB0aGUgY2FyZCdzXG4vLyB0b3AtcmlnaHQgY29ybmVyIGFuZCBPVkVSSEFOR1MgdGhlIHRvcCBlZGdlICh0cmFuc2xhdGVZIHB1bGxzIGl0IHVwIHNvIGl0XG4vLyBzaXRzIGhhbGYgYWJvdmUgdGhlIGNhcmQpLCBwZXIgS2ltJ3MgZGVzaWduLiBJdCBpcyBhIGNoaWxkIG9mIHRoZSBob3N0LCBub3Rcbi8vIHRoZSBhcnR3b3JrICh0aGUgYXJ0d29yayBjbGlwcyB3aXRoIG92ZXJmbG93OmhpZGRlbiksIGFuZCB0aGUgY2FyZCBpdHNlbGZcbi8vIGhhcyBubyBvdmVyZmxvdyBjbGlwLCBzbyB0aGUgb3Zlcmhhbmcgc2hvd3MuIFtLaW0gMjIuMDcuMjAyNl1cbi5xZ3QtYmFkZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IC04cHg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMCUpO1xuICAgIHotaW5kZXg6IDI7XG5cbiAgICAmOmVtcHR5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi8vIC0tLS0gUGlsbHM6IGF0dHJpYnV0ZS1kcml2ZW4gc2lnbmFsIHBhaXIsIHN0YWNrZWQgdG9wLXJpZ2h0IChhZGRlZFxuLy8gMTguMDguMjAyNiwgS2ltJ3Mgc2tldGNoLCBhcHByb3ZlZCkgLS0tLVxuLy8gVHdvIGluZGVwZW5kZW50LCBjb3VudC1nYXRlZCBwaWxscyBpbiB0aGUgU0FNRSBjb3JuZXIgcmVhbC1lc3RhdGUgYXNcbi8vIGAucWd0LWJhZGdlYCBhYm92ZS4gQSB0aWxlIHdpdGggTkVJVEhFUiBgcGlsbC1zdHJvbmdgIG5vciBgcGlsbC1zb2Z0YCBzZXRcbi8vIChvciBib3RoIGF0IFwiMFwiKSByZW5kZXJzIG5vIGAucWd0LXBpbGxzYCBlbGVtZW50IGF0IGFsbCAocWRuYS1ncmlkLXRpbGUuanNcbi8vIGBfYnVpbGRQaWxsc2AgcmV0dXJucyBudWxsKSAtIG5vIGVtcHR5IHNwYWNlLCBubyBmbGF0LWNvbG91ciBwYXRjaDogdGhlXG4vLyBkZXZpYXRpb24gZnJvbSBhIHBsYWluIHRpbGUgSVMgdGhlIHNpZ25hbCAoS2ltJ3MgZGVjaXNpb24pLlxuLy9cbi8vIEhJRVJBUkNIWSBpcyB0aGUgYWN0dWFsIHBvaW50IG9mIHRoZSBkZXNpZ246IHBpbGwtc3Ryb25nIGlzIGEgU09MSUQsXG4vLyBzYXR1cmF0ZWQgZmlsbCB0aGF0IFwic2hvdXRzXCIgKFB1bHNlOiByZWFkeS10by1kbyBzdGVwcyA9IHdvcmspOyBwaWxsLXNvZnRcbi8vIGlzIGEgcXVpZXQgZmxhdCB0aW50IHRoYXQgXCJ3aGlzcGVyc1wiIChQdWxzZTogc29jaWFsIHVwZGF0ZXMpLiBTdHJvbmdcbi8vIHN0YWNrcyBBQk9WRSBzb2Z0IHNvIHRoZSBleWUgbGFuZHMgb24gaXQgZmlyc3QuXG4vL1xuLy8gQ09MTElTSU9OIFdJVEggVEhFIENPUk5FUiBCQURHRTogYm90aCB0aGlzIGFuZCBgLnFndC1iYWRnZWAgb2NjdXB5IHRoZVxuLy8gdGlsZSdzIHRvcC1yaWdodCBjb3JuZXIuIEEgdGlsZSB1c2luZyBPTkxZIHRoZSBjb3JuZXIgYmFkZ2UgaXMgdW50b3VjaGVkXG4vLyBieSBhbnkgb2YgdGhpcyAodW5jaGFuZ2VkIENTUyBhYm92ZSkuIEEgdGlsZSBjb21iaW5pbmcgdGhlIGNvcm5lciBiYWRnZVxuLy8gV0lUSCBhIHBpbGwgaXMgYSBjb2xsaXNpb24gS2ltJ3MgYnJpZWYgZXhwbGljaXRseSBhY2NlcHRzIHJhdGhlciB0aGFuXG4vLyBhc2tzIGZvciBhIGNvbGxpc2lvbi1hdm9pZGluZyBsYXlvdXQgLSBgLnFndC1waWxsc2Agc2l0cyBhdCBhIGhpZ2hlclxuLy8gei1pbmRleCBhbmQgd2lucyB0aGF0IGNvcm5lci5cbi5xZ3QtcGlsbHMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDhweDtcbiAgICByaWdodDogOHB4O1xuICAgIHotaW5kZXg6IDM7IC8vIGFib3ZlIC5xZ3QtYmFkZ2UgKHotaW5kZXggMikgLSBwaWxscyB3aW4gdGhlIGNvcm5lciB3aGVuIGJvdGggZXhpc3RcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGdhcDogNHB4O1xufVxuXG4ucWd0LXBpbGwge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAzcHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mZiwgXCJJbnRlclwiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWYpO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5xZ3QtcGlsbC1pY29uIHtcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5xZ3QtcGlsbC1jb3VudCB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi8vIHBpbGwtc3Ryb25nOiBzb2xpZCBmaWxsLCB3aGl0ZSBpY29uICsgd2hpdGUgY291bnQuXG4ucWd0LXBpbGwtc3Ryb25nIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1xZ3QtcGlsbC1zdHJvbmctYmcpO1xuICAgIGNvbG9yOiB2YXIoLS1xZ3QtcGlsbC1zdHJvbmctZmcpO1xuXG4gICAgLnFndC1waWxsLWljb24geyBjb2xvcjogdmFyKC0tcWd0LXBpbGwtc3Ryb25nLWZnKTsgfVxufVxuXG4vLyBCZXNsaXN0IChvcmtlc3RyYXRvciwgMTguMDguMjAyNiwgdGVnZW4gS2ltcyBzY2hldHMgZ2VsZWdkKTogZGVcbi8vIFwia2xlaW5lIHB1bnRcIiBiaWogZGUgc29mdC1waWwgeml0IElOIGhldCBpY29vbiB6ZWxmIChkZSBjb25zdW1lbnRcbi8vIGtpZXN0IGJ2LiBtZXNzYWdlLWJhZGdlLW91dGxpbmUsIGVlbiB0ZWtzdGJhbGxvbiBtZXQgcHVudCkuIEVyIGtvbXRcbi8vIGR1cyBHRUVOIGxvcyBwdW50LWVsZW1lbnQgYmlqOyBkZXplIENTUyBob2VmdCBuaWV0cyBleHRyYSdzIHRlIGRvZW4uXG4ucWd0LXBpbGwtc29mdCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcWd0LXBpbGwtc29mdC1iZyk7XG4gICAgY29sb3I6IHZhcigtLXFndC1waWxsLXNvZnQtY291bnQtZmcpO1xuXG4gICAgLnFndC1waWxsLWljb24geyBjb2xvcjogdmFyKC0tcWd0LXBpbGwtc29mdC1pY29uLWZnKTsgfVxufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWd0LXBpbGwtc29mdCB7XG4gICAgLy8gU2FtZSBkYXJrIHN1cmZhY2UgYXMgLnFndC10aW50LWdyZXkncyBkYXJrIGJnIGFib3ZlIC0gYSBsaWdodC1ncmV5XG4gICAgLy8gZmxhdCBjaGlwIHdvdWxkIHJlYWQgYXMgYSBwYWxlLCBvdXQtb2YtcGxhY2UgcGF0Y2ggb24gYSBkYXJrIGNhcmQuXG4gICAgLS1xZ3QtcGlsbC1zb2Z0LWJnOiAjNDA0NDRkO1xuICAgIC0tcWd0LXBpbGwtc29mdC1jb3VudC1mZzogdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYyk7XG59XG5cbi8vIC0tLS0gQm9keTogdGl0bGUgKyBvcHRpb25hbCBtZXRhLCBjZW50ZXJlZCAtLS0tXG4ucWd0LWJvZHkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMnB4O1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5xZ3QtdGl0bGUge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7IC8vIHNlZSBmaWxlIGhlYWRlciAtIHNhbWUgXCJub3QgNjAwXCIgZGVjaXNpb24gYXMgcWRuYXByby1saXN0LXJvd1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgY29sb3I6IHZhcigtLXFndC10aXRsZS1jb2xvcik7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLy8gSGFyZCAyLWxpbmUgY2xhbXAgLSB0aGlzIGlzIHRoZSBhY3R1YWwgYnVnIGZpeDogdGhlIFBXQSdzIGN1cnJlbnRcbiAgICAvLyBncmlkIHRpbGUgbGV0cyBsb25nIGZpbGVuYW1lcyBydW4gb3V0c2lkZSB0aGUgdGlsZSBlZGdlLiBUaGlzXG4gICAgLy8gZ3VhcmFudGVlcyB0aGV5IG5ldmVyIGNhbiwgcmVnYXJkbGVzcyBvZiB0aWxlIHNpemUuXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuXG4ucWd0LW1ldGEge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBjb2xvcjogdmFyKC0tcWd0LW1ldGEtY29sb3IpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLy8gUmljaCBtZXRhIGxpbmUgKHNsb3Q9XCJtZXRhXCIsIGUuZy4gYSBxZG5hcHJvLXRhZyBpbnN0ZWFkIG9mIHBsYWluIHRleHQpLiBUaGVcbi8vIHRleHQgcnVsZXMgYWJvdmUgKG5vd3JhcCArIGVsbGlwc2lzKSB3b3VsZCBjbGlwIGEgdGFnJ3Mgb3duIHBhZGRpbmcsIHNvIHRoZVxuLy8gc2xvdHRlZCB2YXJpYW50IGxheXMgaXRzIGNvbnRlbnQgb3V0IGluc3RlYWQgb2YgdHJlYXRpbmcgaXQgYXMgb25lIHN0cmluZy5cbi8vIFsxMC4wOC4yMDI2XVxuLnFndC1tZXRhLXJpY2gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgIG1hcmdpbi10b3A6IDJweDtcbn1cblxuLnFndC1sYXlvdXQtdGlsZSAucWd0LW1ldGEtcmljaCB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8vIC0tLS0gUGljdHVyZSBpbiB0aGUgYXJ0d29yayB6b25lIChgaW1hZ2VgIGF0dHJpYnV0ZSkgLS0tLVxuLy8gVGhlIHpvbmUgdXNlZCB0byBiZSBpY29uLW9ubHk7IGEgZ3JpZCBjb3VsZCBuZXZlciBzaG93IGEgcHJldmlldyBvZiB0aGVcbi8vIHRoaW5nIGl0c2VsZi4gVGhlIHBpY3R1cmUgZmlsbHMgdGhlIHpvbmUgYW5kIHRoZSBUSU5UIHN0YXlzIHVuZGVybmVhdGggaXQsXG4vLyBzbyBhIHRyYW5zcGFyZW50IFBORyBrZWVwcyBzaXR0aW5nIG9uIGl0cyBvd24gY29sb3VyIGFuZCBhIHJlY29yZCB3aXRob3V0IGFcbi8vIHBpY3R1cmUgZmFsbHMgYmFjayB0byB0aGUgdGludGVkIGljb24gaW5zdGVhZCBvZiBhbiBlbXB0eSBncmV5IGhvbGVcbi8vIChLaW0gMTAuMDguMjAyNikuIFsxMC4wOC4yMDI2XVxuLnFndC1hcnR3b3JrLWltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgJi5xZ3QtZml0LWNvdmVyICAgeyBvYmplY3QtZml0OiBjb3ZlcjsgfVxuICAgICYucWd0LWZpdC1jb250YWluIHsgb2JqZWN0LWZpdDogY29udGFpbjsgfVxuICAgIC8vIFwidG9wXCIgYW5jaG9ycyBhIGNvdmVyIGNyb3AgdG8gdGhlIFRPUC1MRUZULCBmb3IgYSBzY3JlZW5zaG90IHdob3NlXG4gICAgLy8gcmVjb2duaXNhYmxlIHBhcnQgKHRpdGxlICsgZmlyc3QgY2hhcnRzKSBpcyB1cCB0aGVyZSAtIHRoZSBzYW1lIHJ1bGUgdGhlXG4gICAgLy8gdGFibGUncyBvd24gLnFkbmFwcm8tdGFibGUtY2FyZF9fdGh1bWIgdXNlZCBiZWZvcmUgdGhpcyBjb21wb25lbnRcbiAgICAvLyByZXBsYWNlZCBpdC5cbiAgICAmLnFndC1wb3MtdG9wICAgIHsgb2JqZWN0LXBvc2l0aW9uOiB0b3AgbGVmdDsgfVxuICAgICYucWd0LXBvcy1jZW50ZXIgeyBvYmplY3QtcG9zaXRpb246IGNlbnRlcjsgfVxufVxuXG4vLyAtLS0tIFN0YXRzIHJvdyAoc2xvdD1cInN0YXRzXCIpIC0tLS1cbi8vIFNtYWxsIGxhYmVsL3ZhbHVlIHBhaXJzIGF0IHRoZSBib3R0b20gb2YgdGhlIHRleHQgYmxvY2ssIGZvciB0aGUgXCJjYXJkXCJcbi8vIGxheW91dCAoYSB0YWJsZSdzIGdyaWQgdmlldyBzaG93cyBlLmcuIFwiQUFOR0VNQUFLVCAwNS4wNy4yMDI2XCIpLiBTYW1lIHR5cGVcbi8vIHNjYWxlIHRoZSB0YWJsZSdzIG93biBjYXJkIHN0YXRzIHVzZWQsIHNvIHN3aXRjaGluZyBxZG5hcHJvLXRhYmxlIG92ZXIgdG9cbi8vIHRoaXMgY29tcG9uZW50IGlzIG5vdCBhbHNvIGEgdHlwb2dyYXBoeSBjaGFuZ2UuIFsxMC4wOC4yMDI2XVxuLnFndC1zdGF0cyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA2cHggMTRweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiA5cHg7XG5cbiAgICAmOmVtcHR5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5xZG5hcHJvLWdyaWQtdGlsZS1zdGF0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxcHg7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4ucWd0cy1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMC41cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTQwMCk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xufVxuXG4ucWd0cy12YWx1ZSB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogdmFyKC0tYy1jaGlwLWJsdWUtdGV4dCk7XG59XG5cbi8vIC0tLS0gTGF5b3V0OiBcImNhcmRcIiAod2lkZSB2YXJpYW50KSAtLS0tXG4vL1xuLy8gQWRkZWQgMTAuMDguMjAyNiBmb3IgcWRuYXByby10YWJsZSdzIGdyaWQgdmlldywgd2hpY2ggdW50aWwgdGhlbiBjYXJyaWVkIGl0c1xuLy8gb3duIGhhbmRyb2xsZWQgYC5xZG5hcHJvLXRhYmxlLWNhcmRgIG1hcmt1cCArIH4xNTAgbGluZXMgb2YgQ1NTLiBTYW1lIHRocmVlXG4vLyB6b25lcyBhcyB0aGUgdGlsZSwgc3RhY2tlZCBkaWZmZXJlbnRseTogdGhlIGFydHdvcmsgYmVjb21lcyBhIGZ1bGwtd2lkdGhcbi8vIEJBTk5FUiwgdGhlIHRleHQgYmxvY2sgc2l0cyBsZWZ0LWFsaWduZWQgdW5kZXIgaXQsIGFuZCBhbiBvcHRpb25hbCBzdGF0cyByb3dcbi8vIGNsb3NlcyB0aGUgY2FyZC5cbi8vXG4vLyBXSURUSDogdGhlIGhvc3QgZmlsbHMgaXRzIGdyaWQgY29sdW1uICh0aGUgY29uc3VtZXIncyBgbWlubWF4KClgIGRlY2lkZXMgaG93XG4vLyB3aWRlIHRoYXQgaXMsIGUuZy4gdGhlIHRhYmxlJ3MgYG1pbm1heCgyMjBweCwgMWZyKWApLCBzbyBgc2l6ZWAgaGVyZSBvbmx5XG4vLyBwaWNrcyB0aGUgYmFubmVyIGhlaWdodCArIHR5cGUgc2NhbGUuIFRoYXQgaXMgdGhlIG9uZSB0aGluZyB0aGF0IGdlbnVpbmVseVxuLy8gZGlmZmVycyBmcm9tIHRoZSB0aWxlIGxheW91dCwgd2hlcmUgdGhlIHdpZHRoIGlzIGZpeGVkIG9uIHB1cnBvc2UuXG4vL1xuLy8gVGhlIGNhcmQga2VlcHMgdGhlIE5FVVRSQUwgc3VyZmFjZSArIGhvdmVyIGxpZnQgb2YgdGhlIHRpbGUgbGF5b3V0IGFuZCBsZXRzXG4vLyBgdGludGAgY29sb3VyIHRoZSBiYW5uZXIgb25seSAoS2ltIDEwLjA4LjIwMjYpIC0gdGhlIHNhbWUgZGVjaXNpb24sIGFuZCB0aGVcbi8vIHNhbWUgcmVhc29uaW5nLCBhcyB0aGUgZmlsZS1oZWFkZXIgY29tbWVudCBhYm92ZTogYSBncmlkIG9mIG1hbnkgcm93cyB0aW50ZWRcbi8vIGVkZ2UgdG8gZWRnZSBiZWNvbWVzIGEgd2FsbCBvZiBjb2xvdXIgYW5kIGZpZ2h0cyB0aGUgbGlmdC5cbi8vXG4vLyBUV08gS05PV04gRElGRkVSRU5DRVMgZnJvbSB0aGUgbWFya3VwIHRoaXMgcmVwbGFjZXMsIGJvdGggZGVsaWJlcmF0ZTpcbi8vICAgLSB0aGUgdGl0bGUgc3RheXMgd2VpZ2h0IDUwMCBhbmQgY2xhbXBzIHRvIFRXTyBsaW5lcyAodGhlIG9sZCB0YWJsZSBjYXJkXG4vLyAgICAgd2FzIDYwMCBhbmQgY3V0IG9mZiBhZnRlciBvbmUpLiBCb3RoIGFyZSB0aGlzIGxpYnJhcnkncyBkb2N1bWVudGVkXG4vLyAgICAgY29udmVudGlvbnMgYW5kIHRoZSBjbGFtcCBpcyB0aGUgYnVnIHRoaXMgY29tcG9uZW50IGV4aXN0cyB0byBmaXguXG4vLyAgIC0gY29ybmVycyBhcmUgMTJweCwgbm90IHRoZSB0YWJsZSBjYXJkJ3MgOHB4LCBzbyBpdCBtYXRjaGVzIGV2ZXJ5IG90aGVyXG4vLyAgICAgdjIgY2FyZCBzdXJmYWNlLlxuLnFkbmFwcm8tZ3JpZC10aWxlLnFndC1sYXlvdXQtY2FyZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWdyZXktMTAwKTtcbiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjA3KTtcbiAgICAvLyBOT1Qgb3ZlcmZsb3c6aGlkZGVuIC0gdGhlIGJhZGdlIGhhcyB0byBrZWVwIG92ZXJoYW5naW5nIHRoZSB0b3AgZWRnZS5cbiAgICAvLyBUaGUgYmFubmVyIGNsaXBzIGl0c2VsZiB3aXRoIGl0cyBvd24gcm91bmRlZCB0b3AgY29ybmVycyBpbnN0ZWFkLlxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gICAgLnFndC1hcnR3b3JrIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMywgMTJweCkgdmFyKC0tci0zLCAxMnB4KSAwIDA7XG4gICAgfVxuXG4gICAgLy8gQSBjYXJkIHdpdGggbm90aGluZyB0byBzaG93IGluIHRoZSBiYW5uZXIgc2hvd3Mgbm8gYmFubmVyIC0gYSAxMzZweFxuICAgIC8vIGVtcHR5IGNvbG91ciBiYW5kIGFib3ZlIHRoZSB0ZXh0IGlzIHdvcnNlIHRoYW4gbm8gYmFuZCBhdCBhbGwuIFRoZSB0aWxlXG4gICAgLy8gbGF5b3V0IGRlbGliZXJhdGVseSBrZWVwcyBpdHMgY29udGVudC1sZXNzIHpvbmUgKHNlZSB0aGUgYGljb25gXG4gICAgLy8gYXR0cmlidXRlJ3MgZG9jYmxvY2spOyBvbmx5IHRoZSB3aWRlIGNhcmQgY29sbGFwc2VzIGl0LCBiZWNhdXNlIHRoZXJlXG4gICAgLy8gdGhlIGVtcHR5IHpvbmUgaXMgdGhlIHNpemUgb2YgdGhlIGNhcmQgaXRzZWxmLlxuICAgIC5xZ3QtYXJ0d29yazplbXB0eSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnFndC1ib2R5IHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIHBhZGRpbmc6IDE0cHggMTVweDtcbiAgICAgICAgZ2FwOiAzcHg7XG4gICAgfVxuXG4gICAgLnFndC10aXRsZSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICAgIH1cblxuICAgIC8vIEEgc2xvdHRlZCBhdmF0YXIgZ2V0cyBhIFNRVUFSRSBCT1ggYW5kIG5vdGhpbmcgZWxzZS4gcWRuYXByby1hdmF0YXIgZHJhd3NcbiAgICAvLyBpdHMgb3duIGNpcmNsZSBhbmQgZml0cyBpdHMgb3duIGFuaW1hbC9waG90by9pbml0aWFscyBpbnNpZGUgaXQuXG4gICAgLy9cbiAgICAvLyBUaGlzIHVzZWQgdG8gYWxzbyBmb3JjZSBib3JkZXItcmFkaXVzOjUwJSwgb3ZlcmZsb3c6aGlkZGVuIGFuZFxuICAgIC8vIG9iamVjdC1maXQ6Y292ZXIgb250byB0aGUgaW5uZXIgaW1hZ2Ug4oCUIGluaGVyaXRlZCBmcm9tIHRoZSB0YWJsZSBjYXJkJ3NcbiAgICAvLyBtYXJrdXAgdGhpcyByZXBsYWNlZC4gT24gYSBwaG90byB0aGF0IGlzIGludmlzaWJsZSwgYnV0IGFuIEFOSU1BTCB2aWduZXR0ZVxuICAgIC8vIGlzIGRyYXduIHRvIHNpdCBpbnNpZGUgaXRzIGNpcmNsZSB3aXRoIGl0cyBlYXJzIGFuZCBjaGVla3MgcmVhY2hpbmcgdGhlXG4gICAgLy8gZWRnZSwgc28gYSBzZWNvbmQsIHRpZ2h0ZXIgY2lyY2xlIGN1dCB0aGVtIG9mZjogdGhlIHJhYmJpdCBsb3N0IGl0cyBlYXJzXG4gICAgLy8gYW5kIHRoZSBiZWFyIGl0cyBjaGVla3MuIFtLaW0gMTAuMDguMjAyNl0gT25seSB0aGUgYm94IHN0YXlzLCBiZWNhdXNlIHRoZVxuICAgIC8vIGJveCBoYXMgdG8gYmUgc3F1YXJlIG9yIGEgNTAlIHJhZGl1cyB0dXJucyBpbnRvIGFuIGVsbGlwc2UuXG4gICAgLnFndC1hcnR3b3JrIHFkbmFwcm8tYXZhdGFyIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgfVxufVxuXG4vLyBCYW5uZXIgaGVpZ2h0LCBnbHlwaCBzaXplLCBhdmF0YXIgc2l6ZSBhbmQgdHlwZSBzY2FsZSBwZXIgc2l6ZS4gVGhlIFwibVwiIHJvd1xuLy8gaXMgdGhlIHRhYmxlIGNhcmQncyBleGlzdGluZyAxMzZweCBiYW5uZXIsIHNvIHRoZSBkZWZhdWx0IGNhcmQgaXMgdGhlIHNhbWVcbi8vIGhlaWdodCBpdCB3YXMgYmVmb3JlIHRoaXMgY29tcG9uZW50IHRvb2sgdGhlIGpvYiBvdmVyLlxuLy9cbi8vIEFWQVRBUiBTSVpFIChLaW0gMTAuMDguMjAyNiwgXCJkZSBhdmF0YXJzIHppam4gd2VsIGhlZWVlZWwgZ3Jvb3RcIik6IHRoZSBvbGRcbi8vIHRhYmxlIGNhcmQgZHJldyBpdHMgYXZhdGFyIGF0IDExMnB4IGluc2lkZSB0aGF0IDEzNnB4IGJhbm5lciAtIG5lYXJseSB0aGVcbi8vIGZ1bGwgaGVpZ2h0LiBOb2JvZHkgbm90aWNlZCB3aGlsZSB0aGUgb25seSBncmlkIHdpdGggYXZhdGFycyBoYWQgbm8gb3RoZXJcbi8vIHZpc3VhbCBuZXh0IHRvIGl0OyBpbiBvbmUgZ3JpZCBXSVRIIGljb25zLCBhIDExMnB4IGNpcmNsZSBiZXNpZGUgYSA0NHB4IGljb25cbi8vIHJlYWRzIGFzIHR3byBkaWZmZXJlbnQgc3lzdGVtcy4gVGhlIGNpcmNsZSBub3cgc2l0cyBhIHN0ZXAgQUJPVkUgdGhlIGljb25cbi8vICg2NCB2cyA0NCBhdCBcIm1cIikgcmF0aGVyIHRoYW4gdGhyZWUgdGltZXMgaXRzIHNpemU6IGEgcm91bmQgc2hhcGUgY2Fycmllc1xuLy8gbGVzcyB3ZWlnaHQgdGhhbiBhIHNxdWFyZSBnbHlwaCBvZiB0aGUgc2FtZSBoZWlnaHQsIGFuZCBpbml0aWFscyBoYXZlIHRvXG4vLyBzdGF5IHJlYWRhYmxlIGluc2lkZSBpdC5cbi5xZG5hcHJvLWdyaWQtdGlsZS5xZ3QtbGF5b3V0LWNhcmQucWd0LXNpemUtcyB7XG4gICAgLnFndC1hcnR3b3JrIHsgaGVpZ2h0OiA5NnB4OyB9XG4gICAgLnFndC1hcnR3b3JrLWljb24geyB3aWR0aDogMzRweDsgaGVpZ2h0OiAzNHB4OyB9XG4gICAgLnFndC1hcnR3b3JrIHFkbmFwcm8tYXZhdGFyIHsgd2lkdGg6IDQ4cHg7IGhlaWdodDogNDhweDsgfVxuICAgIC5xZ3QtdGl0bGUgeyBmb250LXNpemU6IDEzcHg7IH1cbiAgICAucWd0LW1ldGEgeyBmb250LXNpemU6IDExLjVweDsgfVxufVxuXG4ucWRuYXByby1ncmlkLXRpbGUucWd0LWxheW91dC1jYXJkLnFndC1zaXplLW0ge1xuICAgIC5xZ3QtYXJ0d29yayB7IGhlaWdodDogMTM2cHg7IH1cbiAgICAucWd0LWFydHdvcmstaWNvbiB7IHdpZHRoOiA0NHB4OyBoZWlnaHQ6IDQ0cHg7IH1cbiAgICAucWd0LWFydHdvcmsgcWRuYXByby1hdmF0YXIgeyB3aWR0aDogNjRweDsgaGVpZ2h0OiA2NHB4OyB9XG4gICAgLnFndC10aXRsZSB7IGZvbnQtc2l6ZTogMTRweDsgfVxuICAgIC5xZ3QtbWV0YSB7IGZvbnQtc2l6ZTogMTIuNXB4OyB9XG59XG5cbi5xZG5hcHJvLWdyaWQtdGlsZS5xZ3QtbGF5b3V0LWNhcmQucWd0LXNpemUtbCB7XG4gICAgLnFndC1hcnR3b3JrIHsgaGVpZ2h0OiAxNjhweDsgfVxuICAgIC5xZ3QtYXJ0d29yay1pY29uIHsgd2lkdGg6IDU0cHg7IGhlaWdodDogNTRweDsgfVxuICAgIC5xZ3QtYXJ0d29yayBxZG5hcHJvLWF2YXRhciB7IHdpZHRoOiA3OHB4OyBoZWlnaHQ6IDc4cHg7IH1cbiAgICAucWd0LXRpdGxlIHsgZm9udC1zaXplOiAxNXB4OyB9XG4gICAgLnFndC1tZXRhIHsgZm9udC1zaXplOiAxM3B4OyB9XG59XG5cbiIsIi8vIF9odWItdGlsZS5zY3NzXG4vL1xuLy8gcWRuYXByby1odWItdGlsZSAtIHRoZSBiaWcgbmF2aWdhdGlvbiB0aWxlIG9uIGEgaHViIHBhZ2UgKEluc3RlbGxpbmdlbixcbi8vIFN0YW1kYXRhKTogdGludGVkIGFydHdvcmsgc3F1YXJlLCB0aXRsZSB1bmRlciBpdCwgb3B0aW9uYWwgc3VidGl0bGUgYW5kIGEgcm93XG4vLyBvZiBjb3VudHMsIGFuZCB0aGUgd2hvbGUgY2FyZCBpcyBvbmUgbGluay5cbi8vXG4vLyBXSFkgVEhJUyBJUyBOT1QgcWRuYXByby1ncmlkLXRpbGUuXG4vLyBUaGUgdHdvIGxvb2sgcmVsYXRlZCBhbmQgYXJlIG5vdCBpbnRlcmNoYW5nZWFibGUuIGdyaWQtdGlsZSBpcyBhIGRlbnNlIGNlbGwgaW5cbi8vIGEgZ3JpZCBvZiBNQU5ZIHRoaW5ncyAoZmlsZXMsIGZvbGRlcnMpOiA5Ni0xNDhweCB3aWRlLCBhIHR3by1saW5lIGNsYW1wZWRcbi8vIHRpdGxlLCBhIGhvdmVyLW9ubHkgbWVudSBidXR0b24sIGEgYmFkZ2Ugc2xvdC4gVGhpcyBvbmUgaXMgYSBOQVZJR0FUSU9OIHRpbGU6XG4vLyBhIGhhbmRmdWwgcGVyIHBhZ2UsIHdpZGUgZW5vdWdoIHRvIGNhcnJ5IGEgZnVsbCBzZW50ZW5jZSBsaWtlIFwiR2VicnVpa2Vyc3JvbGxlblxuLy8gZW4gcmVjaHRlblwiIG9uIG9uZSBvciB0d28gbGluZXMsIG5vIG1lbnUsIG5vIGJhZGdlLCBhbmQgaXQgbWF5IGNhcnJ5IGNvdW50cy5cbi8vIEZvcmtpbmcgZ3JpZC10aWxlIHRvIGdyb3cgYSBzdGF0cyByb3cgYW5kIGRyb3AgaXRzIG1lbnUgd291bGQgaGF2ZSBsZWZ0IGFcbi8vIGNvbXBvbmVudCB0aGF0IGlzIHR3byB0aGluZ3MgYXQgb25jZS4gVGhlIHRpbnRlZC1hcnR3b3JrIGlkaW9tIGFuZCB0aGUgaG92ZXJcbi8vIGxpZnQgQVJFIHNoYXJlZCwgZGVsaWJlcmF0ZWx5LCBzbyB0aGUgdHdvIHJlYWQgYXMgb25lIGZhbWlseS5cbi8vXG4vLyBTSVpFIFRBQkxFOlxuLy8gICBzaXplPVwic1wiICAgICAgICAgICAgbWluLWhlaWdodCAxMzJweCAgYXJ0d29yayA1Nng1NiAgdmlzdWFsIDUwcHggIHRpdGxlIDEzcHgvNjAwXG4vLyAgIHNpemU9XCJtXCIgKGRlZmF1bHQpICBtaW4taGVpZ2h0IDE3MHB4ICBhcnR3b3JrIDcyeDcyICB2aXN1YWwgNjRweCAgdGl0bGUgMTRweC82MDBcbi8vICAgc2l6ZT1cImxcIiAgICAgICAgICAgIG1pbi1oZWlnaHQgMTk2cHggIGFydHdvcmsgODh4ODggIHZpc3VhbCA4MHB4ICB0aXRsZSAxNXB4LzYwMFxuLy8gVGhyZWUgc2l6ZXMsIG5vdCBhIGZyZWUgcGl4ZWwgdmFsdWUgLSBzYW1lIHJlYXNvbmluZyBhcyBncmlkLXRpbGUncyB0aHJlZTogYSBodWJcbi8vIGdyaWQgaGFzIHRvIGxpbmUgdXAuXG4vL1xuLy8gV0hZIFwic1wiIEVYSVNUUyAoS2ltIDMxLjA4LjIwMjYsIFN0YW1kYXRhKS5cbi8vIEEgdGlsZSB3aXRoIGNvdW50cyBpcyB0aGUgdGFsbGVzdCB0aGluZyB0aGlzIGNvbXBvbmVudCBtYWtlczogYXJ0d29yaywgdGl0bGUsXG4vLyBhIHN1YnRpdGxlIHRoYXQgb2Z0ZW4gd3JhcHMgdG8gdHdvIGxpbmVzLCBhIGRpdmlkZXIsIGFuZCB0aGVuIGEgcm93IG9mIG51bWJlcnNcbi8vIHdpdGggdGhlaXIgb3duIGxhYmVscy4gQXQgXCJtXCIgYSByb3cgb2YgdGhvc2UgY2FtZSBvdXQgMjQwcHggaGlnaCBhbmQgS2ltJ3Ncbi8vIHZlcmRpY3Qgb24gdGhlIFN0YW1kYXRhIGh1YiB3YXMgXCJoZWVsIGVyZyBncm9vdFwiLCB3aXRoIHRoZSBjb3VudHMgbmFtZWQgYXMgdGhlXG4vLyByZWFzb24uIFNvIFwic1wiIGRvZXMgbm90IGp1c3Qgc2NhbGUgdGhlIGFydHdvcmsgZG93bjogaXQgYWxzbyB0aWdodGVucyB0aGVcbi8vIGNvdW50cyBibG9jayAoc21hbGxlciBudW1iZXJzLCBsZXNzIGFpciBhYm92ZSB0aGUgZGl2aWRlciksIGJlY2F1c2UgdGhhdCBpc1xuLy8gdGhlIHBhcnQgdGhhdCB3YXMgYWN0dWFsbHkgY29zdGluZyB0aGUgaGVpZ2h0LiBUaGUgb3RoZXIgdHdvIHNpemVzIGtlZXAgdGhlXG4vLyByb29taWVyIGNvdW50cyAtIEluc3RlbGxpbmdlbiB0aWxlcyBjYXJyeSBub25lLCBzbyBub3RoaW5nIHRoZXJlIGNoYW5nZXMuIEF0IFwibVwiIHRoZSBhcnR3b3JrIHN0aWxsIGZpdHMgaW5zaWRlIHRoZSAxNzBweCBtaW5pbXVtLCBzb1xuLy8gdGhlIGNhcmQga2VlcHMgdGhlIGZvb3RwcmludCBvZiB0aGUgdGlsZSBpdCByZXBsYWNlcyAodGhlIG9sZCBtb2R1bGUtYmxvY2tcbi8vIHJlc2VydmVkIG1pbi1oZWlnaHQgMTYwcHggcGx1cyBpdHMgb3duIHBhZGRpbmcpIGFuZCBhIHBhZ2Ugb2YgdGlsZXMgZG9lcyBub3Rcbi8vIHJlZmxvdy4gRnJvbSByb3VnaGx5IDEwNCB1cHdhcmRzIHRoZSBhcnR3b3JrIHN0YXJ0cyBwdXNoaW5nIHRoZSBjYXJkIHRhbGxlci5cbi8vXG4vLyBIT1cgVEhJUyBOVU1CRVIgV0FTIFBJQ0tFRCwgYmVjYXVzZSBpdCBtb3ZlZCB0aHJlZSB0aW1lcyBvbiAwOS0xMC4wOC4yMDI2IGFuZFxuLy8gdGhlIG1pZGRsZSBtb3ZlIHdhcyBub3QgYSBkZXNpZ24gZGVjaXNpb24gYXQgYWxsOlxuLy8gICA3Mi82NCAgZmlyc3QgYnVpbGRcbi8vICAgODgvODAgIEtpbTogYmlnZ2VyLiBUaGlzIG9uZSBMT09LRUQgbGlrZSBpdCBkaWQgYWxtb3N0IG5vdGhpbmcsIGJlY2F1c2Ugb2YgdGhlXG4vLyAgICAgICAgICBzcGVjaWZpY2l0eSBidWcgZGVzY3JpYmVkIGF0IC5xaHQtYXJ0IGJlbG93OiB0aGUgdGludGVkIHNxdWFyZSBncmV3IGFuZFxuLy8gICAgICAgICAgdGhlIGRyYXdpbmcgaW5zaWRlIHN0YXllZCBwaW5uZWQgYXQgbG90dGllJ3Mgb3duIDQ4cHguXG4vLyAgIDEyMC8xMTIgS2ltOiBzdGlsbCB0b28gc21hbGwuIENob3NlbiBmcm9tIGEgc2V0IG9mIHNhbXBsZXMgdGhhdCB3ZXJlIHN0aWxsXG4vLyAgICAgICAgICByZW5kZXJlZCB3aXRoIHRoZSBidWcsIHNvIHRoZXkgd2VyZSBub3Qgc2hvd2luZyB3aGF0IHRoZXkgY2xhaW1lZC5cbi8vICAgODgvODAgIGFmdGVyIGZpeGluZyB0aGUgYnVnIEtpbSBjb21wYXJlZCB0ZW4gc2l6ZXMgaW4gYSByZWFsIGJyb3dzZXJcbi8vICAgICAgICAgIChiYWNrb2ZmaWNlMi93ZWIvX19odWItdGlsZS1tYXRlbi5odG1sLCBzaW5jZSBkZWxldGVkKSBhbmQgbGFuZGVkIGJhY2tcbi8vICAgICAgICAgIG9uIDg4IC0gd2hpY2ggYXQgdGhhdCBwb2ludCBmaW5hbGx5IG1lYW50IGFuIDgwcHggZHJhd2luZyBpbnN0ZWFkIG9mIGFcbi8vICAgICAgICAgIDQ4cHggb25lLiBTbyB0aGlzIGlzIHRoZSBzYW1lIG51bWJlciBhcyB0aGUgc2Vjb25kIHN0ZXAgYW5kIGEgZGlmZmVyZW50XG4vLyAgICAgICAgICByZXN1bHQuIERvIG5vdCBcInJlc3RvcmVcIiAxMjAgb24gdGhlIHN0cmVuZ3RoIG9mIHRoYXQgaGlzdG9yeS5cbi8vICAgODAvNzIgIG9uZSBub3RjaCBkb3duLCBvbiB0aGUgc2FtZSBwYWdlLCBtaW51dGVzIGxhdGVyLlxuLy8gICA3Mi82NCAgb25lIG1vcmUgbm90Y2ggZG93bi4gRklOQUwuXG4vLyAgICAgICAgICBTYW1lIG51bWJlcnMgYXMgdGhlIHZlcnkgZmlyc3QgYnVpbGQsIGJ1dCBOT1QgdGhlIHNhbWUgcmVzdWx0OiBiYWNrIHRoZW5cbi8vICAgICAgICAgIHRoZSBkcmF3aW5nIHdhcyA2NHB4IGJlY2F1c2UgdGhlIHNxdWFyZSB3YXMgNzJweCwgYW5kIGluIHRoZSB0d28gcm91bmRzXG4vLyAgICAgICAgICBpbiBiZXR3ZWVuIGl0IHdhcyBzdHVjayBhdCA0OHB4IHdoYXRldmVyIHRoZSBzcXVhcmUgc2FpZC4gU28gdGhlIHRpbGUgaGFzXG4vLyAgICAgICAgICBiZWVuIHRocm91Z2ggdGhyZWUgc3RhdGVzIHRoYXQgYWxsIHJlYWQgYXMgXCI3Mi82NFwiIGluIGEgZGlmZiBhbmQgbG9va2VkXG4vLyAgICAgICAgICBkaWZmZXJlbnQgb24gc2NyZWVuLiBSZWFkIHRoZSBzcGVjaWZpY2l0eSBub3RlIGF0IC5xaHQtYXJ0IGJlZm9yZVxuLy8gICAgICAgICAgY29uY2x1ZGluZyB0aGF0IGFueSBvZiB0aGlzIHdhcyBnb2luZyBpbiBjaXJjbGVzLlxuLy9cbi8vIFRJVExFIFdFSUdIVCA2MDAsIE5PVCA1MDAuXG4vLyBncmlkLXRpbGUgYW5kIGxpc3Qtcm93IHNldHRsZWQgb24gNTAwIGFmdGVyIEtpbSBmb3VuZCA2MDAgdG9vIGhlYXZ5IC0gYnV0IHRob3NlXG4vLyB0aXRsZXMgc2l0IGluIGEgZGVuc2UgbGlzdCB3aGVyZSB0aGUgd2VpZ2h0IHJlcGVhdHMgZXZlcnkgNDBweC4gSGVyZSB0aGUgdGl0bGVcbi8vIGlzIHRoZSBvbmx5IHRleHQgb24gYSBsYXJnZSBjYXJkIGFuZCBJUyB0aGUgbmF2aWdhdGlvbiBsYWJlbDsgdGhlIHRpbGUgaXRcbi8vIHJlcGxhY2VzIHVzZWQgNjAwIChtb2R1bGUtYmxvY2sgaGFyZC1jb2RlZCBmb250LXdlaWdodDo2MDApIGFuZCBLaW0gYXBwcm92ZWRcbi8vIHRoaXMgZGVzaWduIHdpdGggdGhhdCB3ZWlnaHQuIFNhbWUgd29yZCwgZGlmZmVyZW50IGpvYi5cbi8vXG4vLyBUSEUgQ0FSRCBTVEFZUyBORVVUUkFMLCBUSEUgU1FVQVJFIElTIFRJTlRFRC5cbi8vIFNhbWUgZGVjaXNpb24gYW5kIHNhbWUgOCBoZXggcGFpcnMgYXMgX2dyaWQtdGlsZS5zY3NzIC0gc2VlIHRoYXQgZmlsZSdzIGhlYWRlclxuLy8gZm9yIHRoZSBmdWxsIGFyZ3VtZW50LiBTaG9ydCB2ZXJzaW9uOiBhIGh1YiBvZiB0d2VsdmUgZnVsbHktdGludGVkIGNhcmRzIGlzIGFcbi8vIHdhbGwgb2YgY29sb3VyLCBhbmQgZXZlcnkgb3RoZXIgY2FyZCBzdXJmYWNlIGluIHRoZSBiYWNrb2ZmaWNlIGlzIG5ldXRyYWwuXG4vL1xuLy8gSE9WRVIgTElGVDogdGhlIHNhbWUgdHJhbnNsYXRlWSArIHNoYWRvdyBwYWlyIGdyaWQtdGlsZSBib3Jyb3dlZCBmcm9tIHRoZSBQV0Enc1xuLy8gZG9jdW1lbnRzLWNhcmQgaG92ZXIsIHNvIGEgcGFnZSB0aGF0IG1peGVzIHRoZSB0d28gbGlmdHMgaWRlbnRpY2FsbHkuXG5cbi5xZG5hcHJvLWh1Yi10aWxlIHtcbiAgICAtLXFodC1iZzogdmFyKC0tYy1iZy1jYXJkLCAjZmZmZmZmKTtcbiAgICAtLXFodC1ib3JkZXI6IHZhcigtLWMtZ3JleS0xMDAsICNlNmU2ZjIpO1xuICAgIC0tcWh0LWJvcmRlci1ob3ZlcjogdmFyKC0tYy1wdXJwbGUtMTAwLCAjYzljNGY1KTtcbiAgICAtLXFodC10aXRsZS1jb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYTFmNGQpO1xuICAgIC0tcWh0LXN1Yi1jb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbiAgICAtLXFodC1kaXZpZGVyOiB2YXIoLS1jLWdyZXktNTAsICNmMGYwZjgpO1xuICAgIC0tcWh0LWZvY3VzLXJpbmc6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKTtcbiAgICAtLXFodC1mb2N1cy1nbG93OiB2YXIoLS1jLXB1cnBsZS1zb2Z0LTE4LCByZ2JhKDY0LCA3MywgMTU0LCAwLjE4KSk7XG5cbiAgICAtLXFodC1hcnQtc2l6ZTogNzJweDtcbiAgICAtLXFodC12aXN1YWwtc2l6ZTogNjRweDtcbiAgICAtLXFodC1taW4taGVpZ2h0OiAxNzBweDtcbiAgICAtLXFodC10aXRsZS1zaXplOiAxNHB4O1xuXG4gICAgLy8gU3BhY2luZyB0b2tlbnMgLSB0aGUgdmFsdWVzIFwibVwiIGFuZCBcImxcIiBoYXZlIGFsd2F5cyB1c2VkLCBub3cgbmFtZWQgc28gYVxuICAgIC8vIHNpemUgYmxvY2sgY2FuIGNoYW5nZSB0aGVtLiBUb3VjaCB0aGVzZSBhbmQgeW91IGNoYW5nZSBldmVyeSBzaXplLlxuICAgIC0tcWh0LXBhZC15OiAyMHB4O1xuICAgIC0tcWh0LXBhZC14OiAxNnB4O1xuICAgIC0tcWh0LWdhcDogMTBweDtcbiAgICAtLXFodC1zdGF0cy1nYXA6IDE4cHg7XG4gICAgLS1xaHQtc3RhdHMtc3BhY2U6IDEwcHg7XG4gICAgLS1xaHQtc3RhdC12YWx1ZS1zaXplOiAxNnB4O1xuICAgIC0tcWh0LXN0YXQtbGFiZWwtc2l6ZTogMTFweDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZmLCBcIkludGVyXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZik7XG5cbiAgICAvLyBFUVVBTCBIRUlHSFQgUEVSIFJPVyAoS2ltIDMxLjA4LjIwMjYpLlxuICAgIC8vIFRoZSBob3N0IGFscmVhZHkgc3RyZXRjaGVzIHRvIHRoZSByb3cgaGVpZ2h0IG9uIGl0cyBvd24gLSBpdCBpcyBhIGdyaWQgaXRlbVxuICAgIC8vIG9uIFN0YW1kYXRhIGFuZCBhIGZsZXggaXRlbSBpbnNpZGUgYSBib290c3RyYXAgY29sdW1uIG9uIEluc3RlbGxpbmdlbiwgYW5kXG4gICAgLy8gYm90aCBzdHJldGNoIGJ5IGRlZmF1bHQuIFdoYXQgZGlkIE5PVCBzdHJldGNoIHdhcyB0aGUgd2hpdGUgY2FyZCBpbnNpZGUgaXQ6XG4gICAgLy8gLnFodC1jYXJkIG9ubHkgY2FycmllZCBhIG1pbi1oZWlnaHQsIHNvIGEgdGlsZSB3aXRoIHR3byBjb3VudHMgZHJldyBhIHRhbGxlclxuICAgIC8vIGNhcmQgdGhhbiB0aGUgdGlsZSBuZXh0IHRvIGl0IGFuZCB0aGUgcm93IGxvb2tlZCByYWdnZWQuIFBhc3NpbmcgdGhlIHJvd1xuICAgIC8vIGhlaWdodCBkb3duIG1ha2VzIHRoZSB0YWxsZXN0IGNhcmQgaW4gYSByb3cgc2V0IHRoZSBoZWlnaHQgZm9yIHRoYXQgcm93LFxuICAgIC8vIHdoaWNoIGlzIGV4YWN0bHkgdGhlIHJ1bGUgS2ltIGFza2VkIGZvciAoXCJwZXIgcmlqLCBkZSBncm9vdHN0ZSBpcyBsZWlkZW5kXCIpLlxuICAgIC8vIEhlaWdodCAxMDAlIG9mIGFuIGF1dG8taGVpZ2h0IHBhcmVudCByZXNvbHZlcyB0byBhdXRvLCBzbyBhIGh1Yi10aWxlIGluXG4gICAgLy8gb3JkaW5hcnkgYmxvY2sgZmxvdyBpcyB1bmFmZmVjdGVkLlxuICAgIGhlaWdodDogMTAwJTtcblxuICAgICZbZGF0YS1zaXplPVwic1wiXSB7XG4gICAgICAgIC0tcWh0LWFydC1zaXplOiA1NnB4O1xuICAgICAgICAtLXFodC12aXN1YWwtc2l6ZTogNTBweDtcbiAgICAgICAgLS1xaHQtbWluLWhlaWdodDogMTMycHg7XG4gICAgICAgIC0tcWh0LXRpdGxlLXNpemU6IDEzcHg7XG4gICAgICAgIC8vIFRoZSBjb3VudHMgYmxvY2ssIHRpZ2h0ZW5lZC4gTmFtZWQgdG9rZW5zIHJhdGhlciB0aGFuIGEgcGlsZSBvZlxuICAgICAgICAvLyBbZGF0YS1zaXplPVwic1wiXSBkZXNjZW5kYW50IHJ1bGVzIGZ1cnRoZXIgZG93biwgc28gdGhlIHdob2xlIHNpemUgbGl2ZXNcbiAgICAgICAgLy8gaW4gb25lIHBsYWNlIGFuZCBhIGZvdXJ0aCBzaXplIGlzIGZvdXIgbnVtYmVycywgbm90IGZvdXIgc2VsZWN0b3JzLlxuICAgICAgICAtLXFodC1wYWQteTogMTRweDtcbiAgICAgICAgLS1xaHQtcGFkLXg6IDEycHg7XG4gICAgICAgIC0tcWh0LWdhcDogOHB4O1xuICAgICAgICAtLXFodC1zdGF0cy1nYXA6IDE0cHg7XG4gICAgICAgIC0tcWh0LXN0YXRzLXNwYWNlOiA4cHg7XG4gICAgICAgIC0tcWh0LXN0YXQtdmFsdWUtc2l6ZTogMTNweDtcbiAgICAgICAgLS1xaHQtc3RhdC1sYWJlbC1zaXplOiAxMXB4O1xuICAgIH1cblxuICAgICZbZGF0YS1zaXplPVwibFwiXSB7XG4gICAgICAgIC0tcWh0LWFydC1zaXplOiA4OHB4O1xuICAgICAgICAtLXFodC12aXN1YWwtc2l6ZTogODBweDtcbiAgICAgICAgLS1xaHQtbWluLWhlaWdodDogMTk2cHg7XG4gICAgICAgIC0tcWh0LXRpdGxlLXNpemU6IDE1cHg7XG4gICAgfVxufVxuXG4vLyAtLS0tIFRoZSBjYXJkIGl0c2VsZjogYW4gPGE+IHdoZW4gdGhlcmUgaXMgYW4gaHJlZiwgYSA8YnV0dG9uPiB3aGVuIHRoZXJlIGlzIG5vdCAtLS0tXG4vLyBCb3RoIGFyZSByZXNldCB0byB0aGUgc2FtZSBib3ggc28gdGhlIHRpbGUgbG9va3MgaWRlbnRpY2FsIGVpdGhlciB3YXk7IHRoZVxuLy8gZWxlbWVudCBkaWZmZXJzIG9ubHkgc28gdGhhdCBhIGxpbmsgYmVoYXZlcyBsaWtlIGEgbGluayAobWlkZGxlLWNsaWNrLCBvcGVuIGluXG4vLyBuZXcgdGFiKSBhbmQgYSBub24tbGluayBiZWhhdmVzIGxpa2UgYSBidXR0b24gZm9yIGFzc2lzdGl2ZSB0ZWNoLlxuLnFodC1jYXJkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXFodC1nYXApO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiB2YXIoLS1xaHQtbWluLWhlaWdodCk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiB2YXIoLS1xaHQtcGFkLXkpIHZhcigtLXFodC1wYWQteCk7XG5cbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1xaHQtYmcpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXFodC1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMywgMTRweCk7XG4gICAgY29sb3I6IHZhcigtLXFodC10aXRsZS1jb2xvcik7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDE4MG1zIGVhc2UsIHRyYW5zZm9ybSAxODBtcyBlYXNlLCBib3JkZXItY29sb3IgMTgwbXMgZWFzZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICAvLyBTYW1lIGxpZnQgcmVjaXBlIGFzIHFkbmFwcm8tZ3JpZC10aWxlICh3aGljaCB0b29rIGl0IGZyb20gdGhlIFBXQSdzXG4gICAgICAgIC8vIGRvY3VtZW50cyBjYXJkKSwgc28gYSBwYWdlIG1peGluZyB0aGUgdHdvIG1vdmVzIGFzIG9uZS5cbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMjRweCByZ2JhKDYwLCA1MCwgMTQwLCAwLjE0KTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1xaHQtYm9yZGVyLWhvdmVyKTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBjb2xvcjogdmFyKC0tcWh0LXRpdGxlLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxuXG4gICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1xaHQtZm9jdXMtcmluZyk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCB2YXIoLS1xaHQtZm9jdXMtZ2xvdyk7XG4gICAgfVxufVxuXG4vLyBBIHRpbGUgdGhhdCBjYXJyaWVzIENPVU5UUyBsYXlzIGl0c2VsZiBvdXQgdG9wLWRvd24gaW5zdGVhZCBvZiBjZW50cmVkLlxuLy8gKEtpbSAzMS4wOC4yMDI2LCBtZXQgZGUgcm9kZSBwaWpsZW4gb3AgZGUgU3RhbWRhdGEtaHViLilcbi8vXG4vLyBXSFkuIENlbnRyaW5nIGxvb2tzIHJpZ2h0IG9uIGEgdGlsZSB3aXRoIHR3byBsaW5lcyBvZiBjb250ZW50IGFuZCB3cm9uZyBvbiBhXG4vLyByb3cgb2YgdGlsZXMgdGhhdCBhcmUgYWxsIGFzIHRhbGwgYXMgdGhlIHRhbGxlc3Qgb25lOiB0aGUgbGVmdG92ZXIgc3BhY2UgaXNcbi8vIHNwbGl0IGFib3ZlIGFuZCBiZWxvdywgc28gYSBzaG9ydCB0aWxlIGdvdCA0NHB4IGFib3ZlIGl0cyBhcnR3b3JrIHdoZXJlIGl0c1xuLy8gbmVpZ2hib3VyIGdvdCAyOHB4LCBhbmQgdGhlIGFydHdvcmsgb2YgYSByb3cgc2F0IGF0IGZvdXIgZGlmZmVyZW50IGhlaWdodHMuXG4vLyBUb3AtYWxpZ25lZCwgdGhlIHBhZGRpbmcgYXQgdGhlIHRvcCBpcyB0aGUgcGFkZGluZyB5b3Ugd3JvdGUgZG93biwgb24gZXZlcnlcbi8vIHRpbGUuIFRoZSBjb3VudHMgdGhlbiBnZXQgYG1hcmdpbi10b3A6IGF1dG9gLCB3aGljaCBwdXNoZXMgdGhlbSB0byB0aGUgYm90dG9tXG4vLyBlZGdlIOKAlCBzbyB0aGUgZGl2aWRlcnMgbGluZSB1cCBhY3Jvc3MgdGhlIHJvdyBhcyB3ZWxsLCBpbnN0ZWFkIG9mIGZsb2F0aW5nXG4vLyB3aGVyZXZlciB0aGF0IHRpbGUncyBzdWJ0aXRsZSBoYXBwZW5lZCB0byBlbmQuXG4vL1xuLy8gQSB0aWxlIFdJVEhPVVQgY291bnRzIGlzIHVudG91Y2hlZCBhbmQgc3RheXMgY2VudHJlZDogdGhhdCBpcyB0aGUgSW5zdGVsbGluZ2VuXG4vLyBodWIsIHdoZXJlIGV2ZXJ5IHRpbGUgaG9sZHMgdGhlIHNhbWUgdHdvIGxpbmVzIGFuZCBjZW50cmluZyBpcyByaWdodC5cbi5xaHQtY2FyZC13aXRoLXN0YXRzIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cbiAgICAucWh0LXN0YXRzIHtcbiAgICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICB9XG59XG5cbi8vIC0tLS0gQXJ0d29yayBzcXVhcmUgLS0tLVxuLnFodC1hcnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogdmFyKC0tcWh0LWFydC1zaXplKTtcbiAgICBoZWlnaHQ6IHZhcigtLXFodC1hcnQtc2l6ZSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci0yLCAxNnB4KTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1xaHQtYXJ0LWJnKTtcbiAgICBjb2xvcjogdmFyKC0tcWh0LWFydC1mZyk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC8vIEV2ZXJ5IGtpbmQgb2YgYXJ0d29yayBpcyBub3JtYWxpc2VkIHRvIG9uZSBib3gsIHNvIGEgdGlsZSB3aXRoIGFuIE1ESVxuICAgIC8vIGdseXBoIGxpbmVzIHVwIHdpdGggYSB0aWxlIGNhcnJ5aW5nIGEgNTAweDUwMCBhbmltYXRpb24uXG4gICAgLy9cbiAgICAvLyDimqDvuI8gVFdPIGNsYXNzIG5hbWVzIGRlZXAgb24gcHVycG9zZS4gYC5xaHQtYXJ0ID4gKmAgaXMgb25lIGNsYXNzIHdvcnRoIG9mXG4gICAgLy8gc3BlY2lmaWNpdHkgYW5kIExPU0VTIHRvIGAucWRuYXByby1sb3R0aWUgeyB3aWR0aDogdmFyKC0tcWwtc2l6ZSkgfWAgaW5cbiAgICAvLyBfbG90dGllLnNjc3MsIGJlY2F1c2UgY29tcG9uZW50cy5zY3NzIEB1c2VzIGxvdHRpZSAobGluZSB+MTg3KSBhZnRlclxuICAgIC8vIGh1Yi10aWxlIChsaW5lIH45MCkgYW5kIGVxdWFsIHNwZWNpZmljaXR5IG1lYW5zIGxhc3Qtb25lLXdpbnMuIFRoZSBzeW1wdG9tXG4gICAgLy8gd2FzIHNpbGVudCBhbmQgY29zdCB0d28gcm91bmRzIHdpdGggS2ltOiB0aGUgdGludGVkIHNxdWFyZSBncmV3IHdoZW4gdGhlXG4gICAgLy8gc2l6ZSB3YXMgcmFpc2VkLCBhbmQgdGhlIGRyYXdpbmcgaW5zaWRlIHN0YXllZCBwaW5uZWQgYXQgbG90dGllJ3Mgb3duIDQ4cHhcbiAgICAvLyBkZWZhdWx0LCBzbyB0aGUgdGlsZXMgbG9va2VkIGVtcHRpZXIgdGhlIGJpZ2dlciB0aGV5IGdvdC4gTWVhc3VyZWRcbiAgICAvLyAxMC4wOC4yMDI2LiBEbyBub3Qgc2ltcGxpZnkgdGhpcyBiYWNrIHRvIGEgc2luZ2xlIGNsYXNzLlxuICAgID4gLnFodC1hcnQtYW5pbSxcbiAgICA+IC5xaHQtYXJ0LWFjdGl2aXR5LFxuICAgID4gLnFodC1hcnQtaWNvbixcbiAgICA+IC5xaHQtYXJ0LXNsb3R0ZWQsXG4gICAgPiAqIHtcbiAgICAgICAgd2lkdGg6IHZhcigtLXFodC12aXN1YWwtc2l6ZSk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcWh0LXZpc3VhbC1zaXplKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLy8gQW4gPGltZz4gaGFuZGVkIGluIHRocm91Z2ggc2xvdD1cImFydHdvcmtcIiBtdXN0IG5vdCBzdHJldGNoLlxuICAgID4gaW1nLFxuICAgIC5xaHQtYXJ0LXNsb3R0ZWQgaW1nIHtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICB9XG59XG5cbi8vIHFkbmFwcm8tbG90dGllIHNpemVzIGl0c2VsZiBmcm9tIC0tcWwtc2l6ZSwgbm90IGZyb20gd2lkdGgvaGVpZ2h0LiBTYW1lXG4vLyBzcGVjaWZpY2l0eSB0cmFwIGFzIGFib3ZlOiBfbG90dGllLnNjc3MgZGVjbGFyZXMgYC0tcWwtc2l6ZTogNDhweGAgb25cbi8vIGAucWRuYXByby1sb3R0aWVgIGFuZCBpcyBsb2FkZWQgbGF0ZXIsIHNvIGEgc2luZ2xlLWNsYXNzIHNlbGVjdG9yIGhlcmUgaXNcbi8vIHNpbXBseSBpZ25vcmVkIGFuZCBldmVyeSBhbmltYXRpb24gc3RheXMgNDhweC5cbi5xaHQtYXJ0IC5xaHQtYXJ0LWFuaW0ge1xuICAgIC0tcWwtc2l6ZTogdmFyKC0tcWh0LXZpc3VhbC1zaXplKTtcbn1cblxuLy8gcWRuYXByby1pY29uIGRyYXdzIGEgZ2x5cGggdGhhdCBoYXMgbm8gY29sb3VyIG9mIGl0cyBvd24sIHNvIGl0IHRha2VzIHRoZVxuLy8gdGludCdzIGZvcmVncm91bmQgLSB0aGUgc2FtZSBwYWlyaW5nIGdyaWQtdGlsZSB1c2VzIGZvciBpdHMgZmFsbGJhY2sgZ2x5cGguXG4vLyBUaGUgYWN0aXZpdHkgaWNvbnMgYW5kIHRoZSBhbmltYXRpb25zIGhhdmUgdGhlaXIgb3duIGNvbG91cnMgYmFrZWQgaW4gYW5kIGFyZVxuLy8gZGVsaWJlcmF0ZWx5IGxlZnQgYWxvbmUuXG4vL1xuLy8g4pqg77iPIEl0IHNpemVzIGl0c2VsZiBmcm9tIEZPTlQtU0laRSwgbm90IGZyb20gd2lkdGgvaGVpZ2h0IGFuZCBub3QgZnJvbSBhIGN1c3RvbVxuLy8gcHJvcGVydHkgKHNlZSBxZG5hLWljb24uanM6IFwic2l6ZSAuLi4gaW5oZXJpdHMgZnJvbSBDU1MgZm9udC1zaXplXCIpLiBTZXR0aW5nIGFcbi8vIC0tcWktc2l6ZSB0b2tlbiBoZXJlIGxvb2tlZCByaWdodCBhbmQgZGlkIG5vdGhpbmc6IHRoZSBnbHlwaCBjYW1lIG91dCBhdCB0aGVcbi8vIGluaGVyaXRlZCAxNHB4IGluc2lkZSBhIDcycHggc3F1YXJlLiBNZWFzdXJlZCAwOS4wOC4yMDI2LlxuLnFodC1hcnQtaWNvbiB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1xaHQtdmlzdWFsLXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiB2YXIoLS1xaHQtYXJ0LWZnKTtcbn1cblxuLy8gLS0tLSBUZXh0IC0tLS1cbi5xaHQtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tcWh0LXRpdGxlLXNpemUpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBjb2xvcjogdmFyKC0tcWh0LXRpdGxlLWNvbG9yKTtcbn1cblxuLnFodC1zdWIge1xuICAgIC8vIFB1bGxlZCB1cCBhZ2FpbnN0IHRoZSB0aXRsZTogdGhleSBhcmUgb25lIGJsb2NrIG9mIHRleHQsIGFuZCB0aGUgY2FyZCdzXG4gICAgLy8gb3duIDEwcHggZ2FwIGlzIG1lYW50IGZvciB0aGUgc3BhY2UgYmV0d2VlbiBhcnR3b3JrIGFuZCB0ZXh0LlxuICAgIG1hcmdpbi10b3A6IC00cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gICAgY29sb3I6IHZhcigtLXFodC1zdWItY29sb3IpO1xufVxuXG4vLyAtLS0tIENvdW50cyAodGhlIFN0YW1kYXRhIHZhcmlhbnQpIC0tLS1cbi8vIFRIRSBESVZJREVSIFJVTlMgRURHRSBUTyBFREdFLCBUSEUgTlVNQkVSUyBTVEFZIElOU0lERSBUSEUgUEFERElORy5cbi8vIEEgbGluZSB0aGF0IHN0b3BzIHdoZXJlIHRoZSBjYXJkJ3MgcGFkZGluZyBzdG9wcyByZWFkcyBhcyBhbiB1bmZpbmlzaGVkXG4vLyB1bmRlcmxpbmUgb2YgdGhlIHRleHQgYWJvdmUgaXQ7IGEgbGluZSB0aGF0IHRvdWNoZXMgYm90aCBlZGdlcyByZWFkcyBhcyB0aGVcbi8vIGNhcmQgYmVpbmcgc3BsaXQgaW4gdHdvLCB3aGljaCBpcyB3aGF0IGl0IGlzLiBOZWdhdGl2ZSBtYXJnaW5zIHB1bGwgdGhlIGJsb2NrXG4vLyBvdXQgdG8gdGhlIGNhcmQncyBvd24gZWRnZXMgYW5kIHRoZSBzYW1lIHBhZGRpbmcgaXMgcHV0IGJhY2sgb24gdGhlIGluc2lkZSwgc29cbi8vIG9ubHkgdGhlIGJvcmRlciBncm93cy4gW0tpbSAzMS4wOC4yMDI2XVxuLy9cbi8vIEVRVUFMIENPTFVNTlMsIE5PVCBURVhULVdJRFRIIENPTFVNTlMuXG4vLyBUaGlzIHdhcyBhIGZsZXggcm93IHdpdGggYSBnYXAsIHNvIGVhY2ggY291bnQgd2FzIGFzIHdpZGUgYXMgaXRzIG93biB3b3Jkczpcbi8vIFwiTG9jYXRpZWxpanN0ZW5cIiBwdXNoZWQgaXRzIG5laWdoYm91ciBzaWRld2F5cyBhbmQgdGhlIHNwbGl0IGZlbGwgaW4gYVxuLy8gZGlmZmVyZW50IHBsYWNlIG9uIGV2ZXJ5IHRpbGUuIGBncmlkLWF1dG8tY29sdW1uczogMWZyYCBnaXZlcyBldmVyeSBjb3VudCB0aGVcbi8vIHNhbWUgc2xpY2Ugb2YgdGhlIGNhcmQsIGNlbnRyZWQgaW4gaXRzIG93biBzbGljZSwgc28gdHdvLWNvdW50IHRpbGVzIGFsbCBzcGxpdFxuLy8gZG93biB0aGUgbWlkZGxlIGFuZCBsaW5lIHVwIGFjcm9zcyBhIHJvdy5cbi5xaHQtc3RhdHMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICBncmlkLWF1dG8tY29sdW1uczogMWZyO1xuICAgIC8vIFRoZSBjYXJkIGNlbnRyZXMgaXRzIGNoaWxkcmVuLCBzbyB3aXRob3V0IHRoaXMgdGhlIGJsb2NrIGlzIG9ubHkgYXMgd2lkZVxuICAgIC8vIGFzIGl0cyBvd24gdGV4dDogbWVhc3VyZWQgMTI3cHggaW5zaWRlIGEgMzQ5cHggY2FyZCwgd2hpY2ggcHV0IHRoZSBkaXZpZGVyXG4gICAgLy8gbm93aGVyZSBuZWFyIHRoZSBlZGdlcyBhbmQgbWFkZSBcIjFmciBwZXIgY291bnRcIiBzcGxpdCAxMjdweCBpbnN0ZWFkIG9mIHRoZVxuICAgIC8vIGNhcmQuIFN0cmV0Y2ggZmlyc3QsIHRoZW4gdGhlIG5lZ2F0aXZlIG1hcmdpbnMgdGFrZSBpdCBvdXQgdG8gdGhlIGVkZ2VzLlxuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1xaHQtc3RhdHMtc3BhY2UpIC0gNHB4KTtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1xaHQtcGFkLXgpICogLTEpO1xuICAgIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1xaHQtcGFkLXgpICogLTEpO1xuICAgIHBhZGRpbmc6IHZhcigtLXFodC1zdGF0cy1zcGFjZSkgdmFyKC0tcWh0LXBhZC14KSAwO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1xaHQtZGl2aWRlcik7XG59XG5cbi5xaHQtc3RhdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBmb250LXNpemU6IHZhcigtLXFodC1zdGF0LWxhYmVsLXNpemUpO1xuICAgIGNvbG9yOiB2YXIoLS1xaHQtc3ViLWNvbG9yKTtcblxuICAgIGIge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXFodC1zdGF0LXZhbHVlLXNpemUpO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tcWh0LXRpdGxlLWNvbG9yKTtcbiAgICB9XG59XG5cbi8vIE9ORSBMSU5FIFBFUiBDT1VOVCBBVCBzaXplPVwic1wiIChLaW0gMzEuMDguMjAyNjogXCJkZSBzdWJpbmZvcm1hdGllIGlzIHRlXG4vLyBiZWxhbmdyaWprIGdlbWFha3RcIikuXG4vLyBUaGUgc3RhY2tlZCBzaGFwZSDigJQgYSBiaWcgbnVtYmVyIHdpdGggaXRzIGxhYmVsIHVuZGVybmVhdGgg4oCUIGlzIHRoZSBzaGFwZSBvZiBhXG4vLyBLUEksIGFuZCBpdCBtYWRlIHRoZSBjb3VudHMgcmVhZCBhcyB0aGUgcG9pbnQgb2YgdGhlIHRpbGUgaW5zdGVhZCBvZiBhIGRldGFpbFxuLy8gdW5kZXIgdGhlIG5hbWUuIFNpZGUgYnkgc2lkZSB0aGV5IGFyZSBhIGNhcHRpb246IFwiMjAxNSBHZWJydWlrZXJzXCIuIEl0IGFsc29cbi8vIHRha2VzIGEgbGluZSBvZiBoZWlnaHQgb3V0IG9mIGV2ZXJ5IHRpbGUgd2l0aCBjb3VudHMuXG4vL1xuLy8gVGhlIG51bWJlciBrZWVwcyBpdHMgd2VpZ2h0IGJ1dCBsb3NlcyBpdHMgc2l6ZSAoMTNweCBhZ2FpbnN0IGEgMTNweCB0aXRsZSksIHRoZVxuLy8gbGFiZWwgZ29lcyBVUCBhIHBvaW50IHNvIHRoZSBwYWlyIHJlYWRzIGFzIG9uZSBzZW50ZW5jZSByYXRoZXIgdGhhbiBhcyBhXG4vLyBoZWFkaW5nIHdpdGggZmluZSBwcmludC4gTm8gd3JhcHBpbmc6IGEgY291bnQgdGhhdCBmb2xkcyBvbnRvIHR3byBsaW5lcyBpcyBiYWNrXG4vLyB3aGVyZSB3ZSBzdGFydGVkLCBzbyBhIGxhYmVsIHRoYXQgd2lsbCBub3QgZml0IGlzIGNsaXBwZWQgd2l0aCBhbiBlbGxpcHNpcy4gVGhlXG4vLyBjb21wb25lbnQgcHV0cyB0aGUgZnVsbCB0ZXh0IG9uIHRoZSBsYWJlbCdzIG93biB0aXRsZSBhdHRyaWJ1dGUsIHNvIGhvdmVyaW5nXG4vLyBzdGlsbCB0ZWxscyB5b3Ugd2hhdCB0aGUgbnVtYmVyIGNvdW50cyAob25seSBcIk9yZ2FuaXNhdGllLWVlbmhlZGVuXCIgYWN0dWFsbHlcbi8vIGNsaXBzLCBhbmQgb25seSBvbiB0aGUgbmFycm93ZXN0IGdyaWQpLlxuLnFkbmFwcm8taHViLXRpbGVbZGF0YS1zaXplPVwic1wiXSB7XG4gICAgLnFodC1zdGF0IHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA1cHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIH1cblxuICAgIC5xaHQtc3RhdCBiIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuXG4gICAgLnFodC1zdGF0IHNwYW4ge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB9XG59XG5cbi8vIC0tLS0gRGlzYWJsZWQgLS0tLVxuLy8gT3BhY2l0eSBwbHVzIHBvaW50ZXItZXZlbnRzLCBtYXRjaGluZyB0aGUgY2hlY2tib3gvcmFkaW8vYWN0aXZpdHktaWNvblxuLy8gY29udmVudGlvbiByYXRoZXIgdGhhbiBpbnZlbnRpbmcgYSBncmV5ZWQtb3V0IHBhbGV0dGUuXG4ucWRuYXByby1odWItdGlsZS5xaHQtZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcblxuICAgIC5xaHQtY2FyZCB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxufVxuXG4vLyAtLS0tIFRpbnQgcGFsZXR0ZSAtLS0tXG4vLyBTQU1FIDggaHVlcyBhbmQgaGV4IHBhaXJzIGFzIHFkbmFwcm8tZ3JpZC10aWxlJ3MgLnFndC10aW50LSogYW5kXG4vLyBxZG5hcHJvLWxpc3Qtcm93J3MgLnFsci10aWxlLWNvbG9yLSosIGNvcGllZCAxOjEgZm9yIHRoZSBzYW1lIHJlYXNvbiB0aG9zZSB0d29cbi8vIGNvcHkgZWFjaCBvdGhlcjogdGhlcmUgaXMgc3RpbGwgbm8gc2hhcmVkIHBhbGV0dGUgbW9kdWxlLCBhbmQgYSBwYWdlIG1peGluZ1xuLy8gdGhlc2UgY29tcG9uZW50cyBoYXMgdG8gcmVhZCBhcyBvbmUgdGludGVkLXRpbGUgZmFtaWx5LiBJZiBhIHNoYXJlZCBtYXAgZXZlclxuLy8gbGFuZHMsIGFsbCB0aHJlZSBjaGFuZ2UgdG9nZXRoZXIuXG4ucWh0LXRpbnQtcHVycGxlICAgICAgeyAtLXFodC1hcnQtYmc6IHZhcigtLWMtY2hpcC1wdXJwbGUtYmcpOyAtLXFodC1hcnQtZmc6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKTsgfVxuLnFodC10aW50LWdyZXkgICAgICAgIHsgLS1xaHQtYXJ0LWJnOiB2YXIoLS1jLWdyZXktNTApOyAtLXFodC1hcnQtZmc6IHZhcigtLWMtZ3JleS02MDAsICM1NjViNjYpOyB9XG4ucWh0LXRpbnQtcmVkICAgICAgICAgeyAtLXFodC1hcnQtYmc6IHZhcigtLWMtc2lnbmFsLXJlZC1iZyk7IC0tcWh0LWFydC1mZzogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpOyB9XG4ucWh0LXRpbnQteWVsbG93ICAgICAgeyAtLXFodC1hcnQtYmc6IHZhcigtLWMtY2hpcC15ZWxsb3ctYmcpOyAtLXFodC1hcnQtZmc6IHZhcigtLWMtc2lnbmFsLXllbGxvdy10ZXh0LCAjYmY3MjAyKTsgfVxuLnFodC10aW50LWdyZWVuICAgICAgIHsgLS1xaHQtYXJ0LWJnOiB2YXIoLS1jLWNoaXAtZ3JlZW4tYmcpOyAtLXFodC1hcnQtZmc6IHZhcigtLWMtc2lnbmFsLWdyZWVuLXRleHQsICM0MjhiNmUpOyB9XG4ucWh0LXRpbnQtYmx1ZSAgICAgICAgeyAtLXFodC1hcnQtYmc6IHZhcigtLWMtc2lnbmFsLWJsdWUtYmcpOyAtLXFodC1hcnQtZmc6IHZhcigtLWMtc2lnbmFsLWJsdWUtdGV4dCwgIzZhOGFiNCk7IH1cbi5xaHQtdGludC1icmlnaHQtYmx1ZSB7IC0tcWh0LWFydC1iZzogdmFyKC0tYy1jaGlwLWJyaWdodC1ibHVlLTItYmcpOyAtLXFodC1hcnQtZmc6IHZhcigtLWMtcHVycGxlLTQwMCk7IH1cbi5xaHQtdGludC1waW5rICAgICAgICB7IC0tcWh0LWFydC1iZzogdmFyKC0tYy1zaWduYWwtcGluay1iZyk7IC0tcWh0LWFydC1mZzogdmFyKC0tYy1zaWduYWwtcGluay10ZXh0LCAjYjI1Nzc3KTsgfVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWh0LXRpbnQtcHVycGxlICAgICAgeyAtLXFodC1hcnQtYmc6ICMzYTM1NTU7IC0tcWh0LWFydC1mZzogdmFyKC0tYy1wdXJwbGUtMjAwLCAjYTVhY2ZmKTsgfVxuW2RhdGEtdGhlbWU9ZGFya10gLnFodC10aW50LWdyZXkgICAgICAgIHsgLS1xaHQtYXJ0LWJnOiAjNDA0NDRkOyAtLXFodC1hcnQtZmc6IHZhcigtLWMtZ3JleS0zMDAsICNjNGM3Y2MpOyB9XG5bZGF0YS10aGVtZT1kYXJrXSAucWh0LXRpbnQtcmVkICAgICAgICAgeyAtLXFodC1hcnQtYmc6ICM1YTJiMmI7IC0tcWh0LWFydC1mZzogdmFyKC0tYy13YXJuLXJlZC00MDAsICNmODcxNzEpOyB9XG5bZGF0YS10aGVtZT1kYXJrXSAucWh0LXRpbnQteWVsbG93ICAgICAgeyAtLXFodC1hcnQtYmc6ICM1YTRkMWY7IC0tcWh0LWFydC1mZzogdmFyKC0tYy13YXJuLXllbGxvdy01MDAsICNmYmJmMjQpOyB9XG5bZGF0YS10aGVtZT1kYXJrXSAucWh0LXRpbnQtZ3JlZW4gICAgICAgeyAtLXFodC1hcnQtYmc6ICMyYTU1NDQ7IC0tcWh0LWFydC1mZzogIzdmZTBiYzsgfVxuW2RhdGEtdGhlbWU9ZGFya10gLnFodC10aW50LWJsdWUgICAgICAgIHsgLS1xaHQtYXJ0LWJnOiAjMmUzZTU0OyAtLXFodC1hcnQtZmc6ICM4ZmI0ZTA7IH1cbltkYXRhLXRoZW1lPWRhcmtdIC5xaHQtdGludC1icmlnaHQtYmx1ZSB7IC0tcWh0LWFydC1iZzogIzNhNGE4YTsgLS1xaHQtYXJ0LWZnOiAjYjljOGY1OyB9XG5bZGF0YS10aGVtZT1kYXJrXSAucWh0LXRpbnQtcGluayAgICAgICAgeyAtLXFodC1hcnQtYmc6ICM0ZTJhMzY7IC0tcWh0LWFydC1mZzogI2U0YTBiODsgfVxuXG4vLyBUaGUgY2FyZCBzdXJmYWNlIGl0c2VsZiBpbiBkYXJrIG1vZGUuIFRoZSB0aWxlIGl0IHJlcGxhY2VzIGhhZCBhIGhhcmQtY29kZWRcbi8vIHdoaXRlIGJhY2tncm91bmQgYW5kIGNvdWxkIG5vdCBkbyB0aGlzIGF0IGFsbC5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWh1Yi10aWxlIHtcbiAgICAtLXFodC1iZzogdmFyKC0tYy1iZy1jYXJkLCAjMmUzMDM2KTtcbiAgICAtLXFodC1ib3JkZXI6IHZhcigtLWMtZ3JleS03MDAsICM0MDQ0NGQpO1xuICAgIC0tcWh0LWJvcmRlci1ob3ZlcjogdmFyKC0tYy1wdXJwbGUtNDAwLCAjN2I4M2U4KTtcbiAgICAtLXFodC10aXRsZS1jb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICNlMWUzZTYpO1xuICAgIC0tcWh0LXN1Yi1jb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjODk4ZTk5KTtcbiAgICAtLXFodC1kaXZpZGVyOiB2YXIoLS1jLWdyZXktNzAwLCAjNDA0NDRkKTtcbn1cblxuLy8gLS0tLSBTbG90LXdyYXAgdXRpbGl0eSAtLS0tXG4vLyBTYW1lIGNvbnRyYWN0IGFuZCBzYW1lIGluY2lkZW50IGhpc3RvcnkgYXMgcWRuYXByby1ncmlkLXRpbGUncyAucWd0LXNsb3Qtd3JhcFxuLy8gYW5kIHFkbmFwcm8tbGlzdC1yb3cncyAucWxyLXNsb3Qtd3JhcDogdGhpcyBjb21wb25lbnQgTU9WRVMgdGhlIHNsb3Q9XCJhcnR3b3JrXCJcbi8vIGVsZW1lbnQgaW50byBpdHMgb3duIGNvbnRhaW5lciBvbiBmaXJzdCByZW5kZXIsIHNvIGEgdGVtcGxhdGluZyBlbmdpbmUnc1xuLy8gY29uZGl0aW9uYWwgbXVzdCBuZXZlciBzaXQgb24gdGhhdCBlbGVtZW50IGl0c2VsZi4gV3JhcCBpdC5cbi5xaHQtc2xvdC13cmFwIHtcbiAgICBkaXNwbGF5OiBjb250ZW50cztcbn1cblxuLy8gLS0tLSBSZWR1Y2VkIG1vdGlvbiAtLS0tXG4vLyBUaGUgbGlmdCBpcyBkZWNvcmF0aW9uLiBTb21lb25lIHdobyBzd2l0Y2hlZCBtb3Rpb24gb2ZmIHN0aWxsIGdldHMgdGhlIGJvcmRlclxuLy8gYW5kIHNoYWRvdyBjaGFuZ2UsIGp1c3Qgd2l0aG91dCB0aGUgbW92ZW1lbnQuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5xaHQtY2FyZCB7XG4gICAgICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMTgwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDE4MG1zIGVhc2U7XG4gICAgfVxuXG4gICAgLnFodC1jYXJkOmhvdmVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgIH1cbn1cbiIsIi8vIHFkbmEtaWNvbi1maWVsZCDigJQgZm9ybS1lbGVtZW50IHdyYXBwZXIgZm9yIHRoZSBhY3Rpdml0eS1pY29uIHBpY2tlci5cbi8vIEEgcm91bmQgcHJldmlldyB0aWxlICsgYSBcIkNob29zZSBpY29uXCIgYnV0dG9uIHRoYXQgb3BlbnMgdGhlIHNoYXJlZFxuLy8gcWRuYXByby1hY3Rpdml0eS1pY29uLXBpY2tlci1vdmVybGF5LiBVc2VkIGluIHRoZSB1bml0LXR5cGUgZWRpdCBtb2RhbFxuLy8gKHJlcGxhY2VzIHRoZSBmb3JtZXIgcHJvZmlsZS1waWN0dXJlIHVwbG9hZCwgd2hpY2ggaXMgYSB1c2Vycy1vbmx5IGNvbmNlcHQpLlxuXG4ucWRuYS1pY29uLWZpZWxkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAyNHB4O1xuXG4gICAgJl9fcHJldmlldy13cmFwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIG1heC13aWR0aDogMTIwcHg7XG4gICAgfVxuXG4gICAgJl9fcHJldmlldyB7XG4gICAgICAgIHdpZHRoOiA4MHB4O1xuICAgICAgICBoZWlnaHQ6IDgwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCwgI2YwZjFmMik7XG4gICAgfVxuXG4gICAgJl9fYm9keSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTZweDtcbiAgICB9XG5cbiAgICAmX19zdWIge1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNzI4MCk7XG4gICAgfVxuXG4gICAgJl9fYnRuIHtcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICB9XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9oaXN0b3J5LWl0ZW0vX2hpc3RvcnktaXRlbS1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4ucWRuYXByby1oaXN0b3J5LWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDJweDtcbiAgcGFkZGluZzogMTJweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGJvcmRlcjogMC41cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZTtcbn1cbi5xZG5hcHJvLWhpc3RvcnktaXRlbTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4ucWRuYXByby1oaXN0b3J5LWl0ZW06Zm9jdXMtdmlzaWJsZSwgLnFkbmFwcm8taGlzdG9yeS1pdGVtLmZvcmNlLWZvY3VzIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSg3MCwgODIsIDI0MywgMC4yNSk7XG59XG4ucWRuYXByby1oaXN0b3J5LWl0ZW0gLmhpc3RvcnktaXRlbS1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgbWluLXdpZHRoOiAwO1xufVxuLnFkbmFwcm8taGlzdG9yeS1pdGVtIC5oaXN0b3J5LWl0ZW0tcm93LXRvcCB7XG4gIGdhcDogNHB4O1xufVxuLnFkbmFwcm8taGlzdG9yeS1pdGVtIC5oaXN0b3J5LWl0ZW0tcm93LWJvdHRvbSB7XG4gIGdhcDogOHB4O1xufVxuLnFkbmFwcm8taGlzdG9yeS1pdGVtIC5oaXN0b3J5LWl0ZW0tc3ViamVjdCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLnFkbmFwcm8taGlzdG9yeS1pdGVtIC5oaXN0b3J5LWl0ZW0tcHJldmlldyB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBmb250LXdlaWdodDogNDAwO1xufVxuLnFkbmFwcm8taGlzdG9yeS1pdGVtIC5oaXN0b3J5LWl0ZW0tdGltZSB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnFkbmFwcm8taGlzdG9yeS1pdGVtIC5oaXN0b3J5LWl0ZW0tYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby1oaXN0b3J5LWl0ZW0gLmhpc3RvcnktaXRlbS1hY3Rpb25zID4gLnFkbmFwcm8taWNvbi1idG4ge1xuICB3aWR0aDogMDtcbiAgbWluLXdpZHRoOiAwO1xuICBtYXgtd2lkdGg6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBtYXgtd2lkdGggMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgd2lkdGggMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgbWluLXdpZHRoIDIwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIG1hcmdpbi1sZWZ0IDIwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIG9wYWNpdHkgMTUwbXMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLW91dDtcbn1cbi5xZG5hcHJvLWhpc3RvcnktaXRlbSAuaGlzdG9yeS1pdGVtLWFjdGlvbnMgPiAuaGlzdG9yeS1pdGVtLW1vcmUtYnRuIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG4ucWRuYXByby1oaXN0b3J5LWl0ZW06aG92ZXIgLmhpc3RvcnktaXRlbS1hY3Rpb25zID4gLnFkbmFwcm8taWNvbi1idG4sIC5xZG5hcHJvLWhpc3RvcnktaXRlbTpmb2N1cy13aXRoaW4gLmhpc3RvcnktaXRlbS1hY3Rpb25zID4gLnFkbmFwcm8taWNvbi1idG4sIC5xZG5hcHJvLWhpc3RvcnktaXRlbS5mb3JjZS1ob3ZlciAuaGlzdG9yeS1pdGVtLWFjdGlvbnMgPiAucWRuYXByby1pY29uLWJ0biB7XG4gIHdpZHRoOiAyNHB4O1xuICBtaW4td2lkdGg6IDI0cHg7XG4gIG1heC13aWR0aDogMjRweDtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG4ucWRuYXByby1oaXN0b3J5LWl0ZW06aG92ZXIgLmhpc3RvcnktaXRlbS1hY3Rpb25zID4gLmhpc3RvcnktaXRlbS1tb3JlLWJ0biwgLnFkbmFwcm8taGlzdG9yeS1pdGVtOmZvY3VzLXdpdGhpbiAuaGlzdG9yeS1pdGVtLWFjdGlvbnMgPiAuaGlzdG9yeS1pdGVtLW1vcmUtYnRuLCAucWRuYXByby1oaXN0b3J5LWl0ZW0uZm9yY2UtaG92ZXIgLmhpc3RvcnktaXRlbS1hY3Rpb25zID4gLmhpc3RvcnktaXRlbS1tb3JlLWJ0biB7XG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG59XG4ucWRuYXByby1oaXN0b3J5LWl0ZW0gLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tc3VidGxlOmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ncmV5LTMwMCk7XG59XG4ucWRuYXByby1oaXN0b3J5LWl0ZW0gLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tc3VidGxlOmFjdGl2ZTpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtZ3JleS00MDApO1xufVxuLnFkbmFwcm8taGlzdG9yeS1pdGVtOm5vdCguaGlzdG9yeS1pdGVtLWRpc2FibGVkKTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7XG59XG4ucWRuYXByby1oaXN0b3J5LWl0ZW06bm90KC5oaXN0b3J5LWl0ZW0tZGlzYWJsZWQpOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYm9yZGVyLWNhcmQpO1xufVxuLnFkbmFwcm8taGlzdG9yeS1pdGVtLmZvcmNlLWhvdmVyOm5vdCguaGlzdG9yeS1pdGVtLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7XG59XG4ucWRuYXByby1oaXN0b3J5LWl0ZW0uZm9yY2UtcHJlc3NlZDpub3QoLmhpc3RvcnktaXRlbS1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbn1cbi5xZG5hcHJvLWhpc3RvcnktaXRlbS5oaXN0b3J5LWl0ZW0tcGlubmVkIC5oaXN0b3J5LWl0ZW0tYWN0aW9ucyA+IC5oaXN0b3J5LWl0ZW0tcGluLWJ0biB7XG4gIHdpZHRoOiAyNHB4O1xuICBtaW4td2lkdGg6IDI0cHg7XG4gIG1heC13aWR0aDogMjRweDtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG4ucWRuYXByby1oaXN0b3J5LWl0ZW0uaGlzdG9yeS1pdGVtLWRpc2FibGVkLCAucWRuYXByby1oaXN0b3J5LWl0ZW0uaGlzdG9yeS1pdGVtLWRpc2FibGVkOmhvdmVyLCAucWRuYXByby1oaXN0b3J5LWl0ZW0uaGlzdG9yeS1pdGVtLWRpc2FibGVkOmFjdGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby1oaXN0b3J5LWl0ZW0uaGlzdG9yeS1pdGVtLWRpc2FibGVkOmZvY3VzLXZpc2libGUsIC5xZG5hcHJvLWhpc3RvcnktaXRlbS5oaXN0b3J5LWl0ZW0tZGlzYWJsZWQuZm9yY2UtZm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1oaXN0b3J5LWl0ZW0ge1xuICBiYWNrZ3JvdW5kOiAjMWYyMDI0O1xuICBjb2xvcjogI2YwZjFmMjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWhpc3RvcnktaXRlbTpub3QoLmhpc3RvcnktaXRlbS1kaXNhYmxlZCk6aG92ZXIsIFtkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWhpc3RvcnktaXRlbS5mb3JjZS1ob3Zlcjpub3QoLmhpc3RvcnktaXRlbS1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiAjMmEyYzMzO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taGlzdG9yeS1pdGVtOm5vdCguaGlzdG9yeS1pdGVtLWRpc2FibGVkKTphY3RpdmUsIFtkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWhpc3RvcnktaXRlbS5mb3JjZS1wcmVzc2VkOm5vdCguaGlzdG9yeS1pdGVtLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6ICMzNTM4NDE7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1oaXN0b3J5LWl0ZW0gLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tc3VidGxlOmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU2NWI2Njtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWhpc3RvcnktaXRlbSAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1zdWJ0bGU6YWN0aXZlOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZiNzI4MDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWhpc3RvcnktaXRlbS5oaXN0b3J5LWl0ZW0tZGlzYWJsZWQsIFtkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWhpc3RvcnktaXRlbS5oaXN0b3J5LWl0ZW0tZGlzYWJsZWQ6aG92ZXIsIFtkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWhpc3RvcnktaXRlbS5oaXN0b3J5LWl0ZW0tZGlzYWJsZWQ6YWN0aXZlIHtcbiAgY29sb3I6ICM2YjcyODA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvaWNvbi9faWNvbi1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4ucWRuYXByby1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4LXNocmluazogMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHdpZHRoOiAxZW07XG4gIGhlaWdodDogMWVtO1xufVxuLnFkbmFwcm8taWNvbiA+IHN2ZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG59XG4ucWRuYXByby1pY29uLmljb24tMTYge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xufVxuLnFkbmFwcm8taWNvbi5pY29uLTIwIHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbn1cbi5xZG5hcHJvLWljb24uaWNvbi0yNCB7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9pY29uLWJ0bi9faWNvbi1idG4tY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLyogcWRuYXByby1pY29uLWJ0biBjb21waWxlZCBDU1MgLS0gZ2VuZXJhdGVkIGZyb20gX2ljb24tYnRuLnNjc3MgMjAyNi0wNS0xMy1kYW5nZXIgKi9cblxuLnFkbmFwcm8taWNvbi1idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIG1pbi13aWR0aDogMjRweDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIC0taWItZm9jdXMtcmluZzogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgLS1pYi1mb2N1cy1nbG93OiByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLW91dCwgY29sb3IgMTIwbXMgZWFzZS1vdXQ7XG59XG4ucWRuYXByby1pY29uLWJ0biBxZG5hcHJvLWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbn1cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXNpemUtYmlnIHtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgbWluLXdpZHRoOiAyOHB4O1xufVxuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tc2l6ZS1iaWcgcWRuYXByby1pY29uIHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbn1cbi5xZG5hcHJvLWljb24tYnRuOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5xZG5hcHJvLWljb24tYnRuOmZvY3VzLXZpc2libGUsIC5xZG5hcHJvLWljb24tYnRuLmZvcmNlLWZvY3VzIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWliLWZvY3VzLXJpbmcpO1xuICBvdXRsaW5lLW9mZnNldDogdmFyKC0taWItZm9jdXMtb2Zmc2V0LCAtMnB4KTtcbiAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHZhcigtLWliLWZvY3VzLWdsb3cpO1xufVxuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tZGlzYWJsZWQ6Zm9jdXMtdmlzaWJsZSwgLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tZGlzYWJsZWQuZm9yY2UtZm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnFkbmFwcm8taWNvbi1idG46YWN0aXZlOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHJnYmEoMCwgMCwgMCwgMC4xNSksIHJnYmEoMCwgMCwgMCwgMC4xNSkpO1xufVxuXG4vKiBUWVBFOiBwcmltYXJ5LXB1cnBsZSAqL1xuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tcHJpbWFyeS1wdXJwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gIC0taWItZm9jdXMtcmluZzogdmFyKC0tYy1wdXJwbGUtNzAwKTtcbiAgLS1pYi1mb2N1cy1nbG93OiByZ2JhKDcwLCA4MiwgMjQzLCAwLjQwKTtcbn1cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXByaW1hcnktcHVycGxlOmZvY3VzLXZpc2libGUsIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXByaW1hcnktcHVycGxlLmZvcmNlLWZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWliLWZvY3VzLXJpbmcpLCAwIDAgMCA2cHggdmFyKC0taWItZm9jdXMtZ2xvdyk7XG59XG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1wcmltYXJ5LXB1cnBsZTpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHVycGxlLTYwMCk7XG59XG5cbi8qIFRZUEU6IHNlY29uZGFyeSAqL1xuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tc2Vjb25kYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ncmV5LTUwKTtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xufVxuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tc2Vjb25kYXJ5OmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ncmV5LTMwMCk7XG59XG5cbi8qIFRZUEU6IGRyb3Bkb3duLXNlYXJjaCAqL1xuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tZHJvcGRvd24tc2VhcmNoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ib3JkZXItdHJlZSk7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xufVxuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tZHJvcGRvd24tc2VhcmNoOmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1zaWRlYmFyLWljb24pO1xufVxuXG4vKiBUWVBFOiBkcm9wZG93bi1pbnB1dCAqL1xuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tZHJvcGRvd24taW5wdXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xufVxuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tZHJvcGRvd24taW5wdXQ6aG92ZXI6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWdyZXktNTApO1xufVxuXG4vKiBUWVBFOiBidWxrLXNlbGVjdCAqL1xuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tYnVsay1zZWxlY3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlOWZmO1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWJ1bGstc2VsZWN0OmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ib3JkZXItdHJlZS1icmlnaHQpO1xufVxuXG4vKiBUWVBFOiBpbnB1dC1pY29uICovXG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1pbnB1dC1pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwKTtcbn1cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWlucHV0LWljb246aG92ZXI6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWdyZXktNTApO1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG59XG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1pbnB1dC1pY29uOmFjdGl2ZTpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktOTUwKTtcbn1cblxuLyogVFlQRTogc3VidGxlICovXG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1zdWJ0bGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xufVxuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tc3VidGxlOmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ncmV5LTUwKTtcbn1cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXN1YnRsZTphY3RpdmU6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbn1cblxuLyogVFlQRTogc3VidGxlLXB1cnBsZSAtLSBtaXJyb3JzIHRoZSBidXR0b24gY29tcG9uZW50J3Mgc3VidGxlLXB1cnBsZS1iZyBzcGVjc1xuICAgKHRyYW5zcGFyZW50IGJnLCBwdXJwbGUgaWNvbiwgbGlnaHQtcHVycGxlIGhvdmVyL2FjdGl2ZSkuIFtLaW0gMjAyNi0wNi0xN10gKi9cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXN1YnRsZS1wdXJwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1zdWJ0bGUtcHVycGxlOmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ib3JkZXItdHJlZS1icmlnaHQpO1xufVxuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tc3VidGxlLXB1cnBsZTphY3RpdmU6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXNpZGViYXItaWNvbik7XG59XG5cbi8qIFRZUEU6IHN1YnRsZS1lcnJvciAqL1xuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tc3VidGxlLWVycm9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCk7XG59XG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1zdWJ0bGUtZXJyb3I6aG92ZXI6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE5OCwgOTAsIDkwLCAwLjEwKTtcbn1cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXN1YnRsZS1lcnJvcjphY3RpdmU6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE5OCwgOTAsIDkwLCAwLjE4KTtcbn1cblxuLyogPT09IHR5cGU6IG91dGxpbmUtcHVycGxlIC0tIHB1cnBsZSBib3JkZXIgKyBwdXJwbGUgaWNvbiBbMjAyNi0wOC0wNV0gPT09XG4gICBUaGUgcHVycGxlIGNvdW50ZXJwYXJ0IG9mIGBkYW5nZXJgIGJlbG93OiBzYW1lIHNoYXBlLCBicmFuZCBjb2xvdXIuIEJ1aWx0IGZvclxuICAgdGhlIHBsdXMgYnV0dG9ucyBvbiB0aGUgcnVsZSBlZGl0b3IncyByYWlsLCB3aGVyZSBhIGZpbGxlZCBjaXJjbGUgd2FzIHRvbyBoZWF2eVxuICAgYW5kIGBzdWJ0bGUtcHVycGxlYCAobm8gYm9yZGVyIGF0IGFsbCkgdG9vIHF1aWV0LiAqL1xuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tb3V0bGluZS1wdXJwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXNpZGViYXItaWNvbik7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAtLWliLWZvY3VzLXJpbmc6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIC0taWItZm9jdXMtZ2xvdzogcmdiYSg3MCwgODIsIDI0MywgMC4yMCk7XG59XG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1vdXRsaW5lLXB1cnBsZTpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtMjAwKTtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTYwMCk7XG59XG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1vdXRsaW5lLXB1cnBsZTphY3RpdmU6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTcwMCk7XG59XG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1vdXRsaW5lLXB1cnBsZS5pY29uLWJ0bi1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1ncmV5LTEwMCkgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS00MDApICFpbXBvcnRhbnQ7XG59XG5cbi8qIFRZUEU6IGRhbmdlciAtLSByZWQgYm9yZGVyICsgcmVkIGljb24gKyBsaWdodCByZWQgaG92ZXIgYmcgKi9cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWRhbmdlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtY2hpcC1yZWQtaG92ZXIpO1xuICBjb2xvcjogdmFyKC0tYy13YXJuLXJlZC01MDApO1xuICAtLWliLWZvY3VzLXJpbmc6IHZhcigtLWMtd2Fybi1yZWQtNTAwKTtcbiAgLS1pYi1mb2N1cy1nbG93OiByZ2JhKDIzOSwgNjgsIDY4LCAwLjIwKTtcbn1cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWRhbmdlcjpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC1zb2Z0KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXdhcm4tcmVkLTQwMCk7XG4gIGNvbG9yOiB2YXIoLS1jLXdhcm4tcmVkLTUwMCk7XG59XG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1kYW5nZXI6YWN0aXZlOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLWJnKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXdhcm4tcmVkLTUwMCk7XG4gIGNvbG9yOiB2YXIoLS1jLXRhZy1jcml0aWNhbC10ZXh0KTtcbn1cblxuLyogVFlQRTogcHVycGxlLWFjdGl2ZSAqL1xuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tcHVycGxlLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0KTtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1wdXJwbGUtYWN0aXZlOmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1zaWRlYmFyLWljb24pO1xufVxuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tcHVycGxlLWFjdGl2ZTphY3RpdmU6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXNpZGViYXItaWNvbik7XG59XG5cbi8qIFNUQVRFOiBkaXNhYmxlZCAqL1xuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWdyZXktNTApICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuW2RhdGEtYmctY29udGV4dD1wdXJwbGVdIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ib3JkZXItdHJlZS1icmlnaHQpICFpbXBvcnRhbnQ7XG59XG5cbi8qIERhcmsgbW9kZSAqL1xuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tcHJpbWFyeS1wdXJwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzg0MmMyO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXByaW1hcnktcHVycGxlOmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJhMzE5Mjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyZTMwMzY7XG4gIGNvbG9yOiAjZTFlM2U2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tc2Vjb25kYXJ5OmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQwNDQ0ZDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWRyb3Bkb3duLXNlYXJjaCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MDQ0NGQ7XG4gIGNvbG9yOiAjZTFlM2U2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tZHJvcGRvd24tc2VhcmNoOmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU2NWI2Njtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWRyb3Bkb3duLXNlYXJjaC5pY29uLWJ0bi1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyZTMwMzYgIWltcG9ydGFudDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWRyb3Bkb3duLWlucHV0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZTFlM2U2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tZHJvcGRvd24taW5wdXQ6aG92ZXI6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTY1YjY2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tYnVsay1zZWxlY3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGIwYjBkO1xuICBjb2xvcjogI2YwZjFmMjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWJ1bGstc2VsZWN0OmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQwNDQ0ZDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWlucHV0LWljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICM4OThlOTk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1pbnB1dC1pY29uOmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU2NWI2NjtcbiAgY29sb3I6ICNlMWUzZTY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1pbnB1dC1pY29uOmFjdGl2ZTpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGNvbG9yOiAjZTFlM2U2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tc3VidGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZTFlM2U2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tc3VidGxlOmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU2NWI2Njtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXN1YnRsZTphY3RpdmU6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmI3MjgwO1xufVxuLyogc3VidGxlLXB1cnBsZSBkYXJrOiAtLWMtcHVycGxlLTUwMCAoIzQwNDk5YSkgYW5kIC0tYy1zaWRlYmFyLWljb24gKGxpZ2h0IGdyZXlcbiAgIGluIGRhcmspIGhhdmUgbm8gdXNhYmxlIGRhcmsgdmFsdWVzLCBzbyBtaXJyb3IgcHVycGxlLWFjdGl2ZSdzIGRhcmsgcGFsZXR0ZVxuICAgb25lIHN0ZXAgbGlnaHRlcjogaG92ZXIgPSBwdXJwbGUtYWN0aXZlJ3MgcmVzdGluZyBiZywgYWN0aXZlID0gaXRzIGhvdmVyIGJnLlxuICAgSWNvbiAjYTVhY2ZmIG1hdGNoZXMgdGhlIGRhcmsgZm9jdXMgcmluZyBhbmQgcHVycGxlLWFjdGl2ZSdzIGRhcmsgaWNvbi4gWzIxLjA4LjIwMjZdICovXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1zdWJ0bGUtcHVycGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjYTVhY2ZmO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tc3VidGxlLXB1cnBsZTpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjApO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tc3VidGxlLXB1cnBsZTphY3RpdmU6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjMwKTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXN1YnRsZS1lcnJvciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogI2ZiYWFhYTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXN1YnRsZS1lcnJvcjpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjUxLCAxNzAsIDE3MCwgMC4xMik7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1zdWJ0bGUtZXJyb3I6YWN0aXZlOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTEsIDE3MCwgMTcwLCAwLjIwKTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWRhbmdlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6IHJnYmEoMjUyLCAxNjUsIDE2NSwgMC40NSk7XG4gIGNvbG9yOiAjZmNhNWE1O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tZGFuZ2VyOmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMzksIDY4LCA2OCwgMC4xNSk7XG4gIGJvcmRlci1jb2xvcjogI2ZjYTVhNTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1kYW5nZXI6YWN0aXZlOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMzksIDY4LCA2OCwgMC4yNSk7XG4gIGJvcmRlci1jb2xvcjogI2Y4NzE3MTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1wdXJwbGUtYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3MCwgODIsIDI0MywgMC4yMCk7XG4gIGNvbG9yOiAjYTVhY2ZmO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tcHVycGxlLWFjdGl2ZTpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMzApO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tcHVycGxlLWFjdGl2ZTphY3RpdmU6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjQyKTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQwNDQ0ZCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzZiNzI4MCAhaW1wb3J0YW50O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taWNvbi1idG46Zm9jdXMtdmlzaWJsZSwgW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taWNvbi1idG4uZm9yY2UtZm9jdXMge1xuICBvdXRsaW5lLWNvbG9yOiAjYTVhY2ZmO1xuICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSg3MCwgODIsIDI0MywgMC40KTtcbn1cblxuLyogPT09IHNpemU6IHRvdWNoIOKAlCA0NMOXNDQgbWluaW11bSB0YXAgdGFyZ2V0IFsyMDI2LTA2LTMwXSA9PT0gKi9cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXNpemUtdG91Y2gge1xuICB3aWR0aDogNDRweDtcbiAgaGVpZ2h0OiA0NHB4O1xuICBtaW4td2lkdGg6IDQ0cHg7XG59XG5cbi8qID09PSB2YXJpYW50OiByb3VuZCDigJQgZnVsbCBjaXJjbGUgWzIwMjYtMDYtMzBdID09PSAqL1xuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tcm91bmQge1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5cbi8qID09PSB0eXBlOiBvbi1kYXJrLXB1cnBsZSDigJQgaWNvbiBvbiB2YXIoLS1jLXB1cnBsZS03MDApIHN1cmZhY2UgWzIwMjYtMDYtMzBdID09PSAqL1xuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tb24tZGFyay1wdXJwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwKTtcbn1cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLW9uLWRhcmstcHVycGxlOmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwKTtcbn1cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLW9uLWRhcmstcHVycGxlLmljb24tYnRuLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTMwMCkgIWltcG9ydGFudDtcbn1cblxuLyogPT09IHR5cGU6IGZpbGxlZC1kYXJrLXB1cnBsZSDigJQgb3duIHZhcigtLWMtcHVycGxlLTcwMCkgc3VyZmFjZSBbMjAyNi0wNi0zMF0gPT09ICovXG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1maWxsZWQtZGFyay1wdXJwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS03MDApO1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTApO1xufVxuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tZmlsbGVkLWRhcmstcHVycGxlOmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNjAwKTtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwKTtcbn1cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWZpbGxlZC1kYXJrLXB1cnBsZS5pY29uLWJ0bi1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS0zMDApICFpbXBvcnRhbnQ7XG59XG5cbi8qID09PSB0eXBlOiBmaWxsZWQtZXJyb3Ig4oCUIHNvbGlkIGVycm9yLXJlZCBzdXJmYWNlLCB3aGl0ZSBpY29uIFsyMDI2LTA4LTA0XSA9PT1cbiAgIFRoZSBmaWxsZWQgY291bnRlcnBhcnQgdG8gc3VidGxlLWVycm9yICh0cmFuc3BhcmVudCkgYW5kIGRhbmdlciAoYm9yZGVyZWQpLlxuICAgVXNlcyB0aGUgc2FtZSByZWQgYXMgc3VidGxlLWVycm9yICh2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCkpLCBub3QgdGhlIGRhbmdlciBwYWxldHRlJ3MgdmFyKC0tYy13YXJuLXJlZC01MDApOlxuICAgYXMgYSBmdWxsIGZpbGwgdGhhdCBicmlnaHRlciByZWQgc2hvdXRzLCBhbmQgdGhlIFFETkEgcmVkIGlzIHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0KS5cbiAgIE1hZGUgZm9yIHRoZSByZW1vdmUtY2lyY2xlIG9uIHRoZSBydWxlIGVkaXRvcidzIElGL1RIRU4gcmFpbCwgd2hpY2ggdXNlZCB0byBiZVxuICAgYSBoYW5kLXJvbGxlZCBmaWxsZWQgY2lyY2xlLiBDb21iaW5lIHdpdGggYHJvdW5kYC4gKi9cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWZpbGxlZC1lcnJvciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0KTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICAtLWliLWZvY3VzLXJpbmc6IHZhcigtLWMtY2hpcC1yZWQtdGV4dCk7XG4gIC0taWItZm9jdXMtZ2xvdzogcmdiYSgxOTgsIDkwLCA5MCwgMC40MCk7XG59XG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1maWxsZWQtZXJyb3I6aG92ZXI6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbn1cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWZpbGxlZC1lcnJvcjphY3RpdmU6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWNoaXAtcmVkLXRleHQpO1xufVxuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tZmlsbGVkLWVycm9yLmljb24tYnRuLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1jaGlwLXBpbmstaG92ZXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKSAhaW1wb3J0YW50O1xufVxuXG4vKiA9PT0gdHlwZTogZmlsbGVkLWFjdGlvbiDigJQgc29saWQgYWN0aW9uLWJsdWUgc3VyZmFjZSwgd2hpdGUgaWNvbiBbMTYuMDguMjAyNl0gPT09XG4gICBUaGUgc2VuZCBidXR0b24gYXQgdGhlIGVuZCBvZiBhIGNvbXBvc2UgYmFyLiBwcmltYXJ5LXB1cnBsZSAoLS1jLXB1cnBsZS01MDAsXG4gICAjNDA0OTlhKSB3YXMgdGhlIGNsb3Nlc3QgZXhpc3RpbmcgdHlwZSBhbmQgaXQgaXMgdmlzaWJseSBkYXJrZXIgYW5kIGhlYXZpZXI6XG4gICBuZXh0IHRvIGEgdGV4dCBmaWVsZCBpdCByZWFkcyBhcyBjaHJvbWUsIHdoaWxlIHRoaXMgb25lIHJlYWRzIGFzIFwicHJlc3MgbWVcIi5cbiAgIFVzZXMgdGhlIEFDVElPTiBzY2FsZSwgdGhlIHNhbWUgY29sb3VyIHRoZSBwcmltYXJ5IGJ1dHRvbnMgdXNlLlxuICAgQnVpbHQgZm9yIHRoZSBQdWxzZSByZWFjdGllLXNoZWV0LiBDb21iaW5lIHdpdGggYHJvdW5kYC4gKi9cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWZpbGxlZC1hY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWFjdGlvbi01MDApO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gIC0taWItZm9jdXMtcmluZzogdmFyKC0tYy1hY3Rpb24tNzAwKTtcbiAgLS1pYi1mb2N1cy1nbG93OiB2YXIoLS1jLWFjdGlvbi00MCk7XG59XG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1maWxsZWQtYWN0aW9uOmZvY3VzLXZpc2libGUsXG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1maWxsZWQtYWN0aW9uLmZvcmNlLWZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWliLWZvY3VzLXJpbmcpLCAwIDAgMCA2cHggdmFyKC0taWItZm9jdXMtZ2xvdyk7XG59XG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1maWxsZWQtYWN0aW9uOmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1hY3Rpb24tNjAwKTtcbn1cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWZpbGxlZC1hY3Rpb246YWN0aXZlOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1hY3Rpb24tNzAwKTtcbn1cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWZpbGxlZC1hY3Rpb24uaWNvbi1idG4tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWFjdGlvbi0zMCkgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pICFpbXBvcnRhbnQ7XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9pbGx1c3RyYXRpb24vX2lsbHVzdHJhdGlvbi1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqICBxZG5hcHJvLWlsbHVzdHJhdGlvbiDigJQgY29tcGlsZWQgZnJvbSBfaWxsdXN0cmF0aW9uLnNjc3NcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ucWRuYXByby1pbGx1c3RyYXRpb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNDBtcyBlYXNlLW91dDtcbiAgICBoZWlnaHQ6IGF1dG87XG59XG4ucWRuYXByby1pbGx1c3RyYXRpb24gLmlsbHVzdHJhdGlvbi1pbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5xZG5hcHJvLWlsbHVzdHJhdGlvbi5pbGx1c3RyYXRpb24tZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbn1cblxuLy8gZW1waGFzaXM6IGhvZXZlZWwgZGUgaWxsdXN0cmF0aWUgbmFhciBhY2h0ZXJlbiBzdGFwdC4gVHdlZSBiZW5vZW1kZSBzdGFwcGVuIGVuXG4vLyBnZWVuIHZyaWogZ2V0YWwsIHpvZGF0IGhldCBuaWV0IG92ZXJhbCBuZXQgaWV0cyBhbmRlcnMgd29yZHQuIGBkaXNhYmxlZGAgaGllcmJvdmVuXG4vLyB6ZWd0IGlldHMgYW5kZXJzIChuaWV0IGJlc2NoaWtiYWFyKSBlbiBob3VkdCB6aWpuIGVpZ2VuIHdhYXJkZS5cbi5xZG5hcHJvLWlsbHVzdHJhdGlvbi5pbGx1c3RyYXRpb24tZW1waGFzaXMtc29mdCB7XG4gICAgb3BhY2l0eTogMC42O1xufVxuLnFkbmFwcm8taWxsdXN0cmF0aW9uLmlsbHVzdHJhdGlvbi1lbXBoYXNpcy1mYWludCB7XG4gICAgb3BhY2l0eTogMC4zNTtcbn1cbi5xZG5hcHJvLWlsbHVzdHJhdGlvbi5pbGx1c3RyYXRpb24tbWlzc2luZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gICAgYm9yZGVyOiAxcHggZGFzaGVkICNjNGM3Y2M7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBhc3BlY3QtcmF0aW86IDQgLyAzO1xuICAgIGhlaWdodDogYXV0bztcbn1cbi5xZG5hcHJvLWlsbHVzdHJhdGlvbi5pbGx1c3RyYXRpb24tbWlzc2luZzo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiP1wiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgY29sb3I6ICM4OThlOTk7XG59XG5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1pbGx1c3RyYXRpb24uaWxsdXN0cmF0aW9uLW1pc3Npbmcge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG4gICAgYm9yZGVyLWNvbG9yOiAjNTY1YjY2O1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLWlsbHVzdHJhdGlvbi5pbGx1c3RyYXRpb24tbWlzc2luZzo6YWZ0ZXIge1xuICAgIGNvbG9yOiAjNmI3MjgwO1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1pbmZvLWNhcmQg4oCUIHJldXNhYmxlIFwiaW5mb3JtYXRpb24gZnJhbWVcIlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgTGVhZGluZyBhY3Rpdml0eS1pY29uIG9uIGEgY29sb3VyZWQgdGlsZSArIHdyYXBwaW5nIHRpdGxlICtcbi8vICBtZXRhIHJvd3MgKDE2cHggTURJIGljb24gKyB0ZXh0KSwgaW5zaWRlIGEgZnJhbWVkIGNhcmQuXG4vL1xuLy8gIFR3byBzdXJmYWNlcyB2aWEgYSB2YXJpYW50IG1vZGlmaWVyOlxuLy8gICAgLS1vbi13aGl0ZSAgKGRlZmF1bHQpIGRhcmsgdGV4dCwgaGFpcmxpbmUgZnJhbWUgIChsaWdodCBwYWdlcylcbi8vICAgIC0tb24tcHVycGxlICAgICAgICAgICB3aGl0ZSB0ZXh0LCB0cmFuc2x1Y2VudCAgICAocHVycGxlIHNoZWV0KVxuLy9cbi8vICBJY29uLXRpbGUgY29sb3VyID0gdGhlIHRhc2tsaXN0IGFjdGl2aXR5LWljb24gcGFsZXR0ZSAoZ3JleS9yZWQvXG4vLyAgeWVsbG93L2dyZWVuL2JsdWUvYnJpZ2h0LWJsdWUvcGluay9wdXJwbGUpLCBkcml2ZW4gYnkgYSBjb2xvdXJcbi8vICBtb2RpZmllciB0aGF0IHNldHMgLS1pbmZvLWNhcmQtaWNvbi1iZy5cbi8vXG4vLyAgRkxBVCBDU1MgKG5vIG5lc3RpbmcpIHNvIGl0IGNhbiBiZSBzeW5jZWQgdG8gdGhlIFBXQSB2ZXJiYXRpbSB2aWFcbi8vICBzeW5jLXYyLWNvbXBvbmVudHMuanMsIGV4YWN0bHkgbGlrZSBxZG5hcHJvLWV2ZW50LWNhcmQuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnFkbmFwcm8taW5mby1jYXJkIHtcbiAgLy8gU3VyZmFjZSB2YXJpYWJsZXMg4oCUIG9uLXdoaXRlIGlzIHRoZSBkZWZhdWx0XG4gIC0taW5mby1jYXJkLXRpdGxlOiAgIHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMWExZDNhKTtcbiAgLS1pbmZvLWNhcmQtbWV0YTogICAgdmFyKC0tYy10ZXh0LW11dGVkLCAjNmE2ZTlhKTtcbiAgLS1pbmZvLWNhcmQtZnJhbWU6ICAgdmFyKC0tYy1ib3JkZXIsICNlN2U5ZWMpO1xuICAtLWluZm8tY2FyZC1maWxsOiAgICB0cmFuc3BhcmVudDtcbiAgLS1pbmZvLWNhcmQtaWNvbi1iZzogdmFyKC0tYy1ncmV5LTUwKTsgLy8gZ3JleSAoZGVmYXVsdCBjb2xvdXIpXG5cbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMTRweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMTZweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taW5mby1jYXJkLWZyYW1lKTtcbiAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgYmFja2dyb3VuZDogdmFyKC0taW5mby1jYXJkLWZpbGwpO1xuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi8vIC0tLSBTdXJmYWNlIHZhcmlhbnRzIC0tLVxuLnFkbmFwcm8taW5mby1jYXJkLS1vbi1wdXJwbGUge1xuICAtLWluZm8tY2FyZC10aXRsZTogI2ZmZmZmZjtcbiAgLS1pbmZvLWNhcmQtbWV0YTogIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Mik7XG4gIC0taW5mby1jYXJkLWZyYW1lOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjApO1xuICAtLWluZm8tY2FyZC1maWxsOiAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA5KTtcbn1cblxuLy8gLS0tIEljb24tdGlsZSBjb2xvdXJzICh0YXNrbGlzdCBhY3Rpdml0eS1pY29uIHBhbGV0dGUpIC0tLVxuLnFkbmFwcm8taW5mby1jYXJkLS1ncmV5ICAgICAgICB7IC0taW5mby1jYXJkLWljb24tYmc6IHZhcigtLWMtZ3JleS01MCk7IH1cbi5xZG5hcHJvLWluZm8tY2FyZC0tcmVkICAgICAgICAgeyAtLWluZm8tY2FyZC1pY29uLWJnOiB2YXIoLS1jLXNpZ25hbC1yZWQtYmcpOyB9XG4ucWRuYXByby1pbmZvLWNhcmQtLXllbGxvdyAgICAgIHsgLS1pbmZvLWNhcmQtaWNvbi1iZzogdmFyKC0tYy1jaGlwLXllbGxvdy1iZyk7IH1cbi5xZG5hcHJvLWluZm8tY2FyZC0tZ3JlZW4gICAgICAgeyAtLWluZm8tY2FyZC1pY29uLWJnOiB2YXIoLS1jLWNoaXAtZ3JlZW4tYmcpOyB9XG4ucWRuYXByby1pbmZvLWNhcmQtLWJsdWUgICAgICAgIHsgLS1pbmZvLWNhcmQtaWNvbi1iZzogdmFyKC0tYy1zaWduYWwtYmx1ZS1iZyk7IH1cbi5xZG5hcHJvLWluZm8tY2FyZC0tYnJpZ2h0LWJsdWUgeyAtLWluZm8tY2FyZC1pY29uLWJnOiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtMi1iZyk7IH1cbi5xZG5hcHJvLWluZm8tY2FyZC0tcGluayAgICAgICAgeyAtLWluZm8tY2FyZC1pY29uLWJnOiB2YXIoLS1jLXNpZ25hbC1waW5rLWJnKTsgfVxuLnFkbmFwcm8taW5mby1jYXJkLS1wdXJwbGUgICAgICB7IC0taW5mby1jYXJkLWljb24tYmc6IHZhcigtLWMtY2hpcC1wdXJwbGUtYmcpOyB9XG5cbi8vIC0tLSBJY29uIHRpbGUgLS0tXG4ucWRuYXByby1pbmZvLWNhcmRfX2ljb24ge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWluZm8tY2FyZC1pY29uLWJnKTtcbiAgbGluZS1oZWlnaHQ6IDA7XG59XG4vLyBQcmUtcmVzb2x2ZWQgaWNvbiBpbWFnZSAoaWNvbi1zcmMpIOKAlCBtYXRjaGVzIHRoZSA0MHB4IGFjdGl2aXR5LWljb24gaXQgcmVwbGFjZXMuXG4ucWRuYXByby1pbmZvLWNhcmRfX2ljb24taW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG5cbi8vIC0tLSBCb2R5IC0tLVxuLnFkbmFwcm8taW5mby1jYXJkX19ib2R5IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLnFkbmFwcm8taW5mby1jYXJkX190aXRsZSB7XG4gIGNvbG9yOiB2YXIoLS1pbmZvLWNhcmQtdGl0bGUpO1xuICBmb250LXNpemU6IDE3cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIC8vIEZ1bGwgbmFtZSDigJQgd3JhcHMgdG8gYXMgbWFueSBsaW5lcyBhcyBuZWVkZWQsIG5ldmVyIHRydW5jYXRlZC5cbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG59XG5cbi8vIC0tLSBNZXRhIHJvd3MgLS0tXG4ucWRuYXByby1pbmZvLWNhcmRfX3JvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBtYXJnaW4tdG9wOiA3cHg7XG4gIGNvbG9yOiB2YXIoLS1pbmZvLWNhcmQtbWV0YSk7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cbi5xZG5hcHJvLWluZm8tY2FyZF9fcm93IC5xZG5hcHJvLWljb24sXG4ucWRuYXByby1pbmZvLWNhcmRfX3JvdyBxZG5hcHJvLWljb24ge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4ucWRuYXByby1pbmZvLWNhcmRfX3Jvdy10ZXh0IHtcbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8taW1hZ2UtY3JvcFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgQ3JvcHBlciBVSSB0aGF0IGxpdmVzIElOU0lERSBxZG5hcHJvLW1vZGFsJ3MgLm1vZGFsLWJvZHkuIEJ1aWx0XG4vLyAgb24gQ3JvcHBlci5qcyB2MSAodmVuZG9yZWQpLiBUaGlzIGZpbGUgc3R5bGVzIHRocmVlIHRoaW5nczpcbi8vICAgIDEuIHRoZSBjcm9wIHN0YWdlICsgdG9vbGJhciArIHRoZSByZWJyYW5kZWQgQ3JvcHBlciBjaHJvbWVcbi8vICAgIDIuIHRoZSBzaGFwZSBtYXNrcyAoY2lyY2xlIC8gcm91bmRlZCAvIHJlY3QpIHNob3duIGxpdmVcbi8vICAgIDMuIHRoZSBzaWRlIHByZXZpZXcgcGFuZWwgKHN1cmZhY2VzIG9yIGRldmljZSBmcmFtZXMpXG4vL1xuLy8gIExvY2FsIC0taWMtKiB2YXJzIG1hcCB0byB0aGUgY2VudHJhbCBkZXNpZ24gdG9rZW5zIGJ1dCBjYXJyeVxuLy8gIGxpdGVyYWwgZmFsbGJhY2tzIHNvIHRoZSBjb21wb25lbnQgYWxzbyByZW5kZXJzIGNvcnJlY3RseSBpblxuLy8gIGEgc3RhbmRhbG9uZSBmaWxlOi8vIHByZXZpZXcgKG5vIGdsb2JhbCB0b2tlbiBzaGVldCBsb2FkZWQpLlxuLy8gIEVuZ2xpc2ggY29tbWVudHMgb25seS4gTm8gZW0tZGFzaCBpbiBzaGlwcGVkIGNvcHkuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnFkbmFwcm8taWMge1xuICAgIC0taWMtcHVycGxlOiAgICAgICAgdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpO1xuICAgIC0taWMtcHVycGxlLXNvZnQ6ICAgdmFyKC0tYy1iZy1zZWNvbmRhcnktcHVycGxlLCAjZTZlOWZmKTtcbiAgICAtLWljLXRleHQ6ICAgICAgICAgIHZhcigtLWMtdGV4dC1ib2R5LCAjMGIwYjBkKTtcbiAgICAtLWljLW11dGVkOiAgICAgICAgIHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gICAgLS1pYy1oZWFkaW5nOiAgICAgICB2YXIoLS1jLXRleHQtaGVhZGluZywgIzFhMWY0ZCk7XG4gICAgLS1pYy1ib3JkZXI6ICAgICAgICB2YXIoLS1jLWJvcmRlci1jYXJkLCAjZTFlM2U2KTtcbiAgICAtLWljLWNhcmQ6ICAgICAgICAgIHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG4gICAgLS1pYy1zdGFnZS1iZzogICAgICB2YXIoLS1jLWdyZXktOTAwKTsgICAgICAgICAgICAvLyBkYXJrIHN0YWdlIGJhY2tkcm9wLCBwaG90by1uZXV0cmFsXG4gICAgLS1pYy1kaW06ICAgICAgICAgICByZ2JhKDE2LCAyMCwgNDUsIDAuNjIpO1xuICAgIC0taWMtd2Fybi1iZzogICAgICAgdmFyKC0tYy10YWctd2FybmluZy1iZywgI2ZmZjJkNik7XG4gICAgLS1pYy13YXJuLXRleHQ6ICAgICB2YXIoLS1jLXRhZy13YXJuaW5nLXRleHQsICNhMDY0MDApO1xuICAgIC0taWMtcmFkaXVzOiAgICAgICAgdmFyKC0tci1jYXJkLCAxNHB4KTtcbiAgICAtLWljLXJhZGl1cy1zbTogICAgIHZhcigtLXItYnRuLCA4cHgpO1xuICAgIC0taWMtZmY6ICAgICAgICAgICAgdmFyKC0tZmYsIFwiSW50ZXJcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBcIlNlZ29lIFVJXCIsIHNhbnMtc2VyaWYpO1xuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWljLWZmKTtcbiAgICBjb2xvcjogdmFyKC0taWMtdGV4dCk7XG5cbiAgICAqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4gICAgLy8gLS0tIE1haW46IHN0YWdlIChsZWZ0KSArIHByZXZpZXcgcGFuZWwgKHJpZ2h0KSAtLS1cbiAgICAucWRuYXByby1pYy1tYWluIHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogdmFyKC0tcy01LCAyMHB4KTtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgLnFkbmFwcm8taWMtc3RhZ2V3cmFwIHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1zLTMsIDEycHgpO1xuICAgIH1cblxuICAgIC5xZG5hcHJvLWljLXN0YWdlIHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIG1pbi1oZWlnaHQ6IDI4MHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWljLXJhZGl1cyk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWljLXN0YWdlLWJnKTtcbiAgICB9XG5cbiAgICAvLyBDcm9wcGVyIHJlcGxhY2VzIHRoZSA8aW1nPiB3aXRoIC5jcm9wcGVyLWNvbnRhaW5lcjsgdGhlIGJhcmUgaW1nXG4gICAgLy8gaXMgb25seSB2aXNpYmxlIGZvciBhIGJsaW5rIGJlZm9yZSBpbml0LlxuICAgIC5xZG5hcHJvLWljLWltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLy8gLS0tIFRvb2xiYXIgLS0tXG4gICAgLnFkbmFwcm8taWMtdG9vbGJhciB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IHZhcigtLXMtMiwgOHB4KTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAvLyAtLS0gU2lkZSBwcmV2aWV3IHBhbmVsIC0tLVxuICAgIC5xZG5hcHJvLWljLXNpZGUge1xuICAgICAgICBmbGV4OiAwIDAgMjMwcHg7XG4gICAgICAgIG1heC13aWR0aDogMjMwcHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tcy0zLCAxMnB4KTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zLTUsIDIwcHgpO1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWljLWJvcmRlcik7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgfVxuXG4gICAgLnFkbmFwcm8taWMtc2lkZS1oZWFkaW5nIHtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaSwgNjAwKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWljLWhlYWRpbmcpO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMWVtO1xuICAgIH1cblxuICAgIC5xZG5hcHJvLWljLXByZXZpZXdzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1zLTUsIDIwcHgpO1xuICAgIH1cblxuICAgIC8vIFRoZSBlbGVtZW50IENyb3BwZXIgcmVuZGVycyB0aGUgbGl2ZSBwcmV2aWV3IGludG8uIEFsd2F5cyBjbGlwcy5cbiAgICAucWRuYXByby1pYy1wcmV2aWV3LXRhcmdldCB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWljLXB1cnBsZS1zb2Z0KTtcbiAgICB9XG5cbiAgICAvLyAtLS0gU3VyZmFjZXMgKGF2YXRhciAvIHVuaXQgLyBsb2dvKTogcmVhbCByZW5kZXIgc2l6ZXMgLS0tXG4gICAgLnFkbmFwcm8taWMtc3VyZmFjZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogdmFyKC0tcy0zLCAxMnB4KTtcbiAgICB9XG4gICAgLnFkbmFwcm8taWMtc3VyZmFjZS10YXJnZXQge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWljLWJvcmRlcik7XG4gICAgfVxuICAgIC5xZG5hcHJvLWljLXN1cmZhY2UtbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pYy1tdXRlZCk7XG4gICAgfVxuXG4gICAgLy8gLS0tIERldmljZSBmcmFtZXMgKHByb2plY3QgLyBmbG93KSAtLS1cbiAgICAucWRuYXByby1pYy1kZXZpY2Uge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLXMtMiwgOHB4KTtcbiAgICB9XG4gICAgLnFkbmFwcm8taWMtZGV2aWNlLWxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBjb2xvcjogdmFyKC0taWMtbXV0ZWQpO1xuICAgIH1cbiAgICAucWRuYXByby1pYy1kZXZpY2UtZnJhbWUge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvcmRlci10cmVlKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC4wNik7XG4gICAgfVxuICAgIC5xZG5hcHJvLWljLWRldmljZS10YXJnZXQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiAxNiAvIDk7ICAgICAgIC8vIG92ZXJ3cml0dGVuIGxpdmUgdG8gdGhlIGNyb3AgcmF0aW9cbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIH1cblxuICAgIC8vIFBob25lOiBuYXJyb3dlciwgdGFsbCByb3VuZGVkIGJvZHkgd2l0aCBhIG5vdGNoLlxuICAgIC5xZG5hcHJvLWljLWRldmljZS1waG9uZSAucWRuYXByby1pYy1kZXZpY2UtZnJhbWUge1xuICAgICAgICB3aWR0aDogOTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICAgICAgcGFkZGluZzogMTBweCA2cHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gICAgLnFkbmFwcm8taWMtZGV2aWNlLXBob25lIC5xZG5hcHJvLWljLWRldmljZS1mcmFtZTo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDVweDsgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyNnB4OyBoZWlnaHQ6IDNweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTgpO1xuICAgIH1cbiAgICAucWRuYXByby1pYy1kZXZpY2UtcGhvbmUgLnFkbmFwcm8taWMtZGV2aWNlLXRhcmdldCB7IGJvcmRlci1yYWRpdXM6IDZweDsgfVxuXG4gICAgLy8gVGFibGV0OiBtZWRpdW0uXG4gICAgLnFkbmFwcm8taWMtZGV2aWNlLXRhYmxldCAucWRuYXByby1pYy1kZXZpY2UtZnJhbWUgeyB3aWR0aDogMTUwcHg7IGJvcmRlci1yYWRpdXM6IDEycHg7IH1cblxuICAgIC8vIERlc2t0b3A6IGJyb3dzZXIgY2hyb21lIHdpdGggdGhyZWUgZG90cy5cbiAgICAucWRuYXByby1pYy1kZXZpY2UtZGVza3RvcCAucWRuYXByby1pYy1kZXZpY2UtZnJhbWUge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gICAgLnFkbmFwcm8taWMtZGV2aWNlLWRlc2t0b3AgLnFkbmFwcm8taWMtZGV2aWNlLWZyYW1lOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSAycHggYXQgOXB4IDhweCwgdmFyKC0tYy1ncmV5LTMwMCkgNTAlLCB0cmFuc3BhcmVudCA1MSUpLFxuICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSAycHggYXQgMThweCA4cHgsIHZhcigtLWMtZ3JleS0zMDApIDUwJSwgdHJhbnNwYXJlbnQgNTElKSxcbiAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgMnB4IGF0IDI3cHggOHB4LCB2YXIoLS1jLWdyZXktMzAwKSA1MCUsIHRyYW5zcGFyZW50IDUxJSksXG4gICAgICAgICAgICB2YXIoLS1jLWJvcmRlci1zb2Z0LTIpO1xuICAgIH1cbiAgICAucWRuYXByby1pYy1kZXZpY2UtZGVza3RvcCAucWRuYXByby1pYy1kZXZpY2UtdGFyZ2V0IHsgYm9yZGVyLXJhZGl1czogMDsgfVxuXG4gICAgLy8gLS0tIEZvb3Rlcjogd2FybmluZyArIGFjdGlvbnMgLS0tXG4gICAgLnFkbmFwcm8taWMtZm9vdGVyIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogdmFyKC0tcy00LCAxNnB4KTtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tcy00LCAxNnB4KTtcbiAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLXMtNCwgMTZweCk7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1pYy1ib3JkZXIpO1xuICAgIH1cbiAgICAucWRuYXByby1pYy13YXJuaW5nIHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zNTtcbiAgICAgICAgY29sb3I6IHZhcigtLWljLXdhcm4tdGV4dCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWljLXdhcm4tYmcpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1pYy1yYWRpdXMtc20pO1xuICAgICAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICB9XG4gICAgLnFkbmFwcm8taWMtd2FybmluZ1toaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuICAgIC5xZG5hcHJvLWljLWFjdGlvbnMge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogdmFyKC0tcy0yLCA4cHgpO1xuICAgIH1cblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gIFNoYXBlIG1hc2tzIC0gYXBwbGllZCBsaXZlIHRvIENyb3BwZXIgY2hyb21lICsgcHJldmlld3NcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgICYuaXMtc2hhcGUtY2lyY2xlIHtcbiAgICAgICAgLmNyb3BwZXItdmlldy1ib3gsXG4gICAgICAgIC5jcm9wcGVyLWZhY2UgeyBib3JkZXItcmFkaXVzOiA1MCU7IH1cbiAgICAgICAgLnFkbmFwcm8taWMtcHJldmlldy10YXJnZXQgeyBib3JkZXItcmFkaXVzOiA1MCU7IH1cbiAgICB9XG4gICAgJi5pcy1zaGFwZS1yb3VuZGVkIHtcbiAgICAgICAgLmNyb3BwZXItdmlldy1ib3gsXG4gICAgICAgIC5jcm9wcGVyLWZhY2UgeyBib3JkZXItcmFkaXVzOiAxMnB4OyB9XG4gICAgICAgIC5xZG5hcHJvLWljLXN1cmZhY2UtdGFyZ2V0IHsgYm9yZGVyLXJhZGl1czogOHB4OyB9XG4gICAgfVxuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAvLyAgUmVicmFuZCBDcm9wcGVyLmpzIGNocm9tZSBmcm9tIGl0cyBkZWZhdWx0IGJsdWUgKCMzOWYpXG4gICAgLy8gIHRvIFFETkEgcHVycGxlLCBhbmQgdGhlIGRpbSB0byBicmFuZCBuYXZ5LlxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLmNyb3BwZXItdmlldy1ib3ggeyBvdXRsaW5lOiAxcHggc29saWQgdmFyKC0taWMtcHVycGxlKTsgfVxuICAgIC5jcm9wcGVyLWxpbmUsXG4gICAgLmNyb3BwZXItcG9pbnQgeyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pYy1wdXJwbGUpOyB9XG4gICAgLmNyb3BwZXItcG9pbnQucG9pbnQtc2U6OmJlZm9yZSB7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWljLXB1cnBsZSk7IH1cbiAgICAuY3JvcHBlci1tb2RhbCB7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWljLWRpbSk7IG9wYWNpdHk6IDE7IH1cbiAgICAuY3JvcHBlci1iZyB7IGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgUmVzcG9uc2l2ZTogc3RhY2sgc3RhZ2UgYWJvdmUgcHJldmlldyBwYW5lbCBvbiBuYXJyb3cgbW9kYWxzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAgIC5xZG5hcHJvLWljIC5xZG5hcHJvLWljLW1haW4geyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgLnFkbmFwcm8taWMgLnFkbmFwcm8taWMtc2lkZSB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1pYy1ib3JkZXIpO1xuICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tcy00LCAxNnB4KTtcbiAgICB9XG4gICAgLnFkbmFwcm8taWMgLnFkbmFwcm8taWMtcHJldmlld3Mge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgVGhlIGRlY2xhcmF0aXZlIHRyaWdnZXIgZWxlbWVudCAodGh1bWJuYWlsICsgbGFiZWwpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi5xZG5hcHJvLWltYWdlLWNyb3AtdHJpZ2dlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXMtMiwgOHB4KTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZmLCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xuICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSk7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1tZWRpdW0sIDUwMCk7XG5cbiAgICAucWRuYXByby1pbWFnZS1jcm9wLXRodW1iIHtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXNlY29uZGFyeS1wdXJwbGUsICNlNmU5ZmYpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1jLWJvcmRlci1jYXJkLCAjZTFlM2U2KTtcbiAgICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIERhcmsgbW9kZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5bZGF0YS10aGVtZS1kYXJrXSxcbltkYXRhLXRoZW1lPVwiZGFya1wiXSxcbmJvZHlbZGF0YS10aGVtZT1cImRhcmtcIl0ge1xuICAgIC5xZG5hcHJvLWljIHtcbiAgICAgICAgLS1pYy1jYXJkOiAgICAgIHZhcigtLWMtZ3JleS04MDAsICMyZTMwMzYpO1xuICAgICAgICAtLWljLWJvcmRlcjogICAgdmFyKC0tYy13aGl0ZS0xMCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEwKSk7XG4gICAgICAgIC0taWMtc3RhZ2UtYmc6ICAjMGMwZTE2O1xuICAgICAgICAtLWljLXB1cnBsZS1zb2Z0OiB2YXIoLS1jLWdyZXktNzAwLCAjNDA0NDRkKTtcbiAgICB9XG4gICAgLnFkbmFwcm8taWMgLnFkbmFwcm8taWMtZGV2aWNlLWZyYW1lIHsgYmFja2dyb3VuZDogIzNhM2Y0ZDsgfVxuICAgIC5xZG5hcHJvLWljIC5xZG5hcHJvLWljLWRldmljZS1kZXNrdG9wIC5xZG5hcHJvLWljLWRldmljZS1mcmFtZTo6YmVmb3JlIHsgYmFja2dyb3VuZDogIzJiMmYzYTsgfVxufVxuIiwiLy8gX3R5cG9ncmFwaHkuc2Nzc1xuLy9cbi8vIERlc2lnbiBzb3VyY2UgOiBGaWdtYSBRRE5BLVBSTyAoZmlsZUtleSBNRTFKTXkyTDcyUGxGcjFsZW1nb0paKVxuLy8gQ29sbGVjdGlvbnMgICA6IFByaW1pdGl2ZXMgKGZvbnQgd2VpZ2h0cyAvIGZhbWlseSkgKyBUeXBvZ3JhcGh5IChzaXplcyAvIGxpbmUtaGVpZ2h0cylcbi8vXG4vLyBUYXJnZXQgICAgICAgIDogYmFja29mZmljZTIvc2Nzcy92MS9tb2R1bGVzL190eXBvZ3JhcGh5LnNjc3Ncbi8vICAgICAgICAgICAgICAgICAoaWYgZWVuIHR5cG9ncmFwaHkgbW9kdWxlIGFsIGJlc3RhYXQ6IG1lcmdlIG1ldCBkZXplIHdhYXJkZXMg4oCUXG4vLyAgICAgICAgICAgICAgICAgIGRpdCBpcyBoZXQgdm9sbGVkaWdlIHRva2VuLW92ZXJ6aWNodCB6b2FscyBpbiBGaWdtYS4pXG4vL1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTEVHRU5EXG4vLyAgIFtGSUdNQSB2ZXJpZmllZF0g4oCUIHdhYXJkZSBkaXJlY3QgdWl0IGVlbiBGaWdtYSBpbnN0YW5jZSBvcGdlaGFhbGQuXG4vLyAgIEFsbGUgd2FhcmRlcyBpbiBkaXQgYmVzdGFuZCB6aWpuIHZlcmlmaWVkIChIMS1INiB2aWEgbm9kZSAxMDI3OjEzNDQ3KS5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRk9OVCBGQU1JTFlcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJGZvbnQtZmFtaWx5LXByaW1hcnkgOiBcIkludGVyXCIsIHNhbnMtc2VyaWY7ICAgICAgICAvLyBUeXBlL0ZvbnQgRmFtaWx5L3ByaW1hcnkgW0ZJR01BIHZlcmlmaWVkXVxuXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEZPTlQgV0VJR0hUUyAoZnJvbSBQcmltaXRpdmVzIGNvbGxlY3Rpb24pXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRmb250LXdlaWdodC1yZWd1bGFyICAgOiA0MDA7ICAgICAgICAgICAgICAgICAgICAgIC8vIFR5cGUvRm9udCB3ZWlnaHQvUmVndWxhciAgICBbRklHTUEgdmVyaWZpZWRdXG4kZm9udC13ZWlnaHQtbWVkaXVtICAgIDogNTAwOyAgICAgICAgICAgICAgICAgICAgICAvLyBUeXBlL0ZvbnQgd2VpZ2h0L01lZGl1bSAgICAgW0ZJR01BIHZlcmlmaWVkXVxuJGZvbnQtd2VpZ2h0LXNlbWktYm9sZCA6IDYwMDsgICAgICAgICAgICAgICAgICAgICAgLy8gVHlwZS9Gb250IHdlaWdodC9TZW1pIGJvbGQgIFtGSUdNQSB2ZXJpZmllZF1cbiRmb250LXdlaWdodC1ib2xkICAgICAgOiA3MDA7ICAgICAgICAgICAgICAgICAgICAgIC8vIFR5cGUvRm9udCB3ZWlnaHQvQm9sZCAgICAgICBbRklHTUEgdmVyaWZpZWRdXG5cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQk9EWSBGT05UIFNJWkVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRmb250LXNpemUtYm9keS14cyAgOiAxMHB4OyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvbnQgc2l6ZS9Cb2R5L2V4dHJhLXNtYWxsLTEwICAgW0ZJR01BIHZlcmlmaWVkXVxuJGZvbnQtc2l6ZS1ib2R5LXNtICA6IDEycHg7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9udCBzaXplL0JvZHkvc21hbGwtMTIgICAgICAgICBbRklHTUEgdmVyaWZpZWRdXG4kZm9udC1zaXplLWJvZHktbWQgIDogMTRweDsgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb250IHNpemUvQm9keS9JbnRlci1tZWRpdW0tMTQgIFtGSUdNQSB2ZXJpZmllZF1cbiRmb250LXNpemUtYm9keS1sZyAgOiAxNnB4OyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvbnQgc2l6ZS9Cb2R5L21lZGl1bS0xNiAgICAgICAgW0ZJR01BIHZlcmlmaWVkXVxuJGZvbnQtc2l6ZS1ib2R5LXhsICA6IDIwcHg7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9udCBzaXplL0JvZHkvbGFyZ2UtMjAgICAgICAgICBbRklHTUEgdmVyaWZpZWRdXG5cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gSEVBRElORyBGT05UIFNJWkVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRmb250LXNpemUtaGVhZGluZy02IDogMjBweDsgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvbnQgc2l6ZS9IZWFkaW5nL0g2ICBbRklHTUEgdmVyaWZpZWRdXG4kZm9udC1zaXplLWhlYWRpbmctNSA6IDI0cHg7ICAgICAgICAgICAgICAgICAgICAgICAvLyBGb250IHNpemUvSGVhZGluZy9INSAgW0ZJR01BIHZlcmlmaWVkXVxuJGZvbnQtc2l6ZS1oZWFkaW5nLTQgOiAyOHB4OyAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9udCBzaXplL0hlYWRpbmcvSDQgIFtGSUdNQSB2ZXJpZmllZF1cbiRmb250LXNpemUtaGVhZGluZy0zIDogMzJweDsgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvbnQgc2l6ZS9IZWFkaW5nL0gzICBbRklHTUEgdmVyaWZpZWRdXG4kZm9udC1zaXplLWhlYWRpbmctMiA6IDQwcHg7ICAgICAgICAgICAgICAgICAgICAgICAvLyBGb250IHNpemUvSGVhZGluZy9IMiAgW0ZJR01BIHZlcmlmaWVkXVxuJGZvbnQtc2l6ZS1oZWFkaW5nLTEgOiA2MHB4OyAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9udCBzaXplL0hlYWRpbmcvSDEgIFtGSUdNQSB2ZXJpZmllZF1cblxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMSU5FIEhFSUdIVFMg4oCUIEJPRFlcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJGxpbmUtaGVpZ2h0LWJvZHktc21hbGwgICAgICAgICAgOiAyMHB4OyAgICAgICAgICAgLy8gTGluZSBIZWlnaHQvQm9keS9Cb2R5IFNtYWxsICAgICAgICAgICAgW0ZJR01BIHZlcmlmaWVkXVxuJGxpbmUtaGVpZ2h0LWJvZHktbWVkaXVtICAgICAgICAgOiAyNHB4OyAgICAgICAgICAgLy8gTGluZSBIZWlnaHQvQm9keS9Cb2R5IE1lZGl1bSAgICAgICAgICAgW0ZJR01BIHZlcmlmaWVkXVxuJGxpbmUtaGVpZ2h0LWJvZHktbWVkaXVtLWNhcHRpb24gOiAyNHB4OyAgICAgICAgICAgLy8gTGluZSBIZWlnaHQvQm9keS9Cb2R5IE1lZGl1bS1DYXB0aW9uICAgW0ZJR01BIHZlcmlmaWVkXVxuJGxpbmUtaGVpZ2h0LWJvZHktbGFyZ2UgICAgICAgICAgOiAzMnB4OyAgICAgICAgICAgLy8gTGluZSBIZWlnaHQvQm9keS9Cb2R5IExhcmdlICAgICAgICAgICAgW0ZJR01BIHZlcmlmaWVkXVxuXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIExJTkUgSEVJR0hUUyDigJQgSEVBRElOR1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kbGluZS1oZWlnaHQtaGVhZGluZy02IDogMjRweDsgICAgICAgICAgICAgICAgICAgICAvLyBMaW5lIEhlaWdodC9IZWFkaW5nL2hlYWRpbmctNiAgW0ZJR01BIHZlcmlmaWVkXVxuJGxpbmUtaGVpZ2h0LWhlYWRpbmctNSA6IDM2cHg7ICAgICAgICAgICAgICAgICAgICAgLy8gTGluZSBIZWlnaHQvSGVhZGluZy9oZWFkaW5nLTUgIFtGSUdNQSB2ZXJpZmllZF1cbiRsaW5lLWhlaWdodC1oZWFkaW5nLTQgOiA0NHB4OyAgICAgICAgICAgICAgICAgICAgIC8vIExpbmUgSGVpZ2h0L0hlYWRpbmcvaGVhZGluZy00ICBbRklHTUEgdmVyaWZpZWRdXG4kbGluZS1oZWlnaHQtaGVhZGluZy0zIDogNDhweDsgICAgICAgICAgICAgICAgICAgICAvLyBMaW5lIEhlaWdodC9IZWFkaW5nL2hlYWRpbmctMyAgW0ZJR01BIHZlcmlmaWVkXVxuJGxpbmUtaGVpZ2h0LWhlYWRpbmctMiA6IDU2cHg7ICAgICAgICAgICAgICAgICAgICAgLy8gTGluZSBIZWlnaHQvSGVhZGluZy9oZWFkaW5nLTIgIFtGSUdNQSB2ZXJpZmllZF1cbiRsaW5lLWhlaWdodC1oZWFkaW5nLTEgOiA3MnB4OyAgICAgICAgICAgICAgICAgICAgIC8vIExpbmUgSGVpZ2h0L0hlYWRpbmcvaGVhZGluZy0xICBbRklHTUEgdmVyaWZpZWRdXG5cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUEFSQUdSQVBIIFNQQUNJTkdcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJHBhcmFncmFwaC1zcGFjaW5nLWJvZHktbWVkaXVtIDogMTZweDsgICAgICAgICAgICAgLy8gUGFyYWdyYXBoIFNwYWNpbmcvQm9keS9NZWRpdW0gICBbRklHTUEgdmVyaWZpZWRdXG4kcGFyYWdyYXBoLXNwYWNpbmctYm9keS1sYXJnZSAgOiAyMHB4OyAgICAgICAgICAgICAvLyBQYXJhZ3JhcGggU3BhY2luZy9Cb2R5L0xhcmdlICAgIFtGSUdNQSB2ZXJpZmllZF1cbiRwYXJhZ3JhcGgtc3BhY2luZy1oZWFkaW5nLTEgICA6IDQ4cHg7ICAgICAgICAgICAgIC8vIFBhcmFncmFwaCBTcGFjaW5nL0hlYWRpbmcvSDEgICAgW0ZJR01BIHZlcmlmaWVkXVxuJHBhcmFncmFwaC1zcGFjaW5nLWhlYWRpbmctMiAgIDogNDBweDsgICAgICAgICAgICAgLy8gUGFyYWdyYXBoIFNwYWNpbmcvSGVhZGluZy9IMiAgICBbRklHTUEgdmVyaWZpZWRdXG4kcGFyYWdyYXBoLXNwYWNpbmctaGVhZGluZy0zICAgOiAzNnB4OyAgICAgICAgICAgICAvLyBQYXJhZ3JhcGggU3BhY2luZy9IZWFkaW5nL0gzICAgIFtGSUdNQSB2ZXJpZmllZF1cbiRwYXJhZ3JhcGgtc3BhY2luZy1oZWFkaW5nLTQgICA6IDMycHg7ICAgICAgICAgICAgIC8vIFBhcmFncmFwaCBTcGFjaW5nL0hlYWRpbmcvSDQgICAgW0ZJR01BIHZlcmlmaWVkXVxuJHBhcmFncmFwaC1zcGFjaW5nLWhlYWRpbmctNSAgIDogMjhweDsgICAgICAgICAgICAgLy8gUGFyYWdyYXBoIFNwYWNpbmcvSGVhZGluZy9INSAgICBbRklHTUEgdmVyaWZpZWRdXG4kcGFyYWdyYXBoLXNwYWNpbmctaGVhZGluZy02ICAgOiAyNHB4OyAgICAgICAgICAgICAvLyBQYXJhZ3JhcGggU3BhY2luZy9IZWFkaW5nL0g2ICAgIFtGSUdNQSB2ZXJpZmllZF1cblxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBURVhUIFNUWUxFIE1JWElOU1xuLy9cbi8vIERlemUgbWl4aW5zIHJlZmxlY3RlcmVuIDEtb3AtMSBkZSBGaWdtYSB0ZXh0IHN0eWxlcy4gR2VicnVpayB6ZSBpLnAudi5cbi8vIGxvc3NlIGZvbnQtc2l6ZSAvIGxpbmUtaGVpZ2h0IGNhbGxzOlxuLy9cbi8vICAgLm15LWhlYWRpbmcgeyBAaW5jbHVkZSB0ZXh0LXN0eWxlLWhlYWRlci1oMzsgfVxuLy9cbi8vIERlIG5hbWVuIHZvbGdlbiBGaWdtYTogSGVhZGVyL0gxLi5INiBlbiBCb2R5Lzx3ZWlnaHQ+LzxzaXplPi5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gLS0tLSBCYXNlIGJvZHkgbWl4aW4gKHNoYXJlZCkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBfYm9keS1iYXNlIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXByaW1hcnk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG59XG5cbi8vIC0tLS0gSGVhZGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gdGV4dC1zdHlsZS1oZWFkZXItaDEge1xuICAgIEBpbmNsdWRlIF9ib2R5LWJhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1zZW1pLWJvbGQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWhlYWRpbmctMTtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWhlYWRpbmctMTtcbn1cblxuQG1peGluIHRleHQtc3R5bGUtaGVhZGVyLWgyIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtc2VtaS1ib2xkO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1oZWFkaW5nLTI7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1oZWFkaW5nLTI7XG59XG5cbkBtaXhpbiB0ZXh0LXN0eWxlLWhlYWRlci1oMyB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWktYm9sZDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtaGVhZGluZy0zO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtaGVhZGluZy0zO1xufVxuXG5AbWl4aW4gdGV4dC1zdHlsZS1oZWFkZXItaDQge1xuICAgIEBpbmNsdWRlIF9ib2R5LWJhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1zZW1pLWJvbGQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWhlYWRpbmctNDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWhlYWRpbmctNDtcbn1cblxuQG1peGluIHRleHQtc3R5bGUtaGVhZGVyLWg1IHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtc2VtaS1ib2xkO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1oZWFkaW5nLTU7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1oZWFkaW5nLTU7XG59XG5cbkBtaXhpbiB0ZXh0LXN0eWxlLWhlYWRlci1oNiB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWktYm9sZDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtaGVhZGluZy02O1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtaGVhZGluZy02O1xufVxuXG4vLyAtLS0tIEJvZHkgLyBSZWd1bGFyICh3ZWlnaHQgNDAwKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIHRleHQtc3R5bGUtYm9keS1yZWd1bGFyLXhzIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtcmVndWxhcjtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS14cztcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktc21hbGw7XG59XG5cbkBtaXhpbiB0ZXh0LXN0eWxlLWJvZHktcmVndWxhci1zbSB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXJlZ3VsYXI7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJvZHktc207XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1ib2R5LXNtYWxsO1xufVxuXG5AbWl4aW4gdGV4dC1zdHlsZS1ib2R5LXJlZ3VsYXItbWQge1xuICAgIEBpbmNsdWRlIF9ib2R5LWJhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1yZWd1bGFyO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1ib2R5LW1kO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYm9keS1tZWRpdW0tY2FwdGlvbjtcbn1cblxuQG1peGluIHRleHQtc3R5bGUtYm9keS1yZWd1bGFyLWxnIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtcmVndWxhcjtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS1sZztcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktbWVkaXVtO1xufVxuXG5AbWl4aW4gdGV4dC1zdHlsZS1ib2R5LXJlZ3VsYXIteGwge1xuICAgIEBpbmNsdWRlIF9ib2R5LWJhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1yZWd1bGFyO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1ib2R5LXhsO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYm9keS1sYXJnZTtcbn1cblxuLy8gLS0tLSBCb2R5IC8gTWVkaXVtICh3ZWlnaHQgNTAwKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiB0ZXh0LXN0eWxlLWJvZHktbWVkaXVtLXhzIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbWVkaXVtO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1ib2R5LXhzO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYm9keS1zbWFsbDtcbn1cblxuQG1peGluIHRleHQtc3R5bGUtYm9keS1tZWRpdW0tc20ge1xuICAgIEBpbmNsdWRlIF9ib2R5LWJhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1tZWRpdW07XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJvZHktc207XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1ib2R5LXNtYWxsO1xufVxuXG5AbWl4aW4gdGV4dC1zdHlsZS1ib2R5LW1lZGl1bS1tZCB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW1lZGl1bTtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS1tZDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktbWVkaXVtLWNhcHRpb247XG59XG5cbkBtaXhpbiB0ZXh0LXN0eWxlLWJvZHktbWVkaXVtLWxnIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbWVkaXVtO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1ib2R5LWxnO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYm9keS1tZWRpdW07XG59XG5cbkBtaXhpbiB0ZXh0LXN0eWxlLWJvZHktbWVkaXVtLXhsIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbWVkaXVtO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1ib2R5LXhsO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYm9keS1sYXJnZTtcbn1cblxuLy8gLS0tLSBCb2R5IC8gU2VtaS1ib2xkICh3ZWlnaHQgNjAwKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiB0ZXh0LXN0eWxlLWJvZHktc2VtaWJvbGQteHMge1xuICAgIEBpbmNsdWRlIF9ib2R5LWJhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1zZW1pLWJvbGQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJvZHkteHM7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1ib2R5LXNtYWxsO1xufVxuXG5AbWl4aW4gdGV4dC1zdHlsZS1ib2R5LXNlbWlib2xkLXNtIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtc2VtaS1ib2xkO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1ib2R5LXNtO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYm9keS1zbWFsbDtcbn1cblxuQG1peGluIHRleHQtc3R5bGUtYm9keS1zZW1pYm9sZC1tZCB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWktYm9sZDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS1tZDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktbWVkaXVtLWNhcHRpb247XG59XG5cbkBtaXhpbiB0ZXh0LXN0eWxlLWJvZHktc2VtaWJvbGQtbGcge1xuICAgIEBpbmNsdWRlIF9ib2R5LWJhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1zZW1pLWJvbGQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJvZHktbGc7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1ib2R5LW1lZGl1bTtcbn1cblxuQG1peGluIHRleHQtc3R5bGUtYm9keS1zZW1pYm9sZC14bCB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWktYm9sZDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS14bDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktbGFyZ2U7XG59XG5cbi8vIC0tLS0gQm9keSAvIEJvbGQgKHdlaWdodCA3MDApIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gdGV4dC1zdHlsZS1ib2R5LWJvbGQteHMge1xuICAgIEBpbmNsdWRlIF9ib2R5LWJhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1ib2R5LXhzO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYm9keS1zbWFsbDtcbn1cblxuQG1peGluIHRleHQtc3R5bGUtYm9keS1ib2xkLXNtIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS1zbTtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktc21hbGw7XG59XG5cbkBtaXhpbiB0ZXh0LXN0eWxlLWJvZHktYm9sZC1tZCB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJvZHktbWQ7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1ib2R5LW1lZGl1bS1jYXB0aW9uO1xufVxuXG5AbWl4aW4gdGV4dC1zdHlsZS1ib2R5LWJvbGQtbGcge1xuICAgIEBpbmNsdWRlIF9ib2R5LWJhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1ib2R5LWxnO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYm9keS1tZWRpdW07XG59XG5cbkBtaXhpbiB0ZXh0LXN0eWxlLWJvZHktYm9sZC14bCB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJvZHkteGw7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1ib2R5LWxhcmdlO1xufVxuXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIExJTksgVEVYVC1TVFlMRVNcbi8vXG4vLyBCZWRvZWxkIHZvb3IgaW5saW5lIGxpbmtzIGRpZSBpbiBlZW4gYm9keS1wYXJhZ3JhYWYgdmFsbGVuLiBMaW5rLWNvbXBvbmVudGVuXG4vLyBoZWJiZW4gcGFkZGluZzsgb20gdGUgdm9vcmtvbWVuIGRhdCB6byduIGNvbXBvbmVudCBkZSBvbXJpbmdlbmRlIGJvZHktcmVnZWxcbi8vIFwib3AgeiduIGdhdCB6ZXRcIiBrcmlqZ2VuIExpbmstc3R5bGVzIGh1biBlaWdlbiBjYXRlZ29yaWUuXG4vL1xuLy8gV2FhcmRlcyB6aWpuIGdlc3BpZWdlbGQgYWFuIGRlIGJvZHktc2NoYWFsIOKAlCBiZWjDoWx2ZSB0d2VlIHBsZWtrZW4gd2FhciBkZVxuLy8gRmlnbWEtdG9rZW4gZWVuIGFmd2lqa2VuZGUgbGluZS1oZWlnaHQgaGVlZnQuIERpZSB6aWpuIGhpZXIgMS1vcC0xIG92ZXJnZW5vbWVuXG4vLyBlbiBnZW1hcmtlZXJkLiBaaWUgaW5saW5lIG5vdGVzLlxuLy9cbi8vIE5hYW1zY2hlbWE6IHRleHQtc3R5bGUtbGluay08d2VpZ2h0Pi08c2l6ZT5cbi8vICAgd2VpZ2h0IDogcmVndWxhciAoNDAwKSAvIHNlbWlib2xkICg2MDApIC8gYm9sZCAoNzAwKVxuLy8gICBzaXplICAgOiB4cyAoMTApIC8gc20gKDEyKSAvIG1kICgxNCkgLyBsZyAoMTYpIC8geGwgKDIwKVxuLy9cbi8vIE5COiBGaWdtYSBoZWVmdCB2b29yIGRlemUgZ3JvZXAgcm9tbWVsaWdlIHdlcmtuYW1lbiAoby5hLiBcIkxpbmsgQm9sZCh0aGVcbi8vIHJlYWwgYm9sZClcIiBlbiBcIk1lZGl1bS1leHRyYSBzbWFsbC1saW5rXCIpIOKAlCBLaW0gcnVpbXQgZGllIGluIEZpZ21hIG5vZyBvcC5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gLS0tLSBMaW5rIC8gUmVndWxhciAod2VpZ2h0IDQwMCkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiB0ZXh0LXN0eWxlLWxpbmstcmVndWxhci14cyB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXJlZ3VsYXI7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJvZHkteHM7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1ib2R5LXNtYWxsOyAgICAgICAgICAgICAgLy8gRmlnbWE6IEJvZHkvTGluayByZWd1bGFyL0V4dHJhLXNtYWxsXG59XG5cbkBtaXhpbiB0ZXh0LXN0eWxlLWxpbmstcmVndWxhci1zbSB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXJlZ3VsYXI7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJvZHktc207XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1ib2R5LXNtYWxsOyAgICAgICAgICAgICAgLy8gRmlnbWE6IEJvZHkvTGluayByZWd1bGFyL1NtYWxsLWxpbmtcbn1cblxuQG1peGluIHRleHQtc3R5bGUtbGluay1yZWd1bGFyLW1kIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtcmVndWxhcjtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS1tZDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktbWVkaXVtLWNhcHRpb247ICAgICAvLyBGaWdtYTogQm9keS9MaW5rIHJlZ3VsYXIvTWVkaXVtLWNhcHRpb24tbGlua1xufVxuXG5AbWl4aW4gdGV4dC1zdHlsZS1saW5rLXJlZ3VsYXItbGcge1xuICAgIEBpbmNsdWRlIF9ib2R5LWJhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1yZWd1bGFyO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1ib2R5LWxnO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYm9keS1tZWRpdW07ICAgICAgICAgICAgIC8vIEZpZ21hOiBCb2R5L0xpbmsgcmVndWxhci9tZWRpdW0tbGlua1xufVxuXG5AbWl4aW4gdGV4dC1zdHlsZS1saW5rLXJlZ3VsYXIteGwge1xuICAgIEBpbmNsdWRlIF9ib2R5LWJhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1yZWd1bGFyO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1ib2R5LXhsO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYm9keS1sYXJnZTsgICAgICAgICAgICAgIC8vIEZpZ21hOiBCb2R5L0xpbmsgcmVndWxhci9sYXJnZS1saW5rXG59XG5cbi8vIC0tLS0gTGluayAvIFNlbWktYm9sZCAod2VpZ2h0IDYwMCkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gdGV4dC1zdHlsZS1saW5rLXNlbWlib2xkLXhzIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtc2VtaS1ib2xkO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1ib2R5LXhzO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYm9keS1zbWFsbDsgICAgICAgICAgICAgIC8vIEZpZ21hOiBCb2R5L0xpbmsgU2VtaS1ib2xkL0V4dHJhLXNtYWxsLWxpbmtcbn1cblxuQG1peGluIHRleHQtc3R5bGUtbGluay1zZW1pYm9sZC1zbSB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWktYm9sZDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS1zbTtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktc21hbGw7ICAgICAgICAgICAgICAvLyBGaWdtYTogQm9keS9MaW5rIFNlbWktYm9sZC9zbWFsbC1saW5rXG59XG5cbi8vIEZpZ21hIEFGV0lKS0lORzogdG9rZW4gYEJvZHkvTGluayBTZW1pLWJvbGQvSW50ZXItbWVkaXVtLWxpbmtgIGlzIDE0IC8gMzJcbi8vIChCb2R5IExhcmdlKSBpLnAudi4gMTQgLyAyNCAoQm9keSBNZWRpdW0tQ2FwdGlvbikuIEtpbTogbW9nZWxpamsgaW50ZW50aW9uZWVsXG4vLyBvbSBpbmxpbmUtbGluayB2ZWlsaWcgdGUgbGF0ZW4geml0dGVuIGluIGJvZHksIG1vZ2VsaWprIHJlc3RqZS4gSGllciAxLW9wLTFcbi8vIG92ZXJnZW5vbWVuOyBwYXMgYWFuIGFscyBLaW0vU2FuZGVyIGFuZGVycyBiZXNsdWl0ZW4uXG5AbWl4aW4gdGV4dC1zdHlsZS1saW5rLXNlbWlib2xkLW1kIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtc2VtaS1ib2xkO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1ib2R5LW1kO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYm9keS1sYXJnZTsgICAgICAgICAgICAgIC8vIFtGSUdNQSB2ZXJpZmllZCDigJQgYWZ3aWprZW5kXVxufVxuXG5AbWl4aW4gdGV4dC1zdHlsZS1saW5rLXNlbWlib2xkLWxnIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtc2VtaS1ib2xkO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1ib2R5LWxnO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYm9keS1tZWRpdW07ICAgICAgICAgICAgIC8vIEZpZ21hOiBCb2R5L0xpbmsgU2VtaS1ib2xkL21lZGl1bS1saW5rXG59XG5cbkBtaXhpbiB0ZXh0LXN0eWxlLWxpbmstc2VtaWJvbGQteGwge1xuICAgIEBpbmNsdWRlIF9ib2R5LWJhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1zZW1pLWJvbGQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJvZHkteGw7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1ib2R5LWxhcmdlOyAgICAgICAgICAgICAgLy8gRmlnbWE6IEJvZHkvTGluayBTZW1pLWJvbGQvbGFyZ2UtbGlua1xufVxuXG4vLyAtLS0tIExpbmsgLyBCb2xkICh3ZWlnaHQgNzAwKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRmlnbWEgQUZXSUpLSU5HOiBgQm9keS9MaW5rIEJvbGQvZXh0cmEtc21hbGxgIGdlYnJ1aWt0IGxpbmUtaGVpZ2h0IDI0XG4vLyAoQm9keSBNZWRpdW0tQ2FwdGlvbikgaS5wLnYuIDIwIChCb2R5IFNtYWxsKS4gWmVsZmRlIGNhdmVhdCBhbHMgaGllcmJvdmVuLlxuQG1peGluIHRleHQtc3R5bGUtbGluay1ib2xkLXhzIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS14cztcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktbWVkaXVtLWNhcHRpb247ICAgICAvLyBbRklHTUEgdmVyaWZpZWQg4oCUIGFmd2lqa2VuZF1cbn1cblxuQG1peGluIHRleHQtc3R5bGUtbGluay1ib2xkLXNtIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS1zbTtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktc21hbGw7ICAgICAgICAgICAgICAvLyBGaWdtYTogQm9keS9MaW5rIEJvbGQvU21hbGwtbGlua1xufVxuXG5AbWl4aW4gdGV4dC1zdHlsZS1saW5rLWJvbGQtbWQge1xuICAgIEBpbmNsdWRlIF9ib2R5LWJhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1ib2R5LW1kO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYm9keS1tZWRpdW0tY2FwdGlvbjsgICAgIC8vIEZpZ21hOiBCb2R5L0xpbmsgQm9sZC9JbnRlci0gTWVkaXVtLWxpbmtcbn1cblxuQG1peGluIHRleHQtc3R5bGUtbGluay1ib2xkLWxnIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS1sZztcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktbWVkaXVtOyAgICAgICAgICAgICAvLyBGaWdtYTogQm9keS9MaW5rIEJvbGQvbWVkaXVtLWxpbmtcbn1cblxuQG1peGluIHRleHQtc3R5bGUtbGluay1ib2xkLXhsIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS14bDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktbGFyZ2U7ICAgICAgICAgICAgICAvLyBGaWdtYTogQm9keS9MaW5rIEJvbGQvTGFyZ2UtbGlua1xufVxuXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFVUSUxJVFkgQ0xBU1NFU1xuLy8gT3B0aW9uYWwg4oCUIG9ubHkgZW1pdCBpZiBqdWxsaWUgZGl0IHBhdHJvb24gZ2VicnVpa2VuLiBBbmRlcnM6IGxhYXQgd2VnIGVuXG4vLyBnZWJydWlrIGFsbGVlbiBkZSBtaXhpbnMgaGllcmJvdmVuIGluIGNvbXBvbmVudCBTQ1NTLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4udGV4dC1oMSB7IEBpbmNsdWRlIHRleHQtc3R5bGUtaGVhZGVyLWgxOyB9XG4udGV4dC1oMiB7IEBpbmNsdWRlIHRleHQtc3R5bGUtaGVhZGVyLWgyOyB9XG4udGV4dC1oMyB7IEBpbmNsdWRlIHRleHQtc3R5bGUtaGVhZGVyLWgzOyB9XG4udGV4dC1oNCB7IEBpbmNsdWRlIHRleHQtc3R5bGUtaGVhZGVyLWg0OyB9XG4udGV4dC1oNSB7IEBpbmNsdWRlIHRleHQtc3R5bGUtaGVhZGVyLWg1OyB9XG4udGV4dC1oNiB7IEBpbmNsdWRlIHRleHQtc3R5bGUtaGVhZGVyLWg2OyB9XG5cbi50ZXh0LWJvZHkteHMgeyBAaW5jbHVkZSB0ZXh0LXN0eWxlLWJvZHktcmVndWxhci14czsgfVxuLnRleHQtYm9keS1zbSB7IEBpbmNsdWRlIHRleHQtc3R5bGUtYm9keS1yZWd1bGFyLXNtOyB9XG4udGV4dC1ib2R5LW1kIHsgQGluY2x1ZGUgdGV4dC1zdHlsZS1ib2R5LXJlZ3VsYXItbWQ7IH1cbi50ZXh0LWJvZHktbGcgeyBAaW5jbHVkZSB0ZXh0LXN0eWxlLWJvZHktcmVndWxhci1sZzsgfVxuLnRleHQtYm9keS14bCB7IEBpbmNsdWRlIHRleHQtc3R5bGUtYm9keS1yZWd1bGFyLXhsOyB9XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLWluYm94LW1lc3NhZ2Vcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIEluYm94IC8gbm90aWZpY2F0aW9uIGxpc3Qtcm93LiBDb21wb3NlcyBxZG5hcHJvLWF2YXRhciArIHFkbmFwcm8tdGFnXG4vLyAgKyBxZG5hcHJvLWljb24tYnRuICsgcWRuYXByby1pY29uIOKAlCBkb2VzIE5PVCBkdXBsaWNhdGUgdGhlaXIgc3R5bGluZy5cbi8vXG4vLyAgRmlnbWEgc291cmNlOiBRRE5BLVBSTyBub2RlIDk1Njk6MjQyMjY1IChcIkZyYW1lIDEyNVwiKS5cbi8vXG4vLyAgUUROQSB0b2tlbnMgdXNlZDpcbi8vICAgIFN1cmZhY2UvQnV0dG9ucy9TZWNvbmRhcnktd2hpdGUgICAgICAgICAgI2ZmZmZmZiAgIGRlZmF1bHQgYmdcbi8vICAgIFN1cmZhY2UvQnV0dG9ucy9TdWJ0bGUtSG92ZXIgICAgICAgICAgICAgI2YwZjFmMiAgIGhvdmVyIGJnIChub3Qgc2VsZWN0ZWQpXG4vLyAgICBTdXJmYWNlL0J1dHRvbnMvU2Vjb25kYXJ5LXB1cnBsZSAgICAgICAgICNlNmU5ZmYgICBzZWxlY3RlZCBiZ1xuLy8gICAgU3VyZmFjZS9CdXR0b25zL1NlY29uZGFyeS1wdXJwbGUtaG92ZXIgICAjZGFkZGYyICAgc2VsZWN0ZWQgKyBob3ZlclxuLy8gICAgUHVycGxlLUhpZ2hsaWdodCAgICAgICAgICAgICAgICAgICAgICAgICAjNDY1MmYzICAgdW5yZWFkIGRvdCwgdW5yZWFkIHN1YmplY3QsIHVucmVhZCB0aW1lc3RhbXBcbi8vICAgIEJvcmRlci9BY3Rpb24tUHVycGxlLU91dGxpbmVkICAgICAgICAgICAgIzQwNDk5YSAgIGZvY3VzIHJpbmcgKyBib29rbWFya2VkIGljb25cbi8vICAgIFB1cnBsZS1IaWdobGlnaHQgQCAyNSUgICAgICAgICAgICAgICAgICAgcmdiYSg3MCw4MiwyNDMsMC4yNSkgIGZvY3VzIGdsb3dcbi8vICAgIFRleHQvT24tQm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzBiMGIwZFxuLy8gICAgVGV4dC9Cb2R5LVNlY29uZGFyeSAgICAgICAgICAgICAgICAgICAgICAjNmI3MjgwICAgcHJldmlldywgZHVlLXRpbWUsIHBhcGVyY2xpcFxuLy8gICAgVGV4dC9Pbi1kaXNhYmxlZCAgICAgICAgICAgICAgICAgICAgICAgICAjODk4ZTk5XG4vLyAgICBTcGFjaW5nLVhYUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRweFxuLy8gICAgU3BhY2luZy1YUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4cHhcbi8vICAgIFJhZGl1cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOHB4XG4vL1xuLy8gIEhvdmVyLWFjdGlvbnMgdmlzaWJpbGl0eSByZWNpcGUgKG1hdGNoZXMgbm92YS1oaXN0b3J5LWl0ZW0pOlxuLy8gICAgLSBQYXBlcmNsaXAgaXMgYWx3YXlzIHZpc2libGUgT0ZGLWhvdmVyICh3aGVuIGhhcy1hdHRhY2htZW50ICsgIWJvb2ttYXJrZWQpXG4vLyAgICAtIEJvb2ttYXJrICsgZGVsZXRlIGJ1dHRvbnMgZmFkZS1pbiBvbiByb3cgOmhvdmVyIG9yIDpmb2N1cy13aXRoaW5cbi8vICAgIC0gV2hlbiAuaW5ib3gtbWVzc2FnZS1ib29rbWFya2VkIGlzIHNldCwgYm9va21hcmsgc3RheXMgdmlzaWJsZSBBTkRcbi8vICAgICAgcGFwZXJjbGlwIGlzIGhpZGRlbiAoaWNvbi1zbG90IGlzIFwiY2xhaW1lZFwiIGJ5IHRoZSBwZXJzaXN0ZW50IGJvb2ttYXJrKVxuLy9cbi8vICBMYXlvdXQ6XG4vLyAgICBUaGUgYWN0aW9ucyBhcmVhIGhhcyBhIGZpeGVkIDQ0cHggd2lkdGggc28gdGhlIHJvdyBuZXZlciByZWZsb3dzXG4vLyAgICB3aGVuIGljb25zIGNyb3NzLWZhZGUuIFBhcGVyY2xpcCArIGhvdmVyLWJ1dHRvbnMgYXJlIGFic29sdXRlbHlcbi8vICAgIHBvc2l0aW9uZWQgb24gdG9wIG9mIGVhY2ggb3RoZXIgaW5zaWRlIHRoYXQgNDRweCBzbG90LlxuLy9cbi8vICBVcmdlbmN5IG1hcmtlciAoZGVhZGxpbmUtc3RhdHVzKTpcbi8vICAgIFNhbWUgdHdvIGNvbG91cnMgdGhlIGJhY2tvZmZpY2UgaW5ib3ggUEFHRSBhbHJlYWR5IGFwcGxpZXMgdmlhIGl0c1xuLy8gICAgb3duIGBxZG5hcHJvLWluYm94LW1lc3NhZ2VbZGF0YS1kZWFkbGluZS1zdGF0dXM9XCIuLi5cIl1gIHJ1bGUgd2l0aFxuLy8gICAgIWltcG9ydGFudCAoYmFja29mZmljZTIvc2Nzcy9wYXJ0aWFscy9faW5ib3guc2NzcyB+bGluZSA0NDAtNDQ5KS5cbi8vICAgIFRoYXQgZHVwbGljYXRpb24gaXMgZGVsaWJlcmF0ZSBoZXJlIOKAlCBmbGFnZ2VkIHRvIHRoZSBtYWluIGVuZ2luZWVyXG4vLyAgICB0byBldmVudHVhbGx5IHJldGlyZSB0aGUgcGFnZSBydWxlIGluIGZhdm91ciBvZiB0aGlzIGNvbXBvbmVudFxuLy8gICAgdmFyaWFudCDigJQgYW5kIE5PVCByZW1vdmVkIGJ5IHRoaXMgZmlsZSAob3V0IG9mIHNjb3BlLCBwYWdlIHJ1bGUpLlxuLy9cbi8vICBTZWxlY3Rpb24gY2hlY2tib3ggKHNlbGVjdGFibGUgLyBzZWxlY3Rpb24tbW9kZSk6XG4vLyAgICBBdmF0YXIgKyA8cWRuYXByby1jaGVja2JveD4gYm90aCBsaXZlIGluc2lkZSBvbmUgZml4ZWQgMzR4MzQgc2xvdFxuLy8gICAgKC5pbmJveC1tZXNzYWdlLWF2YXRhci1zbG90KSwgYWJzb2x1dGVseSBwb3NpdGlvbmVkIG9uIHRvcCBvZiBlYWNoXG4vLyAgICBvdGhlci4gQ1NTIG9ubHkgZXZlciB0b2dnbGVzIG9wYWNpdHkgYmV0d2VlbiB0aGVtIOKAlCB0aGUgc2xvdCBib3hcbi8vICAgIGl0c2VsZiBuZXZlciBjaGFuZ2VzIHNpemUsIHNvIHN3YXBwaW5nIGNhbm5vdCBzaGlmdCB0aGUgcm93LlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkB1c2UgXCIuLi90eXBvZ3JhcGh5L3R5cG9ncmFwaHlcIiBhcyAqO1xuXG4vLyBVcmdlbmN5LW1hcmtlciBjb2xvdXJzIOKAlCBuYW1lZCB2YXJpYWJsZXMsIG5vdCBsb29zZSBoZXguIFNlZSBub3RlIGFib3ZlLlxuJG1zZy1kZWFkbGluZS1vdmVyZHVlOiAgI2Q5MzAyNTsgICAvLyByZWRcbiRtc2ctZGVhZGxpbmUtZHVlLXNvb246ICNlODgxMGE7ICAgLy8gYW1iZXJcblxuLnFkbmFwcm8taW5ib3gtbWVzc2FnZSB7XG4gICAgLS1tc2ctYmc6ICAgICAgICAgICNmZmZmZmY7XG4gICAgLS1tc2ctYmctaG92ZXI6ICAgIHZhcigtLWMtZ3JleS01MCk7XG4gICAgLS1tc2ctdGV4dDogICAgICAgIHZhcigtLWMtZ3JleS05NTApO1xuICAgIC0tbXNnLXRleHQtbXV0ZWQ6ICB2YXIoLS1jLWdyZXktNTAwKTtcbiAgICAtLW1zZy1hY2NlbnQ6ICAgICAgdmFyKC0tYy1hY3Rpb24tNTAwKTtcblxuICAgIC8vIExvY2sgdGhlIGJveCBtb2RlbCBvbiB0aGUgaG9zdCBBTkQgZXZlcnkgZGVzY2VuZGFudC4gV2l0aG91dCB0aGlzXG4gICAgLy8gdGhlIHdpZHRoLWNvbGxhcHNlIGFuaW1hdGlvbiBvbiB0aGUgYWN0aW9uIGJ1dHRvbnMgY2FuIGJyaWVmbHlcbiAgICAvLyBidW1wIHRoZSByb3cgaGVpZ2h0IGR1cmluZyBzdWItcGl4ZWwgbGF5b3V0IOKAlCBzYW1lIGNvbnRlbnQsXG4gICAgLy8gdmlzdWFsbHkgMS0ycHggdGFsbGVyIG9uIGhvdmVyLiBCb3JkZXItYm94IGtlZXBzIHBhZGRpbmcvYm9yZGVyXG4gICAgLy8gb3V0IG9mIHRoZSBoZWlnaHQgY2FsYyBzbyBkaW1lbnNpb25zIHN0YXkgc3RhYmxlLlxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgZ2FwOiA4cHg7XG4gICAgLy8gTGlua3MgNHB4IGluIHBsYWF0cyB2YW4gOHB4OiBlZXJzdGUgc2NoYWtlbCB2YW4gS2ltcyBrZXRlblxuICAgIC8vIFwiZnJhbWUtcmFuZCAtIDRweCAtIGJvbGxldGplIC0gNHB4IC0gYXZhdGFyXCIgKDI5LjA3LjIwMjYpLiBSZWNodHMgYmxpamZ0IDhweCxcbiAgICAvLyB3YW50IGRhYXIgeml0IGRlIHRpamQgZW4gZGllIG1vZXQgbmlldCB0ZWdlbiBkZSByYW5kIGtydWlwZW4uXG4gICAgcGFkZGluZzogNHB4IDhweCA0cHggNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tc2ctYmcpO1xuICAgIGNvbG9yOiB2YXIoLS1tc2ctdGV4dCk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2Utb3V0O1xuXG4gICAgLy8gOm5vdCguaW5ib3gtbWVzc2FnZS1zd2lwaW5nKSDigJQgdGhlIHN3aXBlIHdyYXBwZXIgZm9yY2VzIGl0cyBvd25cbiAgICAvLyBvcGFxdWUgYmFja2dyb3VuZCB3aGlsZSBkcmFnZ2luZyAoc2VlIHRoZSBzd2lwZS1zdGF0ZSBibG9jayBiZWxvdyk7XG4gICAgLy8gaG92ZXIgbXVzdCBub3QgZmlnaHQgaXQuXG4gICAgJjpob3Zlcjpub3QoLmluYm94LW1lc3NhZ2Utc3dpcGluZykge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tc2ctYmctaG92ZXIpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vICBTZWxlY3RlZCDigJQgbGlnaHQtcHVycGxlIGJnLiBIb3ZlciBkYXJrZW5zIHRvIC1ob3ZlciB0b2tlbi5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAmLmluYm94LW1lc3NhZ2Utc2VsZWN0ZWQge1xuICAgICAgICAtLW1zZy1iZzogICAgICAgI2U2ZTlmZjtcbiAgICAgICAgLS1tc2ctYmctaG92ZXI6IHZhcigtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0KTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyAgQWN0aXZlIOKAlCB0aGUgcm93IHdob3NlIG1lc3NhZ2UgaXMgT1BFTiBpbiB0aGUgZGV0YWlsIHBhbmUuXG4gICAgLy8gIFNhbWUgcHVycGxlIGZpbGwgYXMgc2VsZWN0ZWQsIHBsdXMgYSBiYXIgZG93biB0aGUgbGVmdCBlZGdlXG4gICAgLy8gIHNvIGl0IHN0YXlzIHJlYWRhYmxlIG5leHQgdG8gdGlja2VkIHJvd3MgaW4gYSB0d28tcGFuZWxcbiAgICAvLyAgbGF5b3V0OiBwdXJwbGUgYWxvbmUgbWVhbnMgXCJ0aWNrZWRcIiwgcHVycGxlICsgYmFyIG1lYW5zXG4gICAgLy8gIFwidGhpcyBpcyB0aGUgb25lIHlvdSBhcmUgcmVhZGluZ1wiLlxuICAgIC8vXG4gICAgLy8gIFRoZSBiYXIgaXMgYW4gSU5TRVQgYm94LXNoYWRvdyBhbmQgbm90IGEgYm9yZGVyIG9yIGFcbiAgICAvLyAgOjpiZWZvcmU6IGEgYm9yZGVyIHdvdWxkIGNoYW5nZSB0aGUgYm94IGFuZCBzaGlmdCB0aGVcbiAgICAvLyAgYXZhdGFyIDNweCwgYW5kIDo6YmVmb3JlIGlzIGFscmVhZHkgc3Bva2VuIGZvciBmdXJ0aGVyXG4gICAgLy8gIGRvd24gdGhpcyBmaWxlLiBJbnNldCBzaGFkb3cgcGFpbnRzIGluc2lkZSB0aGUgZXhpc3RpbmdcbiAgICAvLyAgYm9yZGVyLXJhZGl1cyBhbmQgY29zdHMgbm8gbGF5b3V0LlxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICYuaW5ib3gtbWVzc2FnZS1hY3RpdmUge1xuICAgICAgICAtLW1zZy1iZzogICAgICAgI2U2ZTlmZjtcbiAgICAgICAgLS1tc2ctYmctaG92ZXI6IHZhcigtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0KTtcblxuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAzcHggMCAwIDAgdmFyKC0tbXNnLWFjY2VudCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gIEZvY3VzIOKAlCBjYW5vbmljYWwgUUROQSBQcm8gcmVjaXBlIChzdGFja2VkIGJveC1zaGFkb3cpLlxuICAgIC8vICBObyBvdXRsaW5lOyByaW5nIGF0IDAtMnB4LCBnbG93IGF0IDItNnB4LlxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICY6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG4gICAgJjpmb2N1cy12aXNpYmxlLFxuICAgICYuZm9yY2UtZm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgICAgMCAwIDAgMnB4IHZhcigtLWMtcHVycGxlLTUwMCksICAgICAgICAgICAgICAgICAgLy8gcmluZ1xuICAgICAgICAgICAgMCAwIDAgNnB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjUpOyAgLy8gZ2xvdyBiYW5kXG4gICAgfVxuXG4gICAgLy8gRm9jdXMgYW5kIGFjdGl2ZSBib3RoIHBhaW50IHdpdGggYm94LXNoYWRvdywgYW5kIG9uZSBwcm9wZXJ0eSBjYW4gb25seVxuICAgIC8vIGhvbGQgb25lIHZhbHVlIOKAlCBzbyBhbiBhY3RpdmUgcm93IHRoYXQgdGFrZXMgZm9jdXMgd291bGQgbG9zZSBpdHMgbGVmdFxuICAgIC8vIGJhci4gU3RhY2sgdGhlIHR3byBpbnN0ZWFkIG9mIGxldHRpbmcgdGhlIGxhdGVyIHJ1bGUgd2luLlxuICAgICYuaW5ib3gtbWVzc2FnZS1hY3RpdmU6Zm9jdXMtdmlzaWJsZSxcbiAgICAmLmluYm94LW1lc3NhZ2UtYWN0aXZlLmZvcmNlLWZvY3VzIHtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAgIGluc2V0IDNweCAwIDAgMCB2YXIoLS1tc2ctYWNjZW50KSxcbiAgICAgICAgICAgIDAgMCAwIDJweCB2YXIoLS1jLXB1cnBsZS01MDApLFxuICAgICAgICAgICAgMCAwIDAgNnB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjUpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vICBMZWFkIGNvbHVtbiDigJQgdW5yZWFkIGRvdCArIGF2YXRhclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIEtpbSAyOS4wNy4yMDI2LCBuYSBoYWFyIHRvZXN0ZWx0ZXN0OiBcImVyIGlzIHRlIHZlZWwgcnVpbXRlIGdlcmVzZXJ2ZWVyZCB2b29yXG4gICAgLy8gaGV0IGJsYXV3ZSB1bnJlYWQgYm9sbGV0amUsIGFscyBoaWogZXIgbmlldCBpcyBkYW4gaXMgZXIgZWVuIHRlIGdyb3RlIHJ1aW10ZSxcbiAgICAvLyBkYXQgaXMgem9uZGVcIi4gR2V2cmFhZ2RlIGtldGVuOiBmcmFtZS1yYW5kIC0gNHB4IC0gYm9sbGV0amUgLSA0cHggLSBhdmF0YXIuXG4gICAgLy9cbiAgICAvLyBXYXQgZXIgc3RvbmQgZW4gd2Fhcm9tIGhldCBydWltdGUga29zdHRlOiBgd2lkdGg6IDUwcHhgIG1ldFxuICAgIC8vIGBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kYC4gRWVuIHZhc3RlIGtvbG9tIGR1cywgbWV0IGRlIGF2YXRhciByZWNodHNcbiAgICAvLyB1aXRnZWxpam5kLiBNw6l0IGJvbGxldGplIGlzIGRlIGluaG91ZCA4ICsgNCArIDM0ID0gNDZweCwgbWFhciBaT05ERVIgYm9sbGV0amVcbiAgICAvLyBzdGFhdCBlciBhbGxlZW4gZWVuIGF2YXRhciB2YW4gMzRweCBpbiBlZW4ga29sb20gdmFuIDUwLCBlbiBkaWUgMTZweCBsaW5rc1xuICAgIC8vIGJsZXZlbiBnZXdvb24gbGVlZy4gT3BnZXRlbGQgYmlqIGRlIDhweCByaWotcGFkZGluZyBzdG9uZCBkZSBhdmF0YXIgMjRweCB2YW5cbiAgICAvLyBkZSByYW5kLlxuICAgIC8vXG4gICAgLy8gTnU6IGdlZW4gdmFzdGUgYnJlZWR0ZSBtZWVyLCBkdXMgZGUga29sb20ga3JpbXB0IG1lZSBhbHMgaGV0IGJvbGxldGplIGVyIG5pZXRcbiAgICAvLyBpcy4gYGZsZXgtc3RhcnRgIGluIHBsYWF0cyB2YW4gYGZsZXgtZW5kYCwgd2FudCB1aXRsaWpuZW4gb3AgcmVjaHRzIGhlZWZ0IGdlZW5cbiAgICAvLyBiZXRla2VuaXMgbWVlciB6b2RyYSBkZSBicmVlZHRlIGRlIGluaG91ZCB2b2xndC5cbiAgICAvL1xuICAgIC8vIFZBU1RFIGJyZWVkdGUsIGVuIGRhdCBpcyBLaW1zIGJlc2x1aXQgdmFuIDI5LjA3LjIwMjYgbmEgaGV0IHppZW4gdmFuIGhldFxuICAgIC8vIGFsdGVybmF0aWVmLiBFZW4gbWVlYmV3ZWdlbmRlIGtvbG9tIHdvbiBkaWUgcnVpbXRlIHdlbCB0ZXJ1ZywgbWFhciBkYW4gc3RhYXQgZGVcbiAgICAvLyBhdmF0YXIgdmFuIGVlbiBPTkdFTEVaRU4gcmlqIDEycHggdmVyZGVyIG5hYXIgcmVjaHRzIGRhbiBkaWUgdmFuIGVlbiBnZWxlemVuXG4gICAgLy8gcmlqLCBlbiBkYW4gaXMgZGUgbGlua2VycmFuZCB2YW4gZGUgbGlqc3QgbmlldCByZWNodCBtZWVyLiBJbiBlZW4gYmVyaWNodGVubGlqc3RcbiAgICAvLyBsZWVzdCBkYXQgYWxzIGVlbiBmb3V0LlxuICAgIC8vXG4gICAgLy8gNDZweCBpcyBwcmVjaWVzIGRlIGluaG91ZDogOCAoYm9sbGV0amUpICsgNCAoZ2F0KSArIDM0IChhdmF0YXIpLiBNZXRcbiAgICAvLyBgZmxleC1lbmRgIGxldmVydCBkYXQgS2ltcyBrZXRlbiBFTiB1aXRsaWpuaW5nIG9wLCBpbiDDqcOpbiBtYWF0OlxuICAgIC8vICAgb25nZWxlemVuOiByYW5kIDQgLT4gYm9sbGV0amUgb3AgNCAtPiBnYXQgNCAtPiBhdmF0YXIgb3AgMTZcbiAgICAvLyAgIGdlbGV6ZW4gIDogcmFuZCA0IC0+IGdlZW4gYm9sbGV0amUgLT4gYXZhdGFyIHJlY2h0cyB1aXRnZWxpam5kLCBvb2sgb3AgMTZcbiAgICAvLyBEZSBvdWRlIHdhYXJkZSB3YXMgNTBweCwgZW4gZGF0IGlzIHdhYXIgZGUga2xhY2h0IHZhbmRhYW4ga3dhbTogNHB4IHRlIGJyZWVkLFxuICAgIC8vIHBsdXMgOHB4IHJpai1wYWRkaW5nIGluIHBsYWF0cyB2YW4gNCwgZHVzIGRlIGF2YXRhciBzdG9uZCAyNHB4IHZhbiBkZSByYW5kLlxuICAgIC8vIE5ldHRvIHdpbnN0IDhweCBvcCBlbGtlIHJpaiwgbWV0IGVlbiByZWNodGUgcmFuZC5cbiAgICAuaW5ib3gtbWVzc2FnZS1sZWFkIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDRweDtcbiAgICAgICAgd2lkdGg6IDQ2cHg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgfVxuICAgIC5pbmJveC1tZXNzYWdlLXVucmVhZC1kb3Qge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDEzcHg7ICAgICAgICAgICAgICAgICAgICAgICAvLyB2aXN1YWxseSBjZW50ZXJzIGFnYWluc3QgMzRweCBhdmF0YXJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tc2ctYWNjZW50KTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyAgQXZhdGFyIHN0YXR1cyBpbmRpY2F0b3IgKGxvd2VyLXJpZ2h0IGNpcmNsZSArIGljb24pXG4gICAgLy8gIE9ubHkgcmVuZGVyZWQgZm9yIGNlcnRhaW4gc3RhdHVzZXMgKHNlZSBBVkFUQVJfU1RBVFVTIGluIEpTKS5cbiAgICAvLyAgVGhlIHdyYXBwZXIgb25seSBleGlzdHMgd2hlbiBhIGJhZGdlIGlzIHByZXNlbnQsIHNvIHVuYmFkZ2VkXG4gICAgLy8gIGF2YXRhcnMgYXJlIHVuYWZmZWN0ZWQuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLmluYm94LW1lc3NhZ2UtYXZhdGFyLXdyYXAge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICB9XG4gICAgLmluYm94LW1lc3NhZ2UtYXZhdGFyLXN0YXR1cyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IC0zcHg7XG4gICAgICAgIGJvdHRvbTogLTNweDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG5cbiAgICAgICAgLy8gRWFjaCBzdGF0dXMgaXMgb25lIG9mIEtpbSdzIHNlbGYtY29udGFpbmVkIFNWR3Mg4oCUIHRoZSB3aGl0ZSBvdXRsaW5lXG4gICAgICAgIC8vIGlzIGJha2VkIGludG8gdGhlIGFzc2V0LCBzbyBubyBDU1MgcmluZy9maWx0ZXIgaGVyZS4gQm94IHNpemVzIGFyZVxuICAgICAgICAvLyB0dW5lZCBwZXIgaWNvbiBhc3BlY3Qgc28gdGhleSByZWFkIGF0IGEgY29uc2lzdGVudCB+MjBweC5cbiAgICAgICAgJi5pcy1pbi1wcm9ncmVzcyB7IHdpZHRoOiAxN3B4OyBoZWlnaHQ6IDIxcHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybCgvaW1nL2luYm94LXN0YXR1cy9ob3VyZ2xhc3Muc3ZnKTsgfVxuICAgICAgICAmLmlzLWNvbXBsZXRlZCAgIHsgd2lkdGg6IDIxcHg7IGhlaWdodDogMjBweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9pbWcvaW5ib3gtc3RhdHVzL2NoZWNrLnN2Zyk7IH1cbiAgICAgICAgJi5pcy1vdmVyZHVlICAgICB7IHdpZHRoOiAyMnB4OyBoZWlnaHQ6IDE5cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybCgvaW1nL2luYm94LXN0YXR1cy93YXJuaW5nLXJlZC5zdmcpOyB9XG4gICAgICAgIC8vIEV4dHJhIGljb25zIGluIHRoZSBzZXQg4oCUIGF2YWlsYWJsZSwgbm90IGF1dG8tc2V0IGJ5IHRoZSBpbmJveCB5ZXQuXG4gICAgICAgICYuaXMtZHVlLXNvb24gICAgeyB3aWR0aDogMjJweDsgaGVpZ2h0OiAxOXB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2ltZy9pbmJveC1zdGF0dXMvd2FybmluZy15ZWxsb3cuc3ZnKTsgfVxuICAgICAgICAmLmlzLXJlbWluZGVyICAgIHsgd2lkdGg6IDE4cHg7IGhlaWdodDogMjFweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9pbWcvaW5ib3gtc3RhdHVzL2JlbGwuc3ZnKTsgfVxuICAgICAgICAmLmlzLXNjaGVkdWxlZCAgIHsgd2lkdGg6IDIxcHg7IGhlaWdodDogMjBweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9pbWcvaW5ib3gtc3RhdHVzL3RpbWVyLnN2Zyk7IH1cbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyAgTWFpbiBjb2x1bW4g4oCUIHRocmVlIHJvd3MgKyBvcHRpb25hbCB0YWdzIHJvd1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIENvbXBhY3QgcmVjaXBlOiBpbiB0aGlzIGNvbXBvbmVudCBjb250ZXh0IHRoZSBnbG9iYWwgdHlwb2dyYXBoeVxuICAgIC8vIGxpbmUtaGVpZ2h0cyAoMTQvMjQsIDEyLzIwKSByZWFkIHRvbyBhaXJ5LiBGaWdtYSB1c2VzIGdhcDogLTIgdG9cbiAgICAvLyBwdWxsIHRoZSByb3dzIHRvZ2V0aGVyLiBDU1MgZ2FwIGNhbid0IGdvIG5lZ2F0aXZlLCBzbyB3ZSBzZXRcbiAgICAvLyBnYXA6IDAgaGVyZSBhbmQgYXBwbHkgbWFyZ2luLXRvcDogLTJweCBvbiByb3dzIDIvMyDigJQgdGhlXG4gICAgLy8gbGluZS1oZWlnaHRzIGhhdmUgfjVweCBvZiBoYWxmLWxlYWRpbmcgcGVyIHJvdywgc28gYSAtMnB4IG51ZGdlXG4gICAgLy8gdGlnaHRlbnMgdmlzdWFsIHJoeXRobSB3aXRob3V0IGJhc2VsaW5lIG92ZXJsYXAuXG4gICAgLmluYm94LW1lc3NhZ2UtbWFpbiB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMDtcbiAgICAgICAgcGFkZGluZzogNHB4IDA7XG4gICAgfVxuXG4gICAgLy8gLS0tLSBSb3cgMTogc2VuZGVyICsgYWN0aW9ucyAtLS0tXG4gICAgLmluYm94LW1lc3NhZ2Utcm93LTEge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDRweDtcbiAgICB9XG4gICAgLmluYm94LW1lc3NhZ2Utc2VuZGVyIHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgQGluY2x1ZGUgdGV4dC1zdHlsZS1ib2R5LWJvbGQtbWQ7ICAgICAgIC8vIGJvbGQgYnkgZGVmYXVsdDsgb3BlbmVkIG92ZXJyaWRlc1xuICAgICAgICBjb2xvcjogdmFyKC0tbXNnLXRleHQpO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG4gICAgLy8gT3BlbmVkICg9IHJlYWQpIOKGkiBtZWRpdW0gd2VpZ2h0IGluc3RlYWQgb2YgYm9sZFxuICAgICY6bm90KC5pbmJveC1tZXNzYWdlLXVucmVhZCkgLmluYm94LW1lc3NhZ2Utc2VuZGVyIHtcbiAgICAgICAgQGluY2x1ZGUgdGV4dC1zdHlsZS1ib2R5LW1lZGl1bS1tZDtcbiAgICB9XG5cbiAgICAvLyAtLS0tIEFjdGlvbnMgY2x1c3RlciAocGFwZXJjbGlwICsgYm9va21hcmsgKyBkZWxldGUgaW4gZmxleC1yb3cpIC0tLS1cbiAgICAvLyBXaWR0aC1jb2xsYXBzZSBhbmltYXRpb24g4oCUIGNvcGllZCBmcm9tIHFkbmFwcm8taGlzdG9yeS1pdGVtLiBEZWZhdWx0XG4gICAgLy8gc3RhdGU6IHBhcGVyY2xpcCB2aXNpYmxlIGF0IDIwcHgsIGJvb2ttYXJrICsgZGVsZXRlIGNvbGxhcHNlZCB0b1xuICAgIC8vIHdpZHRoIDAuIE9uIGhvdmVyL2ZvY3VzLXdpdGhpbjogcGFwZXJjbGlwIGNvbGxhcHNlcyB0byB3aWR0aCAwLFxuICAgIC8vIGJ1dHRvbnMgZXhwYW5kIHRvIHdpZHRoIDI0cHguIFRoZSBkZWxldGUtYnV0dG9uIHBpY2tzIHVwIGEgNHB4XG4gICAgLy8gbWFyZ2luLWxlZnQgb25seSB3aGVuIGV4cGFuZGVkIHNvIHRoZSBjbHVzdGVyIHNpdHMgZmx1c2ggaW4gdGhlXG4gICAgLy8gY29ybmVyIHdoZW4gb25seSB0aGUgYm9va21hcmsgaXMgdmlzaWJsZSAoPSBib29rbWFya2VkLXN0YXRlKS5cbiAgICAuaW5ib3gtbWVzc2FnZS1hY3Rpb25zIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRpZ2h0IGNsdXN0ZXIg4oCUIHNlZSBtYXJnaW4tbGVmdCBydWxlXG4gICAgfVxuICAgIC5pbmJveC1tZXNzYWdlLXBhcGVyY2xpcCB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgbWF4LXdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgY29sb3I6IHZhcigtLW1zZy10ZXh0LW11dGVkKTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IG1heC13aWR0aCAyMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aCAgICAgMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eSAgIDE1MG1zIGVhc2U7XG4gICAgfVxuICAgIC8vIEZvcndhcmRlZC1pbmRpY2F0b3I6IHZlcnBsYWF0c3QgdWl0IHJvdy0xIG5hYXIgaGllciwgbmFhc3QgZGUgdmxhZyAoS2ltIDMxLjA3LjIwMjYpXG4gICAgLy8gLSB6aWUgZGUgdG9lbGljaHRpbmcgaW4gcWRuYS1pbmJveC1tZXNzYWdlLmpzLiBaZWxmZGUga3JpbXAtaWRpb29tIGFscyBkZSBwYXBlcmNsaXBcbiAgICAvLyBoaWVyYm92ZW4sIG1ldCDDqcOpbiB2ZXJzY2hpbDogcG9pbnRlci1ldmVudHMgQkxJSkZUIGF1dG8sIHdhbnQgYW5kZXJzIHdlcmt0IGRlXG4gICAgLy8gaG92ZXItdG9vbHRpcCAoXCJEb29yZ2VzdHV1cmRcIikgbmlldC5cbiAgICAuaW5ib3gtbWVzc2FnZS1mb3J3YXJkZWQge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIG1heC13aWR0aDogMjBweDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1tc2ctdGV4dC1tdXRlZCk7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICB0cmFuc2l0aW9uOiBtYXgtd2lkdGggMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGggICAgIDIwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksXG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHkgICAxNTBtcyBlYXNlO1xuICAgIH1cbiAgICAuaW5ib3gtbWVzc2FnZS1ib29rbWFyayxcbiAgICAuaW5ib3gtbWVzc2FnZS1kZWxldGUge1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBtYXgtd2lkdGg6IDA7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB0cmFuc2l0aW9uOiBtYXgtd2lkdGggICAyMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aCAgICAgICAyMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLFxuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGggICAyMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLFxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdCAyMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLFxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5ICAgICAxNTBtcyBlYXNlLFxuICAgICAgICAgICAgICAgICAgICBjb2xvciAgICAgICAxMjBtcyBlYXNlLW91dDtcbiAgICB9XG4gICAgLmluYm94LW1lc3NhZ2UtZGVsZXRlIHsgbWFyZ2luLWxlZnQ6IDA7IH1cblxuICAgIC8vIE9uIGhvdmVyL2ZvY3VzLXdpdGhpbjogcGFwZXJjbGlwIHdpZHRoLWNvbGxhcHNlcywgYm90aCBidXR0b25zXG4gICAgLy8gd2lkdGgtZXhwYW5kLiBEZWxldGUgcGlja3MgdXAgaXRzIDRweCBtYXJnaW4tbGVmdCBzbyBpdCBzaXRzXG4gICAgLy8gNHB4IGZyb20gdGhlIGJvb2ttYXJrIChtYXRjaGVzIHFkbmFwcm8taGlzdG9yeS1pdGVtIHJlY2lwZSkuXG4gICAgLy8gOm5vdCguaW5ib3gtbWVzc2FnZS1zd2lwaW5nKSDigJQgc3dpcGUgc3RhdGUgc3VwcHJlc3NlcyB0aGVzZVxuICAgIC8vIGhvdmVyLW9ubHkgcmV2ZWFscyBlbnRpcmVseSAoc2VlIHRoZSBzd2lwZS1zdGF0ZSBibG9jayBiZWxvdykuXG4gICAgLy8gLmluYm94LW1lc3NhZ2UtZm9yd2FyZGVkIHN0YWF0IGhpZXIgQkVXVVNUIE5JRVQgYmlqIChLaW0gMzEuMDcuMjAyNjogXCJhbHMgaWsgb3ZlclxuICAgIC8vIGRlIG1lc3NhZ2UgaG92ZXIgZGFuIHZlcmR3aWpudCBkZSBpY29uXCIpLiBIaWoga3JvbXAgZWVyc3QgbWVlIG1ldCBkZSBwYXBlcmNsaXAgb21cbiAgICAvLyBwbGFhdHMgdGUgbWFrZW4gdm9vciBkZSBrbm9wcGVuLCBlbiBkYXQgaXMgcHJlY2llcyB2ZXJrZWVyZCBvbTogZWVuIHBhcGVyY2xpcCB6ZWd0XG4gICAgLy8gXCJlciBoYW5ndCBpZXRzIGFhblwiIGVuIGRhdCBrdW4gamUgaW4gZGUgZ2VvcGVuZGUgbWFpbCBhbHNub2cgemllbiwgbWFhciBvZiBqZSBlZW5cbiAgICAvLyBiZXJpY2h0IGhlYnQgZG9vcmdlc3R1dXJkIGlzIGVlbiBTVEFORCBkaWUgbmVyZ2VucyBhbmRlcnMgaW4gZGUgbGlqc3Qgc3RhYXQuIEVlblxuICAgIC8vIHN0YW5kIGRpZSB2ZXJkd2lqbnQgem9kcmEgamUgaGVtIHdpbHQgYmVraWprZW4gaXMgZ2VlbiBzdGFuZC4gRGUgaG9layB3b3JkdCBkYWFyZG9vclxuICAgIC8vIDIwcHggYnJlZGVyIHRpamRlbnMgaG92ZXI7IGRhdCBnYWF0IGFmIHZhbiBkZSBhZnplbmRlcm5hYW0sIGRpZSB0b2NoIGFsIGFma2FwdC5cbiAgICAmOmhvdmVyOm5vdCguaW5ib3gtbWVzc2FnZS1zd2lwaW5nKSAuaW5ib3gtbWVzc2FnZS1wYXBlcmNsaXAsXG4gICAgJjpmb2N1cy13aXRoaW46bm90KC5pbmJveC1tZXNzYWdlLXN3aXBpbmcpIC5pbmJveC1tZXNzYWdlLXBhcGVyY2xpcCB7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBtYXgtd2lkdGg6IDA7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgICY6aG92ZXI6bm90KC5pbmJveC1tZXNzYWdlLXN3aXBpbmcpIC5pbmJveC1tZXNzYWdlLWJvb2ttYXJrLFxuICAgICY6aG92ZXI6bm90KC5pbmJveC1tZXNzYWdlLXN3aXBpbmcpIC5pbmJveC1tZXNzYWdlLWRlbGV0ZSxcbiAgICAmOmZvY3VzLXdpdGhpbjpub3QoLmluYm94LW1lc3NhZ2Utc3dpcGluZykgLmluYm94LW1lc3NhZ2UtYm9va21hcmssXG4gICAgJjpmb2N1cy13aXRoaW46bm90KC5pbmJveC1tZXNzYWdlLXN3aXBpbmcpIC5pbmJveC1tZXNzYWdlLWRlbGV0ZSB7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBtaW4td2lkdGg6IDI0cHg7XG4gICAgICAgIG1heC13aWR0aDogMjRweDtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgfVxuICAgICY6aG92ZXI6bm90KC5pbmJveC1tZXNzYWdlLXN3aXBpbmcpIC5pbmJveC1tZXNzYWdlLWRlbGV0ZSxcbiAgICAmOmZvY3VzLXdpdGhpbjpub3QoLmluYm94LW1lc3NhZ2Utc3dpcGluZykgLmluYm94LW1lc3NhZ2UtZGVsZXRlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyAgQm9va21hcmtlZCDigJQgcGVyc2lzdGVudCBwdXJwbGUgYm9va21hcmsgaWNvbiwgcGFwZXJjbGlwIGhpZGRlbi5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBCb29rbWFya2VkOiBwYXBlcmNsaXAgY29sbGFwc2VkLCBib29rbWFyayBzdGF5cyBleHBhbmRlZCArIHB1cnBsZS5cbiAgICAvLyBEZWxldGUgcmVtYWlucyBjb2xsYXBzZWQgb2ZmLWhvdmVyIChtYXRjaGVzIGhpc3RvcnktaXRlbS1waW5uZWQpLlxuICAgIC8vIExFVCBPUDogLmluYm94LW1lc3NhZ2UtZm9yd2FyZGVkIGhvb3J0IGhpZXIgYmV3dXN0IE5JRVQgYmlqLiBLaW1zIHZvb3JiZWVsZCBpcyBlZW5cbiAgICAvLyBiZXJpY2h0IGRhdCBhbGxlYmVpIGlzOiBnZXZsYWdkIMOpbiBkb29yZ2VzdHV1cmQsIGVuIGRhbiBtb2V0ZW4gYmVpZGUgc3RhdHVzLWdseXBoc1xuICAgIC8vIHNhbWVuIHppY2h0YmFhciBibGlqdmVuIOKAlCBhbGxlZW4gZGUgcGFwZXJjbGlwIGtsYXB0IGhpZXIgcGVybWFuZW50IHdlZywgZGVcbiAgICAvLyBkb29yZ2VzdHV1cmQtZ2x5cGggbmlldC4gW0tpbSwgMzEuMDcuMjAyNl1cbiAgICAmLmluYm94LW1lc3NhZ2UtYm9va21hcmtlZCB7XG4gICAgICAgIC5pbmJveC1tZXNzYWdlLXBhcGVyY2xpcCB7XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgIG1heC13aWR0aDogMDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cbiAgICAgICAgLmluYm94LW1lc3NhZ2UtYm9va21hcmsge1xuICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDI0cHg7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tbXNnLWFjY2VudCk7ICAgICAgICAgICAvLyBQdXJwbGUtSGlnaGxpZ2h0ICM0NjUyZjMgKGxpZ2h0KSAvICNhNWFjZmYgKGRhcmspXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyAgTmF2aWdhdGUgdmFyaWFudCDigJQgc2luZ2xlIGNoZXZyb24tcmlnaHQgYnV0dG9uIHZlcnRpY2FsbHlcbiAgICAvLyAgY2VudGVyZWQgb24gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIHJvdy4gVGhlIGNoZXZyb24gaXNcbiAgICAvLyAgcG9zaXRpb246YWJzb2x1dGUgKG91dCBvZiB0aGUgZmxleCBmbG93KSBzbyByZXZlYWxpbmcgaXRcbiAgICAvLyAgZG9lc24ndCBjaGFuZ2UgdGhlIG1haW4gY29sdW1uJ3Mgd2lkdGguIE9uIGhvdmVyIHRoZVxuICAgIC8vICByaWdodC1hbGlnbmVkIGluZm8gaW5zaWRlIG1haW4gKHRpbWVzdGFtcCArIGR1ZS10aW1lKSBvbmx5XG4gICAgLy8gIGZhZGVzIOKAlCBpdHMgbGF5b3V0IHdpZHRoIGlzIHByZXNlcnZlZCBzbyBzdWJqZWN0ICsgcHJldmlld1xuICAgIC8vICBkb24ndCBncm93IGludG8gdGhlIGZyZWVkIHNwYWNlLiBUaGUgY2hldnJvbiB0aGVuIHZpc3VhbGx5XG4gICAgLy8gIHRha2VzIHRoZWlyIHNsb3QuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgJi5pbmJveC1tZXNzYWdlLW5hdmlnYXRlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIC5pbmJveC1tZXNzYWdlLW5hdiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiA4cHg7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pbmJveC1tZXNzYWdlLXRpbWVzdGFtcCxcbiAgICAgICAgLmluYm94LW1lc3NhZ2UtZHVlIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgZWFzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXI6bm90KC5pbmJveC1tZXNzYWdlLXN3aXBpbmcpIC5pbmJveC1tZXNzYWdlLW5hdixcbiAgICAgICAgJjpmb2N1cy13aXRoaW46bm90KC5pbmJveC1tZXNzYWdlLXN3aXBpbmcpIC5pbmJveC1tZXNzYWdlLW5hdiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyOm5vdCguaW5ib3gtbWVzc2FnZS1zd2lwaW5nKSAuaW5ib3gtbWVzc2FnZS10aW1lc3RhbXAsXG4gICAgICAgICY6aG92ZXI6bm90KC5pbmJveC1tZXNzYWdlLXN3aXBpbmcpIC5pbmJveC1tZXNzYWdlLWR1ZSxcbiAgICAgICAgJjpmb2N1cy13aXRoaW46bm90KC5pbmJveC1tZXNzYWdlLXN3aXBpbmcpIC5pbmJveC1tZXNzYWdlLXRpbWVzdGFtcCxcbiAgICAgICAgJjpmb2N1cy13aXRoaW46bm90KC5pbmJveC1tZXNzYWdlLXN3aXBpbmcpIC5pbmJveC1tZXNzYWdlLWR1ZSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gSG9ub3IgdXNlciBtb3Rpb24gcHJlZmVyZW5jZSAobWF0Y2hlcyBOb3ZhIC8gaGlzdG9yeS1pdGVtKS5cbiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgICAgICAuaW5ib3gtbWVzc2FnZS1wYXBlcmNsaXAsXG4gICAgICAgIC5pbmJveC1tZXNzYWdlLWJvb2ttYXJrLFxuICAgICAgICAuaW5ib3gtbWVzc2FnZS1kZWxldGUsXG4gICAgICAgIC5pbmJveC1tZXNzYWdlLW5hdixcbiAgICAgICAgLmluYm94LW1lc3NhZ2UtdGltZXN0YW1wLFxuICAgICAgICAuaW5ib3gtbWVzc2FnZS1kdWUge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBXaGVuIE5PVCBib29rbWFya2VkIEFORCBub3QgaG92ZXJlZCwgdGhlIGRlbGV0ZSBidXR0b24gaXMgaGlkZGVuXG4gICAgLy8gKGFscmVhZHkgaGFuZGxlZCB2aWEgLmluYm94LW1lc3NhZ2UtaG92ZXItYnV0dG9ucyBvcGFjaXR5KSwgc29cbiAgICAvLyBvbmx5IHRoZSBib29rbWFyayBuZWVkcyBhIHNwZWNpYWwgXCJzdGlsbCBoaWRkZW4gaWYgbm90IGJvb2ttYXJrZWRcbiAgICAvLyBhbmQgbm90IGhvdmVyZWRcIiBydWxlIOKAlCBhbHJlYWR5IGNvcnJlY3QgdmlhIHRoZSBjYXNjYWRlIGFib3ZlLlxuXG4gICAgLy8gUGVyc2lzdGVudCBib29rbWFyayArIGRlbGV0ZSBtdXN0IHJlbWFpbiBpbiB0aGVpciBvd24gdmlzdWFsIG9yZGVyXG4gICAgLy8gd2hlbiByZXZlYWxlZCBkdXJpbmcgaG92ZXIsIHNvIGp1c3Qga2VlcGluZyB0aGVtIGluIHRoZSBzYW1lIERPTVxuICAgIC8vIHdyYXBwZXIgaXMgZW5vdWdoLlxuXG4gICAgLy8gLS0tLSBSb3cgMjogc3ViamVjdCArIHRpbWVzdGFtcCAtLS0tXG4gICAgLmluYm94LW1lc3NhZ2Utcm93LTIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTJweDsgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbXBhY3QgcmVjaXBlIOKAlCBzZWUgLmluYm94LW1lc3NhZ2UtbWFpblxuICAgIH1cbiAgICAuaW5ib3gtbWVzc2FnZS1zdWJqZWN0IHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgQGluY2x1ZGUgdGV4dC1zdHlsZS1ib2R5LW1lZGl1bS1tZDtcbiAgICAgICAgY29sb3I6IHZhcigtLW1zZy10ZXh0KTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICAgICYuaW5ib3gtbWVzc2FnZS11bnJlYWQgLmluYm94LW1lc3NhZ2Utc3ViamVjdCB7XG4gICAgICAgIEBpbmNsdWRlIHRleHQtc3R5bGUtYm9keS1ib2xkLW1kO1xuICAgICAgICBjb2xvcjogdmFyKC0tbXNnLWFjY2VudCk7XG4gICAgfVxuICAgIC5pbmJveC1tZXNzYWdlLXRpbWVzdGFtcCB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBAaW5jbHVkZSB0ZXh0LXN0eWxlLWJvZHktbWVkaXVtLXNtO1xuICAgICAgICBjb2xvcjogdmFyKC0tbXNnLXRleHQpO1xuICAgIH1cbiAgICAmLmluYm94LW1lc3NhZ2UtdW5yZWFkIC5pbmJveC1tZXNzYWdlLXRpbWVzdGFtcCB7XG4gICAgICAgIEBpbmNsdWRlIHRleHQtc3R5bGUtYm9keS1ib2xkLXNtO1xuICAgICAgICBjb2xvcjogdmFyKC0tbXNnLWFjY2VudCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLSBSb3cgMzogcHJldmlldyArIGR1ZS10aW1lIC0tLS1cbiAgICAuaW5ib3gtbWVzc2FnZS1yb3ctMyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAtMnB4OyAgICAgICAgICAgICAgICAgICAgICAgLy8gY29tcGFjdCByZWNpcGUg4oCUIHNlZSAuaW5ib3gtbWVzc2FnZS1tYWluXG4gICAgfVxuICAgIC5pbmJveC1tZXNzYWdlLXByZXZpZXcge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBAaW5jbHVkZSB0ZXh0LXN0eWxlLWJvZHktcmVndWxhci1zbTtcbiAgICAgICAgY29sb3I6IHZhcigtLW1zZy10ZXh0KTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICAgIC5pbmJveC1tZXNzYWdlLWR1ZSB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIEBpbmNsdWRlIHRleHQtc3R5bGUtYm9keS1yZWd1bGFyLXNtO1xuICAgICAgICBjb2xvcjogdmFyKC0tbXNnLXRleHQpO1xuXG4gICAgICAgIHFkbmFwcm8taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1tc2ctdGV4dC1tdXRlZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAtLS0tIFRhZ3Mgcm93IC0tLS1cbiAgICAuaW5ib3gtbWVzc2FnZS10YWdzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vICBVcmdlbmN5IG1hcmtlciDigJQgZGVhZGxpbmUtc3RhdHVzPVwib3ZlcmR1ZVwiIHwgXCJkdWUtc29vblwiLlxuICAgIC8vICBDb2xvdXJzIHRoZSBkdWUtdGltZSB0ZXh0ICsgaXRzIGNsb2NrIGljb24gb25seS4gU2VlIHRoZVxuICAgIC8vICBkdXBsaWNhdGlvbiBub3RlIGF0IHRoZSB0b3Agb2YgdGhpcyBmaWxlIGFib3V0IHRoZSBwYWdlJ3NcbiAgICAvLyAgb3duIGBkYXRhLWRlYWRsaW5lLXN0YXR1c2AgcnVsZSBpbiBfaW5ib3guc2Nzcy5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAmLmluYm94LW1lc3NhZ2UtZGVhZGxpbmUtb3ZlcmR1ZSAuaW5ib3gtbWVzc2FnZS1kdWUsXG4gICAgJi5pbmJveC1tZXNzYWdlLWRlYWRsaW5lLW92ZXJkdWUgLmluYm94LW1lc3NhZ2UtZHVlIHFkbmFwcm8taWNvbiB7XG4gICAgICAgIGNvbG9yOiAkbXNnLWRlYWRsaW5lLW92ZXJkdWU7XG4gICAgfVxuICAgICYuaW5ib3gtbWVzc2FnZS1kZWFkbGluZS1kdWUtc29vbiAuaW5ib3gtbWVzc2FnZS1kdWUsXG4gICAgJi5pbmJveC1tZXNzYWdlLWRlYWRsaW5lLWR1ZS1zb29uIC5pbmJveC1tZXNzYWdlLWR1ZSBxZG5hcHJvLWljb24ge1xuICAgICAgICBjb2xvcjogJG1zZy1kZWFkbGluZS1kdWUtc29vbjtcbiAgICB9XG4gICAgLy8gVGFnbGVzcyBwaG9uZS1yb3cgY2FzZSAoc2VlIC5pbmJveC1tZXNzYWdlLWR1ZS1zdGFuZGFsb25lIGNsYXNzLFxuICAgIC8vIHNldCBpbiBKUyBvbmx5IHdoZW4gZGVhZGxpbmUtc3RhdHVzIGlzIG9uIEFORCB0aGVyZSBhcmUgbm8gdGFncyk6XG4gICAgLy8gZ2l2ZSB0aGUgZHVlLWNoaXAgYSB0aW50ZWQgcGlsbCBzbyBpdCByZWFkcyBhcyBhIGRlbGliZXJhdGVcbiAgICAvLyBvbmUtbGluZSBzdW1tYXJ5IHJhdGhlciB0aGFuIGEgYmFyZSBsZWZ0b3Zlci5cbiAgICAmLmluYm94LW1lc3NhZ2UtZGVhZGxpbmUtb3ZlcmR1ZSAuaW5ib3gtbWVzc2FnZS1kdWUtc3RhbmRhbG9uZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJG1zZy1kZWFkbGluZS1vdmVyZHVlLCAwLjEpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgcGFkZGluZzogMnB4IDhweCAycHggNnB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgfVxuICAgICYuaW5ib3gtbWVzc2FnZS1kZWFkbGluZS1kdWUtc29vbiAuaW5ib3gtbWVzc2FnZS1kdWUtc3RhbmRhbG9uZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJG1zZy1kZWFkbGluZS1kdWUtc29vbiwgMC4xKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIHBhZGRpbmc6IDJweCA4cHggMnB4IDZweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vICBTZWxlY3Rpb24gY2hlY2tib3gg4oCUIHNlbGVjdGFibGUgKGhvdmVyLW9ubHksIG1vdXNlKSAvXG4gICAgLy8gIHNlbGVjdGlvbi1tb2RlIChwZXJtYW5lbnQpLiBTZWUgdGhlIGFyY2hpdGVjdHVyZSBub3RlIGF0IHRoZVxuICAgIC8vICB0b3Agb2YgdGhpcyBmaWxlIOKAlCBib3RoIG5vZGVzIGFsd2F5cyByZW5kZXIgaW5zaWRlIHRoaXMgZml4ZWRcbiAgICAvLyAgMzR4MzQgc2xvdCwgQ1NTIG9ubHkgZXZlciB0b2dnbGVzIG9wYWNpdHkgYmV0d2VlbiB0aGVtLlxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC5pbmJveC1tZXNzYWdlLWF2YXRhci1zbG90IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMzRweDtcbiAgICAgICAgaGVpZ2h0OiAzNHB4O1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICB9XG4gICAgLmluYm94LW1lc3NhZ2UtYXZhdGFyLXNsb3QgPiBxZG5hcHJvLWF2YXRhcixcbiAgICAuaW5ib3gtbWVzc2FnZS1hdmF0YXItc2xvdCA+IC5pbmJveC1tZXNzYWdlLWF2YXRhci13cmFwIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxMjBtcyBlYXNlO1xuICAgIH1cbiAgICAuaW5ib3gtbWVzc2FnZS1zZWxlY3QtY2hlY2tib3gge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIC8vIFN0YW5kaW5nIFFETkEgcnVsZTogc21hbGwvZGVmYXVsdCBjaGVja2JveCBzaXplICgxNnB4KSDigJQgbmV2ZXJcbiAgICAgICAgLy8gdGhlIHRvdWNoL3RvdWNoLXNtIFBXQS1vbmx5IHZhcmlhbnRzIOKAlCBpbiB0aGUgYmFja29mZmljZS5cbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTIwbXMgZWFzZTtcbiAgICB9XG5cbiAgICAvLyBzZWxlY3Rpb24tbW9kZTogcGVybWFuZW50IHN3YXAsIGFueSBwb2ludGVyIHR5cGUuXG4gICAgJi5pbmJveC1tZXNzYWdlLXNlbGVjdGlvbi1tb2RlIHtcbiAgICAgICAgLmluYm94LW1lc3NhZ2UtYXZhdGFyLXNsb3QgPiBxZG5hcHJvLWF2YXRhcixcbiAgICAgICAgLmluYm94LW1lc3NhZ2UtYXZhdGFyLXNsb3QgPiAuaW5ib3gtbWVzc2FnZS1hdmF0YXItd3JhcCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgLmluYm94LW1lc3NhZ2Utc2VsZWN0LWNoZWNrYm94IHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHNlbGVjdGFibGU6IGhvdmVyLW9ubHkgc3dhcCwgTU9VU0UgT05MWS4gYChob3ZlcjogaG92ZXIpYCBleGNsdWRlc1xuICAgIC8vIHRvdWNoIGRldmljZXMgKG5vIHRydWUgaG92ZXIgdGhlcmUpLCBzbyB0aGUgYXZhdGFyIG5ldmVyIGRpc2FwcGVhcnNcbiAgICAvLyBvbiB0YXAg4oCUIHRvdWNoIHVzZXJzIGFsd2F5cyBzZWUgdGhlIGF2YXRhcjsgc2VsZWN0aW9uIHRoZXJlIG5lZWRzXG4gICAgLy8gc2VsZWN0aW9uLW1vZGUgaW5zdGVhZC5cbiAgICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgICAgICAmLmluYm94LW1lc3NhZ2Utc2VsZWN0YWJsZTpub3QoLmluYm94LW1lc3NhZ2Utc2VsZWN0aW9uLW1vZGUpOmhvdmVyIHtcbiAgICAgICAgICAgIC5pbmJveC1tZXNzYWdlLWF2YXRhci1zbG90ID4gcWRuYXByby1hdmF0YXIsXG4gICAgICAgICAgICAuaW5ib3gtbWVzc2FnZS1hdmF0YXItc2xvdCA+IC5pbmJveC1tZXNzYWdlLWF2YXRhci13cmFwIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmluYm94LW1lc3NhZ2Utc2VsZWN0LWNoZWNrYm94IHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gIFN3aXBlIHN0YXRlIOKAlCB0aGUgc3dpcGUgd3JhcHBlciBzZXRzIGBzd2lwaW5nYCB3aGlsZSBhIGRyYWcgaXNcbiAgICAvLyAgaW4gcHJvZ3Jlc3MuIEZvcmNlcyBhbiBvcGFxdWUgYmFja2dyb3VuZCAodGhlIGdsb2JhbCBjYXJkLXN1cmZhY2VcbiAgICAvLyAgdG9rZW4g4oCUIG9wYXF1ZSBpbiBib3RoIGxpZ2h0IGFuZCBkYXJrLCB1bmxpa2UgLS1tc2ctYmcgd2hpY2ggaXNcbiAgICAvLyAgYHRyYW5zcGFyZW50YCBpbiBkYXJrIG1vZGUpIHNvIHRoZSBhY3Rpb24gcGFuZWwgcmV2ZWFsZWQgYmVoaW5kXG4gICAgLy8gIHRoZSByb3cgY2FuJ3Qgc2hvdyB0aHJvdWdoLiBPbmx5IGNvbG91ci9vcGFjaXR5IGNoYW5nZSBoZXJlLCBzb1xuICAgIC8vICB0aGVyZSBpcyBubyBsYXlvdXQgc2hpZnQgd2hlbiBpdCB0b2dnbGVzLiBUaGUgaG92ZXItb25seSByZXZlYWxzXG4gICAgLy8gIHRoZW1zZWx2ZXMgYXJlIHN1cHByZXNzZWQgdmlhIHRoZSBgOm5vdCguaW5ib3gtbWVzc2FnZS1zd2lwaW5nKWBcbiAgICAvLyAgYWRkaXRpb25zIGZ1cnRoZXIgdXAgdGhpcyBmaWxlIChwYXBlcmNsaXAvYm9va21hcmsvZGVsZXRlL25hdikuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgJi5pbmJveC1tZXNzYWdlLXN3aXBpbmcge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmZmZmYpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vICBEaXNhYmxlZCDigJQgd2lucyBvdmVyIGhvdmVyL3NlbGVjdGVkL2Jvb2ttYXJrZWQuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgJi5pbmJveC1tZXNzYWdlLWRpc2FibGVkIHtcbiAgICAgICAgb3BhY2l0eTogMC41NTtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgLy8gU3VwcHJlc3MgZm9jdXMgc3R5bGluZyBldmVuIGlmIC5mb3JjZS1mb2N1cyBpcyBvbiAocHJldmlldyBwYXJpdHkpXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSxcbiAgICAgICAgJi5mb3JjZS1mb2N1cyB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBCYWNrZ3JvdW5kLWNvbnRleHQ6IHB1cnBsZSBob3N0ICBbS2ltIDIwMjYtMDQtMjkgcGF0dGVybl1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFdoZW4gdGhlIGluYm94LW1lc3NhZ2Ugc2l0cyBvbiBhIGxpZ2h0LXB1cnBsZSBob3N0IGJnIChzaWRlYmFyIC9cbi8vICBwYWFyc2UgY2FyZCksIHRoZSBkZWZhdWx0IHdoaXRlIGJnIGxvb2tzIGZpbmUgYnV0IHRoZSBob3Zlci1ncmV5XG4vLyAgcmVhZHMgYXMgb2ZmLiBPZmZlciBhIHB1cnBsZS10aW50ZWQgaG92ZXIgdmlhIG9wdC1pbiBhdHRyaWJ1dGUuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbltkYXRhLWJnLWNvbnRleHQ9XCJwdXJwbGVcIl0gLnFkbmFwcm8taW5ib3gtbWVzc2FnZSB7XG4gICAgLS1tc2ctYmctaG92ZXI6IHZhcigtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0KTsgICAvLyBtYXRjaGVzIHNlY29uZGFyeS1wdXJwbGUtaG92ZXJcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgRGFyay1tb2RlIG92ZXJyaWRlc1xuLy8gIFtJTkZFUlJFRF0g4oCUIEZpZ21hIHNob3dlZCBvbmx5IGxpZ2h0LiBNaXJyb3JpbmcgdGhlIHNhbWVcbi8vICA0LXN0YXRlIHBhbGV0dGUgaW50byBkYXJrIHN1cmZhY2UgdG9rZW5zLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8taW5ib3gtbWVzc2FnZSB7XG4gICAgLS1tc2ctYmc6ICAgICAgICAgIHRyYW5zcGFyZW50O1xuICAgIC0tbXNnLWJnLWhvdmVyOiAgICAjNTY1YjY2OyAgICAgICAvLyBTdWJ0bGUtSG92ZXIgKGRhcmspXG4gICAgLS1tc2ctdGV4dDogICAgICAgICNlMWUzZTY7ICAgICAgIC8vIFRleHQvT24tQm9keSAoZGFyaylcbiAgICAtLW1zZy10ZXh0LW11dGVkOiAgI2E2YWFiMzsgICAgICAgLy8gQm9keS1TZWNvbmRhcnkgKGRhcmspXG4gICAgLS1tc2ctYWNjZW50OiAgICAgICNhNWFjZmY7ICAgICAgIC8vIFB1cnBsZS1IaWdobGlnaHQgbGlnaHQgdmFyaWFudCBmb3IgZGFya1xuXG4gICAgJi5pbmJveC1tZXNzYWdlLXNlbGVjdGVkIHtcbiAgICAgICAgLS1tc2ctYmc6ICAgICAgIHJnYmEoMTY1LCAxNzIsIDI1NSwgMC4xOCk7XG4gICAgICAgIC0tbXNnLWJnLWhvdmVyOiByZ2JhKDE2NSwgMTcyLCAyNTUsIDAuMjgpO1xuICAgIH1cblxuICAgICYuaW5ib3gtbWVzc2FnZS1hY3RpdmUge1xuICAgICAgICAtLW1zZy1iZzogICAgICAgcmdiYSgxNjUsIDE3MiwgMjU1LCAwLjE4KTtcbiAgICAgICAgLS1tc2ctYmctaG92ZXI6IHJnYmEoMTY1LCAxNzIsIDI1NSwgMC4yOCk7XG5cbiAgICAgICAgLy8gLS1tc2ctYWNjZW50IGlzIGFscmVhZHkgdGhlIGxpZ2h0IHB1cnBsZSBpbiBkYXJrIG1vZGUgKHNlZSBhYm92ZSksXG4gICAgICAgIC8vIHNvIHRoZSBiYXIgaW5oZXJpdHMgaXQgYW5kIG5lZWRzIG5vIGNvbG91ciBvZiBpdHMgb3duIGhlcmUuXG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDNweCAwIDAgMCB2YXIoLS1tc2ctYWNjZW50KTtcbiAgICB9XG5cbiAgICAmOmZvY3VzLXZpc2libGUsXG4gICAgJi5mb3JjZS1mb2N1cyB7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgICAwIDAgMCAycHggI2E1YWNmZixcbiAgICAgICAgICAgIDAgMCAwIDZweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjQwKTtcbiAgICB9XG5cbiAgICAmLmluYm94LW1lc3NhZ2UtYWN0aXZlOmZvY3VzLXZpc2libGUsXG4gICAgJi5pbmJveC1tZXNzYWdlLWFjdGl2ZS5mb3JjZS1mb2N1cyB7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgICBpbnNldCAzcHggMCAwIDAgdmFyKC0tbXNnLWFjY2VudCksXG4gICAgICAgICAgICAwIDAgMCAycHggI2E1YWNmZixcbiAgICAgICAgICAgIDAgMCAwIDZweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjQwKTtcbiAgICB9XG5cbiAgICAvLyBCb29rbWFyayBjb2xvciBmb2xsb3dzIC0tbXNnLWFjY2VudCB3aGljaCBpcyBhbHJlYWR5IG92ZXJyaWRkZW5cbiAgICAvLyBmb3IgZGFyayBhYm92ZSDigJQgbm8gZXh0cmEgcnVsZSBuZWVkZWQuXG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9pbnB1dC9faW5wdXQtY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLnFkbmFwcm8taW5wdXQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6IGludGVyLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuLy8gc2l6ZT1cInRvdWNoXCIg4oCUIDIwcHggdGV4dCwgfjMwcHggbGluZS1oZWlnaHQgKHNhbWUgfjEwcHggdG90YWwgbGVhZGluZyB0aGUgMTRweC8yNHB4XG4vLyBkZWZhdWx0IGhhcywganVzdCBzY2FsZWQgdXApLiBBbHNvIGJ1bXBzIC5pbnB1dC1maWVsZCAvIC5pbnB1dC1leHRlcm5hbC1idG4gKGJlbG93KSBhbmRcbi8vIHByb3BhZ2F0ZXMgc2l6ZT1cInRvdWNoXCIgdG8gZXZlcnkgaW50ZXJuYWwgcWRuYXByby1pY29uLWJ0biBjaGlsZCAoc2VlIHFkbmEtaW5wdXQuanNcbi8vIF9zaXplSWNvbkJ0bikgc28gY2xlYXIteC/CsXN0ZXBwZXJzL2Ryb3Bkb3duL2V5ZS9jaGV2cm9uIGJlY29tZSA0NHg0NCB0YXAgdGFyZ2V0cyB0b28uXG4vLyBQV0EtT05MWSDigJQgZG8gbm90IHVzZSBpbiBiYWNrb2ZmaWNlMiBkZXNrdG9wL3RhYmxldCBzY3JlZW5zOyB1c2UgXCJiaWdcIi9cInNtYWxsXCIgdGhlcmUuXG4vLyBbMjAyNi0wNy0wMV1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXNpemUtdG91Y2gge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xufVxuLy8gc2l6ZT1cInRpbnlcIiDigJQgMzJweCBmaWVsZCBmb3IgZGVuc2UgZ3JpZHMgb2Ygc21hbGwgZmllbGRzICh0aGVtZSBlZGl0b3IgY29sb3VyXG4vLyBjYXJkcywgdXNlciBwYWdlKSB3aGVyZSBcInNtYWxsXCIgKDQwcHgpIHN0aWxsIGVhdHMgdG9vIG11Y2ggdmVydGljYWwgcm9vbS4gMTNweFxuLy8gdGV4dCwgdGlnaHRlciBmaWVsZCBwYWRkaW5nIGFuZCBnYXAgKGJlbG93KS4gSW50ZXJuYWwgaWNvbi1idG5zIGtlZXAgdGhlaXIgMjRweFxuLy8gc21hbGwgZGVmYXVsdCwgd2hpY2ggZml0cyBpbnNpZGUgMzJweCwgc28gbm8gX3NpemVJY29uQnRuIHByb3BhZ2F0aW9uIGlzIG5lZWRlZC5cbi8vIE5PVCBhIHRhcCB0YXJnZXQg4oCUIGRlc2t0b3AvdGFibGV0IG9ubHksIHVzZSBcInRvdWNoXCIgaW4gdGhlIFBXQS4gW0tpbSAyMDI2LTA4LTA3XVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtc2l6ZS10aW55IHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogOHB4O1xuICBtYXJnaW4tYm90dG9tOiA0cHg7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtaGVhZGVyIC5pbnB1dC1sYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktOTUwKTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1oZWFkZXIgLmlucHV0LWxhYmVsIC5pbnB1dC1yZXF1aXJlZCB7XG4gIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCk7XG4gIG1hcmdpbi1yaWdodDogMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWhlYWRlciAuaW5wdXQtbGFiZWwgLmlucHV0LW9wdGlvbmFsIHtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MDApO1xuICBmb250LXdlaWdodDogNDAwO1xuICBtYXJnaW4tbGVmdDogMnB4O1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWhlYWRlciAuaW5wdXQtaW5mby1idG4ge1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1oaW50IHtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MDApO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1zaXplLWJpZyAuaW5wdXQtZXh0ZXJuYWwtYnRuIHtcbiAgd2lkdGg6IDUycHg7XG4gIG1pbi13aWR0aDogNTJweDtcbiAgbWluLWhlaWdodDogNTJweDtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXNpemUtc21hbGwgLmlucHV0LWV4dGVybmFsLWJ0biB7XG4gIHdpZHRoOiA0MHB4O1xuICBtaW4td2lkdGg6IDQwcHg7XG4gIG1pbi1oZWlnaHQ6IDQwcHg7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1zaXplLXRpbnkgLmlucHV0LWV4dGVybmFsLWJ0biB7XG4gIHdpZHRoOiAzMnB4O1xuICBtaW4td2lkdGg6IDMycHg7XG4gIG1pbi1oZWlnaHQ6IDMycHg7XG59XG4vLyBzaXplPVwidG91Y2hcIiDigJQgcm9vbSBmb3IgdGhlIDQ0eDQ0IGljb24tYnRuIChzaXplPVwidG91Y2hcIikgdGhpcyBzaXplIHByb3BhZ2F0ZXMgdG8uXG4vLyBQV0EtT05MWSwgZG8gbm90IHVzZSBpbiBiYWNrb2ZmaWNlMiBkZXNrdG9wL3RhYmxldCBzY3JlZW5zLiBbMjAyNi0wNy0wMV1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXNpemUtdG91Y2ggLmlucHV0LWV4dGVybmFsLWJ0biB7XG4gIHdpZHRoOiA1NnB4O1xuICBtaW4td2lkdGg6IDU2cHg7XG4gIG1pbi1oZWlnaHQ6IDU2cHg7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgZmxleDogMTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ncmV5LTMwMCk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMCAxMnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMTIwbXMgZWFzZS1vdXQsIGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZS1vdXQ7XG59XG4vKiBLbGV1ciB2YW4gaGV0IExFQURJTkctSUNPT04gaW4gZGUgYmFzaXMgKGJlc2x1aXQgNzgsIHZlcnZvbGcgMzEuMDcuMjAyNik6IHN0b25kXG4gICBvcCB2YXIoLS1jLWdyZXktNDAwKSBlbiBoYWFsZGUgZGFhcm1lZSBkZXplbGZkZSBjb250cmFzdC1pbnZlcnNpZSBhbHMgZGUgcGxhY2Vob2xkZXIgaGFkLFxuICAgbmFtZWxpamsgZWVuIExBR0VSRSB2ZXJob3VkaW5nIGRhbiBkZSB1aXRnZXNjaGFrZWxkZSBzdGFuZCAodmFyKC0tYy10ZXh0LWRpc2FibGVkKSksIHdhYXJkb29yXG4gICBlZW4gZ2V3b29uIHZlbGQgbGVlc3QgYWxzIGVlbiB2ZWxkIGRhdCBqZSBuaWV0IG1hZyBnZWJydWlrZW4uIEdlbWV0ZW4gbWV0IGRlXG4gICBXQ0FHLWZvcm11bGUsIG5pZXQgb3AgaGV0IG9vZzpcbiAgICAgb3VkICB2YXIoLS1jLWdyZXktNDAwKSAgb3Agd2l0ICNmZmZmZmYgICAgICAgICAgICAgIC0+IDIuMzM6MVxuICAgICBvdWQgIHZhcigtLWMtZ3JleS00MDApICBvcCAtLWMtZ3JleS0xMDAgdmFyKC0tYy1ncmV5LTEwMCkgICAgIC0+IDEuOTE6MVxuICAgICBvdWQgIHZhcigtLWMtZ3JleS00MDApICBvcCBoZXQgdWl0Z2VzY2hha2VsZGUgdmxhayB2YXIoLS1jLWdyZXktNTApIC0+IDIuMDY6MVxuICAgICBkaXNhYmxlZC1pY29vbiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpIG9wIHZhcigtLWMtZ3JleS01MCkgKHppam4gZWlnZW4gdmxhaykgLT4gMi45MDoxXG4gICAgIG5pZXV3IHZhcigtLWMtdGV4dC1tdXRlZCkgdmFyKC0tYy10ZXh0LW11dGVkKSBvcCB3aXQgIC0+IDQuNzk6MVxuICAgICBuaWV1dyBvcCB2YXIoLS1jLWdyZXktMTAwKSAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gMy45NDoxXG4gICAgIG5pZXV3IG9wIHZhcigtLWMtZ3JleS01MCkgICAgICAgICAgICAgICAgICAgICAgICAgIC0+IDQuMjQ6MVxuICAgRGUgcmFuZ29yZGUgaXMgZGFhcm1lZSB3ZWVyIGdld29vbi1kb25rZXJkZXItZGFuLWRpc2FibGVkLiBIZXQgZGlzYWJsZWQtaWNvb25cbiAgIHplbGYgYmxpamZ0IHZhcigtLWMtdGV4dC1kaXNhYmxlZCk6IGRhdCB6YXQgbmlldCBmb3V0LCBoZXQgd2VyZCBpbmdlaGFhbGQgZG9vciBlZW4gYmFzaXMgZGllIHRlXG4gICBsaWNodCBzdG9uZC4gRGUgZ3JpanplIHZhcmlhbnQgaGFkIGRpdCBpY29vbiBhbCBlZXJkZXIgb3AgLS1jLXRleHQtbXV0ZWQgZ2V6ZXQ7XG4gICBkaWUgcmVnZWwgYmxpamZ0IHN0YWFuIGFscyB6ZWxmc3RhbmRpZ2UgZ2FyYW50aWUgdm9vciBkaWUgdmFyaWFudC5cbiAgIE1ldCBmYWxsYmFjayB2YXIoLS1jLXRleHQtbXV0ZWQpIGVyaW4sIHdhbnQgYGNvbG9yYCB6b25kZXIgZmFsbGJhY2sgdmFsdCBiaWogZWVuIG5pZXRcbiAgIHJlc29sdmVuZGUgdmFyIHRlcnVnIG9wIGVydmVuLCBlbiBkYXQgaXMgaGllciBkZSBiaWpuYS16d2FydGUgdmVsZHRla3N0LlxuICAgRGFyayB0aGVtZSwgZ2xhc3MgZW4gZGFyay1wdXJwbGUgemlqbiBuaWV0IGdlcmFha3Q6IGRpZSBoZWJiZW4gZWxrIGh1biBlaWdlblxuICAgcmVnZWwgdm9vciBkaXQgaWNvb24sIHZlcmRlcm9wIGluIGRpdCBiZXN0YW5kLiAqL1xuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC1sZWFkaW5nLWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLyogTGVhZGluZyBhdmF0YXIgKGRyb3Bkb3duIHRyaWdnZXIgc2hvd2luZyB0aGUgc2VsZWN0ZWQgdXNlcidzIHBob3RvKS4gU2l0cyBpblxuICAgdGhlIHNhbWUgc2xvdCBhcyB0aGUgbGVhZGluZyBpY29uOyBzbGlnaHRseSB0aWdodGVyIHJpZ2h0IG1hcmdpbiBzbyB0aGUgdmFsdWVcbiAgIHRleHQgaHVncyBpdC4gW0tpbSAyMDI2LTA3LTIwXSAqL1xuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC1sZWFkaW5nLWF2YXRhciB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LXNocmluazogMDtcbiAgbWFyZ2luLWxlZnQ6IC0ycHg7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQgLmlucHV0LWxlYWRpbmctYnRuIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1hcmdpbi1sZWZ0OiAtNHB4O1xufVxuLy8gZmlsdGVyLWxhYmVsIGNoaXAgKHNlYXJjaCB0eXBlKTogYSBwbGFpbiBxZG5hcHJvLWJ1dHRvbiB0eXBlPVwic2Vjb25kYXJ5LXB1cnBsZVwiXG4vLyBzaXplPVwic21hbGxcIiwgdXNlZCBhcy1pcyB3aGVuIGBmaWx0ZXItbGFiZWxgIGlzIHNldCwgaW5zdGVhZCBvZiB0aGUgaWNvbi1vbmx5XG4vLyBxZG5hcHJvLWljb24tYnRuIHRoYXQgcmVuZGVycyB3aGVuIGl0IGlzIGFic2VudCAoc2VlIHFkbmEtaW5wdXQuanMpLlxuLy8gSXQgY2FycmllcyBOTyBzdHlsaW5nIG9mIGl0cyBvd24gaGVyZSBvbiBwdXJwb3NlLiBUaGVyZSB1c2VkIHRvIGJlIGEgc2luZ2xlXG4vLyBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaSkgbnVkZ2Ugb24gLmlucHV0LWZpbHRlci1sYWJlbC1idG47IEtpbSByZWplY3RlZCBpdFxuLy8gb24gc2lnaHQgKDMwLjA3LjIwMjYsIFwiaGV0IGZvbnQgaXMgdmVlbCB0ZSBkaWtcIikgYW5kIHRoZSBjaGlwIG5vdyBzaW1wbHkgdGFrZXNcbi8vIHFkbmFwcm8tYnV0dG9uJ3Mgb3duIHdlaWdodC4gRG8gbm90IHJlaW50cm9kdWNlIGEgbG9jYWwgb3ZlcnJpZGU6IGlmIHRoZSBjaGlwXG4vLyBldmVyIG5lZWRzIGEgZGlmZmVyZW50IHdlaWdodCwgdGhhdCBpcyBhIHZhcmlhbnQgb24gcWRuYXByby1idXR0b24gaXRzZWxmLlxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC1wcmV0YWIsXG4ucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQgLmlucHV0LXBvc3R0YWIge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDAgMTJweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC1wcmV0YWIgcWRuYXByby1pY29uLFxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC1wb3N0dGFiIHFkbmFwcm8taWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkKTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQgLmlucHV0LXByZXRhYiAuaW5wdXQtcHJldGFiLXRleHQsXG4ucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQgLmlucHV0LXByZXRhYiAuaW5wdXQtcG9zdHRhYi10ZXh0LFxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC1wb3N0dGFiIC5pbnB1dC1wcmV0YWItdGV4dCxcbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZCAuaW5wdXQtcG9zdHRhYiAuaW5wdXQtcG9zdHRhYi10ZXh0IHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZCAuaW5wdXQtcHJldGFiIHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tYy1ncmV5LTMwMCk7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQgLmlucHV0LXBvc3R0YWIge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0zMDApO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC1maWVsZC1pbm5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbiAgcGFkZGluZzogMCAxMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC1maWVsZC1pbm5lciAuaW5wdXQtbmF0aXZlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQgLmlucHV0LW5hdGl2ZSB7XG4gIGZsZXg6IDE7XG4gIGJvcmRlcjogMDtcbiAgb3V0bGluZTogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktOTUwKTtcbiAgcGFkZGluZzogMDtcbiAgbWluLXdpZHRoOiAwO1xufVxuLyogUGxhY2Vob2xkZXIta2xldXIgdmFuIGRlIEJBU0lTIChiZXNsdWl0IDc4LCBrbHVzIDRiLCBLaW0gMzEuMDcuMjAyNik6IHN0b25kIG9wXG4gICB2YXIoLS1jLWdyZXktNDAwKSBlbiBoYWFsZGUgZGFhcm1lZSBFRU4gTEFHRVJFIGNvbnRyYXN0dmVyaG91ZGluZyBkYW4gZGUgdWl0Z2VzY2hha2VsZGVcbiAgIHN0YW5kICh2YXIoLS1jLXRleHQtZGlzYWJsZWQpKSwgd2FhcmRvb3IgZWVuIGxlZWcgdmVsZCBsZWVrIGFsc29mIGplIGhldCBuaWV0IG1vY2h0IGdlYnJ1aWtlbi5cbiAgIEdlbWV0ZW4gbWV0IGRlIFdDQUctZm9ybXVsZTpcbiAgICAgb3VkZSBiYXNpcy1wbGFjZWhvbGRlciAgdmFyKC0tYy1ncmV5LTQwMCkgb3Agd2l0ICAgICAgIC0+IDIuMzM6MVxuICAgICBvdWRlIGJhc2lzLXBsYWNlaG9sZGVyICB2YXIoLS1jLWdyZXktNDAwKSBvcCB2YXIoLS1jLWdyZXktMTAwKSAgIC0+IDEuOTE6MVxuICAgICBkaXNhYmxlZC1wbGFjZWhvbGRlciAgICB2YXIoLS1jLXRleHQtZGlzYWJsZWQpIG9wIHZhcigtLWMtZ3JleS0xMDApICAgLT4gMi43MDoxXG4gICB2YXIoLS1jLXRleHQtbXV0ZWQpIGlzIGRlemVsZmRlIHRva2VuIGRpZSBkZSBncmlqemUgdmFyaWFudCBoaWVyb25kZXIgYWxcbiAgIGdlYnJ1aWt0ICh6aWUgZGllIHRvZWxpY2h0aW5nIGJpaiAuaW5wdXQtZ3JleSB2ZXJkZXJvcCBpbiBkaXQgYmVzdGFuZCk6IG9wIHdpdFxuICAgZ2VlZnQgZGF0IDQuNzk6MSwgb3AgdmFyKC0tYy1ncmV5LTEwMCkgMy45NDoxLiBCZWlkZSBydWltIGJvdmVuIGRlIGRpc2FibGVkLXN0YW5kLCBkdXMgZGVcbiAgIHJhbmdvcmRlIGlzIHdlZXIgZ2V3b29uLWRvbmtlcmRlci1kYW4tZGlzYWJsZWQuIERlIGRpc2FibGVkLXBsYWNlaG9sZGVyIHplbGYgaXNcbiAgIG5pZXQgYWFuZ2VwYXN0OiBkaWUgemF0IG5pZXQgZm91dCwgaGlqIHdlcmQgYWxsZWVuIGluZ2VoYWFsZCBkb29yIGVlbiBiYXNpcyBkaWVcbiAgIHRlIGxpY2h0IHN0b25kLiAqL1xuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC1uYXRpdmU6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQgLmlucHV0LW5hdGl2ZTpkaXNhYmxlZCB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC10cmFpbGluZyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQgLmlucHV0LXRyYWlsaW5nIC5pbnB1dC1zdWZmaXgtdGV4dCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHBhZGRpbmctcmlnaHQ6IDJweDtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZCAuaW5wdXQtdHJhaWxpbmcgLmlucHV0LXN0YXRlLWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZCAuaW5wdXQtdHJhaWxpbmcgLmlucHV0LXN0YXRlLXN1Y2Nlc3Mge1xuICBjb2xvcjogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCk7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQgLmlucHV0LXRyYWlsaW5nIC5pbnB1dC1zdGF0ZS1lcnJvciB7XG4gIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCk7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQgLmlucHV0LXRyYWlsaW5nIC5pbnB1dC1zdGF0ZS13YXJuaW5nIHtcbiAgY29sb3I6IHZhcigtLWMtd2Fybi15ZWxsb3ctNjAwKTtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZCAuaW5wdXQtdHJhaWxpbmcgLmlucHV0LXRyYWlsaW5nLWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS00MDApO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC10cmFpbGluZyAuaW5wdXQtY2hldnJvbiB7XG4gIG1hcmdpbi1yaWdodDogLTRweDtcbn1cbi8vIG1pYy1idG4gLyBub3ZhLWJ0bjogcWRuYXByby1idXR0b24gdHlwZT1cInN1YnRsZVwiIGljb24tb25seSwgYWx3YXlzIGF0IHRoZVxuLy8gZW5kIG9mIC5pbnB1dC10cmFpbGluZyAobWljIGZpcnN0LCBub3ZhIGFmdGVyKS4gZmxleC1zaHJpbmsgZ3VhcmRzIHRoZW0gdGhlXG4vLyBzYW1lIHdheSB0aGUgb3RoZXIgdHJhaWxpbmcgY29udHJvbHMgYXJlIGd1YXJkZWQgYWdhaW5zdCBhIG5hcnJvdyBmaWVsZC5cbi8vIGFjdGlvbi1idG4gaXMgdGhlIGdlbmVyaWMgb25lIChhbnkgaWNvbiwgYW55IHR5cGUsIDE2LjA4LjIwMjYpIGFuZCBzaXRzIGFmdGVyXG4vLyBtaWMvbm92YSBmb3IgdGhlIHNhbWUgcmVhc29uIHRoZXkgc2l0IGxhc3Q6IHRoZSBmaWVsZCdzIG93biBjb250cm9scyAoY2xlYXIteCxcbi8vIHN0YXRlIGljb24pIGtlZXAgdGhlaXIgcGxhY2UsIHRoZSBob3N0J3MgYnV0dG9uIGxhbmRzIGF0IHRoZSBlZGdlLlxuLy8gYWN0aW9uLWJ0bi0yIGlzIGEgU0VDT05EIGdlbmVyaWMgc2xvdCAoMTkuMDguMjAyNiwgUHVsc2UgY29tcG9zZSBiYXIgbmVlZHNcbi8vIHN0aWNrZXIgKyBHSUYgYXQgb25jZSkgcmVuZGVyZWQgTEVGVCBvZiBhY3Rpb24tYnRuIOKAlCBzYW1lIHNpemUvc2hhcGUsIHNhbWVcbi8vIGZsZXgtc2hyaW5rIGd1YXJkLlxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC10cmFpbGluZyAuaW5wdXQtbWljLWJ0bixcbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZCAuaW5wdXQtdHJhaWxpbmcgLmlucHV0LW5vdmEtYnRuLFxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC10cmFpbGluZyAuaW5wdXQtYWN0aW9uLWJ0bixcbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZCAuaW5wdXQtdHJhaWxpbmcgLmlucHV0LWFjdGlvbi1idG4tMiB7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtc2l6ZS1iaWcgLmlucHV0LWZpZWxkIHtcbiAgbWluLWhlaWdodDogNTJweDtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXNpemUtc21hbGwgLmlucHV0LWZpZWxkIHtcbiAgbWluLWhlaWdodDogNDBweDtcbn1cbi8vIFRpZ2h0ZXIgaG9yaXpvbnRhbCBwYWRkaW5nICsgZ2FwIHRoYW4gdGhlIG90aGVyIHNpemVzOiBhdCAzMnB4IHRoZSBkZWZhdWx0XG4vLyAxMi84IGxlYXZlcyB0b28gbGl0dGxlIHJvb20gZm9yIHRoZSB2YWx1ZSBiZXR3ZWVuIGEgbGVhZGluZyBpY29uIGFuZCBhXG4vLyBjbGVhci14LiBbS2ltIDIwMjYtMDgtMDddXG4ucWRuYXByby1pbnB1dC5pbnB1dC1zaXplLXRpbnkgLmlucHV0LWZpZWxkIHtcbiAgbWluLWhlaWdodDogMzJweDtcbiAgcGFkZGluZzogMCAxMHB4O1xuICBnYXA6IDZweDtcbn1cbi8vIFBXQS1PTkxZLCBkbyBub3QgdXNlIGluIGJhY2tvZmZpY2UyIGRlc2t0b3AvdGFibGV0IHNjcmVlbnMuIFsyMDI2LTA3LTAxXVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtc2l6ZS10b3VjaCAuaW5wdXQtZmllbGQge1xuICBtaW4taGVpZ2h0OiA1NnB4O1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1kZWZpbmVkLWZpZWxkIC5pbnB1dC1maWVsZCB7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGdhcDogMDtcbn1cbi8qIFtLaW0gMjAyNi0wNS0wMV0gVHJhaWxpbmcgcG9zaXRpb25lZCBhYnNvbHV0ZSBzbyB0aGUgdGV4dGFyZWEgZmlsbHMgZnVsbFxuICAgd2lkdGgg4oCUIG5hdGl2ZSBzY3JvbGxiYXIgbGFuZHMgZmx1c2ggb24gdGhlIHJpZ2h0IGJvcmRlci4gQ2xlYXIteCBmbG9hdHNcbiAgIG92ZXIgdGhlIHRvcC1yaWdodCBjb3JuZXIganVzdCBsZWZ0IG9mIHRoZSBzY3JvbGxiYXIuICovXG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLWV4cGFuZGluZyAuaW5wdXQtZmllbGQge1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtZXhwYW5kaW5nIC5pbnB1dC1maWVsZCAuaW5wdXQtbGVhZGluZy1pY29uIHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgbWFyZ2luLXRvcDogMTZweDtcbiAgbWFyZ2luLWxlZnQ6IDEycHg7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLWV4cGFuZGluZyAuaW5wdXQtZmllbGQgLmlucHV0LXRyYWlsaW5nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDhweDtcbiAgcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbjogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHotaW5kZXg6IDE7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLWV4cGFuZGluZyAuaW5wdXQtZmllbGQgdGV4dGFyZWEuaW5wdXQtbmF0aXZlIHtcbiAgcmVzaXplOiBub25lO1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBtaW4taGVpZ2h0OiA1MnB4O1xuICBwYWRkaW5nOiAxNHB4IDUycHggMTRweCAxMnB4O1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1leHBhbmRpbmcuaW5wdXQtc2l6ZS1zbWFsbCAuaW5wdXQtZmllbGQgLmlucHV0LWxlYWRpbmctaWNvbiB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLWV4cGFuZGluZy5pbnB1dC1zaXplLXNtYWxsIC5pbnB1dC1maWVsZCAuaW5wdXQtdHJhaWxpbmcge1xuICB0b3A6IDRweDtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtZXhwYW5kaW5nLmlucHV0LXNpemUtc21hbGwgLmlucHV0LWZpZWxkIHRleHRhcmVhLmlucHV0LW5hdGl2ZSB7XG4gIG1pbi1oZWlnaHQ6IDQwcHg7XG4gIHBhZGRpbmc6IDhweCA1MnB4IDhweCAxMnB4O1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1leHBhbmRpbmcuaW5wdXQtc2l6ZS10aW55IC5pbnB1dC1maWVsZCAuaW5wdXQtbGVhZGluZy1pY29uIHtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtZXhwYW5kaW5nLmlucHV0LXNpemUtdGlueSAuaW5wdXQtZmllbGQgLmlucHV0LXRyYWlsaW5nIHtcbiAgdG9wOiA0cHg7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLWV4cGFuZGluZy5pbnB1dC1zaXplLXRpbnkgLmlucHV0LWZpZWxkIHRleHRhcmVhLmlucHV0LW5hdGl2ZSB7XG4gIG1pbi1oZWlnaHQ6IDMycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nOiA2cHggNDRweCA2cHggMTBweDtcbn1cblxuLyogRGUgYWN0aW9uLWtub3AgaW4gZWVuIEVYUEFORElORyB2ZWxkIGhvb3J0IE9OREVSQUFOLCBuaWV0IGJvdmVuYWFuLlxuICAgRWVuIGV4cGFuZGluZyB2ZWxkIHBpbnQgemlqbiB0cmFpbGluZy16b25lIGJld3VzdCB0ZWdlbiBkZSByZWNodGVyQk9WRU5ob2VrOlxuICAgYmlqIGVlbiB2ZWxkIHZhbiB2aWVyIHJlZ2VscyBtb2V0IGhldCB3aXMta3J1aXNqZSBib3ZlbmluIGJsaWp2ZW4gc3RhYW4uIFZvb3JcbiAgIGVlbiBhY3Rpb24ta25vcCBrbG9wdCBwcmVjaWVzIGhldCBvbWdla2VlcmRlIOKAlCBkYXQgaXMgZGUga25vcCBiaWogZGUgcmVnZWxcbiAgIHdhYXIgamUgb3AgdHlwdCAoZWVuIGNoYXQtaW52b2VyYmFsaywgd2FhcnZvb3IgYGFjdGlvbi1idG5gIGdlbWFha3QgaXMpLiBCaWpcbiAgIMOpw6luIHJlZ2VsIHZhbHQgXCJvbmRlcmFhblwiIHNhbWVuIG1ldCBcImdlY2VudHJlZXJkXCIsIGVuIGdyb2VpdCBoZXQgdmVsZCB1aXQsXG4gICBkYW4gemFrdCBkZSBrbm9wIG1lZS5cbiAgIERlemUgcmVnZWwgc3RhYXQgbWV0IE9QWkVUIG5hIGRlIHNpemUtdmFyaWFudGVuIGhpZXJib3ZlbjogaGlqIGhlZWZ0IGV2ZW52ZWVsXG4gICBrbGFzc2VuIGFscyBkaWUgKHZpamYpLCBkdXMgYWxsZWVuIGRlIHZvbGdvcmRlIGluIGRpdCBiZXN0YW5kIGJlc2xpc3QuIEVlcmRlclxuICAgc3RvbmQgZGl0IGFscyBsb3NzZSByZWdlbCBpbiBkZSBQV0EtQ1NTIGVuIGRhbiBpcyBoZXQgZWVuIHNwZWNpZmljaXRlaXRzZ2V2ZWNodFxuICAgbWV0IGVlbiBjb21wb25lbnQgZGF0IGplIG5pZXQgemlldCBhYW5rb21lbiDigJQgaGV0IGdpbmcgZGFhciB0d2VlIGtlZXIgbWlzXG4gICB2b29yZGF0IGhldCBoaWVyIHRlcmVjaHRrd2FtLiBbS2ltIDE2LjA4LjIwMjZdICovXG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLWV4cGFuZGluZy5pbnB1dC1oYXMtYWN0aW9uIC5pbnB1dC1maWVsZCAuaW5wdXQtdHJhaWxpbmcge1xuICAvKiBNSURERU4sIGVuIHpvbmRlciB0ZSByZWtlbmVuLiBIaWVyIHN0b25kIGVlcnN0IGBib3R0b206IDhweGAsIGVuIGRhYXJ2b29yXG4gICAgIGBib3R0b206IDEwcHhgLCBlbiBkYWFydm9vciBlZW4gcmVnZWwgaW4gZGUgYXBwLUNTUzogZWxrZSB2YXJpYW50IGhpbmcgYWZcbiAgICAgdmFuIGRlIGhvb2d0ZSB2YW4gZGUga25vcCwgZGUgaG9vZ3RlIHZhbiBoZXQgdmVsZCBlbiBkZSBsYWFkdm9sZ29yZGUgdmFuXG4gICAgIHR3ZWUgQ1NTLWJlc3RhbmRlbiwgZW4gZWxrZSB2YXJpYW50IHdhcyBlcmdlbnMgYW5kZXJzIHdlZXIgZWVuIHBhYXIgcGl4ZWxzXG4gICAgIHNjaGVlZi4gVmllciBwb2dpbmdlbiwgdmllciBrZWVyIGJpam5hIGdvZWQuIERpdCBjZW50cmVlcnQgZGUgdHJhaWxpbmctem9uZVxuICAgICBvbmdlYWNodCBob2UgaG9vZyBoaWogaXMgZW4gb25nZWFjaHQgZGUgbWFhdCB2YW4gaGV0IHZlbGQuICovXG4gIHRvcDogNTAlO1xuICBib3R0b206IGF1dG87XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgLyogRGljaHRlciBuYWFyIGRlIGhvZWsgZGFuIGRlIHN0YW5kYWFyZCAyMHB4IHZhbiBlZW4gZXhwYW5kaW5nIHZlbGQuIERpZSAyMHB4XG4gICAgIGhvdWR0IGRhYXIgcnVpbXRlIHZyaWogdm9vciBkZSBzeXN0ZWVtLXNjcm9sbGJhbGsgbmFhc3QgaGV0IHdpcy1rcnVpc2plOyBlZW5cbiAgICAgdmVsZCBtZXQgZWVuIGFjdGlvbi1rbm9wIGhlZWZ0IGRpZSBydWltdGUgbmlldCBub2RpZyAoYG5vLWNsZWFyYCBob29ydCBiaWpcbiAgICAgZGl0IHBhdHJvb24pIGVuIGRlIGtub3AgaG9vcnQgZGFuIGdld29vbiBpbiBkZSBob2VrLiBbS2ltIDE2LjA4LjIwMjZdICovXG4gIHJpZ2h0OiA4cHg7XG59XG4vKiBHZWVuIGFwYXJ0ZSBtYWF0LXJlZ2VsIG1lZXIgbm9kaWc6IGRlIGNlbnRyZXJpbmcgaGllcmJvdmVuIGtsb3B0IGJpaiBlbGtlXG4gICBtYWF0LiAqL1xuLyogbm8tY2xlYXI6IG5vIHRyYWlsaW5nIGNsZWFyLXgsIHNvIHRoZSB0ZXh0YXJlYSByZWNsYWltcyB0aGUgcmVzZXJ2ZWQgcmlnaHRcbiAgIHNwYWNlIGFuZCB1c2VzIHRoZSBmdWxsIHdpZHRoLiBbS2ltIDIwMjYtMDYtMTZdICovXG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLWV4cGFuZGluZ1tuby1jbGVhcl0gLmlucHV0LWZpZWxkIHRleHRhcmVhLmlucHV0LW5hdGl2ZSB7XG4gIHBhZGRpbmctcmlnaHQ6IDEycHg7XG59XG4ucWRuYXByby1pbnB1dDpub3QoLmlucHV0LWZpbGxlZCkgW2RhdGEtcm9sZT1jbGVhcl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1udW1iZXIgLmlucHV0LW51bWJlci1zdGVwcGVycyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDA7XG4gIG1hcmdpbi1yaWdodDogLTRweDtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtbnVtYmVyIC5pbnB1dC1udW1iZXItc3RlcHBlcnMgPiBxZG5hcHJvLWljb24tYnRuIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTRweDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1udW1iZXIgLmlucHV0LW51bWJlci1zdGVwcGVycyA+IHFkbmFwcm8taWNvbi1idG4gcWRuYXByby1pY29uIHtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtYXV0b2NvbXBsZXRlIC5pbnB1dC1maWVsZC1yb3csIC5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtcGhvbmUgLmlucHV0LWZpZWxkLXJvdyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1hYy1kcm9wZG93biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMCUgKyA0cHgpO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgbWF4LWhlaWdodDogMzIwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0zMDApO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA4KSwgMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KTtcbiAgcGFkZGluZzogOHB4O1xuICB6LWluZGV4OiAxMDAwO1xufVxuLmlucHV0LWV4dGVybmFsLWJ0biArIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1hYy1kcm9wZG93biB7XG4gIHJpZ2h0OiA2MHB4O1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWFjLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IDQwcHg7XG4gIHBhZGRpbmc6IDAgMTJweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LWZhbWlseTogaW50ZXIsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWFjLWl0ZW0gKyAucWRuYXByby1pbnB1dCAuaW5wdXQtYWMtaXRlbSB7XG4gIG1hcmdpbi10b3A6IDRweDtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1hYy1pdGVtIHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtYWMtaXRlbTpob3ZlciwgLnFkbmFwcm8taW5wdXQgLmlucHV0LWFjLWl0ZW0uaW5wdXQtYWMtaXRlbS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWFjLWl0ZW0uaW5wdXQtYWMtaXRlbS1kaXNhYmxlZCB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtYWMtZW1wdHkge1xuICBwYWRkaW5nOiAxMnB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWFjLWxvYWRpbmcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDEycHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNjAwKTtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1hYy1zcGlubmVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTRweDtcbiAgaGVpZ2h0OiAxNHB4O1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jLWdyZXktMzAwKTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBhbmltYXRpb246IHFkbmFwcm8tYWMtc3BpbiAwLjdzIGxpbmVhciBpbmZpbml0ZTtcbn1cbkBrZXlmcmFtZXMgcWRuYXByby1hYy1zcGluIHtcbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1hYy1lcnJvciB7XG4gIHBhZGRpbmc6IDEycHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LWFjLW9wZW4gLmlucHV0LWZpZWxkIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS00MDApO1xuICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSg3MCwgODIsIDI0MywgMC40KTtcbn1cbi8qIEtsZXVyIHZhbiBkZSBDVVJSRU5DWS1QUkVGSVggKGhldCBldXJvdGVrZW4pIGluIGRlIGJhc2lzLCBkdXMgYmlqIGVlbiBsZWVnIG9mIG5vZ1xuICAgb252ZXJhbmRlcmQgdmVsZCAoYmVzbHVpdCA3OCwgdmVydm9sZyAzMS4wNy4yMDI2KS4gWmVsZmRlIGNvbnRyYXN0LWludmVyc2llIGFscyBkZVxuICAgcGxhY2Vob2xkZXIgZW4gaGV0IGxlYWRpbmctaWNvb246IHN0b25kIG9wIHZhcigtLWMtZ3JleS00MDApIGVuIGRhdCBpcyBMSUNIVEVSIGRhbiBkZVxuICAgdWl0Z2VzY2hha2VsZGUgc3RhbmQgdmFyKC0tYy10ZXh0LWRpc2FibGVkKSwgd2FhcmRvb3IgZWVuIGdld29vbiBiZWRyYWd2ZWxkIGxlZXN0IGFscyBlZW4gdmVsZCBkYXRcbiAgIGplIG5pZXQgbWFnIGdlYnJ1aWtlbi4gR2VtZXRlbiBtZXQgZGUgV0NBRy1mb3JtdWxlOlxuICAgICBvdWQgIHZhcigtLWMtZ3JleS00MDApICBvcCB3aXQgI2ZmZmZmZiAgICAgICAgICAgICAgLT4gMi4zMzoxXG4gICAgIG91ZCAgdmFyKC0tYy1ncmV5LTQwMCkgIG9wIC0tYy1ncmV5LTEwMCB2YXIoLS1jLWdyZXktMTAwKSAgICAgLT4gMS45MToxXG4gICAgIG91ZCAgdmFyKC0tYy1ncmV5LTQwMCkgIG9wIGhldCB1aXRnZXNjaGFrZWxkZSB2bGFrIHZhcigtLWMtZ3JleS01MCkgLT4gMi4wNjoxXG4gICAgIGRpc2FibGVkLXByZWZpeCB2YXIoLS1jLXRleHQtZGlzYWJsZWQpIG9wIHZhcigtLWMtZ3JleS01MCkgKHppam4gZWlnZW4gdmxhaykgLT4gMi45MDoxXG4gICAgIG5pZXV3IHZhcigtLWMtdGV4dC1tdXRlZCkgdmFyKC0tYy10ZXh0LW11dGVkKSBvcCB3aXQgIC0+IDQuNzk6MVxuICAgICBuaWV1dyBvcCB2YXIoLS1jLWdyZXktMTAwKSAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gMy45NDoxXG4gICAgIG5pZXV3IG9wIHZhcigtLWMtZ3JleS01MCkgICAgICAgICAgICAgICAgICAgICAgICAgIC0+IDQuMjQ6MVxuICAgRGUgcHJlZml4IHZvbGdkZSBiZXd1c3QgZGUgcGxhY2Vob2xkZXIta2xldXIgKGhldCBpcyBkZXplbGZkZSBcIm5vZyBuaWV0cyBpbmdldnVsZFwiXG4gICBzdGFuZCksIGR1cyBoaWogbW9lc3QgbWVlIG1ldCBkZSBwbGFjZWhvbGRlci1maXguIERlIHR3ZWUgcmVnZWxzIGhpZXJvbmRlciBibGlqdmVuXG4gICBvbmdlbW9laWQ6IGdldnVsZCBnYWF0IG5hYXIgYmlqbmEtendhcnQsIHVpdGdlc2NoYWtlbGQgYmxpamZ0IHZhcigtLWMtdGV4dC1kaXNhYmxlZCkuXG4gICBGYWxsYmFjayB2YXIoLS1jLXRleHQtbXV0ZWQpIG9tIGRlemVsZmRlIHJlZGVuIGFscyBiaWogaGV0IGxlYWRpbmctaWNvb24gaGllcmJvdmVuLiAqL1xuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1jdXJyZW5jeSAuaW5wdXQtY3VycmVuY3ktcHJlZml4IHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtY3VycmVuY3kuaW5wdXQtZmlsbGVkIC5pbnB1dC1jdXJyZW5jeS1wcmVmaXgge1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLWN1cnJlbmN5LmlucHV0LWRpc2FibGVkIC5pbnB1dC1jdXJyZW5jeS1wcmVmaXgge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkKTtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtY3VycmVuY3kgLmlucHV0LW5hdGl2ZSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi8qID09PSBudW1iZXIgLyBjdXJyZW5jeSArLy0gc3Bpbm5lciBob3Jpem9udGFsIGxheW91dCA9PT1cbiAgIFBvcnRlZCB0byB0aGUgYnVpbGQgc291cmNlIDIwMjYtMDYtMTkgKHdhcyBvbmx5IGluIGZvci1zYW5kZXIvX2lucHV0LnNjc3MsXG4gICBzbyB0aGUgbGl2ZSBjb3VudGVyIG5ldmVyIGdvdCBpdHMgYnV0dG9uIG51ZGdlcykuIExheW91dDogWyAtIF0gdmFsdWUgWyArIF0uXG4gICBUaGUgbWludXMgYnV0dG9uIGlzIHRoZSBmaXJzdCBjaGlsZCBvZiAuaW5wdXQtZmllbGQ7IHRoZSBwbHVzIGxpdmVzIGluXG4gICAuaW5wdXQtdHJhaWxpbmcuICovXG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLW51bWJlci5pbnB1dC1udW1iZXItaG9yaXpvbnRhbCAuaW5wdXQtbmF0aXZlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtbnVtYmVyLWhvcml6b250YWwgLmlucHV0LWZpZWxkID4gcWRuYXByby1pY29uLWJ0bltkYXRhLXJvbGU9XCJzdGVwLWRvd25cIl0ge1xuICBmbGV4LXNocmluazogMDtcbiAgbWFyZ2luLWxlZnQ6IC00cHg7XG4gIG1hcmdpbi1yaWdodDogNHB4O1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtbnVtYmVyLWhvcml6b250YWwgLmlucHV0LXRyYWlsaW5nID4gcWRuYXByby1pY29uLWJ0bltkYXRhLXJvbGU9XCJzdGVwLXVwXCJdIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1hcmdpbi1yaWdodDogLTRweDtcbn1cbi8qIEN1cnJlbmN5ICsgY291bnRlcjogcGxhY2UgdGhlIG1pbnVzIGJ1dHRvbiBiZWZvcmUgdGhlIGN1cnJlbmN5IHByZWZpeCB2aWFcbiAgIGZsZXggb3JkZXIsIGdpdmluZyBbIC0gXSBbIOKCrCB2YWx1ZSBdIFsgKyBdLiBUaGUg4oKsIHN0YXlzIG5leHQgdG8gdGhlIGFtb3VudC4gKi9cbi5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtY3VycmVuY3kuaW5wdXQtbnVtYmVyLWhvcml6b250YWwgLmlucHV0LWZpZWxkID4gcWRuYXByby1pY29uLWJ0bltkYXRhLXJvbGU9XCJzdGVwLWRvd25cIl0ge1xuICBvcmRlcjogLTE7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLXBob25lIC5pbnB1dC1jb3VudHJ5LXBpY2tlciB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgcGFkZGluZzogNHB4IDEycHg7XG4gIG1hcmdpbjogMCA5cHggMCA0cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250OiBpbmhlcml0O1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTkwMCk7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1waG9uZSAuaW5wdXQtY291bnRyeS1waWNrZXI6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogLTlweDtcbiAgdG9wOiA4cHg7XG4gIGJvdHRvbTogOHB4O1xuICB3aWR0aDogMXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtcGhvbmUgLmlucHV0LWNvdW50cnktcGlja2VyOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1waG9uZSAuaW5wdXQtY291bnRyeS1waWNrZXJbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgb3BhY2l0eTogMC42O1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1waG9uZSAuaW5wdXQtY291bnRyeS1waWNrZXIuaW5wdXQtY291bnRyeS1waWNrZXItc3RhdGljIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1waG9uZSAuaW5wdXQtY291bnRyeS1waWNrZXIuaW5wdXQtY291bnRyeS1waWNrZXItc3RhdGljOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLXBob25lIC5pbnB1dC1jb3VudHJ5LXBpY2tlciAuaW5wdXQtY291bnRyeS1mbGFnIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLXBob25lIC5pbnB1dC1jb3VudHJ5LXBpY2tlciAuaW5wdXQtY291bnRyeS1kaWFsIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS02MDApO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1waG9uZSAuaW5wdXQtY291bnRyeS1waWNrZXIgLmlucHV0LWNvdW50cnktY2hldiB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpO1xuICBtYXJnaW4tbGVmdDogMnB4O1xuICB3aWR0aDogMTRweDtcbiAgaGVpZ2h0OiAxNHB4O1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWNvdW50cnktZHJvcGRvd24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlICsgNHB4KTtcbiAgbGVmdDogMDtcbiAgbWluLXdpZHRoOiAyMjBweDtcbiAgbWF4LWhlaWdodDogMjgwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0zMDApO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA4KSwgMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KTtcbiAgcGFkZGluZzogOHB4O1xuICB6LWluZGV4OiAxMDAwO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWNvdW50cnktaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNDBweDtcbiAgcGFkZGluZzogMCAxMnB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udDogaW5oZXJpdDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWNvdW50cnktaXRlbSArIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1jb3VudHJ5LWl0ZW0ge1xuICBtYXJnaW4tdG9wOiA0cHg7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtY291bnRyeS1pdGVtOmhvdmVyLCAucWRuYXByby1pbnB1dCAuaW5wdXQtY291bnRyeS1pdGVtLmlucHV0LWNvdW50cnktaXRlbS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWNvdW50cnktaXRlbSAuaW5wdXQtY291bnRyeS1mbGFnIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtY291bnRyeS1pdGVtIC5pbnB1dC1jb3VudHJ5LW5hbWUge1xuICBmbGV4OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWNvdW50cnktaXRlbSAuaW5wdXQtY291bnRyeS1kaWFsIHtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS02MDApO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtbnVtYmVyLmlucHV0LW51bWJlci1yaWdodCAuaW5wdXQtbmF0aXZlIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1maWxsZWQgLmlucHV0LWZpZWxkIC5pbnB1dC1uYXRpdmUge1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1zdWNjZXNzIC5pbnB1dC1maWVsZCB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCk7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1lcnJvciAuaW5wdXQtZmllbGQge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0KTtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXdhcm5pbmcgLmlucHV0LWZpZWxkIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXdhcm4teWVsbG93LTYwMCk7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQ6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQ6Zm9jdXMtd2l0aGluIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS00MDApO1xuICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSg3MCwgODIsIDI0MywgMC40KTtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZDpmb2N1cy13aXRoaW4gLmlucHV0LW5hdGl2ZTo6cGxhY2Vob2xkZXIge1xuICBmb250LXdlaWdodDogNDAwO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtc3VjY2VzcyAuaW5wdXQtZmllbGQ6Zm9jdXMtd2l0aGluIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0KTtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMTEwLCAyMzEsIDE4MywgMC40KTtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LWVycm9yIC5pbnB1dC1maWVsZDpmb2N1cy13aXRoaW4ge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0KTtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMjQ4LCAxMTMsIDExMywgMC40KTtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXdhcm5pbmcgLmlucHV0LWZpZWxkOmZvY3VzLXdpdGhpbiB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy13YXJuLXllbGxvdy02MDApO1xuICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgyNTEsIDE5MSwgOTIsIDAuNCk7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1zZWxlY3QgLmlucHV0LWZpZWxkIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS00MDApO1xuICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSg3MCwgODIsIDI0MywgMC40KTtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXNlbGVjdC5pbnB1dC1zdWNjZXNzIC5pbnB1dC1maWVsZCB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCk7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDExMCwgMjMxLCAxODMsIDAuNCk7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1zZWxlY3QuaW5wdXQtZXJyb3IgLmlucHV0LWZpZWxkIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCk7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDI0OCwgMTEzLCAxMTMsIDAuNCk7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1zZWxlY3QuaW5wdXQtd2FybmluZyAuaW5wdXQtZmllbGQge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtd2Fybi15ZWxsb3ctNjAwKTtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMjUxLCAxOTEsIDkyLCAwLjQpO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtZGlzYWJsZWQgLmlucHV0LWZpZWxkLCAucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtZmllbGQ6aG92ZXIsIC5xZG5hcHJvLWlucHV0LmlucHV0LWRpc2FibGVkIC5pbnB1dC1maWVsZDpmb2N1cy13aXRoaW4ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyAvKiBbS2ltIDIwMjYtMDUtMDFdIG5vIG91dGVyIGJvcmRlciBmb3Igc29mdGVyIGxvb2sgKi9cbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LWRpc2FibGVkIC5pbnB1dC1maWVsZCAuaW5wdXQtbmF0aXZlLCAucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtZmllbGQ6aG92ZXIgLmlucHV0LW5hdGl2ZSwgLnFkbmFwcm8taW5wdXQuaW5wdXQtZGlzYWJsZWQgLmlucHV0LWZpZWxkOmZvY3VzLXdpdGhpbiAuaW5wdXQtbmF0aXZlIHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCk7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtZmllbGQgLmlucHV0LW5hdGl2ZTo6cGxhY2Vob2xkZXIsIC5xZG5hcHJvLWlucHV0LmlucHV0LWRpc2FibGVkIC5pbnB1dC1maWVsZDpob3ZlciAuaW5wdXQtbmF0aXZlOjpwbGFjZWhvbGRlciwgLnFkbmFwcm8taW5wdXQuaW5wdXQtZGlzYWJsZWQgLmlucHV0LWZpZWxkOmZvY3VzLXdpdGhpbiAuaW5wdXQtbmF0aXZlOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtZGlzYWJsZWQgLmlucHV0LWZpZWxkIC5pbnB1dC1sZWFkaW5nLWljb24sXG4ucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtZmllbGQgLmlucHV0LXRyYWlsaW5nLWljb24sIC5xZG5hcHJvLWlucHV0LmlucHV0LWRpc2FibGVkIC5pbnB1dC1maWVsZDpob3ZlciAuaW5wdXQtbGVhZGluZy1pY29uLFxuLnFkbmFwcm8taW5wdXQuaW5wdXQtZGlzYWJsZWQgLmlucHV0LWZpZWxkOmhvdmVyIC5pbnB1dC10cmFpbGluZy1pY29uLCAucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtZmllbGQ6Zm9jdXMtd2l0aGluIC5pbnB1dC1sZWFkaW5nLWljb24sXG4ucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtZmllbGQ6Zm9jdXMtd2l0aGluIC5pbnB1dC10cmFpbGluZy1pY29uIHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCk7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtZmllbGQgLmlucHV0LXByZXRhYixcbi5xZG5hcHJvLWlucHV0LmlucHV0LWRpc2FibGVkIC5pbnB1dC1maWVsZCAuaW5wdXQtcG9zdHRhYiwgLnFkbmFwcm8taW5wdXQuaW5wdXQtZGlzYWJsZWQgLmlucHV0LWZpZWxkOmhvdmVyIC5pbnB1dC1wcmV0YWIsXG4ucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtZmllbGQ6aG92ZXIgLmlucHV0LXBvc3R0YWIsIC5xZG5hcHJvLWlucHV0LmlucHV0LWRpc2FibGVkIC5pbnB1dC1maWVsZDpmb2N1cy13aXRoaW4gLmlucHV0LXByZXRhYixcbi5xZG5hcHJvLWlucHV0LmlucHV0LWRpc2FibGVkIC5pbnB1dC1maWVsZDpmb2N1cy13aXRoaW4gLmlucHV0LXBvc3R0YWIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWdyZXktMzAwKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCk7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtZmllbGQgLmlucHV0LXByZXRhYiBxZG5hcHJvLWljb24sXG4ucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtZmllbGQgLmlucHV0LXBvc3R0YWIgcWRuYXByby1pY29uLCAucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtZmllbGQ6aG92ZXIgLmlucHV0LXByZXRhYiBxZG5hcHJvLWljb24sXG4ucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtZmllbGQ6aG92ZXIgLmlucHV0LXBvc3R0YWIgcWRuYXByby1pY29uLCAucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtZmllbGQ6Zm9jdXMtd2l0aGluIC5pbnB1dC1wcmV0YWIgcWRuYXByby1pY29uLFxuLnFkbmFwcm8taW5wdXQuaW5wdXQtZGlzYWJsZWQgLmlucHV0LWZpZWxkOmZvY3VzLXdpdGhpbiAuaW5wdXQtcG9zdHRhYiBxZG5hcHJvLWljb24ge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkKTtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LWRpc2FibGVkIC5pbnB1dC1maWVsZCAuaW5wdXQtZmllbGQtaW5uZXIsIC5xZG5hcHJvLWlucHV0LmlucHV0LWRpc2FibGVkIC5pbnB1dC1maWVsZDpob3ZlciAuaW5wdXQtZmllbGQtaW5uZXIsIC5xZG5hcHJvLWlucHV0LmlucHV0LWRpc2FibGVkIC5pbnB1dC1maWVsZDpmb2N1cy13aXRoaW4gLmlucHV0LWZpZWxkLWlubmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1yZWFkb25seSAuaW5wdXQtZmllbGQsIC5xZG5hcHJvLWlucHV0LmlucHV0LXJlYWRvbmx5IC5pbnB1dC1maWVsZDpob3ZlciwgLnFkbmFwcm8taW5wdXQuaW5wdXQtcmVhZG9ubHkgLmlucHV0LWZpZWxkOmZvY3VzLXdpdGhpbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1yZWFkb25seSAuaW5wdXQtZmllbGQgLmlucHV0LW5hdGl2ZSwgLnFkbmFwcm8taW5wdXQuaW5wdXQtcmVhZG9ubHkgLmlucHV0LWZpZWxkOmhvdmVyIC5pbnB1dC1uYXRpdmUsIC5xZG5hcHJvLWlucHV0LmlucHV0LXJlYWRvbmx5IC5pbnB1dC1maWVsZDpmb2N1cy13aXRoaW4gLmlucHV0LW5hdGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwKTtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXJlYWRvbmx5IC5pbnB1dC1maWVsZCAuaW5wdXQtZmllbGQtaW5uZXIsIC5xZG5hcHJvLWlucHV0LmlucHV0LXJlYWRvbmx5IC5pbnB1dC1maWVsZDpob3ZlciAuaW5wdXQtZmllbGQtaW5uZXIsIC5xZG5hcHJvLWlucHV0LmlucHV0LXJlYWRvbmx5IC5pbnB1dC1maWVsZDpmb2N1cy13aXRoaW4gLmlucHV0LWZpZWxkLWlubmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1yZWFkb25seSAuaW5wdXQtZmllbGQgLmlucHV0LXByZXRhYixcbi5xZG5hcHJvLWlucHV0LmlucHV0LXJlYWRvbmx5IC5pbnB1dC1maWVsZCAuaW5wdXQtcG9zdHRhYiwgLnFkbmFwcm8taW5wdXQuaW5wdXQtcmVhZG9ubHkgLmlucHV0LWZpZWxkOmhvdmVyIC5pbnB1dC1wcmV0YWIsXG4ucWRuYXByby1pbnB1dC5pbnB1dC1yZWFkb25seSAuaW5wdXQtZmllbGQ6aG92ZXIgLmlucHV0LXBvc3R0YWIsIC5xZG5hcHJvLWlucHV0LmlucHV0LXJlYWRvbmx5IC5pbnB1dC1maWVsZDpmb2N1cy13aXRoaW4gLmlucHV0LXByZXRhYixcbi5xZG5hcHJvLWlucHV0LmlucHV0LXJlYWRvbmx5IC5pbnB1dC1maWVsZDpmb2N1cy13aXRoaW4gLmlucHV0LXBvc3R0YWIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MDApO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1yZWFkb25seSAuaW5wdXQtZmllbGQgLmlucHV0LXByZXRhYiBxZG5hcHJvLWljb24sXG4ucWRuYXByby1pbnB1dC5pbnB1dC1yZWFkb25seSAuaW5wdXQtZmllbGQgLmlucHV0LXBvc3R0YWIgcWRuYXByby1pY29uLCAucWRuYXByby1pbnB1dC5pbnB1dC1yZWFkb25seSAuaW5wdXQtZmllbGQ6aG92ZXIgLmlucHV0LXByZXRhYiBxZG5hcHJvLWljb24sXG4ucWRuYXByby1pbnB1dC5pbnB1dC1yZWFkb25seSAuaW5wdXQtZmllbGQ6aG92ZXIgLmlucHV0LXBvc3R0YWIgcWRuYXByby1pY29uLCAucWRuYXByby1pbnB1dC5pbnB1dC1yZWFkb25seSAuaW5wdXQtZmllbGQ6Zm9jdXMtd2l0aGluIC5pbnB1dC1wcmV0YWIgcWRuYXByby1pY29uLFxuLnFkbmFwcm8taW5wdXQuaW5wdXQtcmVhZG9ubHkgLmlucHV0LWZpZWxkOmZvY3VzLXdpdGhpbiAuaW5wdXQtcG9zdHRhYiBxZG5hcHJvLWljb24ge1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCk7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtbWVzc2FnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBtYXJnaW4tdG9wOiA0cHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtbWVzc2FnZSBxZG5hcHJvLWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtbWVzc2FnZS1lcnJvciB7XG4gIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCk7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtbWVzc2FnZS13YXJuaW5nIHtcbiAgY29sb3I6IHZhcigtLWMtd2Fybi15ZWxsb3ctNjAwKTtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQgLmlucHV0LWxhYmVsIHtcbiAgY29sb3I6ICNmMGYxZjI7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dCAuaW5wdXQtb3B0aW9uYWwge1xuICBjb2xvcjogI2E2YWFiMztcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1oaW50IHtcbiAgY29sb3I6ICNhNmFhYjM7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dCAuaW5wdXQtcmVxdWlyZWQge1xuICBjb2xvcjogI2Y4NzE3MTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZCB7XG4gIGJhY2tncm91bmQ6ICMwYjBiMGQ7XG4gIGJvcmRlci1jb2xvcjogIzU2NWI2Njtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1uYXRpdmUge1xuICBjb2xvcjogI2YwZjFmMjtcbn1cbi8vIEZpbGxlZC1zdGF0ZSBvdmVycmlkZSAobGluZSB+NTIwLCAuaW5wdXQtZmlsbGVkIC5pbnB1dC1maWVsZCAuaW5wdXQtbmF0aXZlKVxuLy8gaXMgNCBjbGFzc2VzIGRlZXAgKDAsNCwwKSBhbmQgb3RoZXJ3aXNlIGJlYXRzIHRoZSBwbGFpbiBkYXJrIHJ1bGUgYWJvdmVcbi8vICgwLDMsMCkgcmVnYXJkbGVzcyBvZiBzb3VyY2Ugb3JkZXIsIGZvcmNpbmcgbmVhci1ibGFjayB0ZXh0IG9udG8gdGhlXG4vLyBuZWFyLWJsYWNrIGRhcmsgLmlucHV0LWZpZWxkIGJhY2tncm91bmQg4oCUIGludmlzaWJsZS4gTWF0Y2ggaXRzIHNwZWNpZmljaXR5XG4vLyBoZXJlIHNvIGRhcmsgbW9kZSB3aW5zIG9uY2UgYSBmaWVsZCBhY3R1YWxseSBoYXMgYSB2YWx1ZS4gWzA3LjA3LjIwMjZdXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dC5pbnB1dC1maWxsZWQgLmlucHV0LWZpZWxkIC5pbnB1dC1uYXRpdmUge1xuICBjb2xvcjogI2YwZjFmMjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1uYXRpdmU6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICM4OThlOTk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dCAuaW5wdXQtbGVhZGluZy1pY29uLFxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQgLmlucHV0LXRyYWlsaW5nLWljb24ge1xuICBjb2xvcjogIzg5OGU5OTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0LmlucHV0LWZpbGxlZCAuaW5wdXQtbGVhZGluZy1pY29uLCBbZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dC5pbnB1dC1maWxsZWQgLmlucHV0LXRyYWlsaW5nLWljb24ge1xuICBjb2xvcjogI2UxZTNlNjtcbn1cbi8qIEN1cnJlbmN5LXByZWZpeCBpbiBkZSBkb25rZXJlIHN0YW5kOiBFWFBMSUNJRVQgb3AgZGUga2xldXIgZGllIGhpaiBoaWVyIHZhbmRhYWcgb29rXG4gICBhbCBoZWVmdCwgem9kYXQgZGUgYmFzaXMtZml4IGhpZXJib3ZlbiAodmFyKC0tYy1ncmV5LTQwMCkgLT4gdmFyKC0tYy10ZXh0LW11dGVkKSkgaGV0IGRvbmtlcmVcbiAgIHRoZW1hIG5pZXQgbWVlc2xlZXB0LiBEaXQgaXMgZ2VlbiBuaWV1d2Uga2V1emU6IGluIGhldCBkb25rZXJlIHRoZW1hIHJlc29sdmVlcnRcbiAgIC0tYy10ZXh0LW11dGVkIG5hYXIgLS1jLWdyZXktNDAwIGVuIGRhdCBJUyB2YXIoLS1jLWdyZXktNDAwKSwgZHVzIGRlIGRvbmtlcmUgc3RhbmQgdmVyYW5kZXJ0XG4gICBuaWV0LiBEZSByZWdlbCBzdGFhdCBlciBvbWRhdCBkZSBiYXNpcyBudSBlZW4gdG9rZW4gZ2VicnVpa3QgZGF0IHBlciB0aGVtYSBpZXRzXG4gICBhbmRlcnMgYmV0ZWtlbnQsIGVuIG9tZGF0IGRlIHByZXZpZXcgZGUgdG9rZW5zIHplbGYgbmlldCBkZWZpbmllZXJ0IChkYWFyIHpvdSBkZVxuICAgZmFsbGJhY2sgdmFyKC0tYy10ZXh0LW11dGVkKSBhbmRlcnMgb3AgZGUgYmlqbmEtendhcnRlIGRvbmtlcmUgdnVsbGluZyBiZWxhbmRlbikuXG4gICBBbmRlcnMgZGFuIGRlIHBsYWNlaG9sZGVyIGVuIGhldCBsZWFkaW5nLWljb29uIGhhZCBkZSBwcmVmaXggbm9nIGdlZW4gZWlnZW4gZG9ua2VyZVxuICAgcmVnZWwgdm9vciBkZSBsZWdlIHN0YW5kLCBhbGxlZW4gdm9vciBnZXZ1bGQvdWl0Z2VzY2hha2VsZC9hbGxlZW4tbGV6ZW4uICovXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLWN1cnJlbmN5IC5pbnB1dC1jdXJyZW5jeS1wcmVmaXgge1xuICBjb2xvcjogI2E2YWFiMztcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogIzY2NmRhZTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0LmlucHV0LWZvY3VzIC5pbnB1dC1maWVsZCxcbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZDpmb2N1cy13aXRoaW4ge1xuICBib3JkZXItY29sb3I6ICM1MzViYTQ7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjQpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQuaW5wdXQtc2VsZWN0IC5pbnB1dC1maWVsZCB7XG4gIGJvcmRlci1jb2xvcjogIzUzNWJhNDtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoNzAsIDgyLCAyNDMsIDAuNCk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dC5pbnB1dC1zdWNjZXNzIC5pbnB1dC1maWVsZCB7XG4gIGJvcmRlci1jb2xvcjogIzU4Yjk5MjtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMTM5LCAyMzYsIDE5NywgMC40KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1zdGF0ZS1zdWNjZXNzIHtcbiAgY29sb3I6ICM1OGI5OTI7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dC5pbnB1dC1lcnJvciAuaW5wdXQtZmllbGQge1xuICBib3JkZXItY29sb3I6ICNmOThkOGQ7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDI0OSwgMTQxLCAxNDEsIDAuNCk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dCAuaW5wdXQtc3RhdGUtZXJyb3Ige1xuICBjb2xvcjogI2Y4NzE3MTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1tZXNzYWdlLWVycm9yIHtcbiAgY29sb3I6ICNmODcxNzE7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dC5pbnB1dC13YXJuaW5nIC5pbnB1dC1maWVsZCB7XG4gIGJvcmRlci1jb2xvcjogI2VmOGUwMjtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMjUxLCAxOTEsIDkyLCAwLjQpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQgLmlucHV0LXN0YXRlLXdhcm5pbmcge1xuICBjb2xvcjogI2VmOGUwMjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1tZXNzYWdlLXdhcm5pbmcge1xuICBjb2xvcjogI2VmOGUwMjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0LmlucHV0LWRpc2FibGVkIC5pbnB1dC1maWVsZCB7XG4gIGJhY2tncm91bmQ6ICM0MDQ0NGQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtbmF0aXZlIHtcbiAgY29sb3I6ICM2YjcyODA7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtbGVhZGluZy1pY29uLCBbZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtdHJhaWxpbmctaWNvbiB7XG4gIGNvbG9yOiAjNmI3MjgwO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQuaW5wdXQtcmVhZG9ubHkgLmlucHV0LWZpZWxkIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogIzU2NWI2Njtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1wcmV0YWIsXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dCAuaW5wdXQtcG9zdHRhYiB7XG4gIGJhY2tncm91bmQ6ICM0MDQ0NGQ7XG4gIGNvbG9yOiAjYTZhYWIzO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQgLmlucHV0LXByZXRhYiBxZG5hcHJvLWljb24sXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dCAuaW5wdXQtcG9zdHRhYiBxZG5hcHJvLWljb24ge1xuICBjb2xvcjogI2E2YWFiMztcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1wcmV0YWIge1xuICBib3JkZXItcmlnaHQtY29sb3I6ICM1NjViNjY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dCAuaW5wdXQtcG9zdHRhYiB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjNTY1YjY2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkLWlubmVyIHtcbiAgYmFja2dyb3VuZDogIzBiMGIwZDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtc2VhcmNoIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWRyb3Bkb3duLXNlYXJjaCxcbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0IC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWRyb3Bkb3duLXNlYXJjaCB7XG4gIGJhY2tncm91bmQ6ICM0MDQ0NGQ7XG4gIGNvbG9yOiAjZTFlM2U2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1zZWFyY2ggLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tZHJvcGRvd24tc2VhcmNoOmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpLFxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQgLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tZHJvcGRvd24tc2VhcmNoOmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogIzU2NWI2Njtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtcGhvbmUgLmlucHV0LWNvdW50cnktcGlja2VyOjphZnRlciB7XG4gIGJhY2tncm91bmQ6ICM1NjViNjY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dCAuaW5wdXQtYWMtZHJvcGRvd24ge1xuICBiYWNrZ3JvdW5kOiAjMWYyMDI4O1xuICBib3JkZXItY29sb3I6ICM1NjViNjY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dCAuaW5wdXQtYWMtaXRlbSB7XG4gIGNvbG9yOiAjZTFlM2U2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQgLmlucHV0LWFjLWl0ZW06aG92ZXIsIFtkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1hYy1pdGVtLmlucHV0LWFjLWl0ZW0tYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogIzU2NWI2Njtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1hYy1pdGVtIHN0cm9uZyB7XG4gIGNvbG9yOiAjZjBmMWYyO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQgLmlucHV0LWFjLWVtcHR5LFxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQgLmlucHV0LWFjLWxvYWRpbmcge1xuICBjb2xvcjogI2E2YWFiMztcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1hYy1lcnJvciB7XG4gIGNvbG9yOiAjZjg3MTcxO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQgLmlucHV0LWFjLXNwaW5uZXIge1xuICBib3JkZXItY29sb3I6ICM1NjViNjY7XG4gIGJvcmRlci10b3AtY29sb3I6ICM0NjUyZjM7XG59XG5cbi8qID09PSB0aGVtZTogZ2xhc3Mg4oCUIGFkZGVkIDIwMjYtMDYtMDggPT09XG4gICBUcmFuc2x1Y2VudCBmaWVsZHMgZm9yIHVzZSBvbiBhIGRhcmsgLyBjb2xvdXJlZCBzdXJmYWNlIChlLmcuIHRoZSBsb2dpblxuICAgc3RhZ2UpLiBTYW1lIHN0cnVjdHVyZSBhbmQgYmVoYXZpb3VyIGFzIHRoZSBkZWZhdWx0IGlucHV0OyBvbmx5IHRoZSBjb2xvdXJzXG4gICBjaGFuZ2UuIEFjdGl2YXRlIGJ5IHNldHRpbmcgZGF0YS10aGVtZT1cImdsYXNzXCIgb24gYW4gYW5jZXN0b3IgKHRoZSBsb2dpblxuICAgZm9ybSBkb2VzIHRoaXMpLiBGb2N1cyByaW5nIHVzZXMgdGhlIGxvZ2luIGxpbGEgYWNjZW50LiAqL1xuW2RhdGEtdGhlbWU9Z2xhc3NdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI4KTtcbn1cbltkYXRhLXRoZW1lPWdsYXNzXSAucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQgLmlucHV0LW5hdGl2ZSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuW2RhdGEtdGhlbWU9Z2xhc3NdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZCAuaW5wdXQtbmF0aXZlOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG5bZGF0YS10aGVtZT1nbGFzc10gLnFkbmFwcm8taW5wdXQgLmlucHV0LWxlYWRpbmctaWNvbixcbltkYXRhLXRoZW1lPWdsYXNzXSAucWRuYXByby1pbnB1dCAuaW5wdXQtdHJhaWxpbmctaWNvbiB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpO1xufVxuW2RhdGEtdGhlbWU9Z2xhc3NdIC5xZG5hcHJvLWlucHV0LmlucHV0LWZpbGxlZCAuaW5wdXQtbGVhZGluZy1pY29uLFxuW2RhdGEtdGhlbWU9Z2xhc3NdIC5xZG5hcHJvLWlucHV0LmlucHV0LWZpbGxlZCAuaW5wdXQtdHJhaWxpbmctaWNvbiB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyogQ3VycmVuY3ktcHJlZml4IG9wIGdsYXM6IG5ldCBhbHMgYmlqIGhldCBkb25rZXJlIHRoZW1hIGhpZXJib3ZlbiBleHBsaWNpZXQgb3AgZGVcbiAgIGtsZXVyIGRpZSBoaWogdmFuZGFhZyBvb2sgYWwgaGVlZnQsIHpvZGF0IGRlIGJhc2lzLWZpeCBkZSBkb29yc2NoaWpuZW5kZSB2dWxsaW5nIG9wXG4gICBkZSBkb25rZXJlIGxvZ2luYWNodGVyZ3JvbmQgbmlldCBtZWVzbGVlcHQgKGRhYXIgem91IHZhcigtLWMtdGV4dC1tdXRlZCkganVpc3QgU0xFQ0hURVIgd29yZGVuKS5cbiAgIFB1dXIgYmVob3VkLCBnZWVuIG5pZXV3ZSBrbGV1cmtldXplLiBPcGVuc3RhYW5kIHB1bnRqZSB2b29yIGxhdGVyOiBnbGFzIHpldCB6aWpuXG4gICBwbGFjZWhvbGRlciBvcCByZ2JhKDI1NSwyNTUsMjU1LDAuNykgZW4gemlqbiBpY29uZW4gb3AgMC43NSwgZHVzIHN0cmlrdCBnZW5vbWVuXG4gICBob29ydCBkZSBwcmVmaXggZGFhciBvb2sgaW4gZGllIHJlZWtzIG1lZSBlbiBuaWV0IG9wIGVlbiBncmlqcyB1aXQgaGV0IGxpY2h0ZVxuICAgcGFsZXQuIERhdCBpcyBlZW4gYXBhcnRlIGRlc2lnbmtldXplIGVuIGlzIGhpZXIgbmlldCBnZW1hYWt0LiAqL1xuW2RhdGEtdGhlbWU9Z2xhc3NdIC5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtY3VycmVuY3kgLmlucHV0LWN1cnJlbmN5LXByZWZpeCB7XG4gIGNvbG9yOiAjYTZhYWIzO1xufVxuW2RhdGEtdGhlbWU9Z2xhc3NdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ1KTtcbn1cbltkYXRhLXRoZW1lPWdsYXNzXSAucWRuYXByby1pbnB1dC5pbnB1dC1mb2N1cyAuaW5wdXQtZmllbGQsXG5bZGF0YS10aGVtZT1nbGFzc10gLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkOmZvY3VzLXdpdGhpbiB7XG4gIGJvcmRlci1jb2xvcjogIzlhOGZmZjtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgxNTQsIDE0MywgMjU1LCAwLjM1KTtcbn1cbi8qIFRyYWlsaW5nIGljb24gYnV0dG9ucyAocGFzc3dvcmQgZXllLXRvZ2dsZSwgY2xlYXIteCkgb24gZ2xhc3MuICovXG5bZGF0YS10aGVtZT1nbGFzc10gLnFkbmFwcm8taW5wdXQgLmlucHV0LXRyYWlsaW5nIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWlucHV0LWljb24ge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTtcbn1cbltkYXRhLXRoZW1lPWdsYXNzXSAucWRuYXByby1pbnB1dCAuaW5wdXQtdHJhaWxpbmcgLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4taW5wdXQtaWNvbjpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyogU3RhdGUgYWNjZW50cyBrZXB0IGxlZ2libGUgb24gdGhlIGRhcmsgc3VyZmFjZS4gKi9cbltkYXRhLXRoZW1lPWdsYXNzXSAucWRuYXByby1pbnB1dC5pbnB1dC1lcnJvciAuaW5wdXQtZmllbGQge1xuICBib3JkZXItY29sb3I6ICNmOThkOGQ7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDI0OSwgMTQxLCAxNDEsIDAuNCk7XG59XG5bZGF0YS10aGVtZT1nbGFzc10gLnFkbmFwcm8taW5wdXQgLmlucHV0LXN0YXRlLWVycm9yLFxuW2RhdGEtdGhlbWU9Z2xhc3NdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1tZXNzYWdlLWVycm9yIHtcbiAgY29sb3I6ICNmOThkOGQ7XG59XG5bZGF0YS10aGVtZT1nbGFzc10gLnFkbmFwcm8taW5wdXQuaW5wdXQtc3VjY2VzcyAuaW5wdXQtZmllbGQge1xuICBib3JkZXItY29sb3I6ICM1OGI5OTI7XG59XG5bZGF0YS10aGVtZT1nbGFzc10gLnFkbmFwcm8taW5wdXQgLmlucHV0LXN0YXRlLXN1Y2Nlc3Mge1xuICBjb2xvcjogIzhiZWNjNTtcbn1cblxuLyogPT09IHR5cGU6IGRhdGUg4oCUIGFkZGVkIDIwMjYtMDUtMTEgKGNvbXBpbGVkIGZyb20gX2lucHV0LnNjc3MpID09PSAqL1xuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1kYXRlIC5pbnB1dC1uYXRpdmU6Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLWRhdGUgLmlucHV0LW5hdGl2ZSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1pbi13aWR0aDogMDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtZGF0ZSAuaW5wdXQtbmF0aXZlOjotd2Via2l0LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3Ige1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiA9PT0gdHlwZTogdGltZSDigJQgYWRkZWQgMjAyNi0wNi0xOSAobmF0aXZlIDxpbnB1dCB0eXBlPVwidGltZVwiPiwgbWlycm9ycyBkYXRlKSA9PT0gKi9cbi5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtdGltZSAuaW5wdXQtbmF0aXZlOjotd2Via2l0LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3Ige1xuICBkaXNwbGF5OiBub25lO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS10aW1lIC5pbnB1dC1uYXRpdmUge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtaW4td2lkdGg6IDA7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLXRpbWUgLmlucHV0LW5hdGl2ZTo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9yIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogPT09IGRhdGUvdGltZSBlbXB0eS1zdGF0ZSBwbGFjZWhvbGRlciAoYWRkZWQgMjAyNi0wNi0xOSkgPT09XG4gICBXaGVuIG5vdGhpbmcgaXMgZW50ZXJlZCwgc2hvdyB0aGUgZGQvbW0veXl5eSAoYW5kIEhIOm1tKSBmb3JtYXQgdGV4dCBpbiB0aGUgc2FtZVxuICAgbGlnaHQtZ3JleSBwbGFjZWhvbGRlciBjb2xvdXIgYXMgb3RoZXIgaW5wdXRzIChsaWtlIHRoZSBjdXJyZW5jeSBcIjAsMDBcIik7IHRoZVxuICAgdmFsdWUgdHVybnMgZGFyayBvbmNlIGZpbGxlZCAoLmlucHV0LWZpbGxlZCkuIFtLaW1dXG4gICBNZWVnZXRyb2trZW4gbWV0IGRlIGJhc2lzLXBsYWNlaG9sZGVyLWZpeCAoYmVzbHVpdCA3OCwga2x1cyA0YiwgMzEuMDcuMjAyNik6IGRlemVcbiAgIHJlZ2VsIGdlYnJ1aWt0ZSBiZXd1c3QgZGV6ZWxmZGUga2xldXIgYWxzIGRlIGJhc2lzLXBsYWNlaG9sZGVyIChcImluIHRoZSBzYW1lXG4gICBsaWdodC1ncmV5IHBsYWNlaG9sZGVyIGNvbG91ciBhcyBvdGhlciBpbnB1dHNcIiksIGR1cyB6b25kZXIgZGV6ZSBtZWUgdGUgbmVtZW5cbiAgIHpvdSBhbGxlZW4gZGl0IHR5cGUgZGUgb3VkZSwgdGUgbGljaHRlIDEuOTE6MS1rbGV1ciBob3VkZW4uICovXG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLWRhdGU6bm90KC5pbnB1dC1maWxsZWQpIC5pbnB1dC1uYXRpdmUsXG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLXRpbWU6bm90KC5pbnB1dC1maWxsZWQpIC5pbnB1dC1uYXRpdmUge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtZGF0ZTpub3QoLmlucHV0LWZpbGxlZCkgLmlucHV0LW5hdGl2ZSxcbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtdGltZTpub3QoLmlucHV0LWZpbGxlZCkgLmlucHV0LW5hdGl2ZSB7XG4gIGNvbG9yOiAjODk4ZTk5O1xufVxuXG4vKiA9PT0gdmFyaWFudDogcm91bmQgKHBpbGwtc2hhcGUpIOKAlCBQV0Egb25seSBbMjAyNi0wNi0zMF0gPT09XG4gICBCb29sZWFuIGF0dHJpYnV0ZSBgcm91bmRgLiBSb3VuZHMgdGhlIGZpZWxkIHRvIGEgcGlsbCBzaGFwZSB3aXRoXG4gICBzbGlnaHRseSB3aWRlciBob3Jpem9udGFsIHBhZGRpbmcgc28gdGhlIGNvbnRlbnQgYnJlYXRoZXMgYXQgdGhlXG4gICBjdXJ2ZWQgZWRnZXMuIEludGVybmFsIGljb24tYnRucyBhbHJlYWR5IHVzZSBib3JkZXItcmFkaXVzOiA1MCVcbiAgIHNvIHRoZWlyIGhvdmVyIGNpcmNsZXMgc3RheSByb3VuZC4gVGhlIHJpZ2h0IHRyYWlsaW5nIGVkZ2UgZ2V0c1xuICAgYSBzbWFsbCBuZWdhdGl2ZSBtYXJnaW4gdG8ga2VlcCB0aGUgbGFzdCBpY29uIG9wdGljYWxseSBjZW50cmVkLiAqL1xuLnFkbmFwcm8taW5wdXQuaW5wdXQtcm91bmQgLmlucHV0LWZpZWxkIHtcbiAgYm9yZGVyLXJhZGl1czogOTk5OXB4O1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEycHg7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1yb3VuZCAuaW5wdXQtZmllbGQgLmlucHV0LXRyYWlsaW5nIHtcbiAgbWFyZ2luLXJpZ2h0OiA0cHg7XG59XG5cbi8qID09PSB2YXJpYW50OiBkYXJrLXB1cnBsZSBbMjAyNi0wNi0zMF0gPT09XG4gICBCb29sZWFuIGF0dHJpYnV0ZSBgZGFyay1wdXJwbGVgLiBEZWVwLXB1cnBsZSBzdXJmYWNlIGZvciB1c2Ugb25cbiAgIHB1cnBsZS1iYWNrZ3JvdW5kIHBhZ2VzIChQV0EgbGlzdF9wYWdlIHNlYXJjaCwgbG9naW4sIGV0Yy4pLlxuICAgVG9rZW5zOiBzdXJmYWNlPS0tYy1wdXJwbGUtNzAwLCB0ZXh0PS0tYy1wdXJwbGUtNTAsXG4gICBwbGFjZWhvbGRlci9pY29ucz0tLWMtcHVycGxlLTMwMCwgbGFiZWw9LS1jLXdoaXRlLTA0LCBoaW50PS0tYy1wdXJwbGUtMzAwLlxuICAgRm9jdXMgcmluZyB1bmNoYW5nZWQgKGJyYW5kIHB1cnBsZSBib3JkZXIpLiAqL1xuLnFkbmFwcm8taW5wdXQuaW5wdXQtZGFyay1wdXJwbGUgLmlucHV0LWZpZWxkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNzAwKTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLW91dCwgYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtZGFyay1wdXJwbGUgLmlucHV0LWZpZWxkOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNjAwKTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LWRhcmstcHVycGxlIC5pbnB1dC1maWVsZDpmb2N1cy13aXRoaW4ge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS03MDApO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtZGFyay1wdXJwbGUgLmlucHV0LWZpZWxkIC5pbnB1dC1uYXRpdmUge1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTApO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtZGFyay1wdXJwbGUgLmlucHV0LWZpZWxkIC5pbnB1dC1uYXRpdmU6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTMwMCk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1kYXJrLXB1cnBsZSAuaW5wdXQtZmllbGQgLmlucHV0LWxlYWRpbmctaWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS0zMDApO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtZGFyay1wdXJwbGUgLmlucHV0LWxhYmVsIHtcbiAgY29sb3I6IHZhcigtLWMtd2hpdGUtMDQpO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtZGFyay1wdXJwbGUgLmlucHV0LWhpbnQge1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtMzAwKTtcbn1cbi8qIENsZWFyLXgsIHNwaW5uZXIgwrEsIGFuZCBleWUtdG9nZ2xlIGljb24tYnRucyBpbnNpZGUgZGFyay1wdXJwbGUgKi9cbi5xZG5hcHJvLWlucHV0LmlucHV0LWRhcmstcHVycGxlIC5pbnB1dC10cmFpbGluZyAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1pbnB1dC1pY29uIHtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwKTtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LWRhcmstcHVycGxlIC5pbnB1dC10cmFpbGluZyAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1pbnB1dC1pY29uOmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNjAwKTtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwKTtcbn1cblxuLyogPT09IHZhcmlhbnQ6IGdyZXkgWzIwMjYtMDctMzFdID09PVxuICAgQm9vbGVhbiBhdHRyaWJ1dGUgYGdyZXlgLiBMaWdodC1ncmV5IHN1cmZhY2UgKC0tYy1ncmV5LTEwMCkgc28gdGhlIGZpZWxkXG4gICBzdGFuZHMgb3V0IGFnYWluc3QgYSB3aGl0ZSBiYWNrZ3JvdW5kIGluc3RlYWQgb2YgYmxlbmRpbmcgaW50byBpdCAtIGJ1aWx0XG4gICBmb3IgdGhlIGFwcC1oZWFkZXIgc2VhcmNoIGZpZWxkIChxZG5hcHJvLWFwcC1oZWFkZXIgc2xvdD1cInNlYXJjaFwiKSwgYnV0XG4gICB1c2FibGUgYW55d2hlcmUgYSBmaWVsZCBzaXRzIGRpcmVjdGx5IG9uIHdoaXRlL25lYXItd2hpdGUuXG4gICBObyBib3JkZXIgb2YgaXRzIG93bjogdGhlIGdyZXkgZmlsbCBJUyB0aGUgc2hhcGUgKHBlciBLaW0pLCBzYW1lIGlkZWEgYXNcbiAgIGRhcmstcHVycGxlJ3MgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCBvbiBpdHMgb3duIHN1cmZhY2UuXG4gICBQbGFjZWhvbGRlci9pY29uIGNvbG91cnMgYXJlIGxlZnQgYXQgdGhlaXIgbm9ybWFsIChub24tZ3JleSkgdmFsdWVzIG9uXG4gICBwdXJwb3NlOiBncmV5LTEwMCAodmFyKC0tYy1ncmV5LTEwMCkpIGlzIGNsb3NlIGVub3VnaCB0byB3aGl0ZSBpbiBsdW1pbmFuY2UgdGhhdFxuICAgdGhlIGRlZmF1bHQgZ3JleS00MDAgcGxhY2Vob2xkZXIvaWNvbiBjb2xvdXIgc3RpbGwgcmVhZHMgZmluZSBvbiBpdCAtIGFcbiAgIGRlZGljYXRlZCBkYXJrZXIgcGxhY2Vob2xkZXIgdG9rZW4gd2FzIG5vdCBuZWVkZWQgdGhlIHdheSBkYXJrLXB1cnBsZVxuICAgbmVlZGVkIG9uZSBmb3IgaXRzIG11Y2gtbG93ZXItY29udHJhc3QgZGFyayBzdXJmYWNlLlxuICAgQ29tYmluaW5nIHdpdGggZGFyay1wdXJwbGUgaXMgYSBuby1vcDogc2VlIHFkbmEtaW5wdXQuanMgcmVuZGVyKCksIGdyZXlcbiAgIGlzIGlnbm9yZWQgd2hlbmV2ZXIgZGFyay1wdXJwbGUgaXMgYWxzbyBzZXQuICovXG4ucWRuYXByby1pbnB1dC5pbnB1dC1ncmV5IC5pbnB1dC1maWVsZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0xMDAsICNlN2U5ZWMpO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtZ3JleSAuaW5wdXQtZmllbGQ6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKiBQbGFjZWhvbGRlciBET05LRVJERVIgb3AgZGUgZ3JpanplIHZ1bGxpbmcgKEtpbSwgMzEuMDcuMjAyNjogXCJudSBsaWprdCBoZXQgdmVsZFxuICAgb29rIGRpc2FibGVkIG9tZGF0IGRlIHBsYWNlaG9sZGVyIHRla3N0IHRlIGxpY2h0IGlzLCBkaWUgbW9ldCBlY2h0IGRvbmtlcmRlclwiKS5cbiAgIEdlbWV0ZW4gbWV0IGRlIFdDQUctZm9ybXVsZSwgbmlldCBvcCBoZXQgb29nOlxuICAgICBkZSBzdGFuZGFhcmQtcGxhY2Vob2xkZXIgdmFyKC0tYy1ncmV5LTQwMCkgb3AgdmFyKC0tYy1ncmV5LTEwMCkgIC0+IDEuOTE6MVxuICAgICBkZSBESVNBQkxFRC1wbGFjZWhvbGRlciAgdmFyKC0tYy10ZXh0LWRpc2FibGVkKSBvcCB2YXIoLS1jLWdyZXktMTAwKSAgLT4gMi43MDoxXG4gICBEZSBnZXdvbmUgcGxhY2Vob2xkZXIgd2FzIGR1cyBMSUNIVEVSIGRhbiBkZSB1aXRnZXNjaGFrZWxkZSBzdGFuZCwgZW4gZGFhcm9tIGxhc1xuICAgZWVuIGxlZWcgdmVsZCBhbHMgZWVuIHZlbGQgZGF0IGplIG5pZXQgbWFnIGdlYnJ1aWtlbi4gRGF0IHdhcyBlZW4gZm91dCBpbiBkZSBCQVNJU1xuICAgdmFuIGRpdCBjb21wb25lbnQgZW4gbmlldCBhbGxlZW4gaW4gZGV6ZSB2YXJpYW50OyB0b2VuIGRpdCBoaWVyIGdlYm91d2Qgd2VyZCwgd2FzXG4gICBkZSBmaXggbm9nIGdlc2NvcGVkIHRvdCBkZSBncmlqemUgdmFyaWFudCBlbiBnZWZsYWdkIHZvb3IgS2ltIChkZSBiYXNpcyByYWFrdCBlbGtlXG4gICBpbnB1dCBpbiBkZSBiYWNrb2ZmaWNlIGVuIGRlIGFwcCwgZGF0IG5pZW1hbmQgZ2V2cmFhZ2QgaGFkKS4gQmVzbHVpdCA3OCAvIGtsdXMgNGJcbiAgICgzMS4wNy4yMDI2KSBoZWVmdCBkZSBiYXNpcyB6ZWxmIG9vayBvcCB2YXIoLS1jLXRleHQtbXV0ZWQpIGdlemV0ICh6aWUgZGVcbiAgIGJhc2lzLXJlZ2VsIGJvdmVuaW4gZGl0IGJlc3RhbmQpLCBkdXMgZGV6ZSByZWdlbCBoaWVyIGlzIG51IHN0cmlrdCBnZW5vbWVuXG4gICBvdmVyYm9kaWcgZ2V3b3JkZW4gKGRlIGJhc2lzIGxldmVydCBhbCBkZXplbGZkZSBrbGV1cikgbWFhciBibGlqZnQgc3RhYW4gYWxzXG4gICBleHBsaWNpZXRlLCB6ZWxmc3RhbmRpZ2UgZ2FyYW50aWUgdm9vciBkZXplIHZhcmlhbnQuXG4gICB2YXIoLS1jLXRleHQtbXV0ZWQpIGdlZWZ0IDMuOTQ6MSwgcnVpbSBib3ZlbiBkZSBkaXNhYmxlZC1zdGFuZCBlbiBib3ZlbiBkZSAzOjEgZGllXG4gICBXQ0FHIHZvb3IgZ3JvdGUvc2VjdW5kYWlyZSB0ZWtzdCBhYW5ob3VkdC4gKi9cbi5xZG5hcHJvLWlucHV0LmlucHV0LWdyZXkgLmlucHV0LWZpZWxkIC5pbnB1dC1uYXRpdmU6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG59XG5cbi8qIEVuIGhldCBsb2VwLWljb29udGplIGVydm9vciBtZWUsIGFuZGVycyBibGlqZnQgZGF0IGFscyBlbmlnZSBsaWNodCBhY2h0ZXIgZW4gbGVlc3RcbiAgIGRlIHJpaiBub2cgc3RlZWRzIGFscyB1aXRnZXNjaGFrZWxkLiAqL1xuLnFkbmFwcm8taW5wdXQuaW5wdXQtZ3JleSAuaW5wdXQtZmllbGQgLmlucHV0LWxlYWRpbmctaWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xufVxuLyogRm9jdXMgcmluZzogcmVzdGF0ZWQgaGVyZSAobm90IGluaGVyaXRlZCBmcm9tIHRoZSBiYXNlIDpmb2N1cy13aXRoaW5cbiAgIHJ1bGUpIGZvciB0aGUgc2FtZSByZWFzb24gZGFyay1wdXJwbGUgcmVzdGF0ZXMgaXRzIG93biAtIHRoZSBwbGFpblxuICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCBydWxlIGFib3ZlIGhhcyBlcXVhbCBzZWxlY3RvciBzcGVjaWZpY2l0eSB0b1xuICAgdGhlIGJhc2UgXCIucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQ6Zm9jdXMtd2l0aGluXCIgcnVsZSBhbmQgY29tZXMgbGF0ZXJcbiAgIGluIHRoZSBmaWxlLCBzbyB3aXRob3V0IHRoaXMgb3ZlcnJpZGUgaXQgd291bGQgd2luIG9uIGZvY3VzIHRvbyBhbmQgdGhlXG4gICByaW5nIHdvdWxkIHNpbGVudGx5IGRpc2FwcGVhci5cbiAgIFRva2VuOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSkgcmF0aGVyIHRoYW4gZGFyay1wdXJwbGUncyB2YXIoLS1jLWJyYW5kKSAtXG4gICB0aGF0IHRva2VuIGlzIG5vdCBkZWZpbmVkIGFueXdoZXJlIGluIHRoaXMgY29kZWJhc2UgKGNoZWNrZWQ6IGFic2VudCBmcm9tXG4gICBkZXNpZ24tdG9rZW5zL19kZXNpZ24tdG9rZW5zLnNjc3MgYW5kIHRoZSBjb21waWxlZCBzdHlsZS12MS5jc3MpLCBzb1xuICAgZGFyay1wdXJwbGUncyBmb2N1cy13aXRoaW4gYm9yZGVyLWNvbG9yIGlzIHZlcnkgbGlrZWx5IGEgcHJlLWV4aXN0aW5nLFxuICAgc2lsZW50bHktYnJva2VuIHJ1bGUuIE5vdCBmaXhlZCBoZXJlIChvdXQgb2Ygc2NvcGUgZm9yIHRoaXMgdGFzaywgYW5kXG4gICBfaW5wdXQuc2NzcyBmb3IgZGFyay1wdXJwbGUgaXMgYmVpbmcgcmVhZCwgbm90IHJld3JpdHRlbikgLSBmbGFnZ2luZyBpdFxuICAgaW4gdGhlIGhhbmRvZmYgaW5zdGVhZCBvZiBjb3B5aW5nIHRoZSBzYW1lIHVuZGVmaW5lZCB0b2tlbiBmb3J3YXJkLiAqL1xuLnFkbmFwcm8taW5wdXQuaW5wdXQtZ3JleSAuaW5wdXQtZmllbGQ6Zm9jdXMtd2l0aGluIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0xMDAsICNlN2U5ZWMpO1xufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvbGFiZWwtY2lyY2xlL19sYWJlbC1jaXJjbGUtY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLnFkbmFwcm8tbGFiZWwtY2lyY2xlIHtcbiAgLS1sYy1zaXplOiA0NHB4O1xuICAtLWxjLWljb24tc2l6ZTogMTZweDtcbiAgLS1sYy1iZzogdmFyKC0tYy1ncmV5LTUwKTtcbiAgLS1sYy1pY29uOiAjMWUxZjIwO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiB2YXIoLS1sYy1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1sYy1zaXplKTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tbGMtYmcpO1xuICBjb2xvcjogdmFyKC0tbGMtaWNvbik7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLnFkbmFwcm8tbGFiZWwtY2lyY2xlIC5sYWJlbC1jaXJjbGUtaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB3aWR0aDogdmFyKC0tbGMtaWNvbi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1sYy1pY29uLXNpemUpO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby1sYWJlbC1jaXJjbGUgLmxhYmVsLWNpcmNsZS1pY29uIHN2ZyB7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5xZG5hcHJvLWxhYmVsLWNpcmNsZS5sYWJlbC1jaXJjbGUtc2l6ZS1iaWcge1xuICAtLWxjLXNpemU6IDQ0cHg7XG4gIC0tbGMtaWNvbi1zaXplOiAxNnB4O1xufVxuLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1zaXplLXNtYWxsIHtcbiAgLS1sYy1zaXplOiAyMHB4O1xuICAtLWxjLWljb24tc2l6ZTogMTJweDtcbiAgb3V0bGluZTogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCBjdXJyZW50Q29sb3IgMjIlLCB0cmFuc3BhcmVudCk7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xufVxuLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1jb2xvci1ncmV5IHtcbiAgLS1sYy1iZzogdmFyKC0tYy1ncmV5LTUwKTtcbiAgLS1sYy1pY29uOiAjMWUxZjIwO1xufVxuLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1jb2xvci1ncmV5LTIge1xuICAtLWxjLWJnOiB2YXIoLS1jLWdyZXktMzAwKTtcbiAgLS1sYy1pY29uOiAjMWUxZjIwO1xufVxuLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1jb2xvci1yZWQge1xuICAtLWxjLWJnOiB2YXIoLS1jLXNpZ25hbC1yZWQtYmcpO1xuICAtLWxjLWljb246ICM2MzMwMzA7XG59XG4ucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLXJlZC0yIHtcbiAgLS1sYy1iZzogdmFyKC0tYy1jaGlwLXJlZC0yLWJnKTtcbiAgLS1sYy1pY29uOiAjNjMzMDMwO1xufVxuLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1jb2xvci15ZWxsb3cge1xuICAtLWxjLWJnOiB2YXIoLS1jLWNoaXAteWVsbG93LWJnKTtcbiAgLS1sYy1pY29uOiAjNjU1NTIyO1xufVxuLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1jb2xvci15ZWxsb3ctMiB7XG4gIC0tbGMtYmc6IHZhcigtLWMtY2hpcC15ZWxsb3ctMi1iZyk7XG4gIC0tbGMtaWNvbjogIzY1NTUyMjtcbn1cbi5xZG5hcHJvLWxhYmVsLWNpcmNsZS5sYWJlbC1jaXJjbGUtY29sb3ItZ3JlZW4ge1xuICAtLWxjLWJnOiB2YXIoLS1jLWNoaXAtZ3JlZW4tYmcpO1xuICAtLWxjLWljb246ICMyZjVkNGE7XG59XG4ucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLWdyZWVuLTIge1xuICAtLWxjLWJnOiB2YXIoLS1jLWNoaXAtZ3JlZW4tMi1iZyk7XG4gIC0tbGMtaWNvbjogIzJmNWQ0YTtcbn1cbi5xZG5hcHJvLWxhYmVsLWNpcmNsZS5sYWJlbC1jaXJjbGUtY29sb3ItYmx1ZSB7XG4gIC0tbGMtYmc6IHZhcigtLWMtc2lnbmFsLWJsdWUtYmcpO1xuICAtLWxjLWljb246ICMzNzQ3NWE7XG59XG4ucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLWJsdWUtMiB7XG4gIC0tbGMtYmc6IHZhcigtLWMtY2hpcC1ibHVlLTItYmcpO1xuICAtLWxjLWljb246ICMzNzQ3NWE7XG59XG4ucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLWJyaWdodC1ibHVlIHtcbiAgLS1sYy1iZzogdmFyKC0tYy1jaGlwLWJyaWdodC1ibHVlLWJnKTtcbiAgLS1sYy1pY29uOiAjMTkyYTVhO1xufVxuLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1jb2xvci1icmlnaHQtYmx1ZS0yIHtcbiAgLS1sYy1iZzogdmFyKC0tYy1jaGlwLWJyaWdodC1ibHVlLTItYmcpO1xuICAtLWxjLWljb246ICMxOTJhNWE7XG59XG4ucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLXBpbmsge1xuICAtLWxjLWJnOiB2YXIoLS1jLXNpZ25hbC1waW5rLWJnKTtcbiAgLS1sYy1pY29uOiAjNTYyZDNhO1xufVxuLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1jb2xvci1kYXJrLXBpbmsge1xuICAtLWxjLWJnOiB2YXIoLS1jLWNoaXAtZGFyay1waW5rLWJnKTtcbiAgLS1sYy1pY29uOiAjNTYyZDNhO1xufVxuLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1jb2xvci1wdXJwbGUge1xuICAtLWxjLWJnOiB2YXIoLS1jLWNoaXAtcHVycGxlLWJnKTtcbiAgLS1sYy1pY29uOiAjNDEzYjVlO1xufVxuLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1jb2xvci1kYXJrLXB1cnBsZSB7XG4gIC0tbGMtYmc6IHZhcigtLWMtY2hpcC1kYXJrLXB1cnBsZS1iZyk7XG4gIC0tbGMtaWNvbjogIzQxM2I1ZTtcbn1cbi5xZG5hcHJvLWxhYmVsLWNpcmNsZS5sYWJlbC1jaXJjbGUtZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjY7XG59XG5cbi8qIEFkZGl0aXZlIHN0YXR1cy0qIGNvbG9ycyAoMTYuMDcuMjAyNiDigJQgcGxhbm5lciBzdGF0dXMgZmlsdGVyKS4gU29saWQgZG90c1xuICAgKGJnID09IGljb24gY29sb3IsIG5vIGxpZ2h0LXRpbnQgcGFpcmluZyBsaWtlIHRoZSAxNiBjb2xvcnMgYWJvdmUpIG1hcHBlZFxuICAgMToxIHRvIHFkbmFwcm8tZXZlbnQtY2FyZCdzIG93biBzdGF0dXMgdG9rZW5zIChzZWUgX2V2ZW50LWNhcmQuc2NzczpcbiAgIC0tYy1wdXJwbGUtNTAwLCAtLWMtc2lnbmFsLXJlZC8tb3JhbmdlLy1ncmVlbi10ZXh0KSDigJQgdGhlc2UgYXJlIHVzZWRcbiAgIGljb24tbGVzcyAoYSBwdXJlIGNvbG9yIGluZGljYXRvciwgc2VlIHFkbmEtbWVudS1pdGVtLmpzKSwgc28gb25seSAtLWxjLWJnXG4gICBpcyBldmVyIHZpc2libGU7IC0tbGMtaWNvbiBpcyBzZXQgdG8gdGhlIHNhbWUgdmFsdWUgZm9yIGNvbnNpc3RlbmN5IHNob3VsZFxuICAgYW4gaWNvbiBldmVyIGJlIGFkZGVkLiBObyBkYXJrLXRoZW1lIG92ZXJyaWRlOiBldmVudC1jYXJkIGl0c2VsZiBoYXMgbm9uZVxuICAgZm9yIHRoZXNlIHRva2VucyBlaXRoZXIgKHJhdyBzaWduYWwgcHJpbWl0aXZlcywgbm90IHJlLXRoZW1lZCkuIEZpcnN0LVxuICAgY2xhc3MgaGVyZSAobm90IGEgbWVudS1pdGVtLXNjb3BlZCBvdmVycmlkZSkgYmVjYXVzZSB0aGlzIGNvbXBvbmVudCdzIG93blxuICAgcmVuZGVyKCkgdW5jb25kaXRpb25hbGx5IHJld3JpdGVzIGNsYXNzTmFtZSBvbiBldmVyeSByZS1yZW5kZXIsIHdoaWNoXG4gICBzaWxlbnRseSBkaXNjYXJkZWQgYW55IGV4dGVybmFsbHktYWRkZWQgY2xhc3MtYmFzZWQgb3ZlcnJpZGUgYmVmb3JlIHRoaXNcbiAgIGZpeCAoS2ltJ3MgbGl2ZSB0ZXN0LCAxNi4wNy4yMDI2IOKAlCBmaWx0ZXIgZG90cyByZW5kZXJlZCBncmV5L2VtcHR5KS4gKi9cbi5xZG5hcHJvLWxhYmVsLWNpcmNsZS5sYWJlbC1jaXJjbGUtY29sb3Itc3RhdHVzLXBsYW5uZWQge1xuICAtLWxjLWJnOiB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xuICAtLWxjLWljb246IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG59XG4ucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLXN0YXR1cy1vdmVyZHVlIHtcbiAgLS1sYy1iZzogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xuICAtLWxjLWljb246IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTtcbn1cbi5xZG5hcHJvLWxhYmVsLWNpcmNsZS5sYWJlbC1jaXJjbGUtY29sb3Itc3RhdHVzLWlucHJvZ3Jlc3Mge1xuICAtLWxjLWJnOiB2YXIoLS1jLXNpZ25hbC1vcmFuZ2UtdGV4dCwgI2JjNmExZik7XG4gIC0tbGMtaWNvbjogdmFyKC0tYy1zaWduYWwtb3JhbmdlLXRleHQsICNiYzZhMWYpO1xufVxuLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1jb2xvci1zdGF0dXMtY29tcGxldGUge1xuICAtLWxjLWJnOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0LCAjNDI4YjZlKTtcbiAgLS1sYy1pY29uOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0LCAjNDI4YjZlKTtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1jb2xvci1ncmV5IHtcbiAgLS1sYy1iZzogIzU2NWI2NjtcbiAgLS1sYy1pY29uOiAjZTFlM2U2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1jb2xvci1ncmV5LTIge1xuICAtLWxjLWJnOiAjNDA0NDRkO1xuICAtLWxjLWljb246ICNlMWUzZTY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLXJlZCB7XG4gIC0tbGMtYmc6ICM1YTJiMmI7XG4gIC0tbGMtaWNvbjogI2ZiYWFhYTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWxhYmVsLWNpcmNsZS5sYWJlbC1jaXJjbGUtY29sb3ItcmVkLTIge1xuICAtLWxjLWJnOiAjN2EzODM4O1xuICAtLWxjLWljb246ICNmZWUzZTM7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLXllbGxvdyB7XG4gIC0tbGMtYmc6ICM1YTRkMWY7XG4gIC0tbGMtaWNvbjogI2ZkZTU5NDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWxhYmVsLWNpcmNsZS5sYWJlbC1jaXJjbGUtY29sb3IteWVsbG93LTIge1xuICAtLWxjLWJnOiAjN2E2YjJkO1xuICAtLWxjLWljb246ICNmZWY2ZGI7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLWdyZWVuIHtcbiAgLS1sYy1iZzogIzJhNTU0NDtcbiAgLS1sYy1pY29uOiAjOGJlY2M1O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1jb2xvci1ncmVlbi0yIHtcbiAgLS1sYy1iZzogIzNkN2E2MjtcbiAgLS1sYy1pY29uOiAjZTJmYWYxO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1jb2xvci1ibHVlIHtcbiAgLS1sYy1iZzogIzJlM2U1NDtcbiAgLS1sYy1pY29uOiAjYjVjZWVkO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1jb2xvci1ibHVlLTIge1xuICAtLWxjLWJnOiAjNDQ1YTc4O1xuICAtLWxjLWljb246ICNlNmVmZjk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLWJyaWdodC1ibHVlIHtcbiAgLS1sYy1iZzogIzNhNGE4YTtcbiAgLS1sYy1pY29uOiAjZDZlMGY5O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1jb2xvci1icmlnaHQtYmx1ZS0yIHtcbiAgLS1sYy1iZzogIzJhMzU2MDtcbiAgLS1sYy1pY29uOiAjODVhMWVjO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1jb2xvci1waW5rIHtcbiAgLS1sYy1iZzogIzRlMmEzNjtcbiAgLS1sYy1pY29uOiAjZTVhNmI5O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1jb2xvci1kYXJrLXBpbmsge1xuICAtLWxjLWJnOiAjNmUzZDUwO1xuICAtLWxjLWljb246ICNmNmUxZTg7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLXB1cnBsZSB7XG4gIC0tbGMtYmc6ICMzYTM1NTU7XG4gIC0tbGMtaWNvbjogI2M0YmNmMztcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWxhYmVsLWNpcmNsZS5sYWJlbC1jaXJjbGUtY29sb3ItZGFyay1wdXJwbGUge1xuICAtLWxjLWJnOiAjNTI0YTdhO1xuICAtLWxjLWljb246ICNlYmU5ZmI7XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9sb2dvL19sb2dvLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi8qID09PSBCRUdJTiBRRE5BLUxPR08gQ1NTID09PSAqL1xuLnFkbmFwcm8tbG9nbyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8tbG9nbyBzdmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG59XG4vKiA9PT0gRU5EIFFETkEtTE9HTyBDU1MgPT09ICovXG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9tZW1iZXJzL19tZW1iZXJzLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi5xZG5hcHJvLW1lbWJlcnMge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDRweCA4cHggNHB4IDRweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTUwbXMgZWFzZTtcbn1cblxuLnFkbmFwcm8tbWVtYmVyczpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5xZG5hcHJvLW1lbWJlcnM6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jLXB1cnBsZS01MDApO1xuICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG4ucWRuYXByby1tZW1iZXJzLm1lbWJlcnMtZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vKiBUcmFpbGluZyBcIitcIiBjaXJjbGUuIFNhbWUgaGVpZ2h0IGFzIGEgMzRweCBhdmF0YXIgc28gaXQgdmlzdWFsbHlcbiAgIGxpbmVzIHVwLiBTdHJva2Utb25seSBTVkcgc28gaXQgcmVuZGVycyB3aGl0ZSBvdmVyIHBob3RvcyBhbmRcbiAgIHB1cnBsZSBvbiBsaWdodCBzdXJmYWNlcyB2aWEgY3VycmVudENvbG9yLiAqL1xuLnFkbmFwcm8tbWVtYmVycyAubWVtYmVycy1hZGQge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aWR0aDogMzRweDtcbiAgaGVpZ2h0OiAzNHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE1MG1zIGVhc2UsIGJvcmRlci1jb2xvciAxNTBtcyBlYXNlO1xufVxuXG4ucWRuYXByby1tZW1iZXJzIC5tZW1iZXJzLWFkZCBzdmcge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBzdHJva2U6IGN1cnJlbnRDb2xvcjtcbiAgZmlsbDogbm9uZTtcbiAgc3Ryb2tlLXdpZHRoOiAyO1xuICBzdHJva2UtbGluZWNhcDogcm91bmQ7XG59XG5cbi8qIC0tLSBUb25lOiBvbi1waG90byAoZGVmYXVsdCkgLSBnbGFzcyBvdmVyIGltYWdlcnkuIC0tLSAqL1xuLnFkbmFwcm8tbWVtYmVycy5tZW1iZXJzLXRvbmUtb24tcGhvdG8ge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG59XG5cbi5xZG5hcHJvLW1lbWJlcnMubWVtYmVycy10b25lLW9uLXBob3RvOmhvdmVyOm5vdCgubWVtYmVycy1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuXG4ucWRuYXByby1tZW1iZXJzLm1lbWJlcnMtdG9uZS1vbi1waG90byAubWVtYmVycy1hZGQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpO1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xufVxuXG4ucWRuYXByby1tZW1iZXJzLm1lbWJlcnMtdG9uZS1vbi1waG90bzpob3Zlcjpub3QoLm1lbWJlcnMtZGlzYWJsZWQpIC5tZW1iZXJzLWFkZCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDIpO1xufVxuXG4vKiAtLS0gVG9uZTogbGlnaHQgLSBvbiBhIGxpZ2h0IHN1cmZhY2UgKGNhcmRzLCBwYW5lbHMpLiAtLS0gKi9cbi5xZG5hcHJvLW1lbWJlcnMubWVtYmVycy10b25lLWxpZ2h0IHtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG5cbi5xZG5hcHJvLW1lbWJlcnMubWVtYmVycy10b25lLWxpZ2h0OmhvdmVyOm5vdCgubWVtYmVycy1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjA2KTtcbn1cblxuLnFkbmFwcm8tbWVtYmVycy5tZW1iZXJzLXRvbmUtbGlnaHQgLm1lbWJlcnMtYWRkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWdyZXktMzAwKTtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG5cbi5xZG5hcHJvLW1lbWJlcnMubWVtYmVycy10b25lLWxpZ2h0OmhvdmVyOm5vdCgubWVtYmVycy1kaXNhYmxlZCkgLm1lbWJlcnMtYWRkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1tZW1iZXJzLm1lbWJlcnMtdG9uZS1saWdodCB7XG4gIGNvbG9yOiAjYTVhY2ZmO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1tZW1iZXJzLm1lbWJlcnMtdG9uZS1saWdodDpob3Zlcjpub3QoLm1lbWJlcnMtZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgxNjUsIDE3MiwgMjU1LCAwLjEpO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1tZW1iZXJzLm1lbWJlcnMtdG9uZS1saWdodCAubWVtYmVycy1hZGQge1xuICBiYWNrZ3JvdW5kOiAjMmUzMDM2O1xuICBib3JkZXItY29sb3I6ICM0MDQ0NGQ7XG4gIGNvbG9yOiAjYTVhY2ZmO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1tZW1iZXJzLm1lbWJlcnMtdG9uZS1saWdodDpob3Zlcjpub3QoLm1lbWJlcnMtZGlzYWJsZWQpIC5tZW1iZXJzLWFkZCB7XG4gIGJhY2tncm91bmQ6ICM0MDQ0NGQ7XG59IiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvbWVudS9fbWVudS1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4ucWRuYXByby1tZW51IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi13aWR0aDogMTYwcHg7XG4gIHBhZGRpbmc6IDhweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBnYXA6IDRweDtcbn1cbi5xZG5hcHJvLW1lbnUgPiBxZG5hcHJvLW1lbnUtaXRlbSxcbi5xZG5hcHJvLW1lbnUgPiBxZG5hcHJvLW1lbnUtc2VwYXJhdG9yLFxuLnFkbmFwcm8tbWVudSA+IHFkbmFwcm8tbWVudS1zZWN0aW9uLWhlYWRpbmcsXG4ucWRuYXByby1tZW51ID4gcWRuYXByby1tZW51LWhlYWRlciB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnFkbmFwcm8tbWVudS5tZW51LWNvbG9yLW5ldXRyYWwge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWdyZXktMzAwKTtcbiAgYm94LXNoYWRvdzogMCA0cHggNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KSwgMCA4cHggMTJweCA2cHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG59XG4ucWRuYXByby1tZW51Lm1lbnUtY29sb3ItYWN0aW9uIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgYm9yZGVyOiAwLjVweCBzb2xpZCB2YXIoLS1jLXB1cnBsZS02MDApO1xuICBib3gtc2hhZG93OiAwIDFweCAzcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuXG4vLyBlbWJlZGRlZDogY2hyb21lLWxlc3MgdmFyaWFudCBmb3IgaG9zdGluZyBpbnNpZGUgYW5vdGhlciBwYW5lbCBjb21wb25lbnRcbi8vIChlLmcuIHFkbmFwcm8tcG9wb3ZlciBjYXJyaWVzIGl0cyBvd24gYmcvc2hhZG93L3BhZGRpbmcg4oCUIHdpdGhvdXQgdGhpcyB0aGVcbi8vIGNvbXBvc2l0aW9uIHJlbmRlcnMgYSBkb3VibGUgcGFuZWw7IEtpbSAxNi4wNy4yMDI2KS4gUGxhY2VkIGFmdGVyIHRoZSBjb2xvclxuLy8gYmxvY2tzIHNvIGl0IHdpbnMgYXQgZXF1YWwgc3BlY2lmaWNpdHkuXG4ucWRuYXByby1tZW51Lm1lbnUtZW1iZWRkZWQge1xuICBtaW4td2lkdGg6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5xZG5hcHJvLW1lbnUtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwO1xuICBwYWRkaW5nOiA4cHggMTZweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5xZG5hcHJvLW1lbnUtaGVhZGVyIC5tZW51LWhlYWRlci1oZWFkaW5nIHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbn1cbi5xZG5hcHJvLW1lbnUtaGVhZGVyIC5tZW51LWhlYWRlci1zdWJoZWFkaW5nIHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbn1cbi5xZG5hcHJvLW1lbnUtaGVhZGVyLm1lbnUtaGVhZGVyLWNvbG9yLW5ldXRyYWwgLm1lbnUtaGVhZGVyLWhlYWRpbmcge1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG59XG4ucWRuYXByby1tZW51LWhlYWRlci5tZW51LWhlYWRlci1jb2xvci1uZXV0cmFsIC5tZW51LWhlYWRlci1zdWJoZWFkaW5nIHtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MDApO1xufVxuLnFkbmFwcm8tbWVudS1oZWFkZXIubWVudS1oZWFkZXItY29sb3ItYWN0aW9uIC5tZW51LWhlYWRlci1oZWFkaW5nIHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xufVxuLnFkbmFwcm8tbWVudS1oZWFkZXIubWVudS1oZWFkZXItY29sb3ItYWN0aW9uIC5tZW51LWhlYWRlci1zdWJoZWFkaW5nIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cblxuLnFkbmFwcm8tbWVudS1zZXBhcmF0b3Ige1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogOHB4IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIHFkbmFwcm8tbWVudSBpcyBhIGZsZXggY29sdW1uLCBzbyB0aGUgc2VwYXJhdG9yIGlzIGEgZmxleCBJVEVNIOKAlCBhbmQgYSBmbGV4XG4gICAgIGl0ZW0gc2hyaW5rcyBieSBkZWZhdWx0LiBXaXRoIG5vIGNvbnRlbnQgaXRzIG1pbi1jb250ZW50IGhlaWdodCBpcyAwLCBzbyB0aGVcbiAgICAgbW9tZW50IHRoZSBtZW51IGlzIGhlaWdodC1jb25zdHJhaW5lZCBhbmQgaGFzIHRvIHNjcm9sbCwgdGhpcyAxcHggbGluZSBnZXRzXG4gICAgIGNvbXByZXNzZWQgdG8gZXhhY3RseSAwcHggYW5kIHRoZSBrZXlsaW5lIHNpbGVudGx5IGRpc2FwcGVhcnMgd2hpbGUgaXRzXG4gICAgIGNsYXNzIGFuZCBiYWNrZ3JvdW5kIGNvbG91ciBhcmUgc3RpbGwgcGVyZmVjdGx5IGNvcnJlY3QuIE1lYXN1cmVkIGluIHRoZVxuICAgICBjYXBwZWQgc2VsZWN0IHBvcG92ZXIsIDA1LjA4LjIwMjY6IG9mZnNldEhlaWdodCAwLCBhbmQgMSBhZ2FpbiB3aXRoXG4gICAgIGZsZXgtc2hyaW5rOiAwLiBNZW51LWl0ZW1zIHN1cnZpdmUgYmVjYXVzZSB0aGVpciB0ZXh0IGdpdmVzIHRoZW0gYVxuICAgICBtaW4tY29udGVudCBoZWlnaHQuICovXG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8tbWVudS1zZXBhcmF0b3IubWVudS1zZXBhcmF0b3ItY29sb3ItbmV1dHJhbCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0xMDApO1xufVxuLnFkbmFwcm8tbWVudS1zZXBhcmF0b3IubWVudS1zZXBhcmF0b3ItY29sb3ItYWN0aW9uIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KTtcbn1cblxuLnFkbmFwcm8tbWVudS1zZWN0aW9uLWhlYWRpbmcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMCA0cHg7XG4gIG1hcmdpbi10b3A6IDRweDtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLnFkbmFwcm8tbWVudS1zZWN0aW9uLWhlYWRpbmcubWVudS1zZWN0aW9uLWhlYWRpbmctY29sb3ItbmV1dHJhbCB7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwKTtcbn1cbi5xZG5hcHJvLW1lbnUtc2VjdGlvbi1oZWFkaW5nLm1lbnUtc2VjdGlvbi1oZWFkaW5nLWNvbG9yLWFjdGlvbiB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLW1lbnUubWVudS1jb2xvci1uZXV0cmFsIHtcbiAgYmFja2dyb3VuZDogIzJlMzAzNjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgYm94LXNoYWRvdzogMCA0cHggNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjMpLCAwIDhweCAxMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMik7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1tZW51Lm1lbnUtY29sb3ItYWN0aW9uIHtcbiAgYmFja2dyb3VuZDogIzMzM2E3YjtcbiAgYm9yZGVyOiAwLjVweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCAxcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1tZW51IC5xZG5hcHJvLW1lbnUtaGVhZGVyLm1lbnUtaGVhZGVyLWNvbG9yLW5ldXRyYWwgLm1lbnUtaGVhZGVyLWhlYWRpbmcge1xuICBjb2xvcjogI2UxZTNlNjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLW1lbnUgLnFkbmFwcm8tbWVudS1oZWFkZXIubWVudS1oZWFkZXItY29sb3ItbmV1dHJhbCAubWVudS1oZWFkZXItc3ViaGVhZGluZyB7XG4gIGNvbG9yOiByZ2JhKDIyNSwgMjI3LCAyMzAsIDAuNjUpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbWVudSAucWRuYXByby1tZW51LXNlcGFyYXRvci5tZW51LXNlcGFyYXRvci1jb2xvci1uZXV0cmFsIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLW1lbnUgLnFkbmFwcm8tbWVudS1zZXBhcmF0b3IubWVudS1zZXBhcmF0b3ItY29sb3ItYWN0aW9uIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbWVudSAucWRuYXByby1tZW51LXNlY3Rpb24taGVhZGluZy5tZW51LXNlY3Rpb24taGVhZGluZy1jb2xvci1uZXV0cmFsIHtcbiAgY29sb3I6IHJnYmEoMjI1LCAyMjcsIDIzMCwgMC42KTtcbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL21lbnUtaXRlbS9fbWVudS1pdGVtLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi5xZG5hcHJvLW1lbnUtaXRlbSB7XG4gIC0tbWktdGV4dDogdmFyKC0tYy1ncmV5LTk1MCk7XG4gIC0tbWktdGV4dC1tdXRlZDogcmdiYSgxMSwgMTEsIDEzLCAwLjU1KTtcbiAgLS1taS1pY29uOiB2YXIoLS1jLWdyZXktOTUwKTtcbiAgLS1taS1iZzogdHJhbnNwYXJlbnQ7XG4gIC0tbWktYmctaG92ZXI6IHZhcigtLWMtYmctY2FyZC1ob3Zlcik7XG4gIC0tbWktYmctcHJlc3NlZDogdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gIC0tbWktYmctc2VsZWN0ZWQ6IHZhcigtLWMtZ3JleS01MCk7XG4gIC0tbWktZGlzYWJsZWQtdGV4dDogdmFyKC0tYy10ZXh0LWRpc2FibGVkKTtcbiAgLS1taS1kZXN0cnVjdGl2ZS10ZXh0OiB2YXIoLS1jLXRhZy1jcml0aWNhbC10ZXh0KTtcbiAgLS1taS1kZXN0cnVjdGl2ZS1iZy1ob3ZlcjogdmFyKC0tYy1zaWduYWwtcmVkLXNvZnQpO1xuICAtLW1pLWZvY3VzLXJpbmc6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIC0tbWktZm9jdXMtZ2xvdzogcmdiYSg3MCwgODIsIDI0MywgMC4yNSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1taS1iZyk7XG4gIGNvbG9yOiB2YXIoLS1taS10ZXh0KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGJvcmRlcjogMCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMDBtcyBlYXNlLW91dDtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbSAubWVudS1pdGVtLWljb24sXG4ucWRuYXByby1tZW51LWl0ZW0gLm1lbnUtaXRlbS1jaGV2cm9uLFxuLnFkbmFwcm8tbWVudS1pdGVtIC5tZW51LWl0ZW0tY2hlY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGNvbG9yOiB2YXIoLS1taS1pY29uKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby1tZW51LWl0ZW0gLm1lbnUtaXRlbS1pY29uIHN2Zyxcbi5xZG5hcHJvLW1lbnUtaXRlbSAubWVudS1pdGVtLWNoZXZyb24gc3ZnLFxuLnFkbmFwcm8tbWVudS1pdGVtIC5tZW51LWl0ZW0tY2hlY2sgc3ZnIHtcbiAgZmlsbDogY3VycmVudENvbG9yO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnFkbmFwcm8tbWVudS1pdGVtIC5tZW51LWl0ZW0tY2hldnJvbixcbi5xZG5hcHJvLW1lbnUtaXRlbSAubWVudS1pdGVtLWNoZWNrIHtcbiAgb3BhY2l0eTogMC44NTtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbSAubWVudS1pdGVtLWxhYmVsIHtcbiAgZmxleDogMSAwIDA7XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ucWRuYXByby1tZW51LWl0ZW0gLm1lbnUtaXRlbS1zaG9ydGN1dCB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBjb2xvcjogdmFyKC0tbWktdGV4dC1tdXRlZCk7XG4gIGZvbnQtZmFtaWx5OiBcIk1lbmxvXCIsIFwiTW9uYWNvXCIsIG1vbm9zcGFjZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuM3B4O1xufVxuLyogVHJhaWxpbmcgYXJlYSDigJQgYSBjb3VudCBwaWxsIChhbHdheXMgdmlzaWJsZSkgYW5kL29yIGhvdmVyLXJldmVhbGVkIGFjdGlvblxuICAgYnV0dG9ucyAob3BlbiArIHJlbW92ZSksIGdyb3VwZWQgYXQgdGhlIGVuZCBvZiB0aGUgcm93LiBUaGUgcGlsbCBzdGF5cyBwdXQ7XG4gICB0aGUgYWN0aW9ucyBmYWRlIGluIG9uIGhvdmVyL2ZvY3VzIHNvIHRoZSByb3cgaXMgY2xlYW4gYXQgcmVzdC4gW0tpbSAyMDI2LTA2LTE1XSAqL1xuLnFkbmFwcm8tbWVudS1pdGVtIC5tZW51LWl0ZW0tdHJhaWxpbmcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1hcmdpbi1sZWZ0OiA2cHg7XG59XG4ucWRuYXByby1tZW51LWl0ZW0gLm1lbnUtaXRlbS1waWxsIHsgZmxleC1zaHJpbms6IDA7IH1cbi8qIFRhZyDigJQgYSByZWFsIHFkbmFwcm8tdGFnIG9uIHRoZSB0cmFpbGluZyBlZGdlIChzdGF0dXMgbGFiZWw6XG4gICBcIk5pZXV3XCIgLyBcIlByb1wiIC8gXCJCZXRhXCIpLiBUaGUgbGFiZWwncyBmbGV4OjEgcHVzaGVzIGl0IHJpZ2h0OyBpdCBzaXRzXG4gICBCRUZPUkUgdGhlIHRyYWlsaW5nIHNsb3Qgc28gaXQgY29leGlzdHMgd2l0aCBhIGNoZXZyb24vY2hlY2svcGlsbC5cbiAgIGZsZXgtc2hyaW5rOjAgc28gaXQgbmV2ZXIgc3F1YXNoZXMgKHRoZSBsYWJlbCB0cnVuY2F0ZXMgZmlyc3QpLiBEaXNhYmxlZFxuICAgcm93IGZhZGVzIHRoZSB0YWcgKG9wYWNpdHkgMC40LCBzYW1lIHRyZWF0bWVudCBhcyB0aGUgYXZhdGFyKS4gW0tpbSAyMDI2LTA3LTIwXSAqL1xuLnFkbmFwcm8tbWVudS1pdGVtIC5tZW51LWl0ZW0tdGFnIHsgZmxleC1zaHJpbms6IDA7IH1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0tZGlzYWJsZWQgLm1lbnUtaXRlbS10YWcgeyBvcGFjaXR5OiAwLjQ7IH1cbi8qIFRhZy1hcy1sYWJlbCBtb2RlIOKAlCB0aGUgdGFnIElTIHRoZSByb3cgY29udGVudCAobGVmdCBhZnRlciB0aGUgbGVhZGluZ1xuICAgc2xvdCksIGZvciBjaGVja2JveCArIGNvbG91cmVkLXRhZyBjYXRlZ29yeSBwaWNrZXJzLiBUaGUgd3JhcHBlciB0YWtlcyB0aGVcbiAgIGZsZXg6MSBsYWJlbCBzbG90IHNvIHRoZSB0YWcgaHVncyBpdHMgY29udGVudCBvbiB0aGUgbGVmdCBhbmQgdGhlIHJvdyBrZWVwc1xuICAgYSBjb25zaXN0ZW50IGhlaWdodDsgbG9uZyB0YWcgdGV4dCBjbGlwcyBhdCB0aGUgd3JhcHBlciBlZGdlLiBbS2ltIDIwMjYtMDctMjBdICovXG4ucWRuYXByby1tZW51LWl0ZW0gLm1lbnUtaXRlbS10YWctbGFiZWwge1xuICBmbGV4OiAxIDAgMDtcbiAgbWluLXdpZHRoOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnFkbmFwcm8tbWVudS1pdGVtIC5tZW51LWl0ZW0tdGFnLWxhYmVsIC5tZW51LWl0ZW0tdGFnIHsgbWF4LXdpZHRoOiAxMDAlOyB9XG4ucWRuYXByby1tZW51LWl0ZW0gLm1lbnUtaXRlbS1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAycHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7XG59XG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLXdpdGgtYWN0aW9uczpob3ZlciAubWVudS1pdGVtLWFjdGlvbnMsXG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLXdpdGgtYWN0aW9uczpmb2N1cy13aXRoaW4gLm1lbnUtaXRlbS1hY3Rpb25zIHsgb3BhY2l0eTogMTsgfVxuLnFkbmFwcm8tbWVudS1pdGVtIC5tZW51LWl0ZW0tYmFkZ2Uge1xuICBmbGV4LXNocmluazogMDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBjb2xvcjogdmFyKC0tbWktdGV4dCk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0tc2l6ZS1kZWZhdWx0IHtcbiAgZ2FwOiAxMnB4O1xuICBtaW4taGVpZ2h0OiA0MHB4O1xuICBwYWRkaW5nOiA4cHggMTZweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS1zaXplLWRlZmF1bHQgLm1lbnUtaXRlbS1pY29uIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0tc2l6ZS1kZWZhdWx0IC5tZW51LWl0ZW0tY2hldnJvbiB7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG59XG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLXNpemUtZGVmYXVsdCAubWVudS1pdGVtLWNoZWNrIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0tc2l6ZS1kZWZhdWx0IC5tZW51LWl0ZW0tc2hvcnRjdXQge1xuICBmb250LXNpemU6IDEycHg7XG59XG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLXNpemUtZGVmYXVsdCAubWVudS1pdGVtLWJhZGdlIHtcbiAgbWluLXdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIHBhZGRpbmc6IDAgNnB4O1xuICBib3JkZXItcmFkaXVzOiA5cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XG59XG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLXNpemUtc21hbGwge1xuICBnYXA6IDEycHg7XG4gIG1pbi1oZWlnaHQ6IDI4cHg7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0tc2l6ZS1zbWFsbCAubWVudS1pdGVtLWljb24ge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS1zaXplLXNtYWxsIC5tZW51LWl0ZW0tY2hldnJvbiB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG59XG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLXNpemUtc21hbGwgLm1lbnUtaXRlbS1jaGVjayB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG59XG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLXNpemUtc21hbGwgLm1lbnUtaXRlbS1zaG9ydGN1dCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0tc2l6ZS1zbWFsbCAubWVudS1pdGVtLWJhZGdlIHtcbiAgbWluLXdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIHBhZGRpbmc6IDAgNXB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG59XG4ucWRuYXByby1tZW51LWl0ZW06aG92ZXI6bm90KC5tZW51LWl0ZW0tZGlzYWJsZWQpOm5vdCgubWVudS1pdGVtLWFjdGl2ZSkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1taS1iZy1ob3Zlcik7XG59XG4ucWRuYXByby1tZW51LWl0ZW06YWN0aXZlOm5vdCgubWVudS1pdGVtLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW1pLWJnLXByZXNzZWQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnFkbmFwcm8tbWVudS1pdGVtOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbTpmb2N1cy12aXNpYmxlLCAucWRuYXByby1tZW51LWl0ZW0uZm9yY2UtZm9jdXMge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tbWktZm9jdXMtcmluZyk7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICBib3gtc2hhZG93OiAwIDAgMCA0cHggdmFyKC0tbWktZm9jdXMtZ2xvdyk7XG59XG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW1pLWJnLXNlbGVjdGVkKTtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5mb3JjZS1ob3Zlcjpub3QoLm1lbnUtaXRlbS1kaXNhYmxlZCk6bm90KC5tZW51LWl0ZW0tYWN0aXZlKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW1pLWJnLWhvdmVyKTtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5mb3JjZS1wcmVzc2VkOm5vdCgubWVudS1pdGVtLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW1pLWJnLXByZXNzZWQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS1kaXNhYmxlZCB7XG4gIGNvbG9yOiB2YXIoLS1taS1kaXNhYmxlZC10ZXh0KSAhaW1wb3J0YW50O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0tZGlzYWJsZWQgLm1lbnUtaXRlbS1pY29uLFxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS1kaXNhYmxlZCAubWVudS1pdGVtLWNoZXZyb24sXG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLWRpc2FibGVkIC5tZW51LWl0ZW0tY2hlY2sge1xuICBjb2xvcjogdmFyKC0tbWktZGlzYWJsZWQtdGV4dCk7XG59XG4vKiBGYWRlIGlsbHVzdHJhdGl2ZSBsZWFkaW5nIHZpc3VhbHMgKGNvbG91cmVkIGFjdGl2aXR5LWljb24sIGF2YXRhciwgZmlsZS1pY29uKVxuICAgd2hlbiB0aGUgcm93IGlzIGRpc2FibGVkIOKAlCB0aGV5IGRvbid0IHBpY2sgdXAgdGhlIHRleHQgY29sb3VyLCBzbyB3aXRob3V0IHRoaXNcbiAgIHRoZXkgc3RheSB2aXZpZCBhbmQgdGhlIHJvdyBkb2Vzbid0IHJlYWQgYXMgZGlzYWJsZWQuIE5COiB0YXJnZXQgdGhlIGVsZW1lbnRcbiAgIFRBR1MsIG5vdCB0aGUgbWVudS1pdGVtLSogY2xhc3NlcyDigJQgcWRuYXByby1hY3Rpdml0eS1pY29uIC8gcWRuYXByby1maWxlLWljb25cbiAgIG92ZXJ3cml0ZSB0aGVpciBvd24gY2xhc3NOYW1lIG9uIHJlbmRlciwgc28gdGhlIGNsYXNzIHNlbGVjdG9ycyBuZXZlciBtYXRjaC5cbiAgIFtLaW0gMjAyNi0wNi0xNV0gKi9cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0tZGlzYWJsZWQgcWRuYXByby1hY3Rpdml0eS1pY29uLFxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS1kaXNhYmxlZCAubWVudS1pdGVtLWF2YXRhci13cmFwLFxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS1kaXNhYmxlZCBxZG5hcHJvLWZpbGUtaWNvbiB7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0tdmFyaWFudC1kZXN0cnVjdGl2ZTpub3QoLm1lbnUtaXRlbS1kaXNhYmxlZCkge1xuICAtLW1pLWJnLWhvdmVyOiB2YXIoLS1taS1kZXN0cnVjdGl2ZS1iZy1ob3Zlcik7XG4gIGNvbG9yOiB2YXIoLS1taS1kZXN0cnVjdGl2ZS10ZXh0KTtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0tdmFyaWFudC1kZXN0cnVjdGl2ZTpub3QoLm1lbnUtaXRlbS1kaXNhYmxlZCkgLm1lbnUtaXRlbS1pY29uLFxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS12YXJpYW50LWRlc3RydWN0aXZlOm5vdCgubWVudS1pdGVtLWRpc2FibGVkKSAubWVudS1pdGVtLWNoZXZyb24sXG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLXZhcmlhbnQtZGVzdHJ1Y3RpdmU6bm90KC5tZW51LWl0ZW0tZGlzYWJsZWQpIC5tZW51LWl0ZW0tY2hlY2sge1xuICBjb2xvcjogdmFyKC0tbWktZGVzdHJ1Y3RpdmUtdGV4dCk7XG59XG4ucWRuYXByby1tZW51LWl0ZW0gLm1lbnUtaXRlbS1hY3Rpdml0eS1pY29uIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1hcmdpbi1yaWdodDogLThweDtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0tZGlzYWJsZWQgLm1lbnUtaXRlbS1hY3Rpdml0eS1pY29uIHtcbiAgb3BhY2l0eTogMC4zO1xufVxuLnFkbmFwcm8tbWVudS1pdGVtIC5tZW51LWl0ZW0tY2lyY2xlIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1hcmdpbi1yaWdodDogLTRweDtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0td2l0aC1jaXJjbGUgLm1lbnUtaXRlbS1sYWJlbCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS13aXRoLWNoZWNrYm94Lm1lbnUtaXRlbS1zaXplLWRlZmF1bHQge1xuICBwYWRkaW5nOiA4cHggNHB4O1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS13aXRoLWNoZWNrYm94Lm1lbnUtaXRlbS1zaXplLXNtYWxsIHtcbiAgcGFkZGluZzogNHB4O1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS13aXRoLWNoZWNrYm94IC5tZW51LWl0ZW0tY2hlY2tib3gtd3JhcCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHBhZGRpbmc6IDAgNHB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0td2l0aC1jaGVja2JveCAubWVudS1pdGVtLWNoZWNrYm94IHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLXdpdGgtYXZhdGFyLm1lbnUtaXRlbS1zaXplLWRlZmF1bHQge1xuICBwYWRkaW5nOiA4cHggNHB4O1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS13aXRoLWF2YXRhci5tZW51LWl0ZW0tc2l6ZS1zbWFsbCB7XG4gIHBhZGRpbmc6IDRweDtcbiAgLyogU21hbGwgKyBhdmF0YXIgKGUuZy4gYSB1c2VyLXBpY2tlciBxZG5hcHJvLXNlbGVjdCk6IHRoZSBkZWZhdWx0IDEycHggcm93XG4gICAgIGdhcCBwbHVzIHRoZSBhdmF0YXItd3JhcCBzaWRlIHBhZGRpbmcgbGVmdCB0aGUgcmFkaW8sIGF2YXRhciBhbmQgbGFiZWwgdG9vXG4gICAgIGZhciBhcGFydC4gVGlnaHRlbiBzbyBhdmF0YXIgKyBsYWJlbCByZWFkIGFzIG9uZSB1bml0LiBbS2ltIDIwMjYtMDctMjBdICovXG4gIGdhcDogNnB4O1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS13aXRoLWF2YXRhci5tZW51LWl0ZW0tc2l6ZS1zbWFsbCAubWVudS1pdGVtLWF2YXRhci13cmFwIHtcbiAgcGFkZGluZzogMCAxcHg7XG59XG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLXdpdGgtYXZhdGFyIC5tZW51LWl0ZW0tYXZhdGFyLXdyYXAge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBwYWRkaW5nOiAwIDRweDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLXdpdGgtYXZhdGFyIC5tZW51LWl0ZW0tYXZhdGFyIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLXdpdGgtYXZhdGFyLm1lbnUtaXRlbS1kaXNhYmxlZCAubWVudS1pdGVtLWF2YXRhci13cmFwIHtcbiAgb3BhY2l0eTogMC40O1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS13aXRoLXJhZGlvLm1lbnUtaXRlbS1zaXplLWRlZmF1bHQge1xuICBwYWRkaW5nOiA4cHggNHB4O1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS13aXRoLXJhZGlvLm1lbnUtaXRlbS1zaXplLXNtYWxsIHtcbiAgcGFkZGluZzogNHB4O1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS13aXRoLXJhZGlvIC5tZW51LWl0ZW0tcmFkaW8td3JhcCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHBhZGRpbmc6IDAgNHB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0td2l0aC1yYWRpbyAubWVudS1pdGVtLXJhZGlvIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLWNvbG9yLWFjdGlvbiB7XG4gIC0tbWktdGV4dDogI2ZmZmZmZjtcbiAgLS1taS10ZXh0LW11dGVkOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gIC0tbWktaWNvbjogI2ZmZmZmZjtcbiAgLS1taS1iZy1ob3ZlcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgLS1taS1iZy1wcmVzc2VkOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjIpO1xuICAtLW1pLWJnLXNlbGVjdGVkOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpO1xuICAtLW1pLWRpc2FibGVkLXRleHQ6IHZhcigtLWMtdGV4dC1kaXNhYmxlZC1wcCk7XG4gIC0tbWktZGVzdHJ1Y3RpdmUtdGV4dDogdmFyKC0tYy13YXJuLXJlZC0zMDApO1xuICAtLW1pLWRlc3RydWN0aXZlLWJnLWhvdmVyOiByZ2JhKDI1NSwgMTU1LCAxNTUsIDAuMTgpO1xuICAtLW1pLWZvY3VzLXJpbmc6ICNmZmZmZmY7XG4gIC0tbWktZm9jdXMtZ2xvdzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0tY29sb3ItYWN0aW9uIC5tZW51LWl0ZW0tYmFkZ2Uge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjIpO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLW1lbnUtaXRlbSB7XG4gIC0tbWktdGV4dDogI2UxZTNlNjtcbiAgLS1taS10ZXh0LW11dGVkOiByZ2JhKDIyNSwgMjI3LCAyMzAsIDAuNik7XG4gIC0tbWktaWNvbjogI2UxZTNlNjtcbiAgLS1taS1iZy1ob3ZlcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTtcbiAgLS1taS1iZy1wcmVzc2VkOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpO1xuICAtLW1pLWJnLXNlbGVjdGVkOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTApO1xuICAtLW1pLWRpc2FibGVkLXRleHQ6ICM2YjcyODA7XG4gIC0tbWktZGVzdHJ1Y3RpdmUtdGV4dDogI2ZmOWI5YjtcbiAgLS1taS1kZXN0cnVjdGl2ZS1iZy1ob3ZlcjogcmdiYSgyNTUsIDE1NSwgMTU1LCAwLjE0KTtcbiAgLS1taS1mb2N1cy1yaW5nOiAjYTVhY2ZmO1xuICAtLW1pLWZvY3VzLWdsb3c6IHJnYmEoNzAsIDgyLCAyNDMsIDAuNCk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1tZW51LWl0ZW0gLm1lbnUtaXRlbS1iYWRnZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCk7XG4gIGNvbG9yOiB2YXIoLS1taS10ZXh0KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0tY29sb3ItYWN0aW9uIHtcbiAgLS1taS1iZy1ob3ZlcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEwKTtcbiAgLS1taS1iZy1wcmVzc2VkOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjQpO1xuICAtLW1pLWJnLXNlbGVjdGVkOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpO1xufVxuXG4vKiA9PT0gZGVzY3JpcHRpb24gdmFyaWFudCDigJQgbGFiZWwgKyBzdWItdGV4dCAoRmlnbWEgOTc5NDoyNDM3MTUpID09PSAqL1xuLnFkbmFwcm8tbWVudS1pdGVtIHsgLS1taS1kZXNjcmlwdGlvbi10ZXh0OiB2YXIoLS1jLWdyZXktNTAwKTsgfVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbWVudS1pdGVtIHsgLS1taS1kZXNjcmlwdGlvbi10ZXh0OiAjODk4ZTk5OyB9XG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLWNvbG9yLWFjdGlvbiB7IC0tbWktZGVzY3JpcHRpb24tdGV4dDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpOyB9XG4ucWRuYXByby1tZW51LWl0ZW0gLm1lbnUtaXRlbS1sYWJlbC1ncm91cCB7XG4gIGZsZXg6IDEgMCAwO1xuICBtaW4td2lkdGg6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMDtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbSAubWVudS1pdGVtLWxhYmVsLWdyb3VwIC5tZW51LWl0ZW0tbGFiZWwge1xuICBmbGV4OiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbSAubWVudS1pdGVtLWRlc2NyaXB0aW9uIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBsaW5lLWhlaWdodDogMTRweDtcbiAgY29sb3I6IHZhcigtLW1pLWRlc2NyaXB0aW9uLXRleHQpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0tZGlzYWJsZWQgLm1lbnUtaXRlbS1kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiB2YXIoLS1taS1kaXNhYmxlZC10ZXh0KTtcbn1cbi8qID09PSBFTkQgZGVzY3JpcHRpb24gdmFyaWFudCBDU1MgPT09ICovXG5cbi8qID09PSBNYW5kYXRvcnkgbWFya2VyIChyZWQgYXN0ZXJpc2sgYmVmb3JlIHRoZSBsYWJlbCkg4oCUIG1hdGNoZXMgdGhlIHVuaXQtY2FyZFxuICAgbWFuZGF0b3J5IGNvbnZlbnRpb24gKHZhcigtLWMtZmF2b3JpdGUtaGVhcnQpKS4gUHJlZml4ZWQgaW5zaWRlIC5tZW51LWl0ZW0tbGFiZWwgc28gaXQgc3RheXNcbiAgIGdsdWVkIHRvIHRoZSBuYW1lIGFuZCBjbGlwcyB0b2dldGhlciB3aXRoIGl0LiBbS2ltIDIwMjYtMDctMTVdID09PSAqL1xuLnFkbmFwcm8tbWVudS1pdGVtIC5tZW51LWl0ZW0tbGFiZWwgLm1lbnUtaXRlbS1tYW5kYXRvcnktbWFyayB7XG4gIGNvbG9yOiB2YXIoLS1jLWZhdm9yaXRlLWhlYXJ0KTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XG59XG5cbi8qIFN0YXR1cyBjaXJjbGUtY29sb3IgdmFsdWVzIChwbGFubmVyIHN0YXR1cyBmaWx0ZXIsIDE2LjA3LjIwMjYpIHVzZWQgdG8gYmVcbiAgIHBhaW50ZWQgaGVyZSB2aWEgYSBtZW51LWl0ZW0tc2NvcGVkIG92ZXJyaWRlIGNsYXNzICgubWVudS1pdGVtLWNpcmNsZS1cbiAgIHN0YXR1cy0qKSBpbnN0ZWFkIG9mIGxhYmVsLWNpcmNsZSdzIG93biBgY29sb3JgIGF0dHJpYnV0ZSwgYmVjYXVzZSB0aG9zZVxuICAgNCBuYW1lcyBkaWRuJ3QgZXhpc3QgaW4gcWRuYXByby1sYWJlbC1jaXJjbGUncyBWQUxJRF9DT0xPUlMuIFRoYXQgb3ZlcnJpZGVcbiAgIG5ldmVyIGFjdHVhbGx5IHdvcmtlZDogbGFiZWwtY2lyY2xlJ3Mgb3duIHJlbmRlcigpIHVuY29uZGl0aW9uYWxseVxuICAgcmV3cml0ZXMgaXRzIGNsYXNzTmFtZSBvbiBldmVyeSByZS1yZW5kZXIgKHNlZSBxZG5hLWxhYmVsLWNpcmNsZS5qcyksIHNvXG4gICB0aGUgb3ZlcnJpZGUgY2xhc3Mgd2FzIHdpcGVkIHRoZSBpbnN0YW50IHRoZSBjaXJjbGUgY29ubmVjdGVkIHRvIHRoZSBET01cbiAgIOKAlCBldmVyeSBzdGF0dXMgZG90IHJlbmRlcmVkIGdyZXkvZW1wdHkgKEtpbSdzIGxpdmUgdGVzdCwgMTYuMDcuMjAyNikuXG4gICBGaXhlZCBhdCB0aGUgcmVhbCBjYXVzZTogdGhlIDQgc3RhdHVzLSogbmFtZXMgYXJlIG5vdyBmaXJzdC1jbGFzcyBjb2xvcnNcbiAgIG9uIHFkbmFwcm8tbGFiZWwtY2lyY2xlIGl0c2VsZiAoc2VlIF9sYWJlbC1jaXJjbGUuc2NzcykgYW5kIHBhc3NlZFxuICAgdGhyb3VnaCBhcyBhIG5vcm1hbCBgY29sb3JgIGF0dHJpYnV0ZSBmcm9tIHFkbmEtbWVudS1pdGVtLmpzIOKAlCBub3RoaW5nXG4gICBtZW51LWl0ZW0tc2NvcGVkIGxlZnQgdG8gb3ZlcnJpZGUgaGVyZS4gKi9cbiIsIi8vIEVlbiBub2cgbmlldCBvcGdlc3RhcnQgPHFkbmFwcm8tbW9kYWw+IG1hZyBOSUVUUyB0b25lbjogZGUgYnJvd3NlciByZW5kZXJ0XG4vLyB6J24gbGlnaHQtRE9NLWtpbmRlcmVuIGFuZGVycyBhbHMgZ2V3b25lIHRla3N0LCBlbiBlZW4gbW9kYWwgaG9vcnQgZGljaHQgdGVcbi8vIHN0YWFuLiBaZWxmZGUgcGF0cm9vbiBhbHMgcWRuYXByby1zZWFyY2gtb3ZlcmxheSBlbiBxZG5hcHJvLXBvcG92ZXIuXG4vLyDimqDvuI8gRGV6ZSByZWdlbCBrb210IGluIHN0eWxlLXYxLmNzcyB0ZXJlY2h0LiBTdGFhdCBkaWUgc3R5bGVzaGVldCBvcCBlZW4gcGFnaW5hXG4vLyBMQUFHIGdlbGlua3QgKGRlIGZsb3cgZWRpdG9yIGRvZXQgZGF0KSwgZGFuIGtvbXQgaGlqIHRlIGxhYXQgb20gZGUgZmxpdHMgdGVcbi8vIHZvb3Jrb21lbiDigJQgZGFhciBzdGFhdCBkYWFyb20gw7PDs2sgZWVuIGlubGluZSByZWdlbCBib3ZlbmFhbiBkZSBwYWdpbmEuXG5xZG5hcHJvLW1vZGFsOm5vdCg6ZGVmaW5lZCkgeyBkaXNwbGF5OiBub25lOyB9XG5cbi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL21vZGFsL19tb2RhbC1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIHFkbmFwcm8tbW9kYWwgY29tcGlsZWQgQ1NTXG4gICBFeHRyYWN0ZWQgZnJvbSBxZG5hLW1vZGFsLXByZXZpZXcuaHRtbCBzbyB0aGUgYnVuZGxlIGNhbiBzaGlwXG4gICBtb2RhbCBzdHlsaW5nIHRvIGFueSB2MS92MiBwYWdlIChLaW0gMjAyNi0wNS0yOSkuXG4gICBUd28tbGF5ZXIgY2FyZDogb3V0ZXIgR1JFWSBmcmFtZSBhcm91bmQgaW5uZXIgV0hJVEUgd2luZG93LlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ucWRuYXByby1tb2RhbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDA7XG4gIHotaW5kZXg6IDkwMDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tbW9kYWwubW9kYWwtb3BlbiB7IGRpc3BsYXk6IGZsZXg7IHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9XG5cbi8qIEJvb3RzdHJhcCAoZ2xvYmFsbHkgbG9hZGVkIGluIHYxKSBkZWZpbmVzIC5tb2RhbC1kaWFsb2cgd2l0aFxuICAgYHBvaW50ZXItZXZlbnRzOiBub25lYCAoYW5kIC5tb2RhbC1jb250ZW50IHdpdGggYGF1dG9gIHRvIHJlLWVuYWJsZVxuICAgaW5zaWRlKS4gT3VyIHYyIG1vZGFsIHJldXNlcyB0aGUgLm1vZGFsLWRpYWxvZyAvIC5tb2RhbC13aW5kb3dcbiAgIGNsYXNzIG5hbWVzLCBzbyBCb290c3RyYXAncyBydWxlIG1ha2VzIGNsaWNrcyBmYWxsIHRocm91Z2ggdG8gdGhlXG4gICBiYWNrZHJvcCA9IG1vZGFsIGNsb3NlcyBvbiBldmVyeSBpbnRlcmFjdGlvbi5cbiAgIFJlLWVuYWJsZSBpbnRlcmFjdGlvbiBleHBsaWNpdGx5IHdoZW4gdGhlIHYyIG1vZGFsIGlzIG9wZW4uICovXG4ucWRuYXByby1tb2RhbC5tb2RhbC1vcGVuIC5tb2RhbC1kaWFsb2csXG4ucWRuYXByby1tb2RhbC5tb2RhbC1vcGVuIC5tb2RhbC13aW5kb3cgeyBwb2ludGVyLWV2ZW50czogYXV0bzsgfVxuXG4vKiBCb290c3RyYXAgYWxzbyBhZGRzIHZpc3VhbCBib3JkZXJzIG9uIC5tb2RhbC1oZWFkZXIgKGJvcmRlci1ib3R0b20pXG4gICBhbmQgLm1vZGFsLWZvb3RlciAoYm9yZGVyLXRvcCkuIE91ciB2MiBkZXNpZ24gdXNlcyBwYWRkaW5nLWJhc2VkXG4gICBzZXBhcmF0aW9uLCBub3QgYm9yZGVyLWtleWxpbmVzLiBaZXJvIHRoZW0gb3V0IHNvIHRoZSBjYXNjYWRlXG4gICBmcm9tIEJvb3RzdHJhcCBjYW4ndCBkcmF3IHN0cmF5IGxpbmVzLiAqL1xuLnFkbmFwcm8tbW9kYWwgLm1vZGFsLWhlYWRlciB7IGJvcmRlci1ib3R0b206IDAgIWltcG9ydGFudDsgfVxuLnFkbmFwcm8tbW9kYWwgLm1vZGFsLWZvb3RlciB7IGJvcmRlci10b3A6IDAgIWltcG9ydGFudDsgfVxuXG4vKiBCb290c3RyYXAgYWxzbyBpbmplY3RzIHNpYmxpbmctbWFyZ2lucyBvbiBtb2RhbC1mb290ZXIgY2hpbGRyZW5cbiAgICgubW9kYWwtZm9vdGVyID4gOm5vdCg6Zmlyc3QtY2hpbGQpIHsgbWFyZ2luLWxlZnQ6IDAuMjVyZW0gfSwgYW5kXG4gICA6bm90KDpsYXN0LWNoaWxkKSB7IG1hcmdpbi1yaWdodDogMC4yNXJlbSB9KS4gT24gYSAyLWJ1dHRvbiBmb290ZXJcbiAgIHRoYXQgYWRkcyA4cHggZXh0cmEgdG8gb3VyIGBnYXA6IDE2cHhgIOKGkiB2aXN1YWwgZ2FwIGJlY29tZXMgMjRweFxuICAgKD0gNDggZGV2aWNlLXB4IG9uIHJldGluYSkuIFplcm8gdGhlIHNpYmxpbmctbWFyZ2lucyBzbyB0aGVcbiAgIGRlY2xhcmVkIGdhcCBpcyB0aGUgYWN0dWFsIGdhcC4gKi9cbi5xZG5hcHJvLW1vZGFsIC5tb2RhbC1mb290ZXIgPiAqIHtcbiAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi8qIOKUgOKUgCBHRUVOIGNvdW50ZXItem9vbSAobWVlcikg4oCUIHZlcndpamRlcmQgMjAyNi0wOC0wMywgZW4gZGl0IGlzIGRlIHVpdGxlZyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgIEhpZXIgc3RvbmQgYC5xZG5hcHJvLW1vZGFsLCAucWRuYXByby1zZWxlY3QtcG9wb3ZlciB7IHpvb206IDEuMjUgfWAsIG9tIGRlIGxlZ2FjeVxuICAgYGJvZHkgeyB6b29tOiAwLjggfWAgdmFuIGRlIG91ZGUgYmFja29mZmljZSB0ZSBjb21wZW5zZXJlbjogMC44IMOXIDEuMjUgPSAxLjAsIHpvZGF0IGVlblxuICAgcG9zaXRpb24tZml4ZWQga2luZCAoZGUgbW9kYWwgZW4gZGUgc2VsZWN0LXBvcG92ZXIgaGFuZ2VuIGJlaWRlIGFhbiA8Ym9keT4pIG9wIGRlIGp1aXN0ZSBwbGVrXG4gICBsYW5kZGUgaW4gcGxhYXRzIHZhbiBvcCAwLjggw5cgZGUgcGxlay5cblxuICAgRGllIDAuOCBiZXJlaWt0IGVlbiB2MS1wYWdpbmEgbmlldCBtZWVyLiBIaWogc3RhYXQgYWxsZWVuIG5vZyBpbiBgd2ViL2Nzcy9zdHlsZS5jc3NgIChhbHNcbiAgIGBib2R5IHsgem9vbTogNzIlIH1gKSwgZW4gZGllIHN0eWxlc2hlZXQgd29yZHQgdWl0c2x1aXRlbmQgZ2VsYWRlbiBkb29yIGRlIExFR0FDWSBoZWFkZXJzXG4gICAoYFZpZXcvY29tcG9uZW50cy9oZWFkZXIuaHRtbGAsIGBWaWV3L05ld0Rlc2lnbi9jb21wb25lbnRzL2hlYWRlci5odG1sYCkg4oCUIGVuIGRpZSBsYWRlbiBnw6nDqW5cbiAgIGBzdHlsZS12MS5jc3NgIGVuIGfDqcOpbiBgY29tcG9uZW50cy5qc2AsIGR1cyBkYWFyIGJlc3RhYXQgZ2VlbiB2Mi1tb2RhbCBvbSB0ZSBzY2hhbGVuLiBHZW1ldGVuXG4gICBvcCBlZW4gdjEtcGFnaW5hOiBgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS56b29tYCA9IDEuXG5cbiAgIEhldCBnZXZvbGcgd2FzIGVlbiBrbm9vcDogZGUgMS4yNSBoYWQgbmlldHMgdGUgY29tcGVuc2VyZW4sIGR1cyDDqWxrZSBtb2Rlcm5lIHBhZ2luYSB6ZXR0ZSBoZW1cbiAgIHdlZXIgdWl0IOKAlCBlbiDDqcOpbiB2YW4gZGllIG5ldXRyYWxpc2F0aWVzIChpbiBgcGFydGlhbHMvX2luYm94LnNjc3NgKSB3YXMgTklFVCBwYWdpbmEtZ2VzY29vcHRcbiAgIGVuIGRlZWQgaGV0IGR1cyBhcHAtYnJlZWQuIE5ldHRvIHN0b25kIGFsbGVzIG9wIDEsIG1hYXIgdmlhIHR3ZWUgcmVnZWxzIGRpZSBlbGthYXIgb3BoZWZmZW4uXG4gICDimqDvuI8gWmV0IGhlbSBuaWV0IHRlcnVnIFwidm9vciBkZSB6ZWtlcmhlaWRcIjogZGFuIHdvcmR0IMOpbGsgdmVuc3RlciAyNSUgdGUgZ3Jvb3Qgb3AgZWxrZSBwYWdpbmFcbiAgICAgIGRpZSBnZWVuIGVpZ2VuIG5ldXRyYWxpc2F0aWUgaGVlZnQuIEtvbXQgZGUgbGVnYWN5IGJvZHktem9vbSBvb2l0IHRlcnVnIG9wIGVlbiBwYWdpbmEgZGllXG4gICAgICB3w6lsIHYyLWNvbXBvbmVudGVuIGxhYWR0LCBkYW4gaG9vcnQgZGUgY29ycmVjdGllIFBBR0lOQS1nZXNjb29wdCBiaWogZGllIHBhZ2luYSB0ZSBzdGFhbi5cbiAgIOKTmCBFciBzdGFhdCBub2cgZWVuIGRvZGUgYHpvb206IDFgIGluIGBwcm9qZWN0cy12Mi5odG1sYCwgYGhvbWUtdjIuaHRtbGAgZW4gYGZsb3dlZGl0b3IuaHRtbGAuXG4gICAgIERpZSBkb2VuIG5pZXRzIG1lZXIgKDEgb3AgaWV0cyBkYXQgYWwgMSBpcykgZW4gbW9nZW4gd2VnIHpvZHJhIGllbWFuZCBkaWUgcGFnaW5hJ3MgYWFucmFha3QuICovXG5cbi5xZG5hcHJvLW1vZGFsIC5tb2RhbC1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDA7XG4gIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAyNHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDExLCAxMSwgMTMsIDAuNDUpO1xuICBhbmltYXRpb246IHFkbmFwcm8tbW9kYWwtYmFja2Ryb3AtaW4gMTYwbXMgZWFzZS1vdXQ7XG59XG5cbi8qIE9VVEVSIEdSRVkgQ0FSRCAqL1xuLnFkbmFwcm8tbW9kYWwgLm1vZGFsLWRpYWxvZyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7XG4gIGJvcmRlcjogMC41cHggc29saWQgI2ZmZmZmZjtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgcGFkZGluZzogOHB4O1xuICBib3gtc2hhZG93OlxuICAgIDAgNHB4IDRweCAgcmdiYSgwLCAwLCAwLCAwLjMwKSxcbiAgICAwIDhweCAxMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTsgbWF4LXdpZHRoOiA1NjBweDsgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDQ4cHgpO1xuICBhbmltYXRpb246IHFkbmFwcm8tbW9kYWwtZGlhbG9nLWluIDIwMG1zIGN1YmljLWJlemllcigwLjIsIDAuOCwgMC4yLCAxKTtcbn1cbi5xZG5hcHJvLW1vZGFsLm1vZGFsLXNpemUtc21hbGwgICAubW9kYWwtZGlhbG9nIHsgbWF4LXdpZHRoOiA0MDBweDsgIH1cbi5xZG5hcHJvLW1vZGFsLm1vZGFsLXNpemUtbWVkaXVtICAubW9kYWwtZGlhbG9nIHsgbWF4LXdpZHRoOiA1NjBweDsgIH1cbi5xZG5hcHJvLW1vZGFsLm1vZGFsLXNpemUtbGFyZ2UgICAubW9kYWwtZGlhbG9nIHsgbWF4LXdpZHRoOiA4MDBweDsgIH1cbi5xZG5hcHJvLW1vZGFsLm1vZGFsLXNpemUteGxhcmdlICAubW9kYWwtZGlhbG9nIHsgbWF4LXdpZHRoOiAxMDAwcHg7IH1cbi5xZG5hcHJvLW1vZGFsLm1vZGFsLXNpemUteHhsYXJnZSAubW9kYWwtZGlhbG9nIHsgbWF4LXdpZHRoOiAxMTAwcHg7IH1cblxuLyogTGF5b3V0OiB3aXRoLWluZm8gLSBsZWZ0IHNpZGUgaW5mby1wYW5lbCAqL1xuLnFkbmFwcm8tbW9kYWwubW9kYWwtbGF5b3V0LXdpdGgtaW5mbyAubW9kYWwtZGlhbG9nIHsgZ2FwOiA4cHg7IH1cbi5xZG5hcHJvLW1vZGFsIC5tb2RhbC1pbmZvIHtcbiAgLyogMjgwcHggYmxpamZ0IGRlIGRlZmF1bHQ7IGBpbmZvLXdpZHRoPVwiTlwiYCBvcCBkZSBtb2RhbCB6ZXQgLS1tb2RhbC1pbmZvLXcgZW5cbiAgICAgbWFha3QgaGV0IHBhbmVlbCBzbWFsbGVyIHpvbmRlciBkZXplIHJlZ2VsIHRlIG92ZXJzY2hyaWp2ZW4uIFtLaW0gMDUuMDguMjAyNl0gKi9cbiAgZmxleDogMCAwIHZhcigtLW1vZGFsLWluZm8tdywgMjgwcHgpOyBtaW4td2lkdGg6IDA7IHBhZGRpbmc6IDE2cHg7XG4gIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMTZweDtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMjJweDsgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICB6LWluZGV4OiAwO1xufVxuLnFkbmFwcm8tbW9kYWwgLm1vZGFsLWluZm8gcWRuYXByby1pY29uLFxuLnFkbmFwcm8tbW9kYWwgLm1vZGFsLWluZm8gPiAubW9kYWwtaW5mby1pY29uIHtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7IHdpZHRoOiAyNHB4OyBoZWlnaHQ6IDI0cHg7XG59XG4ucWRuYXByby1tb2RhbCAucWRuYXByby1tb2RhbC1pbmZvLXRpdGxlIHtcbiAgbWFyZ2luOiAwOyBmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiAyNHB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cbi5xZG5hcHJvLW1vZGFsIC5xZG5hcHJvLW1vZGFsLWluZm8taWxsdXN0cmF0aW9uIHtcbiAgbWFyZ2luLXRvcDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IC0xNnB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xNnB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgbWluLWhlaWdodDogMTYwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtaW5mby1pbGx1c3RyYXRpb24gcWRuYXByby1pbGx1c3RyYXRpb24sXG4ucWRuYXByby1tb2RhbCAucWRuYXByby1tb2RhbC1pbmZvLWlsbHVzdHJhdGlvbiBpbWcsXG4ucWRuYXByby1tb2RhbCAucWRuYXByby1tb2RhbC1pbmZvLWlsbHVzdHJhdGlvbiBzdmcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG4vKiBUaGUgaWxsdXN0cmF0aW9uIG11c3QgbmV2ZXIgZHJhdyBPVkVSIGl0cyBvd24gaW5mbyB0ZXh0LiBbSmFuIDI3LjA3LjIwMjZdXG4gICBXaHkgaXQgY291bGQ6IHRoZSBpbmZvIGNvbHVtbiBpcyBhIGZpeGVkLWhlaWdodCBmbGV4IGNvbHVtbiwgYW5kIHRoZSBhcnR3b3JrIGlzXG4gICBzaXplZCBieSBhc3BlY3QtcmF0aW8gZnJvbSBhIGZpeGVkIDI0MHB4IFdJRFRIIOKAlCBzZXZlcmFsIGlsbHVzdHJhdGlvbnMgYXJlIHBvcnRyYWl0XG4gICAoc2hhcmUgPSA4ODRweCB0YWxsIGF0IHdpZHRoIDI0MCwgaWRlYSA2MTAsIHRvb2wgNTU2LCBoYW5kcy1jaGVjayA1MDkpLCBzbyBhcyBzb29uIGFzXG4gICB0aGUgaWNvbit0aXRsZSt0ZXh0IG5vIGxvbmdlciBsZWZ0IHRoYXQgbXVjaCByb29tIHRoZSBmbGV4IGFsZ29yaXRobSBzaHJhbmsgdGhpcyBCT1hcbiAgIHdoaWxlIHRoZSBhcnR3b3JrIGluc2lkZSBrZXB0IGl0cyBoZWlnaHQsIGFuZCBgYWxpZ24taXRlbXM6IGZsZXgtZW5kYCB0aGVuIHB1c2hlZCB0aGVcbiAgIG92ZXJmbG93IFVQV0FSRFMgYWNyb3NzIHRoZSB0ZXh0LiBJdCBpcyB2aWV3cG9ydC1oZWlnaHQgZGVwZW5kZW50ICh0aGUgZGlhbG9nIGlzXG4gICBgbWluKDgwMHB4LCAxMDB2aCAtIDQ4cHgpYCksIHNvIHRoZSBzYW1lIG1vZGFsIHdhcyBmaW5lIG9uIGEgYmlnIHNjcmVlbiBhbmQgdW5yZWFkYWJsZVxuICAgb24gYSBsYXB0b3Ag4oCUIG1lYXN1cmVkIG9uIGEgNzIwcHgtdGFsbCB2aWV3cG9ydDogaGFuZHMtY2hlY2sgY292ZXJlZCA1NXB4IG9mIHRleHQgYXRcbiAgIDIyMSBjaGFyYWN0ZXJzLCBzaGFyZSBjb3ZlcmVkIDQzMHB4ICh0aXRsZSBpbmNsdWRlZCkuXG4gICBGaXg6IGxldCB0aGUgYXJ0d29yayBzY2FsZSBkb3duIGludG8gd2hhdGV2ZXIgaGVpZ2h0IHRoZSBib3ggZ2V0cywgc3RheWluZyBib3R0b20tbGVmdFxuICAgYW5jaG9yZWQsIGFuZCBjbGlwIGFzIGEgbGFzdCByZXNvcnQuIGBvYmplY3QtZml0OiBjb250YWluYCBrZWVwcyB0aGUgYXNwZWN0IHJhdGlvLCBzb1xuICAgd2hlbiB0aGVyZSBJUyByb29tIHRoZSBwYWludGVkIHBpeGVscyBhcmUgYnl0ZS1pZGVudGljYWwgdG8gYmVmb3JlICh2ZXJpZmllZCBieVxuICAgcGl4ZWwtZGlmZiBvdmVyIDkgZml0dGluZyBjYXNlcykuICovXG4ucWRuYXByby1tb2RhbCAucWRuYXByby1tb2RhbC1pbmZvLWlsbHVzdHJhdGlvbiB7IG92ZXJmbG93OiBoaWRkZW47IH1cbi5xZG5hcHJvLW1vZGFsIC5xZG5hcHJvLW1vZGFsLWluZm8taWxsdXN0cmF0aW9uIHFkbmFwcm8taWxsdXN0cmF0aW9uIHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDsgICAvKiBob3N0IGhlaWdodCA6PSB0aGUgKHBvc3NpYmx5IHNocnVuaykgYm94IGhlaWdodCAqL1xuICBtaW4taGVpZ2h0OiAwOyAgICAgICAgIC8qIC4uLmFuZCBsZXQgaXQgc2hyaW5rIGF0IGFsbCAqL1xufVxuLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtaW5mby1pbGx1c3RyYXRpb24gcWRuYXByby1pbGx1c3RyYXRpb24gaW1nLFxuLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtaW5mby1pbGx1c3RyYXRpb24gcWRuYXByby1pbGx1c3RyYXRpb24gc3ZnIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb250YWluO1xuICBvYmplY3QtcG9zaXRpb246IGxlZnQgYm90dG9tO1xufVxuXG4vKiBIb3Jpem9udGFhbCBnZWNlbnRyZWVyZGUgdGVrZW5pbmcgKDA0LjA4LjIwMjYsIEtpbSDigJQgZGUgbW9kYWwgXCJHZWtvcHBlbGRlXG4gICBkb2N1bWVudGVuXCIpLiBMaW5rc29uZGVyIGJsaWpmdCBkZSBzdGFuZGFhcmQ6IGRlIG1lZXN0ZSBpbGx1c3RyYXRpZXMgaGllciB6aWpuXG4gICBicmVlZCBlbiBsb3BlbiBiZXd1c3QgZGUgaG9layBpbi4gRWVuIEtMRUlORVJFIHRla2VuaW5nIChzaXplIDE2MCBpLnAudi4gMjQwKVxuICAgc3RhYXQgZGFhciBqdWlzdCBzY2hlZWYgaW4gaGV0IHBhbmVlbCwgZW4gZGFuIGlzIG1pZGRlbiBiZXRlci4gQXBhcnRlIG1vZGlmaWVyXG4gICBlbiBnZWVuIHBhZ2luYXJlZ2VsLCB6b2RhdCBlbGtlIG1vZGFsIGRlemVsZmRlIGtldXplIGthbiBtYWtlbi5cbiAgIFR3ZWUgZGluZ2VuIG5vZGlnOiBkZSBmbGV4Ym94LXVpdGxpam5pbmcgdmFuIGRlIGRvb3MsIGVuIGRlIG9iamVjdC1wb3NpdGlvbiB2YW5cbiAgIGhldCBwbGFhdGplIHplbGYgKGRhdCB3b3JkdCBkb29yIGRlIHJlZ2VsIGhpZXJib3ZlbiBsaW5rc29uZGVyIGdlemV0LCBlbiBkaWVcbiAgIGhlZWZ0IGRlemVsZmRlIHNwZWNpZmljaXRlaXQsIGR1cyBoaWogbW9ldCBleHBsaWNpZXQgbWVlKS4gVmVydGljYWFsIGJsaWpmdFxuICAgYWxsZXMgb25kZXJhYW4gaGFuZ2VuLiAqL1xuLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtaW5mby1pbGx1c3RyYXRpb24tLWNlbnRlciB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtaW5mby1pbGx1c3RyYXRpb24tLWNlbnRlciBxZG5hcHJvLWlsbHVzdHJhdGlvbiBpbWcsXG4ucWRuYXByby1tb2RhbCAucWRuYXByby1tb2RhbC1pbmZvLWlsbHVzdHJhdGlvbi0tY2VudGVyIHFkbmFwcm8taWxsdXN0cmF0aW9uIHN2ZyB7XG4gIG9iamVjdC1wb3NpdGlvbjogY2VudGVyIGJvdHRvbTtcbn1cblxuLyogQm9keSB1dGlsaXR5IGNsYXNzZXMgKi9cbi5xZG5hcHJvLW1vZGFsIC5xZG5hcHJvLW1vZGFsLXNlY3Rpb24tdGl0bGUge1xuICBtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDI0cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xufVxuLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtc2VjdGlvbi1zdWIge1xuICBtYXJnaW46IDAgMCA4cHg7IGZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDIycHg7IGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApOyBmb250LXdlaWdodDogNTAwO1xufVxuLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtZ3JpZC0yIHtcbiAgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOyBnYXA6IDEycHg7XG59XG4ucWRuYXByby1tb2RhbCAucWRuYXByby1tb2RhbC1lcnJvci1iYW5uZXIge1xuICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDsgcGFkZGluZzogOHB4IDA7XG4gIGZvbnQtc2l6ZTogMTNweDsgbGluZS1oZWlnaHQ6IDIwcHg7IGZvbnQtd2VpZ2h0OiA1MDA7IGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCk7XG59XG4ucWRuYXByby1tb2RhbCAucWRuYXByby1tb2RhbC1lcnJvci1iYW5uZXIgcWRuYXByby1pY29uIHsgY29sb3I6IGluaGVyaXQ7IGZsZXgtc2hyaW5rOiAwOyB9XG5cbi5xZG5hcHJvLW1vZGFsIC5xZG5hcHJvLW1vZGFsLWluZm8taGVhZCB7XG4gIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4O1xufVxuLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtaW5mby1oZWFkIC5xZG5hcHJvLW1vZGFsLWluZm8tdGl0bGUgeyBtYXJnaW46IDA7IH1cblxuLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtdG9nZ2xlLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMTZweDsgcGFkZGluZzogNHB4IDA7XG59XG4ucWRuYXByby1tb2RhbCAucWRuYXByby1tb2RhbC10b2dnbGUtdGV4dCB7XG4gIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMnB4O1xufVxuLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtdG9nZ2xlLWxhYmVsIHtcbiAgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMjBweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xufVxuLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtdG9nZ2xlLXN1YiB7XG4gIGZvbnQtc2l6ZTogMTJweDsgbGluZS1oZWlnaHQ6IDE2cHg7IGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwKTsgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5xZG5hcHJvLW1vZGFsIC5xZG5hcHJvLW1vZGFsLXRvZ2dsZS13YXJuIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNHB4O1xuICBmb250LXNpemU6IDEycHg7IGxpbmUtaGVpZ2h0OiAxNnB4OyBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpOyBtYXJnaW4tdG9wOiAycHg7XG59XG5cbi5xZG5hcHJvLW1vZGFsIC5xZG5hcHJvLW1vZGFsLWRpdmlkZXIge1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbiAgbWFyZ2luOiAxNnB4IDAgMTJweDtcbn1cblxuLyogSU5ORVIgV0hJVEUgQ0FSRCAqL1xuLnFkbmFwcm8tbW9kYWwgLm1vZGFsLXdpbmRvdyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gIGJvcmRlcjogMC41cHggc29saWQgdmFyKC0tYy1ncmV5LTMwMCk7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHBhZGRpbmc6IDE2cHggMTZweCAxMnB4O1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEwcHg7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG59XG5cbi8qIEZpeGVkIGhlaWdodCArIGludGVybmFsIHNjcm9sbCBmb3IgYmlnIG1vZGFscyAqL1xuLnFkbmFwcm8tbW9kYWwubW9kYWwtbGF5b3V0LXdpdGgtaW5mbyAubW9kYWwtZGlhbG9nLFxuLnFkbmFwcm8tbW9kYWwubW9kYWwtc2l6ZS1sYXJnZSAgICAgICAubW9kYWwtZGlhbG9nLFxuLnFkbmFwcm8tbW9kYWwubW9kYWwtc2l6ZS14bGFyZ2UgICAgICAubW9kYWwtZGlhbG9nLFxuLnFkbmFwcm8tbW9kYWwubW9kYWwtc2l6ZS14eGxhcmdlICAgICAubW9kYWwtZGlhbG9nIHtcbiAgaGVpZ2h0OiBtaW4oODAwcHgsIGNhbGMoMTAwdmggLSA0OHB4KSk7XG59XG4ucWRuYXByby1tb2RhbC5tb2RhbC1sYXlvdXQtd2l0aC1pbmZvIC5tb2RhbC13aW5kb3csXG4ucWRuYXByby1tb2RhbC5tb2RhbC1zaXplLWxhcmdlICAgICAgIC5tb2RhbC13aW5kb3csXG4ucWRuYXByby1tb2RhbC5tb2RhbC1zaXplLXhsYXJnZSAgICAgIC5tb2RhbC13aW5kb3csXG4ucWRuYXByby1tb2RhbC5tb2RhbC1zaXplLXh4bGFyZ2UgICAgIC5tb2RhbC13aW5kb3cgeyBoZWlnaHQ6IDEwMCU7IH1cbi5xZG5hcHJvLW1vZGFsLm1vZGFsLWxheW91dC13aXRoLWluZm8gLm1vZGFsLWhlYWRlcixcbi5xZG5hcHJvLW1vZGFsLm1vZGFsLWxheW91dC13aXRoLWluZm8gLm1vZGFsLWZvb3Rlcixcbi5xZG5hcHJvLW1vZGFsLm1vZGFsLXNpemUtbGFyZ2UgICAgICAgLm1vZGFsLWhlYWRlcixcbi5xZG5hcHJvLW1vZGFsLm1vZGFsLXNpemUtbGFyZ2UgICAgICAgLm1vZGFsLWZvb3Rlcixcbi5xZG5hcHJvLW1vZGFsLm1vZGFsLXNpemUteGxhcmdlICAgICAgLm1vZGFsLWhlYWRlcixcbi5xZG5hcHJvLW1vZGFsLm1vZGFsLXNpemUteGxhcmdlICAgICAgLm1vZGFsLWZvb3Rlcixcbi5xZG5hcHJvLW1vZGFsLm1vZGFsLXNpemUteHhsYXJnZSAgICAgLm1vZGFsLWhlYWRlcixcbi5xZG5hcHJvLW1vZGFsLm1vZGFsLXNpemUteHhsYXJnZSAgICAgLm1vZGFsLWZvb3RlciB7IGZsZXgtc2hyaW5rOiAwOyB9XG4ucWRuYXByby1tb2RhbC5tb2RhbC1sYXlvdXQtd2l0aC1pbmZvIC5tb2RhbC1ib2R5LFxuLnFkbmFwcm8tbW9kYWwubW9kYWwtc2l6ZS1sYXJnZSAgICAgICAubW9kYWwtYm9keSxcbi5xZG5hcHJvLW1vZGFsLm1vZGFsLXNpemUteGxhcmdlICAgICAgLm1vZGFsLWJvZHksXG4ucWRuYXByby1tb2RhbC5tb2RhbC1zaXplLXh4bGFyZ2UgICAgIC5tb2RhbC1ib2R5IHtcbiAgZmxleDogMSAxIGF1dG87IG1pbi1oZWlnaHQ6IDA7IG92ZXJmbG93LXk6IGF1dG87XG4gIC8qIFRoZSBzY3JvbGwgY29udGFpbmVyIGNsaXBzIGZvY3VzIHJpbmdzIChvdmVyZmxvdy15OmF1dG8gY29lcmNlcyBvdmVyZmxvdy14IHRvXG4gICAgIGNsaXApLCBzbyBhIGZpZWxkIGZsdXNoIGFnYWluc3QgdGhlIHRvcCBlZGdlIGxvc2VzIGl0cyByaW5nIFwidW5kZXIgdGhlIGhlYWRlclwiLlxuICAgICA0cHggYnJlYXRoaW5nIHJvb20gY2xlYXJzIHRoZSAzcHggZm9jdXMgYm94LXNoYWRvdyBvbiBhbGwgc2lkZXM7IHNjcm9sbC1wYWRkaW5nXG4gICAgIGtlZXBzIGEgdGFiYmVkLXRvIGZpZWxkIGZyb20gdHVja2luZyB1bmRlciB0aGUgdG9wIGVkZ2UuIFtLaW0gMjIuMDYuMjAyNl0gKi9cbiAgcGFkZGluZzogNHB4O1xuICBzY3JvbGwtcGFkZGluZy10b3A6IDhweDtcbn1cblxuLyogU2Nyb2xsYWJsZSBtb2RpZmllciDigJQgYW55IHNpemUgbW9kYWwgd2l0aCB0YWxsIGNvbnRlbnQuXG4gICBOT1RFOiB0aGUgY2xhc3MgaXMgYHFkbmFwcm8tbW9kYWwtc2Nyb2xsYWJsZWAsIE5PVCBgbW9kYWwtc2Nyb2xsYWJsZWAuXG4gICBxZG5hLW1vZGFsLmpzIGNvbm5lY3RlZENhbGxiYWNrIHN0cmlwcyBldmVyeSBjbGFzcyBzdGFydGluZyB3aXRoXG4gICBgbW9kYWwtYCBmcm9tIF9vcmlnaW5hbENsYXNzZXMsIHNvIGEgYG1vZGFsLSpgIG1vZGlmaWVyIHdvdWxkIG5vdFxuICAgc3Vydml2ZSBfcmVuZGVyKCkuIFRoZSBgcWRuYXByby1gIHByZWZpeCBwYXNzZXMgdGhhdCBmaWx0ZXIuICovXG4ucWRuYXByby1tb2RhbC5xZG5hcHJvLW1vZGFsLXNjcm9sbGFibGUgLm1vZGFsLWRpYWxvZyAgeyBvdmVyZmxvdzogaGlkZGVuOyB9XG4ucWRuYXByby1tb2RhbC5xZG5hcHJvLW1vZGFsLXNjcm9sbGFibGUgLm1vZGFsLXdpbmRvdyAgeyBvdmVyZmxvdzogaGlkZGVuOyB9XG4ucWRuYXByby1tb2RhbC5xZG5hcHJvLW1vZGFsLXNjcm9sbGFibGUgLm1vZGFsLWhlYWRlcixcbi5xZG5hcHJvLW1vZGFsLnFkbmFwcm8tbW9kYWwtc2Nyb2xsYWJsZSAubW9kYWwtZm9vdGVyICB7IGZsZXgtc2hyaW5rOiAwOyB9XG4ucWRuYXByby1tb2RhbC5xZG5hcHJvLW1vZGFsLXNjcm9sbGFibGUgLm1vZGFsLWJvZHkgICAgeyBmbGV4OiAxIDEgYXV0bzsgbWluLWhlaWdodDogMDsgb3ZlcmZsb3cteTogYXV0bzsgfVxuLyogSW1wb3J0LW9wdGlvbnMgbW9kYWw6IGZpdCBjb250ZW50IGluc3RlYWQgb2YgdGhlIGZpeGVkIDgwMHB4IHRoZSBsYXJnZS93aXRoLWluZm9cbiAgIGZyYW1lIGZvcmNlcyAoaXQgd2FzIGFic3VyZGx5IHRhbGwgZm9yIGEgc2hvcnQgcGFzdGUgYm94IC8gdXBsb2FkIGNhcmQpLiBDYXBzICtcbiAgIHNjcm9sbHMgb25seSBpZiBjb250ZW50IGV2ZXIgZXhjZWVkcyBpdC4gW0tpbSAyMi4wNi4yMDI2XSAqL1xuLnFkbmFwcm8tbW9kYWwuZmUtaW1wb3J0LW1vZGFsLm1vZGFsLXNpemUtbGFyZ2UgLm1vZGFsLWRpYWxvZyxcbi5xZG5hcHJvLW1vZGFsLmZlLWltcG9ydC1tb2RhbC5tb2RhbC1sYXlvdXQtd2l0aC1pbmZvIC5tb2RhbC1kaWFsb2cge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1heC1oZWlnaHQ6IG1pbig4MDBweCwgY2FsYygxMDB2aCAtIDQ4cHgpKTtcbn1cbi5xZG5hcHJvLW1vZGFsLmZlLWltcG9ydC1tb2RhbC5tb2RhbC1zaXplLWxhcmdlIC5tb2RhbC13aW5kb3csXG4ucWRuYXByby1tb2RhbC5mZS1pbXBvcnQtbW9kYWwubW9kYWwtbGF5b3V0LXdpdGgtaW5mbyAubW9kYWwtd2luZG93IHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLyogQ2VudGVyIHRoZSAocG9ydHJhaXQpIGlsbHVzdHJhdGlvbiBpbiB0aGUgaW5mbyBwYW5lbCBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0XG4gICBib3R0b20tTEVGVCBjb3JuZXItYW5jaG9yLiBTY29wZWQgc28gY29ybmVyLWFuY2hvcmVkIGlsbHVzdHJhdGlvbnMgaW4gb3RoZXJcbiAgIG1vZGFscyBrZWVwIHRoZWlyIGxheW91dC4gW0tpbSAyMi4wNi4yMDI2XSAqL1xuLnFkbmFwcm8tbW9kYWwuZmUtaW1wb3J0LW1vZGFsIC5xZG5hcHJvLW1vZGFsLWluZm8taWxsdXN0cmF0aW9uIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qIEZsb3dlZGl0b3IgY29uZmlybSBkaWFsb2cgKHBsdWdpbnMvY29uZmlybS9Cb3gudnVlLCBQTEFOLWFsZXJ0LWNvbXBvbmVudC5tZFxuICAgVFJBQ0sgMiwgS2ltIDA5LjA3LjIwMjYpOiBuZWVkcyB0byBzdGFjayBhYm92ZSBCT1RIIHRoZSBmbG93ZWRpdG9yJ3Mgb3duXG4gICBOb2RlT3B0aW9ucyB3aXphcmQgbW9kYWwgKH45MDAwLTkxMDApIGFuZCBpdHMgZHJvcGRvd24vcG9wb3ZlciBsYXllclxuICAgKC5mZS1hZGQtZGF0YXBvaW50LWRyb3Bkb3duIGV0Yy4sIDkyMDApIOKAlCA5MzAwIGlzIHRoZSBmbG93ZWRpdG9yJ3NcbiAgIGVzdGFibGlzaGVkIFwiYWx3YXlzIG9uIHRvcFwiIHRpZXIgKHNlZSAuZmUtY29ubi10aXApLiBTY29wZWQgdG8gdGhpcyBjbGFzc1xuICAgb25seSBzbyBldmVyeSBvdGhlciBxZG5hcHJvLW1vZGFsIGtlZXBzIHRoZSBkZWZhdWx0IDkwMDAuICovXG4ucWRuYXByby1tb2RhbC5mZS1jb25maXJtLW1vZGFsIHtcbiAgei1pbmRleDogOTMwMDtcbn1cblxuLyogXCJWcmFhZyB0b2V2b2VnZW5cIiB0eXBlLXBpY2tlciAoRm9ybUNhcmRRdWVzdGlvbnMudnVlLCBQTEFOLWZvcm0tY2FyZC1cbiAgIHJlZGVzaWduLm1kIGZhc2UgNCBkZWxpdmVyeSA0KTogb3BlbmVkIEZST00gV0lUSElOIHRoZSBzYW1lIE5vZGVPcHRpb25zXG4gICB3aXphcmQgbW9kYWwgKH45MDAwLTkxMDApIHRoaXMgdGFiIGxpdmVzIGluLCBzbyBpdCBuZWVkcyB0aGUgZXhhY3Qgc2FtZVxuICAgXCJhbHdheXMgb24gdG9wXCIgdGllciBhcyAuZmUtY29uZmlybS1tb2RhbCBhYm92ZSwgZm9yIHRoZSBleGFjdCBzYW1lXG4gICByZWFzb24uIFNjb3BlZCB0byB0aGlzIGNsYXNzIG9ubHkuICovXG4ucWRuYXByby1tb2RhbC5mZS10eXBlcGlja2VyLW1vZGFsIHtcbiAgei1pbmRleDogOTMwMDtcbn1cblxuLyogQnJpZWZpbmcgYmlqIGVlbiB2cmFhZyAoVmlldy92MS9tb2RhbHMvYnJpZWZpbmctZWRpdG9yLmh0bWwsIGdlZGVlbGQgbWV0IGRlXG4gICBhY3Rpdml0ZWl0ZW5wYWdpbmEpLiBPcCBkZSBmbG93IGVkaXRvciBnYWF0IGhpaiBvcGVuIHZhbnVpdCBoZXQgTm9kZU9wdGlvbnMtXG4gICB3aXphcmRtb2RhbCAofjkwMDAtOTEwMCkgZW4gc29tcyB2YW5hZiBoZXQgY2FudmFzIGVyb25kZXIsIGR1cyBkZXplbGZkZVxuICAgXCJhbHRpamQgYm92ZW5vcFwiLWxhYWcgYWxzIGRlIHR3ZWUgaGllcmJvdmVuLiBBbGxlZW4gb3AgZGV6ZSBrbGFzc2UsIGRpZSBkZVxuICAgZmxvdyBlZGl0b3IgdmlhIGRlIGluY2x1ZGUgbWVlZ2VlZnQ6IG9wIGRlIGFjdGl2aXRlaXRlbnBhZ2luYSBzdGFhdCBlciBuaWtzXG4gICBib3ZlbiBlbiBob3VkdCBoZXQgbW9kYWwgZGUgc3RhbmRhYXJkIDkwMDAuIFtLaW0gMDMuMDguMjAyNl0gKi9cbi5xZG5hcHJvLW1vZGFsLmZlLWJyaWVmaW5nLW1vZGFsIHtcbiAgei1pbmRleDogOTMwMDtcbn1cblxuLy8gU2Nyb2xsYmFyOiBzaG93IG9ubHkgdGhlIGRyYWcgdGh1bWIsIG5ldmVyIHRoZSBncmV5IHRyYWNrLiBXZWJraXQtb25seVxuLy8gKENocm9tZS9TYWZhcmkvRWRnZSkgc28gd2UgY2FuIHBpbiB0aGUgd2lkdGggKyBoaWRlIHRoZSB0cmFjazsgd2UgZGVsaWJlcmF0ZWx5XG4vLyBza2lwIHNjcm9sbGJhci13aWR0aC9zY3JvbGxiYXItY29sb3IgKENocm9tZSB3b3VsZCBob25vdXIgdGhvc2UgYW5kIHRoZW4gaWdub3JlXG4vLyB0aGUgOjotd2Via2l0IHBzZXVkbywgZm9yY2luZyBpdHMgZGVmYXVsdCB0aGluIGdyZXkgYmFyKS4gVGh1bWIgaXMgaW52aXNpYmxlIGF0XG4vLyByZXN0IGFuZCBmYWRlcyBpbiBvbiBob3Zlci9zY3JvbGwuXG4vL1xuLy8gSU1QT1JUQU5UOiB0aGlzIHRhcmdldHMgdGhlIFdIT0xFIG1vZGFsIHN1YnRyZWUgKGRlc2NlbmRhbnQgY29tYmluYXRvciksIG5vdFxuLy8ganVzdCAubW9kYWwtYm9keS4gTW9kYWxzIGdldCBwb3B1bGF0ZWQgYWZ0ZXIgdGhlIHNoZWxsIHJlbmRlcnMgYW5kIHRoZSBuZXdcbi8vIGNvbnRlbnQgb2Z0ZW4gYnJpbmdzIGl0cyBvd24gc2Nyb2xsIGNvbnRhaW5lciDigJQgd2l0aG91dCB0aGlzLCB0aG9zZSBuZXN0ZWRcbi8vIHNjcm9sbGVycyBmYWxsIGJhY2sgdG8gdGhlIGdyZXktdHJhY2sgZGVmYXVsdCBhbmQgdGhlIG1vZGFsIGxvb2tzIG1lc3N5LiBUaGVcbi8vIHN1YnRyZWUgcnVsZSBtZWFucyBhIGNsZWFuIHNjcm9sbGJhciBjYW4ndCBzbmVhayBiYWNrIGluLiBbS2ltIDIwMjYtMDYtMTVdXG4vLyBUaGlubmVyICsgYnJhbmQtdGludGVkICgyMDI2LTA3LTAxLCBKYW4pOiA4cHggZmxhdC1ncmV5IHJlYWQgYXMgYSBzb2xpZCwgaW50cnVzaXZlIGJhciBvbmNlXG4vLyB2aXNpYmxlIChob3Zlci9mb2N1cy13aXRoaW4pIOKAlCA2cHggKyB0aGUgYnJhbmQgcHVycGxlICgtLWMtcHVycGxlLTUwMCByZ2IpIGF0IGxvdyBhbHBoYSBpc1xuLy8gbGlnaHRlciBib3RoIGluIHdpZHRoIGFuZCBpbiB2aXN1YWwgd2VpZ2h0LCBtYXRjaGluZyB0aGUgXCJzdWJ0bGUgdGh1bWIsIHRyYW5zcGFyZW50IHRyYWNrXCJcbi8vIGhvdXNlIGNvbnZlbnRpb24gKHNlZSB0aGUgbGFuZ3VhZ2UtZWRpdG9yIHNjcm9sbGJhciwgZmlyc3QgYXBwbGllZCB0aGVyZSkuXG4ucWRuYXByby1tb2RhbCA6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgd2lkdGg6IDZweDsgaGVpZ2h0OiA2cHg7IH1cbi5xZG5hcHJvLW1vZGFsIDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuLnFkbmFwcm8tbW9kYWwgOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXIgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuLnFkbmFwcm8tbW9kYWwgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTYwbXMgZWFzZTtcbn1cbi5xZG5hcHJvLW1vZGFsICo6aG92ZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuLnFkbmFwcm8tbW9kYWwgKjpmb2N1cy13aXRoaW46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsgYmFja2dyb3VuZDogcmdiYSg2NCwgNzMsIDE1NCwgMC4yMik7IH1cbi5xZG5hcHJvLW1vZGFsIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAwLjM4KTsgfVxuLy8gRmlyZWZveCDigJQgc2FtZSB0aHVtYiB0aW50LCB0cmFuc3BhcmVudCB0cmFjay5cbi5xZG5hcHJvLW1vZGFsIHsgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOyB9XG4ucWRuYXByby1tb2RhbCAqOmhvdmVyLCAucWRuYXByby1tb2RhbCAqOmZvY3VzLXdpdGhpbiB7IHNjcm9sbGJhci1jb2xvcjogcmdiYSg2NCwgNzMsIDE1NCwgMC4zMCkgdHJhbnNwYXJlbnQ7IH1cblxuLnFkbmFwcm8tbW9kYWwgLm1vZGFsLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAxNnB4OyBwYWRkaW5nOiAwIDAgMTJweDtcbn1cbi5xZG5hcHJvLW1vZGFsIC5tb2RhbC10aXRsZSB7XG4gIG1hcmdpbjogMDsgZmxleDogMSAxIGF1dG87XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDI0cHg7IGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xufVxuLnFkbmFwcm8tbW9kYWwgLm1vZGFsLWNsb3NlIHsgZmxleC1zaHJpbms6IDA7IH1cblxuLnFkbmFwcm8tbW9kYWwgLm1vZGFsLWJvZHkge1xuICBwYWRkaW5nOiAwIDRweCA4cHggNHB4O1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMjRweDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xufVxuLnFkbmFwcm8tbW9kYWwgLm1vZGFsLWJvZHkgPiAqICsgKiB7IG1hcmdpbi10b3A6IDhweDsgfVxuLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtbGFiZWwge1xuICBkaXNwbGF5OiBibG9jazsgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMjRweDsgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xufVxuXG4ucWRuYXByby1tb2RhbCAubW9kYWwtZm9vdGVyIHtcbiAgZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBnYXA6IDE2cHg7IHBhZGRpbmc6IDA7XG59XG5cbi8qIHNlY29uZGFyeS1sYWJlbCAoZS5nLiBcIkRlbGV0ZVwiKSBwaW5zIGEgYnV0dG9uIHRvIHRoZSBmb290ZXIncyBMRUZUXG4gICBlZGdlIOKAlCBLaW0gMTcuMDcuMjAyNjogZGVzdHJ1Y3RpdmUgYWN0aW9ucyBpbiBwbGFubmVyIGRpYWxvZ3MgYmVsb25nXG4gICBpbiB0aGUgZm9vdGVyLCBub3QgZmxvYXRpbmcgaW4gdGhlIGJvZHkuIHNwYWNlLWJldHdlZW4gcHVzaGVzIGl0IGF3YXlcbiAgIGZyb20gdGhlIGNhbmNlbC9jb25maXJtIGNsdXN0ZXI7IHRoZSBjbHVzdGVyIGl0c2VsZiBrZWVwcyBpdHMgb3duXG4gICBgZ2FwOiAxNnB4YCB2aWEgLm1vZGFsLWZvb3Rlci1yaWdodCBzbyBjYW5jZWwvY29uZmlybSBzdGF5IHRvZ2V0aGVyXG4gICByZWdhcmRsZXNzIG9mIGhvdyBtdWNoIHJvb20gc3BhY2UtYmV0d2VlbiBvcGVucyB1cCBvbiBhIHdpZGUgbW9kYWwuICovXG4ucWRuYXByby1tb2RhbCAubW9kYWwtZm9vdGVyLm1vZGFsLWZvb3Rlci1oYXMtc2Vjb25kYXJ5IHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLnFkbmFwcm8tbW9kYWwgLm1vZGFsLWZvb3Rlci1yaWdodCB7XG4gIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgZ2FwOiAxNnB4O1xufVxuXG4vKiBEYXJrIHRoZW1lICovXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tbW9kYWwgLm1vZGFsLWJhY2tkcm9wIHsgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjY1KTsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLW1vZGFsIC5tb2RhbC1kaWFsb2cge1xuICBiYWNrZ3JvdW5kOiAjMmUzMDM2O1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7XG4gIGJveC1zaGFkb3c6XG4gICAgMCA0cHggNHB4IHJnYmEoMCwwLDAsMC41MCksXG4gICAgMCA4cHggMTJweCA2cHggcmdiYSgwLDAsMCwwLjMwKTtcbn1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1tb2RhbCAubW9kYWwtd2luZG93IHtcbiAgYmFja2dyb3VuZDogIzM2Mzk0MDtcbiAgYm9yZGVyLWNvbG9yOiAjNTY1YjY2O1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLW1vZGFsIC5tb2RhbC10aXRsZSAgICAgICAgICAgICAgeyBjb2xvcjogI2YwZjFmMjsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLW1vZGFsIC5tb2RhbC1ib2R5ICAgICAgICAgICAgICAgeyBjb2xvcjogI2YwZjFmMjsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLW1vZGFsIC5xZG5hcHJvLW1vZGFsLWxhYmVsICAgICAgeyBjb2xvcjogI2YwZjFmMjsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLW1vZGFsIC5tb2RhbC1pbmZvICAgICAgICAgICAgICAgeyBjb2xvcjogI2YwZjFmMjsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLW1vZGFsIC5tb2RhbC1pbmZvIHFkbmFwcm8taWNvbixcbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1tb2RhbCAubW9kYWwtaW5mbyA+IC5tb2RhbC1pbmZvLWljb24geyBjb2xvcjogI2E1YWNmZjsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLW1vZGFsIC5xZG5hcHJvLW1vZGFsLWluZm8tdGl0bGUgICAgeyBjb2xvcjogI2E1YWNmZjsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLW1vZGFsIC5xZG5hcHJvLW1vZGFsLXNlY3Rpb24tdGl0bGUgeyBjb2xvcjogI2E1YWNmZjsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLW1vZGFsIC5xZG5hcHJvLW1vZGFsLXNlY3Rpb24tc3ViICAgeyBjb2xvcjogI2E1YWNmZjsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLW1vZGFsIC5xZG5hcHJvLW1vZGFsLWVycm9yLWJhbm5lciAgeyBjb2xvcjogI2VmNmI2YjsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLW1vZGFsIC5xZG5hcHJvLW1vZGFsLXRvZ2dsZS1sYWJlbCAgeyBjb2xvcjogI2YwZjFmMjsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLW1vZGFsIC5xZG5hcHJvLW1vZGFsLXRvZ2dsZS1zdWIgICAgeyBjb2xvcjogI2I4YmNjNDsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLW1vZGFsIC5xZG5hcHJvLW1vZGFsLXRvZ2dsZS13YXJuICAgeyBjb2xvcjogI2VmNmI2YjsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLW1vZGFsIC5xZG5hcHJvLW1vZGFsLWRpdmlkZXIgICAgICAgeyBib3JkZXItdG9wLWNvbG9yOiAjNDA0NDRkOyB9XG5cbkBrZXlmcmFtZXMgcWRuYXByby1tb2RhbC1iYWNrZHJvcC1pbiB7IGZyb20geyBvcGFjaXR5OiAwOyB9IHRvIHsgb3BhY2l0eTogMTsgfSB9XG5Aa2V5ZnJhbWVzIHFkbmFwcm8tbW9kYWwtZGlhbG9nLWluIHtcbiAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTgpOyB9XG4gIHRvICAgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7IH1cbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5xZG5hcHJvLW1vZGFsIC5tb2RhbC1iYWNrZHJvcCwgLnFkbmFwcm8tbW9kYWwgLm1vZGFsLWRpYWxvZyB7IGFuaW1hdGlvbjogbm9uZTsgfVxufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvbmF2LWl0ZW0vX25hdi1pdGVtLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi8qID09PSBCRUdJTiBRRE5BLU5BVi1JVEVNIENTUyA9PT0gKi9cbi5xZG5hcHJvLW5hdi1pdGVtIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgLy8gTGVmdCBpbnNldCB0dW5lZCBzbyB0aGUgaWNvbiBjZW50cmUgbGFuZHMgb24gdGhlIHNhbWUgdmVydGljYWwgbGluZSBhc1xuICAgIC8vIHRoZSBRIG1hcmsgaW4gdGhlIGhlYWRlciAodGhlIGFuY2hvcikg4oCUIGlkZW50aWNhbCBpbiBib3RoIG1vZGVzLiAoSmFuKVxuICAgIHBhZGRpbmc6IDhweCAxMnB4IDhweCA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiB2YXIoLS1jLW5hdi1pY29uKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLW91dCxcbiAgICAgICAgY29sb3IgMTIwbXMgZWFzZS1vdXQsXG4gICAgICAgIHRyYW5zZm9ybSA4MG1zIGVhc2Utb3V0LFxuICAgICAgICB3aWR0aCA0NTBtcyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSksXG4gICAgICAgIHBhZGRpbmcgNDUwbXMgY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpLFxuICAgICAgICBnYXAgNDUwbXMgY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpO1xufVxuLnFkbmFwcm8tbmF2LWl0ZW0gKixcbi5xZG5hcHJvLW5hdi1pdGVtICo6OmJlZm9yZSxcbi5xZG5hcHJvLW5hdi1pdGVtICo6OmFmdGVyIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4ucWRuYXByby1uYXYtaXRlbSAubmF2LWl0ZW0taWNvbiB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgLy8gT24gdG9wIG9mIHRoZSBsYWJlbCBzbyB0aGUgbGFiZWwgc2xpZGVzIGxlZnQgQkVISU5EIHRoZSBpY29uIG9uIGNvbGxhcHNlLlxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xufVxuLnFkbmFwcm8tbmF2LWl0ZW0gLm5hdi1pdGVtLWljb24gc3ZnIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgZmlsbDogbm9uZTtcbiAgICBzdHJva2U6IGN1cnJlbnRDb2xvcjtcbiAgICBzdHJva2Utd2lkdGg6IDEuNzU7XG4gICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xuICAgIHN0cm9rZS1saW5lam9pbjogcm91bmQ7XG59XG4ucWRuYXByby1uYXYtaXRlbSAubmF2LWl0ZW0tbGFiZWwge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogdmFyKC0tYy1uYXYtbGFiZWwpO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgIHRyYW5zaXRpb246XG4gICAgICAgIGNvbG9yIDEyMG1zIGVhc2Utb3V0LFxuICAgICAgICBmb250LXdlaWdodCAxMjBtcyBlYXNlLW91dCxcbiAgICAgICAgb3BhY2l0eSAyODBtcyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSksXG4gICAgICAgIG1heC13aWR0aCA0NTBtcyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSksXG4gICAgICAgIHRyYW5zZm9ybSAyODBtcyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSk7XG59XG4ucWRuYXByby1uYXYtaXRlbSAubmF2LWl0ZW0tYmFkZ2Uge1xuICAgIC8vIEFic29sdXRlbHkgcG9zaXRpb25lZCBpbiBCT1RIIG1vZGVzIChyZWxhdGl2ZSB0byB0aGUgaXRlbSkgc28gaXQgY2FuIGJlXG4gICAgLy8gQU5JTUFURUQgcmF0aGVyIHRoYW4gcmUtbGFpZC1vdXQuIEV4cGFuZGVkOiBwaW5uZWQgdG8gdGhlIHJvdydzIHJpZ2h0LFxuICAgIC8vIHZlcnRpY2FsbHkgY2VudHJlZC4gQXMgdGhlIHJhaWwgY29sbGFwc2VzIChpdGVtIHdpZHRoIDE4NOKGkjQwKSByaWdodDpOcHhcbiAgICAvLyB0cmFja3MgdGhlIHNocmlua2luZyByaWdodCBlZGdlIOKGkiB0aGUgYmFkZ2UgcmlkZXMgbGVmdCBhbmQgbGFuZHMgb24gdGhlXG4gICAgLy8gaWNvbidzIHRvcC1yaWdodCBvdmVybGF5LiAoSmFuKVxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvLyBBYm92ZSB0aGUgaWNvbiAoei1pbmRleDoxKSBzbyBpbiBjb2xsYXBzZWQgbW9kZSB0aGUgYmFkZ2Ugc2l0cyBPTiB0aGVcbiAgICAvLyBpY29uJ3MgdG9wLXJpZ2h0IGNvcm5lciwgbm90IGJlaGluZCBpdC5cbiAgICB6LWluZGV4OiAyO1xuICAgIHJpZ2h0OiAxMnB4O1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICBtaW4td2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDlweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLW5hdi1iYWRnZS1iZyk7XG4gICAgY29sb3I6IHZhcigtLWMtbmF2LWJhZGdlLXRleHQpO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRyYW5zaXRpb246XG4gICAgICAgIHJpZ2h0IDQ1MG1zIGN1YmljLWJlemllcigwLjIyLCAxLCAwLjM2LCAxKSxcbiAgICAgICAgdG9wIDQ1MG1zIGN1YmljLWJlemllcigwLjIyLCAxLCAwLjM2LCAxKSxcbiAgICAgICAgdHJhbnNmb3JtIDQ1MG1zIGN1YmljLWJlemllcigwLjIyLCAxLCAwLjM2LCAxKTtcbn1cbi5xZG5hcHJvLW5hdi1pdGVtIC5uYXYtaXRlbS1iYWRnZS0tZG90IHtcbiAgICBtaW4td2lkdGg6IDhweDtcbiAgICB3aWR0aDogOHB4O1xuICAgIGhlaWdodDogOHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG4ucWRuYXByby1uYXYtaXRlbTpob3Zlcjpub3QoLm5hdi1pdGVtLWRpc2FibGVkKTpub3QoLm5hdi1pdGVtLWFjdGl2ZSkge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtbmF2LWhvdmVyLWJnKTtcbiAgICBjb2xvcjogdmFyKC0tYy1uYXYtaWNvbi1ob3Zlcik7XG59XG4ucWRuYXByby1uYXYtaXRlbTpob3Zlcjpub3QoLm5hdi1pdGVtLWRpc2FibGVkKTpub3QoLm5hdi1pdGVtLWFjdGl2ZSkgLm5hdi1pdGVtLWxhYmVsIHtcbiAgICBjb2xvcjogdmFyKC0tYy1uYXYtbGFiZWwtaG92ZXIpO1xufVxuLnFkbmFwcm8tbmF2LWl0ZW0ubmF2LWl0ZW0tYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLW5hdi1hY3RpdmUtYmcpO1xuICAgIGNvbG9yOiB2YXIoLS1jLW5hdi1pY29uLWFjdGl2ZSk7XG59XG4ucWRuYXByby1uYXYtaXRlbS5uYXYtaXRlbS1hY3RpdmUgLm5hdi1pdGVtLWxhYmVsIHtcbiAgICBjb2xvcjogdmFyKC0tYy1uYXYtbGFiZWwtYWN0aXZlKTtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuLnFkbmFwcm8tbmF2LWl0ZW0ubmF2LWl0ZW0tYWN0aXZlOmhvdmVyOm5vdCgubmF2LWl0ZW0tZGlzYWJsZWQpOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tbmF2LWl0ZW06YWN0aXZlOm5vdCgubmF2LWl0ZW0tZGlzYWJsZWQpIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTcpO1xufVxuLnFkbmFwcm8tbmF2LWl0ZW06Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG4ucWRuYXByby1uYXYtaXRlbTpmb2N1cy12aXNpYmxlLFxuLnFkbmFwcm8tbmF2LWl0ZW0uZm9yY2UtZm9jdXMge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1yaW5nKTtcbn1cbi5xZG5hcHJvLW5hdi1pdGVtLm5hdi1pdGVtLWRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjQ7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnFkbmFwcm8tbmF2LWl0ZW1bZGF0YS1uYXYtbW9kZT1cImNvbGxhcHNlZFwiXSB7XG4gICAgZ2FwOiAwO1xuICAgIC8vIFNBTUUgbGVmdCBwYWRkaW5nICsgbGVmdC1hbGlnbm1lbnQgYXMgZXhwYW5kZWQgc28gdGhlIGljb24gc2l0cyBhdCB0aGVcbiAgICAvLyBleGFjdCBzYW1lIHggaW4gYm90aCBtb2RlcyBBTkQgc3RheXMgcHV0IHdoaWxlIHRoZSB3aWR0aCBhbmltYXRlcy4gVXNpbmdcbiAgICAvLyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIGhlcmUgKGNlbnRyaW5nIHRoZSBpY29uIGluIHRoZSA0MHB4IGJveCkgbWFkZSB0aGVcbiAgICAvLyBpY29uIGp1bXAvZHJpZnQgZHVyaW5nIHRoZSB0cmFuc2l0aW9uIGJlY2F1c2UganVzdGlmeS1jb250ZW50IGNhbid0XG4gICAgLy8gYW5pbWF0ZSDigJQgbGVmdC1hbmNob3Jpbmcga2VlcHMgaXQgcGVyZmVjdGx5IHN0aWxsLiAoSmFuOiBpY29ucyBtdXN0IG5vdCBtb3ZlLilcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG4ucWRuYXByby1uYXYtaXRlbVtkYXRhLW5hdi1tb2RlPVwiY29sbGFwc2VkXCJdIC5uYXYtaXRlbS1sYWJlbCB7XG4gICAgLy8gU2xpZGUgc3RyYWlnaHQgTEVGVCDigJQgYmFjayBiZWhpbmQgdGhlIGljb24g4oCUIHdoaWxlIGZhZGluZyBvdXQgKE5PVFxuICAgIC8vIGRvd253YXJkKS4gbWF4LXdpZHRoOjAgY29sbGFwc2VzIGl0cyBmbG93LXNwYWNlIHNvIHRoZSByb3cgc2hyaW5rcyB0byBhXG4gICAgLy8gNDBweCBpY29uIGJ1dHRvbi4gVGhlIGljb24gc2l0cyBvbiB0b3AgKHotaW5kZXggYmVsb3cpIHNvIHRoZSBsYWJlbFxuICAgIC8vIHR1Y2tzIGJlaGluZCBpdC4gRXhwYW5kIHJldmVyc2VzIGl0LiAoSmFuKVxuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xNnB4KTtcbiAgICBtYXgtd2lkdGg6IDA7XG59XG4ucWRuYXByby1uYXYtaXRlbVtkYXRhLW5hdi1tb2RlPVwiY29sbGFwc2VkXCJdIC5uYXYtaXRlbS1iYWRnZSB7XG4gICAgLy8gU2FtZSBlbGVtZW50LCBhbmltYXRlZCB0byB0aGUgaWNvbidzIHRvcC1yaWdodCBjb3JuZXIuIFNsaWdodGx5IHNjYWxlZCBkb3duLlxuICAgIHRvcDogM3B4O1xuICAgIHJpZ2h0OiA0cHg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDAuODUpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCByaWdodDtcbn1cbi8qID09PSBFTkQgUUROQS1OQVYtSVRFTSBDU1MgPT09ICovXG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9uYXYtcmFpbC9fbmF2LXJhaWwtY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLyogPT09IEJFR0lOIFFETkEtTkFWLVJBSUwgQ1NTID09PSAqL1xuLnFkbmFwcm8tbmF2LXJhaWwge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtbmF2LWJnKTtcbiAgICBjb2xvcjogdmFyKC0tYy1uYXYtaWNvbik7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCA0NTBtcyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSk7XG59XG4ucWRuYXByby1uYXYtcmFpbCAqLFxuLnFkbmFwcm8tbmF2LXJhaWwgKjo6YmVmb3JlLFxuLnFkbmFwcm8tbmF2LXJhaWwgKjo6YWZ0ZXIgeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi8vIEV4cGFuZGVkIHdpZHRoIHRpZ2h0ZW5lZCAyNDBweCDihpIgMjA4cHggKEtpbSAyMDI2LTA2LTA3KS4gSW5kdXN0cnkgc3dlZXRcbi8vIHNwb3QgZm9yIGNvbXBhY3QgcmFpbHMgKExpbmVhciB+MjAwLCBTbGFjayB+MjIwKS4gTG9uZyBsYWJlbHMgbGlrZVxuLy8gXCJNYXN0ZXIgZGF0YVwiIHN0aWxsIGZpdCBjb21mb3J0YWJseSB3aXRoIHJvb20gZm9yIHRoZSBhbGVydCBiYWRnZS5cbi8vIEV4cGFuZGVkIDIwOHB4LiBDb2xsYXBzZWQgaXMgYSB0b3VjaCB3aWRlciB0aGFuIGEgYmFyZSBpY29uIHJhaWwgKHdhcyA2NHB4KVxuLy8gc28gdGhlIGNoZXZyb24gaGFzIHJvb20gdG8gc2l0IEJFU0lERSB0aGUgUSBhZnRlciBpdCBhbmltYXRlcyBsZWZ0LiAoSmFuKVxuLnFkbmFwcm8tbmF2LXJhaWxbZGF0YS1tb2RlPVwiZXhwYW5kZWRcIl0gIHsgd2lkdGg6IDIwOHB4OyB9XG4ucWRuYXByby1uYXYtcmFpbFtkYXRhLW1vZGU9XCJjb2xsYXBzZWRcIl0geyB3aWR0aDogODRweDsgfVxuXG4ucWRuYXByby1uYXYtcmFpbCAubmF2LXJhaWwtaGVhZGVyIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBoZWlnaHQ6IDU2cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIC8vIExlZnQgcGFkZGluZyBpcyBJREVOVElDQUwgaW4gYm90aCBtb2RlcyBzbyB0aGUgUSBuZXZlciBzaGlmdHMgb24gdGhlXG4gICAgLy8gaG9yaXpvbnRhbCBheGlzIOKAlCBpdCdzIHRoZSBhbmNob3IgdGhhdCBhbGwgbmF2IGljb25zIGxpbmUgdXAgdW5kZXIuXG4gICAgcGFkZGluZzogMCAxNnB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5xZG5hcHJvLW5hdi1yYWlsW2RhdGEtbW9kZT1cImNvbGxhcHNlZFwiXSAubmF2LXJhaWwtaGVhZGVyIHtcbiAgICBwYWRkaW5nOiAwIDZweCAwIDE2cHg7XG59XG4vKiBTcGxpdCBsb2dvIChKYW4gMjAyNi0wNi0xNyk6IFEgPSBhbmNob3IgKG5ldmVyIG1vdmVzL3JlLXJlbmRlcnMpOyBETkEgPSB0aGVcbiAgIGxldHRlcnMsIHdoaWNoIHNsaWRlIGRvd24gKyBmYWRlIG9uIGNvbGxhcHNlIGFuZCByZXZlcnNlIG9uIGV4cGFuZC5cbiAgIEJvdGggLm5hdi1yYWlsLWxvZ28tcSBhbmQgLm5hdi1yYWlsLWxvZ28tZG5hIGFyZSBpbmxpbmUgU1ZHcyB0aGF0IHNoYXJlIHRoZVxuICAgT1JJR0lOQUwgd29yZG1hcmsgdmlld0JveCAoMTgwIDE4MCA5ODAgNDIwKSBhbmQgYXJlIG92ZXJsYWlkIGF0IHRoZSBzYW1lIHNpemVcbiAgICg3MMOXMzAgPSAzMMK3OTgwLzQyMCksIHNvIHRoZSBRIGFuZCBETkEgc2l0IGluIHRoZSBleGFjdCByZWxhdGl2ZSBwb3NpdGlvbiArXG4gICBzY2FsZSBvZiB0aGUgcmVhbCBjb21iaW5lZCBsb2dvIOKAlCBubyBndWVzc2VkIG9mZnNldHMuIFRoZSBjb250YWluZXIgY2xpcHMgdG9cbiAgIHRoZSBRJ3Mgd2lkdGggd2hlbiBjb2xsYXBzZWQ7IHRoZSBETkEgZ3JvdXAgYWRkaXRpb25hbGx5IGZhZGVzICsgZHJvcHMuICovXG4ucWRuYXByby1uYXYtcmFpbCAubmF2LXJhaWwtbG9nbyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMzBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIC8vIE1hdGNoIHRoZSBuYXYgSUNPTiBjb2xvdXIgKG5vdCB0aGUgYWN0aXZlL3doaXRlKSDigJQgdGhlIFNWR3MgdXNlXG4gICAgLy8gZmlsbDogY3VycmVudENvbG9yLCBzbyB0aGUgUSArIEROQSBpbmhlcml0IHRoaXMuIChKYW46IGxvZ28gc2hvdWxkIGJlXG4gICAgLy8gdGhlIHNhbWUgY29sb3VyIGFzIHRoZSBpY29ucywgYXMgaXQgb3JpZ2luYWxseSB3YXMuKVxuICAgIGNvbG9yOiB2YXIoLS1jLW5hdi1pY29uKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggNDUwbXMgY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpO1xufVxuLnFkbmFwcm8tbmF2LXJhaWwgLm5hdi1yYWlsLWxvZ28tcSxcbi5xZG5hcHJvLW5hdi1yYWlsIC5uYXYtcmFpbC1sb2dvLWRuYSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiA3MHB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLW5hdi1yYWlsIC5uYXYtcmFpbC1sb2dvLXEgc3ZnLFxuLnFkbmFwcm8tbmF2LXJhaWwgLm5hdi1yYWlsLWxvZ28tZG5hIHN2ZyB7IHdpZHRoOiA3MHB4OyBoZWlnaHQ6IDMwcHg7IGZpbGw6IGN1cnJlbnRDb2xvcjsgZGlzcGxheTogYmxvY2s7IH1cbi8vIFEgc2l0cyBvbiB0b3Agb2YgdGhlIEROQSBsYXllciBzbyB0aGUgRE5BIHNsaWRlcyBsZWZ0IEJFSElORCB0aGUgUSBvbiBjb2xsYXBzZS5cbi5xZG5hcHJvLW5hdi1yYWlsIC5uYXYtcmFpbC1sb2dvLXEgeyB6LWluZGV4OiAxOyB9XG5cbi5xZG5hcHJvLW5hdi1yYWlsIC5uYXYtcmFpbC1sb2dvLWRuYSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgICAgb3BhY2l0eSAyODBtcyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSksXG4gICAgICAgIHRyYW5zZm9ybSA0NTBtcyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSk7XG59XG4ucWRuYXByby1uYXYtcmFpbFtkYXRhLW1vZGU9XCJleHBhbmRlZFwiXSAgLm5hdi1yYWlsLWxvZ28geyB3aWR0aDogNzBweDsgfSAgIC8vIGZ1bGwgd29yZG1hcmsgKFEgKyBETkEpXG4ucWRuYXByby1uYXYtcmFpbFtkYXRhLW1vZGU9XCJjb2xsYXBzZWRcIl0gLm5hdi1yYWlsLWxvZ28geyB3aWR0aDogMzRweDsgfSAgIC8vIGNsaXBwZWQgdG8gdGhlIFFcbi5xZG5hcHJvLW5hdi1yYWlsW2RhdGEtbW9kZT1cImNvbGxhcHNlZFwiXSAubmF2LXJhaWwtbG9nby1kbmEge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTsgICAvLyBzbGlkZSBzdHJhaWdodCBMRUZULCBiZWhpbmQgdGhlIFEsIHdoaWxlIGZhZGluZ1xufVxuXG4ucWRuYXByby1uYXYtcmFpbCAubmF2LXJhaWwtdG9nZ2xlIHtcbiAgICAvLyBtYXJnaW4tbGVmdDphdXRvIGtlZXBzIHRoZSBjaGV2cm9uIHBpbm5lZCB0byB0aGUgaGVhZGVyJ3MgcmlnaHQgZWRnZSBpblxuICAgIC8vIEJPVEggbW9kZXMuIEFzIHRoZSByYWlsIHdpZHRoIHRyYW5zaXRpb25zIDIwOOKGkjgwLCB0aGF0IHJpZ2h0IGVkZ2UgZ2xpZGVzXG4gICAgLy8gbGVmdCB1bnRpbCB0aGUgY2hldnJvbiBzaXRzIHJpZ2h0IG5leHQgdG8gdGhlIFEg4oCUIG5vIGFic29sdXRlIGp1bXAuXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiB2YXIoLS1jLW5hdi1pY29uKTtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZS1vdXQsIGNvbG9yIDEyMG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8tbmF2LXJhaWwgLm5hdi1yYWlsLXRvZ2dsZTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1uYXYtaG92ZXItYmcpO1xuICAgIGNvbG9yOiB2YXIoLS1jLW5hdi1pY29uLWhvdmVyKTtcbn1cbi5xZG5hcHJvLW5hdi1yYWlsIC5uYXYtcmFpbC10b2dnbGU6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG4ucWRuYXByby1uYXYtcmFpbCAubmF2LXJhaWwtdG9nZ2xlOmZvY3VzLXZpc2libGUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1yaW5nKSwgMCAwIDAgNXB4IHZhcigtLWZvY3VzLWdsb3cpO1xufVxuLnFkbmFwcm8tbmF2LXJhaWwgLm5hdi1yYWlsLXRvZ2dsZSBzdmcge1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBmaWxsOiBub25lO1xuICAgIHN0cm9rZTogY3VycmVudENvbG9yO1xuICAgIHN0cm9rZS13aWR0aDogMjtcbiAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7XG4gICAgc3Ryb2tlLWxpbmVqb2luOiByb3VuZDtcbiAgICAvLyBPbmUgY2hldnJvbiBnbHlwaCB0aGF0IFJPVEFURVMgKG5vIHBhdGggc3dhcCk6IFwiPFwiIGluIGV4cGFuZGVkLCBcIj5cIlxuICAgIC8vIHdoZW4gY29sbGFwc2VkLiBEZWxpYmVyYXRlbHkgYSB0b3VjaCBMT05HRVIgdGhhbiB0aGUgMzIwbXMgd2lkdGhcbiAgICAvLyBjb2xsYXBzZSBzbyB0aGUgaGFsZi10dXJuIGxpbmdlcnMgKyBjbGVhcmx5IHNldHRsZXMgaW50byBpdHMgbmV3XG4gICAgLy8gb3JpZW50YXRpb24g4oCUIGF0IDMyMG1zIChpbiBzeW5jIHdpdGggZXZlcnl0aGluZyBlbHNlKSB0aGUgcXVpY2sgMTgwwrBcbiAgICAvLyByZWFkcyBhcyBhIGZsaXAvc25hcCByYXRoZXIgdGhhbiBhIHZpc2libGUgcm90YXRpb24uIChKYW4pXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDYyMG1zIGN1YmljLWJlemllcigwLjIyLCAxLCAwLjM2LCAxKTtcbn1cbi5xZG5hcHJvLW5hdi1yYWlsW2RhdGEtbW9kZT1cImNvbGxhcHNlZFwiXSAubmF2LXJhaWwtdG9nZ2xlIHN2ZyB7IHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cbi5xZG5hcHJvLW5hdi1yYWlsIC5uYXYtcmFpbC1oZWFkZXItZGl2aWRlciB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1uYXYtZGl2aWRlcik7XG4gICAgbWFyZ2luOiAwIDE2cHg7XG59XG4ucWRuYXByby1uYXYtcmFpbFtkYXRhLW1vZGU9XCJjb2xsYXBzZWRcIl0gLm5hdi1yYWlsLWhlYWRlci1kaXZpZGVyIHsgbWFyZ2luOiAwIDEycHg7IH1cblxuLnFkbmFwcm8tbmF2LXJhaWwgLm5hdi1yYWlsLWl0ZW1zIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHBhZGRpbmc6IDEycHggMTJweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA0cHg7XG59XG4ucWRuYXByby1uYXYtcmFpbFtkYXRhLW1vZGU9XCJjb2xsYXBzZWRcIl0gLm5hdi1yYWlsLWl0ZW1zIHtcbiAgICBwYWRkaW5nOiAxMnB4IDEycHg7XG4gICAgLy8gTGVmdC1hbmNob3JlZCAobm90IGNlbnRlcmVkKSBzbyBlYWNoIGljb24gc3RheXMgb24gdGhlIHNhbWUgdmVydGljYWxcbiAgICAvLyBsaW5lIGFzIHRoZSBRIOKAlCB0aGUgaWNvbnMgZG9uJ3Qgc2hpZnQgc2lkZXdheXMgd2hlbiBjb2xsYXBzaW5nLiAoSmFuKVxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufVxuXG4ucWRuYXByby1uYXYtcmFpbCAubmF2LXJhaWwtYm90dG9tIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBwYWRkaW5nOiA4cHggMTJweCAxNnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDRweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1uYXYtZGl2aWRlcik7XG59XG4ucWRuYXByby1uYXYtcmFpbFtkYXRhLW1vZGU9XCJjb2xsYXBzZWRcIl0gLm5hdi1yYWlsLWJvdHRvbSB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi8qIFRoZSB2ZXJzaW9uICsgYnVpbGQgZm9vdGVyICgubmF2LXJhaWwtdmVyc2lvbiwgYSBzbG90PVwiYm90dG9tXCIgYnV0dG9uIHRoYXRcbiAgIG9wZW5lZCB0aGUgQWJvdXQgUUROQSBQcm8gc3BsYXNoKSBpcyBSRU1PVkVEIHBlciAyMDI2LTA3LTMxOiB0aGF0IGVudHJ5IG5vd1xuICAgbGl2ZXMgaW4gdGhlIHByb2ZpbGUgZHJvcGRvd24gYXMgXCJPdmVyIFFETkEgUHJvXCIgKFZpZXcvdjEvYmFzZS5odG1sKS4gVGhlXG4gICAubmF2LXJhaWwtYm90dG9tIHJ1bGVzIGFib3ZlIHN0YXkg4oCUIHRoZXkgYXJlIGdlbmVyaWMgZm9yIGFueSBzbG90PVwiYm90dG9tXCJcbiAgIGNoaWxkLCBub3QgdGllZCB0byB0aGUgdmVyc2lvbiBibG9jay4gKi9cblxuLyogRGVmYXVsdCBzdXJmYWNlIHRva2VucyAobmF2eSBwYWxldHRlKSAqL1xuLnFkbmFwcm8tbmF2LXJhaWwge1xuICAgIC0tYy1uYXYtYmc6ICAgICAgICAgICB2YXIoLS1jLXNpZGViYXItYmcpO1xuICAgIC0tYy1uYXYtZGl2aWRlcjogICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTApO1xuICAgIC0tYy1uYXYtaG92ZXItYmc6ICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICAgIC0tYy1uYXYtYWN0aXZlLWJnOiAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpO1xuICAgIC0tYy1uYXYtaWNvbjogICAgICAgICB2YXIoLS1jLXNpZGViYXItaWNvbik7XG4gICAgLS1jLW5hdi1pY29uLWhvdmVyOiAgICNmZmZmZmY7XG4gICAgLS1jLW5hdi1pY29uLWFjdGl2ZTogICNmZmZmZmY7XG4gICAgLS1jLW5hdi1sYWJlbDogICAgICAgIHZhcigtLWMtc2lkZWJhci1pY29uKTtcbiAgICAtLWMtbmF2LWxhYmVsLWhvdmVyOiAgI2ZmZmZmZjtcbiAgICAtLWMtbmF2LWxhYmVsLWFjdGl2ZTogI2ZmZmZmZjtcbiAgICAtLWMtbmF2LWJhZGdlLWJnOiAgICAgdmFyKC0tYy13YXJuLXJlZC01MDApO1xuICAgIC0tYy1uYXYtYmFkZ2UtdGV4dDogICAjZmZmZmZmO1xufVxuXG4vKiBQYWdlLWxldmVsIGRhcmsgbW9kZTogcmFpbCBiZWNvbWVzIEdyZXkvODAwLlxuICAgQWN0aXZlIHN0YXRlIG1pcnJvcnMgYWN0aXZpdHkgcm93LWJ0biBhY3RpdmUgKHNhdHVyYXRlZCBicmFuZC1wdXJwbGVcbiAgIHRpbnQgd2l0aCBsaWdodC1wdXJwbGUgaWNvbi9sYWJlbCkgZm9yIHZpc3VhbCBjb250aW51aXR5LlxuICAgW0tpbSAyMDI2LTA1LTE5XSAqL1xuW2RhdGEtdGhlbWUtZGFya10gLnFkbmFwcm8tbmF2LXJhaWwsXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tbmF2LXJhaWwsXG5ib2R5W2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLW5hdi1yYWlsIHtcbiAgICAtLWMtbmF2LWJnOiAgICAgICAgICAgdmFyKC0tYy1ncmV5LTgwMCk7XG4gICAgLS1jLW5hdi1kaXZpZGVyOiAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gICAgLS1jLW5hdi1ob3Zlci1iZzogICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNik7XG4gICAgLS1jLW5hdi1hY3RpdmUtYmc6ICAgIHJnYmEoNzAsIDgyLCAyNDMsIDAuMjApO1xuICAgIC0tYy1uYXYtaWNvbjogICAgICAgICB2YXIoLS1jLWdyZXktMzAwKTtcbiAgICAtLWMtbmF2LWljb24taG92ZXI6ICAgI2ZmZmZmZjtcbiAgICAtLWMtbmF2LWljb24tYWN0aXZlOiAgI2E1YWNmZjtcbiAgICAtLWMtbmF2LWxhYmVsOiAgICAgICAgdmFyKC0tYy1ncmV5LTMwMCk7XG4gICAgLS1jLW5hdi1sYWJlbC1ob3ZlcjogICNmZmZmZmY7XG4gICAgLS1jLW5hdi1sYWJlbC1hY3RpdmU6ICNhNWFjZmY7XG59XG5cbi8qIEZvcmNlZCBsaWdodCB0aGVtZSB2aWEgYXR0cmlidXRlIG9uIHRoZSByYWlsIGl0c2VsZi4gKi9cbi5xZG5hcHJvLW5hdi1yYWlsW2RhdGEtdGhlbWU9XCJsaWdodFwiXSB7XG4gICAgLS1jLW5hdi1iZzogICAgICAgICAgICNmZmZmZmY7XG4gICAgLS1jLW5hdi1kaXZpZGVyOiAgICAgIHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gICAgLS1jLW5hdi1ob3Zlci1iZzogICAgIHZhcigtLWMtcHVycGxlLTUwKTtcbiAgICAtLWMtbmF2LWFjdGl2ZS1iZzogICAgdmFyKC0tYy1iZy1zZWNvbmRhcnktcHVycGxlKTtcbiAgICAtLWMtbmF2LWljb246ICAgICAgICAgdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICAtLWMtbmF2LWljb24taG92ZXI6ICAgdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICAgIC0tYy1uYXYtaWNvbi1hY3RpdmU6ICB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgLS1jLW5hdi1sYWJlbDogICAgICAgIHZhcigtLWMtdGV4dC1ib2R5KTtcbiAgICAtLWMtbmF2LWxhYmVsLWhvdmVyOiAgdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICAgIC0tYy1uYXYtbGFiZWwtYWN0aXZlOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG59XG4vKiA9PT0gRU5EIFFETkEtTkFWLVJBSUwgQ1NTID09PSAqL1xuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgcWRuYXByby1ub2RlLXBpY2tlclxuLy8gIEZ1bGwtaGVpZ2h0IGZsb3ctZWRpdG9yIG5vZGUgcGlja2VyOiBhIHB1cnBsZSAoUUROQSBuYXZ5KSByYWlsXG4vLyAgd2l0aCBjYXRlZ29yeSBidXR0b25zICsgYSBsaWdodCBwYW5lbCB0aGF0IHNsaWRlcyBvcGVuIHRvIHRoZVxuLy8gIHJpZ2h0IGhvbGRpbmcgdGhlIGRyYWdnYWJsZSBub2RlIHR5cGVzIHVuZGVyIHN1Yi1oZWFkZXJzLlxuLy8gIExpZ2h0IERPTSBQYXR0ZXJuIEIg4oCUIHRoZSBob3N0IGl0c2VsZiBpcyAucWRuYXByby1ub2RlLXBpY2tlci5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBCb3JkZXItYmVhbSBhbmdsZSBjdXN0b20gcHJvcGVydHkgKG11c3QgYmUgYSB0b3AtbGV2ZWwgQHByb3BlcnR5LCBub3Rcbi8vIG5lc3RhYmxlIHVuZGVyIGEgc2VsZWN0b3IpIOKAlCByZWdpc3RlcmluZyBpdCBhcyBhbiA8YW5nbGU+IGlzIHdoYXQgbGV0cyB0aGVcbi8vIGJyb3dzZXIgaW50ZXJwb2xhdGUgaXQgc21vb3RobHkgZnJhbWUtYnktZnJhbWUgaW5zdGVhZCBvZiBzbmFwcGluZywgd2hpY2hcbi8vIGlzIHdoYXQgbWFrZXMgdGhlIGNvbmljLWdyYWRpZW50IGJlbG93IGFjdHVhbGx5IHJvdGF0ZSBpbnN0ZWFkIG9mIGp1bXBpbmcuXG4vLyBVc2VkIGJ5IC5xZG5hcHJvLW5vZGUtcGlja2VyX19mb3JtLWNhcmQ6OmFmdGVyIGZ1cnRoZXIgZG93bi5cbkBwcm9wZXJ0eSAtLXFucC1iZWFtLWFuZ2xlIHtcbiAgICBzeW50YXg6IFwiPGFuZ2xlPlwiO1xuICAgIGluaGVyaXRzOiBmYWxzZTtcbiAgICBpbml0aWFsLXZhbHVlOiAwZGVnO1xufVxuXG4ucWRuYXByby1ub2RlLXBpY2tlciB7XG4gICAgLy8gUGFsZXR0ZSBtaXJyb3JzIHFkbmFwcm8tbmF2LXJhaWwgKFFETkEgbmF2eSByYWlsKS5cbiAgICAtLW5wLXJhaWwtYmc6ICAgICAgICAgIHZhcigtLWMtc2lkZWJhci1iZyk7XG4gICAgLS1ucC1yYWlsLWljb246ICAgICAgICB2YXIoLS1jLXNpZGViYXItaWNvbik7ICAgLy8gbXV0ZWQgbGlsYWNcbiAgICAtLW5wLXJhaWwtaWNvbi1ob3ZlcjogICNmZmZmZmY7XG4gICAgLS1ucC1yYWlsLWFjdGl2ZS1iZzogICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpO1xuICAgIC0tbnAtcmFpbC1ob3Zlci1iZzogICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgICAtLW5wLXJhaWwtbGFiZWw6ICAgICAgIHZhcigtLWMtc2lkZWJhci1pY29uKTtcbiAgICAtLW5wLXJhaWwtbGFiZWwtaG92ZXI6ICNmZmZmZmY7XG5cbiAgICAtLW5wLXBhbmVsLWJnOiAgICAgICNmZmZmZmY7XG4gICAgLS1ucC1wYW5lbC1ib3JkZXI6ICB2YXIoLS1jLWJvcmRlci1zb2Z0LTIpO1xuICAgIC0tbnAtcGFuZWwtc2hhZG93OiAgMCAxOHB4IDQwcHggcmdiYSgzOCwgNDIsIDkyLCAwLjE2KTtcbiAgICAtLW5wLXN1YmhlYWQ6ICAgICAgIHZhcigtLWMtdGV4dC1kaXNhYmxlZC1wcCk7XG4gICAgLS1ucC1ub2RlLXRleHQ6ICAgICB2YXIoLS1jLXNpZGViYXItYmcpO1xuICAgIC0tbnAtbm9kZS1ob3Zlci1iZzogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKTtcbiAgICAtLW5wLW5vZGUtaWNvbjogICAgIHZhcigtLWMtcHVycGxlLTQwMCk7XG5cbiAgICAtLW5wLXJhaWwtdzogIDU2cHg7ICAgLy8gcmFpbCBpcyBhbHdheXMgc21hbGwgKGljb24tb25seSk7IHdhcyA2OHB4LCBLaW0gMTYuMDcuMjAyNjogXCJzbWFsbGVyXCJcbiAgICAtLW5wLXBhbmVsLXc6IDIwOHB4OyAgLy8gY29tcGFjdCAod2FzIDI1NnB4LCBLaW0gMTYuMDcuMjAyNjogXCJ2ZWVsIHRlIGdyb290XCIpXG4gICAgLS1ucC1jYXQtc2l6ZTogMzZweDsgIC8vIHJhaWwgYnV0dG9uIGRpYW1ldGVyOyB3YXMgNDRweCwgc2hydW5rIGFsb25nc2lkZSB0aGUgcmFpbFxuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBmb250LWZhbWlseTogSW50ZXIsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBzYW5zLXNlcmlmO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnFkbmFwcm8tbm9kZS1waWNrZXIgKixcbi5xZG5hcHJvLW5vZGUtcGlja2VyICo6OmJlZm9yZSxcbi5xZG5hcHJvLW5vZGUtcGlja2VyICo6OmFmdGVyIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4vLyAtLS0tLS0tLS0tIHJhaWwgKGFsd2F5cyBzbWFsbCAvIGljb24tb25seSkgLS0tLS0tLS0tLVxuLnFkbmFwcm8tbm9kZS1waWNrZXJfX3JhaWwge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiB2YXIoLS1ucC1yYWlsLXcpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW5wLXJhaWwtYmcpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIHBhZGRpbmc6IDhweCAwIDEwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICB6LWluZGV4OiAyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgICAvLyBhbmNob3JzIHRoZSBzbGlkaW5nIHBpbGwgYmVsb3dcbn1cblxuLy8gU2xpZGluZyBcInNlbGVjdGVkXCIgcGlsbCAoS2ltL0phbiAxNi4wNy4yMDI2IOKAlCBzYW1lIGdsaWRlIGFzIHFkbmFwcm8tYm90dG9tLW5hdidzXG4vLyBwaWxsLCB0cmFuc2xhdGVZIGluc3RlYWQgb2YgdHJhbnNsYXRlWCBzaW5jZSB0aGUgcmFpbCBydW5zIHZlcnRpY2FsbHkpLiBBXG4vLyBzZXBhcmF0ZSBlbGVtZW50LCBOT1QgdGhlIGJ1dHRvbidzIG93biBiYWNrZ3JvdW5kLCBzbyBpdCBjYW4gZ2xpZGUgc21vb3RobHlcbi8vIGJldHdlZW4gYnV0dG9ucyBpbnN0ZWFkIG9mIHRoZSBoaWdobGlnaHQgc25hcHBpbmcgaW5zdGFudGx5IOKAlCBtb3ZlZC9zaG93biBieVxuLy8gcWRuYS1ub2RlLXBpY2tlci5qcydzIF9tb3ZlUGlsbCgpLiBTaXRzIEJFSElORCB0aGUgYnV0dG9ucyAoei1pbmRleCAwIHZzIHRoZVxuLy8gYnV0dG9ucycgei1pbmRleCAxKSBzbyB0aGUgaWNvbiBvbiB0b3AgbmV2ZXIgd2FzaGVzIG91dC5cbi5xZG5hcHJvLW5vZGUtcGlja2VyX19yYWlsLXBpbGwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIHdpZHRoOiB2YXIoLS1ucC1jYXQtc2l6ZSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1ucC1jYXQtc2l6ZSk7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tbnAtY2F0LXNpemUpIC8gLTIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDsgICAvLyBtYXRjaCB0aGUgYnV0dG9uIHJhZGl1cyAocm91bmRlZCBzcXVhcmUsIG5vdCBhIGZ1bGwgcGlsbClcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ucC1yYWlsLWFjdGl2ZS1iZyk7XG4gICAgb3BhY2l0eTogMDsgICAvLyBoaWRkZW4gdW50aWwgYSBjYXRlZ29yeSBpcyBhY3R1YWxseSBvcGVuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSA0MjBtcyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSksIG9wYWNpdHkgMTYwbXMgZWFzZS1vdXQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgei1pbmRleDogMDtcbn1cblxuLy8gY2F0ZWdvcnkgYnV0dG9ucyAoaWNvbi1vbmx5OyBsYWJlbCBsaXZlcyBpbiB0aGUgaG92ZXIgdG9vbHRpcClcbi5xZG5hcHJvLW5vZGUtcGlja2VyX19jYXQge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiB2YXIoLS1ucC1yYWlsLWljb24pO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogdmFyKC0tbnAtY2F0LXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tbnAtY2F0LXNpemUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDsgICAvLyBtYXRjaCBxZG5hcHJvLW5hdi1yYWlsIG5hdi1pdGVtIHJhZGl1c1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7ICAgLy8gc2l0IGFib3ZlIHRoZSBzbGlkaW5nIHBpbGxcbiAgICB6LWluZGV4OiAxO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZS1vdXQsIGNvbG9yIDEyMG1zIGVhc2Utb3V0O1xuXG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLW5wLXJhaWwtaG92ZXItYmcpOyBjb2xvcjogdmFyKC0tbnAtcmFpbC1pY29uLWhvdmVyKTsgfVxuICAgIC8vIE5vIGJhY2tncm91bmQgaGVyZSBhbnltb3JlIOKAlCB0aGUgc2xpZGluZyBwaWxsIElTIHRoZSBhY3RpdmUtaGlnaGxpZ2h0IG5vdy5cbiAgICAvLyBPbmx5IHRoZSBpY29uIGNvbG91ciBzdGlsbCBmbGlwcyBpbnN0YW50bHkgb24gYWN0aXZhdGlvbi5cbiAgICAmLmlzLWFjdGl2ZSB7IGNvbG9yOiAjZmZmZmZmOyB9XG5cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tbnAtcmFpbC1iZyksIDAgMCAwIDRweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gICAgfVxufVxuXG4ucWRuYXByby1ub2RlLXBpY2tlcl9fY2F0LWljb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBpIHsgZm9udC1zaXplOiAxOHB4OyBsaW5lLWhlaWdodDogMTsgfVxufVxuXG4vLyBDYXJkIGNhdGVnb3J5IGJ1dHRvbiAoRk9STSB2YXJpYW50KTogc3RheXMgV0hJVEUgd2l0aCBhIHB1cnBsZSBpY29uIHNvIGl0XG4vLyByZWFkcyBhcyBkaXN0aW5jdCBmcm9tIHRoZSBwdXJwbGUgY2F0ZWdvcnkgaWNvbnMgKEtpbSAxNy4wNy4yMDI2KS4gVGhlIGljb25cbi8vIG11c3QgTk9UIGZsaXAgdG8gd2hpdGUgb24gaG92ZXIvYWN0aXZlICh3aGl0ZS1vbi13aGl0ZSkg4oCUIG92ZXJyaWRlIGJvdGguXG4ucWRuYXByby1ub2RlLXBpY2tlcl9fY2FyZCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgICBjb2xvcjogdmFyKC0tbnAtbm9kZS1pY29uKTtcbiAgICBib3gtc2hhZG93OiAwIDJweCA2cHggcmdiYSgzOCwgNDIsIDkyLCAwLjIwKTtcblxuICAgICY6aG92ZXIgICAgICAgIHsgYmFja2dyb3VuZDogI2ZmZmZmZjsgICAgICAgICBjb2xvcjogdmFyKC0tbnAtbm9kZS1pY29uKTsgfVxuICAgICYuaXMtYWN0aXZlICAgIHsgY29sb3I6IHZhcigtLW5wLW5vZGUtaWNvbik7IH1cbiAgICAmOmhvdmVyIC5xZG5hcHJvLW5vZGUtcGlja2VyX19jYXQtaWNvbixcbiAgICAmLmlzLWFjdGl2ZSAucWRuYXByby1ub2RlLXBpY2tlcl9fY2F0LWljb24geyBjb2xvcjogdmFyKC0tbnAtbm9kZS1pY29uKTsgfVxufVxuXG4vLyBBdHRlbnRpb24gcHVsc2Ugb24gdGhlIGNhcmQgYnV0dG9uIHdoaWxlIHRoZSBmbG93IGhhcyBOTyBmb3JtLWNhcmQgeWV0XG4vLyAoY29uc3VtZXIgc2V0cyBbY2FyZC1wdWxzZV0gb24gdGhlIGhvc3Qg4oCUIHNlZSBOb2RlYmFyLnZ1ZSkuIEFuIGV4cGFuZGluZ1xuLy8gd2hpdGUgcmluZyArIGEgZ2VudGxlIHNjYWxlLCBzbyBpdCBjbGVhcmx5IHN0YW5kcyBvdXQgb24gdGhlIHB1cnBsZSByYWlsLlxuQGtleWZyYW1lcyBxZG5hcHJvLW5vZGUtcGlja2VyLWNhcmQtcHVsc2Uge1xuICAgIDAlICAgeyBib3gtc2hhZG93OiAwIDJweCA2cHggcmdiYSgzOCwgNDIsIDkyLCAwLjIwKSwgMCAwIDAgMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpOyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gICAgNzAlICB7IGJveC1zaGFkb3c6IDAgMnB4IDZweCByZ2JhKDM4LCA0MiwgOTIsIDAuMjApLCAwIDAgMCA5cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTsgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDYpOyB9XG4gICAgMTAwJSB7IGJveC1zaGFkb3c6IDAgMnB4IDZweCByZ2JhKDM4LCA0MiwgOTIsIDAuMjApLCAwIDAgMCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7ICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG59XG4ucWRuYXByby1ub2RlLXBpY2tlcltjYXJkLXB1bHNlXSAucWRuYXByby1ub2RlLXBpY2tlcl9fY2FyZCB7XG4gICAgYW5pbWF0aW9uOiBxZG5hcHJvLW5vZGUtcGlja2VyLWNhcmQtcHVsc2UgMS44cyBlYXNlLW91dCBpbmZpbml0ZTtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLnFkbmFwcm8tbm9kZS1waWNrZXJbY2FyZC1wdWxzZV0gLnFkbmFwcm8tbm9kZS1waWNrZXJfX2NhcmQgeyBhbmltYXRpb246IG5vbmU7IH1cbn1cblxuLy8gUGhhc2UtMiBwdWxzZTogZHJhdyBhdHRlbnRpb24gdG8gdGhlIFZyYWdlbiAocXVlc3Rpb25zKSBjYXRlZ29yeSBidXR0b25cbi8vIHdoaWxlIHRoZSBmb3JtIGZsb3cgaGFzIGV4YWN0bHkgT05FIGZvcm0tY2FyZCBwbGFjZWQgYW5kIHRoYXQgY2FyZCBzdGlsbFxuLy8gaGFzIE5PIHF1ZXN0aW9ucyBkcm9wcGVkIG9udG8gaXQgKGNvbnN1bWVyIHNldHMgW25vZGUtcHVsc2VdIG9uIHRoZSBob3N0XG4vLyDigJQgc2VlIE5vZGViYXIudnVlIG5vZGVQdWxzZS9fc3luY05vZGVQdWxzZSkuIE1pcnJvcnMgW2NhcmQtcHVsc2VdIGFib3ZlIDE6MSxcbi8vIHJldXNpbmcgdGhlIHNhbWUgcmluZyBrZXlmcmFtZTsgdGhlIHR3byBzdGF0ZXMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZVxuLy8gKDAgY2FyZHMgdnMuIDEgZW1wdHkgY2FyZCkgc28gdGhleSBuZXZlciBhbmltYXRlIGF0IHRoZSBzYW1lIHRpbWUuXG4ucWRuYXByby1ub2RlLXBpY2tlcltub2RlLXB1bHNlXSAucWRuYXByby1ub2RlLXBpY2tlcl9fY2F0W2RhdGEtY2F0PVwicXVlc3Rpb25zXCJdIHtcbiAgICBhbmltYXRpb246IHFkbmFwcm8tbm9kZS1waWNrZXItY2FyZC1wdWxzZSAxLjhzIGVhc2Utb3V0IGluZmluaXRlO1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAucWRuYXByby1ub2RlLXBpY2tlcltub2RlLXB1bHNlXSAucWRuYXByby1ub2RlLXBpY2tlcl9fY2F0W2RhdGEtY2F0PVwicXVlc3Rpb25zXCJdIHsgYW5pbWF0aW9uOiBub25lOyB9XG59XG5cbi8vIC0tLS0tLS0tLS0gcGFuZWwgLS0tLS0tLS0tLVxuLnFkbmFwcm8tbm9kZS1waWNrZXJfX3BhbmVsIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIC8vIElsbHVzdHJhdGlvbiByZXNlcnZlZCBhdCB0aGUgYm90dG9tIChLaW0gMTYuMDcuMjAyNik6IGEgYmFja2dyb3VuZFxuICAgIC8vIGltYWdlLCBOT1QgYSBET00gZWxlbWVudCwgc28gaXQgbmV2ZXIgYWZmZWN0cyB0aGUgcGFuZWwncyBXSURUSCDigJQgaXRcbiAgICAvLyBvbmx5IGV2ZXIgcmVuZGVycyB3aXRoaW4gd2hhdGV2ZXIgd2lkdGggdGhlIHBhbmVsIGFscmVhZHkgaGFzLlxuICAgIC8vIGJhY2tncm91bmQtYXR0YWNobWVudCBzdGF5cyBhdCBpdHMgaW5pdGlhbCBcInNjcm9sbFwiIChpLmUuIGZpeGVkXG4gICAgLy8gcmVsYXRpdmUgdG8gdGhlIHBhbmVsJ3Mgb3duIGJveCwgbm90IHRoZSBwYWdlKSwgd2hpY2ggaXMgZXhhY3RseSB3aGF0XG4gICAgLy8ga2VlcHMgaXQgYW5jaG9yZWQgdG8gdGhlIHZpc2libGUgYm90dG9tIGVkZ2UgZXZlbiB3aGlsZSB0aGUgbm9kZSBsaXN0XG4gICAgLy8gc2Nyb2xscyBpbnRlcm5hbGx5LiBUaGUgYXNzZXQgaXRzZWxmIGlzIHByZS1iYWtlZCB0byBvcGFjaXR5IDAuNCAoPVxuICAgIC8vIFwiNjAlIHRyYW5zcGFyZW50XCIpIOKAlCBzZWUgd2ViL2Fzc2V0cy9pbGx1c3RyYXRpb25zL25vZGUtcGlja2VyLWZsb3cuc3ZnIOKAlFxuICAgIC8vIHJhdGhlciB0aGFuIGEgQ1NTIG9wYWNpdHkgaGVyZSwgd2hpY2ggd291bGQgYWxzbyBmYWRlIHRoZSBub2RlIGxpc3QuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbnAtcGFuZWwtYmcpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9hc3NldHMvaWxsdXN0cmF0aW9ucy9ub2RlLXBpY2tlci1mbG93LnN2Z1wiKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLW5wLXBhbmVsLWJvcmRlcik7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tbnAtcGFuZWwtc2hhZG93KTtcbiAgICBib3JkZXItcmFkaXVzOiAwIDEwcHggMTBweCAwO1xuICAgIHRyYW5zaXRpb246IHdpZHRoIDIwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHotaW5kZXg6IDE7XG4gICAgLy8gRnVsbCBoZWlnaHQgYWdhaW4gKEtpbSAxNi4wNy4yMDI2OiByZXNlcnZlZCBmb3IgdGhlIGlsbHVzdHJhdGlvbixcbiAgICAvLyBub3Qgd2FzdGVkIHNwYWNlIOKAlCByZXZlcnRzIHRoZSBlYXJsaWVyIFwiaHVnIGNvbnRlbnRcIiBleHBlcmltZW50KS5cbn1cbi5xZG5hcHJvLW5vZGUtcGlja2VyW2RhdGEtb3Blbl0gLnFkbmFwcm8tbm9kZS1waWNrZXJfX3BhbmVsIHtcbiAgICB3aWR0aDogdmFyKC0tbnAtcGFuZWwtdyk7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBwYWRkaW5nOiA4cHggOHB4IDEwcHg7XG59XG5cbi5xZG5hcHJvLW5vZGUtcGlja2VyX19wYW5lbC1oZWFkIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogdmFyKC0tbnAtbm9kZS10ZXh0KTtcbiAgICBwYWRkaW5nOiAwIDRweCA4cHg7XG4gICAgLy8gd3JhcCAobm90IG5vd3JhcCk6IHRoZSBjYXJkIHBhbmVsJ3MgdGl0bGUgaXMgYSBmdWxsIHNlbnRlbmNlLlxuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbn1cblxuLy8gQ2FyZCBwYW5lbCBzdWJ0ZXh0ICh1bmRlciB0aGUgdGl0bGUpLlxuLnFkbmFwcm8tbm9kZS1waWNrZXJfX3BhbmVsLXN1YiB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgY29sb3I6IHZhcigtLW5wLXN1YmhlYWQpO1xuICAgIHBhZGRpbmc6IDAgNHB4IDEycHg7XG59XG5cbi8vIFRoZSBkcmF3biBkcmFnZ2FibGUgZm9ybS1jYXJkIChhIG1pbmkgZm9ybS1wYWdlKS4gUmVhZHMgYXMgYSBcImNhcmRcIixcbi8vIGRpc3RpbmN0IGZyb20gdGhlIG5vZGUgcm93cyBkcm9wcGVkIG9udG8gaXQuIFB1cnBsZSBob3ZlciBkcmFnLWhhbmRsZSxcbi8vIHNhbWUgYWZmb3JkYW5jZS92YWx1ZXMgYXMgdGhlIG5vZGUgaXRlbXMgKyBhbnN3ZXItb3B0aW9uLlxuLnFkbmFwcm8tbm9kZS1waWNrZXJfX2Zvcm0tY2FyZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMnB4IDJweCA0cHggMTRweDsgICAvLyBsZWZ0IHJvb20gZm9yIHRoZSBkcmFnIGhhbmRsZVxuICAgIHBhZGRpbmc6IDEwcHggMTBweCAxMnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gICAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1ucC1wYW5lbC1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMzgsIDQyLCA5MiwgMC4xMCk7XG4gICAgY3Vyc29yOiBncmFiO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAxMjBtcyBlYXNlLCBib3gtc2hhZG93IDEyMG1zIGVhc2U7XG5cbiAgICAmOjpiZWZvcmUgeyAgIC8vIHB1cnBsZSBkcmFnIGhhbmRsZSwgcmV2ZWFsZWQgb24gaG92ZXJcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAtMTBweDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgd2lkdGg6IDRweDtcbiAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWFjdGlvbi01MDApO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgZWFzZTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtcHVycGxlLTEwMCk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgzOCwgNDIsIDkyLCAwLjE2KTtcbiAgICAgICAgJjo6YmVmb3JlIHsgb3BhY2l0eTogMTsgfVxuICAgIH1cbiAgICAmOmFjdGl2ZSB7IGN1cnNvcjogZ3JhYmJpbmc7IH1cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggI2ZmZmZmZiwgMCAwIDAgNHB4IHJnYmEoODEsIDg5LCAxNjQsIDAuNDUpO1xuICAgIH1cblxuICAgIC8vIEJvcmRlciBiZWFtIChNYWdpYy1VSSBzdHlsZSk6IGEgbGlnaHQgY29udGludW91c2x5IHRyYXZlbHMgYXJvdW5kIHRoZVxuICAgIC8vIGNhcmQncyBib3JkZXIsIHNvIHRoZSBkcmFnZ2FibGUgZm9ybS1jYXJkIHByZXZpZXcgcmVhZHMgYXMgXCJhbGl2ZVwiIC9cbiAgICAvLyBkcmF3LWF0dGVudGlvbiByYXRoZXIgdGhhbiBhIHN0YXRpYyByZWN0YW5nbGUuIFB1cmUgQ1NTIOKAlCBhIHJvdGF0aW5nXG4gICAgLy8gY29uaWMtZ3JhZGllbnQgY2xpcHBlZCBkb3duIHRvIGp1c3QgdGhlIGJvcmRlciByaW5nIHZpYVxuICAgIC8vIG1hc2stY29tcG9zaXRlOiBleGNsdWRlIChjb250ZW50LWJveCB2cy4gYm9yZGVyLWJveCksIHNvIGl0IG5ldmVyXG4gICAgLy8gY292ZXJzIHRoZSBoZWFkZXIvZmllbGQgcGxhY2Vob2xkZXJzIGluc2lkZS4gYm9yZGVyLXJhZGl1czogaW5oZXJpdFxuICAgIC8vIGtlZXBzIHRoZSBiZWFtIGZvbGxvd2luZyB0aGUgY2FyZCdzIG93biByb3VuZGVkIGNvcm5lcnMuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgICAgICBwYWRkaW5nOiAycHg7XG4gICAgICAgIC8vIENvbG91cnMgcHVsbGVkIGZyb20gdGhpcyBjb21wb25lbnQncyBvd24gcHVycGxlIHBhbGV0dGU6IHRoZVxuICAgICAgICAvLyBkcmFnLWhhbmRsZSBibHVlLXB1cnBsZSAoIzQ2NTJmMywgc2VlICY6OmJlZm9yZSBhYm92ZSkgYXMgdGhlIGhvdFxuICAgICAgICAvLyBjb3JlIG9mIHRoZSBiZWFtLCBmYWRpbmcgdGhyb3VnaCB0aGUgaG92ZXIgYm9yZGVyIHRpbnQgKCNiOWMwZjcpXG4gICAgICAgIC8vIGludG8gdHJhbnNwYXJlbmN5IGZvciB0aGUgcmVzdCBvZiB0aGUgcmluZy5cbiAgICAgICAgYmFja2dyb3VuZDogY29uaWMtZ3JhZGllbnQoXG4gICAgICAgICAgICBmcm9tIHZhcigtLXFucC1iZWFtLWFuZ2xlKSxcbiAgICAgICAgICAgIHRyYW5zcGFyZW50IDBkZWcsXG4gICAgICAgICAgICB0cmFuc3BhcmVudCAyNTBkZWcsXG4gICAgICAgICAgICByZ2JhKDcwLCA4MiwgMjQzLCAwLjkpIDMwMGRlZyxcbiAgICAgICAgICAgIHZhcigtLWMtcHVycGxlLTEwMCkgMzMwZGVnLFxuICAgICAgICAgICAgdHJhbnNwYXJlbnQgMzYwZGVnXG4gICAgICAgICk7XG4gICAgICAgIC13ZWJraXQtbWFzazogbGluZWFyLWdyYWRpZW50KCNmZmYgMCAwKSBjb250ZW50LWJveCwgbGluZWFyLWdyYWRpZW50KCNmZmYgMCAwKTtcbiAgICAgICAgLXdlYmtpdC1tYXNrLWNvbXBvc2l0ZTogeG9yO1xuICAgICAgICBtYXNrOiBsaW5lYXItZ3JhZGllbnQoI2ZmZiAwIDApIGNvbnRlbnQtYm94LCBsaW5lYXItZ3JhZGllbnQoI2ZmZiAwIDApO1xuICAgICAgICBtYXNrLWNvbXBvc2l0ZTogZXhjbHVkZTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIGFuaW1hdGlvbjogcWRuYXByby1ub2RlLXBpY2tlci1iZWFtIDNzIGxpbmVhciBpbmZpbml0ZTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgcWRuYXByby1ub2RlLXBpY2tlci1iZWFtIHtcbiAgICB0byB7IC0tcW5wLWJlYW0tYW5nbGU6IDM2MGRlZzsgfVxufVxuXG4ucWRuYXByby1ub2RlLXBpY2tlcl9fZm9ybS1jYXJkLWhlYWRlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKTtcbiAgICBjb2xvcjogdmFyKC0tbnAtbm9kZS10ZXh0KTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuLnFkbmFwcm8tbm9kZS1waWNrZXJfX2Zvcm0tY2FyZC1maWVsZCB7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIGJvcmRlcjogMS41cHggc29saWQgdmFyKC0tbnAtcGFuZWwtYm9yZGVyKTtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyKTtcbiAgICAmICsgJiB7IG1hcmdpbi10b3A6IDhweDsgfVxufVxuXG4ucWRuYXByby1ub2RlLXBpY2tlcl9fc3ViaGVhZCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiB2YXIoLS1ucC1zdWJoZWFkKTtcbiAgICBwYWRkaW5nOiA4cHggNHB4IDNweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICY6Zmlyc3Qtb2YtdHlwZSB7IHBhZGRpbmctdG9wOiAwOyB9XG59XG5cbi5xZG5hcHJvLW5vZGUtcGlja2VyX19lbXB0eSB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiB2YXIoLS1ucC1zdWJoZWFkKTtcbiAgICBwYWRkaW5nOiA4cHg7XG59XG5cbi8vIG5vZGUgaXRlbSAoZHJhZ2dhYmxlKVxuLnFkbmFwcm8tbm9kZS1waWNrZXJfX25vZGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgICAvLyBhbmNob3IgZm9yIHRoZSBob3ZlciBkcmFnLWhhbmRsZSBiYXJcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA5cHg7XG4gICAgLy8gTGVmdCBwYWRkaW5nIHJlc2VydmVzIHJvb20gZm9yIHRoZSBkcmFnIGhhbmRsZSAoYmFyIGF0IGxlZnQ6NHB4LCA0cHhcbiAgICAvLyB3aWRlKSBQTFVTIGJyZWF0aGluZyBzcGFjZSBvbiBib3RoIHNpZGVzIG9mIGl0LCBzbyBpdCBuZXZlciBvdmVybGFwc1xuICAgIC8vIHRoZSBpY29uL3RleHQgb24gaG92ZXIgKEtpbSAxNi4wNy4yMDI2KS5cbiAgICBwYWRkaW5nOiA2cHggOHB4IDZweCAxOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7ICAgLy8gZ2FwIGJldHdlZW4gbm9kZXMgKEtpbSAxNi4wNy4yMDI2LCBleHBsaWNpdCB2YWx1ZSlcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7ICAgLy8gbWF0Y2ggcWRuYXByby1uYXYtcmFpbCBuYXYtaXRlbSByYWRpdXNcbiAgICBjdXJzb3I6IGdyYWI7XG4gICAgY29sb3I6IHZhcigtLW5wLW5vZGUtdGV4dCk7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDExMG1zIGVhc2Utb3V0O1xuXG4gICAgLy8gUHVycGxlIGRyYWctaGFuZGxlIGJhciwgcmV2ZWFsZWQgb24gaG92ZXIuIFNhbWUgYWZmb3JkYW5jZSArIHZhbHVlcyBhc1xuICAgIC8vIHFkbmFwcm8tYW5zd2VyLW9wdGlvbiBfX2RyYWcgLyBhY3Rpdml0eS1yb3cgLyBzZWN0aW9uLWhlYWRlciAoIzQ2NTJmMyxcbiAgICAvLyA0cHggd2lkZSwgMjJweCB0YWxsLCBsZWZ0OjRweCwgb3BhY2l0eSAwIC0+IDEpLlxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogNHB4O1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB3aWR0aDogNHB4O1xuICAgICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYWN0aW9uLTUwMCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBlYXNlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLW5wLW5vZGUtaG92ZXItYmcpO1xuICAgICAgICAmOjpiZWZvcmUgeyBvcGFjaXR5OiAxOyB9XG4gICAgfVxuICAgICY6YWN0aXZlIHsgY3Vyc29yOiBncmFiYmluZzsgfVxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAjZmZmZmZmLCAwIDAgMCA0cHggcmdiYSg4MSwgODksIDE2NCwgMC40NSk7XG4gICAgfVxufVxuXG4ucWRuYXByby1ub2RlLXBpY2tlcl9fbm9kZS1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjJweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY29sb3I6IHZhcigtLW5wLW5vZGUtaWNvbik7XG4gICAgaSB7IGZvbnQtc2l6ZTogMTlweDsgbGluZS1oZWlnaHQ6IDE7IH1cbn1cbi5xZG5hcHJvLW5vZGUtcGlja2VyX19ub2RlLWxhYmVsIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi8vIC0tLS0tLS0tLS0gcmVkdWNlZCBtb3Rpb24gLS0tLS0tLS0tLVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAucWRuYXByby1ub2RlLXBpY2tlcl9fcGFuZWwgeyB0cmFuc2l0aW9uOiBub25lOyB9XG4gICAgLnFkbmFwcm8tbm9kZS1waWNrZXJfX2Zvcm0tY2FyZDo6YWZ0ZXIgeyBhbmltYXRpb246IG5vbmU7IH1cbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL25vdmEvX25vdmEtY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLnFkbmFwcm8tbm92YSB7XG4gIC0tbm92YS1wcmltYXJ5OiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAtLW5vdmEtcHJpbWFyeS1ob3ZlcjogdmFyKC0tYy1wdXJwbGUtNjAwKTtcbiAgLS1ub3ZhLXByaW1hcnktcHJlc3NlZDogdmFyKC0tYy1wdXJwbGUtNzAwKTtcbiAgLS1ub3ZhLXByaW1hcnktZ2xvdzogcmdiYSg3MCwgODIsIDI0MywgMC40MCk7XG4gIC0tbm92YS1wYW5lbC1iZzogI2ZmZmZmZjtcbiAgLS1ub3ZhLXVzZXItYnViYmxlOiB2YXIoLS1jLWdyZXktNTApO1xuICAtLW5vdmEtdGV4dDogdmFyKC0tYy1ncmV5LTk1MCk7XG4gIC0tbm92YS10ZXh0LXNlY29uZGFyeTogdmFyKC0tYy1ncmV5LTUwMCk7XG4gIC0tbm92YS1saW5rOiB2YXIoLS1jLWFjdGlvbi01MDApO1xuICAtLW5vdmEtYm9yZGVyOiB2YXIoLS1jLWdyZXktMzAwKTtcbiAgLS1ub3ZhLWlucHV0LWJnOiAjZmZmZmZmO1xuICAtLW5vdmEtcGxhY2Vob2xkZXI6IHZhcigtLWMtZ3JleS00MDApO1xuICAtLW5vdmEtZGl2aWRlcjogdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gIC0tbm92YS1xdWljay1ob3ZlcjogI2U2ZTlmZjtcbiAgLS1ub3ZhLXBpbm5lZC1iZzogI2U2ZTlmZjtcbiAgLS1ub3ZhLW1lbnUtaG92ZXI6IHZhcigtLWMtZ3JleS01MCk7XG4gIC0tbm92YS1lcnJvci1iZzogdmFyKC0tYy1zaWduYWwtcmVkLXNvZnQpO1xuICAtLW5vdmEtZXJyb3ItdGV4dDogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpO1xuICAtLW5vdmEtc3VjY2VzczogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCk7XG4gIC0tbm92YS1zcGFya2xlLWdyYWQtc3RhcnQ6IHZhcigtLWMtYWN0aW9uLTUwMCk7XG4gIC0tbm92YS1zcGFya2xlLWdyYWQtZW5kOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDA7XG4gIG1pbi13aWR0aDogMDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHotaW5kZXg6IDEwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3ZhLXBhbmVsLWJnKTtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBjb2xvcjogdmFyKC0tbm92YS10ZXh0KTtcbiAgYm94LXNoYWRvdzogLTRweCAwIDIwcHggcmdiYSgwLCAwLCAwLCAwLjA2KTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogd2lkdGggMzIwbXMgZWFzZS1pbi1vdXQ7XG59XG4ucWRuYXByby1ub3ZhLm5vdmEtb3BlbiB7XG4gIHdpZHRoOiAzOTBweDtcbn1cbi5xZG5hcHJvLW5vdmEubm92YS1vcGVuLm5vdmEtZXhwYW5kZWQge1xuICB3aWR0aDogbWluKDcyMHB4LCAxMDB2dyk7XG59XG4ucWRuYXByby1ub3ZhID4gKiB7XG4gIG1pbi13aWR0aDogMzkwcHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ucWRuYXByby1ub3ZhLm5vdmEtZXhwYW5kZWQgPiAqIHtcbiAgbWluLXdpZHRoOiBtaW4oNzIwcHgsIDEwMHZ3KTtcbn1cbi5xZG5hcHJvLW5vdmFbZmxvYXRpbmddIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDEwMHZoO1xuICBoZWlnaHQ6IDEwMGR2aDtcbiAgbWF4LWhlaWdodDogMTAwdmg7XG4gIG1heC1oZWlnaHQ6IDEwMGR2aDtcbiAgd2lkdGg6IDA7XG4gIHotaW5kZXg6IDEwNDA7XG4gIHRyYW5zaXRpb246IHdpZHRoIDMyMG1zIGVhc2UtaW4tb3V0O1xufVxuLnFkbmFwcm8tbm92YVtmbG9hdGluZ10ubm92YS1vcGVuIHtcbiAgd2lkdGg6IDM5MHB4O1xufVxuLnFkbmFwcm8tbm92YVtmbG9hdGluZ10ubm92YS1vcGVuLm5vdmEtZXhwYW5kZWQge1xuICB3aWR0aDogbWluKDcyMHB4LCAxMDB2dyk7XG59XG4ucWRuYXByby1ub3ZhLm5vdmEtdGhlbWUtb3JhbmdlIHtcbiAgLS1ub3ZhLXByaW1hcnk6IHZhcigtLWMtd2Fybi15ZWxsb3ctNjAwKTtcbiAgLS1ub3ZhLXByaW1hcnktaG92ZXI6IHZhcigtLWMtd2Fybi1hbWJlci01MDApO1xuICAtLW5vdmEtcHJpbWFyeS1wcmVzc2VkOiB2YXIoLS1jLXRhZy13YXJuaW5nLXRleHQpO1xuICAtLW5vdmEtcHJpbWFyeS1nbG93OiByZ2JhKDIzOSwgMTQyLCAyLCAwLjQ1KTtcbiAgLS1ub3ZhLXF1aWNrLWhvdmVyOiB2YXIoLS1jLXRhZy13YXJuaW5nLWJnKTtcbiAgLS1ub3ZhLXBpbm5lZC1iZzogdmFyKC0tYy10YWctd2FybmluZy1iZyk7XG4gIC0tbm92YS1zcGFya2xlLWdyYWQtc3RhcnQ6IHZhcigtLWMtd2Fybi15ZWxsb3ctNjAwKTtcbiAgLS1ub3ZhLXNwYXJrbGUtZ3JhZC1lbmQ6IHZhcigtLWMtd2Fybi15ZWxsb3ctNTAwKTtcbn1cbi8vIEluemV0IHZvb3IgZGUgc3RhdHVzYmFsaywgQUxMRUVOIGluIGRlIGFwcC4gWzEwLjA4LjIwMjYsIEphbl1cbi8vIE5vdmEgaXMgaGV0IGVuaWdlIGFwcC1zY2hlcm0gem9uZGVyIHFkbmFwcm8tYXBwLWhlYWRlcjogaGV0IGNvbXBvbmVudCB2dWx0IGhldCBzY2hlcm1cbi8vIHplbGYsIGR1cyB6aWpuIGtvcCBiZWdpbnQgb3AgeSAwIGVuIFwiTm92YVwiIHZpZWwgb25kZXIgZGUgc3lzdGVlbWtsb2suXG4vLyBEZSBlY2h0ZSB3YWFyZGUga29tdCB2YW4gZGUgcGx1Z2luIGBxZG5hLWluc2V0c2AgKEFuZHJvaWQpOyBpT1MgdmFsdCB0ZXJ1ZyBvcCBlbnYoKS5cbi8vIOKaoO+4jyBBbGxlZW4gYWNodGVyIGBbcHdhXWAgKGdlemV0IGluIDAtY29yZS5qcyksIHdhbnQgaGV0IGJhY2tvZmZpY2UtemlqcGFuZWVsIHN0YWF0IG5pZXRcbi8vIHRlZ2VuIGVlbiBzY2hlcm1yYW5kLiBEZSA4cHggaXMgZGUgYmVzdGFhbmRlIGJvdmVubWFyZ2UgdmFuIC5ub3ZhLWhlYWRlciBoaWVyb25kZXI7IGRpZVxuLy8gc3RhYXQgaGllciBvcG5pZXV3IG9tZGF0IGVlbiBgcGFkZGluZy10b3BgIGhlbSBhbmRlcnMgb3ZlcnNjaHJpamZ0LlxuLy8g4pqg77iPIERJVCBJUyBERSBCUk9OLiBhcHBfYXBpX3FkbmF2Mi8uLi4vcWRuYS1ub3ZhLmNzcyBpcyBCT1VXU0VMIHZhblxuLy8gc3luYy12Mi1jb21wb25lbnRzLmpzIOKAlCBlZW4gd2lqemlnaW5nIGRhYXIgd29yZHQgYmlqIGRlIHZvbGdlbmRlIHN5bmMgb3ZlcnNjaHJldmVuLlxuLy8gRGF0IGlzIG9wIDA5LjA4LjIwMjYgcHJlY2llcyDDqcOpbiBrZWVyIGdlYmV1cmQsIGVuIGRhYXJvbSBzdG9uZCBcIk5vdmFcIiB3ZWVyIG9uZGVyIGRlIGtsb2suXG4ucWRuYXByby1ub3ZhW3B3YV0gLm5vdmEtaGVhZGVyIHtcbiAgICBwYWRkaW5nLXRvcDogY2FsYyg4cHggKyB2YXIoLS1xZG5hLWluc2V0LXRvcCwgZW52KHNhZmUtYXJlYS1pbnNldC10b3AsIDBweCkpKTtcbn1cblxuLnFkbmFwcm8tbm92YSAubm92YS1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiA4cHggMTZweCA0cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXRpdGxlIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tbm92YS1wcmltYXJ5KTtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtdGl0bGUtYmFjayB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLW5vdmEtcHJpbWFyeSk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtdGl0bGUtYmFjazpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdmEtcXVpY2staG92ZXIpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1oZWFkZXItYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWhlYWRlci1kaXZpZGVyIHtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3ZhLWRpdmlkZXIpO1xuICBtYXJnaW46IDAgNHB4O1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaGVhZGVyLWJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLW5vdmEtdGV4dCk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1oZWFkZXItYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm92YS1xdWljay1ob3Zlcik7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWhlYWRlci1idG4gc3ZnIHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtY29udGV4dC1waWxsIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBtYXJnaW46IDAgMTJweCA4cHg7XG4gIHBhZGRpbmc6IDRweCA4cHggNHB4IDEwcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdmEtcGlubmVkLWJnKTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLW5vdmEtcHJpbWFyeSk7XG4gIG1heC13aWR0aDogY2FsYygxMDAlIC0gMjRweCk7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtY29udGV4dC1waWxsIHN2ZyB7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1jb250ZXh0LXBpbGwtbGFiZWwge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtY29udGV4dC1waWxsLWNsZWFyIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tbm92YS1wcmltYXJ5KTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbi1sZWZ0OiAycHg7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWNvbnRleHQtcGlsbC1jbGVhcjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXF1aWNrLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDRweDtcbiAgcGFkZGluZzogMCA4cHggOHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbm92YS1kaXZpZGVyKTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXF1aWNrLWFjdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbiAgcGFkZGluZzogNnB4IDhweDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXRleHQpO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB3aWR0aDogMTAwJTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtcXVpY2stYWN0aW9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm92YS1xdWljay1ob3Zlcik7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXF1aWNrLWFjdGlvbiBzdmcge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBmbGV4LXNocmluazogMDtcbiAgY29sb3I6IHZhcigtLW5vdmEtcHJpbWFyeSk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLW1lc3NhZ2VzIHtcbiAgZmxleDogMTtcbiAgbWluLWhlaWdodDogMDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAvLyBLZWVwIHdoZWVsL3RvdWNoIHNjcm9sbGluZyBpbnNpZGUgdGhlIHBhbmVsIOKAlCBkb24ndCBjaGFpbiB0byB0aGUgcGFnZVxuICAvLyBiZWhpbmQgaXQgd2hlbiByZWFjaGluZyB0aGUgdG9wL2JvdHRvbSBvZiBOb3ZhJ3MgbWVzc2FnZSBsaXN0LlxuICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEycHg7XG4gIHBhZGRpbmc6IDE2cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5xZG5hcHJvLW5vdmEubm92YS1leHBhbmRlZCAubm92YS1tZXNzYWdlcyB7XG4gIHBhZGRpbmc6IDE2cHggMjRweDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbWVzc2FnZXMge1xuICBzY3JvbGxiYXItd2lkdGg6IHRoaW47XG4gIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tbm92YS1ib3JkZXIpIHRyYW5zcGFyZW50O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1tZXNzYWdlczo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogNnB4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1tZXNzYWdlczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3ZhLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbXNnLXVzZXItd3JhcCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICBtYXgtd2lkdGg6IDg1JTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBnYXA6IDJweDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbXNnLXVzZXIge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3ZhLXVzZXItYnViYmxlKTtcbiAgY29sb3I6IHZhcigtLW5vdmEtdGV4dCk7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1tc2ctdXNlci1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDEyMG1zIGVhc2U7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1tc2ctdXNlci13cmFwOmhvdmVyIC5ub3ZhLW1zZy11c2VyLWFjdGlvbnMsXG4ucWRuYXByby1ub3ZhIC5ub3ZhLW1zZy11c2VyLXdyYXA6Zm9jdXMtd2l0aGluIC5ub3ZhLW1zZy11c2VyLWFjdGlvbnMge1xuICBvcGFjaXR5OiAxO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbXNnLWFpIHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDhweCAwO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEycHg7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLW1zZy1haS1oZWFkaW5nIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBnYXA6IDRweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLW5vdmEtdGV4dCk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLW1zZy1haS1oZWFkaW5nLWVtb2ppIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLW1zZy1haS1ib2R5IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgY29sb3I6IHZhcigtLW5vdmEtdGV4dCk7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbXNnLWFpLWJvZHkgcCB7XG4gIG1hcmdpbjogMCAwIDhweDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbXNnLWFpLWJvZHkgcDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbXNnLWFpLWJvZHkgc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbXNnLWFpLWJvZHkgYSB7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLWxpbmspO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBzb2xpZDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbXNnLWFpLWJvZHkgdWwsIC5xZG5hcHJvLW5vdmEgLm5vdmEtbXNnLWFpLWJvZHkgb2wge1xuICBtYXJnaW46IDAgMCA4cHg7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbXNnLWFpLWJvZHkgbGkgKyBsaSB7XG4gIG1hcmdpbi10b3A6IDRweDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbXNnLWFpLWJvZHkgY29kZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdmEtdXNlci1idWJibGUpO1xuICBwYWRkaW5nOiAxcHggNHB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGZvbnQtZmFtaWx5OiBNZW5sbywgTW9uYWNvLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1tc2ctYWktcmVmIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA0cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLW1zZy1haS1yZWYtbGFiZWwge1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tbm92YS10ZXh0KTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbXNnLWFpLXJlZi12YWx1ZSBhIHtcbiAgY29sb3I6IHZhcigtLW5vdmEtbGluayk7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1zdHJlYW1pbmctY3Vyc29yIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIG1hcmdpbi1sZWZ0OiAycHg7XG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcbiAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICBhbmltYXRpb246IG5vdmEtY3Vyc29yLXB1bHNlIDFzIHN0ZXBzKDIsIGVuZCkgaW5maW5pdGU7XG59XG5Aa2V5ZnJhbWVzIG5vdmEtY3Vyc29yLXB1bHNlIHtcbiAgMCUsIDUwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICA1MSUsIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtdGhpbmtpbmcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIGhlaWdodDogMjhweDtcbiAgcGFkZGluZzogMCAxMnB4O1xuICBjb2xvcjogdmFyKC0tbm92YS10ZXh0LXNlY29uZGFyeSk7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXRoaW5raW5nLWljb24ge1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBmbGV4LXNocmluazogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXRoaW5raW5nLXNwYXJrbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIG1hcmdpbjogLTdweCAwIDAgLTdweDtcbiAgY29sb3I6IHZhcigtLW5vdmEtcHJpbWFyeSk7XG4gIGFuaW1hdGlvbjogbm92YS1zcGFya2xlLW9yYml0IDIuN3MgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHksIGZpbHRlcjtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtdGhpbmtpbmctc3BhcmtsZTpudGgtY2hpbGQoMikge1xuICBhbmltYXRpb24tZGVsYXk6IC0wLjlzO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS10aGlua2luZy1zcGFya2xlOm50aC1jaGlsZCgzKSB7XG4gIGFuaW1hdGlvbi1kZWxheTogLTEuOHM7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXRoaW5raW5nLXNwYXJrbGUgc3ZnIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5Aa2V5ZnJhbWVzIG5vdmEtc3BhcmtsZS1vcmJpdCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTNweCkgc2NhbGUoMC4yNSk7XG4gICAgb3BhY2l0eTogMC4xODtcbiAgICBmaWx0ZXI6IGJsdXIoMC42cHgpO1xuICB9XG4gIDI1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTNweCwgMCkgc2NhbGUoMC43NSk7XG4gICAgb3BhY2l0eTogMC43O1xuICAgIGZpbHRlcjogYmx1cigwKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDEzcHgpIHNjYWxlKDEuNSk7XG4gICAgb3BhY2l0eTogMTtcbiAgICBmaWx0ZXI6IGJsdXIoMCk7XG4gIH1cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTNweCwgMCkgc2NhbGUoMC43NSk7XG4gICAgb3BhY2l0eTogMC43O1xuICAgIGZpbHRlcjogYmx1cigwKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTNweCkgc2NhbGUoMC4yNSk7XG4gICAgb3BhY2l0eTogMC4xODtcbiAgICBmaWx0ZXI6IGJsdXIoMC42cHgpO1xuICB9XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAucWRuYXByby1ub3ZhIC5ub3ZhLXRoaW5raW5nLXNwYXJrbGUge1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMHM7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIC5xZG5hcHJvLW5vdmEgLm5vdmEtZW1wdHktaGVybyBzdmcgcGF0aCB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG59XG5Aa2V5ZnJhbWVzIG5vdmEtc3BhcmtsZS1iaWcge1xuICAwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xNSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgbm92YS1zcGFya2xlLXNtYWxsIHtcbiAgMCUsIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC43KTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yNSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgbm92YS1wb3AtaW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuODUpO1xuICB9XG4gIDU1JSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuLnFkbmFwcm8tbm92YSAubm92YS1lbXB0eS1oZXJvIHtcbiAgYW5pbWF0aW9uOiBub3ZhLXBvcC1pbiAyNDBtcyBlYXNlLW91dCBib3RoO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1xdWljay1hY3Rpb24ge1xuICBhbmltYXRpb246IG5vdmEtcG9wLWluIDI0MG1zIGVhc2Utb3V0IGJvdGg7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXF1aWNrLWFjdGlvbjpudGgtY2hpbGQoMSkge1xuICBhbmltYXRpb24tZGVsYXk6IDgwbXM7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXF1aWNrLWFjdGlvbjpudGgtY2hpbGQoMikge1xuICBhbmltYXRpb24tZGVsYXk6IDE0MG1zO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1xdWljay1hY3Rpb246bnRoLWNoaWxkKDMpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAyMDBtcztcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtcXVpY2stYWN0aW9uOm50aC1jaGlsZCg0KSB7XG4gIGFuaW1hdGlvbi1kZWxheTogMjYwbXM7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXF1aWNrLWFjdGlvbjpudGgtY2hpbGQoNSkge1xuICBhbmltYXRpb24tZGVsYXk6IDMyMG1zO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1pbnB1dC13cmFwcGVyLm5vdmEtZW1wdHktbW9kZSB7XG4gIGFuaW1hdGlvbjogbm92YS1wb3AtaW4gMjQwbXMgZWFzZS1vdXQgMjgwbXMgYm90aDtcbn1cbkBrZXlmcmFtZXMgbm92YS1oaXN0b3J5LWVudGVyIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEycHgpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWhpc3Rvcnkge1xuICBhbmltYXRpb246IG5vdmEtaGlzdG9yeS1lbnRlciAyMjBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGJvdGg7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAucWRuYXByby1ub3ZhIC5ub3ZhLWVtcHR5LWhlcm8sXG4gIC5xZG5hcHJvLW5vdmEgLm5vdmEtcXVpY2stYWN0aW9uLFxuICAucWRuYXByby1ub3ZhIC5ub3ZhLWlucHV0LXdyYXBwZXIubm92YS1lbXB0eS1tb2RlLFxuICAucWRuYXByby1ub3ZhIC5ub3ZhLWhpc3Rvcnkge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxufVxuLnFkbmFwcm8tbm92YSAubm92YS1tc2ctYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBtYXJnaW4tbGVmdDogLTRweDtcbiAgcGFkZGluZzogMDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1hY3Rpb24tYnRuIHtcbiAgY29sb3I6IHZhcigtLW5vdmEtdGV4dC1zZWNvbmRhcnkpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1hY3Rpb24tYnRuOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLW5vdmEtdGV4dCk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWFjdGlvbi1idG4ubm92YS1hY3Rpb24tdGh1bWIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1hY3Rpb24tYnRuLm5vdmEtYWN0aW9uLWFjdGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXByaW1hcnkpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3ZhLXBpbm5lZC1iZyk7XG59XG4vKiBCcm9ubmVuLWNoaXBzIG9uZGVyIGVlbiBhbnR3b29yZCAoZWNodGUgcWRuYXByby1zb3VyY2UtcGlsbCdzKSArIGhldFxuICAgYnJvbm5lbnBhbmVlbCBkYXQgdmFuIHJlY2h0cyBvdmVyIGRlIGNoYXQgc2NodWlmdC4gRGUgb3VkZSAubm92YS1zb3VyY2UtcGlsbC9cbiAgIC5ub3ZhLXNvdXJjZS1zdGFjayBwbGFjZWhvbGRlci1zdGlqbGVuIHppam4gaGllciB2ZXJ2YW5nZW4g4oCUIGRlIHBsYWNlaG9sZGVyLWRpdlxuICAgaW4gZGUgSlMgYmVzdGFhdCBuaWV0IG1lZXIuIFtKYW4gMjAyNi0wOC0wNSwgYWZnZXN0ZW1kIG1ldCBLaW1dICovXG4ucWRuYXByby1ub3ZhIC5ub3ZhLXNvdXJjZXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogNnB4O1xuICBwYWRkaW5nOiAycHggMCA0cHg7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXNvdXJjZXMgcWRuYXByby1zb3VyY2UtcGlsbCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtc291cmNlLXBhbmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgei1pbmRleDogMzA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdmEtcGFuZWwtYmcpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBlYXNlO1xuICBib3gtc2hhZG93OiAtOHB4IDAgMjRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLy8gSW56ZXQgdm9vciBkZSBzdGF0dXNiYWxrLCBBTExFRU4gaW4gZGUgYXBwLiBbMTAuMDguMjAyNiwgSmFuOiBcImRlIGtub3Agb20gaGV0XG4vLyB2b2xsZWRpZ2UgZG9jdW1lbnQgdGUgb3BlbmVuIHN0YWF0IHRlIGhvb2csIGRlIEFuZHJvaWQtdGlqZCBzdGFhdCBlcm92ZXJoZWVuXCJdXG4vLyBIZXQgcGFuZWVsIHNjaHVpZnQgbWV0IGBpbnNldDogMGAgb3ZlciBoZXQgSEVMRSBjb21wb25lbnQg4oCUIGR1cyDDs8OzayBvdmVyIGRlIGtvcCxcbi8vIGRpZSB6aWpuIGVpZ2VuIFtwd2FdLWluemV0IGFsIGhlZWZ0ICh6aWUgLm5vdmEtaGVhZGVyIGJvdmVuaW4gZGl0IGJlc3RhbmQpLiBIZXRcbi8vIHBhbmVlbCB6ZWxmIGJlZ29uIGRhYXJkb29yIG9wIHkgMCwgbWV0IGRlIGtub3AgXCJWb2xsZWRpZyBkb2N1bWVudCBvcGVuZW5cIiBvbmRlclxuLy8gZGUgc3lzdGVlbWtsb2suIFplbGZkZSB2YXJpYWJlbGUgKyB0ZXJ1Z3ZhbCBhbHMgYmlqIGRlIGtvcDsgYWxsZWVuIGFjaHRlciBbcHdhXSxcbi8vIHdhbnQgaGV0IGJhY2tvZmZpY2UtemlqcGFuZWVsIHN0YWF0IG5pZXQgdGVnZW4gZWVuIHNjaGVybXJhbmQuXG4ucWRuYXByby1ub3ZhW3B3YV0gLm5vdmEtc291cmNlLXBhbmVsIHtcbiAgcGFkZGluZy10b3A6IHZhcigtLXFkbmEtaW5zZXQtdG9wLCBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCwgMHB4KSk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXNvdXJjZS1wYW5lbC5ub3ZhLXNvdXJjZS1wYW5lbC1pbiB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtc291cmNlLXBhbmVsLWhlYWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgcGFkZGluZzogMTJweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLW5vdmEtZGl2aWRlcik7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXNvdXJjZS1wYW5lbC1vcGVuLWJ0biB7XG4gIGZsZXg6IDEgMSBhdXRvO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1zb3VyY2UtcGFuZWwtb3Blbi1idG4gYnV0dG9uIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXNvdXJjZS1wYW5lbC1raWNrZXIge1xuICBwYWRkaW5nOiAxMnB4IDEycHggMDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogdmFyKC0tbm92YS10ZXh0LXNlY29uZGFyeSk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXNvdXJjZS1wYW5lbC10aXRsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiA0cHggMTJweCA4cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLW5vdmEtdGV4dCk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXNvdXJjZS1wYW5lbC10aXRsZSBzdmcge1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBmbGV4LXNocmluazogMDtcbiAgY29sb3I6IHZhcigtLW5vdmEtdGV4dC1zZWNvbmRhcnkpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1zb3VyY2UtcGFuZWwtYm9keSB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4taGVpZ2h0OiAwOyAvKiBmbGV4LWtpbmQgbWFnIGtyaW1wZW4sIGFuZGVycyBrbGlwdCBkZSBwYXNzYWdlLWxpanN0IHN0aWwgKi9cbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxMnB4O1xuICBwYWRkaW5nOiA0cHggMTJweCAxNnB4O1xuICBzY3JvbGxiYXItd2lkdGg6IHRoaW47XG4gIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tbm92YS1ib3JkZXIpIHRyYW5zcGFyZW50O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1zb3VyY2UtcGFuZWwtYm9keTo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogNnB4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1zb3VyY2UtcGFuZWwtYm9keTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3ZhLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtc291cmNlLXBhc3NhZ2Uge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3ZhLXVzZXItYnViYmxlKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBwYWRkaW5nOiAxMHB4IDEycHg7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXNvdXJjZS1wYXNzYWdlLXdoZXJlIHtcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXRleHQtc2Vjb25kYXJ5KTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtc291cmNlLXBhc3NhZ2UtdGV4dCB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXRleHQpO1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXNvdXJjZS1wYXNzYWdlLW5vbmUge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXRleHQtc2Vjb25kYXJ5KTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtZm9sbG93dXBzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDZweDtcbiAgcGFkZGluZzogMCAxMnB4IDRweDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtZm9sbG93dXAtY2hpcCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgcGFkZGluZzogNnB4IDEwcHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ub3ZhLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udDogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgY29sb3I6IHZhcigtLW5vdmEtdGV4dCk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZS1vdXQsIGJvcmRlci1jb2xvciAxMjBtcyBlYXNlLW91dDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtZm9sbG93dXAtY2hpcDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdmEtcXVpY2staG92ZXIpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtY2hpcC1icmlnaHQtYmx1ZS0yLWhvdmVyKTtcbiAgY29sb3I6IHZhcigtLW5vdmEtcHJpbWFyeSk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWZvbGxvd3VwLWNoaXA6YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWRlYmFyLWljb24pO1xuICBib3JkZXItY29sb3I6IHZhcigtLW5vdmEtcHJpbWFyeSk7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXByaW1hcnkpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1mb2xsb3d1cC1jaGlwIHN2ZyB7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLW1zZy1lcnJvciB7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIHBhZGRpbmc6IDEycHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdmEtZXJyb3ItYmcpO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBjb2xvcjogdmFyKC0tbm92YS1lcnJvci10ZXh0KTtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA4cHg7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLW1zZy1lcnJvci1yZXRyeSB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gIHBhZGRpbmc6IDRweCAxMHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3ZhLWVycm9yLXRleHQpO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbXNnLWVycm9yLXJldHJ5OmhvdmVyIHtcbiAgb3BhY2l0eTogMC45O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1vZmZsaW5lLWJhbm5lciB7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3ZhLWVycm9yLWJnKTtcbiAgY29sb3I6IHZhcigtLW5vdmEtZXJyb3ItdGV4dCk7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXNjcm9sbC1ib3R0b20ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMTJweDtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm92YS1wYW5lbC1iZyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW5vdmEtYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjb2xvcjogdmFyKC0tbm92YS10ZXh0LXNlY29uZGFyeSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTIwbXMgZWFzZS1vdXQsIHRyYW5zZm9ybSAyMDBtcyBlYXNlLW91dDtcbiAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4ucWRuYXByby1ub3ZhLm5vdmEtc2hvdy1zY3JvbGwtYm90dG9tIC5ub3ZhLXNjcm9sbC1ib3R0b20ge1xuICBvcGFjaXR5OiAxO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtc2Nyb2xsLWJvdHRvbTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXByaW1hcnkpO1xuICBib3JkZXItY29sb3I6IHZhcigtLW5vdmEtcHJpbWFyeSk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXNjcm9sbC1ib3R0b20gc3ZnIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtZW1wdHktaGVybyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgcGFkZGluZzogMjRweCAxNnB4O1xuICBjb2xvcjogdmFyKC0tbm92YS10ZXh0LXNlY29uZGFyeSk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZmxleDogMTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtZW1wdHktaGVybyBzdmcge1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiA0OHB4O1xuICBjb2xvcjogdmFyKC0tbm92YS1wcmltYXJ5KTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtZW1wdHktaGVybyBzdmcgcGF0aCB7XG4gIHRyYW5zZm9ybS1ib3g6IGZpbGwtYm94O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWVtcHR5LWhlcm8gLnNwYXJrbGUtYmlnIHtcbiAgYW5pbWF0aW9uOiBub3ZhLXNwYXJrbGUtYmlnIDIuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWVtcHR5LWhlcm8gLnNwYXJrbGUtc21hbGwge1xuICBhbmltYXRpb246IG5vdmEtc3BhcmtsZS1zbWFsbCAxLjVzIGVhc2UtaW4tb3V0IC0wLjRzIGluZmluaXRlO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1lbXB0eS1oZXJvLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tbm92YS10ZXh0KTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtZW1wdHktaGVyby1zdWIge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS13ZWxjb21lIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxNnB4O1xuICBwYWRkaW5nOiAxNnB4O1xuICBmbGV4OiAxO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS13ZWxjb21lLWNhcmQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICNlNmU5ZmY7XG4gIGJvcmRlcjogMC41cHggc29saWQgcmdiYSg2NCwgNzMsIDE1NCwgMC4xMik7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIHBhZGRpbmc6IDI0cHggMjBweCAyMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBhbmltYXRpb246IG5vdmEtcG9wLWluIDI0MG1zIGVhc2Utb3V0IGJvdGg7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXdlbGNvbWUtY2xvc2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogOHB4O1xuICByaWdodDogOHB4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS13ZWxjb21lLWhlcm8ge1xuICB3aWR0aDogNTZweDtcbiAgaGVpZ2h0OiA1NnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS13ZWxjb21lLWhlcm8gc3ZnIHtcbiAgd2lkdGg6IDU2cHg7XG4gIGhlaWdodDogNTZweDtcbiAgY29sb3I6IHZhcigtLW5vdmEtcHJpbWFyeSk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXdlbGNvbWUtaGVybyBzdmcgcGF0aCB7XG4gIHRyYW5zZm9ybS1ib3g6IGZpbGwtYm94O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXdlbGNvbWUtaGVybyAuc3BhcmtsZS1iaWcge1xuICBhbmltYXRpb246IG5vdmEtc3BhcmtsZS1iaWcgMi4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtd2VsY29tZS1oZXJvIC5zcGFya2xlLXNtYWxsIHtcbiAgYW5pbWF0aW9uOiBub3ZhLXNwYXJrbGUtc21hbGwgMS41cyBlYXNlLWluLW91dCAtMC40cyBpbmZpbml0ZTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtd2VsY29tZS10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS13ZWxjb21lLXN1YiB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXRleHQpO1xuICBtYXgtd2lkdGg6IDMyMHB4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS13ZWxjb21lLXByaXZhY3kge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgcGFkZGluZzogNnB4IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTUpO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtd2VsY29tZS1wcml2YWN5LWljb24ge1xuICBmbGV4LXNocmluazogMDtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXdlbGNvbWUtcHJvbXB0cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiA4cHg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS13ZWxjb21lLXByb21wdHMgcWRuYXByby1zdWdnZXN0aW9uLWNoaXAge1xuICBhbmltYXRpb246IG5vdmEtcG9wLWluIDI0MG1zIGVhc2Utb3V0IGJvdGg7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXdlbGNvbWUtcHJvbXB0cyBxZG5hcHJvLXN1Z2dlc3Rpb24tY2hpcDpudGgtY2hpbGQoMSkge1xuICBhbmltYXRpb24tZGVsYXk6IDEyMG1zO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS13ZWxjb21lLXByb21wdHMgcWRuYXByby1zdWdnZXN0aW9uLWNoaXA6bnRoLWNoaWxkKDIpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAxODBtcztcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtd2VsY29tZS1wcm9tcHRzIHFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwOm50aC1jaGlsZCgzKSB7XG4gIGFuaW1hdGlvbi1kZWxheTogMjQwbXM7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXdlbGNvbWUtcHJvbXB0cyBxZG5hcHJvLXN1Z2dlc3Rpb24tY2hpcDpudGgtY2hpbGQoNCkge1xuICBhbmltYXRpb24tZGVsYXk6IDMwMG1zO1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnFkbmFwcm8tbm92YSAubm92YS13ZWxjb21lLWNhcmQsXG4gIC5xZG5hcHJvLW5vdmEgLm5vdmEtd2VsY29tZS1wcm9tcHRzIHFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwIHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gIH1cbn1cbi5xZG5hcHJvLW5vdmEubm92YS10aGVtZS1vcmFuZ2UgLm5vdmEtd2VsY29tZS1jYXJkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy10YWctd2FybmluZy1iZyk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNDUsIDE0MywgNiwgMC4xOCk7XG59XG4ucWRuYXByby1ub3ZhLm5vdmEtdGhlbWUtb3JhbmdlIC5ub3ZhLXdlbGNvbWUtdGl0bGUsIC5xZG5hcHJvLW5vdmEubm92YS10aGVtZS1vcmFuZ2UgLm5vdmEtd2VsY29tZS1wcml2YWN5LCAucWRuYXByby1ub3ZhLm5vdmEtdGhlbWUtb3JhbmdlIC5ub3ZhLXdlbGNvbWUtcHJpdmFjeS1pY29uIHtcbiAgY29sb3I6IHZhcigtLWMtd2Fybi1hbWJlci02MDApO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1pbnB1dC13cmFwcGVyIHtcbiAgcGFkZGluZzogMTJweCAxNnB4IDE2cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1pbnB1dC1maWVsZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNHB4O1xuICBwYWRkaW5nOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3ZhLWlucHV0LWJnKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbm92YS1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG1pbi1oZWlnaHQ6IDgwcHg7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAxMjBtcyBlYXNlLW91dCwgYm94LXNoYWRvdyAxMjBtcyBlYXNlLW91dDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaW5wdXQtZmllbGQ6Zm9jdXMtd2l0aGluIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ub3ZhLXByaW1hcnkpO1xuICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSg3MCwgODIsIDI0MywgMC4yKTtcbn1cbi5xZG5hcHJvLW5vdmEubm92YS10aGVtZS1vcmFuZ2UgLm5vdmEtaW5wdXQtZmllbGQ6Zm9jdXMtd2l0aGluIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMjQ1LCAxNDMsIDYsIDAuMjUpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1pbnB1dC1hdHRhY2htZW50cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiA2cHg7XG4gIG1hcmdpbi1ib3R0b206IDZweDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaW5wdXQtYXR0YWNobWVudC1waWxsIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBwYWRkaW5nOiA0cHggNHB4IDRweCA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdmEtcGFuZWwtYmcpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ub3ZhLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBtYXgtd2lkdGg6IDIyMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXRleHQpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1pbnB1dC1hdHRhY2htZW50LXBpbGwgcWRuYXByby1maWxlLWljb24ge1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaW5wdXQtYXR0YWNobWVudC1uYW1lIHtcbiAgbWF4LXdpZHRoOiAxNDBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWlucHV0LWF0dGFjaG1lbnQtcmVtb3ZlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tbm92YS1wbGFjZWhvbGRlcik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBwYWRkaW5nOiAwO1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaW5wdXQtYXR0YWNobWVudC1yZW1vdmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICBjb2xvcjogdmFyKC0tbm92YS10ZXh0KTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaW5wdXQtdG9wIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogOHB4O1xuICBmbGV4OiAxO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1pbnB1dC10b3AtaWNvbiB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIG1hcmdpbi10b3A6IDRweDtcbiAgY29sb3I6IHZhcigtLW5vdmEtcGxhY2Vob2xkZXIpO1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaW5wdXQtdGV4dGFyZWEge1xuICBmbGV4OiAxO1xuICBib3JkZXI6IDA7XG4gIG91dGxpbmU6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICByZXNpemU6IG5vbmU7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBjb2xvcjogdmFyKC0tbm92YS10ZXh0KTtcbiAgbWF4LWhlaWdodDogMjAwcHg7XG4gIG1pbi1oZWlnaHQ6IDI0cHg7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1pbnB1dC10ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogdmFyKC0tbm92YS1wbGFjZWhvbGRlcik7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWlucHV0LWJvdHRvbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luLXRvcDogNHB4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1pbnB1dC1idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIG1pbi13aWR0aDogNDBweDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLW5vdmEtdGV4dCk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiA4cHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZS1vdXQsIGNvbG9yIDEyMG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1pbnB1dC1idG4gc3ZnIHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaW5wdXQtYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm92YS11c2VyLWJ1YmJsZSk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWlucHV0LWJ0bltkaXNhYmxlZF0ge1xuICBjb2xvcjogdmFyKC0tbm92YS1wbGFjZWhvbGRlcik7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWlucHV0LWJ0bltkaXNhYmxlZF06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaW5wdXQtYWN0aW9uIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgY29sb3IgMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaW5wdXQtYWN0aW9uLm5vdmEtYWN0aW9uLXNlbmQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3ZhLXByaW1hcnkpO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWlucHV0LWFjdGlvbi5ub3ZhLWFjdGlvbi1zZW5kOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm92YS1wcmltYXJ5LWhvdmVyKTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaW5wdXQtYWN0aW9uLm5vdmEtYWN0aW9uLXNlbmQ6YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm92YS1wcmltYXJ5LXByZXNzZWQpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1pbnB1dC1hY3Rpb24ubm92YS1hY3Rpb24tc3RvcCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tbm92YS1lcnJvci10ZXh0KTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaW5wdXQtYWN0aW9uLm5vdmEtYWN0aW9uLXN0b3A6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDE5OCwgOTAsIDkwLCAwLjEpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1pbnB1dC1hY3Rpb24ubm92YS1hY3Rpb24tc3RvcDphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDE5OCwgOTAsIDkwLCAwLjE4KTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaW5wdXQtYWN0aW9uLm5vdmEtYWN0aW9uLW1pYyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tbm92YS10ZXh0KTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaW5wdXQtYWN0aW9uLm5vdmEtYWN0aW9uLW1pYzpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNik7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWFjdGlvbi1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBvcGFjaXR5IDE0MG1zIGVhc2U7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWFjdGlvbi1pY29uIHN2ZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnFkbmFwcm8tbm92YSAubm92YS1hY3Rpb24taWNvbiB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSA4MG1zIGVhc2U7XG4gICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaW5wdXQtaGludCB7XG4gIHBhZGRpbmc6IDRweCAxMnB4IDA7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXBsYWNlaG9sZGVyKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1oaXN0b3J5IHtcbiAgZmxleDogMTtcbiAgbWluLWhlaWdodDogMDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcGFkZGluZzogOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDhweDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaGlzdG9yeS1zZWN0aW9uLWxhYmVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIHBhZGRpbmc6IDhweCA4cHggNHB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tbm92YS10ZXh0LXNlY29uZGFyeSk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWhpc3Rvcnktc2VjdGlvbi1sYWJlbCBzdmcge1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAxMnB4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1oaXN0b3J5LWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDhweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLW91dDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaGlzdG9yeS1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm92YS1tZW51LWhvdmVyKTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaGlzdG9yeS1pdGVtLm5vdmEtaGlzdG9yeS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3ZhLXBpbm5lZC1iZyk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWhpc3RvcnktaXRlbS1ib2R5IHtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDJweDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaGlzdG9yeS1pdGVtLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLW5vdmEtdGV4dCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1oaXN0b3J5LWl0ZW0tc25pcHBldCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXRleHQtc2Vjb25kYXJ5KTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWhpc3RvcnktaXRlbS1tZXRhIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBsaW5lLWhlaWdodDogMTRweDtcbiAgY29sb3I6IHZhcigtLW5vdmEtdGV4dC1zZWNvbmRhcnkpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1oaXN0b3J5LWl0ZW0tcGluIHtcbiAgY29sb3I6IHZhcigtLW5vdmEtcHJpbWFyeSk7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBtYXJnaW4tdG9wOiA0cHg7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWhpc3RvcnktaXRlbS1tZW51LWJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLW5vdmEtdGV4dC1zZWNvbmRhcnkpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTIwbXMgZWFzZS1vdXQsIGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZS1vdXQ7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWhpc3RvcnktaXRlbTpob3ZlciAubm92YS1oaXN0b3J5LWl0ZW0tbWVudS1idG4sXG4ucWRuYXByby1ub3ZhIC5ub3ZhLWhpc3RvcnktaXRlbS1tZW51LWJ0bjpmb2N1cy12aXNpYmxlLFxuLnFkbmFwcm8tbm92YSAubm92YS1oaXN0b3J5LWl0ZW0ubm92YS1tZW51LW9wZW4gLm5vdmEtaGlzdG9yeS1pdGVtLW1lbnUtYnRuIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaGlzdG9yeS1pdGVtLW1lbnUtYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA4KTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaGlzdG9yeS1pdGVtLW1lbnUtYnRuIHN2ZyB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLW1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMzZweDtcbiAgcmlnaHQ6IDhweDtcbiAgei1pbmRleDogMTA7XG4gIG1pbi13aWR0aDogMTQwcHg7XG4gIHBhZGRpbmc6IDRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm92YS1wYW5lbC1iZyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW5vdmEtYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMnB4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1tZW51LWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgcGFkZGluZzogNnB4IDhweDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLW5vdmEtdGV4dCk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB3aWR0aDogMTAwJTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbWVudS1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm92YS1tZW51LWhvdmVyKTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbWVudS1pdGVtIHN2ZyB7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXRleHQtc2Vjb25kYXJ5KTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLW1lbnUtaXRlbS5ub3ZhLW1lbnUtaXRlbS1kYW5nZXIge1xuICBjb2xvcjogdmFyKC0tbm92YS1lcnJvci10ZXh0KTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbWVudS1pdGVtLm5vdmEtbWVudS1pdGVtLWRhbmdlciBzdmcge1xuICBjb2xvcjogdmFyKC0tbm92YS1lcnJvci10ZXh0KTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbWVudS1pdGVtLm5vdmEtbWVudS1pdGVtLWRhbmdlcjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdmEtZXJyb3ItYmcpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1oaXN0b3J5LWVtcHR5IHtcbiAgcGFkZGluZzogMzJweCAxNnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXRleHQtc2Vjb25kYXJ5KTtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbn1cblxuLy8gTWljIHJlY29yZGluZyBzdGF0ZSDigJQgcHVsc2luZyByZWQgYm9yZGVyIG9uIHRoZSBpbnB1dCBmaWVsZC5cbi8vIFNob3duIHJlZ2FyZGxlc3Mgb2Ygd2hpY2ggYnV0dG9uIHN0YXRlIHRoZSBjb21wb3NlciBpcyBpbiwgc28gdGhlIHVzZXJcbi8vIGFsd2F5cyBzZWVzIFwicmVjb3JkaW5nXCIgZmVlZGJhY2sgZXZlbiBhZnRlciBpbnRlcmltIHRleHQgaGFzIGFwcGVhcmVkLlxuLnFkbmFwcm8tbm92YS5ub3ZhLW1pYy1yZWNvcmRpbmcgLm5vdmEtaW5wdXQtZmllbGQge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0KTtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMTk4LCA5MCwgOTAsIDAuMik7XG4gIGFuaW1hdGlvbjogbm92YS1taWMtYm9yZGVyLXB1bHNlIDEuNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5Aa2V5ZnJhbWVzIG5vdmEtbWljLWJvcmRlci1wdWxzZSB7XG4gIDAlLCAxMDAlIHsgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMTk4LCA5MCwgOTAsIDAuMik7IH1cbiAgNTAlICAgICAgIHsgYm94LXNoYWRvdzogMCAwIDAgNXB4IHJnYmEoMTk4LCA5MCwgOTAsIDAuMDgpOyB9XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAucWRuYXByby1ub3ZhLm5vdmEtbWljLXJlY29yZGluZyAubm92YS1pbnB1dC1maWVsZCB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDE5OCwgOTAsIDkwLCAwLjIpO1xuICB9XG59XG5cbi8vIFZvaWNlIGF1dG8tc2VuZCBjb3VudGRvd24g4oCUIHNob3duIGFmdGVyIHNwZWVjaCBlbmRzOyBzZW5kcyB3aGVuIHRoZSBiYXJcbi8vIGRlcGxldGVzIHVubGVzcyB0aGUgdXNlciBjbGlja3MgQ2FuY2VsIC8gZWRpdHMgdGhlIHRleHQuXG4ucWRuYXByby1ub3ZhIC5ub3ZhLW1pYy1hdXRvc2VuZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgbWFyZ2luOiA4cHggNHB4IDA7XG4gIHBhZGRpbmc6IDdweCAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdmEtcXVpY2staG92ZXIpO1xuICBjb2xvcjogdmFyKC0tbm92YS1wcmltYXJ5KTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbWljLWF1dG9zZW5kLWxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLW1pYy1hdXRvc2VuZC1iYXIge1xuICBmbGV4OiAxO1xuICBoZWlnaHQ6IDNweDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAwLjE4KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1taWMtYXV0b3NlbmQtYmFyOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdmEtcHJpbWFyeSk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xuICBhbmltYXRpb246IG5vdmEtYXV0b3NlbmQtY291bnRkb3duIGxpbmVhciBmb3J3YXJkcztcbn1cbkBrZXlmcmFtZXMgbm92YS1hdXRvc2VuZC1jb3VudGRvd24ge1xuICBmcm9tIHsgdHJhbnNmb3JtOiBzY2FsZVgoMSk7IH1cbiAgdG8gICB7IHRyYW5zZm9ybTogc2NhbGVYKDApOyB9XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLW1pYy1hdXRvc2VuZC1jYW5jZWwge1xuICBmbGV4LXNocmluazogMDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLW5vdmEtcHJpbWFyeSk7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1taWMtYXV0b3NlbmQtY2FuY2VsOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSg2NCwgNzMsIDE1NCwgMC4xKTtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5xZG5hcHJvLW5vdmEgLm5vdmEtbWljLWF1dG9zZW5kLWJhcjo6YWZ0ZXIgeyBhbmltYXRpb246IG5vbmU7IHRyYW5zZm9ybTogc2NhbGVYKDAuNSk7IH1cbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbm92YSB7XG4gIC0tbm92YS1wYW5lbC1iZzogIzFmMjAyODtcbiAgLS1ub3ZhLXVzZXItYnViYmxlOiAjMmUzMDM2O1xuICAtLW5vdmEtdGV4dDogI2YwZjFmMjtcbiAgLS1ub3ZhLXRleHQtc2Vjb25kYXJ5OiAjYTZhYWIzO1xuICAtLW5vdmEtbGluazogIzhiOTNmZjtcbiAgLS1ub3ZhLWJvcmRlcjogIzU2NWI2NjtcbiAgLS1ub3ZhLWlucHV0LWJnOiAjMGIwYjBkO1xuICAtLW5vdmEtcGxhY2Vob2xkZXI6ICM4OThlOTk7XG4gIC0tbm92YS1kaXZpZGVyOiAjM2EzYjQyO1xuICAtLW5vdmEtcXVpY2staG92ZXI6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjApO1xuICAtLW5vdmEtcGlubmVkLWJnOiAjMmEyZDUyO1xuICAtLW5vdmEtbWVudS1ob3ZlcjogIzJlMzAzNjtcbiAgLS1ub3ZhLWVycm9yLWJnOiAjM2ExZTFlO1xuICAtLW5vdmEtZXJyb3ItdGV4dDogI2Y4NzE3MTtcbiAgYm94LXNoYWRvdzogLTRweCAwIDIwcHggcmdiYSgwLCAwLCAwLCAwLjM1KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLW5vdmEubm92YS10aGVtZS1vcmFuZ2Uge1xuICAtLW5vdmEtcGlubmVkLWJnOiAjM2EyYTEyO1xuICAtLW5vdmEtcXVpY2staG92ZXI6ICMyZTMwMzY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1ub3ZhIHtcbiAgLS1ub3ZhLXByaW1hcnk6ICM4YjkzZmY7XG4gIC0tbm92YS1wcmltYXJ5LWhvdmVyOiAjNmU3OGZmO1xuICAtLW5vdmEtcHJpbWFyeS1wcmVzc2VkOiAjNTU2MGU4O1xuICAtLW5vdmEtcHJpbWFyeS1nbG93OiByZ2JhKDEzOSwgMTQ3LCAyNTUsIDAuNDUpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbm92YS5ub3ZhLXRoZW1lLW9yYW5nZSB7XG4gIC0tbm92YS1wcmltYXJ5OiAjRjU4RjA2O1xuICAtLW5vdmEtcHJpbWFyeS1ob3ZlcjogI2YyYTUzNTtcbiAgLS1ub3ZhLXByaW1hcnktcHJlc3NlZDogI2Q5N2MwMDtcbiAgLS1ub3ZhLXByaW1hcnktZ2xvdzogcmdiYSgyNDUsIDE0MywgNiwgMC40NSk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1ub3ZhIC5ub3ZhLXdlbGNvbWUtY2FyZCB7XG4gIGJhY2tncm91bmQ6ICMyYTJjNGQ7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgxNjUsIDE3MiwgMjU1LCAwLjE4KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLW5vdmEgLm5vdmEtd2VsY29tZS10aXRsZSxcbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLW5vdmEgLm5vdmEtd2VsY29tZS1wcml2YWN5LFxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbm92YSAubm92YS13ZWxjb21lLXByaXZhY3ktaWNvbiB7XG4gIGNvbG9yOiAjYTVhY2ZmO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbm92YSAubm92YS13ZWxjb21lLXByaXZhY3kge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbm92YS5ub3ZhLXRoZW1lLW9yYW5nZSAubm92YS13ZWxjb21lLWNhcmQge1xuICBiYWNrZ3JvdW5kOiAjM2QyZTFhO1xuICBib3JkZXItY29sb3I6IHJnYmEoMjUxLCAxOTEsIDkyLCAwLjIyKTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLW5vdmEubm92YS10aGVtZS1vcmFuZ2UgLm5vdmEtd2VsY29tZS10aXRsZSwgW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbm92YS5ub3ZhLXRoZW1lLW9yYW5nZSAubm92YS13ZWxjb21lLXByaXZhY3ksIFtkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLW5vdmEubm92YS10aGVtZS1vcmFuZ2UgLm5vdmEtd2VsY29tZS1wcml2YWN5LWljb24ge1xuICBjb2xvcjogI2ZiYmYyNDtcbn1cblxuLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4gICBQV0EtVkFSSUFOVDogZ2VzcHJla2tlbmxpanN0IE5BQVNUIGRlIGNoYXQgIFtKYW4gMDQuMDguMjAyNl1cblxuICAgQWxsZWVuIGFjdGllZiBtZXQgaGV0IGBwd2FgLWF0dHJpYnV1dCwgZHVzIGhldCBiYWNrb2ZmaWNlLXppanBhbmVlbCBtZXJrdFxuICAgaGllciBuaWV0cyB2YW46IGRhYXIga29tdCBkZSBnZXNjaGllZGVuaXMgbm9nIHN0ZWVkcyBJTiBQTEFBVFMgVkFOIGRlIGNoYXQuXG5cbiAgIE9uZGVyIDc2OHB4ICh0ZWxlZm9vbikgaXMgZXIgw6nDqW4ga29sb20gZW4gZ2VkcmFhZ3QgZGUgdmFyaWFudCB6aWNoIGV4YWN0IGFsc1xuICAgdm9vcmhlZW46IGRlIHJlY2h0ZXJrb2xvbSBzdGFhdCBlciBpbiBkZSBET00gbWFhciB3b3JkdCBuaWV0IGdldG9vbmQsIGVuIGRlXG4gICBnZXNjaGllZGVuaXMta25vcCBpbiBkZSBrb3AgYnJlbmd0IGplIG5hYXIgZGUgdm9sbGVkaWdlIGxpanN0LlxuICAgVmFuYWYgNzY4cHgg4oCUIGRlemVsZmRlIHRhYmxldGdyZW5zIGRpZSBkZSBhcHAgaW4gZG9jdW1lbnRlbiwgcG9zdHZhayBlblxuICAgc3RhcnRzY2hlcm0gZ2VicnVpa3Qg4oCUIHN0YWF0IGRlIGxpanN0IHJlY2h0cyBlbiBpcyBkaWUga25vcCBvdmVyYm9kaWcuXG4gICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cbi5xZG5hcHJvLW5vdmFbcHdhXSAubm92YS1zcGxpdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4taGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnFkbmFwcm8tbm92YVtwd2FdIC5ub3ZhLXNwbGl0LWNoYXQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgLyog4pqg77iPIG1pbi13aWR0aCAwIGlzIGhpZXIgZ2VlbiBvcHNtdWs6IHpvbmRlciBkZXplIHJlZ2VsIHdlaWdlcnQgZWVuIGZsZXgta2luZFxuICAgICB0ZSBrcmltcGVuIG9uZGVyIHppam4gaW5ob3VkIGVuIGR1d3QgZWVuIGxhbmdlIHJlZ2VsIGluIGVlbiBjaGF0YmVsIGRlXG4gICAgIHJlY2h0ZXJrb2xvbSB2YW4gaGV0IHNjaGVybSBhZi4gKi9cbiAgbWluLXdpZHRoOiAwO1xufVxuLyogVGVsZWZvb246IGRlIGxpanN0IHN0YWF0IGluIGRlIERPTSBtYWFyIGhvb3J0IG5pZXQgaW4gYmVlbGQuICovXG4ucWRuYXByby1ub3ZhW3B3YV0gLm5vdmEtc3BsaXQtaGlzdG9yeSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAucWRuYXByby1ub3ZhW3B3YV0gLm5vdmEtc3BsaXQtaGlzdG9yeSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIC8qIDMyMHB4OiBicmVlZCBnZW5vZWcgdm9vciBlZW4gZ2VzcHJla3N0aXRlbCBvcCB0d2VlIHJlZ2Vscywgc21hbCBnZW5vZWcgb21cbiAgICAgICBkZSBjaGF0IGRlIGhvb2Zkcm9sIHRlIGxhdGVuLiBLcmltcHQgbmlldCBtZWUgKGZsZXggMCAwIGF1dG8pLCB3YW50IGVlblxuICAgICAgIGdlc3ByZWtsaWpzdCB2YW4gMTIwcHggaXMgb25sZWVzYmFhci4gKi9cbiAgICBmbGV4OiAwIDAgMzIwcHg7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1ub3ZhLWRpdmlkZXIpO1xuICB9XG4gIC8qIERlIGdlc2NoaWVkZW5pcy1rbm9wIGluIGRlIGtvcCB3aWpzdCBuYWFyIGVlbiBsaWpzdCBkaWUgYWwgemljaHRiYWFyIGlzLiAqL1xuICAucWRuYXByby1ub3ZhW3B3YV0gLm5vdmEtaGVhZGVyLWFjdGlvbnMgLm5vdmEtaGVhZGVyLWJ0bltkYXRhLXJvbGU9XCJoaXN0b3J5LWJ0blwiXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvbm92YS1sYXVuY2hlci9fbm92YS1sYXVuY2hlci1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqICBxZG5hcHJvLW5vdmEtbGF1bmNoZXIg4oCUIGNvbXBpbGVkIGZyb20gX25vdmEtbGF1bmNoZXIuc2Nzc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5xZG5hcHJvLW5vdmEtbGF1bmNoZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiA5MDAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tYy1hY3Rpb24tNTAwKSAwJSwgdmFyKC0tYy1wdXJwbGUtNTAwKSA1MCUsIHZhcigtLWMtYWN0aW9uLTUwMCkgMTAwJSk7XG4gICAgYmFja2dyb3VuZC1zaXplOiAyMDAlIDIwMCU7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgMCU7XG4gICAgYW5pbWF0aW9uOiBub3ZhLWxhdW5jaGVyLWdsaWRlIDhzIGVhc2UtaW4tb3V0IGluZmluaXRlIGFsdGVybmF0ZTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCA0cHggIDhweCAgMCByZ2JhKDY0LCA3MywgMTU0LCAwLjI1KSxcbiAgICAgICAgMCA4cHggMTZweCAgNHB4IHJnYmEoMCwgMCwgMCwgMC4xNiksXG4gICAgICAgIDAgMnB4ICA0cHggIDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgICB0cmFuc2Zvcm0gMjAwbXMgY3ViaWMtYmV6aWVyKDAuMiwgMC44LCAwLjIsIDEpLFxuICAgICAgICBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0LFxuICAgICAgICBiYWNrZ3JvdW5kIDE2MG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8tbm92YS1sYXVuY2hlciAubGF1bmNoZXItc3BhcmtsZSB7XG4gICAgd2lkdGg6IDU2JTtcbiAgICBoZWlnaHQ6IDU2JTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTgpKTtcbn1cbi5xZG5hcHJvLW5vdmEtbGF1bmNoZXIgLmxhdW5jaGVyLXNwYXJrbGUgcGF0aCB7XG4gICAgdHJhbnNmb3JtLWJveDogZmlsbC1ib3g7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xufVxuLnFkbmFwcm8tbm92YS1sYXVuY2hlciAubGF1bmNoZXItc3BhcmtsZSAuc3BhcmtsZS1iaWcgICB7IGFuaW1hdGlvbjogbm92YS1sYXVuY2hlci1zcGFya2xlLWJpZyAgIDIuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7IH1cbi5xZG5hcHJvLW5vdmEtbGF1bmNoZXIgLmxhdW5jaGVyLXNwYXJrbGUgLnNwYXJrbGUtc21hbGwgeyBhbmltYXRpb246IG5vdmEtbGF1bmNoZXItc3BhcmtsZS1zbWFsbCAxLjVzIGVhc2UtaW4tb3V0IC0wLjRzIGluZmluaXRlOyB9XG5cbi5xZG5hcHJvLW5vdmEtbGF1bmNoZXI6aG92ZXIsXG4ucWRuYXByby1ub3ZhLWxhdW5jaGVyLmZvcmNlLWhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCkgc2NhbGUoMS4wNCk7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCA2cHggMTJweCAwIHJnYmEoNjQsIDczLCAxNTQsIDAuMzIpLFxuICAgICAgICAwIDEycHggMjJweCA2cHggcmdiYSgwLCAwLCAwLCAwLjE4KSxcbiAgICAgICAgMCA0cHggIDZweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCk7XG59XG4ucWRuYXByby1ub3ZhLWxhdW5jaGVyOmhvdmVyOjpiZWZvcmUsXG4ucWRuYXByby1ub3ZhLWxhdW5jaGVyLmZvcmNlLWhvdmVyOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjU1KTtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBhbmltYXRpb246IG5vdmEtbGF1bmNoZXItcHVsc2UgMS44cyBlYXNlLW91dCBpbmZpbml0ZTtcbn1cbi5xZG5hcHJvLW5vdmEtbGF1bmNoZXI6YWN0aXZlLFxuLnFkbmFwcm8tbm92YS1sYXVuY2hlci5mb3JjZS1wcmVzc2VkIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMC45Nyk7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCAycHggNHB4IDAgcmdiYSg2NCwgNzMsIDE1NCwgMC4yMiksXG4gICAgICAgIDAgNHB4IDhweCAycHggcmdiYSgwLCAwLCAwLCAwLjE4KSxcbiAgICAgICAgMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KTtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA5MG1zO1xufVxuLnFkbmFwcm8tbm92YS1sYXVuY2hlcjpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IH1cbi5xZG5hcHJvLW5vdmEtbGF1bmNoZXI6Zm9jdXMtdmlzaWJsZSxcbi5xZG5hcHJvLW5vdmEtbGF1bmNoZXIuZm9yY2UtZm9jdXMge1xuICAgIG91dGxpbmU6IDNweCBzb2xpZCAjZmZmZmZmO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtM3B4O1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAgIDAgMCAwIDNweCB2YXIoLS1jLWFjdGlvbi01MDApLFxuICAgICAgICAwIDAgMCA3cHggcmdiYSg3MCwgODIsIDI0MywgMC4zMCksXG4gICAgICAgIDAgOHB4IDE2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xOCksXG4gICAgICAgIDAgMnB4ICA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ucWRuYXByby1ub3ZhLWxhdW5jaGVyLmxhdW5jaGVyLXRoZW1lLW9yYW5nZSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tYy13YXJuLXllbGxvdy01MDApIDAlLCB2YXIoLS1jLXdhcm4teWVsbG93LTYwMCkgNTAlLCB2YXIoLS1jLXdhcm4teWVsbG93LTUwMCkgMTAwJSk7XG4gICAgYmFja2dyb3VuZC1zaXplOiAyMDAlIDIwMCU7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgMCU7XG4gICAgYW5pbWF0aW9uOiBub3ZhLWxhdW5jaGVyLWdsaWRlIDhzIGVhc2UtaW4tb3V0IGluZmluaXRlIGFsdGVybmF0ZTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCA0cHggIDhweCAwIHJnYmEoMjQ1LCAxNDMsIDYsIDAuMzApLFxuICAgICAgICAwIDhweCAxNnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTYpLFxuICAgICAgICAwIDJweCAgNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5xZG5hcHJvLW5vdmEtbGF1bmNoZXIubGF1bmNoZXItdGhlbWUtb3JhbmdlOmhvdmVyLFxuLnFkbmFwcm8tbm92YS1sYXVuY2hlci5sYXVuY2hlci10aGVtZS1vcmFuZ2UuZm9yY2UtaG92ZXIge1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAgIDAgNnB4IDEycHggMCByZ2JhKDI0NSwgMTQzLCA2LCAwLjM4KSxcbiAgICAgICAgMCAxMnB4IDIycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xOCksXG4gICAgICAgIDAgNHB4ICA2cHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpO1xufVxuLnFkbmFwcm8tbm92YS1sYXVuY2hlci5sYXVuY2hlci10aGVtZS1vcmFuZ2U6aG92ZXI6OmJlZm9yZSxcbi5xZG5hcHJvLW5vdmEtbGF1bmNoZXIubGF1bmNoZXItdGhlbWUtb3JhbmdlLmZvcmNlLWhvdmVyOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjQ1LCAxNDMsIDYsIDAuNTUpO1xufVxuLnFkbmFwcm8tbm92YS1sYXVuY2hlci5sYXVuY2hlci10aGVtZS1vcmFuZ2U6YWN0aXZlLFxuLnFkbmFwcm8tbm92YS1sYXVuY2hlci5sYXVuY2hlci10aGVtZS1vcmFuZ2UuZm9yY2UtcHJlc3NlZCB7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCAycHggNHB4IDAgcmdiYSgyNDUsIDE0MywgNiwgMC4yOCksXG4gICAgICAgIDAgNHB4IDhweCAycHggcmdiYSgwLCAwLCAwLCAwLjE4KSxcbiAgICAgICAgMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KTtcbn1cbi5xZG5hcHJvLW5vdmEtbGF1bmNoZXIubGF1bmNoZXItdGhlbWUtb3JhbmdlOmZvY3VzLXZpc2libGUsXG4ucWRuYXByby1ub3ZhLWxhdW5jaGVyLmxhdW5jaGVyLXRoZW1lLW9yYW5nZS5mb3JjZS1mb2N1cyB7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCAwIDAgM3B4IHZhcigtLWMtd2Fybi15ZWxsb3ctNjAwKSxcbiAgICAgICAgMCAwIDAgN3B4IHJnYmEoMjQ1LCAxNDMsIDYsIDAuMzIpLFxuICAgICAgICAwIDhweCAxNnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTgpLFxuICAgICAgICAwIDJweCAgNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLW5vdmEtbGF1bmNoZXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM1NTYwZTggMCUsICMzODQyYzIgNTAlLCAjNTU2MGU4IDEwMCUpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMjAwJSAyMDAlO1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAgIDAgNHB4ICA4cHggMCByZ2JhKDcwLCA4MiwgMjQzLCAwLjMwKSxcbiAgICAgICAgMCA4cHggMTZweCA0cHggcmdiYSgwLCAwLCAwLCAwLjMwKSxcbiAgICAgICAgMCAycHggIDRweCAwIHJnYmEoMCwgMCwgMCwgMC4yMCk7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tbm92YS1sYXVuY2hlcjpob3ZlcixcbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1ub3ZhLWxhdW5jaGVyLmZvcmNlLWhvdmVyIHtcbiAgICBib3gtc2hhZG93OlxuICAgICAgICAwIDZweCAxMnB4IDAgcmdiYSg3MCwgODIsIDI0MywgMC40MCksXG4gICAgICAgIDAgMTJweCAyMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMzIpLFxuICAgICAgICAwIDRweCAgNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjIyKTtcbn1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1ub3ZhLWxhdW5jaGVyLmxhdW5jaGVyLXRoZW1lLW9yYW5nZSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI0ZCQkYyNCAwJSwgI2Q5N2MwMCA1MCUsICNGQkJGMjQgMTAwJSk7XG4gICAgYmFja2dyb3VuZC1zaXplOiAyMDAlIDIwMCU7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCA0cHggIDhweCAwIHJnYmEoMjUxLCAxOTEsIDM2LCAwLjMwKSxcbiAgICAgICAgMCA4cHggMTZweCA0cHggcmdiYSgwLCAwLCAwLCAwLjMwKSxcbiAgICAgICAgMCAycHggIDRweCAwIHJnYmEoMCwgMCwgMCwgMC4yMCk7XG59XG5cbkBrZXlmcmFtZXMgbm92YS1sYXVuY2hlci1zcGFya2xlLWJpZyB7XG4gICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gICAgNTAlICAgICAgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMTUpOyB9XG59XG5Aa2V5ZnJhbWVzIG5vdmEtbGF1bmNoZXItc3BhcmtsZS1zbWFsbCB7XG4gICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDAuNyk7IH1cbiAgICA1MCUgICAgICB7IHRyYW5zZm9ybTogc2NhbGUoMS4yNSk7IH1cbn1cbkBrZXlmcmFtZXMgbm92YS1sYXVuY2hlci1wdWxzZSB7XG4gICAgMCUgICB7IHRyYW5zZm9ybTogc2NhbGUoMSk7ICAgb3BhY2l0eTogMC41NTsgfVxuICAgIDcwJSAgeyB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7IG9wYWNpdHk6IDA7IH1cbiAgICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjUpOyBvcGFjaXR5OiAwOyB9XG59XG5Aa2V5ZnJhbWVzIG5vdmEtbGF1bmNoZXItZ2xpZGUge1xuICAgIDAlICAgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAgIDAlICAgMCU7IH1cbiAgICAxMDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAxMDAlOyB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLnFkbmFwcm8tbm92YS1sYXVuY2hlcixcbiAgICAucWRuYXByby1ub3ZhLWxhdW5jaGVyIC5sYXVuY2hlci1zcGFya2xlIC5zcGFya2xlLWJpZyxcbiAgICAucWRuYXByby1ub3ZhLWxhdW5jaGVyIC5sYXVuY2hlci1zcGFya2xlIC5zcGFya2xlLXNtYWxsLFxuICAgIC5xZG5hcHJvLW5vdmEtbGF1bmNoZXI6aG92ZXI6OmJlZm9yZSB7IGFuaW1hdGlvbjogbm9uZTsgfVxufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvbm92YS1tZXNzYWdlL19ub3ZhLW1lc3NhZ2UtY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLnFkbmFwcm8tbm92YS1tZXNzYWdlIHtcbiAgLS1tc2ctdGV4dDogdmFyKC0tbm92YS10ZXh0LCAjMWExYzIwKTtcbiAgLS1tc2ctdGV4dC1zZWNvbmRhcnk6IHZhcigtLW5vdmEtdGV4dC1zZWNvbmRhcnksICM2YjcyODApO1xuICAtLW1zZy11c2VyLWJ1YmJsZTogdmFyKC0tbm92YS11c2VyLWJ1YmJsZSwgI2YwZjFmMik7XG4gIC0tbXNnLXByaW1hcnk6IHZhcigtLW5vdmEtcHJpbWFyeSwgIzQwNDk5YSk7XG4gIC0tbXNnLWVycm9yLWJnOiB2YXIoLS1ub3ZhLWVycm9yLWJnLCAjZmVlM2UzKTtcbiAgLS1tc2ctZXJyb3ItdGV4dDogdmFyKC0tbm92YS1lcnJvci10ZXh0LCAjYzY1YTVhKTtcbiAgLS1tc2ctcGlubmVkLWJnOiB2YXIoLS1ub3ZhLXBpbm5lZC1iZywgI2U2ZTlmZik7XG4gIC0tbXNnLWJvcmRlcjogdmFyKC0tbm92YS1ib3JkZXIsICNjNGM3Y2MpO1xuICAtLW1zZy1saW5rOiB2YXIoLS1ub3ZhLWxpbmssICM0MDQ5OWEpO1xuICAtLW1zZy1xdWljay1ob3ZlcjogdmFyKC0tbm92YS1xdWljay1ob3ZlciwgI2YwZjFmMik7XG4gIC0tbXNnLWRpdmlkZXI6IHZhcigtLW5vdmEtZGl2aWRlciwgcmdiYSgwLCAwLCAwLCAwLjEpKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLXVzZXIge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgbWF4LXdpZHRoOiA4NSU7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1tc2ctdXNlci1idWJibGUpO1xuICBjb2xvcjogdmFyKC0tbXNnLXRleHQpO1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbn1cblxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWFpIHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBnYXA6IDEycHg7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctYWkgLm5vdmEtbXNnLWFpLWJvZHkge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBjb2xvcjogdmFyKC0tbXNnLXRleHQpO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctYWkgLm5vdmEtbXNnLWFpLWJvZHkgcCB7XG4gIG1hcmdpbjogMCAwIDhweDtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1haSAubm92YS1tc2ctYWktYm9keSBwOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWFpIC5ub3ZhLW1zZy1haS1ib2R5IHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctYWkgLm5vdmEtbXNnLWFpLWJvZHkgYSB7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbGluayk7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWFpIC5ub3ZhLW1zZy1haS1ib2R5IHVsLCAucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctYWkgLm5vdmEtbXNnLWFpLWJvZHkgb2wge1xuICBtYXJnaW46IDAgMCA4cHg7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1haSAubm92YS1tc2ctYWktYm9keSBsaSArIGxpIHtcbiAgbWFyZ2luLXRvcDogNHB4O1xufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWFpIC5ub3ZhLW1zZy1haS1ib2R5IGNvZGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1tc2ctdXNlci1idWJibGUpO1xuICBwYWRkaW5nOiAxcHggNHB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGZvbnQtZmFtaWx5OiBNZW5sbywgTW9uYWNvLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWFpIC5ub3ZhLXNvdXJjZS1waWxsIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiA0cHggOHB4IDRweCA0cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLW1zZy11c2VyLWJ1YmJsZSk7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tbXNnLXRleHQtc2Vjb25kYXJ5KTtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZS1vdXQ7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctYWkgLm5vdmEtc291cmNlLXBpbGw6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1tc2ctcXVpY2staG92ZXIpO1xufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWFpIC5ub3ZhLXNvdXJjZS1waWxsIHFkbmFwcm8taWNvbixcbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1haSAubm92YS1zb3VyY2UtcGlsbCAubm92YS1zb3VyY2UtaWNvbiB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWFpIC5ub3ZhLXNvdXJjZS1zdGFjayB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nLXJpZ2h0OiA2cHg7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctYWkgLm5vdmEtc291cmNlLXN0YWNrLWl0ZW0ge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLW1zZy11c2VyLWJ1YmJsZSk7XG4gIGJvcmRlcjogMC41cHggc29saWQgdmFyKC0tbXNnLWRpdmlkZXIpO1xuICBtYXJnaW4tcmlnaHQ6IC02cHg7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctYWkgLm5vdmEtZm9sbG93dXBzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDZweDtcbiAgcGFkZGluZzogMCAwIDRweDtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1haSAubm92YS1mb2xsb3d1cC1jaGlwIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBwYWRkaW5nOiA2cHggMTBweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1zZy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGNvbG9yOiB2YXIoLS1tc2ctdGV4dCk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZS1vdXQsIGJvcmRlci1jb2xvciAxMjBtcyBlYXNlLW91dDtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1haSAubm92YS1mb2xsb3d1cC1jaGlwOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tbXNnLXF1aWNrLWhvdmVyKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tc2ctcHJpbWFyeSk7XG4gIGNvbG9yOiB2YXIoLS1tc2ctcHJpbWFyeSk7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctYWkgLm5vdmEtbXNnLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWFpIC5ub3ZhLWFjdGlvbi1idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1tc2ctdGV4dC1zZWNvbmRhcnkpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogNHB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2Utb3V0LCBjb2xvciAxMjBtcyBlYXNlLW91dDtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1haSAubm92YS1hY3Rpb24tYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tbXNnLXVzZXItYnViYmxlKTtcbiAgY29sb3I6IHZhcigtLW1zZy10ZXh0KTtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1haSAubm92YS1hY3Rpb24tYnRuIHFkbmFwcm8taWNvbiB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctYWkgLm5vdmEtYWN0aW9uLWJ0bi5ub3ZhLWFjdGlvbi1hY3RpdmUge1xuICBjb2xvcjogdmFyKC0tbXNnLXByaW1hcnkpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1tc2ctcGlubmVkLWJnKTtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1haSAubm92YS1hY3Rpb24tYnRuOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1haSAubm92YS1hY3Rpb24tYnRuOmZvY3VzLXZpc2libGUsXG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctYWkgLm5vdmEtYWN0aW9uLWJ0bi5mb3JjZS1mb2N1cyxcbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1haSAubm92YS1mb2xsb3d1cC1jaGlwOmZvY3VzLXZpc2libGUsXG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctYWkgLm5vdmEtZm9sbG93dXAtY2hpcC5mb3JjZS1mb2N1cyxcbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1haSAubm92YS1zb3VyY2UtcGlsbDpmb2N1cy12aXNpYmxlLFxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWFpIC5ub3ZhLXNvdXJjZS1waWxsLmZvcmNlLWZvY3VzIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLW1zZy1wcmltYXJ5KTtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbn1cblxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWVycm9yIHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgcGFkZGluZzogMTJweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tbXNnLWVycm9yLWJnKTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgY29sb3I6IHZhcigtLW1zZy1lcnJvci10ZXh0KTtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgZ2FwOiA4cHg7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctZXJyb3IgLm5vdmEtbXNnLWVycm9yLXJldHJ5IHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgcGFkZGluZzogNHB4IDEwcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLW1zZy1lcnJvci10ZXh0KTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgZm9udDogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctZXJyb3IgLm5vdmEtbXNnLWVycm9yLXJldHJ5OmhvdmVyIHtcbiAgb3BhY2l0eTogMC45O1xufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWVycm9yIC5ub3ZhLW1zZy1lcnJvci1yZXRyeTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctZXJyb3IgLm5vdmEtbXNnLWVycm9yLXJldHJ5OmZvY3VzLXZpc2libGUsXG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctZXJyb3IgLm5vdmEtbXNnLWVycm9yLXJldHJ5LmZvcmNlLWZvY3VzIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLW1zZy1wcmltYXJ5KTtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbn1cblxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLXRoaW5raW5nIHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMnB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIHBhZGRpbmc6IDA7XG4gIGNvbG9yOiB2YXIoLS1tc2ctdGV4dC1zZWNvbmRhcnkpO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLXRoaW5raW5nIC5ub3ZhLXRoaW5raW5nLWljb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLXRoaW5raW5nIC5ub3ZhLXRoaW5raW5nLXNwYXJrbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIG1hcmdpbjogLTdweCAwIDAgLTdweDtcbiAgY29sb3I6IHZhcigtLW1zZy1wcmltYXJ5KTtcbiAgYW5pbWF0aW9uOiBub3ZhLW1zZy1zcGFya2xlLW9yYml0IDIuN3MgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctdGhpbmtpbmcgLm5vdmEtdGhpbmtpbmctc3BhcmtsZTpudGgtY2hpbGQoMikge1xuICBhbmltYXRpb24tZGVsYXk6IC0wLjlzO1xufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLXRoaW5raW5nIC5ub3ZhLXRoaW5raW5nLXNwYXJrbGU6bnRoLWNoaWxkKDMpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMS44cztcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy10aGlua2luZyAubm92YS10aGlua2luZy1zcGFya2xlIHN2ZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctdGhpbmtpbmcgLm5vdmEtdGhpbmtpbmctc3BhcmtsZSB7XG4gIGNvbG9yOiAjZjBmMWZmO1xufVxuXG5Aa2V5ZnJhbWVzIG5vdmEtbXNnLXNwYXJrbGUtb3JiaXQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTExcHgpIHNjYWxlKDAuNDUpO1xuICAgIG9wYWNpdHk6IDAuMzU7XG4gIH1cbiAgMjUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMXB4LCAwKSBzY2FsZSgwLjg1KTtcbiAgICBvcGFjaXR5OiAwLjc1O1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTFweCkgc2NhbGUoMS4yKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTExcHgsIDApIHNjYWxlKDAuODUpO1xuICAgIG9wYWNpdHk6IDAuNzU7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTExcHgpIHNjYWxlKDAuNDUpO1xuICAgIG9wYWNpdHk6IDAuMzU7XG4gIH1cbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1maWxlIHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxNnB4O1xuICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gIGJhY2tncm91bmQ6ICNlNmU5ZmY7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWZpbGU6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCk7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctZmlsZTphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZGViYXItaWNvbik7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctZmlsZTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctZmlsZTpmb2N1cy12aXNpYmxlLCAucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctZmlsZS5mb3JjZS1mb2N1cyB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1tc2ctcHJpbWFyeSk7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSg3MCwgODIsIDI0MywgMC4yNSk7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctZmlsZSAubm92YS1tc2ctZmlsZS1pY29uLXdyYXAge1xuICBmbGV4LXNocmluazogMDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWZpbGUgLm5vdmEtbXNnLWZpbGUtbWV0YSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1pbi13aWR0aDogMDtcbiAgZmxleDogMTtcbiAgZ2FwOiAycHg7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctZmlsZSAubm92YS1tc2ctZmlsZS1uYW1lIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLW1zZy10ZXh0KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctZmlsZSAubm92YS1tc2ctZmlsZS1pbmZvIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgY29sb3I6IHZhcigtLW1zZy10ZXh0LXNlY29uZGFyeSk7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctZmlsZSAubm92YS1tc2ctZmlsZS1vcGVuIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgcGFkZGluZzogNnB4IDEycHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBmb250OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1maWxlIC5ub3ZhLW1zZy1maWxlLW9wZW4gcWRuYXByby1pY29uIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctZmlsZSAubm92YS1tc2ctZmlsZS1kb3dubG9hZCB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1maWxlIC5ub3ZhLW1zZy1maWxlLWRvd25sb2FkIHFkbmFwcm8taWNvbiB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWZpbGUgLm5vdmEtbXNnLWZpbGUtZG93bmxvYWQgcWRuYXByby1pY29uIHN2ZyB7XG4gIGZpbGw6IHZhcigtLWMtcHVycGxlLTUwMCkgIWltcG9ydGFudDtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWZpbGUge1xuICBiYWNrZ3JvdW5kOiAjMmEyYzVhO1xuICBib3JkZXItY29sb3I6ICM2Yjc1ZDY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctZmlsZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICMzMzNhN2I7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctZmlsZTphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjMjUyYjVlO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWZpbGUgLm5vdmEtbXNnLWZpbGUtb3BlbixcbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1maWxlIC5ub3ZhLW1zZy1maWxlLW9wZW4gcWRuYXByby1pY29uIHtcbiAgY29sb3I6ICNiM2JiZjI7XG4gIGJvcmRlci1jb2xvcjogIzZiNzVkNjtcbn1cbiIsIi8vIGJhY2tvZmZpY2UyL3Njc3MvdjEvY29tcG9uZW50cy9fbnVtYmVyLWluZGljYXRvci1iYWRnZS5zY3NzXG4vL1xuLy8gcWRuYXByby1udW1iZXItaW5kaWNhdG9yLWJhZGdlIOKAlCBkaXNwbGF5IGNvbXBvbmVudCBmb3IgY291bnRlcnMvaW5kaWNhdG9ycy5cbi8vIEZpZ21hIHNvdXJjZTogUUROQS1QUk8sIGNvbXBvbmVudCBzZXQgXCJOdW1iZXIgaW5kaWNhdG9yXCIgKG5vZGVJZCAxMzk4OjMyMTE2KS5cbi8vXG4vLyBIZXggdmFsdWVzIGFyZSBpbmxpbmUgd2l0aCB0aGUgdG9rZW4gbmFtZSBhcyBhIGNvbW1lbnQuIFNhbmRlciBjYW4gbGF0ZXJcbi8vIGRvIGEgc2VhcmNoLWFuZC1yZXBsYWNlIHRvIHZhcmlhYmxlcyBvbmNlIHRoZSBmaWdtYS10by1xZG5hLXRva2VucyBtb2R1bGVzXG4vLyBhcmUgZ2VuZXJhdGVkIChUZXh0L0hlYWRlciwgU3VyZmFjZS9CYXRjaC9CYXRjaC1QcmltYXJ5LXB1cnBsZSwgZXRjLikuXG5cbi5xZG5hcHJvLW51bWJlci1pbmRpY2F0b3ItYmFkZ2Uge1xuICAgIC8vIC0tLSBCYXNlIChzaGFyZWQgYnkgYWxsIHZhcmlhbnRzKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAvLyBQaWxsIHNoYXBlOiBhcyByb3VuZCBhcyBwb3NzaWJsZSB1bnRpbCB0aGUgdGV4dCBwdXNoZXMgaXQgd2lkZXIuXG4gICAgYm9yZGVyLXJhZGl1czogNTBweDtcblxuICAgIC8vIEFsd2F5cyByZXNlcnZlIHRoZSBib3JkZXIgc28gdmFyaWFudHMgV0lUSCBhIGJvcmRlciAob3V0bGluZWQpIGRvbid0XG4gICAgLy8gY2F1c2UgYSBsYXlvdXQgc2hpZnQgd2hlbiB5b3Ugc3dpdGNoIGNvbG91cnMgZHluYW1pY2FsbHkuXG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICAvLyBIb3Jpem9udGFsIHBhZGRpbmcgZXF1YWwgZXZlcnl3aGVyZS4gc2RzLXNpemUtc3BhY2UtMTAwID0gNHB4LlxuICAgIHBhZGRpbmc6IDAgNHB4O1xuXG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjsgIC8vIFR5cGUvRm9udCBGYW1pbHkvcHJpbWFyeVxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGxpbmUtaGVpZ2h0OiAxOyAgLy8gc2l6ZXMgb3ZlcnJpZGU7IGJhc2UgcHJldmVudHMgYSByZW5kZXJpbmcgZ2xpdGNoLlxuXG4gICAgLy8gLS0tIEZvY3VzIChvbmx5IHZpc2libGUgd2hlbiB0aGUgY29uc3VtZXIgc2V0cyB0YWJpbmRleCkgLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBTeXN0ZW0td2lkZSBwYXR0ZXJuIFtGSUdNQSB2ZXJpZmllZF0gbm9kZSA4NzcyOjE4ODc2MC5cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tYy1wdXJwbGUtNTAwKTsgIC8vICRib3JkZXItYWN0aW9uLXB1cnBsZS1vdXRsaW5lZFxuICAgICAgICBvdXRsaW5lLW9mZnNldDogMnB4O1xuICAgIH1cblxuICAgIC8vIC0tLSBTaXplcyAoaGVpZ2h0ICsgZm9udC1zaXplICsgbGluZS1oZWlnaHQpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gRmlnbWEgcmVwb3J0cyBoZWlnaHRzIDIwcHggKHhzKSBhbmQgMjRweCAoc20vbWQvbGcpLiBXZSB1c2VcbiAgICAvLyBtaW4td2lkdGggZXF1YWwgdG8gaGVpZ2h0IHNvIHNpbmdsZS1kaWdpdCBjb250ZW50IChlLmcuIFwiMVwiKVxuICAgIC8vIHN0YXlzIGNpcmN1bGFyIGFuZCBtdWx0aS1kaWdpdCBjb250ZW50IChcIjk5XCIsIFwiOTk5XCIpIHN0cmV0Y2hlcyB0aGUgcGlsbC5cblxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS1zaXplLXhzIHtcbiAgICAgICAgbWluLXdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDsgICAgIC8vIEZvbnQgc2l6ZS9Cb2R5L2V4dHJhLXNtYWxsLTEwXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OyAgIC8vIExpbmUgSGVpZ2h0L0JvZHkvQm9keSBTbWFsbCDigJQgZm9yY2VzIGNvbnRlbnQgd2l0aGluIDIwcHhcbiAgICAgICAgLy8gRXh0cmEgc21hbGwgaGFzIG9wYWNpdHktOTAgb24gdGhlIHRleHQgaW4gRmlnbWEuIFNtYWxsIHZpc3VhbCBudWFuY2UuXG4gICAgICAgIG9wYWNpdHk6IDAuOTtcbiAgICB9XG5cbiAgICAmLm51bWJlci1pbmRpY2F0b3ItYmFkZ2Utc2l6ZS1zbSB7XG4gICAgICAgIG1pbi13aWR0aDogMjRweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7ICAgICAvLyBGb250IHNpemUvQm9keS9zbWFsbC0xMlxuICAgICAgICBsaW5lLWhlaWdodDogMjBweDsgICAvLyBMaW5lIEhlaWdodC9Cb2R5L0JvZHkgU21hbGxcbiAgICB9XG5cbiAgICAmLm51bWJlci1pbmRpY2F0b3ItYmFkZ2Utc2l6ZS1tZCB7XG4gICAgICAgIG1pbi13aWR0aDogMjRweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7ICAgICAvLyBGb250IHNpemUvQm9keS9JbnRlci1tZWRpdW0tMTRcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7ICAgLy8gTGluZSBIZWlnaHQvQm9keS9Cb2R5IE1lZGl1bS1DYXB0aW9uXG4gICAgfVxuXG4gICAgJi5udW1iZXItaW5kaWNhdG9yLWJhZGdlLXNpemUtbGcge1xuICAgICAgICBtaW4td2lkdGg6IDI0cHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4OyAgICAgLy8gRm9udCBzaXplL0JvZHkvbWVkaXVtLTE2XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4OyAgIC8vIExpbmUgSGVpZ2h0L0JvZHkvQm9keSBNZWRpdW1cbiAgICB9XG5cbiAgICAvLyAtLS0gV2VpZ2h0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgJi5udW1iZXItaW5kaWNhdG9yLWJhZGdlLXdlaWdodC1yZWd1bGFyIHsgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS13ZWlnaHQtbWVkaXVtICB7IGZvbnQtd2VpZ2h0OiA1MDA7IH0gIC8vIEZpZ21hIGRlZmF1bHRcbiAgICAmLm51bWJlci1pbmRpY2F0b3ItYmFkZ2Utd2VpZ2h0LWJvbGQgICAgeyBmb250LXdlaWdodDogNzAwOyB9XG5cbiAgICAvLyAtLS0gQ29sb3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgLy8gUHJpbWFyeSBQdXJwbGUg4oCUIGRhcmsgcHVycGxlIGJnLCB3aGl0ZSB0ZXh0LlxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS1wcmltYXJ5IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTsgIC8vIFN1cmZhY2UvQmF0Y2gvQmF0Y2gtUHJpbWFyeS1wdXJwbGVcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pOyAgICAgICAgICAgICAvLyBUZXh0L09uLWFjdGlvblxuICAgIH1cblxuICAgIC8vIE91dGxpbmUg4oCUIGxpZ2h0IHB1cnBsZSBiZyArIHB1cnBsZSBib3JkZXIgKyBwdXJwbGUgdGV4dC5cbiAgICAmLm51bWJlci1pbmRpY2F0b3ItYmFkZ2Utb3V0bGluZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlOWZmOyAgLy8gU3VyZmFjZS9CdXR0b25zL1NlY29uZGFyeS1wdXJwbGVcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApOyAgICAgIC8vIEJvcmRlci9BY3Rpb24tUHVycGxlLU91dGxpbmVkXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApOyAgICAgICAgICAgICAvLyBUZXh0L0hlYWRlclxuICAgIH1cblxuICAgIC8vIFB1cnBsZSBubyBvdXRsaW5lIOKAlCBsaWdodCBwdXJwbGUgYmcsIHB1cnBsZSB0ZXh0IChubyBib3JkZXIpLlxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS1zdWJ0bGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlOWZmOyAgLy8gU3VyZmFjZS9CdXR0b25zL1NlY29uZGFyeS1wdXJwbGVcbiAgICAgICAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7ICAgICAgICAgICAgIC8vIFRleHQvSGVhZGVyXG4gICAgfVxuXG4gICAgLy8gVHJhbnNwYXJlbnQgZ3JleSDigJQgc2VtaS10cmFuc3BhcmVudCBncmV5IGJnLCBncmV5IHRleHQuXG4gICAgJi5udW1iZXItaW5kaWNhdG9yLWJhZGdlLW11dGVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzZiNzI4MDRkOyAgLy8gVHJhbnNwYXJlbnQvVHJhbnMtNTAwLUdyZXktMzAlICgzMCUgYWxwaGEpXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwKTsgICAgICAgICAgICAgICAvLyBUZXh0L0JvZHkgU2Vjb25kYXJ5XG4gICAgfVxuXG4gICAgLy8gTm8gQkcgR3JleSDigJQgbm8gYmFja2dyb3VuZCwgZ3JleSB0ZXh0IChtaW5pbWFsKS5cbiAgICAmLm51bWJlci1pbmRpY2F0b3ItYmFkZ2UtZ2hvc3Qge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDApOyAgLy8gVGV4dC9Cb2R5IFNlY29uZGFyeVxuICAgIH1cblxuICAgIC8vIE5vIEJHIFB1cnBsZSDigJQgbm8gYmFja2dyb3VuZCwgcHVycGxlIHRleHQuXG4gICAgJi5udW1iZXItaW5kaWNhdG9yLWJhZGdlLWdob3N0LXB1cnBsZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTsgIC8vIFRleHQvSGVhZGVyXG4gICAgfVxuXG4gICAgLy8gQWxlcnQg4oCUIHNvbGlkIHJlZCBzdXJmYWNlLCB3aGl0ZSB0ZXh0LiBVc2VkIGZvciBub3RpZmljYXRpb24gY291bnRzXG4gICAgLy8gYW5kIGVycm9yIGluZGljYXRvcnMgKHJlcGxhY2VzIHRoZSBpbmxpbmUgYC5uYXYtaXRlbS1iYWRnZWAgcmVkIHVzZWRcbiAgICAvLyBpbiB0aGUgbmF2LXJhaWwpLiBQYWlycyBuYXR1cmFsbHkgd2l0aCB0aGUgYGRvdGAgbW9kZSBiZWxvdy5cbiAgICAmLm51bWJlci1pbmRpY2F0b3ItYmFkZ2UtYWxlcnQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdhcm4tcmVkLTUwMCk7ICAvLyBUYWlsd2luZCByZWQtNjAwIOKAlCBtYXRjaGVzIHRoZSBuYXYtcmFpbCBiYWRnZVxuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gICAgfVxuXG4gICAgLy8gT24tcHJpbWFyeSDigJQgc2l0cyBvbiBhIHByaW1hcnktcHVycGxlIGJ1dHRvbiBzdXJmYWNlLlxuICAgIC8vIERlZXAgcHJlc3NlZC1wdXJwbGUgYmcsIG5vIGJvcmRlci5cbiAgICAmLm51bWJlci1pbmRpY2F0b3ItYmFkZ2Utb24tcHJpbWFyeSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHVycGxlLTcwMCk7ICAvLyBTdXJmYWNlL0J1dHRvbnMvQWN0aW9uLVByZXNzZWQgKGRhcmtlc3QgYnJhbmQpXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTsgICAgICAgICAgICAgLy8gVGV4dC9Pbi1hY3Rpb25cbiAgICB9XG5cbiAgICAvLyAtLS0gU2VtYW50aWMgc3RhdHVzIGNvbG9ycyAobWlycm9yIHRoZSB2MSB0YWcgc2tpbnMpIC0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIExpZ2h0IHRpbnQgYmcgKyBkYXJrIHJlYWRhYmxlIHRleHQgKyBtYXRjaGluZyBib3JkZXIsIHNvIGEgbnVtZXJpY1xuICAgIC8vIGNvdW50ZXIgY2FuIGNhcnJ5IGEgZ3JlZW4veWVsbG93L3JlZCBzdGF0dXMgdGhlIHNhbWUgd2F5IGEgdGFnIGRvZXMuXG4gICAgLy8gVmFsdWVzIGNvcGllZCB2ZXJiYXRpbSBmcm9tICR0YWdzLXNraW5zIGluIGNvbXBvbmVudHMvdjEvdGFncy5zY3NzLlxuICAgIC8vIFNvZnQgYm9yZGVyczogdGhlIGxpZ2h0ZXIgdGFnIFwiZmlsbGVkLWJhc2VcIiB0aW50IGluc3RlYWQgb2YgdGhlIGhhcmRcbiAgICAvLyBcImJvcmRlclwiIHRvbmUsIHNvIHRoZSBjb2xvdXIgdmVyc2lvbnMgcmVhZCBnZW50bGVyIChLaW0sIDIwLjA3LjIwMjYpLlxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS1ncmVlbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtY2hpcC1ncmVlbi1iZyk7ICAvLyB0YWcgZ3JlZW4gLyBiYXNlXG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1jaGlwLWdyZWVuLTItYmcpOyAgICAgIC8vIHRhZyBncmVlbiAvIGZpbGxlZC1iYXNlIChzb2Z0KVxuICAgICAgICBjb2xvcjogIzJmNWQ0YTsgICAgICAgICAgICAgLy8gdGFnIGdyZWVuIC8gdGV4dFxuICAgIH1cblxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS15ZWxsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWNoaXAteWVsbG93LWJnKTsgIC8vIHRhZyB5ZWxsb3cgLyBiYXNlXG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1jaGlwLXllbGxvdy0yLWJnKTsgICAgICAvLyB0YWcgeWVsbG93IC8gZmlsbGVkLWJhc2UgKHNvZnQpXG4gICAgICAgIGNvbG9yOiAjNjU1NTIyOyAgICAgICAgICAgICAvLyB0YWcgeWVsbG93IC8gdGV4dFxuICAgIH1cblxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS1yZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtYmcpOyAgLy8gdGFnIHJlZCAvIGJhc2VcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWNoaXAtcmVkLTItYmcpOyAgICAgIC8vIHRhZyByZWQgLyBmaWxsZWQtYmFzZSAoc29mdClcbiAgICAgICAgY29sb3I6ICM2MzMwMzA7ICAgICAgICAgICAgIC8vIHRhZyByZWQgLyB0ZXh0XG4gICAgfVxuXG4gICAgLy8gQm9yZGVybGVzcyBtb2RpZmllciDigJQgZHJvcHMgdGhlIGJvcmRlciBvbiBhbnkgY29sb3VyIChrZXB0IHRyYW5zcGFyZW50IHNvXG4gICAgLy8gdGhlIHJlc2VydmVkIDFweCBuZXZlciBzaGlmdHMgbGF5b3V0KS4gUGxhY2VkIGxhc3Qgc28gaXQgd2lucyBvdmVyIHRoZVxuICAgIC8vIGNvbG91ciB2YXJpYW50cyBhdCBlcXVhbCBzcGVjaWZpY2l0eS5cbiAgICAmLm51bWJlci1pbmRpY2F0b3ItYmFkZ2UtYm9yZGVybGVzcyB7IGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgRG90IG1vZGUg4oCUIHNtYWxsIHJvdW5kIG5vdGlmaWNhdGlvbiBkb3QsIG5vIGNvbnRlbnQgc2hvd24uXG4vLyAgU2l6ZS1hd2FyZTogeHM9NnB4LCBzbT04cHggKGRlZmF1bHQpLCBtZD0xMHB4LCBsZz0xMnB4LlxuLy8gIE92ZXJyaWRlcyB0aGUgcGlsbCBtaW4td2lkdGggKyBwYWRkaW5nIHNvIHRoZSBiYWRnZSBjb2xsYXBzZXNcbi8vICB0byBhIHBlcmZlY3QgY2lyY2xlLiBgZm9udC1zaXplOiAwYCBoaWRlcyBhbnkgYWNjaWRlbnRhbCBjb250ZW50LlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4ucWRuYXByby1udW1iZXItaW5kaWNhdG9yLWJhZGdlLm51bWJlci1pbmRpY2F0b3ItYmFkZ2UtZG90IHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBib3JkZXItd2lkdGg6IDA7XG5cbiAgICAmLm51bWJlci1pbmRpY2F0b3ItYmFkZ2Utc2l6ZS14cyB7IHdpZHRoOiA2cHg7ICBoZWlnaHQ6IDZweDsgIG1pbi13aWR0aDogNnB4OyAgfVxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS1zaXplLXNtIHsgd2lkdGg6IDhweDsgIGhlaWdodDogOHB4OyAgbWluLXdpZHRoOiA4cHg7ICB9XG4gICAgJi5udW1iZXItaW5kaWNhdG9yLWJhZGdlLXNpemUtbWQgeyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxMHB4OyBtaW4td2lkdGg6IDEwcHg7IH1cbiAgICAmLm51bWJlci1pbmRpY2F0b3ItYmFkZ2Utc2l6ZS1sZyB7IHdpZHRoOiAxMnB4OyBoZWlnaHQ6IDEycHg7IG1pbi13aWR0aDogMTJweDsgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBEYXJrLW1vZGUgb3ZlcnJpZGVzXG4vLyAgW0lORkVSUkVEXSDigJQgZnVsbCBkYXJrLXRva2VuIHNldCBmb3IgTnVtYmVyIGluZGljYXRvciBpcyBub3QgeWV0XG4vLyAgcHVibGlzaGVkIGluIEZpZ21hLiBNYXBwaW5ncyBiZWxvdyBmb2xsb3cgdGhlIHNhbWUgcGF0dGVybiB0aGVcbi8vICBbRklHTUEgdmVyaWZpZWQg4oCUIGRhcmsgdG9rZW5zIHJlLWZldGNoZWQgZnJvbSBub2RlIDEzOTg6MzIxMTYgYWZ0ZXJcbi8vICBLaW0gZmxhZ2dlZCB0aGUgaW5pdGlhbCBwYXNzIHdhcyB3cm9uZy4gVGhlIHN1cnByaXNlOiBCYXRjaC1QcmltYXJ5XG4vLyAgaW4gZGFyayBtb2RlIGlzICNjNGM3Y2MgKGxpZ2h0IGdyZXkpLCBOT1QgYSBkZWVwZXIgcHVycGxlLl1cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLW51bWJlci1pbmRpY2F0b3ItYmFkZ2Uge1xuICAgIC8vIFByaW1hcnkg4oCUIGxpZ2h0LWdyZXkgbmV1dHJhbCB3aXRoIHdoaXRlIHRleHQgKEZpZ21hIGNob2ljZTpcbiAgICAvLyB0aGUgXCJwcmltYXJ5XCIgaW5kaWNhdG9yIGludmVydHMgdG8gYSBwYWxlIGNoaXAgb24gZGFyayBiZ1xuICAgIC8vIGluc3RlYWQgb2YgZ29pbmcgZGVlcGVyIHB1cnBsZSlcbiAgICAmLm51bWJlci1pbmRpY2F0b3ItYmFkZ2UtcHJpbWFyeSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjNGM3Y2M7ICAgLy8gU3VyZmFjZS9CYXRjaC9CYXRjaC1QcmltYXJ5LXB1cnBsZSAoZGFyaylcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7ICAgICAgICAgICAgICAvLyBUZXh0L09uLWFjdGlvblxuICAgIH1cblxuICAgIC8vIE91dGxpbmVkIOKAlCBuZWFyLWJsYWNrIHN1cmZhY2UgKyBtaWQtZ3JleSBib3JkZXIgKyBsaWdodCB0ZXh0XG4gICAgJi5udW1iZXItaW5kaWNhdG9yLWJhZGdlLW91dGxpbmVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBiMGIwZDsgICAvLyBTdXJmYWNlL0J1dHRvbnMvU2Vjb25kYXJ5LXB1cnBsZSAoZGFyaylcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNTY1YjY2OyAgICAgICAvLyBCb3JkZXIvQWN0aW9uLVB1cnBsZS1PdXRsaW5lZCAoZGFyaylcbiAgICAgICAgY29sb3I6ICNmMGYxZjI7ICAgICAgICAgICAgICAvLyBUZXh0L0hlYWRlciAoZGFyaylcbiAgICB9XG5cbiAgICAvLyBTdWJ0bGUg4oCUIHNhbWUgZGFyayBzdXJmYWNlLCBsaWdodCB0ZXh0LCBubyBib3JkZXJcbiAgICAmLm51bWJlci1pbmRpY2F0b3ItYmFkZ2Utc3VidGxlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBiMGIwZDsgICAvLyBTdXJmYWNlL0J1dHRvbnMvU2Vjb25kYXJ5LXB1cnBsZSAoZGFyaylcbiAgICAgICAgY29sb3I6ICNmMGYxZjI7ICAgICAgICAgICAgICAvLyBUZXh0L0hlYWRlciAoZGFyaylcbiAgICB9XG5cbiAgICAvLyBNdXRlZCDigJQgdHJhbnNwYXJlbnQgZ3JleSB0aW50ICh0b2tlbiBpcyBtb2RlLWFnbm9zdGljKVxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS1tdXRlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2YjcyODAzMzsgLy8gVHJhbnNwYXJlbnQvVHJhbnMtNTAwLUdyZXktMjAlXG4gICAgICAgIGNvbG9yOiAjYTZhYWIzOyAgICAgICAgICAgICAgLy8gVGV4dC9Cb2R5IFNlY29uZGFyeSAoZGFyaylcbiAgICB9XG5cbiAgICAvLyBHaG9zdCDigJQgbm8gZmlsbCwgZGltbWVyIGJvZHktc2Vjb25kYXJ5IHRvbmVcbiAgICAmLm51bWJlci1pbmRpY2F0b3ItYmFkZ2UtZ2hvc3Qge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICNhNmFhYjM7ICAgICAgICAgICAgICAvLyBUZXh0L0JvZHkgU2Vjb25kYXJ5IChkYXJrKVxuICAgIH1cblxuICAgIC8vIEdob3N0LXB1cnBsZSDigJQgbm8gZmlsbCwgaGVhZGVyIHRvbmUgKGZsaXBwZWQgdG8gbGlnaHQgaW4gZGFyaylcbiAgICAmLm51bWJlci1pbmRpY2F0b3ItYmFkZ2UtZ2hvc3QtcHVycGxlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAjZjBmMWYyOyAgICAgICAgICAgICAgLy8gVGV4dC9IZWFkZXIgKGRhcmspXG4gICAgfVxuXG4gICAgLy8gQWxlcnQg4oCUIHNsaWdodGx5IGxpZ2h0ZXIgcmVkIG9uIGRhcmsgYmFja2dyb3VuZCBmb3IgdmlzdWFsIGxpZnQuXG4gICAgLy8gW0lORkVSUkVEXSB1bnRpbCBGaWdtYSBzaGlwcyB0aGUgZGFyayB0b2tlbiBzZXQuXG4gICAgJi5udW1iZXItaW5kaWNhdG9yLWJhZGdlLWFsZXJ0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VmNDQ0NDsgIC8vIFRhaWx3aW5kIHJlZC01MDAg4oCUIHNvZnRlciBvbiBkYXJrIHN1cmZhY2VzXG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIH1cblxuICAgIC8vIFNlbWFudGljIHN0YXR1cyBjb2xvcnMg4oCUIFtJTkZFUlJFRF0gZGFyayB0cmVhdG1lbnQ6IHRyYW5zbHVjZW50IHRpbnQgb2ZcbiAgICAvLyB0aGUgaHVlICsgbGlnaHQgcmVhZGFibGUgdGV4dCArIHNhdHVyYXRlZCBib3JkZXIuIEtlcHQgbGVnaWJsZSBvbiB0aGVcbiAgICAvLyBkYXJrIHN1cmZhY2UgdW50aWwgRmlnbWEgc2hpcHMgZGFyayB0b2tlbnMgZm9yIHRoZXNlIHNraW5zLlxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS1ncmVlbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0MjhiNmUzMztcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjOGJlY2M1NjY7ICAgLy8gc29mdCwgbG93LWNvbnRyYXN0IGJvcmRlclxuICAgICAgICBjb2xvcjogI2E3ZThjZDtcbiAgICB9XG5cbiAgICAmLm51bWJlci1pbmRpY2F0b3ItYmFkZ2UteWVsbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2YyZTMzO1xuICAgICAgICBib3JkZXItY29sb3I6ICNmZGU1OTQ2NjsgICAvLyBzb2Z0LCBsb3ctY29udHJhc3QgYm9yZGVyXG4gICAgICAgIGNvbG9yOiAjZjBkYzk1O1xuICAgIH1cblxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS1yZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzY1YTVhMzM7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2ZiYWFhYTY2OyAgIC8vIHNvZnQsIGxvdy1jb250cmFzdCBib3JkZXJcbiAgICAgICAgY29sb3I6ICNmNmMwYzA7XG4gICAgfVxuXG4gICAgJi5udW1iZXItaW5kaWNhdG9yLWJhZGdlLWJvcmRlcmxlc3MgeyBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLXBob3RvLWdhbGxlcnlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIEZhc2UgMWEg4oCUIG5ldywgQ0xFQU4gcGhvdG8gZ2FsbGVyeSBncmlkICsgbGlnaHRib3guXG4vLyAgU2VlIGRvY3MvR0FMTEVSWS1CVUlMRC1QTEFOLm1kLiBOZXZlciB0b3VjaGVzL2V4dGVuZHMgdGhlIGxlZ2FjeVxuLy8gIHFkbmEtd2lkZ2V0LXBob3RvLWdhbGxlcnkgKGhvbWVwYWdlKSBvciBpdHMgU0NTUyDigJQgb25seSB0aGUgbGlnaHRib3hcbi8vICBTVFJVQ1RVUkUgd2FzIG1vZGVsZWQgb24gdGhhdCB3aWRnZXQgKEphbidzIHJldXNlLWRpc2NpcGxpbmUgcnVsZSkuXG4vL1xuLy8gIFJlc3BvbnNpdmUgdGh1bWJuYWlsIGdyaWQgKyBxZG5hcHJvLW1vZGFsLWJhc2VkIGxpZ2h0Ym94IHdpdGhcbi8vICBwcmV2L25leHQsIHNsaWRlc2hvdywgZG93bmxvYWQsIGFuZCBvcHRpb25hbCBidWxrLXNlbGVjdCBjaGVja2JveGVzLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnFkbmFwcm8tcGhvdG8tZ2FsbGVyeSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAvLyBGaXhlZCB0aWxlIHNpemUg4oCUIG92ZXJyaWRlIHBlciBob3N0IGlmIGEgZGlmZmVyZW50IHNjYWxlIGlzIHdhbnRlZC5cbiAgICAtLXBnLWNlbGwtc2l6ZTogMTcwcHg7XG5cbiAgICAqIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4gICAgLnBnLWdyaWQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAvKiBhdXRvLUZJTEwgKyBtaW5tYXgoPHNpemU+LCAxZnIpOiB0aGUgS0VZIGlzIGF1dG8tRklMTCAobm90IGF1dG8tZml0KS5cbiAgICAgICAgICAgYXV0by1maWxsIEtFRVBTIHRoZSBlbXB0eSBwaGFudG9tIHRyYWNrcywgc28gYSBzbWFsbCByZXN1bHQgc2V0IGRvZXNcbiAgICAgICAgICAgTk9UIG92ZXItc3RyZXRjaCAoZWFjaCBpdGVtIHN0YXlzIG9uZSB0cmFjayDiiYggPHNpemU+KSDigJQgdGhhdCB3YXMgdGhlXG4gICAgICAgICAgIG9yaWdpbmFsIGJ1ZyB3aXRoIGF1dG8tZml0LCB3aGljaCBjb2xsYXBzZXMgZW1wdHkgdHJhY2tzIGFuZCBibG93cyB0aGVcbiAgICAgICAgICAgZmV3IGl0ZW1zIHVwLiBUaGUgMWZyIGxldHMgdGhlIHJlYWwgY29sdW1ucyBhYnNvcmIgdGhlIGxlZnRvdmVyIHdpZHRoXG4gICAgICAgICAgIHNvIHRoZSBncmlkIGZpbGxzIHRoZSBjYXJkIGVkZ2UtdG8tZWRnZSAobm8gZW1wdHkgY29sdW1uIHBvb2xpbmcgb24gdGhlXG4gICAgICAgICAgIHJpZ2h0KS4gTmV0OiB0aWxlIHNpemUgZGVwZW5kcyBvbmx5IG9uIENPTlRBSU5FUiBXSURUSCAocmVzcG9uc2l2ZSksXG4gICAgICAgICAgIG5ldmVyIG9uIGZpbHRlcnMgb3IgcGhvdG8gY291bnQuIFtKYW4gMjAyNi0wNy0wNl0gKi9cbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgodmFyKC0tcGctY2VsbC1zaXplLCAxNzBweCksIDFmcikpO1xuICAgICAgICBnYXA6IHZhcigtLXMtMywgMTJweCk7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gICAgfVxuXG4gICAgLnBnLWNlbGwge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMywgMTJweCk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLWhvdmVyLCAjZjBmMWYyKTtcbiAgICB9XG5cbiAgICAucGctY2VsbC10aHVtYi1idG4ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLnBnLWNlbGwtdGh1bWIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyMjBtcyBjdWJpYy1iZXppZXIoMC4yLCAwLjYsIDAuMiwgMSk7XG4gICAgfVxuICAgIC5wZy1jZWxsLXRodW1iLWJ0bjpob3ZlciAucGctY2VsbC10aHVtYiB7IHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7IH1cbiAgICAucGctY2VsbC10aHVtYi1idG46Zm9jdXMtdmlzaWJsZSB7IG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSk7IG91dGxpbmUtb2Zmc2V0OiAtMnB4OyB9XG5cbiAgICAvLyBTZWxlY3RlZCB0aWxlIOKAlCBhIGJyYW5kLXB1cnBsZSByaW5nIChib3gtc2hhZG93OiBubyBsYXlvdXQgc2hpZnQsIGFuZCBOT1RcbiAgICAvLyBjbGlwcGVkIGJ5IHRoZSBjZWxsJ3Mgb3ZlcmZsb3c6aGlkZGVuLCB1bmxpa2UgYSByZWFsIGJvcmRlcikuIFtKYW4gMjAyNi0wNy0wNl1cbiAgICAucGctY2VsbC5wZy1jZWxsLXNlbGVjdGVkIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKTtcbiAgICB9XG4gICAgLy8gSW4gc2VsZWN0IG1vZGUgKOKJpTEgc2VsZWN0ZWQpIHRoZSBXSE9MRSB0aWxlIGlzIHRoZSBzZWxlY3QgdGFyZ2V0IOKAlCBzaG93IGFcbiAgICAvLyBwb2ludGVyIGN1cnNvciBhbmQgc3VwcHJlc3MgdGhlIGhvdmVyLXpvb20gc28gaXQgcmVhZHMgYXMgXCJjbGljayA9IHNlbGVjdFwiLlxuICAgIC5wZy1ncmlkLnBnLXNlbGVjdGluZyAucGctY2VsbC10aHVtYi1idG4geyBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAucGctZ3JpZC5wZy1zZWxlY3RpbmcgLnBnLWNlbGwtdGh1bWItYnRuOmhvdmVyIC5wZy1jZWxsLXRodW1iIHsgdHJhbnNmb3JtOiBub25lOyB9XG5cbiAgICAvLyBWZXJiZXJnZW4gKDIwMjYtMDgtMTUpIOKAlCBlZW4gdmVyYm9yZ2VuIGZvdG8gaXMgYWxsZWVuIHppY2h0YmFhciBpbiBkZVxuICAgIC8vIFwidG9vbiB2ZXJib3JnZW5cIi1zdGFuZCwgZW4gZGFuIGR1aWRlbGlqayBnZW1lcmt0OiBnZWRlbXB0IGJlZWxkIHBsdXMgZWVuXG4gICAgLy8gYmFkZ2UuIFpvbmRlciBkYXQgdmVyc2NoaWwgaXMgbmlldCB0ZSB6aWVuIG9mIGplIG5hYXIgZGUgZ2V3b25lIGdhbGVyaWpcbiAgICAvLyBraWprdCBvZiBuYWFyIGRlIHRlcnVnemV0LXdlcmtsaWpzdC5cbiAgICAucGctY2VsbC5wZy1jZWxsLWhpZGRlbiAucGctY2VsbC10aHVtYiB7XG4gICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDAuNyk7XG4gICAgICAgIG9wYWNpdHk6IDAuNTU7XG4gICAgfVxuICAgIC5wZy1jZWxsLnBnLWNlbGwtaGlkZGVuIC5wZy1jZWxsLXRodW1iLWJ0bjpob3ZlciAucGctY2VsbC10aHVtYiB7IG9wYWNpdHk6IDAuODsgfVxuXG4gICAgLnBnLWNlbGwtaGlkZGVuLWJhZGdlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IHZhcigtLXMtMiwgOHB4KTtcbiAgICAgICAgcmlnaHQ6IHZhcigtLXMtMiwgOHB4KTtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogM3B4O1xuICAgICAgICBwYWRkaW5nOiAycHggNnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTEsIDRweCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42Mik7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC5wZy1jZWxsLWNoZWNrIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IHZhcigtLXMtMiwgOHB4KTtcbiAgICAgICAgbGVmdDogdmFyKC0tcy0yLCA4cHgpO1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICAvLyBBIHNtYWxsIGZyb3N0ZWQgYmFja2Ryb3Agc28gdGhlIGNoZWNrYm94IHN0YXlzIGxlZ2libGUgb24gYW55IHBob3RvLlxuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTEsIDRweCk7XG4gICAgICAgIHBhZGRpbmc6IDJweDtcbiAgICB9XG5cbiAgICAucGctY2VsbC1mbGFnIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IHZhcigtLXMtMiwgOHB4KTtcbiAgICAgICAgcmlnaHQ6IHZhcigtLXMtMiwgOHB4KTtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYjMyNjFlKTtcbiAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjM1KSk7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgICAvLyBUaGUgI2lkIGxhYmVsIGFsc28gbGl2ZXMgdG9wLXJpZ2h0OyBrZWVwIHRoZSAoRmFzZS0yKSBmbGFnIGNsZWFyIG9mIGl0LlxuICAgIC5wZy1jZWxsOmhhcygucGctY2VsbC1pZCkgLnBnLWNlbGwtZmxhZyB7IHRvcDogMjJweDsgfVxuXG4gICAgLy8gVGlueSByZXNwb25zZS1pZCBvdmVybGF5LCB0b3AtcmlnaHQuIEEgRE9NIGxhYmVsIChuZXZlciBiYWtlZCBpbnRvIHRoZVxuICAgIC8vIHBob3RvKSBwdXJlbHkgZm9yIHN1cHBvcnQgY3Jvc3MtY2hlY2tzLiBUZXh0IGNvbG91ciBmbGlwcyBibGFjay93aGl0ZVxuICAgIC8vIHBlci10aHVtYiBmcm9tIHRoZSBpbWFnZSdzIHRvcC1yaWdodCBXQ0FHIGx1bWluYW5jZSAoLnBnLWlkLWRhcmsgYWRkZWRcbiAgICAvLyBieSBfYXBwbHlUaHVtYklkQ29udHJhc3QpOyBhIGZhaW50IG9wcG9zaXRlIHNoYWRvdyBpcyBhIGxlZ2liaWxpdHlcbiAgICAvLyBzYWZldHkgbmV0IGZvciBidXN5IG1pZC10b25lIHBob3Rvcy5cbiAgICAucGctY2VsbC1pZCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA0cHg7XG4gICAgICAgIHJpZ2h0OiA2cHg7XG4gICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIGZvbnQtc2l6ZTogOXB4O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMnB4O1xuICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgICAgICAgICAgICAgIC8vIG5ldmVyIGJsb2NrcyBvcGVuaW5nIHRoZSB0aHVtYlxuICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkyKTsgIC8vIGRlZmF1bHQgKGRhcmsgYmcpIOKGkiBsaWdodCB0ZXh0XG4gICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAxLjVweCByZ2JhKDAsIDAsIDAsIDAuNTUpO1xuICAgIH1cbiAgICAucGctY2VsbC1pZC5wZy1pZC1kYXJrIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMTcsIDE3LCAxNywgMC45KTsgICAgICAvLyBsaWdodCBiZyDihpIgZGFyayB0ZXh0IChXQ0FHIGx1bWluYW5jZSlcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDEuNXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcbiAgICB9XG5cbiAgICAvLyBGYXNlIDJiIOKAlCBzaGFyZWQgY2xhc3NpZmljYXRpb24sIHJlYWQtb25seSBkb3QuIFRvcC1jZW50ZXI6IHRoZSBvbmVcbiAgICAvLyBjb3JuZXItZnJlZSBlZGdlIGxlZnQgb25jZSBjaGVja2JveCAoVEwpIC8gZmxhZytpZCAoVFIpIC8gZmF2b3JpdGUgKEJMKVxuICAgIC8vIC8gY29tbWVudHMgKEJSKSBhcmUgYWNjb3VudGVkIGZvci5cbiAgICAvLyBDbGFzc2lmaWNhdGlvbiBkb3RzIG9uIGdyaWQgdGh1bWJuYWlscyB3ZXJlIHJlbW92ZWQgKEphbiAyMDI2LTA3LTA2KSDigJQgYVxuICAgIC8vIGJldHRlciBhdC1hLWdsYW5jZSB0cmVhdG1lbnQgY29tZXMgbGF0ZXIuIENsYXNzaWZpY2F0aW9ucyBsaXZlIGluIHRoZSBsaWdodGJveC5cblxuICAgIC5wZy1jZWxsLWZhdiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiB2YXIoLS1zLTIsIDhweCk7XG4gICAgICAgIGxlZnQ6IHZhcigtLXMtMiwgOHB4KTtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgY29sb3I6IHZhcigtLWMtd2FybmluZy1icmlnaHQtYm9yZGVyKTtcbiAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjQ1KSk7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC5wZy1jZWxsLWNvbW1lbnRzIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IHZhcigtLXMtMiwgOHB4KTtcbiAgICAgICAgcmlnaHQ6IHZhcigtLXMtMiwgOHB4KTtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNHB4O1xuICAgICAgICBwYWRkaW5nOiAzcHggN3B4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXBpbGwsIDk5OXB4KTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjU1KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAvLyAtLS0tIExvYWRpbmcgLyBlbXB0eSBzdGF0ZXMgLS0tLVxuICAgIC5wZy1zdGF0ZVtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgLnBnLXNrZWwtZ3JpZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIC8vIE1hdGNoIHRoZSByZWFsIGdyaWQ6IGF1dG8tZmlsbCArIG1pbm1heCBzbyBpdCBmaWxscyBlZGdlLXRvLWVkZ2UgKHNlZSAucGctZ3JpZCBhYm92ZSkuXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KHZhcigtLXBnLWNlbGwtc2l6ZSwgMTcwcHgpLCAxZnIpKTtcbiAgICAgICAgZ2FwOiB2YXIoLS1zLTMsIDEycHgpO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xuICAgIH1cbiAgICAucGctc2tlbC1jZWxsIHtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiAxIC8gMTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci0zLCAxMnB4KTtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEwMGRlZywgdmFyKC0tYy1ncmV5LTEwMCwgI2YwZjFmMikgMzAlLCB2YXIoLS1jLWdyZXktNTAsICNmN2Y4ZjkpIDUwJSwgdmFyKC0tYy1ncmV5LTEwMCwgI2YwZjFmMikgNzAlKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAyMDAlIDEwMCU7XG4gICAgICAgIGFuaW1hdGlvbjogcGctc2tlbC1zaGltbWVyIDEuNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgfVxuICAgIEBrZXlmcmFtZXMgcGctc2tlbC1zaGltbWVyIHtcbiAgICAgICAgMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAyMDAlIDA7IH1cbiAgICAgICAgMTAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMDAlIDA7IH1cbiAgICB9XG5cbiAgICAucGctZW1wdHkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1zLTIsIDhweCk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXMtOCwgNDBweCkgdmFyKC0tcy00LCAxNnB4KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBoNCB7IG1hcmdpbjogMDsgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMWExZjRkKTsgfVxuICAgICAgICBwIHsgbWFyZ2luOiAwOyBmb250LXNpemU6IDEzcHg7IH1cbiAgICB9XG5cbiAgICAucGctc2VudGluZWwgeyBoZWlnaHQ6IDFweDsgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBMaWdodGJveCAocWRuYXByby1tb2RhbCwgYXBwZW5kZWQgdG8gZG9jdW1lbnQuYm9keSDigJQgc2NvcGVkIGJ5IGNsYXNzKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5xZG5hcHJvLW1vZGFsLnBnLWxpZ2h0Ym94IHtcbiAgICAvLyAtLS0tIEZJWEVEIEZSQU1FIC0tLS1cbiAgICAvLyBPdmVycmlkZSB0aGUgeHhsYXJnZSBkaWFsb2cgdG8gYSBiaWcsIEZJWEVEIHNpemUgdGhhdCBuZXZlciBkZXBlbmRzIG9uIHRoZVxuICAgIC8vIHBob3RvIOKAlCB0aGlzIGlzIHRoZSBjb3JlIGZpeCBmb3IgXCJ0aGUgbW9kYWwganVtcHMgYXJvdW5kIG9uIHByZXYvbmV4dFwiLlxuICAgIC8vICh2aC92dyBoZXJlIGJlaGF2ZSBsaWtlIHRoZSBtb2RhbCdzIG93biBleGlzdGluZyBjYWxjKDEwMHZoLTQ4cHgpIHJ1bGVzLilcbiAgICAmLm1vZGFsLXNpemUteHhsYXJnZSAubW9kYWwtZGlhbG9nIHtcbiAgICAgICAgbWF4LXdpZHRoOiBtaW4oMTQwMHB4LCA5NXZ3KTtcbiAgICAgICAgd2lkdGg6IDk1dnc7XG4gICAgICAgIGhlaWdodDogbWluKDkwMHB4LCBjYWxjKDEwMHZoIC0gNDhweCkpO1xuICAgIH1cbiAgICAvLyBUaGUgd2luZG93IGlzIGEgZmxleCBjb2x1bW47IHRoZSBib2R5IG11c3QgTk9UIHNjcm9sbCAodGhlIGhlcm8gZmlsbHMsIG9ubHlcbiAgICAvLyB0aGUgY29tbWVudCBsaXN0IHNjcm9sbHMgaW50ZXJuYWxseSkg4oCUIG92ZXJyaWRlIHRoZSB4eGxhcmdlIGJvZHkgZGVmYXVsdC5cbiAgICAubW9kYWwtYm9keSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIGdhcDogMDtcbiAgICB9XG5cbiAgICAucGctbGItc3RhZ2Uge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOyAgICAgICAgICAvLyBoZXJvIGZpbGxzIHRoZSBmdWxsIHN0YWdlIGhlaWdodFxuICAgICAgICBnYXA6IHZhcigtLXMtMywgMTJweCk7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvOyAgICAgICAgICAgICAgICAvLyB0YWtlIGFsbCByZW1haW5pbmcgY29sdW1uIGhlaWdodFxuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgIH1cblxuICAgIC8vIEhlcm8gPSB0aGUgRklYRUQtc2l6ZSBwaG90byBhcmVhLiBUaGUgdmlld3BvcnQgY2xpcHM7IHRoZSBpbWFnZSBpc1xuICAgIC8vIG9iamVjdC1maXQ6Y29udGFpbiBzbyBhbnkgYXNwZWN0IHJhdGlvIGZpbGxzIHRoZSBzcGFjZSAoc21hbGwgUzMgcGhvdG9zXG4gICAgLy8gbm93IHJlbmRlciBsYXJnZSBpbnN0ZWFkIG9mIHRodW1ibmFpbC1zaXplZCkuXG4gICAgLnBnLWxiLWhlcm8ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgfVxuICAgIC5wZy1sYi12aWV3cG9ydCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTMsIDEycHgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1ob3ZlciwgI2Y0ZjVmYik7XG4gICAgfVxuICAgIC5wZy1sYi12aWV3cG9ydC5wZy16b29tZWQgeyBjdXJzb3I6IGdyYWI7IH1cbiAgICAucGctbGItdmlld3BvcnQucGctcGFubmluZyB7IGN1cnNvcjogZ3JhYmJpbmc7IH1cbiAgICAucGctbGItaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTIwbXMgZWFzZS1vdXQ7XG4gICAgICAgIC8vIE5vIHRyYW5zaXRpb24gd2hpbGUgYWN0aXZlbHkgcGFubmluZyAod291bGQgbGFnIGJlaGluZCB0aGUgY3Vyc29yKS5cbiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIC13ZWJraXQtdXNlci1kcmFnOiBub25lO1xuICAgIH1cbiAgICAucGctbGItdmlld3BvcnQucGctcGFubmluZyAucGctbGItaW1nIHsgdHJhbnNpdGlvbjogbm9uZTsgfVxuXG4gICAgLy8gQ3Jvc3MtZGlzc29sdmUgb3ZlcmxheTogYSBzZWNvbmQgaW1hZ2UgbGF5ZXIgc3RhY2tlZCBvbiB0b3Agb2YgdGhlIGJhc2UsXG4gICAgLy8gY2VudHJlZCBpZGVudGljYWxseSAoYWJzb2x1dGUgKyBpbnNldDowICsgbWFyZ2luOmF1dG8gYWdhaW5zdCB0aGUgZml4ZWRcbiAgICAvLyB2aWV3cG9ydCDihpIgc2FtZSBmaXR0ZWQgYm94IGFzIHRoZSBmbGV4LWNlbnRyZWQgYmFzZSwgc28gaXQgb3ZlcmxhcHMgZXhhY3RseSkuXG4gICAgLy8gVHJhbnNwYXJlbnQgYnkgZGVmYXVsdDsgZmFkZXMgaW4gd2hlbiAucGctb3ZlcmxheS1zaG93IGlzIGFkZGVkLCB0aGVuIHRoZVxuICAgIC8vIEpTIGNvcGllcyBpdCBkb3duIG9udG8gdGhlIGJhc2UuIE5ldmVyIHpvb21lZC9wYW5uZWQg4oCUIHB1cmVseSBhIHRyYW5zaXRpb25cbiAgICAvLyBsYXllci4gWzIwMjYtMDctMjBdXG4gICAgLnBnLWxiLW92ZXJsYXkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjYwbXMgZWFzZTtcbiAgICAgICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTtcbiAgICB9XG4gICAgLnBnLWxiLW92ZXJsYXkucGctb3ZlcmxheS1zaG93IHsgb3BhY2l0eTogMTsgfVxuICAgIC8vIFJlc3BlY3QgcmVkdWNlZC1tb3Rpb246IG5vIGZhZGUgKHRoZSBKUyBhbHNvIGhhcmQtc2V0cyBpbiB0aGF0IGNhc2UsIHRoaXMgaXNcbiAgICAvLyB0aGUgYmVsdC1hbmQtc3VzcGVuZGVycyBDU1Mgc2lkZSkuXG4gICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAgICAgLnBnLWxiLW92ZXJsYXkgeyB0cmFuc2l0aW9uOiBub25lOyB9XG4gICAgfVxuXG4gICAgLy8gRmxvYXRpbmcgem9vbS9mdWxsc2NyZWVuIHRvb2xiYXIg4oCUIEZJWEVEIHRvcC1yaWdodCBvZiB0aGUgaGVyby5cbiAgICAucGctbGItaGVyby10b29scyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiB2YXIoLS1zLTIsIDhweCk7XG4gICAgICAgIHJpZ2h0OiB2YXIoLS1zLTIsIDhweCk7XG4gICAgICAgIHotaW5kZXg6IDQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgICAgcGFkZGluZzogM3B4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXBpbGwsIDk5OXB4KTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxMSwgMTEsIDEzLCAwLjU1KTtcbiAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDZweCk7XG4gICAgfVxuICAgIC5wZy1sYi1oZXJvLXRvb2xzIHFkbmFwcm8taWNvbi1idG4geyBjb2xvcjogI2ZmZmZmZjsgfVxuICAgIC5wZy1sYi1oZXJvLXRvb2xzIHFkbmFwcm8taWNvbi1idG46aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpOyB9XG4gICAgLnBnLWxiLWhlcm8tdG9vbHMgLnBnLWJ0bi1kaW0geyBvcGFjaXR5OiAwLjQ7IHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gICAgLnBnLWxiLXpvb20tbGV2ZWwge1xuICAgICAgICBtaW4td2lkdGg6IDQ0cHg7XG4gICAgICAgIHBhZGRpbmc6IDRweCA2cHg7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMiwgOHB4KTtcbiAgICB9XG4gICAgLnBnLWxiLXpvb20tbGV2ZWw6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpOyB9XG5cbiAgICAucGctbGItYXJyb3cge1xuICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlLCByZ2JhKDY0LCA3MywgMTU0LCAwLjEwKSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7ICAgICAgICAgICAgLy8gdmVydGljYWxseSBjZW50ZXJlZCBhZ2FpbnN0IHRoZSB0YWxsIGhlcm9cbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxODBtcyBlYXNlLCB0cmFuc2Zvcm0gMTgwbXMgZWFzZTtcbiAgICB9XG4gICAgLnBnLWxiLWFycm93OmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtMTAwLCByZ2JhKDY0LCA3MywgMTU0LCAwLjIwKSk7IHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7IH1cblxuICAgIC5wZy1sYi1tZXRhIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7ICAgICAgICAgICAgIC8vIEZJWEVEIHBvc2l0aW9ucyDigJQgbmV2ZXIgcmUtd3JhcCBwZXIgcGhvdG9cbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1zLTMsIDEycHgpO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1zLTMsIDEycHgpO1xuICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tcy0zLCAxMnB4KTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQsICNlNmU5ZWYpO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjcyODApO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICB9XG4gICAgLy8gVGhlIHRleHQgbWV0YSBncm91cCBzaHJpbmtzL2VsbGlwc2lzZXM7IHRoZSBmbGFnIGNvbnRyb2xzIHN0YXkgcGlubmVkIHJpZ2h0LlxuICAgIC5wZy1sYi1tZXRhLXRleHQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogdmFyKC0tcy0zLCAxMnB4KTtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG4gICAgLnBnLWxiLXBvc2l0aW9uIHsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMWExZjRkKTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAgIC5wZy1sYi11c2VyOmVtcHR5LCAucGctbGItZGF0ZTplbXB0eSwgLnBnLWxiLW5vZGU6ZW1wdHksIC5wZy1sYi1sb2NhdGlvbjplbXB0eSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuICAgIC8vIFZlcmJlcmdlbiAoMjAyNi0wOC0xNSkg4oCUIGhlcmtvbXN0cmVnZWwgYmlqIGVlbiB2ZXJib3JnZW4gZm90bzogd2llLCB3YW5uZWVyXG4gICAgLy8gZW4gd2Fhcm9tLiBTdGFhdCBiZXd1c3QgaW4gZGV6ZWxmZGUgbWV0YXJlZ2VsIChnZWVuIGVpZ2VuIGJhbGspOiBoZXQgaXNcbiAgICAvLyBjb250ZXh0IGJpaiBkZSBmb3RvLCBnZWVuIHdhYXJzY2h1d2luZy5cbiAgICAucGctbGItaGlkZGVuLWluZm8ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAycHggOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTEsIDRweCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLWhvdmVyLCAjZjBmMWYyKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1zdWJ0bGUsICM1YjYwNzApO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbiAgICAucGctbGItaGlkZGVuLWluZm86ZW1wdHkgeyBkaXNwbGF5OiBub25lOyB9XG5cbiAgICAvLyBGYXNlIDJhIOKAlCBwZXJzb25hbCBmbGFncyAoZmF2b3JpdGUgLyBzdGFyLXJhdGluZyAvIGZsYWcgdG9nZ2xlKS4gUGlubmVkIHRvXG4gICAgLy8gdGhlIGZhciByaWdodCBzbyBjb3VudGVyL0NvbGxlY3Rvci9WcmFhZy9GYXYvc3RlciBrZWVwIGEgRklYRUQgcG9zaXRpb24uXG4gICAgLnBnLWxiLWZhc2UyLXNsb3Qge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1zLTIsIDhweCk7XG4gICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tcy0zLCAxMnB4KTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQsICNlNmU5ZWYpO1xuICAgIH1cbiAgICAucGctbGItcmF0aW5nIHtcbiAgICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICB9XG5cbiAgICAvLyBGYXNlIDJiIChtdWx0aSkg4oCUIGNsYXNzaWZpY2F0aW9uIHJvdzogYSBUYWcgYnV0dG9uIChETVMgbGF2ZW5kZXIgc3R5bGUpICtcbiAgICAvLyB0aGUgY2hvc2VuIGNsYXNzaWZpY2F0aW9ucyBhcyBzbWFsbCBwaWxscywgb24gaXRzIE9XTiBsaW5lIGFib3ZlIHRoZSBhY3Rpb25zLlxuICAgIC5wZy1sYi1jbGFzc2lmeS1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogdmFyKC0tcy0yLCA4cHgpO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1zLTMsIDEycHgpO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICB9XG4gICAgLnBnLWxiLWNsYXNzaWZ5LWJ0bi5xZG5hcHJvLWljb24tYnRuIHsgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKTsgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7IGZsZXg6IDAgMCBhdXRvOyB9XG4gICAgLnBnLWxiLWNsYXNzaWZ5LWJ0bi5xZG5hcHJvLWljb24tYnRuOmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHsgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNTApOyB9XG4gICAgLnBnLWxiLWNsYXNzaWZ5LXBpbGxzIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZmxleC13cmFwOiB3cmFwOyBnYXA6IDRweDsgfVxuICAgIC5wZy1sYi1jbGFzc2lmeS1ub25lIHsgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzg4OTBiOCk7IGZvbnQtc2l6ZTogMTIuNXB4OyB9XG5cbiAgICAucGctbGItYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXMtMywgMTJweCk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogdmFyKC0tcy0yLCA4cHgpO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICB9XG4gICAgLnBnLWxiLWRvd25sb2FkIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IH1cblxuICAgIC8vIEZhc2UgMmMg4oCUIHNtYWxsIGNvdW50IGJhZGdlIG9uIHRoZSBjb21tZW50cy10b2dnbGUgYWN0aW9uIGJ1dHRvbixcbiAgICAvLyBtaXJyb3JpbmcgdGhlIGdyaWQncyAucGctY2VsbC1jb21tZW50cyBjaGlwIHZpc3VhbGx5IChkYXJrIHBpbGwsIHdoaXRlXG4gICAgLy8gdGV4dCkgYnV0IHBvc2l0aW9uZWQgYXMgYSBjb3JuZXIgYmFkZ2Ugc2luY2UgdGhpcyBzaXRzIGluIGEgaG9yaXpvbnRhbFxuICAgIC8vIGFjdGlvbiByb3csIG5vdCBhIHBob3RvIGNvcm5lci5cbiAgICAucGctbGItY29tbWVudHMtdG9nZ2xlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAmW2RhdGEtY291bnRdOm5vdChbZGF0YS1jb3VudD1cIlwiXSk6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1jb3VudCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IC00cHg7XG4gICAgICAgICAgICByaWdodDogLTRweDtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTVweDtcbiAgICAgICAgICAgIGhlaWdodDogMTVweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgM3B4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1waWxsLCA5OTlweCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gICAgICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE1cHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZhc2UgMmMg4oCUIFNIQVJFRC90ZWFtIGNvbW1lbnRzIHBhbmVsLiBGbGF0IGxpc3QgKG5vIHRocmVhZGluZyBpbiB2MTtcbiAgICAvLyBwYXJlbnRfaWQgc3RheXMgdW51c2VkKS4gQ29sbGFwc2VkIGJ5IGRlZmF1bHQgdW5kZXIgdGhlIG1ldGEgcm93LlxuICAgIC5wZy1sYi1jb21tZW50cy1wYW5lbCB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXMtMywgMTJweCk7XG4gICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1zLTMsIDEycHgpO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCwgI2U2ZTllZik7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgICAgICZbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICB9XG5cbiAgICAucGctbGItY29tbWVudHMtbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tcy0zLCAxMnB4KTtcbiAgICAgICAgbWF4LWhlaWdodDogMjIwcHg7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXMtMywgMTJweCk7XG4gICAgfVxuXG4gICAgLnBnLWNvbW1lbnRzLWVtcHR5LCAucGctY29tbWVudHMtbG9hZGluZyB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICB9XG5cbiAgICAucGctY29tbWVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBnYXA6IHZhcigtLXMtMiwgOHB4KTtcbiAgICB9XG4gICAgLnBnLWNvbW1lbnQtYXZhdGFyIHsgZmxleC1zaHJpbms6IDA7IG1hcmdpbi10b3A6IDJweDsgfVxuICAgIC5wZy1jb21tZW50LWJvZHkgeyBmbGV4OiAxIDEgYXV0bzsgbWluLXdpZHRoOiAwOyB9XG4gICAgLnBnLWNvbW1lbnQtaGVhZCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICAgICAgZ2FwOiB2YXIoLS1zLTIsIDhweCk7XG4gICAgfVxuICAgIC5wZy1jb21tZW50LWF1dGhvciB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMWExZjRkKTtcbiAgICB9XG4gICAgLnBnLWNvbW1lbnQtZGF0ZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG4gICAgfVxuICAgIC8vIFRoZSBkZWxldGUgYnV0dG9uIHJpZGVzIGF0IHRoZSBlbmQgb2YgdGhlIGhlYWQgcm93IHZpYSBtYXJnaW4tbGVmdDphdXRvXG4gICAgLy8gcmF0aGVyIHRoYW4gYSBzZXBhcmF0ZSBhYnNvbHV0ZSBwb3NpdGlvbiDigJQgdGhlIHJvdyBhbHJlYWR5IGhhcyByb29tLlxuICAgIC5wZy1sYi1jb21tZW50LWRlbGV0ZSB7IG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gICAgLnBnLWNvbW1lbnQtbWVzc2FnZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjMzMzYTRkKTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIH1cblxuICAgIC5wZy1sYi1jb21tZW50cy1jb21wb3NlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICBnYXA6IHZhcigtLXMtMiwgOHB4KTtcbiAgICB9XG4gICAgLnBnLWxiLWNvbW1lbnQtaW5wdXQgeyBmbGV4OiAxIDEgYXV0bzsgbWluLXdpZHRoOiAwOyB9XG5cbiAgICAvLyAtLS0tIEZVTExTQ1JFRU4gbW9kZSAtLS0tXG4gICAgLy8gQmxvd3MgdGhlIGZyYW1lIHRvIGZpbGwgdGhlIHdob2xlIG1vZGFsIChiYWNrZHJvcCA9IGZ1bGwgdmlld3BvcnQpLCBkYXJrXG4gICAgLy8gaW1tZXJzaXZlIGNocm9tZS4gVXNlcyB3aWR0aC9oZWlnaHQ6MTAwJSBhZ2FpbnN0IHRoZSBiYWNrZHJvcCAoTk9UIDEwMHZ3L3ZoKVxuICAgIC8vIHNvIHRoZSBtb2RhbCdzIHpvb206MS4yNSBjYW4ndCBvdmVyZmxvdyBpdC4gUHJldi9uZXh0L3NsaWRlc2hvdy96b29tIGFsbCBrZWVwXG4gICAgLy8gd29ya2luZzsgRXNjYXBlIHN0aWxsIGNsb3Nlcy4gW0phbiAyMDI2LTA3LTExXVxuICAgICYucGctbGItZnVsbHNjcmVlbi1vbiAubW9kYWwtYmFja2Ryb3Age1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktOTUwKTtcbiAgICB9XG4gICAgJi5wZy1sYi1mdWxsc2NyZWVuLW9uIC5tb2RhbC1kaWFsb2cge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTk1MCk7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuICAgICYucGctbGItZnVsbHNjcmVlbi1vbiAubW9kYWwtd2luZG93IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktOTUwKTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG4gICAgLy8gRGFyayB2aWV3cG9ydCArIGxpZ2h0IG1ldGEgdGV4dCBzbyBwaG90b3MgcG9wIGFnYWluc3QgYmxhY2suXG4gICAgJi5wZy1sYi1mdWxsc2NyZWVuLW9uIC5wZy1sYi12aWV3cG9ydCB7IGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS05NTApOyB9XG4gICAgJi5wZy1sYi1mdWxsc2NyZWVuLW9uIC5tb2RhbC10aXRsZSB7IGNvbG9yOiB2YXIoLS1jLWdyZXktNTApOyB9XG4gICAgJi5wZy1sYi1mdWxsc2NyZWVuLW9uIC5wZy1sYi1tZXRhLFxuICAgICYucGctbGItZnVsbHNjcmVlbi1vbiAucGctbGItcG9zaXRpb24geyBjb2xvcjogdmFyKC0tYy1ncmV5LTUwKTsgfVxuICAgICYucGctbGItZnVsbHNjcmVlbi1vbiAucGctbGItbWV0YSxcbiAgICAmLnBnLWxiLWZ1bGxzY3JlZW4tb24gLnBnLWxiLWNsYXNzaWZ5LXJvdyxcbiAgICAmLnBnLWxiLWZ1bGxzY3JlZW4tb24gLnBnLWxiLWNvbW1lbnRzLXBhbmVsIHsgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KTsgfVxuICAgICYucGctbGItZnVsbHNjcmVlbi1vbiAucGctbGItZmFzZTItc2xvdCB7IGJvcmRlci1sZWZ0LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpOyB9XG4gICAgLy8gVGhlIGJvdHRvbSBhY3Rpb24gdG9vbGJhciAoY29tbWVudHMgLyBzbGlkZXNob3cgLyBzaGFyZSAvIGFubm90YXRlIC8gZG93bmxvYWQpXG4gICAgLy8gdXNlcyB0eXBlPVwic3VidGxlXCIgaWNvbi1idG5zIHdob3NlIGljb24gY29sb3VyIGlzIG5lYXItYmxhY2sg4oCUIGludmlzaWJsZSBvblxuICAgIC8vIHRoZSBibGFjayBmdWxsc2NyZWVuIGNocm9tZS4gTWFrZSB0aGVtIHdoaXRlIGluIGZ1bGxzY3JlZW4gKHNhbWUgdHJlYXRtZW50XG4gICAgLy8gYXMgdGhlIGZsb2F0aW5nIGhlcm8gdG9vbGJhciBhYm92ZSkuIEljb25zIHVzZSBjdXJyZW50Q29sb3IsIHNvIGNvbG91cmluZ1xuICAgIC8vIHRoZSBob3N0IGNhc2NhZGVzIGluLiBbMjAyNi0wNy0yMF1cbiAgICAmLnBnLWxiLWZ1bGxzY3JlZW4tb24gLnBnLWxiLWFjdGlvbnMgcWRuYXByby1pY29uLWJ0biB7IGNvbG9yOiAjZmZmZmZmOyB9XG4gICAgJi5wZy1sYi1mdWxsc2NyZWVuLW9uIC5wZy1sYi1hY3Rpb25zIHFkbmFwcm8taWNvbi1idG46aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpOyB9XG59XG5cbi8vIEZhc2UgMmIgKG11bHRpKSDigJQgdGhlIGNsYXNzaWZpY2F0aW9uIHBpY2tlciBNT0RBTCAocmV1c2VzIHRoZSBETVMgXCJUYWdzIHZhbiBkaXRcbi8vIGRvY3VtZW50XCIgY2hlY2tsaXN0IHBhdHRlcm46IGEgY2hlY2tib3ggKyBjb2xvdXJlZCBwaWxsIHBlciBncm91cCkuIEJvZHktYXBwZW5kZWRcbi8vIHFkbmFwcm8tbW9kYWwsIHNjb3BlZCBieSBjbGFzcy5cbnFkbmFwcm8tbW9kYWwucGctY2xhc3NpZnktcGlja2VyIHtcbiAgICAucGctY2xhc3NpZnktbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG1heC1oZWlnaHQ6IDQ0dmg7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgfVxuICAgIC5wZy1jbGFzc2lmeS1jaGVjay1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDdweCA0cHg7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICAgIC5wZy1jbGFzc2lmeS1jaGVjay1yb3c6bGFzdC1jaGlsZCB7IGJvcmRlci1ib3R0b206IG5vbmU7IH1cbiAgICAucGctY2xhc3NpZnktY2hlY2stcm93IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7IHdpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7IGN1cnNvcjogcG9pbnRlcjsgYWNjZW50LWNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSk7IH1cbiAgICAucGctY2xhc3NpZnktZW1wdHkge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjcyODApO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgfVxufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvcGhvdG8tdGlsZS9fcGhvdG8tdGlsZS1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIHFkbmFwcm8tcGhvdG8tdGlsZSBjb21waWxlZCBDU1NcbiAgIEV4dHJhY3RlZCBmcm9tIHFkbmEtbW9kYWwtcHJldmlldy5odG1sIChLaW0gMjAyNi0wNS0yOSkgc28gdGhlXG4gICBidW5kbGUgc2hpcHMgcGhvdG8tdGlsZSBzdHlsaW5nLiBLZWVwIGluIGxvY2tzdGVwIHdpdGggdGhlXG4gICBpbmxpbmUgY29weSBpbiBxZG5hLXBob3RvLXRpbGUtcHJldmlldy5odG1sIC8gcWRuYS1tb2RhbC1wcmV2aWV3Lmh0bWwuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5xZG5hcHJvLXBob3RvLXRpbGUge1xuICAtLWMtdGlsZS1yYWRpdXM6IDhweDtcbiAgLS1jLXRpbGUtcmluZy1yYWRpdXM6IDEycHg7XG4gIC0tYy10aWxlLXJpbmc6IHZhcigtLWMtYWN0aW9uLTUwMCk7XG4gIC0tYy10aWxlLW92ZXJsYXk6IHJnYmEoMTA3LCAxMTQsIDEyOCwgMC4zMCk7XG4gIC0tYy1mb2N1cy1yaW5nOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAtLWMtZm9jdXMtZ2xvdzogcmdiYSg3MCwgODIsIDI0MywgMC4yNSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWMtdGlsZS1yYWRpdXMpO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDEyMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG4ucWRuYXByby1waG90by10aWxlIC5waG90by10aWxlLWltYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jLXRpbGUtcmFkaXVzKTtcbiAgLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAvKiBTYW1lIGRlc2F0dXJhdGUgdHJlYXRtZW50IGFzIC5wcm9qZWN0LWNhcmQtcGhvdG8gc28gdGlsZXNcbiAgICAgbWF0Y2ggdGhlIHJlc3Qgb2YgdGhlIFVJJ3MgcGhvdG8gYWVzdGhldGljIChLaW0gMjAyNi0wNS0yOSkuICovXG4gIGZpbHRlcjogc2F0dXJhdGUoMC40NSkgYnJpZ2h0bmVzcygwLjkpO1xufVxuLyogRGFyayBncmFkaWVudCBvdmVybGF5IGFsb25nIHRoZSBib3R0b20gb2YgdGhlIHRpbGUg4oCUIG1hdGNoZXMgdGhlXG4gICBgLnByb2plY3QtY2FyZC1waG90bzo6YWZ0ZXJgIHJ1bGUgc28gdGlsZSArIGNhcmQgc2hhcmUgb25lIHZpc3VhbFxuICAgbGFuZ3VhZ2UuIFBhaW50ZWQgYXMgYW4gZW1wdHkgPHNwYW4+IHNpYmxpbmcgc28gaXQgZG9lc24ndCBjb25mbGljdFxuICAgd2l0aCB0aGUgdGlsZSdzIG93biA6OmJlZm9yZSAoaG92ZXIgb3ZlcmxheSkgYW5kIDo6YWZ0ZXIgKHJpbmcpLlxuICAgKEtpbSAyMDI2LTA1LTI5KSAqL1xuLnFkbmFwcm8tcGhvdG8tdGlsZSAucGhvdG8tdGlsZS1ncmFkaWVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWMtdGlsZS1yYWRpdXMpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgdG8gYm90dG9tLFxuICAgIHJnYmEoMjIsIDI1LCA3NSwgMCkgMCUsXG4gICAgcmdiYSgyMiwgMjUsIDc1LCAwLjI1KSA1MCUsXG4gICAgcmdiYSgyMiwgMjUsIDc1LCAwLjc4KSAxMDAlXG4gICk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tcGhvdG8tdGlsZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYy10aWxlLXJhZGl1cyk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtdGlsZS1vdmVybGF5KTtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTQwbXMgZWFzZTtcbn1cbi5xZG5hcHJvLXBob3RvLXRpbGU6aG92ZXI6bm90KC5waG90by10aWxlLWRpc2FibGVkKTo6YmVmb3JlIHsgb3BhY2l0eTogMTsgfVxuLnFkbmFwcm8tcGhvdG8tdGlsZTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAtM3B4O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYy10aWxlLXJpbmctcmFkaXVzKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAxNjBtcyBlYXNlO1xufVxuLnFkbmFwcm8tcGhvdG8tdGlsZS5waG90by10aWxlLXNlbGVjdGVkOjphZnRlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy10aWxlLXJpbmcpO1xufVxuLyogU2VsZWN0ZWQgdGlsZXMgYWxzbyBnZXQgdGhlIGZvY3VzLWdsb3cgYm94LXNoYWRvdyBzbyB0aGUgc2VsZWN0aW9uXG4gICBpcyB2aXN1YWxseSB1bm1pc3Rha2FibGUg4oCUIHdpdGhvdXQgdGhlIGdsb3cgdGhlIDFweCByaW5nIGlzIGVhc3lcbiAgIHRvIG1pc3MgYWdhaW5zdCBidXN5IHBob3Rvcy4gKEtpbSAyMDI2LTA1LTI5KSAqL1xuLnFkbmFwcm8tcGhvdG8tdGlsZS5waG90by10aWxlLXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDAgMCAycHggdmFyKC0tYy1mb2N1cy1yaW5nKSxcbiAgICAwIDAgMCA2cHggdmFyKC0tYy1mb2N1cy1nbG93KTtcbn1cbi5xZG5hcHJvLXBob3RvLXRpbGU6YWN0aXZlOm5vdCgucGhvdG8tdGlsZS1kaXNhYmxlZCkge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTcpO1xufVxuLnFkbmFwcm8tcGhvdG8tdGlsZTphY3RpdmU6bm90KC5waG90by10aWxlLWRpc2FibGVkKTo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZDpcbiAgICBsaW5lYXItZ3JhZGllbnQocmdiYSgwLCAwLCAwLCAwLjE1KSwgcmdiYSgwLCAwLCAwLCAwLjE1KSksXG4gICAgdmFyKC0tYy10aWxlLW92ZXJsYXkpO1xufVxuLnFkbmFwcm8tcGhvdG8tdGlsZTpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IH1cbi5xZG5hcHJvLXBob3RvLXRpbGU6Zm9jdXMtdmlzaWJsZSxcbi5xZG5hcHJvLXBob3RvLXRpbGUuZm9yY2UtZm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OlxuICAgIDAgMCAwIDJweCB2YXIoLS1jLWZvY3VzLXJpbmcpLFxuICAgIDAgMCAwIDZweCB2YXIoLS1jLWZvY3VzLWdsb3cpO1xufVxuLnFkbmFwcm8tcGhvdG8tdGlsZS5waG90by10aWxlLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC41O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLXBob3RvLXRpbGUucGhvdG8tdGlsZS1zbWFsbCB7XG4gIHdpZHRoOiA4N3B4O1xuICBoZWlnaHQ6IDY1cHg7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tcGhvdG8tdGlsZSB7XG4gIC0tYy10aWxlLXJpbmc6ICNhNWFjZmY7XG4gIC0tYy10aWxlLW92ZXJsYXk6IHJnYmEoMCwgMCwgMCwgMC40MCk7XG4gIC0tYy1mb2N1cy1yaW5nOiAjYTVhY2ZmO1xuICAtLWMtZm9jdXMtZ2xvdzogcmdiYSg3MCwgODIsIDI0MywgMC40MCk7XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9waWNrZXItdGlsZS9fcGlja2VyLXRpbGUtY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLnFkbmFwcm8tcGlja2VyLXRpbGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdC0yKTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMTIwbXMgZWFzZSwgYm94LXNoYWRvdyAyMDBtcyBlYXNlLCB0cmFuc2Zvcm0gMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlO1xufVxuLnFkbmFwcm8tcGlja2VyLXRpbGU6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDIwLCAyNSwgODAsIDAuMDQpLCAwIDhweCAxOHB4IHJnYmEoMjAsIDI1LCA4MCwgMC4wOCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbn1cbi5xZG5hcHJvLXBpY2tlci10aWxlOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5xZG5hcHJvLXBpY2tlci10aWxlOmZvY3VzLXZpc2libGUge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbn1cbi5xZG5hcHJvLXBpY2tlci10aWxlLnBpY2tlci10aWxlLXNlbGVjdGVkIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpO1xuICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSg3MCwgODIsIDI0MywgMC4xOCksIDAgNHB4IDE0cHggcmdiYSgyMCwgMjUsIDgwLCAwLjEpO1xufVxuLnFkbmFwcm8tcGlja2VyLXRpbGUucGlja2VyLXRpbGUtc2VsZWN0ZWQgLnBpY2tlci10aWxlLXRpdGxlIHtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG4ucWRuYXByby1waWNrZXItdGlsZS5waWNrZXItdGlsZS1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4ucWRuYXByby1waWNrZXItdGlsZSAucGlja2VyLXRpbGUtdGh1bWIge1xuICBoZWlnaHQ6IDExMHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1jLWJnLWNhcmQtaG92ZXIpIDAlLCB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpIDEwMCUpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAganVzdGlmeS1jb250ZW50OiBzdHJldGNoO1xuICBwYWRkaW5nOiAxMnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucWRuYXByby1waWNrZXItdGlsZSAucGlja2VyLXRpbGUtYm9keSB7XG4gIHBhZGRpbmc6IDEycHggMTRweCAxNHB4O1xufVxuLnFkbmFwcm8tcGlja2VyLXRpbGUgLnBpY2tlci10aWxlLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nKTtcbiAgbWFyZ2luOiAwIDAgMnB4O1xufVxuLnFkbmFwcm8tcGlja2VyLXRpbGUgLnBpY2tlci10aWxlLWRlc2Mge1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCk7XG4gIG1hcmdpbjogMDtcbn1cblxuLnFkbmFwcm8tcGlja2VyLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XG4gIGdhcDogMTJweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAucWRuYXByby1waWNrZXItZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnFkbmFwcm8tcGlja2VyLWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXBpY2tlci10aWxlIHtcbiAgYmFja2dyb3VuZDogIzJhMmQzNjtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICBjb2xvcjogI2UxZTNlNjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXBpY2tlci10aWxlOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjYTVhY2ZmO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tcGlja2VyLXRpbGUucGlja2VyLXRpbGUtc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDE2NSwgMTcyLCAyNTUsIDAuMSk7XG4gIGJvcmRlci1jb2xvcjogI2E1YWNmZjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXBpY2tlci10aWxlLnBpY2tlci10aWxlLXNlbGVjdGVkIC5waWNrZXItdGlsZS10aXRsZSB7XG4gIGNvbG9yOiAjYTVhY2ZmO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tcGlja2VyLXRpbGUgLnBpY2tlci10aWxlLXRodW1iIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzJlMzIzZCAwJSwgIzJhMmQzNiAxMDAlKTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXBpY2tlci10aWxlIC5waWNrZXItdGlsZS10aXRsZSB7XG4gIGNvbG9yOiAjZjBmMWYyO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tcGlja2VyLXRpbGUgLnBpY2tlci10aWxlLWRlc2Mge1xuICBjb2xvcjogI2E2YWFiMztcbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUuIENvbXBpbGVkIGludG8gc3R5bGUtdjEuY3NzIHZpYVxuLy8gYGd1bHAgc2Fzcy12MWAgKGJhY2tvZmZpY2UyL3Njc3MvY29tcG9uZW50cy9jb21wb25lbnRzLnNjc3MgQHVzZSdzIHRoaXNcbi8vIGZpbGUpLiBFZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2sg4oCUIG5ldmVyIGhhbmQtZWRpdCB0aGUgY29tcGlsZWRcbi8vIENTUy4gRkxBVCBzZWxlY3RvcnMgb24gcHVycG9zZSAobm8gU0NTUyBuZXN0aW5nKSwgbWF0Y2hpbmcgdGhlIHNpYmxpbmdcbi8vIHYyIGNvbXBvbmVudCBmaWxlcyAoX3Rhc2tsaXN0LWNhcmQuc2NzcywgX2FjdGl2aXR5LXJvdy5zY3NzKS5cbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLXBpY2tlci1yb3dcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFVuaXZlcnNhbCBwYW5lbC9waWNrZXIgcm93ICh1c2VycywgbG9jYXRpb25zLCB0YXNrbGlzdHMg4oCUIEtpbSxcbi8vICAxNi4wNy4yMDI2KS4gUmVwbGFjZXMgdGhlIHJvbGUgb2YgdGhlIGhhbmQtcm9sbGVkIGAucHBhbmVsLXJvd2AgaW4gdGhlXG4vLyAgUGxhbm5lciBwYWdlIChiYWNrb2ZmaWNlMi9zcmMvUkVYL0JhY2tvZmZpY2UvVmlldy92MS9wbGFubmVyL2luZGV4Lmh0bWwpXG4vLyAgd2l0aCBvbmUgcmVhbCBjb21wb25lbnQuXG4vL1xuLy8gIFJvdyBoZWlnaHQgaXMgYSBGSVhFRCB2YWx1ZSBwZXIgdmFyaWFudCAobm90IGVtZXJnZW50IGZyb20gdGV4dFxuLy8gIG1ldHJpY3MpLCBzbyBwYW5lbHMgbmV2ZXIgaml0dGVyOiB+NDBweCB3aXRoIG5vIG1ldGEsIH40OHB4IHdpdGggbWV0YS5cbi8vXG4vLyAgTGVmdCBhY2NlbnQgYmFyOiBpZGVudGljYWwgcmVjaXBlIHRvIHFkbmFwcm8tYWN0aXZpdHktcm93J3Ncbi8vICAucm93LWFjY2VudC1iYXIgLyBxZG5hcHJvLWFuc3dlci1vcHRpb24ncyBkcmFnIGhhbmRsZSDigJQgYWJzb2x1dGUsXG4vLyAgIzQ2NTJmMywgb3BhY2l0eSAwIC0+IDEsIDE1MG1zIGVhc2UuIFBhZGRpbmctbGVmdCBvbiB0aGUgcm93IHJlc2VydmVzXG4vLyAgdGhlIGJhcidzIGNsZWFyYW5jZSBzbyB0aGVyZSBpcyB6ZXJvIGxheW91dCBzaGlmdCBvbiBob3Zlci5cbi8vXG4vLyAgSG92ZXIgYmFja2dyb3VuZDogYSBGTEFUIHRpbnQgKCNmNWY2ZjggbGlnaHQgLyByZ2JhKDI1NSwyNTUsMjU1LDAuMDYpXG4vLyAgZGFyayksIE5PVCB0aGUgYWN0aXZpdHktcm93IGdsYXNzLWNhcmQgc3dhcC4gVGhpcyByb3cgbGl2ZXMgb24gYSBzb2xpZFxuLy8gIHdoaXRlIHBhbmVsIGJhY2tncm91bmQgKC5wbGFubmVyLXBhbmVsKSwgc28gaXQgYm9ycm93cyB0aGUgXCJob3VzZVxuLy8gIGxpc3Qtcm93IGNvbnZlbnRpb25cIiBpbnN0ZWFkIOKAlCB0aGUgc2FtZSBmbGF0IGhvdmVyIHFkbmFwcm8tbWVudS1pdGVtXG4vLyAgKC0tbWktYmctaG92ZXIpIGFuZCBxZG5hcHJvLXRhc2tsaXN0LWNhcmQncyBgbGlzdGAgdmFyaWFudCBhbHJlYWR5IHVzZVxuLy8gIGZvciByb3dzIG9uIGEgd2hpdGUgc3VyZmFjZS4gT25seSB0aGUgQUNDRU5UIEJBUiBtZWNoYW5pY3MgYXJlIGNvcGllZFxuLy8gIGZyb20gYWN0aXZpdHktcm93LCBub3QgaXRzIGdsYXNzIGJhY2tncm91bmQgKHRoYXQgdHJlYXRtZW50IGlzIGZvciBhXG4vLyAgdHJhbnNsdWNlbnQgY2FyZCBmbG9hdGluZyBvdmVyIGEgY29sb3JlZCBjYW52YXMsIHdoaWNoIHRoaXMgaXMgbm90KS5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5xZG5hcHJvLXBpY2tlci1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDZweCA4cHggNnB4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNTBtcyBlYXNlLCBib3JkZXItY29sb3IgMTUwbXMgZWFzZTtcblxuICAgIC8vIEZvY3VzIHJpbmcgdG9rZW5zIOKAlCBvdmVycmlkZGVuIGluIGRhcmsgbW9kZSBiZWxvdy5cbiAgICAtLXByLWZvY3VzLXJpbmc6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gICAgLS1wci1mb2N1cy1nbG93OiByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbn1cblxucWRuYXByby1waWNrZXItcm93ICogLFxucWRuYXByby1waWNrZXItcm93ICo6OmJlZm9yZSxcbnFkbmFwcm8tcGlja2VyLXJvdyAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLy8gTWV0YSBsaW5lIHByZXNlbnQg4oCUIHRoZSByb3cgZ3Jvd3MgdG8gYSBmaXhlZCA0OHB4IChzZWUgZG9jYmxvY2sgYWJvdmUpLlxucWRuYXByby1waWNrZXItcm93LnByLWhhcy1tZXRhIHtcbiAgICBtaW4taGVpZ2h0OiA0OHB4O1xufVxuXG5xZG5hcHJvLXBpY2tlci1yb3c6aG92ZXIsXG5xZG5hcHJvLXBpY2tlci1yb3cuZm9yY2UtaG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZC1ob3Zlcik7XG59XG5cbnFkbmFwcm8tcGlja2VyLXJvdzpmb2N1cy13aXRoaW4ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZC1ob3Zlcik7XG59XG5cbnFkbmFwcm8tcGlja2VyLXJvdzpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1wci1mb2N1cy1yaW5nKSwgMCAwIDAgNXB4IHZhcigtLXByLWZvY3VzLWdsb3cpO1xufVxuXG4vLyAtLS0tIERyYWcgU09VUkNFIChRRE5BIFBsYW5uZXIgZmFzZSBBIOKAlCBkcmFnZ2FibGUtcm93IGF0dHJpYnV0ZSkgLS0tLVxuLy8gTmF0aXZlIEhUTUw1IERuRCwgc291cmNlIHNpZGUgb25seSAoc2VlIHFkbmEtcGlja2VyLXJvdy5qcyBkb2NibG9jaykuXG4vLyBbZHJhZ2dhYmxlPVwidHJ1ZVwiXSBtaXJyb3JzIHRoZSBkcmFnZ2FibGUtcm93IGF0dHJpYnV0ZSAxOjEgKGtlcHQgaW4gc3luY1xuLy8gYnkgdGhlIGNvbXBvbmVudCdzIF9zeW5jRHJhZ2dhYmxlKCkpLCBzbyB0aGlzIHN0eWxlcyBwdXJlbHkgb2ZmIHRoZVxuLy8gbmF0aXZlIGF0dHJpYnV0ZSwgbm8gZXh0cmEgY2xhc3MgbmVlZGVkIGF0IHJlc3QuXG5xZG5hcHJvLXBpY2tlci1yb3dbZHJhZ2dhYmxlPVwidHJ1ZVwiXSB7XG4gICAgY3Vyc29yOiBncmFiO1xufVxuXG5xZG5hcHJvLXBpY2tlci1yb3cuaXMtZHJhZ2dpbmcge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuXG4vLyAtLS0tIExlZnQgYWNjZW50IGJhciAtLS0tXG4vLyBSZWFsIERPTSBlbGVtZW50IChub3QgOjpiZWZvcmUpIOKAlCBzZWUgZG9jYmxvY2suIG92ZXJmbG93OmhpZGRlbiBvbiB0aGVcbi8vIGhvc3QgY2xpcHMgaXQgdG8gdGhlIHJvdydzIGJvcmRlci1yYWRpdXMuXG5cbi5wci1hY2NlbnQtYmFyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNHB4O1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB3aWR0aDogNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWFjdGlvbi01MDApO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgZWFzZTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4OiAxO1xufVxuXG5xZG5hcHJvLXBpY2tlci1yb3c6aG92ZXIgLnByLWFjY2VudC1iYXIsXG5xZG5hcHJvLXBpY2tlci1yb3c6Zm9jdXMtd2l0aGluIC5wci1hY2NlbnQtYmFyLFxucWRuYXByby1waWNrZXItcm93LmZvcmNlLWhvdmVyIC5wci1hY2NlbnQtYmFyIHtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4vLyAtLS0tIExlYWRpbmcgc2xvdDogYXZhdGFyL3RpbGUgPC0+IG9wdGlvbnMgYnV0dG9uIG1vcnBoIC0tLS1cbi8vIEZpeGVkIDI4eDI4IGJveC4gQm90aCBjaGlsZHJlbiBhcmUgYWJzb2x1dGVseSBwb3NpdGlvbmVkIElOU0lERSBpdCBhbmRcbi8vIGNyb3NzZmFkZSB2aWEgb3BhY2l0eSDigJQgc2FtZSBmb290cHJpbnQsIHNvIG5vdGhpbmcgZWxzZSBpbiB0aGUgcm93XG4vLyByZWZsb3dzIHdoZW4gdGhlIG1vcnBoIGhhcHBlbnMuXG5cbi5wci1sZWFkaW5nIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIGZsZXg6IG5vbmU7XG59XG5cbi5wci12aXN1YWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGVhc2U7XG59XG5cbi5wci12aXN1YWwgcWRuYXByby1hdmF0YXIge1xuICAgIGZsZXg6IG5vbmU7XG59XG5cbi8vIHFkbmFwcm8tYnV0dG9uIHNpemU9XCJjb21wYWN0XCIgaWNvbi1vbmx5IElTIDI4eDI4IChzZWVcbi8vIF9idXR0b24uc2NzcyAuYnV0dG9uLXNpemUtY29tcGFjdC5idXR0b24taWNvbi1vbmx5KSDigJQgbm8gZXh0cmEgc2l6aW5nXG4vLyBvdmVycmlkZXMgbmVlZGVkLCBpdCBkcm9wcyBzdHJhaWdodCBpbnRvIHRoZSAyOHgyOCBzbG90LlxuLnByLW9wdGlvbnMtYnRuIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGVhc2U7XG59XG5cbnFkbmFwcm8tcGlja2VyLXJvdzpob3ZlciAucHItdmlzdWFsLFxucWRuYXByby1waWNrZXItcm93OmZvY3VzLXdpdGhpbiAucHItdmlzdWFsLFxucWRuYXByby1waWNrZXItcm93LmZvcmNlLWhvdmVyIC5wci12aXN1YWwge1xuICAgIG9wYWNpdHk6IDA7XG59XG5cbnFkbmFwcm8tcGlja2VyLXJvdzpob3ZlciAucHItb3B0aW9ucy1idG4sXG5xZG5hcHJvLXBpY2tlci1yb3c6Zm9jdXMtd2l0aGluIC5wci1vcHRpb25zLWJ0bixcbnFkbmFwcm8tcGlja2VyLXJvdy5mb3JjZS1ob3ZlciAucHItb3B0aW9ucy1idG4ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbi8vIC0tLS0gVGFza2xpc3QgdGlsZSAtLS0tXG4vLyAyOHgyOCwgNnB4IHJhZGl1cyDigJQgaWRlbnRpY2FsIGZvb3RwcmludCB0byBxZG5hcHJvLXRhc2tsaXN0LWNhcmQnc1xuLy8gYGxpc3RgIHZhcmlhbnQgLnRsYy10aWxlICgyOHgyOCAvIDZweCkuIEljb24gaW5zaWRlIGlzXG4vLyBxZG5hcHJvLWFjdGl2aXR5LWljb24gc2l6ZSAyMCwgc2FtZSBhcyB0bGMtbGlzdCdzIGljb24gc2l6aW5nLlxuXG4ucHItdGlsZSB7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcHItdGlsZS1iZywgI2VlZjBmMik7XG59XG5cbi8vIENvbG9yIHBhbGV0dGUgbWlycm9ycyBxZG5hcHJvLXRhc2tsaXN0LWNhcmQncyB0bGMtY29sb3ItKiB0b2tlbnMgMToxXG4vLyAoc291cmNlIG9mIHRydXRoOiBzY3NzL2NvbXBvbmVudHMvdjIvdGFza2xpc3QtY2FyZC9fdGFza2xpc3QtY2FyZC5zY3NzLFxuLy8gdGhlIHFkbmFwcm8tdGFnIGxpZ2h0LXBhc3RlbCBwYWxldHRlKSBzbyBhIHRhc2tsaXN0IHJlYWRzIHdpdGggdGhlIEVYQUNUXG4vLyBzYW1lIHRpbGUgY29sb3Igd2hldGhlciBpdCdzIHRoZSBmdWxsIGNhcmQgb3IgdGhpcyBwaWNrZXIgcm93LiBObyBzaGFyZWRcbi8vIFNDU1MgbWFwL21peGluIGV4aXN0cyBmb3IgdGhpcyBwYWxldHRlIGFueXdoZXJlIGluIHRoZSBjb2RlYmFzZSB5ZXRcbi8vICh0YWcsIGxhYmVsLWNpcmNsZSwgYWN0aXZpdHktY2FyZCwgaW5mby1jYXJkIGFuZCB0YXNrbGlzdC1jYXJkIGVhY2hcbi8vIG1pcnJvciB0aGVpciBvd24gY29weSB0aGUgc2FtZSB3YXkpIOKAlCBmb2xsb3dpbmcgdGhhdCBlc3RhYmxpc2hlZFxuLy8gcGF0dGVybiByYXRoZXIgdGhhbiBpbnZlbnRpbmcgYSBuZXcgc2hhcmVkIG1vZHVsZSBmb3Igb25lIGNvbXBvbmVudC5cbi5wci10aWxlLWNvbG9yLWdyZXkgICAgICAgIHsgLS1wci10aWxlLWJnOiB2YXIoLS1jLWdyZXktNTApOyB9XG4ucHItdGlsZS1jb2xvci1yZWQgICAgICAgICB7IC0tcHItdGlsZS1iZzogdmFyKC0tYy1zaWduYWwtcmVkLWJnKTsgfVxuLnByLXRpbGUtY29sb3IteWVsbG93ICAgICAgeyAtLXByLXRpbGUtYmc6IHZhcigtLWMtY2hpcC15ZWxsb3ctYmcpOyB9XG4ucHItdGlsZS1jb2xvci1ncmVlbiAgICAgICB7IC0tcHItdGlsZS1iZzogdmFyKC0tYy1jaGlwLWdyZWVuLWJnKTsgfVxuLnByLXRpbGUtY29sb3ItYmx1ZSAgICAgICAgeyAtLXByLXRpbGUtYmc6IHZhcigtLWMtc2lnbmFsLWJsdWUtYmcpOyB9XG4ucHItdGlsZS1jb2xvci1icmlnaHQtYmx1ZSB7IC0tcHItdGlsZS1iZzogdmFyKC0tYy1jaGlwLWJyaWdodC1ibHVlLTItYmcpOyB9XG4ucHItdGlsZS1jb2xvci1waW5rICAgICAgICB7IC0tcHItdGlsZS1iZzogdmFyKC0tYy1zaWduYWwtcGluay1iZyk7IH1cbi5wci10aWxlLWNvbG9yLXB1cnBsZSAgICAgIHsgLS1wci10aWxlLWJnOiB2YXIoLS1jLWNoaXAtcHVycGxlLWJnKTsgfVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucHItdGlsZS1jb2xvci1ncmV5ICAgICAgICB7IC0tcHItdGlsZS1iZzogIzQwNDQ0ZDsgfVxuW2RhdGEtdGhlbWU9ZGFya10gLnByLXRpbGUtY29sb3ItcmVkICAgICAgICAgeyAtLXByLXRpbGUtYmc6ICM1YTJiMmI7IH1cbltkYXRhLXRoZW1lPWRhcmtdIC5wci10aWxlLWNvbG9yLXllbGxvdyAgICAgIHsgLS1wci10aWxlLWJnOiAjNWE0ZDFmOyB9XG5bZGF0YS10aGVtZT1kYXJrXSAucHItdGlsZS1jb2xvci1ncmVlbiAgICAgICB7IC0tcHItdGlsZS1iZzogIzJhNTU0NDsgfVxuW2RhdGEtdGhlbWU9ZGFya10gLnByLXRpbGUtY29sb3ItYmx1ZSAgICAgICAgeyAtLXByLXRpbGUtYmc6ICMyZTNlNTQ7IH1cbltkYXRhLXRoZW1lPWRhcmtdIC5wci10aWxlLWNvbG9yLWJyaWdodC1ibHVlIHsgLS1wci10aWxlLWJnOiAjM2E0YThhOyB9XG5bZGF0YS10aGVtZT1kYXJrXSAucHItdGlsZS1jb2xvci1waW5rICAgICAgICB7IC0tcHItdGlsZS1iZzogIzRlMmEzNjsgfVxuW2RhdGEtdGhlbWU9ZGFya10gLnByLXRpbGUtY29sb3ItcHVycGxlICAgICAgeyAtLXByLXRpbGUtYmc6ICMzYTM1NTU7IH1cblxuLy8gLS0tLSBCb2R5OiBsYWJlbCAoKyBvcHRpb25hbCBtZXRhKSAtLS0tXG5cbi5wci1ib2R5IHtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiAxcHg7XG59XG5cbi5wci1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMy41cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcpO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBsaW5lLWhlaWdodDogMS4zO1xufVxuXG4ucHItbWV0YSB7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG5cbi8vIC0tLS0gUmVkdWNlZCBtb3Rpb246IGNyb3NzZmFkZSBiZWNvbWVzIGFuIGluc3RhbnQgc3dhcCAtLS0tXG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLnByLWFjY2VudC1iYXIsXG4gICAgLnByLXZpc3VhbCxcbiAgICAucHItb3B0aW9ucy1idG4sXG4gICAgcWRuYXByby1waWNrZXItcm93IHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgRGFyayBtb2RlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuW2RhdGEtdGhlbWU9ZGFya10gcWRuYXByby1waWNrZXItcm93IHtcbiAgICAtLXByLWZvY3VzLXJpbmc6ICNhNWFjZmY7XG4gICAgLS1wci1mb2N1cy1nbG93OiByZ2JhKDcwLCA4MiwgMjQzLCAwLjQwKTtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gcWRuYXByby1waWNrZXItcm93OmhvdmVyLFxuW2RhdGEtdGhlbWU9ZGFya10gcWRuYXByby1waWNrZXItcm93OmZvY3VzLXdpdGhpbixcbltkYXRhLXRoZW1lPWRhcmtdIHFkbmFwcm8tcGlja2VyLXJvdy5mb3JjZS1ob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnByLWxhYmVsIHsgY29sb3I6ICNmMGYxZjI7IH1cbltkYXRhLXRoZW1lPWRhcmtdIC5wci1tZXRhICB7IGNvbG9yOiAjYTBhNGI4OyB9XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9wbGFjZWhvbGRlci1pbWFnZS9fcGxhY2Vob2xkZXItaW1hZ2UtY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLyogcWRuYXByby1wbGFjZWhvbGRlci1pbWFnZSDigJQgaG9zdCArIGltZyBzdHlsaW5nLlxuICAgTWlycm9ycyB0aGUgcWRuYXByby1pbGx1c3RyYXRpb24gYXBwcm9hY2g6IHdpZHRoLWRyaXZlbiB3aXRoIGF1dG8gaGVpZ2h0LFxuICAgcGx1cyBhbiBvcHRpb25hbCBjb3ZlciBtb2RlIGFuZCBhIHNvZnQgbWlzc2luZy1hc3NldCBmYWxsYmFjay4gKi9cblxuLnFkbmFwcm8tcGxhY2Vob2xkZXItaW1hZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwKTtcbn1cblxuLnFkbmFwcm8tcGxhY2Vob2xkZXItaW1hZ2UgLnBsYWNlaG9sZGVyLWltYWdlLWltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKiBDb3ZlciBtb2RlOiBjb25zdW1lciBzZXRzIHdpZHRoICsgaGVpZ2h0IG9uIHRoZSBob3N0LCBpbWFnZSBmaWxscyBpdC4gKi9cbi5xZG5hcHJvLXBsYWNlaG9sZGVyLWltYWdlLnBsYWNlaG9sZGVyLWltYWdlLWNvdmVyIHtcbiAgICBsaW5lLWhlaWdodDogMDtcbn1cbi5xZG5hcHJvLXBsYWNlaG9sZGVyLWltYWdlLnBsYWNlaG9sZGVyLWltYWdlLWNvdmVyIC5wbGFjZWhvbGRlci1pbWFnZS1pbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cblxuLyogTWlzc2luZyBhc3NldDogc29mdCBkYXNoZWQgcGxhY2Vob2xkZXIgaW5zdGVhZCBvZiBhIGJyb2tlbi1pbWFnZSBpY29uLiAqL1xuLnFkbmFwcm8tcGxhY2Vob2xkZXItaW1hZ2UucGxhY2Vob2xkZXItaW1hZ2UtbWlzc2luZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1pbi1oZWlnaHQ6IDgwcHg7XG4gICAgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLWMtZ3JleS0zMDApO1xuICAgIGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHZhcigtLWMtYmctY2FyZC1ob3ZlciksIHZhcigtLWMtYmctY2FyZC1ob3ZlcikgOHB4LCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIpIDhweCwgdmFyKC0tYy1ib3JkZXItc29mdC0yKSAxNnB4KTtcbn1cbiIsIi8vIHFkbmFwcm8tcHJvZ3Jlc3Mg4oCUIHRoaW4gbGFiZWxsZWQgcHJvZ3Jlc3MgYmFyLlxuLy8gRkxBVCBDU1M7IGNvbG91cnMvcmFkaWkgZnJvbSB0aGUgZGVzaWduLXRva2VuIDpyb290ICh2YXIoLS1jLSopIC8gLS1yLSopLlxuLy8gRWRpdCBIRVJFLCB0aGVuIHJ1biBgZ3VscCBzYXNzLXYxYCAobGlicmFyeSkgKyB0aGUgc3luYyAoUFdBKS5cblxuLnFkbmFwcm8tcHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1mb250LWZhbWlseSwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcbiAgLS1wZy1maWxsOiB2YXIoLS1jLXN1Y2Nlc3MtYnJpZ2h0KTtcbiAgLS1wZy10cmFjazogdmFyKC0tYy1ibGFjay0xMik7XG59XG5cbi5xZG5hcHJvLXByb2dyZXNzLnByb2dyZXNzLXRvbmUtcHVycGxlICAgIHsgLS1wZy1maWxsOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7IH1cbi5xZG5hcHJvLXByb2dyZXNzLnByb2dyZXNzLXRvbmUtbmV1dHJhbCAgIHsgLS1wZy1maWxsOiB2YXIoLS1jLWdyZXktNTAwKTsgfVxuLnFkbmFwcm8tcHJvZ3Jlc3MucHJvZ3Jlc3MtdG9uZS1oaWdobGlnaHQgeyAtLXBnLWZpbGw6IHZhcigtLWMtcHVycGxlLWhpZ2hsaWdodCk7IH1cblxuLnFkbmFwcm8tcHJvZ3Jlc3MgLnByb2dyZXNzLWhlYWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xufVxuXG4ucWRuYXByby1wcm9ncmVzcyAucHJvZ3Jlc3MtbGFiZWwge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xufVxuXG4ucWRuYXByby1wcm9ncmVzcyAucHJvZ3Jlc3MtcGN0IHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHkpO1xufVxuXG4ucWRuYXByby1wcm9ncmVzcyAucHJvZ3Jlc3MtdHJhY2sge1xuICBoZWlnaHQ6IDZweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tcGctdHJhY2spO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXBpbGwpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ucWRuYXByby1wcm9ncmVzcyAucHJvZ3Jlc3MtZmlsbCB7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tcGctZmlsbCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItcGlsbCk7XG4gIC8vIFNwcmluZyBlYXNpbmc6IGZpbGwgb3ZlcnNob290cyBzbGlnaHRseSBiZWZvcmUgc2V0dGxpbmcg4oCUIGdpdmVzIGEgcHJlbWl1bSwgYWxpdmUgZmVlbC5cbiAgdHJhbnNpdGlvbjogd2lkdGggMC42cyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zOCkgNTAlLCB0cmFuc3BhcmVudCAxMDAlKTtcbiAgICBhbmltYXRpb246IHByb2dyZXNzLXNoaW1tZXIgMi40cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHByb2dyZXNzLXNoaW1tZXIge1xuICAwJSAgIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpOyB9XG59XG5cbi8vIFJlc3BlY3QgdGhlIE9TLWxldmVsIHJlZHVjZWQtbW90aW9uIHByZWZlcmVuY2U6IGtpbGwgYm90aCB0aGUgc3ByaW5nXG4vLyB0cmFuc2l0aW9uIG9uIHRoZSBmaWxsIGFuZCB0aGUgc2hpbW1lciBzd2VlcCwgc28gYSB2YWx1ZSBjaGFuZ2UgKGUuZy4gdGhlXG4vLyBQV0EgZm9ybS1jYXJkJ3Mgc3RpY2t5IHByb2dyZXNzIGJhciBhZHZhbmNpbmcgYmV0d2VlbiBjYXJkcykgc25hcHNcbi8vIGluc3RhbnRseSBpbnN0ZWFkIG9mIGFuaW1hdGluZy4gQWRkaXRpdmUg4oCUIGV2ZXJ5IGNvbnN1bWVyIGJlbmVmaXRzLCBub1xuLy8gYXR0cmlidXRlIG5lZWRlZC4gWzEwLjA3LjIwMjYsIGZvcm0tY2FyZCByZXdvcmtdXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAucWRuYXByby1wcm9ncmVzcyAucHJvZ3Jlc3MtZmlsbCB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuICAucWRuYXByby1wcm9ncmVzcyAucHJvZ3Jlc3MtZmlsbDo6YWZ0ZXIge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxufVxuXG4vLyBJbmRldGVybWluYXRlIOKAlCBcImJ1c3ksIGFtb3VudCB1bmtub3duXCIgKGUuZy4gYSB2aWRlbyBidWZmZXJpbmcgYmVmb3JlIGl0c1xuLy8gZHVyYXRpb24vdG90YWwgaXMga25vd24pLiBBIHBhcnRpYWwgZmlsbCBzbGlkZXMgYWNyb3NzIHRoZSB0cmFjayBvbiByZXBlYXQ7XG4vLyB2YWx1ZS9tYXggYXJlIGlnbm9yZWQgKEpTIGRyb3BzIHRoZSBpbmxpbmUgd2lkdGggc28gdGhpcyBvd25zIGl0KS4gQWRkaXRpdmUg4oCUXG4vLyBvbmx5IGFwcGxpZXMgd2hlbiB0aGUgYGluZGV0ZXJtaW5hdGVgIGF0dHJpYnV0ZSBpcyBzZXQuIFsxMS4wNy4yMDI2LCBETVMgdmlld2VyIGJ1ZmZlciBiYXJdXG4ucWRuYXByby1wcm9ncmVzcy5wcm9ncmVzcy1pbmRldGVybWluYXRlIC5wcm9ncmVzcy1maWxsIHtcbiAgd2lkdGg6IDQwJSAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBub25lO1xuICBhbmltYXRpb246IHByb2dyZXNzLWluZGV0ZXJtaW5hdGUtc2xpZGUgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cbkBrZXlmcmFtZXMgcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZS1zbGlkZSB7XG4gIDAlICAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEyMCUpOyB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzIwJSk7IH1cbn1cbi8vIFJlZHVjZWQgbW90aW9uOiBubyBzd2VlcCDigJQgc2hvdyBhIHN0YXRpYyBoYWxmLWZpbGxlZCwgZGltbWVkIGJhciBzbyBpdCBzdGlsbFxuLy8gcmVhZHMgYXMgXCJpbiBwcm9ncmVzcywgdW5rbm93biBhbW91bnRcIiB3aXRob3V0IGFuaW1hdGlvbi5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5xZG5hcHJvLXByb2dyZXNzLnByb2dyZXNzLWluZGV0ZXJtaW5hdGUgLnByb2dyZXNzLWZpbGwge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IC41O1xuICB9XG4gIC5xZG5hcHJvLXByb2dyZXNzLnByb2dyZXNzLWluZGV0ZXJtaW5hdGUgLnByb2dyZXNzLWZpbGw6OmFmdGVyIHsgYW5pbWF0aW9uOiBub25lOyB9XG59XG5cbi8vIEhpZ2hsaWdodCB2YXJpYW50IOKAlCB0aW50ZWQgcGFuZWwgbWF0Y2hpbmcgdGhlIHRvbmUsIHRhbGxlciBiYXIsIGJvbGRlciBsYWJlbC5cbi8vIERyYXdzIHRoZSBleWUgKGUuZy4gYSBwaW5uZWQgcHJvZ3Jlc3MgaGVhZGVyIG9uIHRoZSBwZXItdW5pdCBzY3JlZW4pLlxuLnFkbmFwcm8tcHJvZ3Jlc3MucHJvZ3Jlc3MtdmFyaWFudC1oaWdobGlnaHQge1xuICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItY2FyZCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmxhY2stMDYpO1xufVxuLnFkbmFwcm8tcHJvZ3Jlc3MucHJvZ3Jlc3MtdmFyaWFudC1oaWdobGlnaHQucHJvZ3Jlc3MtdG9uZS1zdWNjZXNzICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi1iZyk7IH1cbi5xZG5hcHJvLXByb2dyZXNzLnByb2dyZXNzLXZhcmlhbnQtaGlnaGxpZ2h0LnByb2dyZXNzLXRvbmUtcHVycGxlICAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zZWNvbmRhcnktcHVycGxlKTsgfVxuLnFkbmFwcm8tcHJvZ3Jlc3MucHJvZ3Jlc3MtdmFyaWFudC1oaWdobGlnaHQucHJvZ3Jlc3MtdG9uZS1uZXV0cmFsICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJsYWNrLTA2KTsgfVxuLnFkbmFwcm8tcHJvZ3Jlc3MucHJvZ3Jlc3MtdmFyaWFudC1oaWdobGlnaHQucHJvZ3Jlc3MtdG9uZS1oaWdobGlnaHQgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWFjdGlvbi0wOCk7IH1cbi5xZG5hcHJvLXByb2dyZXNzLnByb2dyZXNzLXZhcmlhbnQtaGlnaGxpZ2h0IC5wcm9ncmVzcy10cmFjayB7IGhlaWdodDogOHB4OyB9XG4ucWRuYXByby1wcm9ncmVzcy5wcm9ncmVzcy12YXJpYW50LWhpZ2hsaWdodCAucHJvZ3Jlc3MtbGFiZWwge1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHkpO1xufVxuLnFkbmFwcm8tcHJvZ3Jlc3MucHJvZ3Jlc3MtdmFyaWFudC1oaWdobGlnaHQgLnByb2dyZXNzLXBjdCB7IGZvbnQtc2l6ZTogMTVweDsgfVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvcHJvamVjdC1jYXJkL19wcm9qZWN0LWNhcmQtY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuQGNoYXJzZXQgXCJVVEYtOFwiO1xuLnFkbmFwcm8tcHJvamVjdC1jYXJkIHtcbiAgLS1jLWNhcmQtYmc6ICNmZmZmZmY7XG4gIC0tYy1jYXJkLWJvcmRlcjogdmFyKC0tYy1ib3JkZXItc29mdC0yKTtcbiAgLS1jLWNhcmQtZGl2aWRlcjogdmFyKC0tYy1ncmV5LTMwMCk7XG4gIC0tYy10ZXh0LWJvZHk6IHZhcigtLWMtZ3JleS05NTApO1xuICAtLWMtdGV4dC1zZWNvbmRhcnk6IHZhcigtLWMtZ3JleS01MDApO1xuICAtLWMtcGhvdG8tZmFsbGJhY2s6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0KSAwJSwgdmFyKC0tYy1jaGlwLXB1cnBsZS1iZykgMTAwJSk7XG4gIC8qIERlbnNpdHkgc2NhbGUga25vYjogMSA9IGRlZmF1bHQ7IFtkZW5zaXR5PWNvbXBhY3RdIHNldHMgMC44IHNvIHRoZVxuICAgICB3aG9sZSBhYnNvbHV0ZS1wb3NpdGlvbmVkIGxheW91dCAoc2l6ZXMsIHBvc2l0aW9ucywgZm9udHMpIHNjYWxlc1xuICAgICB1bmlmb3JtbHkgdG8gdGhlIDgwJSBsb29rIFdJVEhPVVQgdGhlIHpvb20gcHJvcGVydHkuIFtLaW0gMjAyNi0wNi0wM10gKi9cbiAgLS1wYy1zY2FsZTogMTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNhcmQtYmcpO1xuICBib3JkZXI6IGNhbGMoMXB4ICogdmFyKC0tcGMtc2NhbGUpKSBzb2xpZCB2YXIoLS1jLWNhcmQtYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogY2FsYygxMnB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm94LXNoYWRvdzogMCBjYWxjKDFweCAqIHZhcigtLXBjLXNjYWxlKSkgY2FsYygycHggKiB2YXIoLS1wYy1zY2FsZSkpIHJnYmEoMjAsIDI1LCA4MCwgMC4wNCksIDAgY2FsYyg2cHggKiB2YXIoLS1wYy1zY2FsZSkpIGNhbGMoMTZweCAqIHZhcigtLXBjLXNjYWxlKSkgcmdiYSgyMCwgMjUsIDgwLCAwLjA1KTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5KTtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc3lzdGVtLXVpLCBzYW5zLXNlcmlmO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTQwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgYm94LXNoYWRvdyAxNDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXTphY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTkpO1xuICBib3gtc2hhZG93OiAwIGNhbGMoMXB4ICogdmFyKC0tcGMtc2NhbGUpKSBjYWxjKDFweCAqIHZhcigtLXBjLXNjYWxlKSkgcmdiYSgyMCwgMjUsIDgwLCAwLjA0KSwgMCBjYWxjKDJweCAqIHZhcigtLXBjLXNjYWxlKSkgY2FsYyg2cHggKiB2YXIoLS1wYy1zY2FsZSkpIHJnYmEoMjAsIDI1LCA4MCwgMC4wNCk7XG59XG5cbi8qIOKaoO+4jyBgLnByb2plY3QtY2FyZC1tZW51W29wZW5dYCBNT0VUIGluIGRlemUgdWl0em9uZGVyaW5nIHN0YWFuLlxuICAgRWVuIG9wZW4ga2FhcnRtZW51IHdvcmR0IHVpdCBkZSBrYWFydCBnZXRpbGQgbWV0IGBwb3NpdGlvbjogZml4ZWRgIChkZSBrYWFydFxuICAga25pcHQgemljaHplbGYgYWYgbWV0IGBvdmVyZmxvdzogaGlkZGVuYCBoaWVyYm92ZW4pLiBFZW4gYHRyYW5zZm9ybWAgb3AgZWVuXG4gICB2b29yb3VkZXIgbWFha3QgZGllIHZvb3JvdWRlciBlY2h0ZXIgaGV0IHJlZmVyZW50aWVrYWRlciB2b29yIGVlbiBgZml4ZWRgXG4gICBraW5kIOKAlCBkdXMgem9kcmEgZGUga2FhcnQgYmlqIGhldCBJTkRSVUtLRU4gdmFuIGRlIG11aXNrbm9wIGBzY2FsZSgwLjk5KWBcbiAgIGtyZWVnLCBzcHJvbmcgaGV0IG9wZW4gbWVudSB3ZWcgdmFuIG9uZGVyIGRlIGN1cnNvciAoZ2VtZXRlbiAxMC4wOC4yMDI2OlxuICAgOTE5cHggbmFhciBsaW5rcywgYnVpdGVuIGhldCB2ZW5zdGVyKSBlbiB3ZXJkIGhldCBvb2sgbm9nIGdla25pcHQuIERlXG4gICBgbW91c2V1cGAgbGFuZGRlIGRhYXJkb29yIG9wIGRlIGthYXJ0Zm90byBpbiBwbGFhdHMgdmFuIG9wIGhldCBtZW51LWl0ZW0sIGRlXG4gICBicm93c2VyIHZ1dXJkZSBkZSBrbGlrIG9wIGRlIEtBQVJULCBlbiBwYWdpbmEncyBkaWUgZGUgaGVsZSBrYWFydCBrbGlrYmFhclxuICAgbWFrZW4gKFB1bHNlKSBuYXZpZ2VlcmRlbiB3ZWcgaW4gcGxhYXRzIHZhbiBoZXQgbWVudS1pdGVtIHVpdCB0ZSB2b2VyZW4uXG4gICBFZmZlY3Q6IGVsayBtZW51LWl0ZW0gd2FzIG1ldCBlZW4gZWNodGUgbXVpcyBvbmJydWlrYmFhciwgdGVyd2lqbCBlZW5cbiAgIGdlYXV0b21hdGlzZWVyZGUga2xpayAoaW5kcnVra2VuK2xvc2xhdGVuIGluIMOpw6luIGZyYW1lKSB3w6lsIHdlcmt0ZS5cbiAgIERlIGRyaWUgYDphY3RpdmVgLXVpdHpvbmRlcmluZ2VuIGhpZXJvbmRlciBiZXN0b25kZW4gYWwgb20gZGV6ZWxmZGUgcmVkZW47XG4gICBoZXQgb3BlbiBtZW51IHdhcyBzaW1wZWx3ZWcgdmVyZ2V0ZW4uICovXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXTphY3RpdmU6aGFzKC5wcm9qZWN0LWNhcmQtZmF2b3JpdGU6YWN0aXZlLFxuLnByb2plY3QtY2FyZC1tZW51LXRyaWdnZXI6YWN0aXZlLFxuLnByb2plY3QtY2FyZC1hY3Rpb246YWN0aXZlLFxuLnByb2plY3QtY2FyZC1tZW51W29wZW5dKSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgYm94LXNoYWRvdzogMCBjYWxjKDFweCAqIHZhcigtLXBjLXNjYWxlKSkgY2FsYygycHggKiB2YXIoLS1wYy1zY2FsZSkpIHJnYmEoMjAsIDI1LCA4MCwgMC4wNCksIDAgY2FsYyg2cHggKiB2YXIoLS1wYy1zY2FsZSkpIGNhbGMoMTZweCAqIHZhcigtLXBjLXNjYWxlKSkgcmdiYSgyMCwgMjUsIDgwLCAwLjA1KTtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF06Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgY2FsYygxcHggKiB2YXIoLS1wYy1zY2FsZSkpIGNhbGMoMnB4ICogdmFyKC0tcGMtc2NhbGUpKSByZ2JhKDIwLCAyNSwgODAsIDAuMDQpLCAwIGNhbGMoNnB4ICogdmFyKC0tcGMtc2NhbGUpKSBjYWxjKDE2cHggKiB2YXIoLS1wYy1zY2FsZSkpIHJnYmEoMjAsIDI1LCA4MCwgMC4wNSksIDAgMCAwIGNhbGMoNHB4ICogdmFyKC0tcGMtc2NhbGUpKSByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkIC5wcm9qZWN0LWNhcmQtZnJhbWUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IGNhbGMoMjA4cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC11cHBlci1jbGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IGNhbGMoNTBweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZCAucHJvamVjdC1jYXJkLXBob3RvIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IGNhbGMoMTI0cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0KTtcbiAgei1pbmRleDogMjtcbiAgZmlsdGVyOiBzYXR1cmF0ZSgwLjQ1KSBicmlnaHRuZXNzKDAuOSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA2MDBtcyBjdWJpYy1iZXppZXIoMC4zNCwgMS4wNSwgMC41LCAxKTtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkIC5wcm9qZWN0LWNhcmQtcGhvdG86OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgyMiwgMjUsIDc1LCAwKSAwJSwgcmdiYSgyMiwgMjUsIDc1LCAwLjI1KSA1MCUsIHJnYmEoMjIsIDI1LCA3NSwgMC43OCkgMTAwJSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1waG90by1wbGFjZWhvbGRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWMtcGhvdG8tZmFsbGJhY2spO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1oZWFkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogY2FsYyg0NHB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgcGFkZGluZzogY2FsYyg4cHggKiB2YXIoLS1wYy1zY2FsZSkpIGNhbGMoNDRweCAqIHZhcigtLXBjLXNjYWxlKSkgMCBjYWxjKDhweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHotaW5kZXg6IDE7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZCAucHJvamVjdC1jYXJkLWxvZ28ge1xuICBib3JkZXItcmFkaXVzOiBjYWxjKDRweCAqIHZhcigtLXBjLXNjYWxlKSkgIWltcG9ydGFudDtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkIC5wcm9qZWN0LWNhcmQtaGVhZGVyLWFjdGlvbnMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiBjYWxjKDRweCAqIHZhcigtLXBjLXNjYWxlKSk7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZCAucHJvamVjdC1jYXJkLW5hbWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMzJweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiBjYWxjKDU2cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgY2FsYyg4cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBmb250LXNpemU6IGNhbGMoMTZweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIGxpbmUtaGVpZ2h0OiBjYWxjKDI0cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHkpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgei1pbmRleDogMztcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDYwMG1zIGN1YmljLWJlemllcigwLjM0LCAxLjA1LCAwLjUsIDEpLCByaWdodCA2MDBtcyBjdWJpYy1iZXppZXIoMC4zNCwgMS4wNSwgMC41LCAxKTtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkIC5wcm9qZWN0LWNhcmQtb3JnIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMTYwcHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIGNhbGMoOHB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgZm9udC1zaXplOiBjYWxjKDEycHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBsaW5lLWhlaWdodDogY2FsYygyMHB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1zZWNvbmRhcnkpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgei1pbmRleDogMTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDYwMG1zIGN1YmljLWJlemllcigwLjM0LCAxLjA1LCAwLjUsIDEpO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1pbmZvIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMTg0cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiBjYWxjKDI4cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBwYWRkaW5nOiAwIGNhbGMoOHB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB6LWluZGV4OiAxO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNjAwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuMDUsIDAuNSwgMSk7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZCAucHJvamVjdC1jYXJkLXRlYW0ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkIC5wcm9qZWN0LWNhcmQtZGF0ZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IGNhbGMoNHB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1zZWNvbmRhcnkpO1xuICBmb250LXNpemU6IGNhbGMoMTBweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIGxpbmUtaGVpZ2h0OiBjYWxjKDIwcHggKiB2YXIoLS1wYy1zY2FsZSkpO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1kYXRlIHFkbmFwcm8taWNvbiB7XG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZCAucHJvamVjdC1jYXJkLXRvcC1hY3Rpb25zIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoOHB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgcmlnaHQ6IGNhbGMoOHB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgei1pbmRleDogNDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZCAucHJvamVjdC1jYXJkLWZhdm9yaXRlIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIC8vIENvbnN0cmFpbiB0byB0aGUgc2FtZSAzMnB4IGJhc2UgYXMgdGhlIG1lbnUtdHJpZ2dlciBzbyB0aGUgcGluIHNjYWxlc1xuICAvLyB3aXRoIC0tcGMtc2NhbGUgdG9nZXRoZXIgd2l0aCB0aGUgcmVzdCBvZiB0aGUgY2FyZC4gV2l0aG91dCB0aGlzIHRoZVxuICAvLyBxZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbiBjb21wb25lbnQncyBvd24gQ1NTIGtlZXBzIGl0IGF0IGl0cyBuYXRpdmUgMzJweFxuICAvLyB3aGlsZSB0aGUgcmVzdCBvZiB0aGUgY2FyZCBzaHJpbmtzIOKAlCBtYWtpbmcgdGhlIHBpbiBsb29rIG92ZXJzaXplZFxuICAvLyBhdCBkZW5zaXR5PVwiY29tcGFjdFwiLiBbS2ltIDIwMjYtMDYtMDNdXG4gIHdpZHRoOiBjYWxjKDMycHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBoZWlnaHQ6IGNhbGMoMzJweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NSk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cihjYWxjKDhweCAqIHZhcigtLXBjLXNjYWxlKSkpIHNhdHVyYXRlKDEuNSk7XG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKGNhbGMoOHB4ICogdmFyKC0tcGMtc2NhbGUpKSkgc2F0dXJhdGUoMS41KTtcbiAgYm94LXNoYWRvdzogMCBjYWxjKDFweCAqIHZhcigtLXBjLXNjYWxlKSkgY2FsYygzcHggKiB2YXIoLS1wYy1zY2FsZSkpIHJnYmEoMCwgMCwgMCwgMC4wOCksIDAgMCAwIGNhbGMoMXB4ICogdmFyKC0tcGMtc2NhbGUpKSByZ2JhKDAsIDAsIDAsIDAuMDQpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMTYwbXMgZWFzZTtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkIC5wcm9qZWN0LWNhcmQtZmF2b3JpdGU6bm90KC5mYXZvcml0ZS1idXR0b24tZmF2b3JpdGVkKSB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQ6aG92ZXIgLnByb2plY3QtY2FyZC1mYXZvcml0ZTpub3QoLmZhdm9yaXRlLWJ1dHRvbi1mYXZvcml0ZWQpLCAucWRuYXByby1wcm9qZWN0LWNhcmQ6Zm9jdXMtd2l0aGluIC5wcm9qZWN0LWNhcmQtZmF2b3JpdGU6bm90KC5mYXZvcml0ZS1idXR0b24tZmF2b3JpdGVkKSB7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1mYXZvcml0ZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZCAucHJvamVjdC1jYXJkLW1lbnUtdHJpZ2dlciB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB3aWR0aDogMCAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiAwO1xuICBoZWlnaHQ6IGNhbGMoMzJweCAqIHZhcigtLXBjLXNjYWxlKSkgIWltcG9ydGFudDtcbiAgbWluLWhlaWdodDogY2FsYygzMnB4ICogdmFyKC0tcGMtc2NhbGUpKSAhaW1wb3J0YW50O1xuICBtYXgtaGVpZ2h0OiBjYWxjKDMycHggKiB2YXIoLS1wYy1zY2FsZSkpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBtYXgtd2lkdGggMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgd2lkdGggMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgbWluLXdpZHRoIDIwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIG1hcmdpbi1sZWZ0IDIwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIG9wYWNpdHkgMTUwbXMgZWFzZSwgYmFja2dyb3VuZCAxMjBtcyBlYXNlO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQ6aG92ZXIgLnByb2plY3QtY2FyZC1tZW51LXRyaWdnZXIsIC5xZG5hcHJvLXByb2plY3QtY2FyZDpmb2N1cy13aXRoaW4gLnByb2plY3QtY2FyZC1tZW51LXRyaWdnZXIge1xuICB3aWR0aDogY2FsYygzMnB4ICogdmFyKC0tcGMtc2NhbGUpKSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6IGNhbGMoMzJweCAqIHZhcigtLXBjLXNjYWxlKSkgIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiBjYWxjKDMycHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBvcGFjaXR5OiAxO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoOHB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU1KSAhaW1wb3J0YW50O1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoY2FsYyg4cHggKiB2YXIoLS1wYy1zY2FsZSkpKSBzYXR1cmF0ZSgxLjUpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cihjYWxjKDhweCAqIHZhcigtLXBjLXNjYWxlKSkpIHNhdHVyYXRlKDEuNSk7XG4gIGJveC1zaGFkb3c6IDAgY2FsYygxcHggKiB2YXIoLS1wYy1zY2FsZSkpIGNhbGMoM3B4ICogdmFyKC0tcGMtc2NhbGUpKSByZ2JhKDAsIDAsIDAsIDAuMDgpLCAwIDAgMCBjYWxjKDFweCAqIHZhcigtLXBjLXNjYWxlKSkgcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkOmhvdmVyIC5wcm9qZWN0LWNhcmQtbWVudS10cmlnZ2VyOmhvdmVyLCAucWRuYXByby1wcm9qZWN0LWNhcmQ6Zm9jdXMtd2l0aGluIC5wcm9qZWN0LWNhcmQtbWVudS10cmlnZ2VyOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KSAhaW1wb3J0YW50O1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1kaXZpZGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IGNhbGMoNTBweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IGNhbGMoMXB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1jYXJkLWRpdmlkZXIpO1xuICB6LWluZGV4OiA0O1xufVxuXG4vKiBDaGVja2xpc3QgYWN0aW9uIOKAlCBoaWRkZW4gdW50aWwgdGhlIGJhY2tlbmQgZmVhdHVyZSBsYW5kcy5cbiAgIChLaW0gMjAyNi0wNS0zMCDigJQgcGxhY2Vob2xkZXIsIHJlLWVuYWJsZSB3aGVuIHRoZSBwYWdlIGV4aXN0cy4pICovXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1hY3Rpb24tbGlzdCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBBcmNoaXZlZCB2YXJpYW50IOKAlCBzZXQgdmlhIFthcmNoaXZlZF0gYXR0cmlidXRlIG9uIHRoZSBob3N0LlxuICAgUGhvdG8gaXMgaGVhdmlseSBkZXNhdHVyYXRlZCwgcGluLWJ1dHRvbiBpcyBoaWRkZW4sIGFcbiAgIFwiR2VhcmNoaXZlZXJkXCIgY2hpcCBzaXRzIHRvcC1sZWZ0LCBhbmQgYSBkaWFnb25hbCBHRUFSQ0hJVkVFUkRcbiAgIHdhdGVybWFyayBjcm9zc2VzIHRoZSBwaG90by4gKEtpbSAyMDI2LTA1LTI5KVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbYXJjaGl2ZWRdIHtcbiAgb3BhY2l0eTogMC44NTtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2FyY2hpdmVkXSAucHJvamVjdC1jYXJkLXBob3RvIHtcbiAgZmlsdGVyOiBzYXR1cmF0ZSgwLjE1KSBicmlnaHRuZXNzKDAuODUpO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbYXJjaGl2ZWRdIC5wcm9qZWN0LWNhcmQtZmF2b3JpdGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qIFN0YXR1cyBwaWxsIChzbG90PVwic3RhdHVzXCIpIOKAlCB0b3AtbGVmdCBvbiB0aGUgcGhvdG8sIGFib3ZlIHRoZSBwaG90byAoej0yKVxuICAgYW5kIG91dCBvZiB0aGUgd2F5IG9mIHRoZSBwaW4gKyBob3ZlciBtZW51LCB3aGljaCBvd24gdGhlIHRvcC1SSUdIVCBjb3JuZXIuXG4gICBUaGUgcGlsbCBpdHNlbGYgaXMgYSBxZG5hcHJvLXRhZyB2YXJpYW50PVwiZ2xhc3NcIiBoYW5kZWQgaW4gYnkgdGhlIGNvbnN1bWVyO1xuICAgdGhpcyBydWxlIG9ubHkgcGxhY2VzIGl0LiBOQiB0aGF0IHZhcmlhbnQgaXMgV0hJVEUgZ2xhc3MsIHdoaWxlIHRoZSBhcmNoaXZlZFxuICAgY2hpcCBiZWxvdyBpcyBkYXJrOiB0aGV5IHN0YXJ0ZWQgYXMgdGhlIHNhbWUgcmVjaXBlIGFuZCB3ZXJlIHNwbGl0IG9uXG4gICAxOS4wOC4yMDI2IGJlY2F1c2UgZGFyayByZWFkIHRvbyBoZWF2eSBvbiBhIFB1bHNlIHRpbGUuIFNjYWxlLWF3YXJlIGxpa2UgZXZlcnl0aGluZyBlbHNlIGluIHRoZSBjYXJkLCBzbyBpdFxuICAgc2hyaW5rcyBhbG9uZyBhdCBkZW5zaXR5PVwiY29tcGFjdFwiLiBbMTkuMDguMjAyNl1cbiAgIE5vdGUgaXQgc2l0cyBJTlNJREUgdGhlIHVwcGVyIGNsaXAsIHNvIGluIHRoZSBgY29tcGFjdGAgYW5pbWF0aW9uICh3aGVyZSB0aGVcbiAgIHBob3RvIHNsaWRlcyB1cCBvdXQgb2YgdmlldyBvbiBob3ZlcikgdGhlIHBpbGwgc3RheXMgcHV0IGFuZCBlbmRzIHVwIG92ZXIgdGhlXG4gICByZXZlYWxlZCBiYWNrIGxheWVyIOKAlCBzYW1lIGJlaGF2aW91ciBhcyB0aGUgYXJjaGl2ZWQgY2hpcCBiZWxvdy4gSW4gYG92ZXJsYXlgXG4gICAod2hhdCBQdWxzZSB1c2VzKSB0aGUgcGhvdG8gZG9lcyBub3QgbW92ZSwgc28gaXQgc3RheXMgb24gdGhlIHBob3RvLiAqL1xuLnFkbmFwcm8tcHJvamVjdC1jYXJkIC5wcm9qZWN0LWNhcmQtc3RhdHVzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoOHB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgbGVmdDogY2FsYyg4cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICB6LWluZGV4OiA0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkIC5wcm9qZWN0LWNhcmQtYXJjaGl2ZWQtY2hpcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDhweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIGxlZnQ6IGNhbGMoOHB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgei1pbmRleDogNDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogY2FsYyg0cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBwYWRkaW5nOiBjYWxjKDRweCAqIHZhcigtLXBjLXNjYWxlKSkgY2FsYyg5cHggKiB2YXIoLS1wYy1zY2FsZSkpIGNhbGMoNHB4ICogdmFyKC0tcGMtc2NhbGUpKSBjYWxjKDdweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIGJhY2tncm91bmQ6IHJnYmEoNDAsIDQyLCA1MiwgMC43Mik7XG4gIGJvcmRlcjogY2FsYygxcHggKiB2YXIoLS1wYy1zY2FsZSkpIHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgYm9yZGVyLXJhZGl1czogY2FsYyg5OTlweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cihjYWxjKDhweCAqIHZhcigtLXBjLXNjYWxlKSkpIHNhdHVyYXRlKDEuMik7XG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKGNhbGMoOHB4ICogdmFyKC0tcGMtc2NhbGUpKSkgc2F0dXJhdGUoMS4yKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICBmb250LXNpemU6IGNhbGMoMTFweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiBjYWxjKDE0cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBsZXR0ZXItc3BhY2luZzogY2FsYygwLjJweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1hcmNoaXZlZC1jaGlwIHFkbmFwcm8taWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgZmxleDogMCAwIGF1dG87XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZCAucHJvamVjdC1jYXJkLXdhdGVybWFyayB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgei1pbmRleDogMztcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKC0xOGRlZyk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmb250LXNpemU6IGNhbGMoMjJweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGxldHRlci1zcGFjaW5nOiBjYWxjKDRweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTUpO1xuICB0ZXh0LXNoYWRvdzogMCBjYWxjKDJweCAqIHZhcigtLXBjLXNjYWxlKSkgY2FsYyg2cHggKiB2YXIoLS1wYy1zY2FsZSkpIHJnYmEoMCwgMCwgMCwgMC40NSksIDAgMCBjYWxjKDFweCAqIHZhcigtLXBjLXNjYWxlKSkgcmdiYSgwLCAwLCAwLCAwLjYpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4vKiBTbG90PVwibWVudVwiIHFkbmFwcm8tbWVudSDigJQgc2l0cyBhcyBhIGZsb2F0aW5nIHBvcG92ZXIgYW5jaG9yZWRcbiAgIHRvIHRoZSAzLWRvdHMgdHJpZ2dlci4gSGlkZGVuIGJ5IGRlZmF1bHQ7IHRoZSBtZW51J3MgYG9wZW5gXG4gICBhdHRyaWJ1dGUgKHRvZ2dsZWQgYnkgcWRuYXByby1wcm9qZWN0LWNhcmQuX3RvZ2dsZU1lbnUpIHJldmVhbHNcbiAgIGl0LiAoS2ltIDIwMjYtMDUtMjkpICovXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoNDhweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIHJpZ2h0OiBjYWxjKDhweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIHotaW5kZXg6IDY7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZCAucHJvamVjdC1jYXJkLW1lbnVbb3Blbl0ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkIC5wcm9qZWN0LWNhcmQtYWN0aW9ucyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiBjYWxjKDUwcHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBwYWRkaW5nOiBjYWxjKDRweCAqIHZhcigtLXBjLXNjYWxlKSkgY2FsYyg4cHggKiB2YXIoLS1wYy1zY2FsZSkpIGNhbGMoOHB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB6LWluZGV4OiA0O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNhcmQtYmcpO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1hY3Rpb25zLWxlZnQge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiBjYWxjKDhweCAqIHZhcigtLXBjLXNjYWxlKSk7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZCAucHJvamVjdC1jYXJkLWFjdGlvbi1kYXRlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogY2FsYyg0cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LXNlY29uZGFyeSk7XG4gIGZvbnQtc2l6ZTogY2FsYygxMnB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgbGluZS1oZWlnaHQ6IGNhbGMoMjBweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZCAucHJvamVjdC1jYXJkLWFjdGlvbi1kYXRlIHFkbmFwcm8taWNvbiB7XG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZCAucHJvamVjdC1jYXJkLWFjdGlvbi1jb21tZW50cyxcbi5xZG5hcHJvLXByb2plY3QtY2FyZCAucHJvamVjdC1jYXJkLWFjdGlvbi1iZWxsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vKiBOb24taW50ZXJhY3RpdmUgYWN0aW9uIGluZGljYXRvcnMgKEtpbSAyMDI2LTA2LTAyKTogdGhlIGxpZ2h0YnVsYiAodGFza1xuICAgY291bnQpICsgYmVsbCBoYXZlIG5vIGJlaGF2aW91ciB5ZXQsIHNvIHRoZXkgcmVhZCBhcyBzdGF0aWMgaW5mbyDigJQgbm9cbiAgIGhvdmVyIGhpZ2hsaWdodCwgbm8gaGFuZC1jdXJzb3Ig4oCUIHVudGlsIGludGVyYWN0aW9uIGlzIGJ1aWx0LiBQYWlyZWQgd2l0aFxuICAgdGFiaW5kZXggLTEgKyBhIGNsaWNrIGd1YXJkIGluIEpTIHNvIHRoZXkgYXJlIG5laXRoZXIgZm9jdXNhYmxlIG5vclxuICAgY2xpY2thYmxlLiAhaW1wb3J0YW50IGJlYXRzIHRoZSBxZG5hcHJvLWJ1dHRvbiA6aG92ZXIvY3Vyc29yIHJ1bGVzLiAqL1xuLnFkbmFwcm8tcHJvamVjdC1jYXJkIC5wcm9qZWN0LWNhcmQtYWN0aW9uLXN0YXRpYyB7XG4gIGN1cnNvcjogZGVmYXVsdCAhaW1wb3J0YW50O1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1hY3Rpb24tc3RhdGljOmhvdmVyLFxuLnFkbmFwcm8tcHJvamVjdC1jYXJkIC5wcm9qZWN0LWNhcmQtYWN0aW9uLXN0YXRpYzphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1iYWRnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDhweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIHJpZ2h0OiBjYWxjKDZweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIHdpZHRoOiBjYWxjKDhweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIGhlaWdodDogY2FsYyg4cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtd2Fybi1yZWQtNTAwKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPWNvbXBhY3RdIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1jb21wYWN0XSAucHJvamVjdC1jYXJkLWhlYWRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPWNvbXBhY3RdIC5wcm9qZWN0LWNhcmQtcGhvdG8ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA2MDBtcyBjdWJpYy1iZXppZXIoMC4zNCwgMS4wNSwgMC41LCAxKSAzMDBtcztcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249Y29tcGFjdF0gLnByb2plY3QtY2FyZC1uYW1lIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDQyMG1zIGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjY0LCAxKSwgcmlnaHQgNDIwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuMDUsIDAuNSwgMSk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDEyMG1zO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1jb21wYWN0XSAucHJvamVjdC1jYXJkLW9yZyB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA0MjBtcyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDYwbXM7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPWNvbXBhY3RdIC5wcm9qZWN0LWNhcmQtaW5mbyB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA0MjBtcyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDBtcztcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249Y29tcGFjdF06aG92ZXIgLnByb2plY3QtY2FyZC1waG90bywgLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249Y29tcGFjdF06Zm9jdXMtd2l0aGluIC5wcm9qZWN0LWNhcmQtcGhvdG8ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygtNzhweCAqIHZhcigtLXBjLXNjYWxlKSkpIHNjYWxlKDEuMTUpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAyMDBtcztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPWNvbXBhY3RdOmhvdmVyIC5wcm9qZWN0LWNhcmQtbmFtZSwgLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249Y29tcGFjdF06Zm9jdXMtd2l0aGluIC5wcm9qZWN0LWNhcmQtbmFtZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKC02MnB4ICogdmFyKC0tcGMtc2NhbGUpKSk7XG4gIHJpZ2h0OiAwO1xuICB0cmFuc2l0aW9uLWRlbGF5OiA0MDBtcztcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249Y29tcGFjdF06aG92ZXIgLnByb2plY3QtY2FyZC1vcmcsIC5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPWNvbXBhY3RdOmZvY3VzLXdpdGhpbiAucHJvamVjdC1jYXJkLW9yZyB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKC02MnB4ICogdmFyKC0tcGMtc2NhbGUpKSk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDQ2MG1zO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1jb21wYWN0XTpob3ZlciAucHJvamVjdC1jYXJkLWluZm8sIC5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPWNvbXBhY3RdOmZvY3VzLXdpdGhpbiAucHJvamVjdC1jYXJkLWluZm8ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygtNjJweCAqIHZhcigtLXBjLXNjYWxlKSkpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiA1MjBtcztcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1zdGF0aWMtZnJvbnRdIC5wcm9qZWN0LWNhcmQtbmFtZSB7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9c3RhdGljLWJhY2tdIC5wcm9qZWN0LWNhcmQtbmFtZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKC04OHB4ICogdmFyKC0tcGMtc2NhbGUpKSk7XG4gIHRyYW5zaXRpb246IG5vbmU7XG4gIHJpZ2h0OiAwO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPXN0YXRpYy1iYWNrXSAucHJvamVjdC1jYXJkLW9yZyxcbi5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9c3RhdGljLWJhY2tdIC5wcm9qZWN0LWNhcmQtaW5mbyB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKC04OHB4ICogdmFyKC0tcGMtc2NhbGUpKSk7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQU5JTUFUSU9OIFZBUklBTlQ6IG92ZXJsYXkgKGV4cGVyaW1lbnQsIEtpbSAyMDI2LTA1LTI5KVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBSdXN0IHN0YXRlOiBwaG90byBleHRlbmRzIGRvd24gdG8gdGhlIGRpdmlkZXIgcG9zaXRpb24gKGNhbGMoMTU4cHggKiB2YXIoLS1wYy1zY2FsZSkpXG4gICBpbnN0ZWFkIG9mIDEyNCkuIFRpdGxlIHNpdHMgaW4gaXRzIGlkbGUgcG9zaXRpb24gYnV0IHdoaXRlIG9uXG4gICB0aGUgZ3JhZGllbnQuIEtleWxpbmUgaGlkZGVuLlxuICAgSG92ZXI6IHBob3RvIHN1YnRsZSB6b29tIDEuMDYgKG5vIHRyYW5zbGF0ZSkuIFRpdGxlLCBvcmcgYW5kXG4gICBkYXRlIHN0YWdnZXJlZCB0cmFuc2xhdGUgdXAgb250byB0aGUgcGhvdG8uIEFsbCB0aHJlZSBnZXQgYVxuICAgZ2xhc3MtcGlsbCBiYWNrZ3JvdW5kLiBBdmF0YXJzIHN0YXkgZnJlZSAobm8gZ2xhc3MpLiAqL1xuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249b3ZlcmxheV0gLnByb2plY3QtY2FyZC1oZWFkZXIsXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1vdmVybGF5XSAucHJvamVjdC1jYXJkLWRpdmlkZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBQaG90bzogdGFsbGVyIChkb3duIHRvIGtleWxpbmUpICsgc3VidGxlIHpvb20gb24gaG92ZXIuICovXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1vdmVybGF5XSAucHJvamVjdC1jYXJkLXBob3RvIHtcbiAgaGVpZ2h0OiBjYWxjKDE1OHB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDYwMG1zIGN1YmljLWJlemllcigwLjM0LCAxLjA1LCAwLjUsIDEpO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1vdmVybGF5XTpob3ZlciAucHJvamVjdC1jYXJkLXBob3RvLFxuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249b3ZlcmxheV06Zm9jdXMtd2l0aGluIC5wcm9qZWN0LWNhcmQtcGhvdG8ge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDYpO1xufVxuXG4vKiBUaXRsZTogd2hpdGUgaW4gaWRsZSAoYWxyZWFkeSBvbiBwaG90byBncmFkaWVudCkuIE9uIGhvdmVyIGl0XG4gICBhbHNvIGJlY29tZXMgYSBnbGFzcy1waWxsLiAqL1xuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249b3ZlcmxheV0gLnByb2plY3QtY2FyZC1uYW1lIHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICB0ZXh0LXNoYWRvdzogMCBjYWxjKDFweCAqIHZhcigtLXBjLXNjYWxlKSkgY2FsYygzcHggKiB2YXIoLS1wYy1zY2FsZSkpIHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgei1pbmRleDogMztcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDQyMG1zIGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjY0LCAxKSwgcmlnaHQgNDIwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuMDUsIDAuNSwgMSk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDEyMG1zO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1vdmVybGF5XSAucHJvamVjdC1jYXJkLW9yZyB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgdGV4dC1zaGFkb3c6IDAgY2FsYygxcHggKiB2YXIoLS1wYy1zY2FsZSkpIGNhbGMoM3B4ICogdmFyKC0tcGMtc2NhbGUpKSByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIHotaW5kZXg6IDM7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA0MjBtcyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDYwbXM7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPW92ZXJsYXldIC5wcm9qZWN0LWNhcmQtaW5mbyB7XG4gIHotaW5kZXg6IDM7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA0MjBtcyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDBtcztcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249b3ZlcmxheV0gLnByb2plY3QtY2FyZC1kYXRlIHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICB0ZXh0LXNoYWRvdzogMCBjYWxjKDFweCAqIHZhcigtLXBjLXNjYWxlKSkgY2FsYygzcHggKiB2YXIoLS1wYy1zY2FsZSkpIHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249b3ZlcmxheV0gLnByb2plY3QtY2FyZC1kYXRlIHFkbmFwcm8taWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbn1cblxuLyogSE9WRVI6IHN0YWdnZXIgdXAgKyBnbGFzcy1waWxsIGJhY2tncm91bmRzIGFwcGVhci4gKi9cbi5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPW92ZXJsYXldOmhvdmVyIC5wcm9qZWN0LWNhcmQtbmFtZSxcbi5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPW92ZXJsYXldOmZvY3VzLXdpdGhpbiAucHJvamVjdC1jYXJkLW5hbWUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygtNjJweCAqIHZhcigtLXBjLXNjYWxlKSkpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiA0MDBtcztcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249b3ZlcmxheV06aG92ZXIgLnByb2plY3QtY2FyZC1vcmcsXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1vdmVybGF5XTpmb2N1cy13aXRoaW4gLnByb2plY3QtY2FyZC1vcmcge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygtNjJweCAqIHZhcigtLXBjLXNjYWxlKSkpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiA0NjBtcztcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249b3ZlcmxheV06aG92ZXIgLnByb2plY3QtY2FyZC1pbmZvLFxuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249b3ZlcmxheV06Zm9jdXMtd2l0aGluIC5wcm9qZWN0LWNhcmQtaW5mbyB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKC02MnB4ICogdmFyKC0tcGMtc2NhbGUpKSk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDUyMG1zO1xufVxuXG5Aa2V5ZnJhbWVzIHBjLWNvbXBhY3QtcGhvdG8taW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpO1xuICB9XG4gIDI1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEuMTUpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNzhweCkgc2NhbGUoMS4xNSk7XG4gIH1cbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPWNvbXBhY3RdIC5wcm9qZWN0LWNhcmQtcGhvdG8sXG4gIC5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPWNvbXBhY3RdIC5wcm9qZWN0LWNhcmQtbmFtZSxcbiAgLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249Y29tcGFjdF0gLnByb2plY3QtY2FyZC1vcmcsXG4gIC5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPWNvbXBhY3RdIC5wcm9qZWN0LWNhcmQtaW5mbyB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gIH1cbiAgLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249Y29tcGFjdF06aG92ZXIgLnByb2plY3QtY2FyZC1waG90bywgLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249Y29tcGFjdF06Zm9jdXMtd2l0aGluIC5wcm9qZWN0LWNhcmQtcGhvdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKC0xMjRweCAqIHZhcigtLXBjLXNjYWxlKSkpO1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxuICAucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1jb21wYWN0XTpob3ZlciAucHJvamVjdC1jYXJkLW5hbWUsIC5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPWNvbXBhY3RdOmZvY3VzLXdpdGhpbiAucHJvamVjdC1jYXJkLW5hbWUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKC04OHB4ICogdmFyKC0tcGMtc2NhbGUpKSk7XG4gIH1cbiAgLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249Y29tcGFjdF06aG92ZXIgLnByb2plY3QtY2FyZC1vcmcsIC5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPWNvbXBhY3RdOmZvY3VzLXdpdGhpbiAucHJvamVjdC1jYXJkLW9yZywgLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249Y29tcGFjdF06aG92ZXIgLnByb2plY3QtY2FyZC1pbmZvLCAucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1jb21wYWN0XTpmb2N1cy13aXRoaW4gLnByb2plY3QtY2FyZC1pbmZvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygtODhweCAqIHZhcigtLXBjLXNjYWxlKSkpO1xuICB9XG4gIC8qIE92ZXJsYXkgdmFyaWFudDogZHJvcCB0aGUgc3RhZ2dlcmVkIGVhc2luZywgc25hcCBpbnRvIHBsYWNlLiAqL1xuICAucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1vdmVybGF5XSAucHJvamVjdC1jYXJkLXBob3RvLFxuICAucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1vdmVybGF5XSAucHJvamVjdC1jYXJkLW5hbWUsXG4gIC5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPW92ZXJsYXldIC5wcm9qZWN0LWNhcmQtb3JnLFxuICAucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1vdmVybGF5XSAucHJvamVjdC1jYXJkLWluZm8sXG4gIC5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPW92ZXJsYXldIC5wcm9qZWN0LWNhcmQtZGF0ZSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gIH1cbiAgLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249b3ZlcmxheV06aG92ZXIgLnByb2plY3QtY2FyZC1uYW1lLFxuICAucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1vdmVybGF5XTpmb2N1cy13aXRoaW4gLnByb2plY3QtY2FyZC1uYW1lLFxuICAucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1vdmVybGF5XTpob3ZlciAucHJvamVjdC1jYXJkLW9yZyxcbiAgLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249b3ZlcmxheV06Zm9jdXMtd2l0aGluIC5wcm9qZWN0LWNhcmQtb3JnLFxuICAucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1vdmVybGF5XTpob3ZlciAucHJvamVjdC1jYXJkLWluZm8sXG4gIC5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPW92ZXJsYXldOmZvY3VzLXdpdGhpbiAucHJvamVjdC1jYXJkLWluZm8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKC02MnB4ICogdmFyKC0tcGMtc2NhbGUpKSk7XG4gIH1cbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXByb2plY3QtY2FyZCB7XG4gIC0tYy1jYXJkLWJnOiAjMmEyZDM2O1xuICAtLWMtY2FyZC1ib3JkZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIC0tYy1jYXJkLWRpdmlkZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gIC0tYy10ZXh0LWJvZHk6ICNmMGYxZjI7XG4gIC0tYy10ZXh0LXNlY29uZGFyeTogI2E2YWFiMztcbiAgLS1jLXBob3RvLWZhbGxiYWNrOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMmUzMjNkIDAlLCAjMmEyZDM2IDEwMCUpO1xuICBib3gtc2hhZG93OiAwIGNhbGMoMXB4ICogdmFyKC0tcGMtc2NhbGUpKSBjYWxjKDJweCAqIHZhcigtLXBjLXNjYWxlKSkgcmdiYSgwLCAwLCAwLCAwLjMpLCAwIGNhbGMoNnB4ICogdmFyKC0tcGMtc2NhbGUpKSBjYWxjKDE2cHggKiB2YXIoLS1wYy1zY2FsZSkpIHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIERlbnNpdHk6IGNvbXBhY3Qg4oCUIHVuaWZvcm0gMC44IHNjYWxlIG9mIHRoZSB3aG9sZSBjYXJkIHNvIGl0XG4gICBtYXRjaGVzIHRoZSBsZWdhY3kgODAlLXpvb20gbG9vayB3aGlsZSB0aGUgcGFnZSByZW5kZXJzIGF0IDEwMCUuXG4gICBOb24tYnJlYWtpbmc6IGNhcmRzIHdpdGhvdXQgW2RlbnNpdHldIGtlZXAgLS1wYy1zY2FsZToxLiBbS2ltIDIwMjYtMDYtMDNdXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5xZG5hcHJvLXByb2plY3QtY2FyZFtkZW5zaXR5PVwiY29tcGFjdFwiXSB7XG4gIC0tcGMtc2NhbGU6IDAuODtcbn1cbiIsIi8vIHFkbmFwcm8tcHVsc2UtY2FyZCArIHRoZSBzaXggc3RlcCBibG9ja3Mg4oCUIFB1bHNlIHRpbWVsaW5lIGNhcmQuXG4vL1xuLy8gRkxBVCBDU1M7IGNvbG91cnMvcmFkaWkgZnJvbSB0aGUgZGVzaWduLXRva2VuIDpyb290ICh2YXIoLS1jLSopIC8gLS1yLSopLFxuLy8gZWFjaCB3aXRoIGEgbGl0ZXJhbCBoZXggZmFsbGJhY2ssIGV4YWN0bHkgYXMgdGhlIFBXQSBzb3VyY2UgZG9lcyDigJQgaWYgdGhlXG4vLyB0b2tlbiBsYXllciBldmVyIGZhaWxzIHRvIGxvYWQsIHRoZSBjYXJkIHN0aWxsIHJlYWRzLlxuLy9cbi8vIFBvcnRlZCBmcm9tIHR3byBwbGFjZXMgaW4gdGhlIFBXQSwgd2hpY2ggaXMgd2hlcmUgdGhlIGNhcmQgbGl2ZXMgdG9kYXk6XG4vLyAgIC0gdGhlIDxzdHlsZT4gYmxvY2sgdGhhdCAxNi1wdWxzZS5qcyBpbmplY3RzIGl0c2VsZiAoX2luamVjdFN0eWxlKTpcbi8vICAgICAucHVsc2UtY2FyZF9fKiwgLnB1bHNlLWRvYywgLnB1bHNlLXZpZGVvLCAucHVsc2UtYWN0aW9uXG4vLyAgIC0gUmVzb3VyY2VzL1Njc3MvX3B3YS1jdXJyZW50LnNjc3M6IC5wdC1rb3AqLCAucHQtZm9vdGVyKixcbi8vICAgICAucHQtcmVhY3RpZS1zYW1lbnZhdHRpbmcqLCAucHVsc2UtcG9sbCosIC5wdWxzZS1jYXJkX19jdGFcbi8vXG4vLyBUaGUgUFdBIHNjb3BlcyBldmVyeSBydWxlIG9uIGAucHVsc2Vfdmlld2AgKHRoZSBzY3JlZW4pLiBBIGNvbXBvbmVudFxuLy8gY2Fubm90IGxlYW4gb24gYSBwYWdlIGNsYXNzLCBzbyBlYWNoIHJ1bGUgaXMgYW5jaG9yZWQgb24gdGhlIGNvbXBvbmVudFxuLy8gY2xhc3MgaW5zdGVhZC4gTm90aGluZyBlbHNlIGFib3V0IHRoZSBydWxlcyBjaGFuZ2VkLlxuXG4vLyDilIDilIAgVGhlIGNhcmQgc2hlbGwg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4ucWRuYXByby1wdWxzZS1jYXJkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxMHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAxNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmZmZmYpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1jYXJkLCAjZTFlM2U2KTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWNhcmQsIDAgMXB4IDJweCByZ2JhKDIwLCAyNSwgODAsIC4wNCksIDAgNHB4IDE2cHggcmdiYSgyMCwgMjUsIDgwLCAuMDQpKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xufVxuXG4vLyBUaGUgc3RlcCBibG9ja3MgYXJlIHB1cmUgZ3JvdXBpbmc6IGRpc3BsYXk6Y29udGVudHMgbGV0cyB0aGVpciBjaGlsZHJlblxuLy8gc2l0IGluIHRoZSBjYXJkJ3Mgb3duIGZsZXggY29sdW1uLCBzbyB0aGUgc3BhY2luZyBiZXR3ZWVuIHRoZSBib2R5LCB0aGVcbi8vIGJsb2NrIGFuZCB0aGUgZm9vdGVyIGlzIHRoZSBvbmUgY2FyZCBnYXAg4oCUIHRoZSBzYW1lIGZsYXQgb3JkZXIgdGhlIFBXQVxuLy8gYnVpbGRzIGluIF9ib3V3S2FhcnQuXG4ucWRuYXByby1wdWxzZS1mbGFzaCxcbi5xZG5hcHJvLXB1bHNlLWRvY3VtZW50LFxuLnFkbmFwcm8tcHVsc2UtYWN0aW9uLFxuLnFkbmFwcm8tcHVsc2UtdmlkZW8sXG4ucWRuYXByby1wdWxzZS1wb2xsLFxuLnFkbmFwcm8tcHVsc2UtcXVlc3Rpb24ge1xuICBkaXNwbGF5OiBjb250ZW50cztcbn1cblxuLy8gQSBjb21wbGV0ZWQgY2FyZCBjb2xsYXBzZXMgdG8gaGVhZGVyICsgb3V0Y29tZTogcXVpZXRlciB0aHJvdWdoIGEgc21hbGxlclxuLy8gdGl0bGUgYW5kIGxlc3MgZ2FwLCBuZXZlciB0aHJvdWdoIGFub3RoZXIgYmFja2dyb3VuZCDigJQgS2ltJ3MgcnVsZSBpcyB0aGF0XG4vLyBBTEwgcG9zdCBjYXJkcyBzdGF5IHdoaXRlLCBjb21wbGV0ZWQgb25lcyBpbmNsdWRlZC5cbi5xZG5hcHJvLXB1bHNlLWNhcmRbZGF0YS1wdWxzZS1kb25lPVwiMVwiXSB7XG4gIGdhcDogNnB4O1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZFtkYXRhLXB1bHNlLWRvbmU9XCIxXCJdIC5wdWxzZS1jYXJkX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLy8g4pSA4pSAIEhlYWRlcjogdGhlIGNhbXBhaWduIGlzIHRoZSBzZW5kZXIg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdC1rb3Age1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHQta29wX190ZWtzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1pbi13aWR0aDogMDtcbiAgZmxleDogMSAxIGF1dG87XG59XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdC1rb3BfX2NhbXBhZ25lIHtcbiAgLy8gcWRuYXByby10ZXh0LWxpbmsgaXMgZGlzcGxheTpmbGV4IHdpdGgganVzdGlmeS1jb250ZW50OmNlbnRlciAoaXRzIG93blxuICAvLyBDU1MsIGZvciB0aGUgYnV0dG9uLWxpa2UgdXNlKS4gQXMgYSBzZW5kZXIgbmFtZSBpbiBhIGxlZnQtYWxpZ25lZFxuICAvLyBoZWFkZXIgcm93IHRoYXQgY2VudHJlcyB0aGUgbmFtZSBvdmVyIHRoZSB3aG9sZSByb3csIHNvIHB1bGwgaXQgYmFjay5cbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjcyODApO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB0LWtvcF9fdGlqZCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG59XG5cbi8vIEJvdGggdGFncyBvbiBPTkUgcm93IGluIGEgc2hyaW5rYWJsZSB3cmFwcGVyOiBvbiBhIG5hcnJvdyBwaG9uZSB0aGUgVFlQRVxuLy8gbGFiZWwgdHJ1bmNhdGVzIHdpdGggYW4gZWxsaXBzaXMgaW5zdGVhZCBvZiB0aGUgaGVhZGVyIGp1bXBpbmcgdG8gYVxuLy8gc2Vjb25kIGxpbmUuIFRoZSBkYXkgYmFkZ2UgYWx3YXlzIHN0YXlzIHdob2xlIOKAlCBpdCBpcyB0aGUgc2hvcnRlc3QgYW5kXG4vLyBtb3N0IGNvbnRpbnVvdXMgaW5mb3JtYXRpb24sIGFuZCB0aHVzIHRoZSBsYXN0IHRoYXQgbWF5IHNocmluay5cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB0LWtvcF9fdGFncyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBtaW4td2lkdGg6IDA7XG4gIGZsZXgtc2hyaW5rOiAxO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHQta29wX190YWdzIHFkbmFwcm8tdGFnW2RhdGEtcHVsc2UtdHlwZS10YWddIHtcbiAgbWluLXdpZHRoOiAwO1xuICBmbGV4LXNocmluazogMTtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB0LWtvcF9fdGFncyBxZG5hcHJvLXRhZ1tkYXRhLXB1bHNlLXR5cGUtdGFnXSAudGFnLWxhYmVsIHtcbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLy8g4pSA4pSAIFRpdGxlLCBib2R5LCBpbWFnZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLWNhcmRfX3RpdGxlIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDE3cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQsICMwYjBiMGQpO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtY2FyZF9fYm9keSB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dCwgIzBiMGIwZCk7XG59XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdWxzZS1jYXJkX19ib2R5IHAgeyBtYXJnaW46IDAgMCA4cHg7IH1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLWNhcmRfX2JvZHkgcDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4vLyBLaW0ncyBhbm5vdGF0aW9uIG9mIDEzLjA4LjIwMjY6IGRvIE5PVCBjcm9wIGJ1dCBsZXR0ZXJib3guIG9iamVjdC1maXQ6XG4vLyBjb250YWluIHNjYWxlcyBhbiBpbWFnZSB3aXRoIGEgZGlmZmVyZW50IHJhdGlvIGJhY2sgaW5zaWRlIHRoZSBzYW1lXG4vLyBtYXgtaGVpZ2h0IGFuZCBsZWF2ZXMgdGhlIHJlc3QgZW1wdHk7IHRoZSBleHBsaWNpdCBiYWNrZ3JvdW5kIG1ha2VzIHRob3NlXG4vLyBsZXR0ZXJib3ggYmFycyBzaG93IHRoZSBjYXJkIGNvbG91ciB3aGF0ZXZlciBzaXRzIGJlaGluZCB0aGVtLlxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtY2FyZF9faW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMzIwcHg7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLWNhcmRfX25vdGUge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjcyODApO1xufVxuXG4vLyDilIDilIAgVGhlIHJlYWRpbmctc3RlcCBidXR0b24gKGZsYXNoIC8gZG9jdW1lbnQgLyBhY3Rpb24gLyB2aWRlbykg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBOb3QgZnVsbCBwYW5lbCB3aWR0aDogaW5saW5lLWZsZXggc2hyaW5rcyB0aGUgd3JhcHBlciBhcm91bmQgdGhlIGJ1dHRvbixcbi8vIG1pbi13aWR0aCBrZWVwcyBpdCBnZW5lcm91cyBlbm91Z2ggdG8gcmVhZCBhcyBhbiBpbnZpdGF0aW9uLCBtYXgtd2lkdGhcbi8vIHN0b3BzIGEgbG9uZyB0cmFuc2xhdGlvbiBmcm9tIHRha2luZyB0aGUgd2hvbGUgY2FyZC4gVGhlIHNoaW1tZXIgaXMgYVxuLy8gbGF5ZXIgb24gdGhlIFdSQVBQRVIgKDo6YWZ0ZXIpLCBuZXZlciBvbiB0aGUgYnV0dG9uOiBxZG5hcHJvLWJ1dHRvbiB3aXBlc1xuLy8gaXRzIG93biBjbGFzc05hbWUgb24gcmVuZGVyLlxuLnFkbmFwcm8tcHVsc2UtY3RhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgbWluLXdpZHRoOiAyMjBweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDRweCAwIDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBpc29sYXRpb246IGlzb2xhdGU7XG59XG4ucWRuYXByby1wdWxzZS1jdGEgcWRuYXByby1idXR0b24sXG4ucWRuYXByby1wdWxzZS1jdGEgLnB1bHNlLWNhcmRfX2N0YS1idG4ge1xuICBmbGV4OiAxIDEgYXV0bztcbn1cbi5xZG5hcHJvLXB1bHNlLWN0YTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAtNjAlO1xuICB3aWR0aDogNTUlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEwMGRlZyxcbiAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDAlLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NSkgNTAlLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJSk7XG4gIHRyYW5zZm9ybTogc2tld1goLTE4ZGVnKTtcbiAgLy8gU2xvdyBpbnRlcnZhbCB3aXRoIGEgc2hvcnQgc3dlZXA6IHRoaXMgc2hvdWxkIGludml0ZSwgbm90IGJsaW5rLlxuICBhbmltYXRpb246IHB1bHNlLWN0YS1zaGltbWVyIDMuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG4ucWRuYXByby1wdWxzZS1jdGEucHVsc2UtY2FyZF9fY3RhLS1uby1zaGltbWVyOjphZnRlciB7IGFuaW1hdGlvbjogbm9uZTsgb3BhY2l0eTogMDsgfVxuQGtleWZyYW1lcyBwdWxzZS1jdGEtc2hpbW1lciB7XG4gIDAlICAgeyBsZWZ0OiAtNjAlOyB9XG4gIDQ1JSAgeyBsZWZ0OiAxMTUlOyB9XG4gIDEwMCUgeyBsZWZ0OiAxMTUlOyB9XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAucWRuYXByby1wdWxzZS1jdGE6OmFmdGVyIHsgYW5pbWF0aW9uOiBub25lOyBvcGFjaXR5OiAwOyB9XG59XG5cbi8vIOKUgOKUgCBEb2N1bWVudCBibG9jayDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEEgZG9jdW1lbnQgY2FyZCBjYXJyaWVzIHRoZSBGSUxFIE5BTUUgYXMgaXRzIHN1YmplY3Q7IGl0IHNpdHMgb24gaXRzIG93blxuLy8gcm93IHdpdGggdGhlIGljb24gaW4gZnJvbnQsIGJlY2F1c2UgYSBmaWxlIG5hbWUgaXMgbG9uZyBhbmQgbWF5IG5vdCBwdXNoXG4vLyB0aGUgY2FyZCBvcGVuIChhbnl3aGVyZSBicmVha3MgaXQpLlxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtZG9jIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xuICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCwgI2Y3ZjdmOSk7XG59XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdWxzZS1kb2MgcWRuYXByby1pY29uIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjcyODApO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtZG9jX19uYW1lIHtcbiAgbWluLXdpZHRoOiAwO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQsICMwYjBiMGQpO1xuICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbn1cbi8vIE5vdCBhdmFpbGFibGU6IHRoZSBjYXJkIGRpbXMgYnV0IHN0YXlzIHJlYWRhYmxlLiBOZXZlciBpbnZpc2libGUg4oCUIHRoZVxuLy8gcGFydGljaXBhbnQgaGFzIHRvIGJlIGFibGUgdG8gY2xlYXIgaXQuXG4ucWRuYXByby1wdWxzZS1jYXJkLnB1bHNlLWNhcmQtLWJsb2NrZWQgLnB1bHNlLWRvYyB7IG9wYWNpdHk6IC41NTsgfVxuXG4vLyDilIDilIAgQWN0aW9uIGJsb2NrIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtYWN0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLy8g4pSA4pSAIFZpZGVvIGJsb2NrIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gMTY6OSB0aHJvdWdoIGFzcGVjdC1yYXRpbyB3aXRoIGEgcGFkZGluZyBmYWxsYmFjazogYW4gaWZyYW1lIHdpdGhvdXQgYVxuLy8gaGVpZ2h0IGlzIDE1MHB4IHRhbGwgYW5kIHRoZW4gdGhlIHBsYXllciBzaXRzIG9uIHRoZSBjYXJkIGFzIGEgc3RyaXBlLlxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtdmlkZW8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBhc3BlY3QtcmF0aW86IDE2IC8gOTtcbiAgbWFyZ2luOiA0cHggMCAxMnB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xufVxuQHN1cHBvcnRzIG5vdCAoYXNwZWN0LXJhdGlvOiAxNiAvIDkpIHtcbiAgLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtdmlkZW8geyBoZWlnaHQ6IDA7IHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7IH1cbn1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLXZpZGVvX19mcmFtZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlcjogMDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vIOKUgOKUgCBRdWVzdGlvbiBibG9jayDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLWNhcmRfX29wdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDhweDtcbn1cblxuLy8gQ2FyZCAxNGcuIEV2ZXJ5IG9wdGlvbiBnZXRzIGBkaXNhYmxlZGAgYWZ0ZXIgYW5zd2VyaW5nLCBhbmQgdGhlXG4vLyBjb21wb25lbnQncyBvd24gYC5pcy1kaXNhYmxlZGAgcnVsZSAodHdvIGNsYXNzZXMpIGJlYXRzIHRoZSBsb29zZSBjb2xvdXJcbi8vIHJ1bGUgKG9uZSBjbGFzcykg4oCUIHNvIHRoZSBjb3JyZWN0IG9wdGlvbiB5b3UgZGlkIE5PVCB0YXAgbG9zdCB0byB0aGUgZ3JleVxuLy8gZGlzYWJsZWQgc3R5bGUgYW5kIHdhcyBpbmRpc3Rpbmd1aXNoYWJsZS4gVGhlc2UgZm91ci1jbGFzcyBzZWxlY3RvcnNcbi8vIGFsd2F5cyB3aW4sIGFjdGl2ZSBvciBub3QuIFRoZSBjb2xvdXJzIHRoZW1zZWx2ZXMgY29tZSBmcm9tIHRoZSBjaGlwXG4vLyBwYWxldHRlIChzb2Z0IHRpbnQsIGRhcmsgcmVhZGFibGUgdGV4dCkgaW5zdGVhZCBvZiB0aGUgY29tcG9uZW50J3MgZmxhdFxuLy8gODAlIGJsYWNrIG1peCwgd2hpY2ggcmVhZCBhcyBhIHZlcnkgZGFyayBicm93bi1yZWQgYmxvY2sgaW4gS2ltJ3Ncbi8vIHNjcmVlbnNob3QuIERlbGliZXJhdGVseSBzY29wZWQgdG8gdGhpcyBibG9jazogcWRuYXByby1hbnN3ZXItYnV0dG9uJ3Mgb3duXG4vLyBDU1MgaXMgdW50b3VjaGVkLCBzbyB5ZXNfbm8sIG11bHRpX29wdGlvbl9zZWxlY3Rpb24gYW5kIGRhdGFwb2ludHMga2VlcFxuLy8gdGhlaXIgY3VycmVudCBjb2xvdXJzLlxuLnFkbmFwcm8tcHVsc2UtcXVlc3Rpb24gLnB1bHNlLWNhcmRfX29wdGlvbnMgLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLWdyZWVuIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLWdyZWVuLWJnLCAjZTJmYWYxKTtcbiAgY29sb3I6IHZhcigtLWMtY2hpcC1ncmVlbi10ZXh0LCAjMmY1ZDRhKTtcbn1cbi5xZG5hcHJvLXB1bHNlLXF1ZXN0aW9uIC5wdWxzZS1jYXJkX19vcHRpb25zIC5xZG5hcHJvLWFuc3dlci1idXR0b24ucWRuYXByby1hbnN3ZXItYnV0dG9uLS1ncmVlbiAucWRuYXByby1hbnN3ZXItYnV0dG9uX190aWNrIHtcbiAgb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zdWNjZXNzLWJyaWdodCwgIzFkOWU3NSk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1zdWNjZXNzLWJyaWdodCwgIzFkOWU3NSk7XG4gIGNvbG9yOiAjZmZmO1xufVxuLnFkbmFwcm8tcHVsc2UtcXVlc3Rpb24gLnB1bHNlLWNhcmRfX29wdGlvbnMgLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLWdyZWVuIC5xZG5hcHJvLWFuc3dlci1idXR0b25fX2NoZWNrIHtcbiAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG59XG4ucWRuYXByby1wdWxzZS1xdWVzdGlvbiAucHVsc2UtY2FyZF9fb3B0aW9ucyAucWRuYXByby1hbnN3ZXItYnV0dG9uLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0tcmVkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLXJlZC1iZywgI2ZlZTNlMyk7XG4gIGNvbG9yOiB2YXIoLS1jLWNoaXAtcmVkLXRleHQsICM2MzMwMzApO1xufVxuXG4vLyBGZWVkYmFjayBhZnRlciBhbiBhbnN3ZXIuIENvbG91ciBpcyBORVZFUiB0aGUgb25seSBzaWduYWw6IHRoZXJlIGlzXG4vLyBhbHdheXMgYSB3b3JkIG5leHQgdG8gaXQgKEdvZWQgLyBOZXQgbmlldCksIGZvciB3aG9ldmVyIGNhbm5vdCB0ZWxsXG4vLyBjb2xvdXJzIGFwYXJ0LlxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtY2FyZF9fdmVyZGljdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdWxzZS1jYXJkX192ZXJkaWN0W2RhdGEtdmVyZGljdD1cImNvcnJlY3RcIl0geyBjb2xvcjogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCwgIzQyOGI2ZSk7IH1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLWNhcmRfX3ZlcmRpY3RbZGF0YS12ZXJkaWN0PVwiaW5jb3JyZWN0XCJdIHsgY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTsgfVxuXG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdWxzZS1jYXJkX19mZWVkYmFjayB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG59XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdWxzZS1jYXJkX19kaXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA4cHg7XG4gIG1hcmdpbi10b3A6IDJweDtcbn1cblxuLy8gQW4gYW5zd2VyIHN0aWxsIGluIHRoZSBxdWV1ZS4gRGVsaWJlcmF0ZWx5IE5PIHJlZCBvciBvcmFuZ2U6IG5vdGhpbmcgd2VudFxuLy8gd3JvbmcsIGl0IGp1c3QgaGFzIG5vdCBiZWVuIHNlbnQgeWV0LlxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtY2FyZF9fcXVldWVkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogOHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBjb2xvcjogIzQwNDk5YTtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLWNhcmRfX3F1ZXVlZCBxZG5hcHJvLWljb24geyBmbGV4LXNocmluazogMDsgfVxuXG4vLyDilIDilIAgUG9sbCBibG9jayAoV2hhdHNBcHAgbW9kZWwpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gWW91ciBPV04gY2hvaWNlIGdldHMgdGhlIHB1cnBsZSBib3JkZXIsIHRpY2sgYW5kIGNvdW50OyB0aGUgYmFyIHVuZGVyIHRoZVxuLy8gcm93IGlzIGEgcWRuYXByby1wcm9ncmVzcyB3aXRoIHRvbmU9XCJoaWdobGlnaHRcIiAoeW91cnMpIG9yIFwibmV1dHJhbFwiICh0aGVcbi8vIHJlc3QpIOKAlCBleGlzdGluZyB0b25lcyBvZiB0aGUgc2hhcmVkIGNvbXBvbmVudCwgbm8gbmV3IGNvbG91ciBpbnZlbnRlZC5cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLXBvbGwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDhweDtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLXBvbGxfX29wdGlvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMTBweCAxMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1jYXJkLCAjZTFlM2U2KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1yb3csIDEycHgpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAtZ3JleS1iZywgI2YwZjFmMik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2UsIHRyYW5zZm9ybSAxMjBtcyBlYXNlO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtcG9sbF9fb3B0aW9uOm5vdChbYXJpYS1kaXNhYmxlZD1cInRydWVcIl0pOmhvdmVyLFxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtcG9sbF9fb3B0aW9uOm5vdChbYXJpYS1kaXNhYmxlZD1cInRydWVcIl0pOmZvY3VzLXZpc2libGUge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKTtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLXBvbGxfX29wdGlvbjpub3QoW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdKTphY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTkpO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtcG9sbF9fb3B0aW9uW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLXBvbGxfX29wdGlvbi0tbWluZSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtcG9sbF9fcm93IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLXBvbGxfX3RpY2sge1xuICBmbGV4LXNocmluazogMDtcbiAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKTtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLXBvbGxfX2xhYmVsIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LCAjMGIwYjBkKTtcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG59XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdWxzZS1wb2xsX19vcHRpb24tLW1pbmUgLnB1bHNlLXBvbGxfX2xhYmVsIHsgZm9udC13ZWlnaHQ6IDYwMDsgfVxuLy8gVGhlIGZpZ3VyZSwgV2hhdHNBcHAgc3R5bGU6IHJpZ2h0IGFsaWduZWQsIG9ubHkgdGhlIG51bWJlciwgbm8gd29yZCBhZnRlclxuLy8gaXQgKHRoZSBhcmlhLWxhYmVsIGNhcnJpZXMgdGhlIGZ1bGwgc2VudGVuY2UpLlxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtcG9sbF9fY291bnQge1xuICBmbGV4LXNocmluazogMDtcbiAgbWluLXdpZHRoOiAxLjVlbTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG59XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdWxzZS1wb2xsX19vcHRpb24tLW1pbmUgLnB1bHNlLXBvbGxfX2NvdW50IHtcbiAgY29sb3I6IHZhcigtLWMtY2hpcC1wdXJwbGUtdGV4dCwgIzQxM2I1ZSk7XG59XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdWxzZS1wb2xsX19vcHRpb24gcWRuYXByby1wcm9ncmVzcyB7IG1hcmdpbi10b3A6IDhweDsgfVxuXG4vLyDilIDilIAgRm9vdGVyIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gT25lIHJvdzogcmVhY3Rpb24gYnV0dG9uIGFuZCBjb21tZW50IGJ1dHRvbiBvbiB0aGUgbGVmdCwgc3RhdHVzIGFuZFxuLy8gcmVhY3Rpb24gc3VtbWFyeSBwdXNoZWQgcmlnaHQuXG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdC1mb290ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDE2cHg7XG59XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdC1mb290ZXJfX2FjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHQtZm9vdGVyX19hY3RpZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgcGFkZGluZzogMCAxMnB4O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLy8gS2ltJ3MgcG9saXNoOiBubyBwYWRkaW5nIGxlZnQgb2YgdGhlIGxpa2UgYnV0dG9uIOKAlCB0aGUgdGFwIGFyZWEgc3RhcnRzIGF0XG4vLyB0aGUgY2FyZCBlZGdlOyB0aGUgaWNvbiBpdHNlbGYga2VlcHMgYSAxNnB4IGluc2V0IHNvIGl0IGxpbmVzIHVwIHdpdGggdGhlXG4vLyBjYXJkIHRleHQuXG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdC1mb290ZXJfX2FjdGllOmZpcnN0LWNoaWxkIHsgcGFkZGluZy1sZWZ0OiAxNnB4OyB9XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdC1mb290ZXJfX2FjdGllW2FyaWEtcHJlc3NlZD1cInRydWVcIl0gcWRuYXByby1pY29uIHtcbiAgY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTtcbn1cbi8vIE9mZmxpbmU6IHRoZSByZWFjdGlvbiBidXR0b24gaXMgdGhlIG9ubHkgU0VORCBhY3Rpb24gaW4gdGhpcyByb3cgKHRoZVxuLy8gY29tbWVudCBpY29uIG9ubHkgb3BlbnMgdG8gUkVBRCwgc28gaXQgc3RheXMgb24pLiBWaXNpYmx5IG9mZiwgbm90XG4vLyBoaWRkZW4uXG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdC1mb290ZXJfX2FjdGllW2RhdGEtcHVsc2UtaGVhcnRdW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdIHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCwgIzg5OGU5OSk7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHQtZm9vdGVyX190ZWxsZXIge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdC1mb290ZXJfX3JlY2h0cyB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgbWluLXdpZHRoOiAwO1xufVxuLy8gV2hhdHNBcHAtc3R5bGUgZG91YmxlIHRpY2tzIGluIHRoZSBicmFuZCBjb2xvdXIuXG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdC1mb290ZXJfX3N0YXR1cyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDVweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB0LWZvb3Rlcl9fc3RhdHVzLWNoZWNrIHsgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlBKTsgfVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHQtZm9vdGVyX19zdGF0dXMtYnRuIHsgZmxleC1zaHJpbms6IDA7IH1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB0LWZvb3Rlcl9fcmVjaHRzID4gKiArIC5wdC1yZWFjdGllLXNhbWVudmF0dGluZyB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbn1cblxuLy8gRmFjZWJvb2stc3R5bGUgcmVhY3Rpb24gc3VtbWFyeTogdGhlIGZsYXZvdXJzIHByZXNlbnQgYXMgc3RhY2tlZCBtaW5pXG4vLyBiYWRnZXMgKG1heCAzKSBwbHVzIHRoZSB0b3RhbC5cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB0LXJlYWN0aWUtc2FtZW52YXR0aW5nIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG4gIHBhZGRpbmc6IDRweCA4cHggNHB4IDRweDtcbiAgbWFyZ2luOiAtNHB4IC04cHggLTRweCAtNHB4O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHQtcmVhY3RpZS1zYW1lbnZhdHRpbmc6aG92ZXIsXG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdC1yZWFjdGllLXNhbWVudmF0dGluZzpmb2N1cy12aXNpYmxlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtaG92ZXIsICNmMGYxZjIpO1xuICBvdXRsaW5lOiBub25lO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHQtcmVhY3RpZS1zYW1lbnZhdHRpbmc6YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtaG92ZXIsICNmMGYxZjIpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTcpO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHQtcmVhY3RpZS1zYW1lbnZhdHRpbmdfX3N0YXBlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4vLyAyMHB4LCBvdmVybGFwcGluZyAoLTZweCk6IHNtYWxsZXIgdGhhbiB0aGUgNDRweCBmbGF2b3VyIHBpY2tlciDigJQgdGhpcyBpc1xuLy8gYSBTVU1NQVJZLCBub3QgYSBjaG9vc2VyLCBhbmQgaGFzIHRvIGZpdCBuZXh0IHRvIHRoZSBzdGF0dXMgdGV4dC5cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB0LXJlYWN0aWUtc2FtZW52YXR0aW5nX19iYWRnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBmbGV4LXNocmluazogMDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmZmZmYpO1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jLWJnLWNhcmQsICNmZmZmZmYpO1xuICBib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdC1yZWFjdGllLXNhbWVudmF0dGluZ19fYmFkZ2UgKyAucHQtcmVhY3RpZS1zYW1lbnZhdHRpbmdfX2JhZGdlIHtcbiAgbWFyZ2luLWxlZnQ6IC02cHg7XG59XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdC1yZWFjdGllLXNhbWVudmF0dGluZ19fYmFkZ2Ugc3ZnIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB0LXJlYWN0aWUtc2FtZW52YXR0aW5nX190b3RhYWwgeyBtYXJnaW4tbGVmdDogMnB4OyB9XG4iLCIvLyBxZG5hcHJvLXB1bHNlLWNhbnZhcyDigJQgdGhlIFwiVGVrc3Qgb3AgYWNodGVyZ3JvbmRcIiBQdWxzZSBjYXJkIGZhY2UuXG4vL1xuLy8gRkxBVCBDU1M7IGNvbG91cnMvc2hhZG93IGNvbWUgZnJvbSB0aGUgZGVzaWduLXRva2VuIDpyb290ICh2YXIoLS1jLSopIC9cbi8vIC0tc2hhZG93LSopLCBlYWNoIHdpdGggYSBsaXRlcmFsIGhleCBmYWxsYmFjaywgc2FtZSBjb252ZW50aW9uIGFzXG4vLyBfcHVsc2UtY2FyZC5zY3NzLiBUaGUgY2FyZCdzIE9XTiBjb2xvdXIgKHRoZSBgY29sb3JgIGF0dHJpYnV0ZSkgaXNcbi8vIGRlbGliZXJhdGVseSBub3QgYSB0b2tlbiDigJQgdGhhdCBpcyB0aGUgb25lIHRoaW5nIHRoZSBlZGl0b3IgcGlja3MgZnJlZWx5XG4vLyBwZXIgc3RlcC4gVGhlIGB0ZXh0LWNvbG9yYCBhdHRyaWJ1dGUgaXMgdGhlIHNhbWUga2luZCBvZiBmcmVlIHZhbHVlIGFuZFxuLy8gaXMgdGhlcmVmb3JlIHNldCBpbmxpbmUgYnkgdGhlIEpTLCBub3QgaGVyZS5cbi8vXG4vLyBObyBleHBsaWNpdCBbZGF0YS10aGVtZT1cImRhcmtcIl0gYmxvY2sgaGVyZTogc2hhZG93IGFuZCB0aGUgY291bnRlciBjaGlwXG4vLyByZWFkIHRoZSBzaGFyZWQgdG9rZW5zLCB3aGljaCBhbHJlYWR5IGZsaXAgdG8gdGhlaXIgZGFyayB2YWx1ZXMgYXQgdGhlXG4vLyA6cm9vdCBsZXZlbCAoc2VlIF9kZXNpZ24tdG9rZW5zLnNjc3MpLiBPbmx5IHRoZSBjYXJkJ3MgY2hvc2VuIGJhY2tncm91bmRcbi8vIGNvbG91ciBhbmQgdGhlIHRleHQgdGludCBzdGF5IGxpdGVyYWwsIGJ5IGRlc2lnbiAoYmVzbHVpdCA3KS4gVGhlIHRleHRcbi8vIG91dGxpbmUgdXNlcyB0aGUgdGhlbWUtaW5kZXBlbmRlbnQgYmxhY2stYWxwaGEgdG9rZW5zIG9uIHB1cnBvc2U6IGl0IHNpdHNcbi8vIG9uIGEgcGljdHVyZSwgbm90IG9uIHRoZSBwYWdlIGJhY2tncm91bmQsIHNvIGl0IG11c3Qgc3RheSBkYXJrIGluIGRhcmtcbi8vIG1vZGUgdG9vLlxuLy9cbi8vIOKUgOKUgCBUaGUgY2FyZCBpcyBpdHMgb3duIG1lYXN1cmluZyBmcmFtZSAoa2FhcnQgMiwgYmVzbHVpdCAxKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIGBjb250YWluZXItdHlwZTogaW5saW5lLXNpemVgIHR1cm5zIHRoZSBjYXJkIGludG8gYSBjb250YWluZXItcXVlcnlcbi8vIGNvbnRhaW5lciwgc28gZXZlcnkgc2l6ZSBiZWxvdyBjYW4gYmUgd3JpdHRlbiBpbiBjcXcgPSBwZXJjZW50IG9mIHRoZVxuLy8gQ0FSRCdzIG93biB3aWR0aC4gUmVhc29uLCBtZWFzdXJlZDogdGhlIHRleHQgc3RlcHMgdXNlZCB0byBiZSBmaXhlZCBweFxuLy8gKDI4LzI0LzIwLzE4LzE2KSwgd2hpbGUgdGhlIGNhcmQgcmVuZGVycyBhdCAzMDBweCBpbiB0aGUgd2l6YXJkLCBhdFxuLy8gY29udGFpbmVyIHdpZHRoIGluIHRoZSBhcHAgYW5kIGF0IHJvdWdobHkgMTkwMHB4IGluIHRoZSBtYXJrdXAgZWRpdG9yLlxuLy8gVGhlIHNhbWUgMjhweCB0aXRsZSBpcyB+OSUgb2YgYSAzMDBweCBjYXJkIGFuZCBvbmx5IH4xLDUlIG9mIGEgMTkwMHB4XG4vLyBvbmUsIHNvIHRoZSBpZGVudGljYWwgY2FyZCByZWFkIGFzIGEgaGVhZGxpbmUgaW4gb25lIHBsYWNlIGFuZCBhcyBhIHRpbnlcbi8vIGNhcHRpb24gaW4gdGhlIG90aGVyLiBFdmVyeSBjcXcgdmFsdWUgYmVsb3cgaXMgY2FsaWJyYXRlZCAxOjEgb24gdGhlIG9sZFxuLy8gMzAwcHggY2FyZCAoOS4zM2NxdyA9IDI4cHgsIDhjcXcgPSAyNHB4LCA2LjY3Y3F3ID0gMjBweCwgNmNxdyA9IDE4cHgsXG4vLyA1LjMzY3F3ID0gMTZweCwgcGFkZGluZyA4Y3F3ID0gMjRweCksIHNvIGEgMzAwcHggY2FyZCBsb29rcyBleGFjdGx5IGxpa2Vcbi8vIGJlZm9yZSBhbmQgZXZlcnkgb3RoZXIgd2lkdGggbm93IGtlZXBzIHRoZSBzYW1lIHByb3BvcnRpb24uXG4vLyBFYWNoIGNxdyBkZWNsYXJhdGlvbiBpcyBwcmVjZWRlZCBieSBpdHMgb2xkIHB4IHZhbHVlIGFzIGEgZmFsbGJhY2sgZm9yXG4vLyBicm93c2VycyB3aXRob3V0IGNvbnRhaW5lci1xdWVyeSB1bml0cyDigJQgdGhlIGZhbGxiYWNrIGxvc2VzIHRvIHRoZSBjcXdcbi8vIGxpbmUgd2hlcmV2ZXIgY3F3IGlzIHN1cHBvcnRlZC5cblxuLnFkbmFwcm8tcHVsc2UtY2FudmFzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGFzcGVjdC1yYXRpbzogMTYgLyAxMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLy8gU3F1YXJlIG9uIGFsbCBmb3VyIGNvcm5lcnMgYW5kIG5vIGJvcmRlciBvZiBpdHMgb3duIChrYWFydCAyLFxuICAvLyBiZXNsdWl0IDgpOiB0aGUgY2FyZCBzaXRzIGVkZ2UtdG8tZWRnZSBpbnNpZGUgdGhlIFB1bHNlIGNhcmQsIHdoaWNoXG4gIC8vIG93bnMgdGhlIG91dGxpbmUgYW5kIHRoZSByb3VuZGluZyBhcm91bmQgaXQuXG4gIC8vIE5vIGJveC1zaGFkb3cgZWl0aGVyIChrYWFydCAyLCBiZXNsdWl0IDgpOiB0aGUgY2FudmFzIHNpdHMgZWRnZS10by1lZGdlXG4gIC8vIElOU0lERSBhIFB1bHNlIGNhcmQgdGhhdCBhbHJlYWR5IGNhcnJpZXMgaXRzIG93biBzaGFkb3csIHNvIGEgc2Vjb25kXG4gIC8vIHNoYWRvdyB3b3VsZCByZWFkIGFzIGEgc2VhbSBhY3Jvc3MgdGhlIG1pZGRsZSBvZiB0aGF0IGNhcmQuXG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7IC8vIHNob3dzIHRocm91Z2ggd2hlbiB1bmNvbmZpZ3VyZWQgKG5vIGNvbG91ciwgbm8gaW1hZ2UgeWV0KVxuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG4gIC8vIEtlZXBzIHRoZSBwYXR0ZXJuIGxheWVyJ3MgQ1NTIG1hc2sgY29tcG9zaXRpbmcgbG9jYWwgdG8gdGhpcyBlbGVtZW50LFxuICAvLyBzbyBpdCBjYW4gbmV2ZXIgYmxlZWQgaW50byBhbnl0aGluZyBwYWludGVkIGJlaGluZCB0aGUgY2FyZC5cbiAgaXNvbGF0aW9uOiBpc29sYXRlO1xuICAvLyBUaGUgbWVhc3VyaW5nIGZyYW1lIGZvciBldmVyeSBjcXcgYmVsb3cgKHNlZSB0aGUgaGVhZGVyIG5vdGUpLlxuICBjb250YWluZXItdHlwZTogaW5saW5lLXNpemU7XG4gIGNvbnRhaW5lci1uYW1lOiBxcGMtY2FyZDtcbn1cbkBzdXBwb3J0cyBub3QgKGFzcGVjdC1yYXRpbzogMTYgLyAxMCkge1xuICAucWRuYXByby1wdWxzZS1jYW52YXMgeyBoZWlnaHQ6IDA7IHBhZGRpbmctYm90dG9tOiA2Mi41JTsgfVxufVxuXG4vLyDilIDilIAgTGF5ZXIgMTogZmxhdCBjb2xvdXIg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4ucWRuYXByby1wdWxzZS1jYW52YXMgLnFwYy1jb2xvciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG59XG5cbi8vIOKUgOKUgCBMYXllciAyOiB0aWxlZCBTVkcgcGF0dGVybiwgcmVjb2xvdXJlZCB2aWEgQ1NTIG1hc2sg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBUaGUgbWFzayBvbmx5IHJlYWRzIHRoZSBTVkcncyBhbHBoYSAoaXRzIGZpbGwtb3BhY2l0eSBzaGFwZXMpOyB0aGVcbi8vIHZpc2libGUgY29sb3VyIGlzIGJhY2tncm91bmQtY29sb3IsIHNldCBmcm9tIHBhdHRlcm5zLmpzb24nc1xuLy8gcGF0dGVybl90aW50IChKUykuIEFsbCBzaXggc2hpcHBlZCBwYXR0ZXJuIHRpbGVzIGFyZSBzcXVhcmUsIHNvIG9uZVxuLy8gZml4ZWQgbWFzay1zaXplIHRpbGVzIGV2ZXJ5IG9uZSBvZiB0aGVtIHdpdGhvdXQgZGlzdG9ydGlvbi5cbi5xZG5hcHJvLXB1bHNlLWNhbnZhcyAucXBjLXBhdHRlcm4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBtYXNrLXJlcGVhdDogcmVwZWF0O1xuICAtd2Via2l0LW1hc2stcmVwZWF0OiByZXBlYXQ7XG4gIG1hc2stcG9zaXRpb246IGNlbnRlcjtcbiAgLXdlYmtpdC1tYXNrLXBvc2l0aW9uOiBjZW50ZXI7XG4gIG1hc2stc2l6ZTogOTZweCA5NnB4O1xuICAtd2Via2l0LW1hc2stc2l6ZTogOTZweCA5NnB4O1xufVxuXG4vLyDilIDilIAgTGF5ZXIgMyAocGhvdG8gT1Igc2NlbmUgdmFyaWFudCk6IHJlcGxhY2VzIGNvbG91ciArIHBhdHRlcm4gZW50aXJlbHkg4pSAXG4vLyBUaGUgU0FNRSBlbGVtZW50IHJlbmRlcnMgYSBgaW1hZ2VgIHBob3RvIGFuZCBhIGBzY2VuZWAgaWxsdXN0cmF0aW9uXG4vLyAoa2FhcnQgMTYpIOKAlCBib3RoIGFyZSBvbmUgZnVsbC1ibGVlZCBjb3Zlci1maXQgcGljdHVyZSwgYW5kIGBpbWFnZWBcbi8vIGFsd2F5cyB3aW5zIHBlciB0aGUgcHJlY2VkZW5jZSBub3RlIGluIHFkbmEtcHVsc2UtY2FudmFzLmpzLCBzbyB0aGV5XG4vLyBuZXZlciBmaWdodCBvdmVyIGl0IGluIHByYWN0aWNlLlxuLnFkbmFwcm8tcHVsc2UtY2FudmFzIC5xcGMtaW1hZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG4ucWRuYXByby1wdWxzZS1jYW52YXMucXBjLS1waG90byAucXBjLWltYWdlLFxuLnFkbmFwcm8tcHVsc2UtY2FudmFzLnFwYy0tc2NlbmUgLnFwYy1pbWFnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vLyBUaGVyZSBpcyBOTyBzY3JpbSBsYXllciBhbnkgbW9yZSAoa2FhcnQgMiwgYmVzbHVpdCAxMiDigJQgYSBkZWxpYmVyYXRlXG4vLyByZXZpc2lvbiBvZiBrYWFydCAxNmIpOiB0aGUgcmFkaWFsIGhhemUgYmVoaW5kIHRoZSB0ZXh0IGdyZXllZCBvdXQgdGhlXG4vLyBtaWRkbGUgb2YgZXZlcnkgcGhvdG8gYW5kIGV2ZXJ5IGJ1c3kgc2NlbmUuIExheWVyIGFuZCBDU1MgYXJlIGJvdGggZ29uZTtcbi8vIGB0ZXh0LWNvbG9yYCBhbmQgYHRleHQtb3V0bGluZWAgYmVsb3cgYXJlIHdoYXQgZml4IGFuIHVucmVhZGFibGVcbi8vIGNvbWJpbmF0aW9uIG5vdywgd2l0aG91dCB0b3VjaGluZyB0aGUgcGljdHVyZS5cblxuLy8g4pSA4pSAIExheWVyIDQ6IGNhcmQgdGV4dCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5xZG5hcHJvLXB1bHNlLWNhbnZhcyAucXBjLXRleHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAyNHB4OyAgLy8gZmFsbGJhY2s6IGJyb3dzZXJzIHdpdGhvdXQgY29udGFpbmVyLXF1ZXJ5IHVuaXRzXG4gIHBhZGRpbmc6IDhjcXc7ICAvLyA9IDI0cHggb24gdGhlIGNhbGlicmF0ZWQgMzAwcHggY2FyZFxuICBmb250LXNpemU6IDIwcHg7IC8vIGZhbGxiYWNrOyB0aGUgW2RhdGEtc2NhbGVdIHJ1bGVzIGJlbG93IG93biB0aGUgcmVhbCBzaXplXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dCwgIzBiMGIwZCk7XG59XG5cbi8vIFRoZSBzY2FsZSB0cmFwIChiZXNsdWl0IDE0KSBpbiBjb250YWluZXItd2lkdGggdW5pdHMgKGthYXJ0IDIsXG4vLyBiZXNsdWl0IDEpLiBUaGUgSlMgb25seSBwdWJsaXNoZXMgV0hJQ0ggc3RlcCBhcHBsaWVzLCBhcyBgZGF0YS1zY2FsZWAgb25cbi8vIHRoZSBob3N0IOKAlCB0aGUgc3RlcCBuYW1lcyBhcmUgdGhlIGNoYXJhY3RlciBicmVha3BvaW50cyBmcm9tXG4vLyBTQ0FMRV9TVEVQUywgc28gYSByZW5kZXJlZCBjYXJkIHRyYWNlcyBzdHJhaWdodCBiYWNrIHRvIHRoYXQgdGFibGUuXG4vL1xuLy8gbWF4KCkgYW5kIG5vdCBjbGFtcCgpOiBhIGxvd2VyIGJvdW5kIG9mIDEzcHgga2VlcHMgdGhlIHRpdGxlIGxlZ2libGUgb25cbi8vIGEgdmVyeSBuYXJyb3cgY2FyZCAoYSByb3cgdGh1bWJuYWlsKSwgYW5kIGJlc2x1aXQgMiBleHBsaWNpdGx5IGZvcmJpZHMgYW5cbi8vIHVwcGVyIGJvdW5kIOKAlCB0aGUgY2FyZCBpcyBhbGxvd2VkIHRvIGtlZXAgZ3Jvd2luZyB3aXRoIGl0cyBjb250YWluZXIuXG4vLyBjbGFtcCgpIHdvdWxkIGZvcmNlIGEgdGhpcmQsIGNhcHBpbmcgYXJndW1lbnQsIHNvIG1heCgpIGlzIGV4YWN0bHkgdGhlXG4vLyBcImZsb29yIG9ubHksIG5vIGNlaWxpbmdcIiB0aGlzIG5lZWRzLlxuLnFkbmFwcm8tcHVsc2UtY2FudmFzW2RhdGEtc2NhbGU9XCIyMFwiXSAucXBjLXRleHQgIHsgZm9udC1zaXplOiBtYXgoMTNweCwgOS4zM2Nxdyk7IH0gLy8gd2FzIDI4cHggQDMwMFxuLnFkbmFwcm8tcHVsc2UtY2FudmFzW2RhdGEtc2NhbGU9XCI0MFwiXSAucXBjLXRleHQgIHsgZm9udC1zaXplOiBtYXgoMTNweCwgOGNxdyk7IH0gICAgLy8gd2FzIDI0cHggQDMwMFxuLnFkbmFwcm8tcHVsc2UtY2FudmFzW2RhdGEtc2NhbGU9XCI3MFwiXSAucXBjLXRleHQgIHsgZm9udC1zaXplOiBtYXgoMTNweCwgNi42N2Nxdyk7IH0gLy8gd2FzIDIwcHggQDMwMFxuLnFkbmFwcm8tcHVsc2UtY2FudmFzW2RhdGEtc2NhbGU9XCIxMTBcIl0gLnFwYy10ZXh0IHsgZm9udC1zaXplOiBtYXgoMTNweCwgNmNxdyk7IH0gICAgLy8gd2FzIDE4cHggQDMwMFxuLnFkbmFwcm8tcHVsc2UtY2FudmFzW2RhdGEtc2NhbGU9XCJtYXhcIl0gLnFwYy10ZXh0IHsgZm9udC1zaXplOiBtYXgoMTNweCwgNS4zM2Nxdyk7IH0gLy8gd2FzIDE2cHggQDMwMFxuXG4vLyBBdXRvbWF0aWMgZGFyay9saWdodCB0ZXh0IHRpbnQgKGJlc2x1aXQgNykg4oCUIHNldCBvbiB0aGUgaG9zdCBhc1xuLy8gZGF0YS10aW50IGJ5IHRoZSBjb21wb25lbnQsIGJhc2VkIG9uIHRoZSBjb2xvdXIncyBwZXJjZXB0dWFsXG4vLyBicmlnaHRuZXNzLCBvciBmb3JjZWQgXCJsaWdodFwiIGZvciBhIHBob3RvLiBBIGB0ZXh0LWNvbG9yYCBhdHRyaWJ1dGVcbi8vIGJlYXRzIGJvdGggcnVsZXM6IHRoZSBKUyB3cml0ZXMgdGhhdCBjb2xvdXIgaW5saW5lIG9uIC5xcGMtdGV4dCwgYW5kIGFuXG4vLyBpbmxpbmUgc3R5bGUgb3V0cnVucyBhbnkgc2VsZWN0b3IgaGVyZSAoYmVzbHVpdCAxMikuIFRoZSBob3N0IGFsc28gZ2V0cyBhXG4vLyBgcXBjLS10ZXh0LWNvbG9yYCBjbGFzcyBpbiB0aGF0IGNhc2Ug4oCUIG5vIHN0eWxpbmcgaGFuZ3Mgb2ZmIGl0IGhlcmUsIGl0IGlzXG4vLyBhIHN0YXRlIGhvb2sgc28gYSBob3N0IChvciB0aGUgbGlicmFyeSBwcmV2aWV3KSBjYW4gdGVsbCBhbiBvdmVycmlkZGVuXG4vLyBjb2xvdXIgZnJvbSBhbiBhdXRvbWF0aWMgb25lIHdpdGhvdXQgcmUtcGFyc2luZyB0aGUgYXR0cmlidXRlLlxuLnFkbmFwcm8tcHVsc2UtY2FudmFzW2RhdGEtdGludD1cImxpZ2h0XCJdIC5xcGMtdGV4dCB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uLCAjZmZmZmZmKTtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhbnZhc1tkYXRhLXRpbnQ9XCJkYXJrXCJdIC5xcGMtdGV4dCB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQsICMwYjBiMGQpO1xufVxuXG4vLyBUaGluIGRhcmsgY29udG91ciBhcm91bmQgdGhlIHRleHQgKGthYXJ0IDIsIGJlc2x1aXQgMTIpLCBmb3IgYSBwaWN0dXJlXG4vLyB0aGF0IGlzIGJ1c3kgb3IgbWlkLWdyZXksIHdoZXJlIG5laXRoZXIgYmxhY2sgbm9yIHdoaXRlIHRleHQgY2Fycmllcy5cbi8vIFN0YWNrZWQgdGV4dC1zaGFkb3dzIGFuZCBOT1QgLXdlYmtpdC10ZXh0LXN0cm9rZTogYSByZWFsIHN0cm9rZSBpcyBkcmF3blxuLy8gb24gdGhlIGdseXBoJ3Mgb3duIG91dGxpbmUgYW5kIGVhdHMgdGhpbiBsZXR0ZXJzIGZyb20gdGhlIGluc2lkZSwgd2hpY2hcbi8vIGlzIGV4YWN0bHkgd2hhdCB0aGlzIHR5cGVmYWNlIGRvZXMgYmFkbHkgYXQgNjAwIHdlaWdodC4gRWlnaHQgb2Zmc2V0c1xuLy8gZHJhdyB0aGUgcmluZywgdGhlIG5pbnRoIHNvZnRlbnMgaXQuIFRoZSB3aWR0aCBpcyBpbiBlbSwgc28gdGhlIGNvbnRvdXJcbi8vIHN0YXlzIGEgaGFpcmxpbmUgb24gYSBiaWcgY2FyZCBpbnN0ZWFkIG9mIGdyb3dpbmcgaW50byBhIGZhdCByaW0uXG4vLyBBIGNvbnRvdXIgQUxXQVlTIGdvZXMgd2l0aCBhIHdoaXRlIHRpdGxlLCBuZXZlciB3aXRoIGEgZGFyayBvbmUuIEtpbSdzIG93blxuLy8gd29yZGluZyBmb3IgdGhlIGRvdWJ0ZnVsIGNhc2UgKDI4LjA4LjIwMjYpOiBcImJpaiB0d2lqZmVsIGFsdGlqZCB3aXR0ZSB0ZWtzdFxuLy8gbWV0IGVlbiBkdW4gZG9ua2VyIHJhbmRqZSBlcm9taGVlblwiLiBUaGUgbWVhc3VyZW1lbnQgcmVwb3J0cyBicmlnaHRuZXNzIGFuZFxuLy8gc3ByZWFkIGluZGVwZW5kZW50bHksIHNvIGEgYnVzeS1idXQtbGlnaHRpc2ggbWlkZGxlIHdvdWxkIG90aGVyd2lzZSBjb21lIG91dFxuLy8gYXMgZGFyayB0ZXh0IHdpdGggYSBkYXJrIGhhbG8sIHdoaWNoIHJlYWRzIGFzIGEgc211ZGdlIHJhdGhlciB0aGFuIGFcbi8vIGNvbnRvdXIuIEFuIGV4cGxpY2l0IGB0ZXh0LWNvbG9yYCBzdGlsbCB3aW5zOiB0aGUgY29tcG9uZW50IHdyaXRlcyB0aGF0IG9uZVxuLy8gaW5saW5lLCBhbmQgaW5saW5lIGJlYXRzIGFueSBzZWxlY3RvciBoZXJlLlxuLnFkbmFwcm8tcHVsc2UtY2FudmFzLnFwYy0tdGV4dC1vdXRsaW5lIC5xcGMtdGV4dCB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uLCAjZmZmZmZmKTtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhbnZhcy5xcGMtLXRleHQtb3V0bGluZSAucXBjLXRleHQge1xuICAtLXFwYy1vdXRsaW5lLXc6IDAuMDRlbTtcbiAgLS1xcGMtb3V0bGluZS1jOiB2YXIoLS1jLWJsYWNrLTQ1LCByZ2JhKDAsIDAsIDAsIC40NSkpO1xuICB0ZXh0LXNoYWRvdzpcbiAgICB2YXIoLS1xcGMtb3V0bGluZS13KSAwIDAgdmFyKC0tcXBjLW91dGxpbmUtYyksXG4gICAgY2FsYyh2YXIoLS1xcGMtb3V0bGluZS13KSAqIC0xKSAwIDAgdmFyKC0tcXBjLW91dGxpbmUtYyksXG4gICAgMCB2YXIoLS1xcGMtb3V0bGluZS13KSAwIHZhcigtLXFwYy1vdXRsaW5lLWMpLFxuICAgIDAgY2FsYyh2YXIoLS1xcGMtb3V0bGluZS13KSAqIC0xKSAwIHZhcigtLXFwYy1vdXRsaW5lLWMpLFxuICAgIHZhcigtLXFwYy1vdXRsaW5lLXcpIHZhcigtLXFwYy1vdXRsaW5lLXcpIDAgdmFyKC0tcXBjLW91dGxpbmUtYyksXG4gICAgY2FsYyh2YXIoLS1xcGMtb3V0bGluZS13KSAqIC0xKSB2YXIoLS1xcGMtb3V0bGluZS13KSAwIHZhcigtLXFwYy1vdXRsaW5lLWMpLFxuICAgIHZhcigtLXFwYy1vdXRsaW5lLXcpIGNhbGModmFyKC0tcXBjLW91dGxpbmUtdykgKiAtMSkgMCB2YXIoLS1xcGMtb3V0bGluZS1jKSxcbiAgICBjYWxjKHZhcigtLXFwYy1vdXRsaW5lLXcpICogLTEpIGNhbGModmFyKC0tcXBjLW91dGxpbmUtdykgKiAtMSkgMCB2YXIoLS1xcGMtb3V0bGluZS1jKSxcbiAgICAwIDAgY2FsYyh2YXIoLS1xcGMtb3V0bGluZS13KSAqIDMpIHZhcigtLXFwYy1vdXRsaW5lLWMpO1xufVxuXG4ucWRuYXByby1wdWxzZS1jYW52YXMucXBjLS1lZGl0YWJsZSAucXBjLXRleHQge1xuICBjdXJzb3I6IHRleHQ7XG59XG4vLyBBIHZpc2libGUgcmluZyB3aGlsZSB0eXBpbmcgaXMgdGhlIG9ubHkgc2lnbiB0aGlzIGlzIGEgcmVhbCBmaWVsZCDigJRcbi8vIHRoZXJlIGlzIG5vIHBsYWNlaG9sZGVyIGNocm9tZSBhcm91bmQgaXQsIGl0IElTIHRoZSBjYXJkLiBVc2VzIHRoZSBzYW1lXG4vLyAtLWZvY3VzLXJpbmcgdG9rZW4gYXMgdGhlIHJlc3Qgb2YgdGhlIGxpYnJhcnksIGJ1dCBJTlNFVCBvbmx5OiB0aGUgY2FyZFxuLy8gaXRzZWxmIGNsaXBzIG92ZXJmbG93LCBhbmQgLnFwYy10ZXh0IGZpbGxzIHRoZSBjYXJkIGV4YWN0bHksIHNvIGFuXG4vLyBvdXR3YXJkIHJpbmcgKyBnbG93ICh0aGUgbGlicmFyeSdzIHVzdWFsIGRvdWJsZSBib3gtc2hhZG93KSB3b3VsZCBiZVxuLy8gY2xpcHBlZCBhd2F5IGVudGlyZWx5IGFuZCBuZXZlciBzaG93LiBgYm9yZGVyLXJhZGl1czogaW5oZXJpdGAgZm9sbG93c1xuLy8gdGhlIGNhcmQsIHdoaWNoIGlzIHNxdWFyZSBzaW5jZSBiZXNsdWl0IDguXG4ucWRuYXByby1wdWxzZS1jYW52YXMucXBjLS1lZGl0YWJsZSAucXBjLXRleHQ6Zm9jdXMtdmlzaWJsZSB7XG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1yaW5nLCAjNDA0OTlhKTtcbn1cblxuLy8g4pSA4pSAIExheWVyIDU6IG1hcmt1cCAoZHJhd2luZykgbGF5ZXIg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBLYWFydCAyLCBiZXNsdWl0IDM6IE9ORSBmbGF0IHRyYW5zcGFyZW50IHBpY3R1cmUgKGBtYXJrdXAtaW1hZ2VgKSBvdmVyXG4vLyB0aGUgd2hvbGUgY2FyZCwgY292ZXItZml0IGxpa2UgdGhlIHBob3RvIGxheWVyLiBJdCBjYXJyaWVzIHRoZSBiYWtlZFxuLy8gb3V0cHV0IG9mIHRoZSBtYXJrdXAgZWRpdG9yIOKAlCB0ZXh0IGxhYmVscywgcGVuIHN0cm9rZXMsIHNoYXBlcywgZW1vamkg4oCUXG4vLyBzbyB0aGlzIGNvbXBvbmVudCBuZXZlciBoYXMgdG8ga25vdyBhYm91dCB0aGUgaW5kaXZpZHVhbCBvYmplY3RzLiBBYm92ZVxuLy8gdGhlIHRleHQgKG1hcmt1cCBpcyBkcmF3biBvbiB0b3Agb2YgdGhlIGNhcmQpLCBiZWxvdyAucXBjLW92ZXJsYXkgKHdoaWNoXG4vLyBzdGF5cyB0aGUgbGl2aW5nIGxheWVyKS4gTmV2ZXIgY2xpY2thYmxlOiB0aGUgY2FyZCB1bmRlcm5lYXRoIG11c3Qga2VlcFxuLy8gaXRzIGNsaWNrL3R5cGluZyBiZWhhdmlvdXIuXG4ucWRuYXByby1wdWxzZS1jYW52YXMgLnFwYy1tYXJrdXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FudmFzLnFwYy0tbWFya3VwIC5xcGMtbWFya3VwIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vIOKUgOKUgCBMYXllciA2OiBvdmVybGF5IHNsb3QgKHN0aWNrZXJzL0xvdHRpZSdzKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIERlbGliZXJhdGVseSBlbXB0eSBoZXJlIOKAlCB0aGUgaG9zdCByZW5kZXJzIHN0aWNrZXJzIGFuZCBhbmltYXRlZCBpY29uc1xuLy8gaW50byBpdCAoc2VlIF9wdWxzZS5zY3NzLCBgLnFwYy1vdmVybGF5IC5wdWxzZS1vdi1pdGVtYCkuIFN0YXlzIHRoZVxuLy8gdG9wbW9zdCB2aXN1YWwgbGF5ZXI6IGEgYmFrZWQgbWFya3VwIFBORyBjYW5ub3QgYW5pbWF0ZSwgYW55dGhpbmcgdGhhdFxuLy8gbXVzdCBtb3ZlIGJlbG9uZ3MgaGVyZS5cbi5xZG5hcHJvLXB1bHNlLWNhbnZhcyAucXBjLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLy8g4pSA4pSAIExheWVyIDc6IGNoYXJhY3RlciBjb3VudGVyIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gRml4ZWQgZGFyayBjaGlwIHJlZ2FyZGxlc3Mgb2YgY2FyZCB0aW50OiBpdCBzaXRzIG9uIHRvcCBvZiB3aGF0ZXZlclxuLy8gYmFja2dyb3VuZCBpcyBjaG9zZW4gYW5kIGhhcyB0byBzdGF5IGxlZ2libGUgZWl0aGVyIHdheS4gRWRpdG9yIGNocm9tZSxcbi8vIG5vdCBjYXJkIGNvbnRlbnQsIHNvIGl0IGtlZXBzIGl0cyBmaXhlZCBweCBzaXplIGFuZCBkb2VzIE5PVCBzY2FsZSB3aXRoXG4vLyB0aGUgY2FyZC5cbi5xZG5hcHJvLXB1bHNlLWNhbnZhcyAucXBjLWNvdW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA4cHg7XG4gIGJvdHRvbTogOHB4O1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAycHggOHB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXBpbGwsIDk5OXB4KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ibGFjay00NSwgcmdiYSgwLCAwLCAwLCAuNDUpKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24sICNmZmZmZmYpO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhbnZhcyAucXBjLWNvdW50ZXIucXBjLWNvdW50ZXItLXZpc2libGUge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8tcHVzaC1ub3RpZmljYXRpb24g4oCUIE9TLXN0eWxlIG5vdGlmaWNhdGlvbiBjYXJkXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBSZXByb2R1Y2VzIHRoZSBsb2NrLXNjcmVlbiBub3RpZmljYXRpb24gc2hhcGUgaW5zaWRlIG91ciBvd25cbi8vICBzdXJmYWNlczogYXBwIHRpbGUgKyB0aXRsZS90aW1lIGhlYWRsaW5lICsgYm9keSwgb24gYSBGUk9TVEVEXG4vLyAgR0xBU1MgcGxhdGUgKGl0IGZsb2F0cyBvdmVyIGNvbnRlbnQsIHNvIGl0IHBpY2tzIHRoYXQgY29udGVudFxuLy8gIHVwIHJhdGhlciB0aGFuIGNvdmVyaW5nIGl0IHdpdGggYSBmbGF0IHdoaXRlIHNsYWIpLiBUaHJlZVxuLy8gIHJlbmRlcmluZ3MgZHJpdmVuIGJ5IFNUQVRFIGFuZCBDT05URU5ULCBub3QgYnkgYSBzaXplIHdvcmRcbi8vICAoYHNpemVgIGFscmVhZHkgbWVhbnMgdGhyZWUgZGlmZmVyZW50IHNjYWxlcyBlbHNld2hlcmUpOlxuLy8gICAgLS1jb2xsYXBzZWQgIChkZWZhdWx0KSBib2R5IGNsYW1wZWQgdG8gMiBsaW5lc1xuLy8gICAgLS1leHBhbmRlZCAgICAgICAgICAgICAgbWV0YSBsaW5lICsgZnVsbCBib2R5ICsgYWN0aW9uc1xuLy8gICAgKyBpbWFnZSAgICAgICAgICAgICAgICAgbWVkaWEgYmxvY2tcbi8vXG4vLyAgVHlwZSBtb2RpZmllcnMgY29sb3VyIHRoZSBhcHAgdGlsZSBvbmx5LCBpbiB0aGUgc2FtZSBzaWduYWxcbi8vICBmYW1pbGllcyBhcyBxZG5hcHJvLWFsZXJ0IC8gcWRuYXByby10b2FzdDpcbi8vICAgIG5ldXRyYWwgIHB1cnBsZSBicmFuZCB0aWxlICh0aGUgUUROQSBkZWZhdWx0KVxuLy8gICAgaW5mbyAgICAgdmFyKC0tYy1zaWduYWwtYmx1ZS10ZXh0KSAgICAgIzZhOGFiNFxuLy8gICAgc3VjY2VzcyAgdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCkgICAgIzQyOGI2ZVxuLy8gICAgd2FybmluZyAgdmFyKC0tYy13YXJuaW5nLWJyaWdodC10ZXh0KSAgIzlhNmExMFxuLy8gICAgZXJyb3IgICAgdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpICAgICAgI2M2NWE1YVxuLy9cbi8vICBGTEFUIENTUyAobm8gbmVzdGluZykgc28gaXQgY2FuIGJlIHN5bmNlZCB0byB0aGUgUFdBIHZlcmJhdGltLFxuLy8gIGV4YWN0bHkgbGlrZSBxZG5hcHJvLWluZm8tY2FyZCAvIHFkbmFwcm8tZXZlbnQtY2FyZC5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbiB7XG4gIC8vIFN1cmZhY2UgKyB0eXBlIHZhcmlhYmxlcyAobmV1dHJhbCA9IGJyYW5kIHB1cnBsZSB0aWxlKVxuICAtLXBuLXN1cmZhY2U6ICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjgpO1xuICAtLXBuLXRpdGxlOiAgICAgICB2YXIoLS1jLXRleHQtaGVhZGluZywgIzFhMWQzYSk7XG4gIC0tcG4tYm9keTogICAgICAgIHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMWExZDNhKTtcbiAgLS1wbi1tZXRhOiAgICAgICAgdmFyKC0tYy10ZXh0LW11dGVkLCAjNmE2ZTlhKTtcbiAgLS1wbi10aWxlLWJnOiAgICAgdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKTtcbiAgLS1wbi10aWxlLWdseXBoOiAgI2ZmZmZmZjtcbiAgLS1wbi1kaXZpZGVyOiAgICAgcmdiYSg0MCwgNDYsIDEwMCwgMC4xMCk7XG4gIC0tcG4tZWRnZTogICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42MCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDEzcHggMTRweDtcbiAgLy8gU2hhcnBlciB0aGFuIHRoZSBPUyBwbGF0ZSBvbiBwdXJwb3NlIChLaW0gMDMuMDguMjAyNik6IHRoZSBkZXNpZ24tdG9rZW5cbiAgLy8gMTJweCBpbnN0ZWFkIG9mIGEgc29mdCAxOHB4LCBzbyB0aGUgY2FyZCBzaXRzIGluIHRoZSBzYW1lIHJhZGl1cyBmYW1pbHkgYXNcbiAgLy8gdGhlIHJlc3Qgb2YgdGhlIHBsYXRmb3JtLlxuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTMsIDEycHgpO1xuICAvLyBGUk9TVEVEIEdMQVNTIChLaW0gMDQuMDguMjAyNiAtIHRoZSBmbGF0IHdoaXRlIGNhcmQgaGFkIHRvbyBsaXR0bGUgY29udHJhc3RcbiAgLy8gYWdhaW5zdCB0aGUgYXBwJ3MgbmVhci13aGl0ZSBwYWdlcykuIFRoZSBibHVyIHdhcyBhbHdheXMgaGVyZTsgYXQgOTIlIHdoaXRlXG4gIC8vIG5vdGhpbmcgY2FtZSB0aHJvdWdoIGl0LCBzbyBpdCByZWFkIGFzIGEgcGxhaW4gY2FyZC4gNjglIGlzIHRoZSBjb21wcm9taXNlOlxuICAvLyBsb3cgZW5vdWdoIHRoYXQgdGhlIGNvbnRlbnQgYmVoaW5kIGFjdHVhbGx5IHNob3dzIGFuZCB0aGUgYmx1ciByZWdpc3RlcnMsXG4gIC8vIGhpZ2ggZW5vdWdoIHRoYXQgZGFyayBib2R5IHRleHQgc3RheXMgY29tZm9ydGFibHkgbGVnaWJsZSBvdmVyIGEgY29sb3VyZWRcbiAgLy8gc3VyZmFjZSAoNjglIHdoaXRlIG92ZXIgYnJhbmQgcHVycGxlIGNvbXBvc2l0ZXMgdG8gYSBsaWdodCBsYXZlbmRlciwgd2hpY2hcbiAgLy8ga2VlcHMgdGhlIHRleHQgd2VsbCBhYm92ZSB0aGUgQUEgY29udHJhc3QgZmxvb3IpLiBibHVyK3NhdHVyYXRlIHZhbHVlcyBhcmVcbiAgLy8gcWRuYXByby10cmFuc2xhdGlvbi1wYW5lbCdzLCBzbyB0aGlzIGlzIHRoZSBwbGF0Zm9ybSdzIE9ORSBnbGFzcyByZWNpcGUuXG4gIGJhY2tncm91bmQ6IHZhcigtLXBuLXN1cmZhY2UpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigyNHB4KSBzYXR1cmF0ZSgxNjAlKTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDI0cHgpIHNhdHVyYXRlKDE2MCUpO1xuICAvLyBHbGFzcyBuZWVkcyBhbiBFREdFOiBhIGJsdXIgYWxvbmUgZG9lcyBub3QgdGVsbCB5b3Ugd2hlcmUgdGhlIHBhbmVsIHN0b3BzLlxuICAvLyBUd28gaGFpcmxpbmVzIGRvIHRoZSB3b3JrIG9uIGJvdGgga2luZHMgb2YgYmFja2Ryb3AgLSBhbiBpbm5lciB3aGl0ZSBjYXRjaFxuICAvLyAocmVhZHMgb24gZGFya2VyIGNvbnRlbnQpIGFuZCwgaW4gdGhlIHNoYWRvdywgYW4gb3V0ZXIgZGFyayBoYWlybGluZSAocmVhZHNcbiAgLy8gb24gdGhlIG5lYXItd2hpdGUgcGFnZXMsIHdoaWNoIGlzIGV4YWN0bHkgd2hlcmUgdGhlIGZsYXQgY2FyZCBkaXNhcHBlYXJlZCkuXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXBuLWVkZ2UpO1xuICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSg0MCwgNDYsIDEwMCwgMC4wNiksIDAgMTBweCAzMHB4IHJnYmEoNDAsIDQ2LCAxMDAsIDAuMTgpO1xuICBmb250LWZhbWlseTogdmFyKC0tZmYsIFwiSW50ZXJcIiwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZik7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi8vIC0tLSBTd2lwZSB0byBkaXNtaXNzIChvcHQtaW4sIHNlZSB0aGUgY29tcG9uZW50J3Mgc3dpcGUtZGlzbWlzcyBhdHRyaWJ1dGUpIC0tLVxuLy8gdG91Y2gtYWN0aW9uOiBub25lIGJlY2F1c2UgdGhlIGdlc3R1cmUgbmVlZHMgdGhlIHZlcnRpY2FsIGF4aXM7IHdpdGhvdXQgaXQgdGhlXG4vLyBicm93c2VyIGNsYWltcyB0aGUgZHJhZyBmb3IgcGFnZSBzY3JvbGxpbmcgYW5kIHRoZSBjYXJkIG5ldmVyIG1vdmVzLiBPbmx5IG9uIHRoZVxuLy8gc3dpcGVhYmxlIHZhcmlhbnQsIHNvIGEgY2FyZCB0aGF0IGlzIG5vdCBzd2lwZWFibGUgbmV2ZXIgYmxvY2tzIHNjcm9sbGluZy5cbi5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uLS1zd2lwZWFibGUge1xuICB0b3VjaC1hY3Rpb246IG5vbmU7XG4gIC8vIFNwcmluZyBiYWNrIGFmdGVyIGEgZHJhZyB0aGF0IGRpZCBub3QgY29tbWl0LiBSZW1vdmVkIHdoaWxlIGRyYWdnaW5nIHNvIHRoZVxuICAvLyBjYXJkIHRyYWNrcyB0aGUgZmluZ2VyIDE6MSBpbnN0ZWFkIG9mIGVhc2luZyBiZWhpbmQgaXQuXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI0cyBjdWJpYy1iZXppZXIoMC4yMSwgMS4yNCwgMC40MiwgMSk7XG59XG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbi0tZHJhZ2dpbmcge1xuICB0cmFuc2l0aW9uOiBub25lO1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuLy8gQ29tbWl0dGVkIHN3aXBlOiBmbHkgb3V0IHVwd2FyZC4gVGhlIGhvc3Qgc3RpbGwgb3ducyByZW1vdmFsOyB0aGlzIGlzIG9ubHkgdGhlXG4vLyBnZXN0dXJlIGZpbmlzaGluZyBpdHMgbW90aW9uLlxuLnFkbmFwcm8tcHVzaC1ub3RpZmljYXRpb24tLXN3aXBlLW91dCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTQwJSk7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2UtaW4sIG9wYWNpdHkgMC4ycyBlYXNlLWluO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLy8gLS0tIFR5cGUgbW9kaWZpZXJzIChhcHAgdGlsZSBvbmx5KSAtLS1cbi5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uLS1pbmZvICAgIHsgLS1wbi10aWxlLWJnOiB2YXIoLS1jLXNpZ25hbC1ibHVlLXRleHQsICM2YThhYjQpOyB9XG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbi0tc3VjY2VzcyB7IC0tcG4tdGlsZS1iZzogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCwgIzQyOGI2ZSk7IH1cbi5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uLS13YXJuaW5nIHsgLS1wbi10aWxlLWJnOiB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LXRleHQsICM5YTZhMTApOyB9XG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbi0tZXJyb3IgICB7IC0tcG4tdGlsZS1iZzogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpOyB9XG5cbi8vIC0tLSBSb3cgKHRpbGUgfCBtYWluIHwgY29udHJvbHMpIC0tLVxuLy8gSXRzIG93biBlbGVtZW50IHJhdGhlciB0aGFuIHRoZSBob3N0IGl0c2VsZiwgYmVjYXVzZSB0aGUgYWN0aW9uIGZvb3RlciBtdXN0IHNpdFxuLy8gQkVMT1cgaXQgYW5kIHNwYW4gdGhlIGZ1bGwgY2FyZCB3aWR0aCwgdGhlIHdheSB0aGUgT1MgZHJhd3MgaXQuXG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbl9fcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMTFweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi8vIC0tLSBBcHAgdGlsZSAtLS1cbi8vIFJvdW5kZWQgU1FVQVJFLCBub3QgYSBjaXJjbGU6IHRoYXQgaXMgd2hhdCB0aGUgcGxhdGZvcm1zIGRyYXcgZm9yIHRoZSBhcHBcbi8vIGljb24sIGFuZCBpdCBrZWVwcyBpdCBkaXN0aW5jdCBmcm9tIHFkbmFwcm8tYXZhdGFyIChhIHBlcnNvbikgYW5kIGZyb20gdGhlXG4vLyBiZWxsIGxpc3QncyByb3VuZCBpY29uIGNpcmNsZSAoYSBtZXNzYWdlIHR5cGUpLlxuLnFkbmFwcm8tcHVzaC1ub3RpZmljYXRpb25fX3RpbGUge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICAvLyA4cHggKC0tci0yKSwgb25lIHN0ZXAgdW5kZXIgdGhlIGNhcmQncyAxMnB4ICgtLXItMyk6IGF0IDlweCB0aGUgdGlsZSByZWFkIGFzXG4gIC8vIGFsbW9zdCBhcyByb3VuZCBhcyB0aGUgc2hhcnBlbmVkIGNhcmQgaXRzZWxmIChLaW0gMDMuMDguMjAyNikuXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMiwgOHB4KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tcG4tdGlsZS1iZyk7XG4gIGNvbG9yOiB2YXIoLS1wbi10aWxlLWdseXBoKTtcbiAgbGluZS1oZWlnaHQ6IDA7XG59XG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbl9fdGlsZSBxZG5hcHJvLWljb24sXG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbl9fdGlsZSAucWRuYXByby1pY29uIHtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4vLyBJbWFnZSB0aWxlOiB0aGUgcGljdHVyZSBicmluZ3MgaXRzIG93biBjb2xvdXJzLCBzbyB0aGUgdHlwZSBmaWxsIGdvZXMgbmV1dHJhbCAtXG4vLyBvdGhlcndpc2UgYSB0cmFuc3BhcmVudCBhY3Rpdml0eSBpY29uIHNpdHMgb24gYnJhbmQgcHVycGxlIGFuZCByZWFkcyBhcyBhIGJ1Zy5cbi5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uX190aWxlLS1pbWFnZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCwgI2YwZjFmMik7XG4gIHBhZGRpbmc6IDNweDtcbn1cbi5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uX190aWxlLWltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTEsIDRweCk7XG4gIC8vIGNvbnRhaW4sIE5PVCBjb3ZlcjogY3JvcHBpbmcgYSAyNHB4IGlsbHVzdHJhdGlvbiB0byBmaWxsIGEgc3F1YXJlIGxvc2VzIHRoZVxuICAvLyB2ZXJ5IHRoaW5nIHRoYXQgbWFrZXMgdGhlIHRhc2tsaXN0IHJlY29nbmlzYWJsZS4gQSBzcXVhcmUgbG9nbyBmaWxscyBpdCBhbnl3YXkuXG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG5cbi8vIC0tLSBNYWluIGNvbHVtbiAtLS1cbi5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uX19tYWluIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLy8gSGVhZGxpbmU6IHRpdGxlIGFuZCB0aW1lIG9uIE9ORSBsaW5lLCB0aW1lIHRyYWlsaW5nIHRoZSB0aXRsZSAoaW5saW5lKSwgdGhlXG4vLyB3YXkgdGhlIE9TIHJlbmRlcnMgaXQuXG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbl9faGVhZGxpbmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGdhcDogNnB4O1xufVxuXG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbl9fdGl0bGUge1xuICBtaW4td2lkdGg6IDA7XG4gIGNvbG9yOiB2YXIoLS1wbi10aXRsZSk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG59XG5cbi8vIENvbGxhcHNlZDogdGhlIHRpdGxlIHRha2VzIG9uZSBsaW5lIGFuZCBlbGxpcHNpc2VzLCBzbyB0aGUgdGltZSBzdGF5cyBiZXNpZGVcbi8vIGl0IGluc3RlYWQgb2YgYmVpbmcgb3JwaGFuZWQgb24gYSBsaW5lIG9mIGl0cyBvd24uIFRoaXMgaXMgd2hhdCB0aGUgT1MgZG9lcyAtXG4vLyBvbiB0aGUgbG9jayBzY3JlZW4gYSBsb25nIHRpdGxlIHRydW5jYXRlcyBhbmQgdGhlIHRpbWVzdGFtcCBob2xkcyBpdHMgcGxhY2UuXG4vLyBFeHBhbmRlZCAoc3RlcCAyKSBsZXRzIHRoZSB0aXRsZSB3cmFwIHRvIGl0cyBmdWxsIGxlbmd0aC5cbi8vIGZsZXg6IDAgMSBhdXRvLCBkZWxpYmVyYXRlbHkgTk9UIDEgMSBhdXRvOiB0aGUgdGl0bGUgbXVzdCBTSFJJTksgd2hlbiB0aGVyZSBpc1xuLy8gbm8gcm9vbSBidXQgbmV2ZXIgR1JPVywgb3RoZXJ3aXNlIGEgc2hvcnQgdGl0bGUgc3RyZXRjaGVzIHRoZSBib3ggYW5kIHB1c2hlcyB0aGVcbi8vIHRpbWUgb3V0IHRvIHRoZSByaWdodCBlZGdlLiBJbiB0aGUgcmVmZXJlbmNlIHRoZSB0aW1lIHNpdHMgZGlyZWN0bHkgYmVoaW5kIHRoZVxuLy8gdGl0bGUsIGFuZCBvbmx5IGEgbG9uZyB0aXRsZSBwdXNoZXMgaXQgYWxvbmcgdG8gdGhlIGVkZ2UuXG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbi0tY29sbGFwc2VkIC5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uX190aXRsZSB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLnFkbmFwcm8tcHVzaC1ub3RpZmljYXRpb25fX3RpbWUge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgY29sb3I6IHZhcigtLXBuLW1ldGEpO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uX19ib2R5IHtcbiAgbWFyZ2luLXRvcDogMnB4O1xuICBjb2xvcjogdmFyKC0tcG4tYm9keSk7XG4gIGZvbnQtc2l6ZTogMTMuNXB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS40MjtcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG59XG5cbi8vIENvbGxhcHNlZCA9IHRoZSBib2R5IGlzIGNsYW1wZWQgdG8gMiBsaW5lcyB3aXRoIGFuIGVsbGlwc2lzLiAtd2Via2l0LWxpbmUtY2xhbXBcbi8vIGlzIHRoZSBvbmx5IGNyb3NzLWJyb3dzZXIgd2F5IHRvIGNsYW1wIGF0IGEgTElORSBjb3VudDsgaXQgaXMgc3VwcG9ydGVkIGluXG4vLyBldmVyeSBlbmdpbmUgd2Ugc2hpcCBvbiAoQ2hyb21lL1NhZmFyaS9XS1dlYlZpZXcvRmlyZWZveCkuXG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbi0tY29sbGFwc2VkIC5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uX19ib2R5IHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8gLS0tIENoZXZyb24gKyBkaXNtaXNzIC0tLVxuLy8gVG9wLWFsaWduZWQgYWdhaW5zdCB0aGUgaGVhZGxpbmUsIGFuZCBwdWxsZWQgb3V0IG9mIHRoZSBwYWRkaW5nIGEgdG91Y2ggc29cbi8vIHRoZWlyIDI0cHggaGl0IGFyZWFzIGRvIG5vdCBwdXNoIHRoZSB0ZXh0IGNvbHVtbiBuYXJyb3dlciB0aGFuIGl0IGxvb2tzLlxuLnFkbmFwcm8tcHVzaC1ub3RpZmljYXRpb25fX2NoZXZyb24sXG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbl9fZGlzbWlzcyB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBtYXJnaW46IC0xcHggLTRweCAwIDA7XG59XG5cbi8vIC0tLSBFeHBhbmRlZCAtLS1cbi8vIE1ldGEgbGluZTogYXBwL3NlbmRlciBuYW1lICsgdGltZSBBQk9WRSB0aGUgdGl0bGUuIFRoZSBuYW1lIGNhcnJpZXMgdGhlIGJyYW5kXG4vLyBjb2xvdXIgKGl0IGlzIHRoZSBcIndob1wiLCBzYW1lIGlkZWEgYXMgdGhlIHNlbmRlciBsaW5lIGluIHRoZSBiZWxsIGxpc3QpOyB0aGVcbi8vIHRpbWUgc3RheXMgbXV0ZWQuXG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbl9fbWV0YSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgZ2FwOiA2cHg7XG4gIG1hcmdpbi1ib3R0b206IDFweDtcbn1cbi5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uX19hcHAge1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xuICBmb250LXNpemU6IDEyLjVweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4vLyBFeHBhbmRlZCwgdGhlIHRpdGxlIGlzIGEgYmxvY2sgb24gaXRzIG93biBsaW5lIGFuZCB3cmFwcyB0byBpdHMgZnVsbCBsZW5ndGguXG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbi0tZXhwYW5kZWQgLnFkbmFwcm8tcHVzaC1ub3RpZmljYXRpb25fX3RpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vIC0tLSBNZWRpYSBibG9jayAodGhlIExBUkdFIHJlbmRlcmluZykgLS0tXG4vLyBCZXR3ZWVuIHRoZSBib2R5IGFuZCB0aGUgYWN0aW9uIGZvb3RlciwgSU5ERU5URUQgdG8gdGhlIHRleHQgY29sdW1uIHJhdGhlciB0aGFuXG4vLyBmdWxsLWJsZWVkOiBpbiB0aGUgcmVmZXJlbmNlIGl0IGxpbmVzIHVwIHdpdGggdGhlIHRpdGxlIGFuZCBib2R5LCBub3Qgd2l0aCB0aGVcbi8vIGNhcmQgZWRnZXMgKHRoZSBmb290ZXIgaXMgdGhlIG9ubHkgZnVsbC1ibGVlZCBwYXJ0KS4gQSBmaXhlZCAxNi85IGJveCB3aXRoXG4vLyBvYmplY3QtZml0OiBjb3Zlciwgc28gYSBwb3J0cmFpdCBvciBhbiBvZGQtc2l6ZWQgaW1hZ2UgY2Fubm90IHN0cmV0Y2ggdGhlIGNhcmRcbi8vIHRvIGFuIHVucHJlZGljdGFibGUgaGVpZ2h0IGluIGEgbm90aWZpY2F0aW9uIHN0YWNrLlxuLnFkbmFwcm8tcHVzaC1ub3RpZmljYXRpb25fX21lZGlhIHtcbiAgbWFyZ2luLXRvcDogOXB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTIsIDhweCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGxpbmUtaGVpZ2h0OiAwO1xufVxuLnFkbmFwcm8tcHVzaC1ub3RpZmljYXRpb25fX21lZGlhLWltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgYXNwZWN0LXJhdGlvOiAxNiAvIDk7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICAvLyBQbGFjZWhvbGRlciB0aW50IHdoaWxlIGl0IGxvYWRzLCBzbyB0aGUgYmxvY2sgZG9lcyBub3QgZmxhc2ggYXMgYSB3aGl0ZSBob2xlXG4gIC8vIG9uIHRoZSBjYXJkLiBBIGZhaWxlZCBsb2FkIHJlbW92ZXMgdGhlIGJsb2NrIGVudGlyZWx5IChzZWUgdGhlIGNvbXBvbmVudCdzXG4gIC8vIGltYWdlLWVycm9yIGhhbmRsaW5nKSwgc28gdGhpcyB0aW50IGlzIG5ldmVyIGEgcGVybWFuZW50IGVtcHR5IHN0YXRlLlxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTAsICNmMGYxZjIpO1xufVxuXG4vLyAtLS0gQWN0aW9uIGZvb3RlciAtLS1cbi8vIE9uZSByb3csIG9uZSBjb2x1bW4gcGVyIGFjdGlvbiwgc3BsaXQgYnkgYSBoYWlybGluZS4gRnVsbC1ibGVlZDogaXQgc3RyZXRjaGVzXG4vLyBwYXN0IHRoZSBjYXJkJ3Mgb3duIHBhZGRpbmcgdG8gdGhlIGNhcmQgZWRnZXMsIHNvIHRoZSBkaXZpZGVyIHJlYWNoZXMgYm90aFxuLy8gc2lkZXMgbGlrZSB0aGUgT1MgZG9lcy4gQSBzaW5nbGUgYWN0aW9uIHNpbXBseSBmaWxscyB0aGUgcm93LlxuLnFkbmFwcm8tcHVzaC1ub3RpZmljYXRpb25fX2Zvb3RlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBtYXJnaW46IDExcHggLTE0cHggLTEzcHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1wbi1kaXZpZGVyKTtcbn1cbi8vIFRoZSBhY3Rpb24gSVMgYSA8cWRuYXByby1idXR0b24+OiBpdCBrZWVwcyBpdHMgb3duIHR5cGUgc3R5bGluZyAoc3VidGxlIC9cbi8vIHN1YnRsZS1tdXRlZCkgYW5kIG9ubHkgaXRzIEdFT01FVFJZIGlzIHRoZSBmb290ZXIncyBidXNpbmVzcy4gRWFjaCBidXR0b25cbi8vIHJvdW5kcyBPTkxZIHRoZSBjYXJkIGNvcm5lciBpdCBhY3R1YWxseSB0b3VjaGVzLCBzbyBpdHMgaG92ZXIgZmlsbCBuZXZlclxuLy8gb3ZlcmhhbmdzIHRoZSAxMnB4IHJhZGl1cyBhbmQgbmV2ZXIgcm91bmRzIHRoZSBzaGFyZWQgbWlkZGxlIGVkZ2UuXG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbl9fZm9vdGVyIC5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uX19hY3Rpb24ge1xuICBmbGV4OiAxIDEgMDtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uX19mb290ZXIgLnFkbmFwcm8tcHVzaC1ub3RpZmljYXRpb25fX2FjdGlvbjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLXItMywgMTJweCk7XG59XG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbl9fZm9vdGVyIC5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uX19hY3Rpb246bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1yLTMsIDEycHgpO1xufVxuLy8gVGhlIGhhaXJsaW5lIEJFVFdFRU4gdHdvIGFjdGlvbnMuIE9ubHkgZHJhd24gb24gYSBzZWNvbmQgYWN0aW9uLCBzbyBhIHNpbmdsZVxuLy8gYWN0aW9uIGhhcyBubyBzdHJheSBkaXZpZGVyLlxuLnFkbmFwcm8tcHVzaC1ub3RpZmljYXRpb25fX2FjdGlvbiArIC5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uX19hY3Rpb24ge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLXBuLWRpdmlkZXIpO1xufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvcmFkaW8vX3JhZGlvLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi5xZG5hcHJvLXJhZGlvIHtcbiAgLS1yYi1zaXplOiAxNnB4O1xuICAtLXJiLWJvcmRlcjogdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gIC0tcmItYmc6IHZhcigtLWMtZ3JleS01MCk7XG4gIC0tcmItYmctaG92ZXI6IHZhcigtLWMtYm9yZGVyLWNhcmQpO1xuICAtLXJiLXNlbGVjdGVkLWJnOiB2YXIoLS1jLWFjdGlvbi01MDApO1xuICAtLXJiLXNlbGVjdGVkLWJnLWhvdmVyOiB2YXIoLS1jLWFjdGlvbi02MDApO1xuICAtLXJiLXNlbGVjdGVkLWRvdDogI2ZmZmZmZjtcbiAgLS1yYi1mb2N1cy1yaW5nOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAtLXJiLWZvY3VzLWdsb3c6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjUpO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiB2YXIoLS1yYi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1yYi1zaXplKTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXJiLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tcmItYmcpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE0MG1zIGVhc2Utb3V0LCBib3JkZXItY29sb3IgMTQwbXMgZWFzZS1vdXQ7XG59XG4ucWRuYXByby1yYWRpbyAucmFkaW8tZG90IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDRweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1yYi1zZWxlY3RlZC1kb3QpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIyMG1zIGN1YmljLWJlemllcigwLjM0LCAxLjM1LCAwLjY0LCAxKSwgb3BhY2l0eSAxNDBtcyBlYXNlLW91dDtcbn1cbi5xZG5hcHJvLXJhZGlvLnJhZGlvLXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tcmItc2VsZWN0ZWQtYmcpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXJiLXNlbGVjdGVkLWJnKTtcbn1cbi5xZG5hcHJvLXJhZGlvLnJhZGlvLXNlbGVjdGVkIC5yYWRpby1kb3Qge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICBvcGFjaXR5OiAxO1xufVxuLnFkbmFwcm8tcmFkaW86aG92ZXI6bm90KC5yYWRpby1kaXNhYmxlZCk6bm90KC5yYWRpby1zZWxlY3RlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1yYi1iZy1ob3Zlcik7XG59XG4ucWRuYXByby1yYWRpbzpob3Zlcjpub3QoLnJhZGlvLWRpc2FibGVkKS5yYWRpby1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXJiLXNlbGVjdGVkLWJnLWhvdmVyKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1yYi1zZWxlY3RlZC1iZy1ob3Zlcik7XG59XG4ucWRuYXByby1yYWRpbzphY3RpdmU6bm90KC5yYWRpby1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLCAwLCAwLCAwLjE1KSwgcmdiYSgwLCAwLCAwLCAwLjE1KSk7XG59XG4ucWRuYXByby1yYWRpbzpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4ucWRuYXByby1yYWRpbzpmb2N1cy12aXNpYmxlLCAucWRuYXByby1yYWRpby5mb3JjZS1mb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1yYi1mb2N1cy1yaW5nKSwgMCAwIDAgNnB4IHZhcigtLXJiLWZvY3VzLWdsb3cpO1xufVxuLnFkbmFwcm8tcmFkaW8uZm9yY2UtaG92ZXI6bm90KC5yYWRpby1kaXNhYmxlZCk6bm90KC5yYWRpby1zZWxlY3RlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1yYi1iZy1ob3Zlcik7XG59XG4ucWRuYXByby1yYWRpby5mb3JjZS1ob3Zlcjpub3QoLnJhZGlvLWRpc2FibGVkKS5yYWRpby1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXJiLXNlbGVjdGVkLWJnLWhvdmVyKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1yYi1zZWxlY3RlZC1iZy1ob3Zlcik7XG59XG4ucWRuYXByby1yYWRpby5mb3JjZS1wcmVzc2VkOm5vdCgucmFkaW8tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHJnYmEoMCwgMCwgMCwgMC4xNSksIHJnYmEoMCwgMCwgMCwgMC4xNSkpO1xufVxuLnFkbmFwcm8tcmFkaW8ucmFkaW8tc3RhdGUtZXJyb3Ige1xuICAtLXJiLWJvcmRlcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpO1xuICAtLXJiLWJnLWhvdmVyOiB2YXIoLS1jLXRhZy1jcml0aWNhbC1iZyk7XG4gIC0tcmItc2VsZWN0ZWQtYmc6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0KTtcbiAgLS1yYi1zZWxlY3RlZC1iZy1ob3ZlcjogdmFyKC0tYy10YWctY3JpdGljYWwtdGV4dCk7XG4gIC0tcmItc2VsZWN0ZWQtZG90OiAjZmZmZmZmO1xuICAtLXJiLWZvY3VzLXJpbmc6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0KTtcbiAgLS1yYi1mb2N1cy1nbG93OiByZ2JhKDE5OCwgOTAsIDkwLCAwLjI1KTtcbn1cbi5xZG5hcHJvLXJhZGlvLnJhZGlvLXN0YXRlLXN1Y2Nlc3Mge1xuICAtLXJiLWJvcmRlcjogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCk7XG4gIC0tcmItYmctaG92ZXI6IHZhcigtLWMtc2lnbmFsLWdyZWVuLWJnKTtcbiAgLS1yYi1zZWxlY3RlZC1iZzogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCk7XG4gIC0tcmItc2VsZWN0ZWQtYmctaG92ZXI6ICMyZjVkNGE7XG4gIC0tcmItc2VsZWN0ZWQtZG90OiAjZmZmZmZmO1xuICAtLXJiLWZvY3VzLXJpbmc6IHZhcigtLWMtc2lnbmFsLWdyZWVuLXRleHQpO1xuICAtLXJiLWZvY3VzLWdsb3c6IHJnYmEoNjYsIDEzOSwgMTEwLCAwLjI1KTtcbn1cbi5xZG5hcHJvLXJhZGlvLnJhZGlvLWRpc2FibGVkIHtcbiAgLS1yYi1ib3JkZXI6IHZhcigtLWMtYm9yZGVyLWNhcmQpO1xuICAtLXJiLWJnOiB2YXIoLS1jLWdyZXktNTApO1xuICBvcGFjaXR5OiAwLjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tcmFkaW8ucmFkaW8tZGlzYWJsZWQucmFkaW8tc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApO1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtYm9yZGVyLWNhcmQpO1xufVxuLnFkbmFwcm8tcmFkaW8ucmFkaW8tZGlzYWJsZWQucmFkaW8tc2VsZWN0ZWQgLnJhZGlvLWRvdCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCk7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXJhZGlvIHtcbiAgLS1yYi1ib3JkZXI6ICM1NjViNjY7XG4gIC0tcmItYmc6ICMyZTMwMzY7XG4gIC0tcmItYmctaG92ZXI6ICM0MDQ0NGQ7XG4gIC0tcmItc2VsZWN0ZWQtYmc6ICM0NjUyZjM7XG4gIC0tcmItc2VsZWN0ZWQtYmctaG92ZXI6ICM1YTY2ZmY7XG4gIC0tcmItc2VsZWN0ZWQtZG90OiAjZmZmZmZmO1xuICAtLXJiLWZvY3VzLXJpbmc6ICNhNWFjZmY7XG4gIC0tcmItZm9jdXMtZ2xvdzogcmdiYSg3MCwgODIsIDI0MywgMC40KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXJhZGlvLnJhZGlvLXN0YXRlLWVycm9yIHtcbiAgLS1yYi1ib3JkZXI6ICNjNjVhNWE7XG4gIC0tcmItYmctaG92ZXI6ICM1YTJiMmI7XG4gIC0tcmItc2VsZWN0ZWQtYmc6ICNjNjVhNWE7XG4gIC0tcmItc2VsZWN0ZWQtYmctaG92ZXI6ICNhMDQ0NDQ7XG4gIC0tcmItZm9jdXMtcmluZzogI2U4OTA5MDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXJhZGlvLnJhZGlvLXN0YXRlLXN1Y2Nlc3Mge1xuICAtLXJiLWJvcmRlcjogIzQyOGI2ZTtcbiAgLS1yYi1iZy1ob3ZlcjogIzJhNTU0NDtcbiAgLS1yYi1zZWxlY3RlZC1iZzogIzQyOGI2ZTtcbiAgLS1yYi1zZWxlY3RlZC1iZy1ob3ZlcjogIzJmNWQ0YTtcbiAgLS1yYi1mb2N1cy1yaW5nOiAjN2NjZmE4O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tcmFkaW8ucmFkaW8tZGlzYWJsZWQge1xuICAtLXJiLWJvcmRlcjogIzU2NWI2NjtcbiAgLS1yYi1iZzogIzQwNDQ0ZDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXJhZGlvLnJhZGlvLWRpc2FibGVkLnJhZGlvLXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZDogIzQwNDQ0ZDtcbiAgYm9yZGVyLWNvbG9yOiAjNTY1YjY2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tcmFkaW8ucmFkaW8tZGlzYWJsZWQucmFkaW8tc2VsZWN0ZWQgLnJhZGlvLWRvdCB7XG4gIGJhY2tncm91bmQ6ICM2YjcyODA7XG59XG4iLCIvLyBfcmFkaW8tdGlsZS5zY3NzXG4vLyBDYW5vbmljYWwgc3R5bGVzIGZvciBxZG5hcHJvLXJhZGlvLXRpbGVzIGFuZCBxZG5hcHJvLXJhZGlvLXRpbGUuXG4vLyBBIFwicGljayBvbmUgb2YgTlwiIHJvdyBvZiBjYXJkczogaGVhZGluZyBvbiB0b3AsIGFuaW1hdGVkIHBpY3R1cmUgaW4gdGhlXG4vLyBtaWRkbGUsIGEgcmVhbCBxZG5hcHJvLXJhZGlvIGRvdCBhdCB0aGUgYm90dG9tLCBhbmQgYW4gaW5mbyBidXR0b24gdGhhdCBvbmx5XG4vLyBhcHBlYXJzIG9uIGhvdmVyLiBCdWlsdCAzMS4wOC4yMDI2IGZyb20gS2ltJ3MgTW9kdXMgc2NyZWVuc2hvdC5cbi8vXG4vLyBTdGF0ZSBwYWxldHRlLCBhZ3JlZWQgd2l0aCBLaW06XG4vLyAgIGhvdmVyICAgICAtLWMtZ3JleS01MCBzdXJmYWNlXG4vLyAgIHByZXNzZWQgICB0aGUgc2FtZSBzdXJmYWNlIG9uZSBzdGVwIGRhcmtlciArIGEgaGFpciBvZiBzY2FsZVxuLy8gICBmb2N1cyAgICAgdGhlIGhvdXNlIHR3by1yaW5nIGZvY3VzIHRyZWF0bWVudCAoMnB4IHNvbGlkICsgNnB4IGdsb3cpXG4vLyAgIHNlbGVjdGVkICBhY3Rpb24tYmx1ZSBib3JkZXIgKyBzb2Z0IG91dGVyIHJpbmcsIGRvdCBmaWxsZWRcbi8vID09PSBTVEFSVCBRRE5BUFJPLVJBRElPLVRJTEUgQ1NTID09PVxuXG4vLyBUaGUgcnVubmluZyBib3JkZXIgbGlnaHQgKG1vZGU9XCJ0b2dnbGVcIiwgc3dpdGNoZWQgb24pIHR1cm5zIGEgcmVnaXN0ZXJlZFxuLy8gY3VzdG9tIHByb3BlcnR5LCBiZWNhdXNlIGEgY29uaWMtZ3JhZGllbnQgYW5nbGUgY2Fubm90IGJlIGFuaW1hdGVkIGFueSBvdGhlclxuLy8gd2F5LiBXaGVyZSBAcHJvcGVydHkgaXMgbWlzc2luZyB0aGUgYW5nbGUgc2ltcGx5IHN0YXlzIGF0IDBkZWcgYW5kIHRoZSB0aWxlXG4vLyBrZWVwcyBhIHN0aWxsIGdvbGRlbiBhcmMgaW5zdGVhZCBvZiBhIG1vdmluZyBvbmUgLSBzdGlsbCBhIGNsZWFyIFwidGhpcyBpcyBvblwiXG4vLyBtYXJrZXIsIHNvIG5vIGZhbGxiYWNrIHJ1bGUgaXMgbmVlZGVkLlxuQHByb3BlcnR5IC0tcXJ0LWJlYW0tYW5nbGUge1xuICAgIHN5bnRheDogXCI8YW5nbGU+XCI7XG4gICAgaW5pdGlhbC12YWx1ZTogMGRlZztcbiAgICBpbmhlcml0czogZmFsc2U7XG59XG5cblxuLnFkbmFwcm8tcmFkaW8tdGlsZXMge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuXG4gICAgLnJhZGlvLXRpbGVzLWxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5KTtcbiAgICB9XG5cbiAgICAucmFkaW8tdGlsZXMtdHJhY2sge1xuICAgICAgICAtLXJhZGlvLXRpbGVzLWNvbHVtbnM6IDM7XG4gICAgICAgIC0tcmFkaW8tdGlsZS1tYXg6IDIwMHB4O1xuICAgICAgICAtLXJhZGlvLXRpbGVzLWdhcDogMTBweDtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tcmFkaW8tdGlsZXMtY29sdW1ucyksIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgICAgZ2FwOiB2YXIoLS1yYWRpby10aWxlcy1nYXApO1xuICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAgLy8gQSB0aWxlIGlzIGEgc21hbGwgY2FyZCwgbm90IGEgYmFubmVyLiBJbiBhIG1vZGFsIHRoZSBjb2x1bW4gaXMgbmFycm93ZXJcbiAgICAgICAgLy8gdGhhbiB0aGlzIGFuZCB0aGUgdGlsZXMgc2ltcGx5IGZpbGwgaXQ7IG9uIGEgZnVsbC13aWR0aCBwYWdlIHRoZSByb3dcbiAgICAgICAgLy8gc3RvcHMgaGVyZSBpbnN0ZWFkIG9mIHN0cmV0Y2hpbmcgZWFjaCB0aWxlIGludG8gYSBsZXR0ZXJib3ggYXJvdW5kIGFuXG4gICAgICAgIC8vIDg4cHggcGljdHVyZS5cbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKFxuICAgICAgICAgICAgdmFyKC0tcmFkaW8tdGlsZXMtY29sdW1ucykgKiB2YXIoLS1yYWRpby10aWxlLW1heClcbiAgICAgICAgICAgICsgKHZhcigtLXJhZGlvLXRpbGVzLWNvbHVtbnMpIC0gMSkgKiB2YXIoLS1yYWRpby10aWxlcy1nYXApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgJi5yYWRpby10aWxlcy1kaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxufVxuXG4vLyBCZWxvdyB0aGUgdGFibGV0IGJyZWFrIHRoZSBwaWN0dXJlcyBnZXQgdG9vIHNtYWxsIHRvIHJlYWQgYXQgdGhyZWUgYWNyb3NzLlxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gICAgLnFkbmFwcm8tcmFkaW8tdGlsZXMgLnJhZGlvLXRpbGVzLXRyYWNrIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgLnFkbmFwcm8tcmFkaW8tdGlsZXMgLnJhZGlvLXRpbGVzLXRyYWNrIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBUaGUgdGlsZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5xZG5hcHJvLXJhZGlvLXRpbGUge1xuICAgIC8vIFNpemVkIGZvciBhIG1vZGFsIGNvbHVtbiBvZiByb3VnaGx5IDUwMHB4LCB3aGljaCBpcyB3aGVyZSB0aGlzIGxpdmVzOlxuICAgIC8vIHRocmVlIHRpbGVzIG9mIH4xNDB4MTc1LiBBdCAxMjBweCBvZiBhcnR3b3JrICh0aGUgZmlyc3QgY3V0LCAzMS4wOC4yMDI2KVxuICAgIC8vIHRoZSByb3cgc3dhbGxvd2VkIHRoZSBtb2RhbC4gT3ZlcnJpZGUgLS1yYWRpby10aWxlLW1lZGlhIG9uIHRoZSBncm91cCB3aGVuXG4gICAgLy8gYSB0aWxlIGdlbnVpbmVseSBoYXMgYSBwYWdlIHRvIGl0c2VsZi5cbiAgICAtLXJhZGlvLXRpbGUtbWVkaWE6IDg4cHg7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiAxNHB4IDEycHggMTJweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246XG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgMTQwbXMgZWFzZSxcbiAgICAgICAgYm9yZGVyLWNvbG9yIDE0MG1zIGVhc2UsXG4gICAgICAgIGJveC1zaGFkb3cgMjAwbXMgZWFzZSxcbiAgICAgICAgdHJhbnNmb3JtIDE0MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG5cbiAgICAqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG5cbiAgICAucmFkaW8tdGlsZS10aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktOTUwKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAvLyBUd28gbGluZXMgaXMgcGxlbnR5IGZvciBhbiBvcHRpb24gaGVhZGluZzsgYW55dGhpbmcgbG9uZ2VyIGJlbG9uZ3MgaW4gZGVzYy5cbiAgICAgICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gICAgfVxuXG4gICAgLy8gVGhlIHBpY3R1cmUuIFBvc3RlciBhbmQgYW5pbWF0aW9uIGFyZSBzdGFja2VkIG9uIHRoZSBzYW1lIHNxdWFyZSBzbyB0aGVcbiAgICAvLyBzd2FwIGJldHdlZW4gdGhlbSBuZXZlciBtb3ZlcyB0aGUgbGF5b3V0LlxuICAgIC5yYWRpby10aWxlLW1lZGlhIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IHZhcigtLXJhZGlvLXRpbGUtbWVkaWEpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXJhZGlvLXRpbGUtbWVkaWEpO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICB9XG5cbiAgICAucmFkaW8tdGlsZS1wb3N0ZXIsXG4gICAgLnJhZGlvLXRpbGUtYW5pbSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTQwbXMgZWFzZTtcbiAgICB9XG5cbiAgICAucmFkaW8tdGlsZS1wb3N0ZXIge1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIC8vIFRoZSBtb3VudGVkIExvdHRpZSBpcyBpbnZpc2libGUgdW50aWwgdGhlIHRpbGUgaXMgYWN0dWFsbHkgYW5pbWF0aW5nLFxuICAgIC8vIHNvIGEgcGxheWVyIHRoYXQgaXMgc3RpbGwgbG9hZGluZyBuZXZlciBmbGFzaGVzIGFuIGVtcHR5IHNxdWFyZS5cbiAgICAucmFkaW8tdGlsZS1hbmltIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnJhZGlvLXRpbGUtYW5pbWF0aW5nIHtcbiAgICAgICAgLnJhZGlvLXRpbGUtcG9zdGVyIHsgb3BhY2l0eTogMDsgfVxuICAgICAgICAucmFkaW8tdGlsZS1hbmltICAgeyBvcGFjaXR5OiAxOyB9XG4gICAgfVxuXG4gICAgLnJhZGlvLXRpbGUtZGVzYyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICB9XG5cbiAgICAvLyBUaGUgZG90IHNpdHMgb24gaXRzIG93biBsaW5lIGF0IHRoZSBib3R0b20sIHB1c2hlZCBkb3duIHNvIHRpbGVzIHdpdGggYW5kXG4gICAgLy8gd2l0aG91dCBhIGRlc2NyaXB0aW9uIHN0aWxsIGxpbmUgdGhlaXIgZG90cyB1cC5cbiAgICAucmFkaW8tdGlsZS1tYXJrIHtcbiAgICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICAgICAgcGFkZGluZy10b3A6IDJweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgLy8gUHVyZWx5IHRoZSB2aXN1YWwuIEFsbCBpbnRlcmFjdGlvbiBsaXZlcyBvbiB0aGUgdGlsZS5cbiAgICAgICAgcWRuYXByby1yYWRpbyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC0tLS0gSW5mbyBidXR0b24sIHRvcC1yaWdodCwgcmV2ZWFsZWQgb24gaG92ZXIgLS0tLVxuICAgIC8vIEtlcHQgaW4gdGhlIGxheW91dCBhdCBhbGwgdGltZXMgKG9wYWNpdHksIG5vdCBkaXNwbGF5KSBzbyBhcHBlYXJpbmcgY29zdHNcbiAgICAvLyBubyByZWZsb3cgYW5kIHRoZSBidXR0b24gc3RheXMgcmVhY2hhYmxlIGJ5IGtleWJvYXJkLlxuICAgIC5yYWRpby10aWxlLWluZm8ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNnB4O1xuICAgICAgICByaWdodDogNnB4O1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE0MG1zIGVhc2UsIHRyYW5zZm9ybSAxNDBtcyBlYXNlO1xuICAgIH1cblxuICAgICY6aG92ZXIgLnJhZGlvLXRpbGUtaW5mbyxcbiAgICAmLmZvcmNlLWhvdmVyIC5yYWRpby10aWxlLWluZm8sXG4gICAgLnJhZGlvLXRpbGUtaW5mbzpmb2N1cy12aXNpYmxlLFxuICAgIC5yYWRpby10aWxlLWluZm86Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgfVxuXG4gICAgLy8gLS0tLSBIb3ZlciAtLS0tXG4gICAgJjpob3Zlcjpub3QoLnJhZGlvLXRpbGUtZGlzYWJsZWQpLFxuICAgICYuZm9yY2UtaG92ZXI6bm90KC5yYWRpby10aWxlLWRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLSBQcmVzc2VkIC0tLS1cbiAgICAmOmFjdGl2ZTpub3QoLnJhZGlvLXRpbGUtZGlzYWJsZWQpLFxuICAgICYuZm9yY2UtcHJlc3NlZDpub3QoLnJhZGlvLXRpbGUtZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTEwMCk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45ODUpO1xuICAgIH1cblxuICAgIC8vIC0tLS0gRm9jdXMgKHRoZSBob3VzZSB0d28tcmluZyB0cmVhdG1lbnQsIHNhbWUgYXMgcWRuYXByby1yYWRpbykgLS0tLVxuICAgICY6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG5cbiAgICAmOmZvY3VzLXZpc2libGUsXG4gICAgJi5mb3JjZS1mb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1hY3Rpb24tNTAwKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWMtYWN0aW9uLTUwMCksIDAgMCAwIDZweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbiAgICB9XG5cbiAgICAvLyAtLS0tIFNlbGVjdGVkIC0tLS1cbiAgICAmLnJhZGlvLXRpbGUtc2VsZWN0ZWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYWN0aW9uLTUwMCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjE4KTtcblxuICAgICAgICAmOmhvdmVyOm5vdCgucmFkaW8tdGlsZS1kaXNhYmxlZCksXG4gICAgICAgICYuZm9yY2UtaG92ZXI6bm90KC5yYWRpby10aWxlLWRpc2FibGVkKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRm9jdXMgb24gdGhlIHNlbGVjdGVkIHRpbGUga2VlcHMgdGhlIGZvY3VzIHJpbmcsIG5vdCB0aGUgc29mdGVyIG9uZS5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlLFxuICAgICAgICAmLmZvcmNlLWZvY3VzIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1jLWFjdGlvbi01MDApLCAwIDAgMCA2cHggcmdiYSg3MCwgODIsIDI0MywgMC4yNSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAtLS0tIERpc2FibGVkIC0tLS1cbiAgICAmLnJhZGlvLXRpbGUtZGlzYWJsZWQge1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICBvcGFjaXR5OiAwLjQ1O1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG5cbiAgICAgICAgLnJhZGlvLXRpbGUtaW5mbyB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICB9XG59XG5cbi8vIE9uIGEgdG91Y2ggc2NyZWVuIHRoZXJlIGlzIG5vIGhvdmVyLCBzbyB0aGUgaW5mbyBidXR0b24gd291bGQgYmUgdW5yZWFjaGFibGUuXG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgLnFkbmFwcm8tcmFkaW8tdGlsZSAucmFkaW8tdGlsZS1pbmZvIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgfVxufVxuXG4vLyBUaGUgYW5pbWF0aW9uIG5ldmVyIHN0YXJ0cyB1bmRlciByZWR1Y2VkIG1vdGlvbiwgc28gdGhlIGNyb3NzZmFkZSBpcyBkZWFkXG4vLyB3ZWlnaHQgdGhlcmU7IHRoZSBwb3N0ZXIgc2ltcGx5IHN0YXlzIHB1dC4gVGhlIGJlYW0gYW5kIHRoZSBjZWxlYnJhdGlvbiBzdG9wXG4vLyB0b28gLSB0aGUgSlMgbmV2ZXIgYnVpbGRzIHRoZSBzcGFya2xlcywgYW5kIHRoaXMgc3dpdGNoZXMgdGhlIGJlYW0gb2ZmIGZvclxuLy8gZ29vZCBtZWFzdXJlIHNvIGEgY2xhc3MgbGVmdCBiZWhpbmQgY2FuIG5ldmVyIHN0YXJ0IHNwaW5uaW5nLlxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAucWRuYXByby1yYWRpby10aWxlLFxuICAgIC5xZG5hcHJvLXJhZGlvLXRpbGUgLnJhZGlvLXRpbGUtcG9zdGVyLFxuICAgIC5xZG5hcHJvLXJhZGlvLXRpbGUgLnJhZGlvLXRpbGUtYW5pbSxcbiAgICAucWRuYXByby1yYWRpby10aWxlIC5yYWRpby10aWxlLWluZm8ge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC5xZG5hcHJvLXJhZGlvLXRpbGUucmFkaW8tdGlsZS1iZWFtOjphZnRlcixcbiAgICAucWRuYXByby1yYWRpby10aWxlLnJhZGlvLXRpbGUtcG9wIHtcbiAgICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgbW9kZT1cInRvZ2dsZVwiIC0gb25lIHRpbGUgdGhhdCBpcyBhIHN3aXRjaCAoMDIuMDkuMjAyNiwgS2ltKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBIHNpbmdsZSBzZXR0aW5nIGluc3RlYWQgb2Ygb25lIG9wdGlvbiBvdXQgb2Ygc2V2ZXJhbDogdGhlIHJhZGlvIGRvdCBiZWNvbWVzXG4vLyBhIHJlYWwgcWRuYXByby10b2dnbGUsIHRoZSB3aG9sZSBjYXJkIGZsaXBzIGl0LCBhbmQgb25jZSBpdCBpcyBPTiB0aGUgY2FyZFxuLy8ga2VlcHMgYW5ub3VuY2luZyBpdHNlbGYgLSB0aGUgcGljdHVyZSBnb2VzIG9uIGFuaW1hdGluZyAoaGFuZGxlZCBpbiBKUykgYW5kIGFcbi8vIGxpZ2h0IHJ1bnMgYXJvdW5kIHRoZSBib3JkZXIuIFN3aXRjaGluZyBpdCBvbiBmaXJlcyBhIGJ1cnN0IG9mIHNwYXJrbGVzLlxuXG4ucWRuYXByby1yYWRpby10aWxlLnJhZGlvLXRpbGUtdG9nZ2xlIHtcbiAgICAvLyBBIGxvbmUgdGlsZSBpcyBub3QgY29tcGV0aW5nIHdpdGggbmVpZ2hib3VycyBmb3Igd2lkdGgsIHNvIGl0IG1heSBiZSBhXG4gICAgLy8gdG91Y2ggcm9vbWllciB0aGFuIG9uZSBvZiB0aHJlZS5cbiAgICAtLXJhZGlvLXRpbGUtbWVkaWE6IDk2cHg7XG4gICAgbWF4LXdpZHRoOiAyNDBweDtcblxuICAgIC5yYWRpby10aWxlLW1hcmsge1xuICAgICAgICAvLyBTYW1lIHJ1bGUgYXMgdGhlIHJhZGlvIGRvdDogdGhlIHN3aXRjaCBpcyB0aGUgcGljdHVyZSBvZiB0aGUgc3RhdGUsXG4gICAgICAgIC8vIHRoZSB0aWxlIG93bnMgdGhlIGNsaWNrLiBXaXRob3V0IHRoaXMgYSBjbGljayBvbiB0aGUgc3dpdGNoIGl0c2VsZlxuICAgICAgICAvLyB3b3VsZCBiZSBjb3VudGVkIHR3aWNlIGFuZCBmbGlwIHN0cmFpZ2h0IGJhY2suXG4gICAgICAgIHFkbmFwcm8tdG9nZ2xlIHsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgICB9XG5cbiAgICAvLyAtLS0tIE9OIC0tLS1cbiAgICAvLyBUaGUgc29mdCBibHVlIHJpbmcgb2YgdGhlIHJhZGlvLXNlbGVjdGVkIHN0YXRlIHdvdWxkIGZpZ2h0IHRoZSBiZWFtLCBzb1xuICAgIC8vIHRoZSBib3JkZXIgYWxvbmUgY2FycmllcyBpdCBoZXJlLlxuICAgICYucmFkaW8tdGlsZS1zZWxlY3RlZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSk7XG5cbiAgICAgICAgJjpob3Zlcjpub3QoLnJhZGlvLXRpbGUtZGlzYWJsZWQpLFxuICAgICAgICAmLmZvcmNlLWhvdmVyOm5vdCgucmFkaW8tdGlsZS1kaXNhYmxlZCkge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZvY3VzIHN0aWxsIHdpbnMgb3ZlciB0aGUgYmVhbSAtIHlvdSBtdXN0IGJlIGFibGUgdG8gc2VlIHdoZXJlIHlvdSBhcmUuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSxcbiAgICAgICAgJi5mb3JjZS1mb2N1cyB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tYy1hY3Rpb24tNTAwKSwgMCAwIDAgNnB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyAtLS0tIFRoZSBib3JkZXIgYmVhbSAtLS0tXG4vLyBBIGNvbmljIGdyYWRpZW50IGJlaGluZCB0aGUgY2FyZCwgbWFza2VkIGRvd24gdG8gYSAycHggZnJhbWUuIGBwYWRkaW5nYCArXG4vLyB0aGUgeG9yIG1hc2sgaXMgdGhlIHN0YW5kYXJkIHRyaWNrOiBpdCBwYWludHMgdGhlIHJpbmcgb25seSwgbm90IHRoZSBtaWRkbGUsXG4vLyBzbyB0aGUgY2FyZCBjb250ZW50IHN0YXlzIHVudG91Y2hlZCBhbmQgbm8gZXh0cmEgZWxlbWVudCBpcyBuZWVkZWQuXG4ucWRuYXByby1yYWRpby10aWxlLnJhZGlvLXRpbGUtYmVhbTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAtMXB4O1xuICAgIHotaW5kZXg6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgICBwYWRkaW5nOiAycHg7XG4gICAgYmFja2dyb3VuZDogY29uaWMtZ3JhZGllbnQoXG4gICAgICAgIGZyb20gdmFyKC0tcXJ0LWJlYW0tYW5nbGUpLFxuICAgICAgICByZ2JhKDcwLCA4MiwgMjQzLCAwLjE2KSAwZGVnLFxuICAgICAgICByZ2JhKDcwLCA4MiwgMjQzLCAwLjE2KSAyMDBkZWcsXG4gICAgICAgIHZhcigtLWMtY2hpcC15ZWxsb3ctZmcsICNiMDdkMTApIDI2OGRlZyxcbiAgICAgICAgI2ZmZDY2YiAzMDBkZWcsXG4gICAgICAgIHZhcigtLWMtYWN0aW9uLTUwMCkgMzM2ZGVnLFxuICAgICAgICByZ2JhKDcwLCA4MiwgMjQzLCAwLjE2KSAzNjBkZWdcbiAgICApO1xuICAgIC13ZWJraXQtbWFzazpcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KCMwMDAgMCAwKSBjb250ZW50LWJveCxcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KCMwMDAgMCAwKTtcbiAgICAtd2Via2l0LW1hc2stY29tcG9zaXRlOiB4b3I7XG4gICAgbWFzazpcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KCMwMDAgMCAwKSBjb250ZW50LWJveCxcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KCMwMDAgMCAwKTtcbiAgICBtYXNrLWNvbXBvc2l0ZTogZXhjbHVkZTtcbiAgICBhbmltYXRpb246IHFydC1iZWFtLXNwaW4gMy4ycyBsaW5lYXIgaW5maW5pdGU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbkBrZXlmcmFtZXMgcXJ0LWJlYW0tc3BpbiB7XG4gICAgdG8geyAtLXFydC1iZWFtLWFuZ2xlOiAzNjBkZWc7IH1cbn1cblxuLy8gVGhlIGNhcmQgY29udGVudCBoYXMgdG8gc2l0IEFCT1ZFIHRoZSBiZWFtIHJpbmcuXG4ucWRuYXByby1yYWRpby10aWxlLnJhZGlvLXRpbGUtYmVhbSA+ICoge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xufVxuXG4vLyAtLS0tIFRoZSBjbGljayBjZWxlYnJhdGlvbiAtLS0tXG4vLyBPbmUgYm91bmNlIG9mIHRoZSB3aG9sZSBjYXJkLi4uXG4ucWRuYXByby1yYWRpby10aWxlLnJhZGlvLXRpbGUtcG9wIHtcbiAgICBhbmltYXRpb246IHFydC1wb3AgNDIwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpO1xufVxuXG5Aa2V5ZnJhbWVzIHFydC1wb3Age1xuICAgIDAlICAgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gICAgMzIlICB7IHRyYW5zZm9ybTogc2NhbGUoMS4wNDUpOyB9XG4gICAgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbn1cblxuLy8gLi4uYW5kIGEgYnVyc3Qgb2YgbGl0dGxlIGZvdXItcG9pbnQgc3BhcmtsZXMgb3V0IG9mIHRoZSBwaWN0dXJlLiBUaGUgbGF5ZXIgaXNcbi8vIGNyZWF0ZWQgYW5kIHJlbW92ZWQgYnkgdGhlIEpTLCBzbyBub3RoaW5nIG9mIHRoaXMgZXhpc3RzIGF0IHJlc3QuXG4ucWRuYXByby1yYWRpby10aWxlIC5yYWRpby10aWxlLXNwYXJrcyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8vIFJ1aW1lciBkYW4gaGV0IHBsYWF0amVzdmllcmthbnQ6IGRlIHN0ZXJyZXRqZXMgdmxpZWdlbiBzaW5kcyAwMi4wOS4yMDI2XG4gICAgLy8gdG90IDkycHggdmVyIGVuIG1vZ2VuIG5pZXQgb3AgZGUgcmFuZCB2YW4gaHVuIGxhYWcgc3R1a2xvcGVuLlxuICAgIGluc2V0OiAtNjBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4OiAzO1xufVxuXG4ucWRuYXByby1yYWRpby10aWxlIC5yYWRpby10aWxlLXNwYXJrIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHdpZHRoOiB2YXIoLS1xcnQtc3Bhcmstc2l6ZSwgMTRweCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1xcnQtc3Bhcmstc2l6ZSwgMTRweCk7XG4gICAgbWFyZ2luOiBjYWxjKHZhcigtLXFydC1zcGFyay1zaXplLCAxNHB4KSAvIC0yKSAwIDAgY2FsYyh2YXIoLS1xcnQtc3Bhcmstc2l6ZSwgMTRweCkgLyAtMik7XG4gICAgYmFja2dyb3VuZDogI2ZmYzkzZjtcbiAgICAvLyBBIGZvdXItcG9pbnQgc3BhcmtsZTogbG9uZyBwb2ludHMsIHBpbmNoZWQgd2Fpc3QuXG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKFxuICAgICAgICA1MCUgMCUsIDU5JSA0MSUsIDEwMCUgNTAlLCA1OSUgNTklLFxuICAgICAgICA1MCUgMTAwJSwgNDElIDU5JSwgMCUgNTAlLCA0MSUgNDElXG4gICAgKTtcbiAgICAvLyBLaW0gMDIuMDkuMjAyNjogXCJvcHZhbGxlbmRlclwiLiBFZW4gZ2xvZWQgaW4gZGUgZWlnZW4ga2xldXIgdGlsdCBkZVxuICAgIC8vIHN0ZXJyZXRqZXMgdmFuIGRlIGthYXJ0IGFmIHpvbmRlciBkYXQgZGUgdm9ybSBoYXJkZXIgd29yZHQ7IGRhdCBsZWVzdFxuICAgIC8vIGFscyBsaWNodCBpbiBwbGFhdHMgdmFuIGFscyBlZW4gZ3JvdGVyIHBsYXQgdmxhay5cbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCA1cHggcmdiYSgyNTUsIDIwMSwgNjMsIDAuODUpKTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGFuaW1hdGlvbjogcXJ0LXNwYXJrIDg1MG1zIGN1YmljLWJlemllcigwLjE2LCAwLjg0LCAwLjQ0LCAxKSB2YXIoLS1xcnQtc3BhcmstZGVsYXksIDBtcykgYm90aDtcbn1cblxuLy8gVGhyZWUgY29sb3VycywgZGVhbHQgb3V0IHJvdW5kLXJvYmluLCBzbyB0aGUgYnVyc3QgaXMgbm90IG9uZSBmbGF0IHllbGxvdy5cbi5xZG5hcHJvLXJhZGlvLXRpbGUgLnJhZGlvLXRpbGUtc3Bhcms6bnRoLWNoaWxkKDNuICsgMikge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgNXB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuNzUpKTtcbn1cbi5xZG5hcHJvLXJhZGlvLXRpbGUgLnJhZGlvLXRpbGUtc3Bhcms6bnRoLWNoaWxkKDNuICsgMykge1xuICAgIGJhY2tncm91bmQ6ICNmZjZmYjg7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgNXB4IHJnYmEoMjU1LCAxMTEsIDE4NCwgMC43NSkpO1xufVxuXG5Aa2V5ZnJhbWVzIHFydC1zcGFyayB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKSBzY2FsZSgwLjIpIHJvdGF0ZSgwZGVnKTtcbiAgICB9XG4gICAgMjAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOlxuICAgICAgICAgICAgdHJhbnNsYXRlKGNhbGModmFyKC0tcXJ0LXNwYXJrLXgsIDBweCkgKiAwLjQwKSwgY2FsYyh2YXIoLS1xcnQtc3BhcmsteSwgMHB4KSAqIDAuNDApKVxuICAgICAgICAgICAgc2NhbGUoMS4xNSkgcm90YXRlKGNhbGModmFyKC0tcXJ0LXNwYXJrLXR1cm4sIDBkZWcpICogMC4zNSkpO1xuICAgIH1cbiAgICA1NSUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06XG4gICAgICAgICAgICB0cmFuc2xhdGUoY2FsYyh2YXIoLS1xcnQtc3BhcmsteCwgMHB4KSAqIDAuNzgpLCBjYWxjKHZhcigtLXFydC1zcGFyay15LCAwcHgpICogMC43OCkpXG4gICAgICAgICAgICBzY2FsZSgwLjkpIHJvdGF0ZShjYWxjKHZhcigtLXFydC1zcGFyay10dXJuLCAwZGVnKSAqIDAuNykpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOlxuICAgICAgICAgICAgdHJhbnNsYXRlKHZhcigtLXFydC1zcGFyay14LCAwcHgpLCB2YXIoLS1xcnQtc3BhcmsteSwgMHB4KSlcbiAgICAgICAgICAgIHNjYWxlKDAuMzUpIHJvdGF0ZSh2YXIoLS1xcnQtc3BhcmstdHVybiwgMGRlZykpO1xuICAgIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgRGFyayBtb2RlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdLFxuLnRoZW1lLWRhcmsge1xuICAgIC5xZG5hcHJvLXJhZGlvLXRpbGVzIC5yYWRpby10aWxlcy1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuNzUpO1xuICAgIH1cblxuICAgIC5xZG5hcHJvLXJhZGlvLXRpbGUge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYm9yZGVyLXNvZnQtMik7XG5cbiAgICAgICAgLnJhZGlvLXRpbGUtdGl0bGUgeyBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcpOyB9XG4gICAgICAgIC5yYWRpby10aWxlLWRlc2MgIHsgY29sb3I6IHJnYmEoMjQwLCAyNDEsIDI0MiwgMC42NSk7IH1cblxuICAgICAgICAmOmhvdmVyOm5vdCgucmFkaW8tdGlsZS1kaXNhYmxlZCksXG4gICAgICAgICYuZm9yY2UtaG92ZXI6bm90KC5yYWRpby10aWxlLWRpc2FibGVkKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQtaG92ZXIpO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlOm5vdCgucmFkaW8tdGlsZS1kaXNhYmxlZCksXG4gICAgICAgICYuZm9yY2UtcHJlc3NlZDpub3QoLnJhZGlvLXRpbGUtZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNik7XG4gICAgICAgIH1cblxuICAgICAgICAmLnJhZGlvLXRpbGUtc2VsZWN0ZWQge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWFjdGlvbi01MDApO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg3MCwgODIsIDI0MywgMC4xMCk7XG5cbiAgICAgICAgICAgICY6aG92ZXI6bm90KC5yYWRpby10aWxlLWRpc2FibGVkKSxcbiAgICAgICAgICAgICYuZm9yY2UtaG92ZXI6bm90KC5yYWRpby10aWxlLWRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg3MCwgODIsIDI0MywgMC4xNik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGUgYmVhbSBkcmF3cyB0aGUgZnJhbWUgaW4gZGFyayBtb2RlIHRvbywgc28gdGhlIGJvcmRlciB1bmRlcm5lYXRoXG4gICAgICAgIC8vIGl0IHN0ZXBzIGFzaWRlIGV4YWN0bHkgYXMgaXQgZG9lcyBpbiBsaWdodCBtb2RlLlxuICAgICAgICAmLnJhZGlvLXRpbGUtdG9nZ2xlLnJhZGlvLXRpbGUtc2VsZWN0ZWQge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMTQpO1xuXG4gICAgICAgICAgICAmOmhvdmVyOm5vdCgucmFkaW8tdGlsZS1kaXNhYmxlZCksXG4gICAgICAgICAgICAmLmZvcmNlLWhvdmVyOm5vdCgucmFkaW8tdGlsZS1kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyA9PT0gRU5EIFFETkFQUk8tUkFESU8tVElMRSBDU1MgKGRvIG5vdCByZW1vdmUgdGhpcyBtYXJrZXIpID09PVxuIiwiLy8gcWRuYXByby1yYW5nZS1zbGlkZXIg4oCUIGR1YWwtaGFuZGxlIHJhbmdlIHNsaWRlciBvdmVyIGxhYmVsbGVkIHN0b3BzLlxuLy8gRWRpdCBIRVJFLCB0aGVuIHJ1biBgZ3VscCBzYXNzLXYxYCAoY29tcGlsZXMgaW50byB3ZWIvY3NzL3YxL3N0eWxlLXYxLmNzcykuXG4vLyBMb2NhbCAtLXJzLSogY3VzdG9tIHByb3BzICsgYnJhbmQgcGFsZXR0ZSwgc2FtZSBjb252ZW50aW9uIGFzIHRoZSBvdGhlciB2MiBjb21wb25lbnRzLlxuXG4ucWRuYXByby1yYW5nZS1zbGlkZXIge1xuICAgIC0tcnMtdHJhY2s6IHZhcigtLWMtYm9yZGVyLWNhcmQpO1xuICAgIC0tcnMtZmlsbDogdmFyKC0tYy1hY3Rpb24tNTAwKTtcbiAgICAtLXJzLWRvdDogdmFyKC0tYy1zaWRlYmFyLWljb24pO1xuICAgIC0tcnMtaGFuZGxlOiAjZmZmZmZmO1xuICAgIC0tcnMtaGFuZGxlLWJvcmRlcjogdmFyKC0tYy1hY3Rpb24tNTAwKTtcbiAgICAtLXJzLWhhbmRsZS1nbG93OiByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbiAgICAtLXJzLWxhYmVsOiB2YXIoLS1jLXB1cnBsZS00MDApO1xuICAgIC0tcnMtbGFiZWwtYWN0aXZlOiB2YXIoLS1jLXRleHQtaGVhZGluZyk7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiA2cHggMTJweCA0cHg7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB0b3VjaC1hY3Rpb246IG5vbmU7XG59XG5cbi5xZG5hcHJvLXJhbmdlLXNsaWRlciAucnMtdHJhY2sge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDZweDtcbiAgICBtYXJnaW46IDE0cHggMCA2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcnMtdHJhY2spO1xufVxuXG4ucWRuYXByby1yYW5nZS1zbGlkZXIgLnJzLWZpbGwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXJzLWZpbGwpO1xufVxuXG4ucWRuYXByby1yYW5nZS1zbGlkZXIgLnJzLWRvdCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHdpZHRoOiA0cHg7XG4gICAgaGVpZ2h0OiA0cHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0ycHg7XG4gICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcnMtZG90KTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnFkbmFwcm8tcmFuZ2Utc2xpZGVyIC5ycy1oYW5kbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgbWFyZ2luLWxlZnQ6IC05cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXJzLWhhbmRsZSk7XG4gICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tcnMtaGFuZGxlLWJvcmRlcik7XG4gICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xOCk7XG4gICAgY3Vyc29yOiBncmFiO1xuICAgIHotaW5kZXg6IDI7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAxNDBtcyBlYXNlLW91dCwgdHJhbnNmb3JtIDEyMG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8tcmFuZ2Utc2xpZGVyIC5ycy1oYW5kbGU6aG92ZXIge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDZweCB2YXIoLS1ycy1oYW5kbGUtZ2xvdyksIDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTgpO1xufVxuLnFkbmFwcm8tcmFuZ2Utc2xpZGVyIC5ycy1oYW5kbGU6YWN0aXZlIHtcbiAgICBjdXJzb3I6IGdyYWJiaW5nO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgxLjA4KTtcbn1cbi5xZG5hcHJvLXJhbmdlLXNsaWRlciAucnMtaGFuZGxlOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxuLnFkbmFwcm8tcmFuZ2Utc2xpZGVyIC5ycy1oYW5kbGU6Zm9jdXMtdmlzaWJsZSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHZhcigtLXJzLWhhbmRsZS1nbG93KSwgMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xOCk7XG59XG5cbi5xZG5hcHJvLXJhbmdlLXNsaWRlciAucnMtbGFiZWxzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIG1hcmdpbi10b3A6IDJweDtcbn1cbi5xZG5hcHJvLXJhbmdlLXNsaWRlciAucnMtbGFiZWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1ycy1sYWJlbCk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAxMjBtcyBlYXNlLW91dDtcbn1cbi5xZG5hcHJvLXJhbmdlLXNsaWRlciAucnMtbGFiZWwuaXMtYWN0aXZlIHsgY29sb3I6IHZhcigtLXJzLWxhYmVsLWFjdGl2ZSk7IH1cblxuLnFkbmFwcm8tcmFuZ2Utc2xpZGVyLmlzLWRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLXJlY2lwaWVudC1waWNrZXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIExheW91dCArIGNvbG91ciBPTkxZLiBFdmVyeSByZWFsIGNvbnRyb2wgKHNlYXJjaCBmaWVsZCwgY2hlY2tib3gsXG4vLyAgYXZhdGFyLCBidXR0b25zKSBpcyBhIGNvbXBvc2VkIGNvbXBvbmVudCB3aXRoIGl0cyBvd24gU0NTUy4gVGhpc1xuLy8gIGZpbGUgbmV2ZXIgcmVwZWF0cyB0aGVpciBiYWNrZ3JvdW5kL2JvcmRlci9wYWRkaW5nL3R5cG9ncmFwaHkgcnVsZXMsXG4vLyAgaXQgb25seSBhcnJhbmdlcyB0aGUgc2VjdGlvbnMgYW5kIHRoZSByb3cgZ3JpZC4gQ29uc3VtZXMgZGVzaWduXG4vLyAgdG9rZW5zIGZyb20gZGVzaWduLXRva2Vucy9fZGVzaWduLXRva2Vucy5zY3NzLlxuLy9cbi8vICBGbGF0IC5ycC0qIHNlbGVjdG9ycyBmb3IgdGhlIGludGVybmFsIGxheW91dCBwaWVjZXMgKHNhbWUgaWRpb20gYXNcbi8vICBxZG5hcHJvLWZpbHRlci1zaGVldCdzIC5mcy0qIGNsYXNzZXMpLCB0aGUgaG9zdCBpdHNlbGYgaXMgdGhlIG9ubHkgcmVhbFxuLy8gIEJFTSBibG9jayAoLnFkbmFwcm8tcmVjaXBpZW50LXBpY2tlcikuIFVzZXMgdGhlIHNoYXJlZCBxZG5hLXNjcm9sbGJhclxuLy8gIG1peGluIChtb2R1bGVzL19taXhpbnMuc2NzcykgZm9yIHRoZSBmaXhlZC1oZWlnaHQgbGlzdCBhcmVhLlxuLy9cbi8vICBDVVNUT00gUFJPUEVSVFkgLS1ycC1saXN0LWhlaWdodCAoS2ltJ3MgZGVjaXNpb24sIDMwLjA3LjIwMjYpOiB0aGUgd2hvbGVcbi8vICBhcmVhIGJlbG93IHRoZSBzZWFyY2ggZmllbGQgKC5ycC1ib2R5IC0gaGludCAvIGVtcHR5IC8gYnVzeSAvIHJlc3VsdHMsXG4vLyAgYWxsIG9mIGl0KSBpcyBhIEZJWEVELWhlaWdodCBib3ggd2l0aCBpdHMgb3duIHNjcm9sbCwgc2V0IGJ5IHRoaXMgY3VzdG9tXG4vLyAgcHJvcGVydHkgKGRlZmF1bHQgMzIwcHggYmVsb3cpLiBCZWZvcmUgdGhpcywgdGhlIHBhbmVsIGdyZXcgYW5kIHNocmFua1xuLy8gIHdoaWxlIHR5cGluZyAtIGhpbnQsIHRoZW4gcmVzdWx0cywgdGhlbiBtYXliZSBlbXB0eSAtIHdoaWNoIG1hZGUgYVxuLy8gIHBob25lJ3MgYm90dG9tIHNoZWV0IGp1bXAgYXJvdW5kIGFzIHlvdSB0eXBlZC4gTm93IHRoZSBjb21wb25lbnQncyBvd25cbi8vICBvdXRlciBzaXplIG5ldmVyIGNoYW5nZXMgbm8gbWF0dGVyIHdoaWNoIG9mIHRob3NlIHN0YXRlcyAucnAtYm9keSBpc1xuLy8gIHNob3dpbmcuIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgaW5zaWRlIFRXTyBkaWZmZXJlbnQgd3JhcHBlcnMgKGEgYm90dG9tXG4vLyAgc2hlZXQgb24gcGhvbmUsIGEgY2VudGVyZWQgZGlhbG9nIG9uIHRhYmxldC9kZXNrdG9wKSwgc28gaXQgbWFrZXMgbm9cbi8vICBhc3N1bXB0aW9uIGFib3V0IGl0cyBvd24gb3V0ZXIgc2l6ZSBiZXlvbmQgdGhpcyBvbmUgZml4ZWQgaW5uZXIgaGVpZ2h0IC1cbi8vICBhIGhvc3Qgb24gYSBiaWdnZXIgc2NyZWVuIGNhbiBzZXQgYSByb29taWVyIHZhbHVlLCBlLmcuOlxuLy8gICAgLm15LWRpYWxvZyBxZG5hcHJvLXJlY2lwaWVudC1waWNrZXIgeyAtLXJwLWxpc3QtaGVpZ2h0OiA0MjBweDsgfVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkB1c2UgJy4uLy4uLy4uL21vZHVsZXMvbWl4aW5zJyBhcyAqO1xuXG4vLyBgaGlkZGVuYCBNT0VUIGhldCB3aW5uZW4gdmFuIG9uemUgZWlnZW4gZGlzcGxheS1yZWdlbHMsIGVuIGRhdCBkb2V0IGhldCBuaWV0IHZhbnplbGYuXG4vLyBIZXQgY29tcG9uZW50IHNjaGFrZWx0IHZpamYgYmxva2tlbiBhYW4gZW4gdWl0IG1ldCBoZXQgYGhpZGRlbmAtYXR0cmlidXV0IChkZVxuLy8gcmVzdWx0YXRlbi1zZWN0aWVrb3AsIGRlIGhpbnQsIGRlIGxlZ2UgdWl0c2xhZywgZGUgYmV6aWctc3RhbmQgZW4gZGUgcmVzdWx0YXRlbmxpanN0KS5cbi8vIGBoaWRkZW5gIGtyaWpndCB6aWpuIGBkaXNwbGF5OiBub25lYCBhbGxlZW4gdWl0IGRlIHN0eWxlc2hlZXQgdmFuIGRlIEJST1dTRVIsIGVuIGVsa2Vcbi8vIGVpZ2VuIGBkaXNwbGF5YC1yZWdlbCB2ZXJzbGFhdCBkaWUuIFR3ZWUgdmFuIGRpZSB2aWpmIGJsb2trZW4gemV0dGVuIGBkaXNwbGF5OiBmbGV4YCBlblxuLy8gc3RvbmRlbiBkYWFyZG9vciBhbHRpamQgaW4gYmVlbGQ6IGRlIGxlZ2UgcmVzdWx0YXRlbmxpanN0LCBlbiBoZXQgZHJhYWllbmRlIHNwaW5uZXJ0amVcbi8vIG9vayBhbHMgZXIgbmlldHMgYWFuIGhldCBsYWRlbiB3YXMuIERhdCBsYWF0c3RlIGlzIGluIGVlbiBicm93c2VyIGdlemllbiwgb3AgMzAuMDcuMjAyNixcbi8vIG1ldCBgYnVzeWAgTklFVCBnZXpldC5cbi8vXG4vLyBFw6luIHJlZ2VsIG9wIGRlIGhvc3QgaW4gcGxhYXRzIHZhbiBgJltoaWRkZW5dYCBiaWogZWxrIGJsb2s6IGRhbiBrYW4gZWVuIHZvbGdlbmQgYmxvayBtZXRcbi8vIGVlbiBlaWdlbiBkaXNwbGF5LXJlZ2VsIGRlemUgdmFsIG5pZXQgb3BuaWV1dyBpbnRyb2R1Y2VyZW4uIFNwZWNpZmljaXRlaXQgbmFnZXJla2VuZDpcbi8vICgwLDIsMCkgdGVnZW4gZGUgKDAsMSwwKSB2YW4gZWVuIGxvc3NlIGAucnAtKmAta2xhc3NlLCBkdXMgZGV6ZSB3aW50LCBlbiBlciBpcyBnZWVuXG4vLyBgIWltcG9ydGFudGAgdm9vciBub2RpZy5cbi5xZG5hcHJvLXJlY2lwaWVudC1waWNrZXIgW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5xZG5hcHJvLXJlY2lwaWVudC1waWNrZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IHZhcigtLXMtNCk7XG59XG5cbi8vIEZsYXQgLnJwLSogZWxlbWVudCBjbGFzc2VzIHRocm91Z2hvdXQgKG5vdCBCRU0gJl9fIG5lc3RpbmcgdW5kZXIgdGhlIGhvc3Rcbi8vIGNsYXNzKSAtIG1hdGNoZXMgcWRuYXByby1maWx0ZXItc2hlZXQncyBvd24gLmZzLSogY29udmVudGlvbiBmb3IgdGhlIHNhbWVcbi8vIGtpbmQgb2YgaW50ZXJuYWwgbGF5b3V0IHBpZWNlLlxuLnJwLXNlY3Rpb24tdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZnctbWVkaXVtKTtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgICBwYWRkaW5nOiAwIHZhcigtLXMtMSk7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcy0yKTtcbn1cblxuLy8gLS0tLS0tLS0tLSBzZWFyY2ggLS0tLS0tLS0tLVxuLy9cbi8vIEhvcml6b250YWwgaW5zZXQgb2YgdmFyKC0tcy0xKSwgbWF0Y2hpbmcgdGhlIHJvd3MgYmVsb3cgKC5ycC1yb3cgYWxyZWFkeVxuLy8gaW5zZXRzIGJ5IHZhcigtLXMtMSkgdmlhIGl0cyBvd24gcGFkZGluZykgLSBOT1QganVzdCBjb3NtZXRpYyBhbGlnbm1lbnQuXG4vLyBxZG5hcHJvLWlucHV0IGRyYXdzIGl0cyBmb2N1cyByaW5nIGFzIGEgYGJveC1zaGFkb3c6IDAgMCAwIDNweGAgb25cbi8vIC5pbnB1dC1maWVsZDpmb2N1cy13aXRoaW4gKF9pbnB1dC5zY3NzKSwgd2hpY2ggc2l0cyBPVVRTSURFIHRoZSBpbnB1dCdzXG4vLyBvd24gYm9yZGVyLWJveCBhbmQgbmVlZHMgcm9vbSB0aGVyZS4gVGhpcyBjb21wb25lbnQgY2FuIGJlIGVtYmVkZGVkIGluIGFcbi8vIHFkbmFwcm8tYm90dG9tLXNoZWV0LCB3aG9zZSAuYnMtYm9keSBzZXRzIGBvdmVyZmxvdy15OiBhdXRvYCAtIHBlciB0aGUgQ1NTXG4vLyBzcGVjIHRoYXQgYWxzbyBmb3JjZXMgb3ZlcmZsb3cteCB0byBiZWhhdmUgYXMgYGF1dG9gIChhIGxvbmUgYXhpcyBjYW5ub3Rcbi8vIHN0YXkgYHZpc2libGVgIG9uY2UgdGhlIG90aGVyIG9uZSBpc24ndCksIHNvIHRoYXQgYW5jZXN0b3IgY2xpcHNcbi8vIGhvcml6b250YWxseSB0b28gZXZlbiB0aG91Z2ggaXQgb25seSBtZWFudCB0byBzY3JvbGwgdmVydGljYWxseS4gV2l0aG91dFxuLy8gdGhpcyBpbnNldCB0aGUgZm9jdXMgcmluZyBoYWQgbm93aGVyZSB0byBnbyBhbmQgZ290IGNsaXBwZWQgbGVmdCArIHJpZ2h0XG4vLyAoc2VlbiBieSBLaW0gb24gaGVyIGlQYWQsIDMwLjA3LjIwMjYpLiBGaXhlZCBoZXJlLCBpbiBPVVIgT1dOIGNvbXBvbmVudCxcbi8vIHJhdGhlciB0aGFuIHRvdWNoaW5nIHFkbmFwcm8tYm90dG9tLXNoZWV0IGl0c2VsZiAtIHRoYXQgY29tcG9uZW50IGlzXG4vLyBzaGFyZWQgYnkgbWFueSBvdGhlciBzY3JlZW5zIGFuZCBpcyBub3QgdGhpcyBjaGFuZ2UncyB0byBhbHRlci5cbi5ycC1zZWFyY2gge1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tcy0xKTtcblxuICAgIHFkbmFwcm8taW5wdXQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0gYm9keSAoaGludCAvIGJ1c3kgLyByZXN1bHRzIC8gZW1wdHkpIC0tLS0tLS0tLS1cbi8vXG4vLyBGaXhlZCBoZWlnaHQgKyBpdHMgb3duIHNjcm9sbCAoc2VlIC0tcnAtbGlzdC1oZWlnaHQgaW4gdGhlIGZpbGUgaGVhZGVyXG4vLyBhYm92ZSkgLSBoaW50LCBlbXB0eSwgYnVzeSBhbmQgdGhlIHJlc3VsdHMgbGlzdCBhbGwgbGl2ZSBpbiBoZXJlLCBzbyB0aGVcbi8vIGNvbXBvbmVudCdzIG91dGVyIHNpemUgc3RheXMgY29uc3RhbnQgbm8gbWF0dGVyIHdoaWNoIG9mIHRob3NlIGlzXG4vLyBzaG93aW5nLlxuLnJwLWJvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBoZWlnaHQ6IHZhcigtLXJwLWxpc3QtaGVpZ2h0LCAzMjBweCk7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBAaW5jbHVkZSBxZG5hLXNjcm9sbGJhcjtcbn1cblxuLnJwLWhpbnQsXG4ucnAtZW1wdHkge1xuICAgIHBhZGRpbmc6IHZhcigtLXMtNCkgdmFyKC0tcy0xKTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5ycC1idXN5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogdmFyKC0tcy02KSAwO1xufVxuXG4ucnAtc3Bpbm5lciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDIycHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIsICNlNmU5ZWYpO1xuICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICBhbmltYXRpb246IHJwLXNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgcnAtc3BpbiB7XG4gICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLnJwLXNwaW5uZXIge1xuICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDEuNnM7XG4gICAgfVxufVxuXG4ucnAtcmVzdWx0cy1saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1zLTEpO1xufVxuXG4vLyAtLS0tLS0tLS0tIHJvdyAocmVzdWx0cyBvbmx5IC0gbm8gbW9yZSBzZXBhcmF0ZSBhc3NpZ25lZCByb3dzKSAtLS0tLS0tLS0tXG5cbi5ycC1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXMtMyk7XG4gICAgcGFkZGluZzogdmFyKC0tcy0yKSB2YXIoLS1zLTEpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMik7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLWhvdmVyKTtcbiAgICB9XG5cbiAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucnAtcm93LW1ldGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZmxleDogMTtcbn1cblxuLnJwLXJvdy1uYW1lIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LW1lZGl1bSk7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5KTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5ycC1yb3ctcm9sZSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4vLyBBY2Nlc3MtbGFiZWwgLSB0aGUgcmVhc29uIGFuIGFscmVhZHlfYXNzaWduZWQgcm93IGlzIGRpc2FibGVkLiBTaXRzIHRvIHRoZVxuLy8gcmlnaHQgb2YgdGhlIHJvdyAocnAtcm93LW1ldGEgYWJvdmUgdXNlcyBmbGV4OjEsIHNvIHRoaXMgdHJhaWxpbmcgZWxlbWVudFxuLy8gbmV2ZXIgaGFzIHRvIGZpZ2h0IGl0IGZvciBzcGFjZSk7IGNhbG0gKyBtdXRlZCwgc2FtZSB0b2tlbiBhcyB0aGUgcm9sZVxuLy8gdGV4dCwgbmFtZSBhbmQgcm9sZSBzdGF5IHB1dCBvbiB0aGUgbGVmdC5cbi5ycC1yb3ctYWNjZXNzIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4vLyAtLS0tLS0tLS0tIGZvb3RlciAtLS0tLS0tLS0tXG5cbi5ycC1mb290ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBnYXA6IHZhcigtLXMtMik7XG4gICAgcGFkZGluZy10b3A6IHZhcigtLXMtMik7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMiwgI2U2ZTllZik7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBTaGFyZWQgbWl4aW5zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgU2Nyb2xsYmFyc1xuLy8gIFVzZSB0aGVzZSBpbnN0ZWFkIG9mIGNvcHktcGFzdGluZyA6Oi13ZWJraXQtc2Nyb2xsYmFyIHJ1bGVzXG4vLyAgcGVyIHBhZ2UuIFR3byBmbGF2b3Vyczpcbi8vXG4vLyAgICBxZG5hLXNjcm9sbGJhciAgICAgICAgIG1pbmltYWwsIGhvdmVyLXJldmVhbCAobWFjT1Mgb3ZlcmxheVxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZSk6IGludmlzaWJsZSBhdCByZXN0LCBhIHRoaW4gc29mdFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICB0aHVtYiBmYWRlcyBpbiBvbiBob3Zlci9zY3JvbGwuIE5vIHRyYWNrLlxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICBVc2Ugb24gbG9uZyBwcmltYXJ5IGNvbnRlbnQgKGxpc3RzLFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWwgcGFuZXMpIHdoZXJlIHNjcm9sbCBhZmZvcmRhbmNlXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdHRlcnMuXG4vL1xuLy8gICAgcWRuYS1zY3JvbGxiYXItaGlkZGVuICBmdWxseSBoaWRkZW4gYmFyLCBjb250ZW50IHN0YXlzXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbGFibGUgKHdoZWVsL3RyYWNrcGFkKS4gVXNlIG9uXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0IGxpc3RzLCBob3Jpem9udGFsIHN0cmlwcyBhbmRcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5IG92ZXJmbG93IGFyZWFzLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBxZG5hLXNjcm9sbGJhciB7XG4gICAgLy8gV2Via2l0LW9ubHkgKENocm9tZS9TYWZhcmkvRWRnZSkuIFdlIGludGVudGlvbmFsbHkgZG8gTk9UIHNldCB0aGVcbiAgICAvLyBzdGFuZGFyZCBgc2Nyb2xsYmFyLXdpZHRoYC9gc2Nyb2xsYmFyLWNvbG9yYCBoZXJlOiBtb2Rlcm4gQ2hyb21lIGhvbm91cnNcbiAgICAvLyB0aG9zZSBrZXl3b3JkcyBhbmQgdGhlbiBJR05PUkVTIHRoZSA6Oi13ZWJraXQtc2Nyb2xsYmFyIHBzZXVkbywgZm9yY2luZ1xuICAgIC8vIGEgfjExcHggXCJ0aGluXCIgYmFyLiBXZWJraXQgcHNldWRvIGxldHMgdXMgcGluIGl0IHRvIGV4YWN0bHkgOHB4ICsgZG8gdGhlXG4gICAgLy8gaG92ZXItcmV2ZWFsLiBGaXJlZm94IGZhbGxzIGJhY2sgdG8gaXRzIGRlZmF1bHQgc2Nyb2xsYmFyLlxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgd2lkdGg6IDhweDsgaGVpZ2h0OiA4cHg7IH1cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgICAgICAgICAgICAgICAgICAgICAvLyBoaWRkZW4gYXQgcmVzdFxuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTYwbXMgZWFzZTtcbiAgICB9XG4gICAgJjpob3Zlcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4gICAgJjpmb2N1cy13aXRoaW46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjIyKTsgfVxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjM0KTsgfVxufVxuXG5AbWl4aW4gcWRuYS1zY3JvbGxiYXItaGlkZGVuIHtcbiAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmlyZWZveFxuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTsgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbGQgRWRnZS9JRVxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgd2lkdGg6IDA7IGhlaWdodDogMDsgZGlzcGxheTogbm9uZTsgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1yZXNvdXJjZS10aW1lbGluZSDigJQgUGxhbm5lciBib2FyZCBjb3JlIChGMSwgcmVhZC1vbmx5KVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgUUROQSB0b2tlbnMgdXNlZDpcbi8vICAgIC0tYy1ncmV5LTEwMCAgI2U3ZTllYyAgIHJhc3RlciBsaW5lcyAvIGNlbGwgKyBsYWJlbCBib3JkZXJzXG4vLyAgICAtLWMtZ3JleS0yMDAgICNkOGRhZGUgICBzY3JvbGxiYXIgdGh1bWJcbi8vICAgIC0tYy1ncmV5LTUwMCAgIzZiNzI4MCAgIG1ldGEgdGV4dCwgd2Vla2RheSBsYWJlbHMsIFwiK05cIiBvdmVyZmxvd1xuLy8gICAgLS1jLWdyZXktNTAgICAjZjBmMWYyICAgZGlzYWJsZWQgY2VsbCBmaWxsXG4vLyAgICAtLWMtYWN0aW9uLTUwMCAjNDY1MmYzICB0b2RheSBwaWxsIGZpbGwgKGhlYWRlciBkYXkgbnVtYmVyKSArIHRvZGF5XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWVrZGF5IHRpbnQgKEtpbSwgMjAuMDcuMjAyNiDigJQgcmVwbGFjZWQgdGhlXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGQgZnVsbC1jZWxsIC0tYy1wdXJwbGUtNTAgdG9kYXkgaGlnaGxpZ2h0KVxuLy8gICAgLS1jLXB1cnBsZS01MDAgIzQwNDk5YSAgIGZvY3VzIHJpbmdcbi8vICAgIC0tYy1iZy1jYXJkICAgI2ZmZiAgICAgIG9wYXF1ZSBiYWNrZ3JvdW5kcyBmb3IgdGhlIHN0aWNreSBsYXllcnNcbi8vICBSb3dzID0gcGVvcGxlL2xvY2F0aW9ucyAoU1RJQ0tZIExFRlQgbGFiZWwgY29sdW1uKSwgY29sdW1ucyA9IGRheXNcbi8vICAoU1RJQ0tZIFRPUCBoZWFkZXIpLiBCb3RoIGxpdmUgaW4gT05FIHNjcm9sbGluZyBDU1MgR1JJRCDigJQgdGhlIGNvbHVtblxuLy8gIHRyYWNrIGxpc3QgaXMgW2xhYmVsLWNvbCwgZGF5IHggTl0gYW5kIGV2ZXJ5IHN1YnNlcXVlbnQgRE9NIGNoaWxkXG4vLyAgYXV0by1mbG93cyBpbnRvIHRoZSBuZXh0IGNlbGwsIHNvIGEgZGF0YSByb3cgaXMganVzdCBcImxhYmVsLCB0aGVuIE5cbi8vICBkYXkgY2VsbHNcIiB3aXRoIE5PIHBlci1yb3cgd3JhcHBlciBkaXYuIFZpcnR1YWxpemF0aW9uIChKUyBzaWRlKSBvbmx5XG4vLyAgZXZlciBpbnNlcnRzL3JlbW92ZXMgdGhhdCBmbGF0IHJ1biBvZiBjaGlsZHJlbiBiZXR3ZWVuIHR3byBzcGFjZXIgcm93c1xuLy8gIHRoYXQgc3BhbiBldmVyeSBjb2x1bW4gKGdyaWQtY29sdW1uOiAxIC8gLTEpIGFuZCBjYXJyeSBhbiBpbmxpbmUgaGVpZ2h0XG4vLyAgc3RhbmRpbmcgaW4gZm9yIHRoZSByb3dzIHRoYXQgYXJlIG5vdCBjdXJyZW50bHkgcmVuZGVyZWQuXG4vLyAgRkxBVCBDU1MgKG5vIFNDU1MgbmVzdGluZyksIG1hdGNoaW5nIHRoZSB0aW1lLWdyaWQgLyBtb250aC1ncmlkIHNpYmxpbmdzLlxuXG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZSB7XG4gIC8vIFB1YmxpYyBDU1MgaG9va3MgKGRlbnNpdHkvbGF5b3V0KS4gLS1yZXNvdXJjZS10aW1lbGluZS1yb3cgaXMgbm93XG4gIC8vIE9QVElPTkFMIChLaW0sIDE2LjA3LjIwMjYg4oCUIHBlci1yb3cgYXV0byBoZWlnaHQgbW9kZWwsIHNlZSB0aGVcbiAgLy8gY29tcG9uZW50IEpTIGhlYWRlciBjb21tZW50KTogdW5zZXQgYnkgZGVmYXVsdCwgc28gZWFjaCByb3cgYXV0by1zaXplc1xuICAvLyBmcm9tIGl0cyBvd24gY29udGVudCAoY29tcGFjdCB3aGVuIGVtcHR5LCBncm93biB0byBmaXQgaXRzIGJ1c2llc3RcbiAgLy8gY2VsbCdzIGNoaXBzKS4gU2V0dGluZyAtLXJlc291cmNlLXRpbWVsaW5lLXJvdyByZWluc3RhdGVzIHRoZSBPTERcbiAgLy8gZml4ZWQtaGVpZ2h0IGJlaGF2aW91ciBhcyBhIHBlci1yb3cgTUlOSU1VTSAoYmFja3dhcmQgY29tcGF0IG9ubHkpLlxuICAtLXJlc291cmNlLXRpbWVsaW5lLWxhYmVsLWNvbDogMjIwcHg7XG4gIC0tcmVzb3VyY2UtdGltZWxpbmUtcm93LWNvbXBhY3Q6IDQ0cHg7XG4gIC8vIEhlYWRlciByb3cgaGVpZ2h0IOKAlCBpbnRlcm5hbCwgYnV0IHN0eWxlYWJsZSBsaWtlIHRoZSB0d28gYWJvdmVcbiAgLS1yZXNvdXJjZS10aW1lbGluZS1oZWFkZXI6IDQ0cHg7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1mb250LWZhbWlseSwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcbn1cblxuLy8gVGhlIG9uZSBzY3JvbGwgc3VyZmFjZTogYSBDU1MgZ3JpZCwgW2xhYmVsLWNvbCwgZGF5IHggTl0gdHJhY2tzLlxuLy8gTk9URTogcmVwZWF0KCkgY2Fubm90IHRha2UgYSB2YXIoKSBhcyBpdHMgY291bnQgKGludmFsaWQgQ1NTIOKAlCB0aGUgd2hvbGVcbi8vIGRlY2xhcmF0aW9uIHdvdWxkIGJlIGRyb3BwZWQgYW5kIHRoZSBncmlkIGNvbGxhcHNlcyB0byBvbmUgY29sdW1uKSwgc29cbi8vIHRoaXMgaXMgb25seSB0aGUgNy1kYXkgREVGQVVMVDsgcmVuZGVyKCkgc2V0cyB0aGUgcmVhbCB0cmFjayBsaXN0IGlubGluZVxuLy8gcGVyIHRoZSBhY3R1YWwgYGRheXNgIGF0dHJpYnV0ZS5cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19zY3JvbGwge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLXJlc291cmNlLXRpbWVsaW5lLWxhYmVsLWNvbCkgcmVwZWF0KDcsIDFmcik7XG4gIGFsaWduLWNvbnRlbnQ6IHN0YXJ0O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogYXV0bztcbiAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xuICAvLyBPcGFxdWUgc3VyZmFjZTogYWxzbyBjb3ZlcnMgdGhlIHZpcnR1YWxpemF0aW9uIHNwYWNlcnMsIHNvIGZhc3RcbiAgLy8gc2Nyb2xsaW5nIG5ldmVyIGZsYXNoZXMgdGhlICh0aW50ZWQpIHBhZ2UgYmFja2dyb3VuZCB0aHJvdWdoLlxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xufVxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX3Njcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbn1cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19zY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTIwMCwgI2Q4ZGFkZSk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19zY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi8vIC0tLSBTdGlja3kgY29ybmVyICsgaGVhZGVyIGRheSBjZWxscyAocGlubmVkIHRvIHRoZSB0b3ApIC0tLVxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX2Nvcm5lciB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogNDtcbiAgaGVpZ2h0OiB2YXIoLS1yZXNvdXJjZS10aW1lbGluZS1oZWFkZXIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYyk7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0xMDAsICNlN2U5ZWMpO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4vLyBzZWFyY2hhYmxlIGNvcm5lcjogaG91c2VzIHRoZSBsaWJyYXJ5IDxxZG5hcHJvLWlucHV0IHR5cGU9XCJzZWFyY2hcIj4gKHNlZVxuLy8gcWRuYS1yZXNvdXJjZS10aW1lbGluZS5qcyBfYnVpbGRDb3JuZXIpIOKAlCBzYW1lIGZvb3RwcmludCBhcyB0aGUgcGxhaW5cbi8vIGNvcm5lciBjZWxsIGFib3ZlLCBvbmx5IHByZXNlbnQgd2hlbiB0aGUgYHNlYXJjaGFibGVgIGF0dHJpYnV0ZSBpcyBzZXQuXG4vLyBUaGUgaW5wdXQgYnJpbmdzIGl0cyBvd24gaWNvbi9jbGVhci14L2ZvY3VzIHN0eWxpbmcsIHNvIHRoaXMgaXMgbGF5b3V0XG4vLyBvbmx5OiBmaWxsIHRoZSBjb3JuZXIgYW5kIGxldCBxZG5hcHJvLWlucHV0J3Mgb3duIHNpemU9XCJzbWFsbFwiICg0MHB4KVxuLy8gY2VudHJlIGluc2lkZSB0aGUgNDRweCAtLXJlc291cmNlLXRpbWVsaW5lLWhlYWRlci5cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19jb3JuZXItLXNlYXJjaCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAgMTBweDtcbn1cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19jb3JuZXItLXNlYXJjaCAucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fc2VhcmNoaW5wdXQge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG59XG4vLyBSZWFsIDxidXR0b24gdHlwZT1cImJ1dHRvblwiPiBub3cgKEtpbSwgMTYuMDcuMjAyNiDigJQgXCJhbHMgaWsgb3AgZGUgZGF0dW1cbi8vIGtsaWsgd2lsIGlrIGRlIGRhZ3ZpZXcgemllblwiKSwgc28gdGhpcyByZXNldHMgdGhlIGJyb3dzZXIncyBkZWZhdWx0IGJ1dHRvblxuLy8gY2hyb21lIChib3JkZXIvYmFja2dyb3VuZC9mb250L2FwcGVhcmFuY2UpIHRvIGtlZXAgdGhlIHN0aWNreSBoZWFkZXIgY2VsbFxuLy8gbG9va2luZyBpZGVudGljYWwgdG8gdGhlIG9sZCBkaXYsIHRoZW4gYWRkcyBwb2ludGVyL2hvdmVyL2ZvY3VzIGFmZm9yZGFuY2VzLlxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX2RheWNlbGwge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBmb250OiBpbmhlcml0O1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAzO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiAxcHg7XG4gIGhlaWdodDogdmFyKC0tcmVzb3VyY2UtdGltZWxpbmUtaGVhZGVyKTtcbiAgbWluLXdpZHRoOiAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYyk7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0xMDAsICNlN2U5ZWMpO1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fZGF5Y2VsbDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCwgI2YwZjFmMik7XG59XG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fZGF5Y2VsbDpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG59XG4vLyBUT0RBWSAoS2ltLCAyMC4wNy4yMDI2KTogbm8gbW9yZSBmdWxsLWNlbGwgcHVycGxlIGZpbGwg4oCUIGl0IHJlYWQgYXNcbi8vIGNsdW5reSAoXCJsb21wXCIpLiBJbnN0ZWFkIGEgY29tcGFjdCBHb29nbGUtc3R5bGUgcGlsbCBzaXRzIGFyb3VuZCBKVVNUIHRoZVxuLy8gZGF5IG51bWJlciAoc2VlIC5pcy10b2RheSAuZGF5bnVtIGJlbG93KSwgc28gdGhlIHRvZGF5IGNlbGwga2VlcHMgdGhlXG4vLyBzYW1lIG5ldXRyYWwgYmFja2dyb3VuZCArIGhvdmVyIGFzIGV2ZXJ5IG90aGVyIGhlYWRlciBjZWxsLlxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX3dlZWtkYXkge1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxM3B4O1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNzI4MCk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAzZW07XG59XG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fZGF5bnVtIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS04MDAsICMxYzFiMjkpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLy8gV2Vla2RheSBsYWJlbCB0aW50cyB0byB0aGUgYWN0aW9uIGNvbG9yIG9uIHRvZGF5IChtYXRjaGVzIHRoZSBwaWxsKS5cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19kYXljZWxsLmlzLXRvZGF5IC5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX193ZWVrZGF5IHtcbiAgY29sb3I6IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG59XG4vLyBUaGUgcGlsbDogZmlsbGVkIC0tYy1hY3Rpb24tNTAwIGNoaXAgaHVnZ2luZyBqdXN0IHRoZSBkYXkgbnVtYmVyLCBrZXB0XG4vLyBkZWxpYmVyYXRlbHkgc21hbGwgKHRpZ2h0IHBhZGRpbmcsIG5vIGZpeGVkIHNpemUpIHNvIGl0IHN0YXlzIHN1YnRsZXJcbi8vIHRoYW4gR29vZ2xlJ3Mgb3ZlcnNpemVkIGNpcmNsZS5cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19kYXljZWxsLmlzLXRvZGF5IC5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19kYXludW0ge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG4gIHBhZGRpbmc6IDFweCA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xufVxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX3RvZGF5dGFnIHtcbiAgZm9udC1zaXplOiA5cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxMXB4O1xuICBjb2xvcjogdmFyKC0tYy1hY3Rpb24tNTAwLCAjNDY1MmYzKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbn1cbi8vIFRoZSBwaWxsIG5vdyBjYXJyaWVzIHRoZSBcInRvZGF5XCIgc2lnbmFsLCBzbyB0aGUgcmVkdW5kYW50IFZBTkRBQUcgdGFnIGlzXG4vLyBoaWRkZW4gKGFsc28ga2VlcHMgd2Vla2RheSArIHBpbGwgd2l0aGluIHRoZSA0NHB4IGhlYWRlciBoZWlnaHQpLiBUaGUgSlNcbi8vIHN0aWxsIGVtaXRzIGl0OyBmbGlwIHRoaXMgdG8gYGlubGluZWAgdG8gYnJpbmcgaXQgYmFjay5cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19kYXljZWxsLmlzLXRvZGF5IC5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX190b2RheXRhZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIC0tLSBWaXJ0dWFsaXphdGlvbiBzcGFjZXJzOiBvbmUgZ3JpZCByb3cgZWFjaCwgc3Bhbm5pbmcgZXZlcnkgY29sdW1uIC0tLVxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX3RvcHNwYWNlLFxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX2JvdHNwYWNlIHtcbiAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vLyAtLS0gU3RpY2t5IGxhYmVsIGNvbHVtbiAocGlubmVkIHRvIHRoZSBsZWZ0KSAtLS1cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19sYWJlbCB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgLy8gRmFsbGJhY2sgb25seSDigJQgdGhlIGNvbXBvbmVudCBzZXRzIHRoZSBSRUFMIHBlci1yb3cgaGVpZ2h0IGlubGluZSBpblxuICAvLyBfcmVuZGVyV2luZG93KCkgKGVhY2ggcm93IGF1dG8tc2l6ZXMgZnJvbSBpdHMgb3duIGNvbnRlbnQsIHNlZSB0aGUgSlNcbiAgLy8gaGVhZGVyIGNvbW1lbnQncyBQRVItUk9XIEFVVE8gSEVJR0hUIHNlY3Rpb24pLiBUaGlzIGp1c3QgYXZvaWRzIGFcbiAgLy8gaGVpZ2h0OmF1dG8gZmxhc2ggYmVmb3JlIEpTIGZpcnN0IHJ1bnMuXG4gIGhlaWdodDogdmFyKC0tcmVzb3VyY2UtdGltZWxpbmUtcm93LWNvbXBhY3QsIDQ0cHgpO1xuICBtaW4td2lkdGg6IDA7XG4gIHBhZGRpbmc6IDAgMTJweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLCAjZmZmKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0xMDAsICNlN2U5ZWMpO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jLWdyZXktMTAwLCAjZTdlOWVjKTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19sYWJlbHRleHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDFweDtcbiAgbWluLXdpZHRoOiAwO1xufVxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX2xhYmVsbmFtZSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktODAwLCAjMWMxYjI5KTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fbGFiZWxtZXRhIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTRweDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjcyODApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLy8gLS0tIERheSBjZWxscyAoZ3JpZCBib2R5KSAtLS1cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19jZWxsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDJweDtcbiAgbWluLXdpZHRoOiAwO1xuICAvLyBGYWxsYmFjayBvbmx5IOKAlCB0aGUgY29tcG9uZW50IHNldHMgdGhlIFJFQUwgcGVyLXJvdyBoZWlnaHQgaW5saW5lIGluXG4gIC8vIF9yZW5kZXJXaW5kb3coKSAoZWFjaCByb3cgYXV0by1zaXplcyBmcm9tIGl0cyBvd24gY29udGVudDogY29tcGFjdCB3aGVuXG4gIC8vIHRoZSByb3cgaGFzIG5vIGl0ZW1zIGluIHRoZSB2aXNpYmxlIHJhbmdlLCBlbHNlIGdyb3duIHRvIGZpdCBpdHNcbiAgLy8gYnVzaWVzdCBjZWxsJ3MgY2hpcHMg4oCUIHNlZSB0aGUgSlMgaGVhZGVyIGNvbW1lbnQncyBQRVItUk9XIEFVVE8gSEVJR0hUXG4gIC8vIHNlY3Rpb24pLiBUaGlzIGp1c3QgYXZvaWRzIGEgaGVpZ2h0OmF1dG8gZmxhc2ggYmVmb3JlIEpTIGZpcnN0IHJ1bnMuXG4gIGhlaWdodDogdmFyKC0tcmVzb3VyY2UtdGltZWxpbmUtcm93LWNvbXBhY3QsIDQ0cHgpO1xuICBwYWRkaW5nOiAzcHggNHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvLyBPcGFxdWUgY2VsbHM6IHRoZSBib2FyZCBpcyBhIGNhbGVuZGFyIFNVUkZBQ0UuIFRyYW5zcGFyZW50IGNlbGxzIG1hZGVcbiAgLy8gdGhlIHJhc3RlciBpbnZpc2libGUgb24gdGludGVkIHBhZ2UgYmFja2dyb3VuZHMgKEtpbSwgMTYuMDcuMjAyNiDigJRcbiAgLy8gXCJnZWVuIGNhbGVuZGVyIGNlbGxlbiB0ZSB6aWVuXCIgb24gdGhlIGxhdmVuZGVyIGJhY2tvZmZpY2UgYmcpLlxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYyk7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0xMDAsICNlN2U5ZWMpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fY2VsbC5pcy10b2RheSB7XG4gIC8vIEhhcmQsIHZlcnkgbGlnaHQgdGludCDigJQgTk9UIHRoZSAtLWMtcHVycGxlLXNvZnQtMTIgdG9rZW4sIHdoaWNoXG4gIC8vIGFwcGFyZW50bHkgcmVzb2x2ZXMgZGFya2VyIHRoYW4gaXRzIGRvY3VtZW50ZWQgZmFsbGJhY2sgaW4gcHJhY3RpY2VcbiAgLy8gKEtpbSwgMTYuMDcuMjAyNjogXCJ2ZWVsIHRlIGRvbmtlcjsgZ3JpanMtNTAgb2YgcGFhcnMtNTAgbGljaHQgaXNcbiAgLy8gdm9sZG9lbmRlXCIg4oCUIHRvZGF5LWtvbG9tIG1vZXQgc3VidGllbCB6aWpuLCB1bmxpa2UgdGhlIGhlYWRlciBkYXljZWxsXG4gIC8vIGFib3ZlIHdoaWNoIE1BWSBwb3Agd2l0aCBwdXJwbGUtNTApLlxuICBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAwLjA0KTtcbn1cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19jZWxsLmlzLWVtcHR5IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLy8gRGlhZ29uYWwgaGF0Y2gg4oCUIFNIQVJFRCBiZXR3ZWVuIC5pcy1kaXNhYmxlZCBhbmQgLmlzLXVuYXZhaWxhYmxlIChRRE5BXG4vLyBQbGFubmVyIGF2YWlsYWJpbGl0eSByb3VuZCAyLCAxNy4wNy4yMDI2OiBub24tYmxvY2tpbmcgcGxhbm5pbmdcbi8vIHBoaWxvc29waHkpLiBCb3RoIHJlYWQgYXMgXCJibG9ja2VkIGNhbGVuZGFyIHRpbWVcIiBhdCBhIGdsYW5jZSB2aWEgdGhlIHNhbWVcbi8vIHBhdHRlcm4gKGEgZmxhdCB0aW50IHdvdWxkIGJlIGluZGlzdGluZ3Vpc2hhYmxlIGZyb20gYm90aCB0aGUgcGFydGlhbC1kYXlcbi8vIGNvbG9yIHRpbnQgYW5kIHRoZSB0b2RheS1jb2x1bW4gdGludCksIG9ubHkgdGhlIGN1cnNvciArIGludGVyYWN0aXZpdHlcbi8vIGRpZmZlciDigJQgdGhlIGdyYWRpZW50IGxpdGVyYWwgbGl2ZXMgaGVyZSBPTkNFLCBub3QgZHVwbGljYXRlZCBwZXIgY2xhc3M6XG4vLyAgIC5pcy1kaXNhYmxlZCAgICDigJQgSEFSRCBibG9jazogbm9uLWludGVyYWN0aXZlIChubyBwcmVzcyBldmVudHM7IGRyYWctXG4vLyAgICAgICAgICAgICAgICAgICAgIG92ZXIvZHJvcCByZWplY3RlZCBpbiB0aGUgSlMg4oCUIHNlZSBfb25DZWxsRHJhZ092ZXIvXG4vLyAgICAgICAgICAgICAgICAgICAgIF9vbkNlbGxEcm9wJ3MgaXMtZGlzYWJsZWQgY2hlY2tzKS5cbi8vICAgLmlzLXVuYXZhaWxhYmxlIOKAlCBTT0ZUIGJsb2NrOiBzdGF5cyBmdWxseSBpbnRlcmFjdGl2ZSAocHJlc3MgZXZlbnRzXG4vLyAgICAgICAgICAgICAgICAgICAgIHN0aWxsIGZpcmUsIGRyYWctb3Zlci9kcm9wIHN0aWxsIGFsbG93ZWQg4oCUIHRoZVxuLy8gICAgICAgICAgICAgICAgICAgICBjb25zdW1lciBpcyBleHBlY3RlZCB0byBjb25maXJtIGJlZm9yZSBwbGFubmluZ1xuLy8gICAgICAgICAgICAgICAgICAgICB0aGVyZSkuIE5ldmVyIGFkZGVkIHRvIHRoZSBKUydzIGlzLWRpc2FibGVkIHJlamVjdGlvblxuLy8gICAgICAgICAgICAgICAgICAgICBjaGVja3MuXG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fY2VsbC5pcy1kaXNhYmxlZCxcbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19jZWxsLmlzLXVuYXZhaWxhYmxlIHtcbiAgYmFja2dyb3VuZDogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAxMzVkZWcsXG4gICAgdmFyKC0tYy1ncmV5LTUwLCAjZjBmMWYyKSAwIDZweCxcbiAgICByZ2JhKDEwNywgMTE0LCAxMjgsIDAuMTQpIDZweCAxMnB4XG4gICk7XG59XG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fY2VsbC5pcy1kaXNhYmxlZCB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fY2VsbC5pcy11bmF2YWlsYWJsZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLy8gLS0tIERyb3AgVEFSR0VUIChRRE5BIFBsYW5uZXIgZmFzZSBBLCBgZHJvcHBhYmxlYCBhdHRyaWJ1dGUpIC0tLVxuLy8gQWRkZWQgYnkgcWRuYS1yZXNvdXJjZS10aW1lbGluZS5qcyBfb25DZWxsRHJhZ092ZXIgd2hpbGUgYSB2YWxpZFxuLy8gYXBwbGljYXRpb24veC1xZG5hLXBpY2tlciAobmV3IGl0ZW0gZnJvbSBhIHBpY2tlciByb3cpIG9yXG4vLyBhcHBsaWNhdGlvbi94LXFkbmEtaXRlbSAoZXhpc3RpbmcgY2hpcCBiZWluZyBtb3ZlZCkgZHJhZyBob3ZlcnMgYVxuLy8gbm9uLWRpc2FibGVkIGNlbGwuIERpc2FibGVkIGNlbGxzIG5ldmVyIGdldCB0aGlzIGNsYXNzIChkcmFnb3ZlciBuZXZlclxuLy8gcHJldmVudERlZmF1bHQoKXMgdGhlcmUg4oCUIHNlZSB0aGUgSlMpIHNvIHRoZXkga2VlcCB0aGUgbmF0aXZlIG5vLWRyb3Bcbi8vIGN1cnNvciBpbnN0ZWFkLlxuLy9cbi8vIE1hcmNoaW5nLWFudHMgaWRpb20gYm9ycm93ZWQgMToxIGZyb20gdGhlIGhvdXNlIGRyb3B6b25lIGNvbXBvbmVudHMg4oCUXG4vLyBxZG5hcHJvLWRyb3AtZ3JpZCAoX2Ryb3AtZ3JpZC5zY3NzLCAuZHJvcC1ncmlkLWNlbGwtaG92ZXIpIGFuZFxuLy8gcWRuYXByby1maWxlLXVwbG9hZCAoX2ZpbGUtdXBsb2FkLnNjc3MsIC5xZG5hcHJvLWZpbGUtdXBsb2FkX196b25lLmlzLWRyYWdvdmVyKTpcbi8vIHB1cnBsZSBzdHJva2UsIDZweCBkYXNoIC8gNnB4IGdhcCwgMS42cyBsaW5lYXIgaW5maW5pdGUgY3Jhd2wsIHNvZnQgcHVycGxlXG4vLyB0aW50LiBUaG9zZSBjb21wb25lbnRzIHBhaW50IHRoZSBhbnRzIHdpdGggYW4gYWJzb2x1dGVseSBwb3NpdGlvbmVkIFNWR1xuLy8gPHJlY3Qgc3Ryb2tlLWRhc2hhcnJheT1cIjYgNlwiPiBjaGlsZCAoc2VlIHFkbmEtZmlsZS11cGxvYWQuanMgTUFSQ0hfU1ZHLFxuLy8geD1cIjFcIiB5PVwiMVwiLCBzdHJva2Utd2lkdGg9XCIyXCIpOyB0aGlzIGNlbGwgaXMgYSBwbGFpbiBmbGF0LUNTUyBncmlkIGNlbGxcbi8vIHdpdGggbm8gcm9vbSB0byBpbmplY3QgYSBjaGlsZCBlbGVtZW50IHdpdGhvdXQgdG91Y2hpbmcgdGhlIGNvbXBvbmVudCBKU1xuLy8gKG91dCBvZiBzY29wZSBoZXJlKSwgc28gdGhlIGV4YWN0IHNhbWUgdmlzdWFsIGlzIHJlcHJvZHVjZWQgQ1NTLW9ubHk6IDRcbi8vIGFuaW1hdGVkIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQgYmFja2dyb3VuZCBsYXllcnMgKG9uZSBwZXIgZWRnZSkgd2Fsa2VkXG4vLyBjbG9ja3dpc2UgdmlhIGBiYWNrZ3JvdW5kLXBvc2l0aW9uYCwgaW5zZXQgMXB4IHRvIG1hdGNoIHRoZSBTVkcgcmVjdCdzXG4vLyB4L3k9XCIxXCIgKyBzdHJva2Utd2lkdGg9XCIyXCIgc28gdGhlIGFudHMgc2l0IGZsdXNoIHdpdGggdGhlIGNlbGwncyBvd25cbi8vIGJvcmRlci1ib3R0b20vYm9yZGVyLXJpZ2h0IChubyBsYXlvdXQgc2hpZnQg4oCUIHRoaXMgaXMgYSA6OmJlZm9yZSBvdmVybGF5LFxuLy8gbm90IGEgYm9yZGVyL291dGxpbmUpLlxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX2NlbGwuaXMtZHJvcC10YXJnZXQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS1zb2Z0LTEyLCByZ2JhKDY0LCA3MywgMTU0LCAwLjEyKSk7XG59XG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fY2VsbC5pcy1kcm9wLXRhcmdldDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMXB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpIDAgNnB4LCB0cmFuc3BhcmVudCAwIDEycHgpLFxuICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSkgMCA2cHgsIHRyYW5zcGFyZW50IDAgMTJweCksXG4gICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSkgMCA2cHgsIHRyYW5zcGFyZW50IDAgMTJweCksXG4gICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSkgMCA2cHgsIHRyYW5zcGFyZW50IDAgMTJweCk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteCwgcmVwZWF0LXgsIHJlcGVhdC15LCByZXBlYXQteTtcbiAgYmFja2dyb3VuZC1zaXplOiAxMnB4IDJweCwgMTJweCAycHgsIDJweCAxMnB4LCAycHggMTJweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwLCAwIDEwMCUsIDAgMCwgMTAwJSAwO1xuICBhbmltYXRpb246IHFkbmEtcmVzb3VyY2UtdGltZWxpbmUtbWFyY2ggMS42cyBsaW5lYXIgaW5maW5pdGU7XG59XG5Aa2V5ZnJhbWVzIHFkbmEtcmVzb3VyY2UtdGltZWxpbmUtbWFyY2gge1xuICB0byB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTJweCAwLCAtMTJweCAxMDAlLCAwIC0xMnB4LCAxMDAlIDEycHg7XG4gIH1cbn1cbi8vIFJlZHVjZWQgbW90aW9uOiBrZWVwIHRoZSBzdGF0aWMgZGFzaGVkIHJpbmcgKGJhY2tncm91bmQtcG9zaXRpb24gc2ltcGx5XG4vLyBuZXZlciBhZHZhbmNlcyksIGRyb3AgdGhlIGNyYXdsIOKAlCBzYW1lIGZhbGxiYWNrIGFzIGRyb3AtZ3JpZC9maWxlLXVwbG9hZC5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19jZWxsLmlzLWRyb3AtdGFyZ2V0OjpiZWZvcmUge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxufVxuXG4vLyBDaGlwcyDigJQgY29tcGFjdCBxZG5hcHJvLWV2ZW50LWNhcmQgKHNpemU9XCJzbWFsbFwiLCBzZWUgdGhlIEpTIF9idWlsZENoaXAg4oCUXG4vLyB0aGUgY2FyZCdzIG93biB2YXJpYW50IG5vdyBvd25zIHRoZSB0eXBvZ3JhcGh5LCB0aGlzIGlzIExBWU9VVCBvbmx5KS5cbi8vIEZJTEwgbGVmdG92ZXIgY2VsbCBzcGFjZSAoS2ltLCAxNi4wNy4yMDI2IOKAlCBcImVlbiBob2dlIGthYXJ0IHRvb250IG5vZ1xuLy8gc3RlZWRzIDEgcmVnZWwsIHpvbmRlXCIpOiBmbGV4LWdyb3cgd2l0aGluIHRoZSBjZWxsJ3MgY29sdW1uIGluc3RlYWQgb2YgYVxuLy8gZml4ZWQgMjJweCwgc28gYSBjZWxsIHRoYXQgZ290IHRoZSByb3cncyBmdWxsICh0YWxsZXIpIGhlaWdodCBiZWNhdXNlIGFcbi8vIFNJQkxJTkcgY2VsbCBpbiB0aGUgc2FtZSByb3cgaXMgYnVzaWVyIOKAlCBidXQgaXRzZWxmIGhvbGRzIGZld2VyL3Nob3J0ZXJcbi8vIGl0ZW1zIOKAlCBsZXRzIGl0cyBjaGlwKHMpIGdyb3cgaW50byB0aGF0IGxlZnRvdmVyIHNwYWNlLCB3aGVyZSB0aGUgY2FyZCdzXG4vLyBvd24gaGVpZ2h0LWF3YXJlIHRpdGxlIGNsYW1wIChxZG5hLWV2ZW50LWNhcmQuanMgX21lYXN1cmVUaXRsZUNsYW1wKSB0aGVuXG4vLyBzaG93cyBtb3JlIHRoYW4gb25lIGxpbmUuIG1pbi1oZWlnaHQgMjJweCBpcyB0aGUgZmxvb3IgKGEgZnVsbHktcGFja2VkXG4vLyBjZWxsJ3MgY2hpcHMgc3RpbGwgbGFuZCBhdCB+MjJweCBlYWNoLCBzYW1lIGFzIGJlZm9yZSDigJQgdGhlIHJvdyBoZWlnaHRcbi8vIE1BVEggaW4gX2NvbXB1dGVIZWlnaHRzL0NISVBfSCBpcyB1bmNoYW5nZWQsIHRoaXMgb25seSBjaGFuZ2VzIGhvdyB0aGVcbi8vIEFMUkVBRFktY29tcHV0ZWQgY2VsbCBzcGFjZSBpcyBzaGFyZWQgYW1vbmcgaXRzIHJlbmRlcmVkIGNoaXBzKS5cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19jaGlwIHtcbiAgZmxleDogMSAxIDIycHg7XG4gIG1pbi1oZWlnaHQ6IDIycHg7XG4gIHBhZGRpbmc6IDJweCA2cHg7XG59XG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fY2hpcCAucWRuYXByby1ldmVudC1jYXJkX19tZXRhIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8vIGNoaXBPcHRpb25zLmF2YXRhcjogZXZlbnQtY2FyZCdzIG93biBzbWFsbGVzdCBhdmF0YXIgdmFyaWFudCAoc2l6ZT0yMCkgaXNcbi8vIHN0aWxsIHRvbyB0YWxsIGZvciB0aGlzIDIycHggY2hpcCdzIH4xOHB4IGNvbnRlbnQgYm94LCBzbyBpdCdzIGRvd25zaXplZFxuLy8gZnVydGhlciBoZXJlIHZpYSB0aGUgYXZhdGFyJ3Mgb3duIENTUyBjdXN0b20gcHJvcGVydGllcyAoaXRzIGRvY3VtZW50ZWRcbi8vIHRoZW1pbmcgaG9vaykg4oCUIG5vdCBhIGZvcmssIGp1c3QgYSBjb250ZXh0LWxvY2FsIHNpemUgb3ZlcnJpZGUuXG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fY2hpcCAucWRuYXByby1ldmVudC1jYXJkX19hdmF0YXIge1xuICAtLWF2LXNpemU6IDE2cHg7XG4gIC0tYXYtcGFkZGluZzogM3B4O1xufVxuXG4vLyBDb25mbGljdCBkb3QgKFFETkEgUGxhbm5lciBhdmFpbGFiaWxpdHkgcm91bmQgMiwgMTcuMDcuMjAyNikg4oCUIFJFTU9WRURcbi8vIDE3LjA3LjIwMjY6IHVuaWZpZWQgd2l0aCBxZG5hcHJvLWV2ZW50LWNhcmQncyBvd24gbmF0aXZlIGBjb25mbGljdGBcbi8vIGF0dHJpYnV0ZSAocWRuYS1yZXNvdXJjZS10aW1lbGluZS5qcyBfYnVpbGRDaGlwIG5vdyBqdXN0IHNldHMgdGhlXG4vLyBhdHRyaWJ1dGUgb24gdGhlIGNoaXAgZWxlbWVudDsgdGhlIGNhcmQncyBvd24gcmVuZGVyKCkvU0NTUyBkcmF3cyB0aGVcbi8vIGRvdCDigJQgc2VlIF9ldmVudC1jYXJkLnNjc3MncyAucWRuYXByby1ldmVudC1jYXJkX19jb25mbGljdCkuIFRoaXMgYm9hcmRcbi8vIG5vIGxvbmdlciBwYWludHMgaXRzIG93biBvdmVybGF5LlxuXG4vLyBDaGlwIERSQUcgKFFETkEgUGxhbm5lciBmYXNlIEEsIGBkcm9wcGFibGVgIGF0dHJpYnV0ZSkg4oCUIGV4aXN0aW5nIGNoaXBzXG4vLyBiZWNvbWUgZHJhZyBzb3VyY2VzIGF0IGJ1aWxkIHRpbWUgd2hlbiBkcm9wcGFibGUgaXMgc2V0IChzZWUgX2J1aWxkQ2hpcCkuXG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fY2hpcFtkcmFnZ2FibGU9XCJ0cnVlXCJdIHtcbiAgY3Vyc29yOiBncmFiO1xufVxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX2NoaXAuaXMtZHJhZ2dpbmcge1xuICBvcGFjaXR5OiAwLjU7XG4gIGN1cnNvcjogZ3JhYmJpbmc7XG59XG5cbi8vIERSQUZUIGl0ZW1zIChpdGVtLmRyYWZ0ID09PSB0cnVlLCBRRE5BIFBsYW5uZXIgZmFzZSBBKSDigJQgYVxuLy8gbm90LXlldC1jb25maXJtZWQgcGxhbm5pbmcgaXRlbS4gRGFzaGVkIGJvcmRlciBpbiB0aGUgY2hpcCdzIE9XTiBzdGF0dXNcbi8vIGNvbG9yOiBxZG5hcHJvLWV2ZW50LWNhcmQgc2V0cyBib3RoIC0tZXZlbnQtY2FyZC10ZXh0IGFuZCBpdHMgb3duXG4vLyBgY29sb3I6IHZhcigtLWV2ZW50LWNhcmQtdGV4dClgIG9uIGl0c2VsZiBwZXIgc3RhdHVzIChzZWVcbi8vIF9ldmVudC1jYXJkLnNjc3MpLCBzbyBgY3VycmVudENvbG9yYCBhbmQgdGhlIHZhciByZXNvbHZlIGlkZW50aWNhbGx5IGhlcmVcbi8vIOKAlCB0aGUgZmFsbGJhY2sganVzdCBtYWtlcyB0aGF0IGV4cGxpY2l0IHJhdGhlciB0aGFuIHJlbHlpbmcgb24gaW5oZXJpdGFuY2Vcbi8vIG9yZGVyLiBCYWNrZ3JvdW5kIG9wYWNpdHkgaXMgcmVkdWNlZCB2aWEgY29sb3ItbWl4IG9uIHRoZSBjYXJkJ3Mgb3duXG4vLyAtLWV2ZW50LWNhcmQtYmcgKHNhbWUgdG9rZW4sIG5vdCBhIG5ldyBjb2xvciksIG1hdGNoaW5nIHRoZVxuLy8gLS10aGVtZS1idG4tY29sb3IgY29sb3ItbWl4IGlkaW9tIGFscmVhZHkgdXNlZCBlbHNld2hlcmUgaW4gdGhpcyBidW5kbGVcbi8vIChfYW5zd2VyLWJ1dHRvbi5zY3NzLCBfdW5pdC1pbnB1dC1yb3cuc2NzcykuXG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fY2hpcC0tZHJhZnQge1xuICBib3JkZXI6IDEuNXB4IGRhc2hlZCB2YXIoLS1ldmVudC1jYXJkLXRleHQsIGN1cnJlbnRDb2xvcik7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1ldmVudC1jYXJkLWJnLCB0cmFuc3BhcmVudCkgNTUlLCB0cmFuc3BhcmVudCk7XG59XG5cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19tb3JlIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogMXB4IDZweDtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMTRweDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjcyODApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTEsIDRweCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi8vIEhvdmVyL2ZvY3VzIGFmZm9yZGFuY2VzIChLaW0ncyBkYXktZGV0YWlsIGRlY2lzaW9uLCAxNi4wNy4yMDI2IOKAlCB0aGUgXCIrTlwiXG4vLyBsaW5lIGJlY29tZXMgYSByZWFsIHByZXNzIHRhcmdldCwgc2FtZSBpZGlvbSBhcyAucWRuYXByby1yZXNvdXJjZS10aW1lbGluZVxuLy8gX19kYXljZWxsIGFib3ZlIGl0OiB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kIGF0IHJlc3QsIGEgc3VidGxlIGdyZXkgdGludCBvblxuLy8gaG92ZXIsIHB1cnBsZSBmb2N1cyByaW5nIGZvciBrZXlib2FyZCBuYXYpLlxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX21vcmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTAsICNmMGYxZjIpO1xufVxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX21vcmU6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6XG4gICAgMCAwIDAgMnB4IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSksXG4gICAgMCAwIDAgNnB4IHZhcigtLWMtcHVycGxlLXNvZnQtMTgsIHJnYmEoNjQsIDczLCAxNTQsIDAuMTgpKTtcbn1cblxuLy8gV2lkZSBtb2RlIChkYXlzID4gNyk6IGRheSBjb2x1bW5zIGdldCBhIGZsb29yIHdpZHRoIHNvIHRoZXkgc3RheSBsZWdpYmxlO1xuLy8gdGhlIHNoYXJlZCBncmlkIHRoZW4gb3ZlcmZsb3dzIGFuZCB0aGUgT05FIHNjcm9sbGVyIGdhaW5zIGhvcml6b250YWwgc2Nyb2xsLlxuLy8gQXQgZGF5cyA8PSA3IHRoZXJlIGlzIG5vIG1pbi13aWR0aCwgc28gY29sdW1ucyBhbHdheXMgc2hhcmUgMTAwJSAobm8gc2Nyb2xsKS5cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lLS13aWRlIC5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19kYXljZWxsLFxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmUtLXdpZGUgLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX2NlbGwge1xuICBtaW4td2lkdGg6IDg4cHg7XG59XG4iLCIvLyBxZG5hcHJvLXJldmVhbC1zdGFnZSDigJQgZnVsbHNjcmVlbiBcImZlZXN0emFhbFwiIHN0YWdlIGZvciBQdWxzZSByZXZlYWwtbW9tZW50ZW4uXG4vLyBORVNURUQgKHJlYWwgYCZgLW5lc3RpbmcgdGhyb3VnaG91dCksIHNvIHRoaXMgbmVlZHMgY29tcGlsZVNjc3M6IHRydWUgd2hlcmV2ZXJcbi8vIGl0IGlzIHZlbmRvcmVkIChzZWUgYXBwX2FwaV9xZG5hdjIvc3luYy12Mi1jb21wb25lbnRzLmpzJ3MgY29tcGlsZVNjc3Mgbm90ZXMpLlxuLy9cbi8vIFRoZSBzdGFnZSBpcyBhIGRlbGliZXJhdGVseSBGSVhFRCBsaWdodC1vbi1wdXJwbGUgc3VyZmFjZTogaXQgZG9lcyBOT1QgZmxpcFxuLy8gd2l0aCBkYXJrIG1vZGUuIC0tYy1wdXJwbGUtNTAwLzcwMC8xMDAgYXJlIHVzZWQgZXhwbGljaXRseSwgbmV2ZXJcbi8vIC0tYy1icmFuZC1wdXJwbGUgKHdoaWNoIHJlc29sdmVzIHRvIC0tYy1wdXJwbGUtMjAwIGluIGRhcmsgbW9kZSBhbmQgd291bGRcbi8vIGludmVydCB0aGUgd2hvbGUgXCJmZWVzdHphYWxcIiBsb29rKS5cbi8vXG4vLyBFZGl0IEhFUkUsIHRoZW4gcnVuIGBndWxwIHNhc3MtdjFgIChsaWJyYXJ5KSArIHRoZSBQV0Egc3luYy5cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogNDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCB2YXIoLS1jLXB1cnBsZS01MDApIDAlLCB2YXIoLS1jLXB1cnBsZS03MDApIDYyJSk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1mb250LWZhbWlseSwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcblxuICAmLnJzLWNsb3NlZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICYucnMtc2hha2luZyB7XG4gICAgYW5pbWF0aW9uOiBycy1zaGFrZSAwLjRzIGxpbmVhcjtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJzLXNoYWtlIHtcbiAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgMjAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgM3B4KSByb3RhdGUoLTAuNmRlZyk7IH1cbiAgNDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCAtM3B4KSByb3RhdGUoMC42ZGVnKTsgfVxuICA2MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNHB4LCAtMnB4KTsgfVxuICA4MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgzcHgsIDJweCk7IH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDbG9zZSBidXR0b24gKyBmeCBsYXllciArIGZsYXNoXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtY2xvc2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTJweDtcbiAgcmlnaHQ6IDEycHg7XG4gIHotaW5kZXg6IDIwO1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWZ4IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgei1pbmRleDogNTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtZmxhc2gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiA2O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgJi5pcy1mbGFzaGluZyB7XG4gICAgYW5pbWF0aW9uOiBycy1mbGFzaCAwLjVzIGVhc2Utb3V0O1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcnMtZmxhc2gge1xuICAwJSB7IG9wYWNpdHk6IDAuOTU7IH1cbiAgMTAwJSB7IG9wYWNpdHk6IDA7IH1cbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLy8gU2FmZXR5IG5ldDogZXZlbiBpZiBhIGNob3Jlb2dyYXBoeSBwYXRoIGZvcmdvdCB0byBnYXRlIGEgZmxhc2gsIHJlZHVjZWRcbiAgLy8gbW90aW9uIG5ldmVyIHNob3dzIGl0LlxuICAucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWZsYXNoIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gSWRsZSBzdGF0ZSDigJQgdGhlIGNsb3NlZCBcImRpY2h0ZSBrYWFydFwiXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbiAgd2lkdGg6IG1pbigyNjBweCwgODQlKTtcbiAgcGFkZGluZzogMjRweCAyMnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogMS41cHggZGFzaGVkIHZhcigtLWMtd2hpdGUtODUpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTUpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS0xMDApO1xuICBib3gtc2hhZG93OiAwIDhweCAyNnB4IHJnYmEoMCwgMCwgMCwgMC4xNik7XG4gIGFuaW1hdGlvbjogcnMtYnJlYXRoZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcblxuICAmW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBycy1icmVhdGhlIHtcbiAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIDUwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4wNCk7IH1cbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1jYXJkLWljb24ge1xuICB3aWR0aDogNTZweDtcbiAgaGVpZ2h0OiA1NnB4O1xuICBtYXJnaW46IDAgYXV0byAxMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYW5pbWF0aW9uOiBycy13aWdnbGUgMS42cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBycy13aWdnbGUge1xuICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKC02ZGVnKTsgfVxuICA1MCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSg2ZGVnKSBzY2FsZSgxLjA4KTsgfVxufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWNhcmQtaGVhZGluZyB7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogODAwO1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNzAwKTtcbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1jYXJkLXN1YiB7XG4gIG1hcmdpbi10b3A6IDRweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNjAwKTtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1jYXJkLFxuICAucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWNhcmQtaWNvbiB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2NlbmUg4oCUIHNoYXJlZCBzaGVsbCBmb3IgZXZlcnkgc2hvdy10eXBlJ3MgY29udGVudFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXNjZW5lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAyNHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWZhZGUtaW4ge1xuICBhbmltYXRpb246IHJzLWZhZGUtaW4gMC4zNXMgZWFzZS1vdXQgYm90aDtcbn1cblxuQGtleWZyYW1lcyBycy1mYWRlLWluIHtcbiAgMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDEwMCUgeyBvcGFjaXR5OiAxOyB9XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtY3RhIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1zdGF0cm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxMHB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMTZweDtcbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1zdGF0IHtcbiAgcGFkZGluZzogOHB4IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMyk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTEwMCk7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS03MDApO1xuXG4gIC5ycy1zdGF0LXYge1xuICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICBmb250LXdlaWdodDogODAwO1xuICB9XG5cbiAgLnJzLXN0YXQtayB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS02MDApO1xuICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU0hPVyAxIOKAlCBWUy1hZnRyYXBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy12cyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMjIwcHg7XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtdnMtbmFtZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAzMHB4O1xuICBsZXR0ZXItc3BhY2luZzogMC4wMWVtO1xuICB0cmFuc2Zvcm06IHNrZXdYKC04ZGVnKTtcbiAgb3BhY2l0eTogMDtcbiAgY29sb3I6IHZhcigtLXJzLW5hbWUtY29sb3IsIHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pKTtcblxuICAmLnJzLXZzLW5hbWUtLWEgeyB0b3A6IDMwJTsgbGVmdDogLTEyMCU7IH1cbiAgJi5ycy12cy1uYW1lLS1iIHsgdG9wOiA1MCU7IHJpZ2h0OiAtMTIwJTsgfVxufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXZzLWdvIHtcbiAgLnJzLXZzLW5hbWUtLWEge1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgc2tld1goLThkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogbGVmdCAwLjVzIGN1YmljLWJlemllcigwLjIsIDEuMiwgMC4zLCAxKSwgb3BhY2l0eSAwLjJzO1xuICB9XG5cbiAgLnJzLXZzLW5hbWUtLWIge1xuICAgIHJpZ2h0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwJSkgc2tld1goLThkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogcmlnaHQgMC41cyBjdWJpYy1iZXppZXIoMC4yLCAxLjIsIDAuMywgMSkgMC4xMnMsIG9wYWNpdHkgMC4ycyAwLjEycztcbiAgfVxufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXZzLWJ1cnN0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDQwJTtcbiAgbGVmdDogNTAlO1xuICB3aWR0aDogOTJweDtcbiAgaGVpZ2h0OiA5MnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAzMHB4O1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNzAwKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy13YXJuLWFtYmVyLTUwMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDApO1xuICBjbGlwLXBhdGg6IHBvbHlnb24oNTAlIDAlLCA2MSUgMTIlLCA3OCUgOCUsIDgwJSAyNiUsIDk3JSAzMiUsIDg4JSA0NyUsIDEwMCUgNjElLCA4NCUgNjglLCA4NCUgODYlLCA2NiUgODMlLCA1NSUgMTAwJSwgNDUlIDg0JSwgMjclIDkxJSwgMjYlIDczJSwgOCUgNjglLCAxNyUgNTIlLCAzJSAzOSUsIDIwJSAzMSUsIDIwJSAxMyUsIDM4JSAxNiUpO1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXZzLWJ1cnN0LWdvIC5ycy12cy1idXJzdCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDEpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zNXMgY3ViaWMtYmV6aWVyKDAuMiwgMi4yLCAwLjQsIDEpO1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXlvdSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDI2cHgpO1xuXG4gICYucnMteW91LXNob3cge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjVzIGN1YmljLWJlemllcigwLjIsIDEuNCwgMC4zLCAxKTtcbiAgfVxufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXlvdS1wcmUge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjE0ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlLTcwKTtcbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy15b3UtbmFtZSB7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgZm9udC1zaXplOiA0MHB4O1xuICBmb250LXdlaWdodDogOTAwO1xuICBsaW5lLWhlaWdodDogMS4wNTtcbiAgY29sb3I6IHZhcigtLXJzLW5hbWUtY29sb3IsIHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pKTtcbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1yaW5nIHtcbiAgd2lkdGg6IDEyOHB4O1xuICBoZWlnaHQ6IDEyOHB4O1xuICBtYXJnaW46IDE2cHggYXV0byAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDNweCBzb2xpZCB2YXIoLS1ycy1yaW5nLWNvbG9yLCB2YXIoLS1jLXRleHQtb24tYWN0aW9uKSk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDEwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXJpbmctcyB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6IHZhcigtLWMtd2hpdGUtNzApO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNIT1cgMiDigJQgU2NvcmUtcmFjZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXJhY2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG4gIHdpZHRoOiBtaW4oMjgwcHgsIDkwJSk7XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtcmFjZS10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDE0cHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMTRlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLWMtd2hpdGUtNzApO1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWxhbmUtaGVhZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtbGFuZS12YWwge1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtbGFuZS10cmFjayB7XG4gIG1hcmdpbi1ib3R0b206IDE0cHg7XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtcmFjZS13aW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgJi5ycy1yYWNlLXdpbm5lci1zaG93IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXJhY2Utd2lubmFtZSB7XG4gIGZvbnQtc2l6ZTogMzRweDtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMDU7XG4gIGNvbG9yOiB2YXIoLS1ycy1uYW1lLWNvbG9yLCB2YXIoLS1jLXRleHQtb24tYWN0aW9uKSk7XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtcmFjZS1yZXN1bHRsYWJlbCB7XG4gIG1hcmdpbi10b3A6IDJweDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogOTAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xuICBjb2xvcjogdmFyKC0tYy13YXJuLWFtYmVyLTUwMCk7XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtcmFjZS1kZXRhaWwge1xuICBtYXgtd2lkdGg6IDIzMHB4O1xuICBtYXJnaW46IDEycHggYXV0byAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlLTcwKTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTSE9XIDMg4oCUIFBvZGl1bVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXBvZGl1bS13cmFwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xuICB3aWR0aDogbWluKDI4MHB4LCA5MCUpO1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXBvZGl1bS1zcG90IHtcbiAgbWluLWhlaWdodDogMjBweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogODAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4xNGVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXBvZGl1bS1iYXJzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xuICBoZWlnaHQ6IDE5MHB4O1xuICBtYXJnaW4tdG9wOiA4cHg7XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtcG9kaXVtLXNsb3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICB3aWR0aDogNzRweDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXBvZGl1bS13aG8ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBtYXJnaW4tYm90dG9tOiA2cHg7XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtcG9kaXVtLXBlcnNvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDBweCk7XG59XG5cbi8vIFRoZSBcImxhbmRcIiBjbGFzcyBnb2VzIG9uIHRoZSBXSE8gd3JhcHBlciAoLnJzLXBvZGl1bS13aG8tbGFuZCksIG5vdCBvbiBlYWNoXG4vLyBwZXJzb24g4oCUIEpTIHRvZ2dsZXMgaXQgb25jZSBwZXIgc2xvdCwgc28gZXZlcnkgYXZhdGFyIHNoYXJpbmcgYSBwbGFjZSBsYW5kc1xuLy8gdG9nZXRoZXIuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXBvZGl1bS13aG8tbGFuZCAucnMtcG9kaXVtLXBlcnNvbiB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNDVzIGN1YmljLWJlemllcigwLjIsIDEuOCwgMC40LCAxKTtcbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1wb2RpdW0tbmFtZSB7XG4gIG1hcmdpbi10b3A6IDNweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogODAwO1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXBvZGl1bS1iYXIge1xuICB3aWR0aDogNjRweDtcbiAgaGVpZ2h0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmctdG9wOiA2cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tci0yKSB2YXIoLS1yLTIpIDAgMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tcnMtYmFyLWNvbG9yLCB2YXIoLS1jLXB1cnBsZS0zMDApKTtcbiAgY29sb3I6IHZhcigtLXJzLWJhci1pbmssIHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pKTtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuNXMgY3ViaWMtYmV6aWVyKDAuMiwgMS4zLCAwLjQsIDEpO1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXBvZGl1bS1mbG9vciB7XG4gIGhlaWdodDogNHB4O1xuICBtYXJnaW4tdG9wOiAtMnB4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1wb2RpdW0teW91IHtcbiAgbWFyZ2luLXRvcDogMTRweDtcbiAgcGFkZGluZzogOHB4IDE0cHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMyk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTEwMCk7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS03MDApO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIG9wYWNpdHk6IDA7XG5cbiAgJi5ycy1wb2RpdW0teW91LXNob3cge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzIGVhc2U7XG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTSE9XIDQg4oCUIFNvbG8gZWluZHJhcHBvcnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1zb2xvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXNvbG8tbGFiZWwsXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXNvbG8tdW5pdCB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMTRlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLWMtd2hpdGUtNzApO1xufVxuXG4vLyBxZG5hcHJvLXNjb3JlLWNvdW50IGFscmVhZHkgcmVuZGVycyB3aGl0ZSB0YWJ1bGFyLW51bXMgKC0tYy10ZXh0LW9uLWFjdGlvbiksXG4vLyBleGFjdGx5IHRoZSBpbmsgdGhpcyBzdGFnZSBuZWVkcyDigJQgbm8gb3ZlcnJpZGUgbmVlZGVkLCBqdXN0IHNwYWNpbmcuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXNvbG8tY291bnQucWRuYXByby1zY29yZS1jb3VudCB7XG4gIG1hcmdpbi10b3A6IDZweDtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTSE9XIDUg4oCUIEJlZGFuay1tb21lbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy10aGFua3Mge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtdGhhbmtzLXRpdGxlIHtcbiAgZm9udC1zaXplOiAzNHB4O1xuICBmb250LXdlaWdodDogOTAwO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtdGhhbmtzLWJvZHkge1xuICBtYXgtd2lkdGg6IDIyMHB4O1xuICBtYXJnaW46IDhweCBhdXRvIDA7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6IHZhcigtLWMtd2hpdGUtNzApO1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1yb3ctYnRuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBJY29uLW9ubHkgdG9nZ2xlIGJ1dHRvbiBmb3IgYWN0aXZpdHktcm93IGNvbHVtbnMuXG4vLyAgTk9UIHRoZSB0b29sYmFyIGJ1dHRvbiAodGhhdCBpcyBxZG5hcHJvLWFjdGlvbi1idG4gaW4gdG9vbGJhci1hY3Rpb24tYnRuLykuXG4vLyAgVGhpcyBvbmUgbGl2ZXMgb24gZ2xhc3MgY2FyZHM6IHRyYW5zbHVjZW50IGJhY2tncm91bmRzLCBtdXRlZCBpZGxlIGljb24uXG4vL1xuLy8gIFRva2VucyB1c2VkOlxuLy8gICAgcmdiYSgwLCAwLCAwLCAwLjA0KSAgICAgICAgICBpZGxlIGJnIChnbGFzcyBjYXJkIHN1cmZhY2UgdGludClcbi8vICAgIHJnYmEoMCwgMCwgMCwgMC4wOCkgICAgICAgICAgaG92ZXIgYmdcbi8vICAgIHJnYmEoMCwgMCwgMCwgMC4xMikgICAgICAgICAgcHJlc3NlZCBiZ1xuLy8gICAgIzZiNzI4MCAgICAgICAgICAgICAgICAgICAgICBpZGxlIGljb24gY29sb3IgKG11dGVkIGdyZXkpXG4vLyAgICAjMGIwYjBkICAgIFRleHQvT24tQm9keSAgICAgIGhvdmVyIGljb24gY29sb3Jcbi8vICAgIHJnYmEoNzAsIDgyLCAyNDMsIDAuMTIpICAgICAgYWN0aXZlIGJnICAgKFFETkEgSGlnaGxpZ2h0IEAgMTIlKVxuLy8gICAgcmdiYSg3MCwgODIsIDI0MywgMC4xOCkgICAgICBhY3RpdmUgaG92ZXIgYmdcbi8vICAgICM0MDQ5OWEgICAgSWNvbi9QcmltYXJ5LXB1cnBsZSAgYWN0aXZlIGljb24gY29sb3Jcbi8vICAgICMzMzNhN2IgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlIGhvdmVyIGljb24gY29sb3Jcbi8vICAgIC0tYy1mb2N1cy1yaW5nIC8gLS1jLWZvY3VzLWdsb3cgIGluaGVyaXRlZCBmcm9tIGFjdGl2aXR5LXJvdyBob3N0XG4vL1xuLy8gIFNpemVzOlxuLy8gICAgc2l6ZT1cIjM2XCIgIDM2eDM2cHgsIGljb24gMjBweCAgKGFjdGl2aXR5LXJvdyBkZWZhdWx0KVxuLy8gICAgc2l6ZT1cIjI4XCIgIDI4eDI4cHgsIGljb24gMTZweCAgKGNvbXBhY3QgLyBtb2RhbCB0b29sYmFyKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5xZG5hcHJvLXJvdy1idG4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCk7ICAgICAgICAgICAgICAgICAgICAgICAvLyBtdXRlZCBncmV5IOKAlCBpZGxlIGljb25cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEyMG1zIGVhc2UsIGNvbG9yIDEyMG1zIGVhc2U7XG5cbiAgICAqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4gICAgLy8gSWNvbiBjaGlsZCAoaW5saW5lIFNWRyBvciBxZG5hcHJvLWljb24pIOKAlCBpbmhlcml0cyBjb2xvciBmcm9tIGhvc3RcbiAgICBzdmcsXG4gICAgcWRuYXByby1pY29uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICAgIHN2ZyB7IGZpbGw6IGN1cnJlbnRDb2xvcjsgfVxuXG4gICAgLy8gLS0tLSBTaXplOiAzNngzNiAoZGVmYXVsdCkgLS0tLVxuICAgICYucm93LWJ0bi1zaXplLTM2IHtcbiAgICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICAgIGhlaWdodDogMzZweDtcbiAgICAgICAgc3ZnLFxuICAgICAgICBxZG5hcHJvLWljb24geyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyB9XG4gICAgfVxuXG4gICAgLy8gLS0tLSBTaXplOiA0MHg0MCAtLS0tXG4gICAgLy8gVm9vciBlZW4gd2Vya2JhbGsgd2FhcmluIG9vayBxZG5hcHJvLWJ1dHRvbiBzaXplPVwic21hbGxcIiBzdGFhdDogZGllIGlzIDQweDQwXG4gICAgLy8gKGJ1dHRvbi1zaXplLXNtYWxsLmJ1dHRvbi1pY29uLW9ubHkpLCBkdXMgMzYgc3RvbmQgZXIgbmV0IHRlIGtsZWluIG5hYXN0LiBIZXRcbiAgICAvLyBpY29vbiBibGlqZnQgMjBweCwgem9hbHMgYmlqIDM2LCB6b2RhdCBoZXQgZGV6ZWxmZGUga25vcCBibGlqZnQgYWxzIG9wIGRlXG4gICAgLy8gdGFrZW5saWpzdHJpai4gW0tpbSAwMy4wOC4yMDI2LCBicmllZmluZy1rbm9wIGluIGhldCB2cmFhZy1tb2RhbF1cbiAgICAmLnJvdy1idG4tc2l6ZS00MCB7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIHN2ZyxcbiAgICAgICAgcWRuYXByby1pY29uIHsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgfVxuICAgIH1cblxuICAgIC8vIC0tLS0gU2l6ZTogMjh4MjggLS0tLVxuICAgICYucm93LWJ0bi1zaXplLTI4IHtcbiAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBzdmcsXG4gICAgICAgIHFkbmFwcm8taWNvbiB7IHdpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7IH1cbiAgICB9XG5cbiAgICAvLyAtLS0tIEhvdmVyIC0tLS1cbiAgICAmOmhvdmVyOm5vdCgucm93LWJ0bi1kaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLSBQcmVzc2VkIC0tLS1cbiAgICAmOmFjdGl2ZTpub3QoLnJvdy1idG4tZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tIEZvY3VzIC0tLS1cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tYy1mb2N1cy1yaW5nLCAjNDA0OTlhKSxcbiAgICAgICAgICAgICAgICAgICAgMCAwIDAgNXB4IHZhcigtLWMtZm9jdXMtZ2xvdywgcmdiYSg3MCwgODIsIDI0MywgMC4yMCkpO1xuICAgIH1cblxuICAgIC8vIC0tLS0gQWN0aXZlIChvbi1zdGF0ZSwgZS5nLiB1bml0IGxpc3QgbGlua2VkKSAtLS0tXG4gICAgJi5yb3ctYnRuLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMTIpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgICB9XG4gICAgJi5yb3ctYnRuLWFjdGl2ZTpob3Zlcjpub3QoLnJvdy1idG4tZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg3MCwgODIsIDI0MywgMC4xOCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS02MDApO1xuICAgIH1cblxuICAgIC8vIC0tLS0gQWN0aXZlIHZhcmlhbnQ6IGNvbmNlcHQgKHVucHVibGlzaGVkIGRyYWZ0KSDigJQgYW1iZXIvb3JhbmdlIC0tLS1cbiAgICAmLnJvdy1idG4tYWN0aXZlLnJvdy1idG4tdmFyaWFudC1jb25jZXB0IHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNDUsIDE1OCwgMTEsIDAuMTYpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy13YXJuLWFtYmVyLTYwMCk7XG4gICAgfVxuICAgICYucm93LWJ0bi1hY3RpdmUucm93LWJ0bi12YXJpYW50LWNvbmNlcHQ6aG92ZXI6bm90KC5yb3ctYnRuLWRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjQ1LCAxNTgsIDExLCAwLjI0KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtd2Fybi1hbWJlci02MDApO1xuICAgIH1cblxuICAgIC8vIC0tLS0gRGlzYWJsZWQgLS0tLVxuICAgICYucm93LWJ0bi1kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNDA7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgRGFyayBtb2RlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1yb3ctYnRuIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpO1xuICAgIGNvbG9yOiAjOWNhM2FmO1xuXG4gICAgJjpob3Zlcjpub3QoLnJvdy1idG4tZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEwKTtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgfVxuXG4gICAgJjphY3RpdmU6bm90KC5yb3ctYnRuLWRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCk7XG4gICAgfVxuXG4gICAgJi5yb3ctYnRuLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjApO1xuICAgICAgICBjb2xvcjogI2E1YWNmZjtcbiAgICB9XG4gICAgJi5yb3ctYnRuLWFjdGl2ZTpob3Zlcjpub3QoLnJvdy1idG4tZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg3MCwgODIsIDI0MywgMC4zMCk7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIH1cblxuICAgICYucm93LWJ0bi1hY3RpdmUucm93LWJ0bi12YXJpYW50LWNvbmNlcHQge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0NSwgMTU4LCAxMSwgMC4yMik7XG4gICAgICAgIGNvbG9yOiAjZmJiZjI0O1xuICAgIH1cbiAgICAmLnJvdy1idG4tYWN0aXZlLnJvdy1idG4tdmFyaWFudC1jb25jZXB0OmhvdmVyOm5vdCgucm93LWJ0bi1kaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0NSwgMTU4LCAxMSwgMC4zMik7XG4gICAgICAgIGNvbG9yOiAjZmNkMzRkO1xuICAgIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8tc2VnbWVudCAgKyAgcWRuYXByby1zZWdtZW50LWl0ZW1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFFETkEgdG9rZW5zIHVzZWQ6XG4vLyAgICBTdXJmYWNlL0RlZmF1bHQgICAgICAgICAgICAgICNmZmZmZmYgICBzbGlkaW5nIHBpbGwgYmFja2dyb3VuZFxuLy8gICAgU3VyZmFjZS9TZWNvbmRhcnkgICAgICAgICAgICAjZjBmMWYyICAgdHJhY2sgYmFja2dyb3VuZFxuLy8gICAgVGV4dC9Pbi1Cb2R5ICAgICAgICAgICAgICAgICAjMGIwYjBkICAgYWN0aXZlIGl0ZW0gbGFiZWxcbi8vICAgIFRleHQvU2Vjb25kYXJ5ICAgICAgICAgICAgICAgcmdiYSgxMSwxMSwxMywwLjU1KSAgaW5hY3RpdmUgbGFiZWxcbi8vICAgIFRleHQvRGlzYWJsZWQgICAgICAgICAgICAgICAgIzg5OGU5OSAgIGRpc2FibGVkIGxhYmVsXG4vLyAgICBCb3JkZXIvQWN0aW9uLVB1cnBsZS1PdXRsaW5lZCAjNDA0OTlhICBmb2N1cyByaW5nIGlubmVyXG4vLyAgICBQdXJwbGUtSGlnaGxpZ2h0IEAgMjUlICAgICAgIHJnYmEoNzAsODIsMjQzLDAuMjUpICBmb2N1cyBnbG93XG4vLyAgICBTaGFkb3cvRWxldmF0aW9uLTEgICAgICAgICAgIDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMTIpLCAwIDFweCAycHggcmdiYSgwLDAsMCwwLjA4KVxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlsbCBzaGFkb3dcbi8vXG4vLyAgRGFyayBtb2RlOlxuLy8gICAgU3VyZmFjZS9EYXJrL1NlY29uZGFyeSAgICAgICAjMmEyZDM1ICAgdHJhY2sgYmFja2dyb3VuZFxuLy8gICAgU3VyZmFjZS9EYXJrL1BpbGwgICAgICAgICAgICAjMWUyMDI4ICAgYWN0aXZlIHBpbGxcbi8vICAgIFRleHQvRGFyay9QcmltYXJ5ICAgICAgICAgICAgI2YwZjFmMiAgIGFjdGl2ZSBsYWJlbFxuLy8gICAgVGV4dC9EYXJrL1NlY29uZGFyeSAgICAgICAgICByZ2JhKDI0MCwyNDEsMjQyLDAuNTApICBpbmFjdGl2ZSBsYWJlbFxuLy8gICAgVGV4dC9EYXJrL0Rpc2FibGVkICAgICAgICAgICAjNTU1ODVmICAgZGlzYWJsZWQgbGFiZWxcbi8vXG4vLyAgQW5pbWF0aW9uOlxuLy8gICAgQSBzaW5nbGUgYWJzb2x1dGVseS1wb3NpdGlvbmVkIC5zZWdtZW50LXRyYWNrLXBpbGwgc2xpZGVzIGJldHdlZW5cbi8vICAgIGl0ZW1zIHVzaW5nIENTUyB0cmFuc2Zvcm0gKyB3aWR0aCB0cmFuc2l0aW9ucyBvbiB0aGUgR1BVIGNvbXBvc2l0b3Jcbi8vICAgIGxheWVyLiBJdGVtcyB0aGVtc2VsdmVzIGhhdmUgdHJhbnNwYXJlbnQgYmFja2dyb3VuZHMg4oCUIHRoZSBwaWxsXG4vLyAgICBwcm92aWRlcyB0aGUgYWN0aXZlIHZpc3VhbCBzdGF0ZS5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyAtLS0tIHNpemluZyB0b2tlbnMgLS0tLVxuJHNlZ21lbnQtdHJhY2stcmFkaXVzLWRlZmF1bHQgOiAxMHB4O1xuJHNlZ21lbnQtdHJhY2stcmFkaXVzLXNtYWxsICAgOiA4cHg7XG4kc2VnbWVudC1waWxsLXJhZGl1cy1kZWZhdWx0ICA6IDhweDtcbiRzZWdtZW50LXBpbGwtcmFkaXVzLXNtYWxsICAgIDogNnB4O1xuJHNlZ21lbnQtdHJhY2stcGFkZGluZyAgICAgICAgOiAzcHg7XG4kc2VnbWVudC1pdGVtLWhlaWdodC1kZWZhdWx0ICA6IDM2cHg7XG4kc2VnbWVudC1pdGVtLWhlaWdodC1zbWFsbCAgICA6IDI4cHg7XG4kc2VnbWVudC1pdGVtLW1pbi13aWR0aCAgICAgICA6IDY0cHg7XG4kc2VnbWVudC1pdGVtLXB4LWRlZmF1bHQgICAgICA6IDE0cHg7XG4kc2VnbWVudC1pdGVtLXB4LXNtYWxsICAgICAgICA6IDEwcHg7XG4kc2VnbWVudC1nYXAgICAgICAgICAgICAgICAgICA6IDhweDtcblxuLy8gLS0tLSBhbmltYXRpb24gdG9rZW5zIC0tLS1cbiRzZWdtZW50LWVhc2UgICAgICAgICAgICAgICAgIDogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiRzZWdtZW50LWR1cmF0aW9uICAgICAgICAgICAgIDogMjgwbXM7XG5cbi8vIC0tLS0gY29sb3IgdG9rZW5zIC0tLS1cbiRzZWdtZW50LXRyYWNrLWJnICAgICAgICAgICAgIDogI2YwZjFmMjtcbiRzZWdtZW50LXRyYWNrLWJnLWRhcmsgICAgICAgIDogIzJhMmQzNTtcbiRzZWdtZW50LXBpbGwtYmcgICAgICAgICAgICAgIDogI2ZmZmZmZjtcbiRzZWdtZW50LXBpbGwtYmctZGFyayAgICAgICAgIDogIzFlMjAyODtcbiRzZWdtZW50LXBpbGwtc2hhZG93ICAgICAgICAgIDogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuJHNlZ21lbnQtbGFiZWwtYWN0aXZlICAgICAgICAgOiAjMGIwYjBkO1xuJHNlZ21lbnQtbGFiZWwtYWN0aXZlLWRhcmsgICAgOiAjZjBmMWYyO1xuJHNlZ21lbnQtbGFiZWwtaW5hY3RpdmUgICAgICAgOiByZ2JhKDExLCAxMSwgMTMsIDAuNTUpO1xuJHNlZ21lbnQtbGFiZWwtaW5hY3RpdmUtZGFyayAgOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuNTApO1xuJHNlZ21lbnQtbGFiZWwtZGlzYWJsZWQgICAgICAgOiAjODk4ZTk5O1xuJHNlZ21lbnQtbGFiZWwtZGlzYWJsZWQtZGFyayAgOiAjNTU1ODVmO1xuJHNlZ21lbnQtaG92ZXItYmcgICAgICAgICAgICAgOiByZ2JhKDExLCAxMSwgMTMsIDAuMDYpO1xuJHNlZ21lbnQtaG92ZXItYmctZGFyayAgICAgICAgOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuMDgpO1xuJHNlZ21lbnQtcHJlc3NlZC1iZyAgICAgICAgICAgOiByZ2JhKDExLCAxMSwgMTMsIDAuMTApO1xuJHNlZ21lbnQtcHJlc3NlZC1iZy1kYXJrICAgICAgOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuMTIpO1xuJHNlZ21lbnQtZm9jdXMtcmluZyAgICAgICAgICAgOiAjNDA0OTlhO1xuJHNlZ21lbnQtZm9jdXMtZ2xvdyAgICAgICAgICAgOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgVHJhY2sgIChxZG5hcHJvLXNlZ21lbnQgaG9zdClcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4ucWRuYXByby1zZWdtZW50IHtcbiAgICBkaXNwbGF5ICAgICAgIDogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXMgICA6IGNlbnRlcjtcbiAgICBnYXAgICAgICAgICAgIDogJHNlZ21lbnQtZ2FwO1xuICAgIHBhZGRpbmcgICAgICAgOiAkc2VnbWVudC10cmFjay1wYWRkaW5nO1xuICAgIGJhY2tncm91bmQgICAgOiAkc2VnbWVudC10cmFjay1iZztcbiAgICBib3JkZXItcmFkaXVzIDogJHNlZ21lbnQtdHJhY2stcmFkaXVzLWRlZmF1bHQ7XG4gICAgYm94LXNpemluZyAgICA6IGJvcmRlci1ib3g7XG4gICAgLy8gUmVxdWlyZWQgZm9yIHRoZSBhYnNvbHV0ZWx5LXBvc2l0aW9uZWQgc2xpZGluZyBwaWxsLlxuICAgIHBvc2l0aW9uICAgICAgOiByZWxhdGl2ZTtcblxuICAgICYuc2VnbWVudC1zaXplLXNtYWxsIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNlZ21lbnQtdHJhY2stcmFkaXVzLXNtYWxsO1xuICAgIH1cblxuICAgICYuc2VnbWVudC1kaXNhYmxlZCB7XG4gICAgICAgIGJhY2tncm91bmQgICAgOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuNzApO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICBbZGF0YS10aGVtZT1cImRhcmtcIl0gJixcbiAgICAudGhlbWUtZGFyayAmIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHNlZ21lbnQtdHJhY2stYmctZGFyaztcblxuICAgICAgICAmLnNlZ21lbnQtZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg0MiwgNDUsIDUzLCAwLjYwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgU2xpZGluZyBwaWxsICAoLnNlZ21lbnQtdHJhY2stcGlsbClcbi8vICBDcmVhdGVkIGJ5IEpTLCBwb3NpdGlvbmVkIHZpYSB0cmFuc2Zvcm0gKyB3aWR0aC5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uc2VnbWVudC10cmFjay1waWxsIHtcbiAgICBwb3NpdGlvbiAgICAgIDogYWJzb2x1dGU7XG4gICAgdG9wICAgICAgICAgICA6ICRzZWdtZW50LXRyYWNrLXBhZGRpbmc7XG4gICAgbGVmdCAgICAgICAgICA6IDA7XG4gICAgaGVpZ2h0ICAgICAgICA6IGNhbGMoMTAwJSAtICN7JHNlZ21lbnQtdHJhY2stcGFkZGluZyAqIDJ9KTtcbiAgICB3aWR0aCAgICAgICAgIDogMDsgICAgICAgICAgIC8vIHNldCBieSBKUyBvbiBpbml0XG4gICAgdHJhbnNmb3JtICAgICA6IHRyYW5zbGF0ZVgoMCk7IC8vIHNldCBieSBKU1xuICAgIGJvcmRlci1yYWRpdXMgOiAkc2VnbWVudC1waWxsLXJhZGl1cy1kZWZhdWx0O1xuICAgIGJhY2tncm91bmQgICAgOiAkc2VnbWVudC1waWxsLWJnO1xuICAgIGJveC1zaGFkb3cgICAgOiAkc2VnbWVudC1waWxsLXNoYWRvdztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4ICAgICAgIDogMDtcbiAgICAvLyBTbW9vdGggc2xpZGUgYmV0d2VlbiB0YWJzXG4gICAgdHJhbnNpdGlvbiAgICA6XG4gICAgICAgIHRyYW5zZm9ybSAgJHNlZ21lbnQtZHVyYXRpb24gJHNlZ21lbnQtZWFzZSxcbiAgICAgICAgd2lkdGggICAgICAkc2VnbWVudC1kdXJhdGlvbiAkc2VnbWVudC1lYXNlO1xuXG4gICAgLnNlZ21lbnQtc2l6ZS1zbWFsbCAmIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNlZ21lbnQtcGlsbC1yYWRpdXMtc21hbGw7XG4gICAgfVxuXG4gICAgW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXNlZ21lbnQgJixcbiAgICAudGhlbWUtZGFyayAucWRuYXByby1zZWdtZW50ICYge1xuICAgICAgICBiYWNrZ3JvdW5kIDogJHNlZ21lbnQtcGlsbC1iZy1kYXJrO1xuICAgICAgICBib3gtc2hhZG93IDpcbiAgICAgICAgICAgIDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMzApLFxuICAgICAgICAgICAgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yMCk7XG4gICAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBJdGVtICAocWRuYXByby1zZWdtZW50LWl0ZW0pXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnFkbmFwcm8tc2VnbWVudC1pdGVtIHtcbiAgICAvLyBMYXlvdXRcbiAgICBkaXNwbGF5ICAgICAgICA6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zICAgIDogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcCAgICAgICAgICAgIDogNnB4O1xuICAgIG1pbi13aWR0aCAgICAgIDogJHNlZ21lbnQtaXRlbS1taW4td2lkdGg7XG4gICAgaGVpZ2h0ICAgICAgICAgOiAkc2VnbWVudC1pdGVtLWhlaWdodC1kZWZhdWx0O1xuICAgIHBhZGRpbmcgICAgICAgIDogMCAkc2VnbWVudC1pdGVtLXB4LWRlZmF1bHQ7XG4gICAgYm94LXNpemluZyAgICAgOiBib3JkZXItYm94O1xuXG4gICAgLy8gU3RhY2sgYWJvdmUgdGhlIHNsaWRpbmcgcGlsbFxuICAgIHBvc2l0aW9uICAgICAgIDogcmVsYXRpdmU7XG4gICAgei1pbmRleCAgICAgICAgOiAxO1xuXG4gICAgLy8gU2hhcGUg4oCUIGRlZmF1bHQgc2l6ZVxuICAgIGJvcmRlci1yYWRpdXMgIDogJHNlZ21lbnQtcGlsbC1yYWRpdXMtZGVmYXVsdDtcblxuICAgIC8vIFR5cG9ncmFwaHlcbiAgICBmb250LWZhbWlseSAgICA6IGluaGVyaXQ7XG4gICAgZm9udC1zaXplICAgICAgOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0ICAgIDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0ICAgIDogMTtcbiAgICB3aGl0ZS1zcGFjZSAgICA6IG5vd3JhcDtcbiAgICBjb2xvciAgICAgICAgICA6ICRzZWdtZW50LWxhYmVsLWluYWN0aXZlO1xuXG4gICAgLy8gSW50ZXJhY3Rpb25cbiAgICBjdXJzb3IgICAgICAgICA6IHBvaW50ZXI7XG4gICAgdXNlci1zZWxlY3QgICAgOiBub25lO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgb3V0bGluZSAgICAgICAgOiBub25lO1xuICAgIGJvcmRlciAgICAgICAgIDogbm9uZTtcbiAgICBiYWNrZ3JvdW5kICAgICA6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb24gICAgIDpcbiAgICAgICAgY29sb3IgICAgICAyMDBtcyBlYXNlLFxuICAgICAgICBiYWNrZ3JvdW5kIDE1MG1zIGVhc2UsXG4gICAgICAgIGJveC1zaGFkb3cgMTUwbXMgZWFzZTtcblxuICAgIC8vIEljb24gaW5zaWRlIGl0ZW1cbiAgICAuc2VnbWVudC1pdGVtLWljb24ge1xuICAgICAgICBkaXNwbGF5ICAgIDogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIHdpZHRoICAgICAgOiAxNnB4O1xuICAgICAgICBoZWlnaHQgICAgIDogMTZweDtcbiAgICAgICAgY29sb3IgICAgICA6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgLy8gQm9sZC1yZXNlcnZlOiBpbnZpc2libGUgOjphZnRlciB3aXRoIHRoZSBzYW1lIHRleHQgYXQgYm9sZCB3ZWlnaHRcbiAgICAvLyBwcmV2ZW50cyB0aGUgcGlsbCBmcm9tIHJlc2l6aW5nIHdoZW4gdGhlIGFjdGl2ZSB0YWIncyBmb250LXdlaWdodFxuICAgIC8vIGp1bXBzIGZyb20gNTAwIHRvIDYwMC5cbiAgICAuc2VnbWVudC1pdGVtLWxhYmVsIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQgICAgICAgOiBhdHRyKGRhdGEtdGV4dCk7XG4gICAgICAgICAgICBkaXNwbGF5ICAgICAgIDogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQgICAgICAgIDogMDtcbiAgICAgICAgICAgIG92ZXJmbG93ICAgICAgOiBoaWRkZW47XG4gICAgICAgICAgICB2aXNpYmlsaXR5ICAgIDogaGlkZGVuO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQgICA6IDYwMDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gLS0tLSBIb3ZlciAoaW5hY3RpdmUgb25seSkgLS0tLVxuICAgICY6bm90KC5zZWdtZW50LWl0ZW0tYWN0aXZlKTpub3QoLnNlZ21lbnQtaXRlbS1kaXNhYmxlZCk6aG92ZXIge1xuICAgICAgICBjb2xvciAgICAgOiByZ2JhKDExLCAxMSwgMTMsIDAuNzUpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2VnbWVudC1ob3Zlci1iZztcbiAgICB9XG5cbiAgICAvLyAtLS0tIFByZXNzZWQgLS0tLVxuICAgICY6bm90KC5zZWdtZW50LWl0ZW0tYWN0aXZlKTpub3QoLnNlZ21lbnQtaXRlbS1kaXNhYmxlZCk6YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHNlZ21lbnQtcHJlc3NlZC1iZztcbiAgICAgICAgY29sb3IgICAgIDogcmdiYSgxMSwgMTEsIDEzLCAwLjg1KTtcbiAgICB9XG5cbiAgICAvLyAtLS0tIEZvY3VzLXZpc2libGUgLS0tLVxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgICAwIDAgMCAycHggJHNlZ21lbnQtZm9jdXMtcmluZyxcbiAgICAgICAgICAgIDAgMCAwIDRweCAkc2VnbWVudC1mb2N1cy1nbG93O1xuICAgIH1cblxuICAgIC8vIC0tLS0gQWN0aXZlIChzZWxlY3RlZCkgLS0tLVxuICAgIC8vIEJhY2tncm91bmQgYW5kIHNoYWRvdyBjb21lIGZyb20gLnNlZ21lbnQtdHJhY2stcGlsbCDigJQgbm90IGhlcmUuXG4gICAgLy8gT25seSB0ZXh0IGNvbG9yIGFuZCB3ZWlnaHQgY2hhbmdlIG9uIHRoZSBpdGVtIGl0c2VsZi5cbiAgICAmLnNlZ21lbnQtaXRlbS1hY3RpdmUge1xuICAgICAgICBjb2xvciAgICAgIDogJHNlZ21lbnQtbGFiZWwtYWN0aXZlO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjdXJzb3IgICAgIDogZGVmYXVsdDtcblxuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAgICAgICAwIDAgMCAycHggJHNlZ21lbnQtZm9jdXMtcmluZyxcbiAgICAgICAgICAgICAgICAwIDAgMCA0cHggJHNlZ21lbnQtZm9jdXMtZ2xvdztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC0tLS0gRGlzYWJsZWQgLS0tLVxuICAgICYuc2VnbWVudC1pdGVtLWRpc2FibGVkIHtcbiAgICAgICAgY29sb3IgICAgICAgICA6ICRzZWdtZW50LWxhYmVsLWRpc2FibGVkO1xuICAgICAgICBjdXJzb3IgICAgICAgIDogbm90LWFsbG93ZWQ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBvcGFjaXR5ICAgICAgIDogMC43O1xuICAgIH1cblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vICBJY29uLW9ubHkgIChhbiBpdGVtIHdpdGggYW4gaWNvbiBhbmQgbm8gd29yZClcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyAgVGhlIGNsYXNzIGlzIHNldCBieSBxZG5hLXNlZ21lbnQuanMgd2hlbiByZW5kZXIoKSBmaW5kcyBhbiBpY29uIGFuZCBhblxuICAgIC8vICBlbXB0eSBsYWJlbC4gU3F1YXJlIGluc3RlYWQgb2YgNjRweCB3aWRlLCBzbyB0d28gb2YgdGhlbSByZWFkIGFzIG9uZVxuICAgIC8vICBjb21wYWN0IGNvbnRyb2wuIFRoZSBlbXB0eSBsYWJlbCBzcGFuIGtlZXBzIGl0cyBwbGFjZSBpbiB0aGUgZmxleCByb3dcbiAgICAvLyAgYnV0IG11c3Qgbm90IGFkZCB3aWR0aC4gW0tpbSAwOC4wOC4yMDI2IOKAlCBsaXN0L2dyaWQgc3dpdGNoIGluIHRoZSB0YWJsZV1cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAgICYuc2VnbWVudC1pdGVtLWljb24tb25seSB7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgd2lkdGggICAgOiAkc2VnbWVudC1pdGVtLWhlaWdodC1kZWZhdWx0O1xuICAgICAgICBwYWRkaW5nICA6IDA7XG4gICAgICAgIGdhcCAgICAgIDogMDtcblxuICAgICAgICAuc2VnbWVudC1pdGVtLWxhYmVsIHsgZGlzcGxheTogbm9uZTsgfVxuICAgIH1cblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vICBTaXplOiBzbnVnIOKAlCAzMnB4XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gIFNhbWUgbnVtYmVyIGFzIHFkbmFwcm8tYnV0dG9uJ3MgYHNudWdgLCBzbyBhIHN3aXRjaCBhbmQgdGhlIGJ1dHRvbnMgYmVzaWRlXG4gICAgLy8gIGl0IGluIG9uZSB0b29sYmFyIGxpbmUgdXAuIEFkZGVkIDA5LjA4LjIwMjYgZm9yIHRoZSB0YWJsZSBzdHJpcDsgYWRkaXRpdmUsXG4gICAgLy8gIG5vdGhpbmcgdGhhdCBkb2VzIG5vdCBhc2sgZm9yIGl0IGNoYW5nZXMuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgICAuc2VnbWVudC1zaXplLXNudWcgJiB7XG4gICAgICAgIGhlaWdodCAgICAgICA6IDMycHg7XG4gICAgICAgIHBhZGRpbmcgICAgICA6IDAgMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBmb250LXNpemUgICAgOiAxMnB4O1xuICAgICAgICBnYXAgICAgICAgICAgOiA0cHg7XG5cbiAgICAgICAgLnNlZ21lbnQtaXRlbS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoIDogMTZweDtcbiAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuc2VnbWVudC1pdGVtLWljb24tb25seSB7XG4gICAgICAgICAgICB3aWR0aCAgOiAzMnB4O1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vICBTaXplOiBzbWFsbFxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gICAgLnNlZ21lbnQtc2l6ZS1zbWFsbCAmIHtcbiAgICAgICAgaGVpZ2h0ICAgICAgIDogJHNlZ21lbnQtaXRlbS1oZWlnaHQtc21hbGw7XG4gICAgICAgIHBhZGRpbmcgICAgICA6IDAgJHNlZ21lbnQtaXRlbS1weC1zbWFsbDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNlZ21lbnQtcGlsbC1yYWRpdXMtc21hbGw7XG4gICAgICAgIGZvbnQtc2l6ZSAgICA6IDEycHg7XG4gICAgICAgIGdhcCAgICAgICAgICA6IDRweDtcblxuICAgICAgICAuc2VnbWVudC1pdGVtLWljb24ge1xuICAgICAgICAgICAgd2lkdGggOiAxNHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5zZWdtZW50LWl0ZW0taWNvbi1vbmx5IHtcbiAgICAgICAgICAgIHdpZHRoICA6ICRzZWdtZW50LWl0ZW0taGVpZ2h0LXNtYWxsO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vICBEYXJrIG1vZGVcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAgIFtkYXRhLXRoZW1lPVwiZGFya1wiXSAmLFxuICAgIC50aGVtZS1kYXJrICYge1xuICAgICAgICBjb2xvcjogJHNlZ21lbnQtbGFiZWwtaW5hY3RpdmUtZGFyaztcblxuICAgICAgICAmOm5vdCguc2VnbWVudC1pdGVtLWFjdGl2ZSk6bm90KC5zZWdtZW50LWl0ZW0tZGlzYWJsZWQpOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yICAgICA6IHJnYmEoMjQwLCAyNDEsIDI0MiwgMC43NSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2VnbWVudC1ob3Zlci1iZy1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoLnNlZ21lbnQtaXRlbS1hY3RpdmUpOm5vdCguc2VnbWVudC1pdGVtLWRpc2FibGVkKTphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNlZ21lbnQtcHJlc3NlZC1iZy1kYXJrO1xuICAgICAgICAgICAgY29sb3IgICAgIDogcmdiYSgyNDAsIDI0MSwgMjQyLCAwLjkwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuc2VnbWVudC1pdGVtLWFjdGl2ZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNlZ21lbnQtbGFiZWwtYWN0aXZlLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLnNlZ21lbnQtaXRlbS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvciAgOiAkc2VnbWVudC1sYWJlbC1kaXNhYmxlZC1kYXJrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBWYXJpYW50OiBzbGlkaW5nLXBpbGxzICAodmFyaWFudD1cInNsaWRpbmctcGlsbHNcIilcbi8vICBMaWdodGVyIGxvb2sg4oCUIHRyYW5zcGFyZW50IHRyYWNrLCBhIHRpbnRlZCAobGF2ZW5kZXIpIHNsaWRpbmcgcGlsbCB3aXRoXG4vLyAgZnVsbHktcm91bmRlZCBpdGVtcyBhbmQgYSBwdXJwbGUgYWN0aXZlIGxhYmVsLiBUaGUgZGVmYXVsdCBzZWdtZW50IGlzIGFcbi8vICB3aGl0ZSBwaWxsIG9uIGEgZ3JleSB0cmFjazsgdGhpcyBpcyB0aGUgc29mdGVyIFwicGlsbFwiIGxvb2sgdXNlZCBlLmcuIGJ5IHRoZVxuLy8gIHRyYW5zbGF0aW9uIHBhbmVsIGxhbmd1YWdlIHBpY2tlci4gW0tpbSAyMDI2LTA2LTE2XVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4ucWRuYXByby1zZWdtZW50LnNlZ21lbnQtdmFyaWFudC1zbGlkaW5nLXBpbGxzIHtcbiAgICBiYWNrZ3JvdW5kICAgIDogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZyAgICAgICA6IDA7XG4gICAgZ2FwICAgICAgICAgICA6IDRweDtcbiAgICBib3JkZXItcmFkaXVzIDogMDtcblxuICAgIC8vIFBpbGwgY292ZXJzIHRoZSBmdWxsIGl0ZW0gaGVpZ2h0IChubyAzcHggaW5zZXQpLCBsaWdodCBsYXZlbmRlciBmaWxsLlxuICAgIC5zZWdtZW50LXRyYWNrLXBpbGwge1xuICAgICAgICB0b3AgICAgICAgICAgOiAwO1xuICAgICAgICBoZWlnaHQgICAgICAgOiAxMDAlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kICAgOiB2YXIoLS1jLXB1cnBsZS01MCk7XG4gICAgICAgIGJveC1zaGFkb3cgICA6IG5vbmU7XG4gICAgfVxuXG4gICAgLnFkbmFwcm8tc2VnbWVudC1pdGVtIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcblxuICAgICAgICAvLyBSZXN0aW5nIGluYWN0aXZlIHN0YXRlIOKAlCByZWFkYWJsZSBwdXJwbGUsIHNhbWUgdG9uZSBhcyB0aGVcbiAgICAgICAgLy8gaG92ZXIvcHJlc3NlZCBzdGF0ZXMgYmVsb3cuIFdhcyBgdmFyKC0tYy10ZXh0LWRpc2FibGVkLXBwKWAgZm9yXG4gICAgICAgIC8vIGV2ZXJ5IGl0ZW0gaGVyZSwgd2hpY2ggbWFkZSBcIm5vdCBhY3RpdmVcIiByZWFkIGFzIFwiZGlzYWJsZWRcIi5cbiAgICAgICAgLy8gW0tpbSAyNS4wOC4yMDI2LCBrYWFydCAxNiBCT0FSRC1wdWxzZS1hbnR3b29yZG9wdGllcy1yaWNodGluZy1jXVxuICAgICAgICAmOm5vdCguc2VnbWVudC1pdGVtLWFjdGl2ZSk6bm90KC5zZWdtZW50LWl0ZW0tZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRXhwbGljaXQgbm93LCB3YXMgcHJldmlvdXNseSB0aGUgc2FtZSB2YWx1ZSBvbmx5IGJ5IGFjY2lkZW50IG9mXG4gICAgICAgIC8vIHRoZSBibGFua2V0IHJ1bGUgYWJvdmUgd2lubmluZyBvbiBzcGVjaWZpY2l0eSBvdmVyIHRoZSBiYXNlXG4gICAgICAgIC8vIGNvbXBvbmVudCdzIGAuc2VnbWVudC1pdGVtLWRpc2FibGVkYCBjb2xvdXIuIEtlcHQgdW5jaGFuZ2VkLlxuICAgICAgICAmLnNlZ21lbnQtaXRlbS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkLXBwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoZSBhY3RpdmUgbGFiZWwgaXMgUFVSUExFIGluIHRoaXMgdmFyaWFudCwgYXMgdGhlIGRvY2Jsb2NrIGFib3ZlXG4gICAgICAgIC8vIGFsd2F5cyBjbGFpbWVkLiBCZWZvcmUga2FhcnQgMTYgdGhlIGJsYW5rZXQgcnVsZSBwYWludGVkIGl0IHRoZVxuICAgICAgICAvLyBkaXNhYmxlZCBncmV5OyBhZnRlciByZW1vdmluZyB0aGF0IGJsYW5rZXQgaXQgZmVsbCBiYWNrIHRvIHRoZSBiYXNlXG4gICAgICAgIC8vIHZhcmlhbnQncyBuZWFyLWJsYWNrLiBCb3RoIHdlcmUgd3JvbmcgaGVyZS4gW2thYXJ0IDE2YiwgMjUuMDguMjAyNl1cbiAgICAgICAgJi5zZWdtZW50LWl0ZW0tYWN0aXZlIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS03MDApO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoLnNlZ21lbnQtaXRlbS1hY3RpdmUpOm5vdCguc2VnbWVudC1pdGVtLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgICAgICBjb2xvciAgICAgOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg2NSwgNzMsIDE1NCwgMC4wNik7XG4gICAgICAgIH1cbiAgICAgICAgJjpub3QoLnNlZ21lbnQtaXRlbS1hY3RpdmUpOm5vdCguc2VnbWVudC1pdGVtLWRpc2FibGVkKTphY3RpdmUge1xuICAgICAgICAgICAgY29sb3IgICAgIDogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNjUsIDczLCAxNTQsIDAuMTApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBWYXJpYW50OiB0aWxlcyAgKHZhcmlhbnQ9XCJ0aWxlc1wiKVxuLy8gIFR3byBjaHVua3kgc3F1YXJlIGJ1dHRvbnMgb24gYSB0cmFuc3BhcmVudCB0cmFjaywgdGhlIGFjdGl2ZSBvbmUgb24gYSBzb2Z0XG4vLyAgcHVycGxlIGZpbGwuIEZyb20gS2ltJ3MgZGVzaWduIGZvciB0aGUgdGFibGUgc3RyaXAgKDA5LjA4LjIwMjYpLCBidXQgd2l0aCB0aGVcbi8vICBibG9jayB0aGF0IHNsaWRlcywgc28gaXQgaXMgYSBza2luIG9uIHRoZSBzYW1lIGVuZ2luZSDigJQgdGhlIHNsaWRpbmcgZWxlbWVudCxcbi8vICB0aGUga2V5Ym9hcmQgaGFuZGxpbmcgYW5kIHRoZSBBUklBIGFsbCBzdGF5IHdoZXJlIHRoZXkgYXJlLlxuLy9cbi8vICBOTyBCQVIgQUxPTkcgVEhFIEJPVFRPTSBFREdFLiBUaGVyZSB1c2VkIHRvIGJlIG9uZSBoZXJlIChhbiBpbnNldCBib3gtc2hhZG93XG4vLyAgaW4gcHVycGxlLTUwMCkgYW5kIHRoZSBjb21tZW50IGNsYWltZWQgaXQgY2FtZSBmcm9tIGhlciBkZXNpZ24uIEtpbSBsb29rZWQgYXRcbi8vICBpdCBvbiAwOS4wOC4yMDI2IGFuZCBzYWlkIGl0IHdhcyBub3QgaGVycyBhbmQgaGFkIHRvIGdvOiB0aGUgZmlsbCBhbHJlYWR5IHNheXNcbi8vICB3aGljaCB0aWxlIGlzIGFjdGl2ZSwgYW5kIGEgc2Vjb25kIG1hcmtlciB1bmRlcm5lYXRoIHJlYWRzIGFzIGFuIHVuZGVybGluZVxuLy8gIHRoYXQgYmVsb25ncyB0byBzb21ldGhpbmcgZWxzZS4gRG8gbm90IHB1dCBpdCBiYWNrLlxuLy8gIE1lYW50IGZvciBhbiBpY29uLW9ubHkgc3dpdGNoIG9mIHR3byBvciB0aHJlZTsgYSBsb25nIHdvcmQgZG9lcyBub3QgYmVsb25nXG4vLyAgb24gYSBzcXVhcmUgdGlsZS5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLnFkbmFwcm8tc2VnbWVudC5zZWdtZW50LXZhcmlhbnQtdGlsZXMge1xuICAgIGJhY2tncm91bmQgICAgOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nICAgICAgIDogMDtcbiAgICBnYXAgICAgICAgICAgIDogNHB4O1xuICAgIGJvcmRlci1yYWRpdXMgOiAwO1xuXG4gICAgLnNlZ21lbnQtdHJhY2stcGlsbCB7XG4gICAgICAgIHRvcCAgICAgICAgICA6IDA7XG4gICAgICAgIGhlaWdodCAgICAgICA6IDEwMCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZCAgIDogdmFyKC0tYy1wdXJwbGUtNTAsICNlNmU5ZmYpO1xuICAgICAgICAvLyBObyBkcm9wIHNoYWRvdyBvbiB0aGlzIHNraW4uIFRoZSBkZWZhdWx0IHBpbGwgbGlmdHMgb2ZmIGEgZ3JleSB0cmFjaywgc28gYVxuICAgICAgICAvLyBzaGFkb3cgcmVhZHMgYXMgXCJ0aGlzIG9uZSBpcyBvbiB0b3BcIi4gVGhlc2UgdGlsZXMgc2l0IG9uIGEgdHJhbnNwYXJlbnQgdHJhY2tcbiAgICAgICAgLy8gaW4gYSB0b29sYmFyLCB3aGVyZSB0aGUgc2FtZSBzaGFkb3cganVzdCBsb29rcyBncnViYnkuIFtLaW0gMDkuMDguMjAyNl1cbiAgICAgICAgYm94LXNoYWRvdyAgIDogbm9uZTtcbiAgICB9XG5cbiAgICAucWRuYXByby1zZWdtZW50LWl0ZW0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGNvbG9yICAgICAgICA6IHZhcigtLWMtZ3JleS01MDApO1xuXG4gICAgICAgICYuc2VnbWVudC1pdGVtLWFjdGl2ZSB7IGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApOyB9XG5cbiAgICAgICAgJjpub3QoLnNlZ21lbnQtaXRlbS1hY3RpdmUpOm5vdCguc2VnbWVudC1pdGVtLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApO1xuICAgICAgICAgICAgY29sb3IgICAgIDogdmFyKC0tYy1ncmV5LTk1MCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBbZGF0YS10aGVtZT1cImRhcmtcIl0gJixcbiAgICAudGhlbWUtZGFyayAmIHtcbiAgICAgICAgLnNlZ21lbnQtdHJhY2stcGlsbCB7XG4gICAgICAgICAgICAvLyBObyBiYXIgaGVyZSBlaXRoZXIg4oCUIGRhcmsgbW9kZSBoYWQgaXRzIG93biBjb3B5IG9mIHRoZSB1bmRlcmxpbmUgdGhhdFxuICAgICAgICAgICAgLy8gd2FzIHJlbW92ZWQgaW4gdGhlIGxpZ2h0IHRoZW1lLiBUd28gY29waWVzIG9mIG9uZSBkZWNpc2lvbiBpcyBleGFjdGx5XG4gICAgICAgICAgICAvLyBob3cgYSByZWplY3RlZCBkZXRhaWwgY3JlZXBzIGJhY2sgaW4uXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXNlY29uZGFyeS1wdXJwbGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnFkbmFwcm8tc2VnbWVudC1pdGVtLnNlZ21lbnQtaXRlbS1hY3RpdmUgeyBjb2xvcjogdmFyKC0tYy1wdXJwbGUtMTAwLCAjYzBjNWZmKTsgfVxuICAgIH1cbn1cblxuLy8g4pSA4pSAIFNpZ25hYWxzdGlwamUgb3AgZWVuIGl0ZW0g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBgZG90YCBvcCBxZG5hcHJvLXNlZ21lbnQtaXRlbTogZXIgc3RhYXQgaWV0cyBvcCBkaXQgdGFiYmxhZCBkYXQgYWFuZGFjaHQgdnJhYWd0LlxuLy8gR2VlbiBnZXRhbCwgYWxsZWVuIFwiZXIgaXMgaWV0c1wiIOKAlCB6ZWxmZGUga2V1emUgYWxzIG9wIGRlIGFjdGllYmFsay4gSGV0IGl0ZW0gaXNcbi8vIGFsIHBvc2l0aW9uOnJlbGF0aXZlLCBkdXMgaGV0IHN0aXBqZSBoYW5ndCBhYW4gZGUgcmVjaHRlcmJvdmVuaG9layB6b25kZXIgZGVcbi8vIGJyZWVkdGUgdmFuIGRlIHRla3N0IHRlIGJlw69udmxvZWRlbiAoZW4gZHVzIHpvbmRlciBkZSBzY2h1aXZlbmRlIHBpbCB0ZSBsYXRlblxuLy8gdmVyc3ByaW5nZW4pLiBbS2ltIDA2LjA4LjIwMjZdXG4ucWRuYXByby1zZWdtZW50LWl0ZW0gLnNlZ21lbnQtaXRlbS1kb3Qge1xuICAgIHBvc2l0aW9uICAgICA6IGFic29sdXRlO1xuICAgIHRvcCAgICAgICAgICA6IDRweDtcbiAgICByaWdodCAgICAgICAgOiA2cHg7XG4gICAgd2lkdGggICAgICAgIDogNnB4O1xuICAgIGhlaWdodCAgICAgICA6IDZweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8vIEFtYmVyID0gZGV6ZWxmZGUga2xldXIgYWxzIGRlIHdhYXJzY2h1d2luZ3NzdGFuZCB2YW4gcWRuYXByby1saXN0LXJvdywgd2FudCBoZXRcbi8vIHdpanN0IG5hYXIgcHJlY2llcyBkYXQgcHJvYmxlZW0uIFJvb2QgaXMgdm9vciBpZXRzIGRhdCDDqWNodCBzdHVrIGlzLlxuLnFkbmFwcm8tc2VnbWVudC1pdGVtIC5zZWdtZW50LWl0ZW0tZG90LXdhcm5pbmcgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdhcm4teWVsbG93LTYwMCk7IH1cbi5xZG5hcHJvLXNlZ21lbnQtaXRlbSAuc2VnbWVudC1pdGVtLWRvdC1hbGVydCAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1mYXZvcml0ZS1oZWFydCk7IH1cbiIsIi8vIF9zZWdtZW50LXRpbGVzLnNjc3Ncbi8vIENhbm9uaWNhbCBzdHlsZXMgZm9yIHFkbmFwcm8tc2VnbWVudC10aWxlcyBhbmQgcWRuYXByby1zZWdtZW50LXRpbGUuXG4vLyBDb21wYWN0IHBpbGwgdHJhY2sgb2YgaWNvbiArIGxhYmVsIHRpbGVzOyB0aGUgZGVzY3JpcHRpb24gc2hvd3MgYXMgYSBmbG9hdGluZ1xuLy8gb3ZlcmxheSBhYm92ZSB0aGUgdHJhY2sgKGZsaXBzIGJlbG93KSBvbiBzZWxlY3Rpb24sIHNvIGl0IHJlc2VydmVzIG5vIHNwYWNlLlxuLy8gU2VwYXJhdGUgZnJvbSB0aGUgdGFiLWJhciBxZG5hcHJvLXNlZ21lbnQsIGJ1dCBzaGFyZXMgaXRzIG5ldXRyYWwgcGFsZXR0ZVxuLy8gKGdyZXkgdHJhY2ssIHdoaXRlIHBpbGwgd2l0aCBlbGV2YXRpb24gc2hhZG93KS4gQWN0aXZlIGFjY2VudCA9IGRhcmsgcHVycGxlLlxuLy8gPT09IFNUQVJUIFFETkFQUk8tU0VHTUVOVC1USUxFUyBDU1MgPT09XG5cbi8vIC0tLS0gc2hhcmVkIG5ldXRyYWwgdG9rZW5zIChtYXRjaGVkIHRvIF9zZWdtZW50LnNjc3MpIC0tLS1cbi8vIHRyYWNrIGJnICAgICAgICAgICNmMGYxZjJcbi8vIHBpbGwgYmcgICAgICAgICAgICNmZmZmZmYgICBzaGFkb3cgMCAxcHggM3B4IHJnYmEoMCwwLDAsLjEyKSwgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjA4KVxuLy8gYWN0aXZlIGFjY2VudCAgICAgIzNjMzQ4OSAgIChkYXJrIFFETkEgcHVycGxlLCBpY29uICsgbGFiZWwpXG4vLyBsYWJlbCBpbmFjdGl2ZSAgICByZ2JhKDExLDExLDEzLDAuNTUpXG4vLyBob3ZlciBsYWJlbCAgICAgICByZ2JhKDExLDExLDEzLDAuNzUpXG4vLyBmb2N1cyByaW5nICAgICAgICAjNDA0OTlhXG5cbi5xZG5hcHJvLXNlZ21lbnQtdGlsZXMge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxufVxuXG4vLyBPcHRpb25hbCBsYWJlbCBhYm92ZSB0aGUgdHJhY2tcbi5xZG5hcHJvLXNlZ21lbnQtdGlsZXMgLnNlZ21lbnQtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiByZ2JhKDExLCAxMSwgMTMsIDAuNTUpO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLy8gUG9zaXRpb25pbmcgY29udGV4dCBmb3IgdGhlIGZsb2F0aW5nIG92ZXJsYXkgKHdyYXBzIHRoZSB0cmFjayBvbmx5KVxuLnFkbmFwcm8tc2VnbWVudC10aWxlcyAuc2VnbWVudC1zaGVsbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vLyBUaGUgcGlsbCB0cmFjayBjb250YWluZXJcbi5xZG5hcHJvLXNlZ21lbnQtdGlsZXMgLnNlZ21lbnQtdHJhY2sge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBwYWRkaW5nOiAzcHg7XG4gICAgZ2FwOiAwO1xufVxuXG4vLyBTbGlkaW5nIHBpbGwgKHBvc2l0aW9uZWQgYWJzb2x1dGVseSBieSBKUylcbi5xZG5hcHJvLXNlZ21lbnQtdGlsZXMgLnNlZ21lbnQtcGlsbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogM3B4O1xuICAgIGJvdHRvbTogM3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4OiAwO1xuICAgIHRyYW5zaXRpb246XG4gICAgICAgIGxlZnQgMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSxcbiAgICAgICAgd2lkdGggMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cblxuLy8gSW5kaXZpZHVhbCB0aWxlIGJ1dHRvblxuLnFkbmFwcm8tc2VnbWVudC10aWxlcyAuc2VnbWVudC10aWxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIHBhZGRpbmc6IDEwcHggOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAxODBtcyBlYXNlO1xuXG4gICAgLy8gTWF0ZXJpYWwgRGVzaWduIGljb24gKHFkbmFwcm8taWNvbiwgc2l6ZWQgdmlhIGZvbnQtc2l6ZSBzaW5jZSBpdCBpcyAxZW0pXG4gICAgPiBxZG5hcHJvLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGNvbG9yOiByZ2JhKDExLCAxMSwgMTMsIDAuNTUpO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAxODBtcyBlYXNlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBMYWJlbCB0ZXh0XG4gICAgPiBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBjb2xvcjogcmdiYSgxMSwgMTEsIDEzLCAwLjU1KTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAxODBtcyBlYXNlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBLZXlib2FyZCBmb2N1cyByaW5nXG4gICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLXJpbmcpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIChzZWxlY3RlZCkgc3RhdGU6IGRhcmsgUUROQSBwdXJwbGUgYWNjZW50IG9uIHRoZSB3aGl0ZSBwaWxsLlxuICAgICYuYWN0aXZlIHtcbiAgICAgICAgPiBxZG5hcHJvLWljb24geyBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNjAwKTsgfVxuICAgICAgICA+IHNwYW4gICAgICAgICB7IGNvbG9yOiB2YXIoLS1jLXB1cnBsZS02MDApOyBmb250LXdlaWdodDogNjAwOyB9XG4gICAgfVxuXG4gICAgLy8gSG92ZXI6IG9ubHkgb24gbm9uLWFjdGl2ZSwgbm9uLWRpc2FibGVkIHRpbGVzIHRvIGF2b2lkIGZpZ2h0aW5nIHdpdGggdGhlIHBpbGxcbiAgICAmOm5vdCguYWN0aXZlKTpub3QoLnNlZ21lbnQtdGlsZS0tZGlzYWJsZWQpOmhvdmVyIHtcbiAgICAgICAgPiBxZG5hcHJvLWljb24geyBjb2xvcjogcmdiYSgxMSwgMTEsIDEzLCAwLjc1KTsgfVxuICAgICAgICA+IHNwYW4gICAgICAgICB7IGNvbG9yOiByZ2JhKDExLCAxMSwgMTMsIDAuNzUpOyB9XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQ6IGdyZXllZCBvdXQgYW5kIG5vdCBzZWxlY3RhYmxlLiBDbGlja2luZyBzdGlsbCBvcGVucyBhIHdhcm5pbmdcbiAgICAvLyBvdmVybGF5ICh0aGUgSlMgaGFuZGxlcyB0aGF0KSwgc28ga2VlcCBpdCBpbnRlcmFjdGl2ZSBidXQgdmlzdWFsbHkgbXV0ZWQuXG4gICAgJi0tZGlzYWJsZWQge1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICBvcGFjaXR5OiAwLjQ1O1xuXG4gICAgICAgID4gcWRuYXByby1pY29uIHsgY29sb3I6IHJnYmEoMTEsIDExLCAxMywgMC40NSk7IH1cbiAgICAgICAgPiBzcGFuICAgICAgICAgeyBjb2xvcjogcmdiYSgxMSwgMTEsIDEzLCAwLjQ1KTsgfVxuICAgIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgU21pbGV5IHZhcmlhbnQgKHZhcmlhbnQ9XCJzbWlsZXlcIilcbi8vICBFYWNoIHRpbGUgcHJldmlld3MgYSByb3cgb2YgcWRuYXByby1zbWlsZXkgZW1vdGljb25zIGluc3RlYWQgb2Ygb25lIE1ESSBpY29uLFxuLy8gIHNvIHRoZSBlbW9qaSBmZWVkYmFjayBub2RlJ3Mgc2NhbGUgLyBjb2xvdXIgLyBvcmRlciBzZXR0aW5ncyBzaG93IHRoZSBhY3R1YWxcbi8vICBlbW90aWNvbnMuIFRpbGUgd2lkdGggc3RpbGwgY29tZXMgZnJvbSBmbGV4OjE7IHRoZSBzbWlsZXkgcm93IGNlbnRlcnMgaW5zaWRlLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4ucWRuYXByby1zZWdtZW50LXRpbGVzLS1zbWlsZXkge1xuICAgIC5zZWdtZW50LXRpbGUge1xuICAgICAgICBnYXA6IDZweDtcbiAgICAgICAgcGFkZGluZzogMTJweCAxMHB4O1xuICAgIH1cblxuICAgIC5zZWdtZW50LXRpbGUtc21pbGV5cyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgIHFkbmFwcm8tc21pbGV5IHsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIEZsb2F0aW5nIGRlc2NyaXB0aW9uIG92ZXJsYXkgKG9wZW5lZCBvbiBzZWxlY3Rpb24gYnkgSlMpXG4vLyAgQWJzb2x1dGVseSBwb3NpdGlvbmVkIHdpdGhpbiAuc2VnbWVudC1zaGVsbCBzbyBpdCByZXNlcnZlcyBubyBzcGFjZS5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLnFkbmFwcm8tc2VnbWVudC10aWxlcyAuc2VnbWVudC1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IGNhbGMoMTAwJSArIDhweCk7ICAgICAvLyBkZWZhdWx0OiBhYm92ZSB0aGUgdHJhY2tcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogMTBweDtcbiAgICBwYWRkaW5nOiAxMnB4IDM4cHggMTJweCAxNHB4OyAvLyBleHRyYSByaWdodCBwYWRkaW5nIGNsZWFycyB0aGUgY2xvc2UgYnV0dG9uXG4gICAgbWluLWhlaWdodDogNTJweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYm9yZGVyOiAwLjVweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0KTtcbiAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICAgIHotaW5kZXg6IDIwO1xuXG4gICAgLy8gSGlkZGVuIC8gY2xvc2VkIHN0YXRlIChrZXB0IGluIHRoZSBET00gZm9yIHRoZSB0cmFuc2l0aW9uKVxuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpOyAgIC8vIGVtZXJnZXMgdXB3YXJkIGZyb20gdGhlIHRyYWNrXG4gICAgdHJhbnNpdGlvbjpcbiAgICAgICAgb3BhY2l0eSAxODBtcyBlYXNlLFxuICAgICAgICB0cmFuc2Zvcm0gMTgwbXMgZWFzZSxcbiAgICAgICAgdmlzaWJpbGl0eSAwcyBsaW5lYXIgMTgwbXM7XG5cbiAgICAvLyBGbGlwcGVkIGJlbG93IHRoZSB0cmFjayB3aGVuIHRoZXJlIGlzIG5vIHJvb20gYWJvdmVcbiAgICAmLmlzLWJlbG93IHtcbiAgICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgICB0b3A6IGNhbGMoMTAwJSArIDhweCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNnB4KTsgLy8gZW1lcmdlcyBkb3dud2FyZFxuICAgIH1cblxuICAgIC8vIE9wZW4gc3RhdGVcbiAgICAmLmlzLW9wZW4ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgICAgb3BhY2l0eSAxODBtcyBlYXNlLFxuICAgICAgICAgICAgdHJhbnNmb3JtIDE4MG1zIGVhc2U7XG4gICAgfVxuXG4gICAgLy8gQ2xvc2UgYnV0dG9uICh0b3AtcmlnaHQgWClcbiAgICAuc2VnbWVudC1vdmVybGF5LWNsb3NlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDhweDtcbiAgICAgICAgcmlnaHQ6IDhweDtcbiAgICAgICAgd2lkdGg6IDIycHg7XG4gICAgICAgIGhlaWdodDogMjJweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiByZ2JhKDExLCAxMSwgMTMsIDAuNDUpO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNDBtcyBlYXNlLCBjb2xvciAxNDBtcyBlYXNlO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1ibGFjay0wNik7XG4gICAgICAgICAgICBjb2xvcjogcmdiYSgxMSwgMTEsIDEzLCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLXJpbmcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWNvbiBib3ggaW5zaWRlIHRoZSBvdmVybGF5XG4gICAgLnNlZ21lbnQtZGVzYy1pY29uIHtcbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQtaG92ZXIpO1xuICAgICAgICBib3JkZXI6IDAuNXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAgICAgcWRuYXByby1pY29uIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS02MDApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gV2FybmluZyB2YXJpYW50OiBzaG93biBmb3IgYSBkaXNhYmxlZCB0aWxlJ3MgaGludCBvdmVybGF5LlxuICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLW9yYW5nZS1iZyk7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjE0LCAxMjIsIDQ3LCAwLjI1KTtcblxuICAgICAgICAgICAgcWRuYXByby1pY29uIHsgY29sb3I6IHZhcigtLWMtd2Fybi1hbWJlci01MDApOyB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUZXh0IGNvbnRlbnQgaW5zaWRlIHRoZSBvdmVybGF5XG4gICAgLnNlZ21lbnQtZGVzYy10ZXh0IHtcbiAgICAgICAgZmxleDogMTtcblxuICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtcHVycGxlLTYwMCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgICAgICB9XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICBjb2xvcjogcmdiYSgxMSwgMTEsIDEzLCAwLjY1KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIEhpZGUgdGhlIGRhdGEtc291cmNlIHRpbGUgbm9kZXMgKHJlbmRlcmVkIGFzIGRpc3BsYXk6bm9uZSBieSBKUylcbnFkbmFwcm8tc2VnbWVudC10aWxlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIERhcmsgbW9kZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSxcbi50aGVtZS1kYXJrIHtcbiAgICAucWRuYXByby1zZWdtZW50LXRpbGVzIC5zZWdtZW50LXRyYWNrIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzJhMmQzNTtcbiAgICB9XG5cbiAgICAucWRuYXByby1zZWdtZW50LXRpbGVzIC5zZWdtZW50LXRpbGUge1xuICAgICAgICA+IHFkbmFwcm8taWNvbiB7IGNvbG9yOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuNTApOyB9XG4gICAgICAgID4gc3BhbiAgICAgICAgIHsgY29sb3I6IHJnYmEoMjQwLCAyNDEsIDI0MiwgMC41MCk7IH1cblxuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICA+IHFkbmFwcm8taWNvbiB7IGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7IH1cbiAgICAgICAgICAgID4gc3BhbiAgICAgICAgIHsgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTsgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoLmFjdGl2ZSk6bm90KC5zZWdtZW50LXRpbGUtLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgICAgICA+IHFkbmFwcm8taWNvbiB7IGNvbG9yOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuNzUpOyB9XG4gICAgICAgICAgICA+IHNwYW4gICAgICAgICB7IGNvbG9yOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuNzUpOyB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICA+IHFkbmFwcm8taWNvbiB7IGNvbG9yOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuMzApOyB9XG4gICAgICAgICAgICA+IHNwYW4gICAgICAgICB7IGNvbG9yOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuMzApOyB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucWRuYXByby1zZWdtZW50LXRpbGVzIC5zZWdtZW50LW92ZXJsYXkge1xuICAgICAgICAuc2VnbWVudC1vdmVybGF5LWNsb3NlIHtcbiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuNDUpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuMDgpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuNzUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnNlZ21lbnQtZGVzYy1pY29uIHtcbiAgICAgICAgICAgIHFkbmFwcm8taWNvbiB7IGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7IH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMTQsIDEyMiwgNDcsIDAuMTUpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMTQsIDEyMiwgNDcsIDAuMzApO1xuXG4gICAgICAgICAgICAgICAgcWRuYXByby1pY29uIHsgY29sb3I6ICNlODk5NGE7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWdtZW50LWRlc2MtdGV4dCB7XG4gICAgICAgICAgICBzdHJvbmcgeyBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUpOyB9XG4gICAgICAgICAgICBwICAgICAgeyBjb2xvcjogcmdiYSgyNDAsIDI0MSwgMjQyLCAwLjY1KTsgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyA9PT0gRU5EIFFETkFQUk8tU0VHTUVOVC1USUxFUyBDU1MgKGRvIG5vdCByZW1vdmUgdGhpcyBtYXJrZXIpID09PVxuIiwiLy8gcWRuYXByby1zY29yZS1zY2FsZSAtIHNoYXJlZCBhbnN3ZXIgY29udHJvbCBmb3IgdGhlIFNjb3JlIGFuZCBOUFMgcXVlc3Rpb25cbi8vIG5vZGVzLiBBIHNlZ21lbnRlZCBiYXIgdGhhdCByZWFkcyBhcyBPTkUgb2JqZWN0OiBzZWdtZW50cyBmbHVzaCBhZ2FpbnN0XG4vLyBlYWNoIG90aGVyIChubyBnYXBzKS4gT3V0ZXItY29ybmVyIHJvdW5kaW5nIGlzIGFwcGxpZWQgZGlyZWN0bHkgdG8gdGhlXG4vLyBmaXJzdC9sYXN0IHNlZ21lbnQgKE5PVCB2aWEgb3ZlcmZsb3c6aGlkZGVuIG9uIHRoZSBiYXIpIHNvIHRoZSBzZWxlY3RlZFxuLy8gc2VnbWVudCBjYW4gZ3JvdyB0YWxsZXIgdGhhbiB0aGUgYmFyIHdpdGhvdXQgYmVpbmcgY2xpcHBlZCAtIHNlZSB0aGVcbi8vIFwiU2VsZWN0ZWQgc3RhdGVcIiBibG9jayBiZWxvdy4gRkxBVCBDU1M7IGNvbG91cnMgY29tZSBmcm9tIHRoZSBkZXNpZ24tdG9rZW5cbi8vIDpyb290ICh2YXIoLS1jLSopKS4gRWRpdCBIRVJFLCB0aGVuIGBndWxwIHNhc3NgICsgYGd1bHAgc2Fzcy12MWAuXG5cbi5xZG5hcHJvLXNjb3JlLXNjYWxlIHtcbiAgLy8gTmV1dHJhbCAoZGVmYXVsdCwgbm8gZ3JhZGllbnQpIGNvbG91ciBmYW1pbHkgLSBzYW1lIHRoZW1lLWNvbG91ciB0b2tlblxuICAvLyBmYW1pbHkgYXMgcWRuYXByby1hbnN3ZXItYnV0dG9uLlxuICAtLXFzcy1uZXV0cmFsLWlkbGUtYmc6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpIDEwJSwgI2ZmZik7XG4gIC0tcXNzLW5ldXRyYWwtaWRsZS10ZXh0OiB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpO1xuICAvLyBTZWxlY3RlZCBmaWxsOiBzYW1lIC0tdGhlbWUtYnRuLXNlbGVjdGVkLWNvbG9yIGhvb2sgcWRuYXByby1hbnN3ZXItYnV0dG9uXG4gIC8vIHVzZXMgKGZhbGxzIGJhY2sgdG8gdGhlIGJhc2UgdGhlbWUgY29sb3VyIHdoZW4gYSB0aGVtZSBoYXMgbm8gZXhwbGljaXRcbiAgLy8gc2VsZWN0ZWQgdmFyaWFudCBjb25maWd1cmVkKS4gW3JlZGVzaWduIDExLjA3LjIwMjZdXG4gIC0tcXNzLW5ldXRyYWwtc2VsZWN0ZWQtYmc6IHZhcigtLXRoZW1lLWJ0bi1zZWxlY3RlZC1jb2xvciwgdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKSk7XG4gIC0tcXNzLW5ldXRyYWwtc2VsZWN0ZWQtdGV4dDogdmFyKC0tdGhlbWUtYnRuLXNlbGVjdGVkLXRleHQtY29sb3IsICNmZmYpO1xuICAtLXFzcy1zZXBhcmF0b3I6IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG5cbiAgLy8gRWxldmF0aW9uIHNoYWRvdyBmb3IgdGhlIHNlbGVjdGVkIHNlZ21lbnQgcG9wcGluZyBvdXQgb2YgdGhlIGJhci5cbiAgLS1xc3Mtc2VsZWN0ZWQtc2hhZG93OiAwIDhweCAyMHB4IHJnYmEoMjAsIDI1LCA4MCwgMC4xNiksIDAgMnB4IDZweCByZ2JhKDIwLCAyNSwgODAsIDAuMTApO1xuICAvLyBIb3cgZmFyIHRoZSBzZWxlY3RlZCBzZWdtZW50IGdyb3dzIGFib3ZlL2JlbG93IHRoZSByZXN0aW5nIGJhciBoZWlnaHQuXG4gIC0tcXNzLWdyb3c6IDdweDtcblxuICAvLyBHcmFkaWVudCBzdG9wcyAtIHNhbWUgY29sb3Vycy9vcmRlciBhcyBxZG5hcHJvLXNsaWRlcidzIFwic2VudGltZW50XCJcbiAgLy8gdmFyaWFudCwgZm9yIHZpc3VhbCBjb25zaXN0ZW5jeSBhY3Jvc3MgdGhlIHR3byByYXRpbmcgY29udHJvbHMuXG4gIC0tcXNzLWdyYWQtMTogdmFyKC0tYy13YXJuLXJlZC01MDAsICNkYzI2MjYpO1xuICAtLXFzcy1ncmFkLTI6IHZhcigtLWMtd2Fybi15ZWxsb3ctNTAwLCAjZmJiZjI0KTtcbiAgLS1xc3MtZ3JhZC0zOiB2YXIoLS1jLXN1Y2Nlc3MtYnJpZ2h0LCAjMWQ5ZTc1KTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNjQwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG59XG5cbi8vIC0tLS0gQmFyICh0aGUgXCJvbmUgb2JqZWN0XCIpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnFkbmFwcm8tc2NvcmUtc2NhbGUgLnFzcy1iYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyOyAvLyBOT1Qgc3RyZXRjaDogbGV0cyB0aGUgc2VsZWN0ZWQgc2VnbWVudCBiZSBhIGRpZmZlcmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gKHRhbGxlcikgaGVpZ2h0IHRoYW4gaXRzIHNpYmxpbmdzIHdpdGhvdXQgdGhlIHJvdydzXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBvd24gaGVpZ2h0IGdyb3dpbmcgdG8gbWF0Y2ggaXQgKGVhY2ggY2hpbGQncyBoZWlnaHRcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlzIGV4cGxpY2l0LCBzZWUgLnFzcy1zZWdtZW50IGJlbG93KS5cbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNTZweDsgLy8gZml4ZWQgYmFzZWxpbmUgcm93IGhlaWdodCAtIHRoZSBzZWxlY3RlZCBzZWdtZW50IG92ZXJmbG93c1xuICAgICAgICAgICAgICAgIC8vIHRoaXMgYm94IG9uIHB1cnBvc2UgKHNlZSBpcy1zZWxlY3RlZCBiZWxvdyk7IHRoZSByb3cgaXRzZWxmXG4gICAgICAgICAgICAgICAgLy8gbmV2ZXIgZ3Jvd3MsIHNvIHN1cnJvdW5kaW5nIGxheW91dCBuZXZlciBzaGlmdHMgb24gc2VsZWN0LlxuICBvdmVyZmxvdzogdmlzaWJsZTsgLy8gd2FzIGhpZGRlbiAtIGEgZ3Jvd2luZyBzZWdtZW50IG11c3QgTk9UIGJlIGNsaXBwZWQuXG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1jYXJkLCAwIDFweCAycHggcmdiYSgyMCwgMjUsIDgwLCAwLjA0KSk7XG4gIC8vIERyYWctc2VsZWN0ICgxMS4wNy4yMDI2KTogYWxsb3cgdGhlIGJyb3dzZXIncyBuYXRpdmUgdmVydGljYWwgcGFuL3Njcm9sbFxuICAvLyB0byBrZWVwIHdvcmtpbmcgdW50b3VjaGVkOyBob3Jpem9udGFsIGRyYWcgaXMgb3duZWQgYnkgSlMgKHBvaW50ZXJcbiAgLy8gaGFuZGxlcnMgcHJldmVudERlZmF1bHQgb25seSBvbmNlIHRoZSBheGlzLWxvY2sgY29uZmlybXMgaG9yaXpvbnRhbFxuICAvLyBpbnRlbnQpIC0gc2FtZSBjb250cmFjdCBhcyBxZG5hcHJvLWRhdGUtY2Fyb3VzZWwncyBzdHJpcC13cmFwLlxuICB0b3VjaC1hY3Rpb246IHBhbi15O1xufVxuXG4vLyBXaGlsZSBhIGRyYWcgaXMgYWN0aXZlbHkgbW92aW5nIHRoZSBzZWxlY3Rpb24sIGRyb3AgdGhlIHNlZ21lbnQncyBvd25cbi8vIHRyYW5zaXRpb24gc28gdGhlIGdyb3ctb3V0IGN1ZSBmb2xsb3dzIHRoZSBwb2ludGVyIElOU1RBTlRMWSAobm8gMTUwbXMgbGFnXG4vLyBwZXIgc2VnbWVudCBjcm9zc2VkKSAtIHJlLWVuYWJsZWQgYWdhaW4gdGhlIG1vbWVudCB0aGUgZHJhZyBlbmRzL2NvbW1pdHMuXG4ucWRuYXByby1zY29yZS1zY2FsZS5pcy1kcmFnZ2luZyAucXNzLXNlZ21lbnQge1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuXG4vLyAtLS0tIFNlZ21lbnQgKGEgcmVhbCA8YnV0dG9uPikgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ucWRuYXByby1zY29yZS1zY2FsZSAucXNzLXNlZ21lbnQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmbGV4OiAxIDEgMDtcbiAgbWluLXdpZHRoOiAwO1xuICBoZWlnaHQ6IDU2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLXFzcy1zZXBhcmF0b3IpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1xc3MtbmV1dHJhbC1pZGxlLWJnKTtcbiAgY29sb3I6IHZhcigtLXFzcy1uZXV0cmFsLWlkbGUtdGV4dCk7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAwO1xuICB0cmFuc2l0aW9uOlxuICAgIGhlaWdodCAxNTBtcyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSksXG4gICAgYm9yZGVyLXJhZGl1cyAxNTBtcyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSksXG4gICAgYm94LXNoYWRvdyAxNTBtcyBlYXNlLW91dCxcbiAgICBiYWNrZ3JvdW5kLWNvbG9yIDE1MG1zIGVhc2Utb3V0LFxuICAgIGNvbG9yIDE1MG1zIGVhc2Utb3V0LFxuICAgIGZpbHRlciAxNTBtcyBlYXNlLW91dCxcbiAgICBvcGFjaXR5IDE1MG1zIGVhc2Utb3V0O1xufVxuLy8gT3V0ZXItY29ybmVyIHJvdW5kaW5nIGxpdmVzIG9uIHRoZSBlbmQgc2VnbWVudHMgdGhlbXNlbHZlcyBub3cgKHRoZSBiYXIgbm9cbi8vIGxvbmdlciBjbGlwcyB2aWEgb3ZlcmZsb3c6aGlkZGVuKSwgc28gdGhlIHJlc3RpbmcgYmFyIHN0aWxsIHJlYWRzIGFzIE9ORVxuLy8gcm91bmRlZCBvYmplY3QgZXZlbiB0aG91Z2ggYSBzZWxlY3RlZCBzZWdtZW50IGNhbiBncm93IHBhc3QgaXRzIGJvdW5kcy5cbi5xZG5hcHJvLXNjb3JlLXNjYWxlIC5xc3Mtc2VnbWVudDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLXItMywgMTJweCk7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLXItMywgMTJweCk7XG59XG4ucWRuYXByby1zY29yZS1zY2FsZSAucXNzLXNlZ21lbnQ6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLXItMywgMTJweCk7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1yLTMsIDEycHgpO1xufVxuLy8gSGlkZSB0aGUgaGFpcmxpbmUgc2VwYXJhdG9yIHRoYXQgd291bGQgb3RoZXJ3aXNlIHNpdCBmbHVzaCBhZ2FpbnN0IHRoZVxuLy8gcmFpc2VkIGxlZnQgZWRnZSBvZiBhIHBvcHBlZC1vdXQgc2VsZWN0ZWQgc2VnbWVudC5cbi5xZG5hcHJvLXNjb3JlLXNjYWxlIC5xc3Mtc2VnbWVudDpoYXMoKyAucXNzLXNlZ21lbnQuaXMtc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5xZG5hcHJvLXNjb3JlLXNjYWxlIC5xc3Mtc2VnbWVudDpob3Zlcjpub3QoOmRpc2FibGVkKTpub3QoLmlzLXNlbGVjdGVkKSB7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygwLjk3KTtcbn1cbi5xZG5hcHJvLXNjb3JlLXNjYWxlIC5xc3Mtc2VnbWVudDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4ucWRuYXByby1zY29yZS1zY2FsZSAucXNzLXNlZ21lbnQ6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xuICB6LWluZGV4OiAzO1xufVxuXG4ucWRuYXByby1zY29yZS1zY2FsZSAucXNzLW51bSB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLy8gLS0tLSBTZWxlY3RlZCBzdGF0ZTogc2hhcGUgY3VlLCBuZXZlciBjb2xvdXItb25seSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhlIHNlbGVjdGVkIHNlZ21lbnQgcGh5c2ljYWxseSBHUk9XUyBPVVQgb2YgdGhlIGJhciAtIHRhbGxlciB0aGFuIGl0c1xuLy8gbmVpZ2hib3VycyBieSAtLXFzcy1ncm93IG9uIHRvcCBhbmQgYm90dG9tLCB3aXRoIGl0cyBvd24gZnVsbHkgcm91bmRlZFxuLy8gY29ybmVycyAoaXQncyBhIHNtYWxsIHJhaXNlZCB0aWxlIG5vdywgbm90IGEgZmx1c2ggcGllY2Ugb2YgdGhlIGJhcikgYW5kIGFcbi8vIHNvZnQgZWxldmF0aW9uIHNoYWRvdywgcGx1cyBhIGJvbGRlci9sYXJnZXIgbnVtYmVyLiBUaGlzIGlzIGEgcHVyZSBTSEFQRVxuLy8gY3VlOiBpdCByZWFkcyBpZGVudGljYWxseSBpbiBncmFkaWVudCBtb2RlICh3aGVyZSBjb2xvdXIgYWxvbmUgaXMgbm90IGFcbi8vIHVzYWJsZSBzaWduYWwpIGFuZCBmb3IgY29sb3VyYmxpbmQgdXNlcnMuIE5vIHdoaXRlIHJpbmcgLSBzZWUgMTEuMDcuMjAyNlxuLy8gcmVkZXNpZ24gKEtpbTogdGhlIG9sZCBpbnNldCB3aGl0ZSByaW5nIHJlYWQgYXMgXCJ1Z2x5XCIpLlxuLnFkbmFwcm8tc2NvcmUtc2NhbGUgLnFzcy1zZWdtZW50LmlzLXNlbGVjdGVkIHtcbiAgaGVpZ2h0OiBjYWxjKDU2cHggKyAodmFyKC0tcXNzLWdyb3cpICogMikpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTIsIDhweCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLXFzcy1uZXV0cmFsLXNlbGVjdGVkLWJnKTtcbiAgY29sb3I6IHZhcigtLXFzcy1uZXV0cmFsLXNlbGVjdGVkLXRleHQpO1xuICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiB2YXIoLS1xc3Mtc2VsZWN0ZWQtc2hhZG93KTtcbiAgei1pbmRleDogMjtcbn1cbi5xZG5hcHJvLXNjb3JlLXNjYWxlIC5xc3Mtc2VnbWVudC5pcy1zZWxlY3RlZCAucXNzLW51bSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMTdweDtcbn1cblxuLy8gLS0tLSBHcmFkaWVudCBtb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBFYWNoIHNlZ21lbnQncyBiYWNrZ3JvdW5kLWltYWdlLy1zaXplLy1wb3NpdGlvbiBpcyBzZXQgaW5saW5lIChKUykgc28gdGhlXG4vLyBmdWxsIHJlZCAtPiB5ZWxsb3cgLT4gZ3JlZW4gZ3JhZGllbnQgcnVucyBjb250aW51b3VzbHkgYWNyb3NzIHRoZSB3aG9sZSBiYXIsXG4vLyBlYWNoIHNlZ21lbnQgc2hvd2luZyBvbmx5IGl0cyBvd24gc2xpY2UuXG4ucWRuYXByby1zY29yZS1zY2FsZS5pcy1ncmFkaWVudCAucXNzLXNlZ21lbnQge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjM1KTsgLy8ga2VlcHMgdGhlIG51bWJlciBsZWdpYmxlIG92ZXIgeWVsbG93IHRvb1xuICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSk7XG59XG4vLyBVbnNlbGVjdGVkIHNlZ21lbnRzIHJlbmRlciB0aGVpciBncmFkaWVudCBzbGljZSBkZXNhdHVyYXRlZC9kaW1tZWQgc28gdGhlXG4vLyBzZWxlY3RlZCBvbmUgdmlzaWJseSBwb3BzIC0gYSBTSEFQRSBjdWUgZG9lcyB0aGUgYWN0dWFsIHNlbGVjdGlvbiBzaWduYWxsaW5nXG4vLyAoYWJvdmUpLCB0aGlzIGlzIGp1c3QgZXh0cmEgdmlzdWFsIGVtcGhhc2lzLCBub3QgdGhlIG1lY2hhbmlzbSBpdHNlbGYuXG4ucWRuYXByby1zY29yZS1zY2FsZS5pcy1ncmFkaWVudCAucXNzLXNlZ21lbnQ6bm90KC5pcy1zZWxlY3RlZCkge1xuICBmaWx0ZXI6IHNhdHVyYXRlKDAuNDUpIGJyaWdodG5lc3MoMS4wNSk7XG4gIG9wYWNpdHk6IDAuODI7XG59XG4ucWRuYXByby1zY29yZS1zY2FsZS5pcy1ncmFkaWVudCAucXNzLXNlZ21lbnQuaXMtc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLy8gbGV0IHRoZSBpbmxpbmUgZ3JhZGllbnQgc2xpY2Ugc2hvdyB0aHJvdWdoXG4gIGZpbHRlcjogbm9uZTtcbiAgb3BhY2l0eTogMTtcbiAgLy8gTm8gcmluZyBoZXJlIGVpdGhlciAtIHRoZSBncm93LW91dCBzaGFwZSBjdWUgKGhlaWdodC9yYWRpdXMvc2hhZG93IGFib3ZlKVxuICAvLyBpcyBzaGFyZWQgd2l0aCBuZXV0cmFsIG1vZGUgYW5kIGRvZXMgdGhlIHNpZ25hbGxpbmcgb24gaXRzIG93bi5cbn1cblxuLy8gLS0tLSBGb290ZXI6IGVuZHBvaW50IGxhYmVscyArIGJhbmRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5xZG5hcHJvLXNjb3JlLXNjYWxlIC5xc3MtZm9vdGVyIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tcy0yLCA4cHgpO1xufVxuLnFkbmFwcm8tc2NvcmUtc2NhbGUgLnFzcy1lbmRwb2ludHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogdmFyKC0tcy0yLCA4cHgpO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xufVxuLnFkbmFwcm8tc2NvcmUtc2NhbGUgLnFzcy1sYWJlbC1taW4sXG4ucWRuYXByby1zY29yZS1zY2FsZSAucXNzLWxhYmVsLW1heCB7XG4gIG1heC13aWR0aDogNDglO1xufVxuLnFkbmFwcm8tc2NvcmUtc2NhbGUgLnFzcy1sYWJlbC1tYXgge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLnFkbmFwcm8tc2NvcmUtc2NhbGUgLnFzcy1iYW5kcyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAxOHB4O1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zLTEsIDRweCk7XG59XG4ucWRuYXByby1zY29yZS1zY2FsZSAucXNzLWJhbmQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xuICBwYWRkaW5nLXRvcDogdmFyKC0tcy0xLCA0cHgpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdC0yLCAjZTZlOWVmKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8vIC0tLS0gRGlzYWJsZWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnFkbmFwcm8tc2NvcmUtc2NhbGUuaXMtZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjU1O1xufVxuLnFkbmFwcm8tc2NvcmUtc2NhbGUuaXMtZGlzYWJsZWQgLnFzcy1zZWdtZW50IHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLy8gLS0tLSBEYXJrIG1vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmF3IHBhbGV0dGUgdG9rZW5zICgtLWMtd2Fybi0qLCAtLWMtc3VjY2Vzcy1icmlnaHQpIGRvIE5PVCBhdXRvLWZsaXAgdW5kZXJcbi8vIFtkYXRhLXRoZW1lPVwiZGFya1wiXSAtIG9ubHkgc2VtYW50aWMgdG9rZW5zIGRvIChzZWUgX2Rlc2lnbi10b2tlbnMuc2NzcydzXG4vLyBkYXJrIG92ZXJyaWRlIGJsb2NrKS4gVGhpcyBjb21wb25lbnQncyBsb2NhbCAtLXFzcy0qIGN1c3RvbSBwcm9wcyBhcmVcbi8vIHJlZGVmaW5lZCBoZXJlLCBzYW1lIHBhdHRlcm4gYXMgcWRuYXByby1zbGlkZXIvcWRuYXByby10b2dnbGUuXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tc2NvcmUtc2NhbGUge1xuICAtLXFzcy1uZXV0cmFsLWlkbGUtYmc6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpIDIyJSwgdmFyKC0tYy1ncmV5LTkwMCwgIzE4MTgxYykpO1xuICAtLXFzcy1uZXV0cmFsLWlkbGUtdGV4dDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRoZW1lLWJ0bi1jb2xvciwgIzQwNDk5YSkgNzAlLCAjZmZmKTtcbiAgLS1xc3MtbmV1dHJhbC1zZWxlY3RlZC1iZzogdmFyKC0tdGhlbWUtYnRuLXNlbGVjdGVkLWNvbG9yLCB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpKTtcbiAgLS1xc3MtbmV1dHJhbC1zZWxlY3RlZC10ZXh0OiB2YXIoLS10aGVtZS1idG4tc2VsZWN0ZWQtdGV4dC1jb2xvciwgI2ZmZik7XG4gIC0tcXNzLXNlcGFyYXRvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICAtLXFzcy1zZWxlY3RlZC1zaGFkb3c6IDAgOHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjQ1KSwgMCAycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4zMCk7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tc2NvcmUtc2NhbGUgLnFzcy1iYW5kIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tYy1ib3JkZXItc29mdCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSk7XG59XG5cbi8vIC0tLS0gTmFycm93IHZpZXdwb3J0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIDExIHNlZ21lbnRzICgwLTEwKSBnZXQgfjM0cHggd2lkZSBvbiBhIG5hcnJvdyBwaG9uZSBzY3JlZW4gLSBhY2NlcHRhYmxlXG4vLyBiZWNhdXNlIG9mIHRoZSA1NnB4IGhlaWdodC4gRG8gTk9UIHdyYXAgdG8gdHdvIHJvd3M7IHNocmluayB0aGUgbnVtYmVyXG4vLyBpbnN0ZWFkIHNvIHR3by1kaWdpdCB2YWx1ZXMgKFwiMTBcIikgc3RpbGwgZml0IGNvbWZvcnRhYmx5LlxuQG1lZGlhIChtYXgtd2lkdGg6IDQyMHB4KSB7XG4gIC5xZG5hcHJvLXNjb3JlLXNjYWxlIC5xc3Mtc2VnbWVudCB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICB9XG59XG5cbi8vIC0tLS0gUmVkdWNlZCBtb3Rpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGUgZ3Jvdy1vdXQgcG9wIG9uIHNlbGVjdGlvbiBpcyBwdXJlbHkgZGVjb3JhdGl2ZSBtb3Rpb24gLSB0aGUgc2hhcGUvc2l6ZVxuLy8gY2hhbmdlIGl0c2VsZiBzdGlsbCBoYXBwZW5zIGluc3RhbnRseSwgb25seSB0aGUgYW5pbWF0ZWQgdHJhbnNpdGlvbiBpc1xuLy8gcmVtb3ZlZCwgc2FtZSBwYXR0ZXJuIGFzIHFkbmFwcm8tcHJvZ3Jlc3MuIFtyZWRlc2lnbiAxMS4wNy4yMDI2XVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnFkbmFwcm8tc2NvcmUtc2NhbGUgLnFzcy1zZWdtZW50IHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG59XG4iLCIvLyBxZG5hcHJvLWxpa2VydC1zY2FsZSAtIGhvcml6b250YWwgcm93IG9mIE4gKDUgb3IgNykgZXZlbmx5IHNwYWNlZCBjaXJjbGVzLFxuLy8gZWFjaCB3aXRoIGl0cyBvd24gYm9sZCBhbmNob3IgbGFiZWwgQUJPVkUgaXQgKHdyYXBzIHRvIDIgbGluZXMsIGNlbnRlcmVkKS5cbi8vIFRoZSBjaXJjbGUgaXMgYSByaW5nIGJ5IGRlZmF1bHQ7IHRoZSBTRUxFQ1RFRCBjaXJjbGUgZmlsbHMgd2l0aCB0aGUgYWNjZW50XG4vLyBjb2xvdXIuIEZMQVQgQ1NTOyBjb2xvdXJzIGNvbWUgZnJvbSB0aGUgZGVzaWduLXRva2VuIDpyb290ICh2YXIoLS1jLSopKS5cbi8vIEVkaXQgSEVSRSwgdGhlbiBgZ3VscCBzYXNzLXYxYC5cbi8vXG4vLyBTaGFyZWQgYW5zd2VyIGNvbnRyb2wgaW4gdGhlIHNhbWUgZmFtaWx5IGFzIHFkbmFwcm8tc2NvcmUtc2NhbGUgYW5kXG4vLyBxZG5hcHJvLWFuc3dlci1idXR0b24gLSBzYW1lIHRoZW1lLWNvbG91ciBob29rIGZhbWlseSwgc2FtZSB0YXAtdG8tZGVzZWxlY3Rcbi8vIGNvbnZlbnRpb24uXG5cbi5xZG5hcHJvLWxpa2VydC1zY2FsZSB7XG4gIC8vIFRoZW1lYWJsZSBhY2NlbnQgKGZpbGwvcmluZykgY29sb3VyIC0gYSBjb25zdW1lciBjYW4gZm9sbG93IGEgbm9kZSdzXG4gIC8vIGNvbmZpZ3VyZWQgY29sb3VyIHZpYSBzdHlsZT1cIi0tbGlrZXJ0LWFjY2VudDogI3h4eHh4eFwiLiBEZWZhdWx0IGlzIHRoZVxuICAvLyB0aGVtZS1lZGl0b3IgYnV0dG9uIGNvbG91ciAoLS10aGVtZS1idG4tY29sb3IpLCB0aGUgU0FNRSBob29rIHRoZSByZXN0IG9mXG4gIC8vIHRoZSBhbnN3ZXItY29udHJvbCBmYW1pbHkgdXNlcyAocWRuYXByby1hbnN3ZXItYnV0dG9uLCBxZG5hcHJvLXNjb3JlLXNjYWxlKSxcbiAgLy8gc28gYSBjdXN0b21lciB0aGVtZSByZWNvbG91cnMgdGhpcyBjb250cm9sIHRvby4gRmFsbHMgYmFjayB0byB0aGUgYnJhbmRcbiAgLy8gcHVycGxlIHNlbWFudGljIHRva2VuLCB0aGVuIHRvIHRoZSByYXcgaGV4LCBmb3IgcGFnZXMgdGhhdCBzZXQgbm8gdGhlbWUuXG4gIC0tbGlrZXJ0LWFjY2VudDogdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSkpO1xuICAvLyBDaGVjay1tYXJrIHN0cm9rZSBvbiBhIGZpbGxlZCBkb3Q6IGZvbGxvd3MgdGhlIHRoZW1lJ3MgYnV0dG9uIHRleHQgY29sb3VyXG4gIC8vIHNvIGEgbGlnaHQgdGhlbWUgY29sb3VyIGtlZXBzIGEgcmVhZGFibGUgdGljay5cbiAgLS1xbHMtY2hlY2stY29sb3I6IHZhcigtLXRoZW1lLWJ0bi10ZXh0LWNvbG9yLCAjZmZmKTtcbiAgLS1xbHMtbnZ0LWNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI3MjgwKTtcbiAgLS1xbHMtbnZ0LXJpbmc6IHZhcigtLWMtZ3JleS00MDAsICNhNmFhYjMpO1xuICAtLXFscy1jaXJjbGUtc2l6ZTogMjhweDtcbiAgLS1xbHMtZ2FwOiB2YXIoLS1zLTIsIDhweCk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG4gIC8vIExldHMgdGhlIHJvdyByZXNwb25kIHRvIHRoZSBzcGFjZSBJVCBhY3R1YWxseSBoYXMgKGEgZmxvdy1lZGl0b3Igbm9kZVxuICAvLyBwcmV2aWV3IGNvbHVtbiBjYW4gYmUgbXVjaCBuYXJyb3dlciB0aGFuIHRoZSB2aWV3cG9ydCksIG5vdCBqdXN0IHRoZVxuICAvLyB2aWV3cG9ydCB3aWR0aC5cbiAgY29udGFpbmVyOiBxZG5hcHJvLWxpa2VydC1zY2FsZSAvIGlubGluZS1zaXplO1xuXG4gICosXG4gICo6OmJlZm9yZSxcbiAgKjo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cbn1cblxuLy8gLS0tLSBSb3cgKHJhZGlvZ3JvdXA6IHNjYWxlICsgb3B0aW9uYWwgZGl2aWRlciArIG4udi50LikgLS0tLS0tLS0tLS0tLS0tLS0tXG4ucWRuYXByby1saWtlcnQtc2NhbGVfX3JvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICB3aWR0aDogMTAwJTtcbiAgZ2FwOiB2YXIoLS1zLTQsIDE2cHgpO1xuICAvLyBWZXJ0aWNhbCBicmVhdGhpbmcgcm9vbSBzbyB0aGUgU0VMRUNURUQgY2lyY2xlIChzY2FsZSAxLjA4ICsgZm9jdXMgcmluZylcbiAgLy8gaXMgbmV2ZXIgY2xpcHBlZCBieSBvdmVyZmxvdy15IGJlbG93LiBTbWFsbCBpbmxpbmUgcGFkZGluZyBrZWVwcyB0aGUgZmlyc3RcbiAgLy8gYW5kIGxhc3QgY2lyY2xlJ3MgZm9jdXMgcmluZyBvZmYgdGhlIHNjcm9sbCBlZGdlIHRvby5cbiAgcGFkZGluZzogNnB4IDRweCA5cHg7XG4gIC8vIFNhZmV0eSBuZXQgT05MWTogYXQgZXh0cmVtZSB3aWR0aHMgKG1hbnkgcG9pbnRzIGluIGEgdmVyeSBuYXJyb3dcbiAgLy8gY29udGFpbmVyKSB0aGUgcm93IHNjcm9sbHMgaG9yaXpvbnRhbGx5IGluc3RlYWQgb2Ygd3JhcHBpbmcgdG8gYSBzZWNvbmRcbiAgLy8gcm93IG9yIGNsaXBwaW5nIGNvbnRlbnQuIFRodW1iLW9ubHkgc2Nyb2xsYmFyIHBlciBob3VzZSBjb252ZW50aW9uLlxuICBvdmVyZmxvdy14OiBhdXRvO1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG59XG4ucWRuYXByby1saWtlcnQtc2NhbGVfX3Jvdzo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICBoZWlnaHQ6IDZweDtcbn1cbi5xZG5hcHJvLWxpa2VydC1zY2FsZV9fcm93Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19yb3c6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5xZG5hcHJvLWxpa2VydC1zY2FsZV9fcm93OmhvdmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbi5xZG5hcHJvLWxpa2VydC1zY2FsZV9fcm93OmZvY3VzLXdpdGhpbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMjIpO1xufVxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19yb3c6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjM0KTtcbn1cblxuLy8gLS0tLSBTY2FsZSAodGhlIE4gZXZlbmx5LXNwYWNlZCBwb2ludHMpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19zY2FsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogdmFyKC0tcy0xLCA0cHgpO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi8vIC0tLS0gSXRlbSAod3JhcHMgT05FIG9wdGlvbiBidXR0b24sIGtlZXBzIGl0cyBzaGFyZSBvZiB0aGUgcm93J3Mgd2lkdGgpIC0tLS1cbi5xZG5hcHJvLWxpa2VydC1zY2FsZV9faXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDEgMSAwO1xuICBtaW4td2lkdGg6IDA7XG59XG4vLyBUaGUgbi52LnQuIGl0ZW0gc2l0cyBPVVRTSURFIHRoZSBzcGFjZS1iZXR3ZWVuIHNjYWxlLCBzbyBpdCBuZXZlciBzdHJldGNoZXNcbi8vIC0gaXQga2VlcHMgaXRzIG5hdHVyYWwgKGxhYmVsLWRyaXZlbikgd2lkdGguXG4ucWRuYXByby1saWtlcnQtc2NhbGVfX2l0ZW0tLW52dCB7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuXG4vLyAtLS0tIE9wdGlvbiAodGhlIHRhcCB0YXJnZXQ6IGRvdCArIGxhYmVsLCBvbmUgPGJ1dHRvbiByb2xlPVwicmFkaW9cIj4pIC0tLS0tLVxuLy8gVGhlIFdIT0xFIG9wdGlvbiAtIGRvdCArIGxhYmVsIC0gaXMgYSBzaW5nbGUgYnV0dG9uIHNvIHRoZSBlbnRpcmUgcm93IGlzXG4vLyBjbGlja2FibGUvdGFwcGFibGUsIG5vdCBqdXN0IHRoZSAyOHB4IGRvdCAoS2ltLCAyMC4wNy4yMDI2OiB1c2VycyB3ZXJlXG4vLyBtaXNjbGlja2luZyBiZWNhdXNlIG9ubHkgdGhlIGRvdCB1c2VkIHRvIGJlIGEgaGl0IHRhcmdldCkuIExheW91dC1vbmx5XG4vLyBoZXJlOyB0aGUgZG90J3MgcmluZy9maWxsL2NoZWNrLW1hcmsgdmlzdWFscyBsaXZlIG9uIHRoZSBzZXBhcmF0ZSAuZG90XG4vLyBjaGlsZCBiZWxvdyBzbyB0aGUgYWNjZW50IGZpbGwgbmV2ZXIgYmxlZWRzIGFjcm9zcyB0aGUgbGFiZWwgdGV4dC5cbi5xZG5hcHJvLWxpa2VydC1zY2FsZV9fb3B0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1xbHMtZ2FwKTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDRweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE1MG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19vcHRpb246Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4ucWRuYXByby1saWtlcnQtc2NhbGVfX2xhYmVsIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogOTZweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMWExZjRkKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAvLyBBbHdheXMgd3JhcHMgdG8gKHVwIHRvKSAyIGxpbmVzIGFuZCByZXNlcnZlcyB0aGF0IGhlaWdodCwgc28gZXZlcnlcbiAgLy8gZG90IGluIHRoZSByb3cgc3RheXMgYWxpZ25lZCByZWdhcmRsZXNzIG9mIGluZGl2aWR1YWwgbGFiZWwgbGVuZ3RoLlxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtaW4taGVpZ2h0OiBjYWxjKDEuMjVlbSAqIDIpO1xufVxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19pdGVtLS1udnQgLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xufVxuXG4vLyAtLS0tIERpdmlkZXIgKHZpc3VhbCBcIm9mZiB0aGUgc2NhbGVcIiBzZXBhcmF0b3IgYmVmb3JlIG4udi50LikgLS0tLS0tLS0tLS0tLVxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19kaXZpZGVyIHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgd2lkdGg6IDFweDtcbiAgbWluLXdpZHRoOiAxcHg7XG4gIG1hcmdpbi10b3A6IGNhbGMoKDEuMjVlbSAqIDIpICsgdmFyKC0tcWxzLWdhcCkpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvcmRlci1zb2Z0LTIsICNlNmU5ZWYpO1xufVxuXG4vLyAtLS0tIERvdCAoZGVjb3JhdGl2ZSB2aXN1YWwgcmluZyAtIGEgY2hpbGQgb2YgLm9wdGlvbiwgbm90IHRoZSBidXR0b25cbi8vIGl0c2VsZiwgc28gdGhlIGFjY2VudCBmaWxsL3NjYWxlIG9uIHNlbGVjdGlvbiBuZXZlciBibGVlZHMgYWNyb3NzIHRoZVxuLy8gbGFiZWwgdGV4dCkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ucWRuYXByby1saWtlcnQtc2NhbGVfX2RvdCB7XG4gIHdpZHRoOiB2YXIoLS1xbHMtY2lyY2xlLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXFscy1jaXJjbGUtc2l6ZSk7XG4gIG1pbi13aWR0aDogdmFyKC0tcWxzLWNpcmNsZS1zaXplKTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tbGlrZXJ0LWFjY2VudCk7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAvLyBDZW50cmUgdGhlIGNoZWNrLW1hcmsgc3ZnIGluc2lkZSB0aGUgZG90LlxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRyYW5zaXRpb246XG4gICAgYmFja2dyb3VuZC1jb2xvciAxNTBtcyBlYXNlLW91dCxcbiAgICBib3JkZXItY29sb3IgMTUwbXMgZWFzZS1vdXQsXG4gICAgYm94LXNoYWRvdyAxNTBtcyBlYXNlLW91dCxcbiAgICB0cmFuc2Zvcm0gMTAwbXMgZWFzZS1vdXQ7XG59XG5cbi8vIEFuaW1hdGVkIGNoZWNrLW1hcms6IGhpZGRlbiByaW5nIGJ5IGRlZmF1bHQsIGRyYXdzIGluICsgcG9wcyB3aGVuIHNlbGVjdGVkLlxuLy8gU2FtZSBtb3Rpb24gYXMgcWRuYXByby1hbnN3ZXItYnV0dG9uIChxYWItZHJhdyAvIHFhYi10aWNrLXBvcCksIHJldXNlZCBoZXJlIHNvXG4vLyB0aGUgZmllbGQgYXBwIChQV0EpIGFuZCB0aGUgZWRpdG9yIHByZXZpZXcgc2hhcmUgb25lIGFuaW1hdGlvbi4gVGhlIHN0cm9rZVxuLy8gY29sb3VyIGNvbnRyYXN0cyBhZ2FpbnN0IHRoZSBmaWxsZWQgZG90IChhY2NlbnQgb3Igbi52LnQuIGdyZXkpLlxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19jaGVjayB7XG4gIHdpZHRoOiA1OCU7XG4gIGhlaWdodDogNTglO1xuICBmaWxsOiBub25lO1xuICBzdHJva2U6IHZhcigtLXFscy1jaGVjay1jb2xvciwgI2ZmZik7XG4gIHN0cm9rZS13aWR0aDogMi41O1xuICBzdHJva2UtbGluZWNhcDogcm91bmQ7XG4gIHN0cm9rZS1saW5lam9pbjogcm91bmQ7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDI0O1xuICBzdHJva2UtZGFzaG9mZnNldDogMjQ7IC8vIGZ1bGx5IGhpZGRlbiB1bnRpbCBzZWxlY3RlZFxuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4ucWRuYXByby1saWtlcnQtc2NhbGVfX29wdGlvbi5pcy1zZWxlY3RlZCAucWRuYXByby1saWtlcnQtc2NhbGVfX2NoZWNrIHtcbiAgb3BhY2l0eTogMTtcbiAgYW5pbWF0aW9uOlxuICAgIHFscy1jaGVjay1wb3AgMC41MnMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNSwgMSksXG4gICAgcWxzLWNoZWNrLWRyYXcgMC4zOHMgY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpIDAuMDRzIGZvcndhcmRzO1xufVxuQGtleWZyYW1lcyBxbHMtY2hlY2stcG9wIHtcbiAgMCUgICB7IHRyYW5zZm9ybTogc2NhbGUoMC43KSAgcm90YXRlKDBkZWcpOyAgfVxuICAyMCUgIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjIyKSByb3RhdGUoLTVkZWcpOyB9XG4gIDQ0JSAgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOTApIHJvdGF0ZSgzZGVnKTsgIH1cbiAgNjQlICB7IHRyYW5zZm9ybTogc2NhbGUoMS4wOCkgcm90YXRlKC0xZGVnKTsgfVxuICA4MCUgIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjk3KSByb3RhdGUoMGRlZyk7ICB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpICAgIHJvdGF0ZSgwZGVnKTsgIH1cbn1cbkBrZXlmcmFtZXMgcWxzLWNoZWNrLWRyYXcge1xuICAwJSAgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDI0OyAgfVxuICA2MiUgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0xOyAgfVxuICA4MCUgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDAuNzsgfVxuICAxMDAlIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7ICAgfVxufVxuLy8gUmVzcGVjdCByZWR1Y2VkLW1vdGlvbjogc2hvdyB0aGUgY2hlY2sgaW5zdGFudGx5LCBubyBkcmF3L3BvcC5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fb3B0aW9uLmlzLXNlbGVjdGVkIC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fY2hlY2sge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcbiAgfVxufVxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19vcHRpb246aG92ZXI6bm90KDpkaXNhYmxlZCk6bm90KC5pcy1zZWxlY3RlZCkgLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19kb3Qge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbGlrZXJ0LWFjY2VudCkgMTIlLCB0cmFuc3BhcmVudCk7XG59XG4ucWRuYXByby1saWtlcnQtc2NhbGVfX29wdGlvbjpmb2N1cy12aXNpYmxlIC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fZG90IHtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1saWtlcnQtYWNjZW50KSAzMCUsIHRyYW5zcGFyZW50KTtcbn1cbi5xZG5hcHJvLWxpa2VydC1zY2FsZV9fb3B0aW9uLmlzLXNlbGVjdGVkIC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fZG90IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tbGlrZXJ0LWFjY2VudCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbGlrZXJ0LWFjY2VudCk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wOCk7XG59XG4ucWRuYXByby1saWtlcnQtc2NhbGVfX29wdGlvbjphY3RpdmU6bm90KDpkaXNhYmxlZCkgLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19kb3Qge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTQpO1xufVxuXG4vLyBuLnYudC4gZG90OiBhbHdheXMgbmV1dHJhbCBncmV5LCBORVZFUiB0aGUgYWNjZW50IGNvbG91ciAtIGl0IGlzXG4vLyB2aXN1YWxseSBcIm9mZiB0aGUgc2NhbGVcIi5cbi5xZG5hcHJvLWxpa2VydC1zY2FsZV9fZG90LS1udnQge1xuICBib3JkZXItY29sb3I6IHZhcigtLXFscy1udnQtcmluZyk7XG59XG4ucWRuYXByby1saWtlcnQtc2NhbGVfX29wdGlvbi0tbnZ0OmhvdmVyOm5vdCg6ZGlzYWJsZWQpOm5vdCguaXMtc2VsZWN0ZWQpIC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fZG90IHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXFscy1udnQtY29sb3IpIDEyJSwgdHJhbnNwYXJlbnQpO1xufVxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19vcHRpb24tLW52dDpmb2N1cy12aXNpYmxlIC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fZG90IHtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1xbHMtbnZ0LWNvbG9yKSAzMCUsIHRyYW5zcGFyZW50KTtcbn1cbi5xZG5hcHJvLWxpa2VydC1zY2FsZV9fb3B0aW9uLS1udnQuaXMtc2VsZWN0ZWQgLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19kb3Qge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1xbHMtbnZ0LWNvbG9yKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1xbHMtbnZ0LWNvbG9yKTtcbn1cblxuLy8gLS0tLSBSZWFkb25seSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTaG93cyB0aGUgY3VycmVudCBzZWxlY3Rpb24gYnV0IGlnbm9yZXMgaW50ZXJhY3Rpb24gLSBub3JtYWwgKG5vdCBkaW1tZWQpXG4vLyBsb29rLCBkaXN0aW5jdCBmcm9tIGRpc2FibGVkLlxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlLmlzLXJlYWRvbmx5IC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fb3B0aW9uIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlLmlzLXJlYWRvbmx5IC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fb3B0aW9uOmhvdmVyIC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fZG90IHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4ucWRuYXByby1saWtlcnQtc2NhbGUuaXMtcmVhZG9ubHkgLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19vcHRpb24tLW52dDpob3ZlciAucWRuYXByby1saWtlcnQtc2NhbGVfX2RvdCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlLmlzLXJlYWRvbmx5IC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fb3B0aW9uLmlzLXNlbGVjdGVkIC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fZG90IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tbGlrZXJ0LWFjY2VudCk7XG59XG4ucWRuYXByby1saWtlcnQtc2NhbGUuaXMtcmVhZG9ubHkgLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19vcHRpb24tLW52dC5pcy1zZWxlY3RlZCAucWRuYXByby1saWtlcnQtc2NhbGVfX2RvdCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXFscy1udnQtY29sb3IpO1xufVxuXG4vLyAtLS0tIERpc2FibGVkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5xZG5hcHJvLWxpa2VydC1zY2FsZS5pcy1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNTU7XG59XG4ucWRuYXByby1saWtlcnQtc2NhbGUuaXMtZGlzYWJsZWQgLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19vcHRpb24ge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4vLyAtLS0tIERhcmsgbW9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSYXcgcGFsZXR0ZSB0b2tlbnMgZG8gTk9UIGF1dG8tZmxpcCB1bmRlciBbZGF0YS10aGVtZT1cImRhcmtcIl0gLSBvbmx5XG4vLyBzZW1hbnRpYyB0b2tlbnMgZG8gKHNlZSBfZGVzaWduLXRva2Vucy5zY3NzJ3MgZGFyayBvdmVycmlkZSBibG9jaykuXG4vLyAtLWxpa2VydC1hY2NlbnQgZm9sbG93cyAtLXRoZW1lLWJ0bi1jb2xvciwgd2hpY2ggaXMgdGhlIGN1c3RvbWVyJ3MgdGhlbWVcbi8vIGNvbG91ciBhbmQgZGVsaWJlcmF0ZWx5IGRvZXMgTk9UIGZsaXAgaW4gZGFyayBtb2RlIChzYW1lIGFzXG4vLyBxZG5hcHJvLWFuc3dlci1idXR0b24gYW5kIHFkbmFwcm8tc2NvcmUtc2NhbGUpOyBvbmx5IHRoZSBsb2NhbCAtLXFscy0qIGdyZXlzXG4vLyBhbmQgdGhlIGRpdmlkZXIgY29sb3VyIG5lZWQgYSByZWRlY2xhcmUgaGVyZS5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1saWtlcnQtc2NhbGUge1xuICAtLXFscy1udnQtY29sb3I6IHZhcigtLWMtZ3JleS00MDAsICNhNmFhYjMpO1xuICAtLXFscy1udnQtcmluZzogdmFyKC0tYy1ncmV5LTYwMCwgIzU2NWI2Nik7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19kaXZpZGVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ib3JkZXItc29mdCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSk7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZywgI2UxZTNlNik7XG59XG5cbi8vIC0tLS0gTmFycm93IGNvbnRhaW5lcnM6IFNUQUNLIHZlcnRpY2FsbHkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEJlbG93IHRoaXMgd2lkdGggdGhlIGxhYmVscyBjYW4ndCBzaXQgc2lkZSBieSBzaWRlIChOIHBvaW50cywgc29tZSBsYWJlbHMgYXJlXG4vLyBsb25nLCBlLmcuIFwiTmlldCBvbnRldnJlZGVuLCBuaWV0IHRldnJlZGVuXCIpLCBzbyB0aGUgc2NhbGUgZmxvd3MgdG9wLXRvLWJvdHRvbTpcbi8vIGVhY2ggb3B0aW9uIGJlY29tZXMgYSBbZG90XSBbbGFiZWxdIHJvdy4gVGhpcyBpcyB0aGUgcGhvbmUgLyBQV0EgbGF5b3V0IEFORFxuLy8gdGhlIGZsb3ctZWRpdG9yIG5vZGUtcHJldmlldyBjb2x1bW4gbGF5b3V0IChib3RoIG5hcnJvd2VyIHRoYW4gdGhlIGJyZWFrcG9pbnQpLlxuLy8gQWJvdmUgaXQsIHRoZSBob3Jpem9udGFsIGxhYmVsLWFib3ZlLWRvdCBsYXlvdXQgaXMga2VwdCDigJQgdXNlZCBvbmx5IHdoZW5cbi8vIHRoZXJlIGlzIGdlbnVpbmVseSByb29tIGZvciBldmVyeSBsYWJlbC4gQ29udGFpbmVyIHF1ZXJ5ID0gcmVzcG9uZHMgdG8gdGhlXG4vLyBjb21wb25lbnQncyBPV04gd2lkdGgsIHNvIHByZXZpZXcgYW5kIGFwcCBiZWhhdmUgaWRlbnRpY2FsbHkuIFRoZSAub3B0aW9uXG4vLyBidXR0b24gaXRzZWxmIGNhcnJpZXMgdGhlIFtkb3RdW2xhYmVsXSByb3cgbGF5b3V0IGhlcmUgKG5vdCAuaXRlbSwgd2hpY2hcbi8vIG5vdyBvbmx5IHdyYXBzIHRoYXQgb25lIGJ1dHRvbikgLSBzZWUgdGhlIFwiT3B0aW9uXCIgYmxvY2sgYWJvdmUuXG5AY29udGFpbmVyIHFkbmFwcm8tbGlrZXJ0LXNjYWxlIChtYXgtd2lkdGg6IDY4MHB4KSB7XG4gIC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGdhcDogdmFyKC0tcy0yLCA4cHgpO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlOyAvLyBubyBob3Jpem9udGFsIHNjcm9sbCB3aGVuIHN0YWNrZWRcbiAgfVxuICAucWRuYXByby1saWtlcnQtc2NhbGVfX3NjYWxlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGdhcDogdmFyKC0tcy0yLCA4cHgpO1xuICB9XG4gIC5xZG5hcHJvLWxpa2VydC1zY2FsZV9faXRlbSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gIH1cbiAgLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19vcHRpb24ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiB2YXIoLS1zLTMsIDEycHgpO1xuICAgIC8vIENvbWZvcnRhYmxlIGZ1bGwtcm93IHRhcCB0YXJnZXQgKHRoaXMgaXMgYWxzbyB0aGUgUFdBL3Bob25lIGxheW91dCk6XG4gICAgLy8gdGhlIFdIT0xFIHJvdyAtIGRvdCArIGxhYmVsIC0gaXMgdGhlIGhpdCBhcmVhIG5vdywgbm90IGp1c3QgdGhlIDI4cHhcbiAgICAvLyBkb3QsIHBlciB0aGUgfjQ0cHggdG91Y2gtdGFyZ2V0IGNvbnZlbnRpb24uXG4gICAgbWluLWhlaWdodDogNDRweDtcbiAgICBwYWRkaW5nOiA2cHggNHB4O1xuICB9XG4gIC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fZG90IHsgb3JkZXI6IDA7IH0gLy8gZG90IGZpcnN0IChsZWZ0KVxuICAucWRuYXByby1saWtlcnQtc2NhbGVfX2xhYmVsIHtcbiAgICBvcmRlcjogMTtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIC13ZWJraXQtbGluZS1jbGFtcDogaW5pdGlhbDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuICAvLyBUaGUgdmVydGljYWwgXCJvZmYgdGhlIHNjYWxlXCIgZGl2aWRlciBpcyBtZWFuaW5nbGVzcyB3aGVuIHN0YWNrZWQ7IHVzZSBhXG4gIC8vIHRvcCBib3JkZXIgKyBzcGFjaW5nIG9uIHRoZSBuLnYudC4gcm93IGluc3RlYWQuXG4gIC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fZGl2aWRlciB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19pdGVtLS1udnQge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXMtMiwgOHB4KTtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tcy0zLCAxMnB4KTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdC0yLCAjZTZlOWVmKTtcbiAgfVxufVxuXG4vLyAtLS0tIFJlZHVjZWQgbW90aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19kb3Qge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbn1cbiIsIi8vIHFkbmFwcm8tc21pbGV5IOKAlCBvbmUgZmVlZGJhY2sgZW1vdGljb24gcmVuZGVyZWQgZnJvbSB0aGUgc21pbGVfaWNvbnMgU1ZHIHNldC5cbi8vIFdyYXBzIGEgc2luZ2xlIDxpbWc+OyBzaXplIGlzIGRyaXZlbiBieSB0aGUgLS1zbWlsZXktc2l6ZSBjdXN0b20gcHJvcGVydHlcbi8vIChzZXQgdmlhIHRoZSBgc2l6ZWAgYXR0cmlidXRlIG9yIG92ZXJyaWRkZW4gYnkgYSBwYXJlbnQsIGUuZy4gdGhlIHNtaWxleVxuLy8gc2VnbWVudC10aWxlIHZhcmlhbnQpLlxuXG4ucWRuYXByby1zbWlsZXkge1xuICAgIC0tc21pbGV5LXNpemU6IDU2cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMDtcbn1cblxuLy8gLnFkbmFwcm8tc21pbGV5X192aXN1YWwgd3JhcHMgdGhlIDxpbWc+IHNvIGlkbGUvcmVhY3Rpb24gdHJhbnNmb3JtcyBiZWxvd1xuLy8gbmV2ZXIgZmlnaHQgdGhlIGhvc3QncyBvd24gbGF5b3V0IGJveC4gUHJlc2VudCByZWdhcmRsZXNzIG9mIGBpbnRlcmFjdGl2ZWBcbi8vIChubyBzaXplIG9mIGl0cyBvd24g4oCUIGhhcm1sZXNzIHdoZW4gc3RhdGljKS5cbi5xZG5hcHJvLXNtaWxleV9fdmlzdWFsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNzglO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG59XG5cbi5xZG5hcHJvLXNtaWxleV9faW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogdmFyKC0tc21pbGV5LXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tc21pbGV5LXNpemUpO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8vIC0tLS0gaW50ZXJhY3RpdmU6IGlkbGUgd29iYmxlICsgdGFwLXJlYWN0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gT3B0LWluIHZpYSB0aGUgYGludGVyYWN0aXZlYCBhdHRyaWJ1dGUuIFNjb3BlZCBieSBgW2RhdGEtZmFjZV1gICh0aGVcbi8vIFJFU09MVkVEIGZhY2UsIHNldCBpbiBKUyksIG5ldmVyIGJ5IGNvbG91ci9lbW8tc3R5bGUg4oCUIHNvIHRoZSBzYW1lXG4vLyBjaG9yZW9ncmFwaHkgYXBwbGllcyBpZGVudGljYWxseSB3aGV0aGVyIHRoZSB1bmRlcmx5aW5nIGFzc2V0IGlzXG4vLyBuZXV0cmFsL2NvbG91cmVkLCBkZWZhdWx0L2V4cHJlc3NpdmUsIGFueSBzaXplLlxuLnFkbmFwcm8tc21pbGV5LS1pbnRlcmFjdGl2ZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ucWRuYXByby1zbWlsZXktLWludGVyYWN0aXZlOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuXG4ucWRuYXByby1zbWlsZXktLWludGVyYWN0aXZlW2RhdGEtZmFjZT1cInNhZFwiXSAucWRuYXByby1zbWlsZXlfX3Zpc3VhbCB7IGFuaW1hdGlvbjogcXNtLWlkbGUtc2FkIDQuNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7IH1cbi5xZG5hcHJvLXNtaWxleS0taW50ZXJhY3RpdmVbZGF0YS1mYWNlPVwibWVoXCJdIC5xZG5hcHJvLXNtaWxleV9fdmlzdWFsIHsgYW5pbWF0aW9uOiBxc20taWRsZS1tZWggNS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTsgfVxuLnFkbmFwcm8tc21pbGV5LS1pbnRlcmFjdGl2ZVtkYXRhLWZhY2U9XCJva1wiXSAucWRuYXByby1zbWlsZXlfX3Zpc3VhbCB7IGFuaW1hdGlvbjogcXNtLWlkbGUtb2sgMy42cyBlYXNlLWluLW91dCBpbmZpbml0ZTsgfVxuLnFkbmFwcm8tc21pbGV5LS1pbnRlcmFjdGl2ZVtkYXRhLWZhY2U9XCJzbWlsZVwiXSAucWRuYXByby1zbWlsZXlfX3Zpc3VhbCB7IGFuaW1hdGlvbjogcXNtLWlkbGUtc21pbGUgMi44cyBlYXNlLWluLW91dCBpbmZpbml0ZTsgfVxuLnFkbmFwcm8tc21pbGV5LS1pbnRlcmFjdGl2ZVtkYXRhLWZhY2U9XCJ5YXlcIl0gLnFkbmFwcm8tc21pbGV5X192aXN1YWwgeyBhbmltYXRpb246IHFzbS1pZGxlLXlheSAyLjFzIGVhc2UtaW4tb3V0IGluZmluaXRlOyB9XG5cbkBrZXlmcmFtZXMgcXNtLWlkbGUtc2FkIHtcbiAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSByb3RhdGUoMGRlZyk7IH1cbiAgICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMnB4KSByb3RhdGUoLTIuNWRlZyk7IH1cbn1cbkBrZXlmcmFtZXMgcXNtLWlkbGUtbWVoIHtcbiAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSByb3RhdGUoMGRlZyk7IH1cbiAgICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KSByb3RhdGUoMWRlZyk7IH1cbn1cbkBrZXlmcmFtZXMgcXNtLWlkbGUtb2sge1xuICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG4gICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpOyB9XG59XG5Aa2V5ZnJhbWVzIHFzbS1pZGxlLXNtaWxlIHtcbiAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSByb3RhdGUoMGRlZyk7IH1cbiAgICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCkgcm90YXRlKDIuNWRlZyk7IH1cbn1cbkBrZXlmcmFtZXMgcXNtLWlkbGUteWF5IHtcbiAgICAwJSwgMjAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHJvdGF0ZSgwZGVnKTsgfVxuICAgIDEwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNnB4KSByb3RhdGUoLTRkZWcpOyB9XG4gICAgMzAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02cHgpIHJvdGF0ZSg0ZGVnKTsgfVxufVxuXG4vLyBPbmUtc2hvdCByZWFjdGlvbiBvbiB0YXAg4oCUIHRvZ2dsZWQgYnkgSlMgKC5pcy1yZWFjdGluZyksIHJlbW92ZWQgb24gYW5pbWF0aW9uZW5kLlxuLy8gU3VzcGVuZHMgdGhlIGlkbGUgbG9vcCBmb3IgaXRzIGR1cmF0aW9uIChhbmltYXRpb24gc2hvcnRoYW5kIG92ZXJyaWRlcyBpdCkuXG4ucWRuYXByby1zbWlsZXktLWludGVyYWN0aXZlW2RhdGEtZmFjZT1cInNhZFwiXSAucWRuYXByby1zbWlsZXlfX3Zpc3VhbC5pcy1yZWFjdGluZyB7IGFuaW1hdGlvbjogcXNtLXJlYWN0LXNhZCAwLjcycyBjdWJpYy1iZXppZXIoMC4zNiwgMCwgMC42NiwgLTAuMDYpIDE7IH1cbi5xZG5hcHJvLXNtaWxleS0taW50ZXJhY3RpdmVbZGF0YS1mYWNlPVwibWVoXCJdIC5xZG5hcHJvLXNtaWxleV9fdmlzdWFsLmlzLXJlYWN0aW5nIHsgYW5pbWF0aW9uOiBxc20tcmVhY3QtbWVoIDAuNXMgZWFzZS1pbi1vdXQgMTsgfVxuLnFkbmFwcm8tc21pbGV5LS1pbnRlcmFjdGl2ZVtkYXRhLWZhY2U9XCJva1wiXSAucWRuYXByby1zbWlsZXlfX3Zpc3VhbC5pcy1yZWFjdGluZyB7IGFuaW1hdGlvbjogcXNtLXJlYWN0LW9rIDAuNXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuMiwgMC42NCwgMSkgMTsgfVxuLnFkbmFwcm8tc21pbGV5LS1pbnRlcmFjdGl2ZVtkYXRhLWZhY2U9XCJzbWlsZVwiXSAucWRuYXByby1zbWlsZXlfX3Zpc3VhbC5pcy1yZWFjdGluZyB7IGFuaW1hdGlvbjogcXNtLXJlYWN0LXNtaWxlIDAuNnMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpIDE7IH1cbi5xZG5hcHJvLXNtaWxleS0taW50ZXJhY3RpdmVbZGF0YS1mYWNlPVwieWF5XCJdIC5xZG5hcHJvLXNtaWxleV9fdmlzdWFsLmlzLXJlYWN0aW5nIHsgYW5pbWF0aW9uOiBxc20tcmVhY3QteWF5IDAuODVzIGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjY0LCAxKSAxOyB9XG5cbkBrZXlmcmFtZXMgcXNtLXJlYWN0LXNhZCB7XG4gICAgMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgcm90YXRlKDBkZWcpIHNjYWxlKDEpOyB9XG4gICAgMjIlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDNweCkgcm90YXRlKC05ZGVnKSBzY2FsZSgwLjk2KTsgfVxuICAgIDQ0JSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzcHgpIHJvdGF0ZSg3ZGVnKSBzY2FsZSgwLjk2KTsgfVxuICAgIDY2JSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzcHgpIHJvdGF0ZSgtNWRlZykgc2NhbGUoMC45Nyk7IH1cbiAgICA4NSUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMnB4KSByb3RhdGUoMWRlZykgc2NhbGUoMC45OSk7IH1cbiAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDJweCkgcm90YXRlKDBkZWcpIHNjYWxlKDEpOyB9XG59XG5Aa2V5ZnJhbWVzIHFzbS1yZWFjdC1tZWgge1xuICAgIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgc2NhbGUoMSk7IH1cbiAgICAzMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgtNmRlZykgc2NhbGUoMS4wMik7IH1cbiAgICA2MCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSg0ZGVnKSBzY2FsZSgxLjAxKTsgfVxuICAgIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSBzY2FsZSgxKTsgfVxufVxuQGtleWZyYW1lcyBxc20tcmVhY3Qtb2sge1xuICAgIDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpOyB9XG4gICAgMzUlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDZweCkgc2NhbGUoMC45NSk7IH1cbiAgICA2NSUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCkgc2NhbGUoMS4wMyk7IH1cbiAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpOyB9XG59XG5Aa2V5ZnJhbWVzIHFzbS1yZWFjdC1zbWlsZSB7XG4gICAgMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7IH1cbiAgICAzMiUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMikgdHJhbnNsYXRlWSgtOHB4KTsgfVxuICAgIDU4JSB7IHRyYW5zZm9ybTogc2NhbGUoMC45NSkgdHJhbnNsYXRlWSgycHgpOyB9XG4gICAgNzglIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjA2KSB0cmFuc2xhdGVZKC0ycHgpOyB9XG4gICAgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsgfVxufVxuQGtleWZyYW1lcyBxc20tcmVhY3QteWF5IHtcbiAgICAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKSByb3RhdGUoMGRlZyk7IH1cbiAgICAxNCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMjQpIHRyYW5zbGF0ZVkoLTEzcHgpIHJvdGF0ZSgtN2RlZyk7IH1cbiAgICAzMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOTMpIHRyYW5zbGF0ZVkoMCkgcm90YXRlKDVkZWcpOyB9XG4gICAgNDYlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjE3KSB0cmFuc2xhdGVZKC0xMHB4KSByb3RhdGUoLTRkZWcpOyB9XG4gICAgNjIlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjk2KSB0cmFuc2xhdGVZKDApIHJvdGF0ZSgyZGVnKTsgfVxuICAgIDgyJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4wNCkgdHJhbnNsYXRlWSgtMnB4KSByb3RhdGUoMGRlZyk7IH1cbiAgICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDApIHJvdGF0ZSgwZGVnKTsgfVxufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5xZG5hcHJvLXNtaWxleV9fdmlzdWFsIHsgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7IH1cbn1cbiIsIi8vIHFkbmFwcm8tc21pbGV5LXBpY2tlciDigJQgdGhlIFwiRmVlZGJhY2sgKGVtb2ppKVwiIGFuc3dlciByb3c6IE4gcWRuYXByby1zbWlsZXlcbi8vIGF0b21zIChpbnRlcmFjdGl2ZSkgd2l0aCBleGNsdXNpdmUgcmFkaW9ncm91cCBzZWxlY3Rpb24uIFRoaXMgY29tcG9uZW50IG93bnNcbi8vIE9OTFkgdGhlIHJvdyBsYXlvdXQsIHNwYWNpbmcgYW5kIHNlbGVjdGlvbiBjaHJvbWUg4oCUIGV2ZXJ5IGVtb3RpY29uIGFzc2V0XG4vLyAoY29sb3VyLCBhcnQgc3R5bGUsIHNpemUpIGNvbWVzIHN0cmFpZ2h0IGZyb20gcWRuYXByby1zbWlsZXksIHNvIGl0cyBvd25cbi8vIGNvbG91ciB0b2tlbnMvZGFyay1tb2RlIHJ1bGVzIGFscmVhZHkgYXBwbHkgdW5jaGFuZ2VkIGhlcmUuXG5cbi5xZG5hcHJvLXNtaWxleS1waWNrZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ucWRuYXByby1zbWlsZXktcGlja2VyIC5xc3AtdHJhY2sge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogNHB4O1xufVxuXG4ucWRuYXByby1zbWlsZXktcGlja2VyIC5xc3Atb3B0aW9uIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA4cHggNHB4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTZzIGVhc2UsIGJvcmRlci1jb2xvciAwLjE2cyBlYXNlO1xufVxuLy8gSG92ZXIgZm9sbG93cyB0aGUgZmxvdyB0aGVtZSB0b28gKEtpbSwgMTIuMDcuMjAyNik6IGEgbGlnaHRlciB0aW50IG9mIHRoZVxuLy8gc2VsZWN0ZWQtc3RhdGUgY29sb3VyIGluc3RlYWQgb2YgYSBmaXhlZCBsYXZlbmRlciBzdXJmYWNlIHRoYXQgY2xhc2hlcyB3aXRoXG4vLyB0aGVtZWQgZmxvd3MuIEluIHRoZSBibzIgbGlicmFyeSAtLXRoZW1lLWJ0bi1jb2xvciBpcyBhYnNlbnQgYW5kIHRoZSBicmFuZFxuLy8gcHVycGxlIGZhbGxiYWNrIGFwcGxpZXMuXG4ucWRuYXByby1zbWlsZXktcGlja2VyIC5xc3Atb3B0aW9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKSA4JSwgdHJhbnNwYXJlbnQpO1xufVxuLy8gU2VsZWN0ZWQgc3RhdGUgZm9sbG93cyB0aGUgZmxvdydzIHJ1bnRpbWUgdGhlbWUgY29sb3VyICgxMi4wNy4yMDI2IGZpeCxcbi8vIEtpbTogdGhpcyB1c2VkIHRvIGJlIGEgZml4ZWQgbGlnaHQtcHVycGxlIGJveCB0aGF0IGNsYXNoZWQgd2l0aCB0aGVtZWRcbi8vIGZsb3dzLCBlLmcuIGEgcGluayB0aGVtZSBzaG93aW5nIGEgc3RhcmssIG9mZi1icmFuZCBib3gpLiBgLS10aGVtZS1idG4tY29sb3JgXG4vLyBpcyBzZXQgYnkgdGhlIGZsb3cgcnVudGltZTsgZmFsbHMgYmFjayB0byB0aGUgYnJhbmQgcHVycGxlIGV2ZXJ5d2hlcmUgaXRcbi8vIGlzbid0IGRlZmluZWQgKGUuZy4gdGhlIGJvMiBjb21wb25lbnQgbGlicmFyeSwgd2hpY2ggaGFzIG5vIHRoZW1lIGNvbnRleHQpXG4vLyDigJQgc2FtZSBmYWxsYmFjayBjaGFpbiBhbHJlYWR5IHVzZWQgYnkgcWRuYXByby1hbnN3ZXItYnV0dG9uLy1zY29yZS1zY2FsZS5cbi5xZG5hcHJvLXNtaWxleS1waWNrZXIgLnFzcC1vcHRpb24uaXMtYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKSAxNSUsIHRyYW5zcGFyZW50KTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXRoZW1lLWJ0bi1jb2xvciwgIzQwNDk5YSk7XG59XG4ucWRuYXByby1zbWlsZXktcGlja2VyIC5xc3Atb3B0aW9uOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi5xZG5hcHJvLXNtaWxleS1waWNrZXIgLnFzcC1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG4ucWRuYXByby1zbWlsZXktcGlja2VyIC5xc3Atb3B0aW9uLmlzLWFjdGl2ZSAucXNwLWxhYmVsIHtcbiAgICBjb2xvcjogdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKTtcbn1cblxuLnFkbmFwcm8tc21pbGV5LXBpY2tlci5pcy1kaXNhYmxlZCAucXNwLW9wdGlvbiB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQyMHB4KSB7XG4gICAgLnFkbmFwcm8tc21pbGV5LXBpY2tlciAucXNwLXRyYWNrIHsgZ2FwOiAwOyB9XG4gICAgLnFkbmFwcm8tc21pbGV5LXBpY2tlciAucXNwLWxhYmVsIHsgZm9udC1zaXplOiA5LjVweDsgfVxufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvc2VsZWN0L19zZWxlY3QtY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiAgcWRuYXByby1zZWxlY3Qg4oCUIGNvbXBpbGVkIGZyb20gX3NlbGVjdC5zY3NzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnFkbmFwcm8tc2VsZWN0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4vKiBEaXJlY3QgY2hpbGRyZW4gb2YgdGhlIHNlbGVjdCBhcmUgdGhlIFNPVVJDRSBsaXN0IOKAlCBoaWRkZW4gdW50aWwgdGhlIHBvcG92ZXJcbiAgIG1vdmVzIHRoZW0gaW4uIGBxZG5hcHJvLW1lbnUtc2VwYXJhdG9yYCBpcyB0aGUga2V5bGluZSAocWRuYS1tZW51LmpzKTsgdGhlXG4gICBgcWRuYXByby1tZW51LWRpdmlkZXJgIHRoYXQgdXNlZCB0byBiZSBsaXN0ZWQgaGVyZSB3YXMgbmV2ZXIgYSByZWFsIGVsZW1lbnQsXG4gICBzbyBpdCBoaWQgbm90aGluZyBhbmQgcmVuZGVyZWQgbm90aGluZy4gW0tpbSAwNS4wOC4yMDI2XSAqL1xuLnFkbmFwcm8tc2VsZWN0ID4gcWRuYXByby1tZW51LWl0ZW0sXG4ucWRuYXByby1zZWxlY3QgPiBxZG5hcHJvLW1lbnUtc2VjdGlvbi1oZWFkaW5nLFxuLnFkbmFwcm8tc2VsZWN0ID4gcWRuYXByby1tZW51LXNlcGFyYXRvciB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4ucWRuYXByby1zZWxlY3QtdHJpZ2dlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ucWRuYXByby1zZWxlY3QtcG9wb3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWdyZXktMzAwKTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgcGFkZGluZzogNHB4O1xuICAgIG1heC1oZWlnaHQ6IDMyMHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAgIDAgMXB4IDNweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA4KSxcbiAgICAgICAgMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA0cHg7XG4gICAgLyogSGlkZSB0aGUgc2Nyb2xsYmFyIOKAlCBjb250ZW50IHN0aWxsIHNjcm9sbHMuIEZsYXQgc2Nyb2xsYmFyLWhpZGUgKHRoZVxuICAgICAgIHFkbmEtc2Nyb2xsYmFyLWhpZGRlbiBtaXhpbiBpc24ndCBpbiBzY29wZSBpbiB0aGUgY29tcG9uZW50cy12MiBidW5kbGUsXG4gICAgICAgc2FtZSByZWFzb24gYXMgX2JvdHRvbS1zaGVldC5zY3NzKS4gW0tpbSAyMDI2LTA3LTIwXSAqL1xuICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTsgLyogRmlyZWZveCAqL1xuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTsgLyogb2xkIEVkZ2UvSUUgKi9cbn1cbi5xZG5hcHJvLXNlbGVjdC1wb3BvdmVyOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IG5vbmU7IC8qIENocm9tZSAvIFNhZmFyaSAqL1xufVxuLyogYGRlbnNlYCBwb3BvdmVyIOKAlCB0aWdodGVuIHRoZSByb3cgc3BhY2luZyAocmFkaW8gLyBhdmF0YXIgLyBsYWJlbCBjbG9zZXIpIGZvclxuICAgc2VsZWN0cyB0aGF0IG9wdCBpbiB2aWEgdGhlIGBkZW5zZWAgYXR0cmlidXRlIChlLmcuIHRoZSBBdWRpdHJpdG1lIHVzZXJcbiAgIHBpY2tlcnMpLiBTY29wZWQgdG8gdGhpcyBwb3BvdmVyIG1vZGlmaWVyIHNvIG5vIG1lbnUtaXRlbSBlbHNld2hlcmUgaXNcbiAgIGFmZmVjdGVkLiBbS2ltIDIwMjYtMDctMjBdICovXG4ucWRuYXByby1zZWxlY3QtcG9wb3Zlci0tZGVuc2UgLnFkbmFwcm8tbWVudS1pdGVtIHtcbiAgICBnYXA6IDZweDtcbn1cbi5xZG5hcHJvLXNlbGVjdC1wb3BvdmVyLS1kZW5zZSAucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLXdpdGgtYXZhdGFyIC5tZW51LWl0ZW0tYXZhdGFyLXdyYXAge1xuICAgIHBhZGRpbmc6IDAgMXB4O1xufVxuLnFkbmFwcm8tc2VsZWN0LXBvcG92ZXIgLnFkbmFwcm8tc2VsZWN0LXNlYXJjaCB7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICB0b3A6IDA7XG4gICAgei1pbmRleDogMTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIHBhZGRpbmc6IDRweDtcbiAgICBtYXJnaW46IC00cHggLTRweCAwIC00cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLWNhcmQpO1xufVxuLnFkbmFwcm8tc2VsZWN0LXBvcG92ZXIgLnFkbmFwcm8tc2VsZWN0LW1lbnUge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi8qIHBvcG92ZXItbWF4LWhlaWdodD1cIk5cIiDigJQgdGhlIHBvcG92ZXIgaXMgY2FwcGVkLCBzbyB0aGUgTUVOVSBiZWNvbWVzIHRoZSBzY3JvbGxlclxuICAgaW5zdGVhZCBvZiB0aGUgcG9wb3ZlciByb290LiBXaXRob3V0IHRoaXMgdGhlIHJvb3Qgc2Nyb2xscywgYW5kIGEgYHNlYXJjaGFibGVgXG4gICBzZWxlY3QgdGhlbiBzY3JvbGxzIGl0cyBvd24gc2VhcmNoIGZpZWxkIG91dCBvZiB2aWV3IHRoZSBtb21lbnQgeW91IHNjcm9sbCB0aGVcbiAgIGxpc3Qg4oCUIHByZWNpc2VseSB3aGVuIHlvdSBuZWVkIGl0LiBxZG5hLXNlbGVjdC5qcyBzZXRzIG92ZXJmbG93LXk6IGhpZGRlbiBpbmxpbmVcbiAgIG9uIHRoZSByb290IHdoZW4gY2FwcGVkLCBhbmQgYWRkcyB0aGlzIG1vZGlmaWVyIGNsYXNzLiBbS2ltIDA1LjA4LjIwMjZdICovXG4ucWRuYXByby1zZWxlY3QtcG9wb3Zlci0tY2FwcGVkIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnFkbmFwcm8tc2VsZWN0LXBvcG92ZXItLWNhcHBlZCAucWRuYXByby1zZWxlY3Qtc2VhcmNoIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbn1cbi5xZG5hcHJvLXNlbGVjdC1wb3BvdmVyLS1jYXBwZWQgLnFkbmFwcm8tc2VsZWN0LW1lbnUge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIC8qIFdpdGhvdXQgbWluLWhlaWdodDowIGEgZmxleCBpdGVtIHJlZnVzZXMgdG8gc2hyaW5rIGJlbG93IGl0cyBjb250ZW50LCBzbyB0aGVcbiAgICAgICBtZW51IHdvdWxkIHB1c2ggcGFzdCB0aGUgY2FwIGluc3RlYWQgb2Ygc2Nyb2xsaW5nIGluc2lkZSBpdC4gKi9cbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xuICAgIHNjcm9sbGJhci1jb2xvcjogcmdiYSg2NCwgNzMsIDE1NCwgLjM1KSB0cmFuc3BhcmVudDtcbn1cbi5xZG5hcHJvLXNlbGVjdC1wb3BvdmVyLS1jYXBwZWQgLnFkbmFwcm8tc2VsZWN0LW1lbnU6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogN3B4O1xufVxuLnFkbmFwcm8tc2VsZWN0LXBvcG92ZXItLWNhcHBlZCAucWRuYXByby1zZWxlY3QtbWVudTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLnFkbmFwcm8tc2VsZWN0LXBvcG92ZXItLWNhcHBlZCAucWRuYXByby1zZWxlY3QtbWVudTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNjQsIDczLCAxNTQsIC4zNSk7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLnFkbmFwcm8tc2VsZWN0LXBvcG92ZXItLWNhcHBlZCAucWRuYXByby1zZWxlY3QtbWVudTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNjQsIDczLCAxNTQsIC41NSk7XG59XG5cbi5xZG5hcHJvLXNlbGVjdC1wb3BvdmVyIC5xZG5hcHJvLXNlbGVjdC1lbXB0eSB7XG4gICAgcGFkZGluZzogMTZweCAxMnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkKTtcbn1cblxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXNlbGVjdC1wb3BvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMWYyMDI4O1xuICAgIGJvcmRlci1jb2xvcjogIzU2NWI2NjtcbiAgICBib3gtc2hhZG93OlxuICAgICAgICAwIDFweCAzcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4zMCksXG4gICAgICAgIDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC40MCk7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tc2VsZWN0LXBvcG92ZXIgLnFkbmFwcm8tc2VsZWN0LXNlYXJjaCB7XG4gICAgYmFja2dyb3VuZDogIzFmMjAyODtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjNDA0NDRkO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXNlbGVjdC1wb3BvdmVyIC5xZG5hcHJvLXNlbGVjdC1lbXB0eSB7XG4gICAgY29sb3I6ICM4OThlOTk7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogIHRvdWNoIG1vZGUg4oCUIG9wdC1pbiB2aWEgYSBgdG91Y2hgIGF0dHJpYnV0ZSBvbiA8cWRuYXByby1zZWxlY3Q+XG4gKiAgKFBXQSBmbG93IG9ubHk7IG5ldmVyIHNldCBpbiB0aGUgYmFja29mZmljZSwgc28gZGVza3RvcCBzZWxlY3RzIGFyZVxuICogIGJ5dGUtZm9yLWJ5dGUgdW5hZmZlY3RlZCkuIHFkbmEtc2VsZWN0LmpzIGFkZHMgdGhlIG1vZGlmaWVyIGNsYXNzXG4gKiAgQkVMT1cgdG8gdGhlIHBvcG92ZXIgUk9PVCBpdHNlbGYgKG5vdCB0aGUgaG9zdCkgYmVjYXVzZSB0aGUgcG9wb3ZlclxuICogIGlzIHBvcnRhbGVkIHRvIGRvY3VtZW50LmJvZHkg4oCUIGEgYC5mbG93IOKApmAgYW5jZXN0b3Igc2VsZWN0b3Igd291bGRcbiAqICBuZXZlciByZWFjaCBpdCB0aGVyZS4gVmVyaWZpZWQgY3VycmVudCB2YWx1ZXMgYmVmb3JlIG92ZXJyaWRpbmc6XG4gKiAgb3B0aW9uIHJvdyB3YXMgbWluLWhlaWdodCA0MHB4IC8gcGFkZGluZyA4cHggMTZweCAvIDE0cHggbGFiZWxcbiAqICAoX21lbnUtaXRlbS5zY3NzIG1lbnUtaXRlbS1zaXplLWRlZmF1bHQpOyBjaGVja2JveC9yYWRpbyBpbmRpY2F0b3JcbiAqICB3YXMgMTZweCAoX2NoZWNrYm94LnNjc3MgLyBfcmFkaW8uc2NzcyBkZWZhdWx0IC0tY2Itc2l6ZS8tLXJiLXNpemUpO1xuICogIHNlYXJjaCBpbnB1dCB0ZXh0IHdhcyAxNHB4IChpbmhlcml0ZWQgLnFkbmFwcm8taW5wdXQgZGVmYXVsdCksIE5PVFxuICogIDEzcHggYXMgZmlyc3QgYXNzdW1lZCDigJQgc3RpbGwgYnVtcGVkIHRvIDE2cHggc2luY2UgYW55dGhpbmcgdW5kZXJcbiAqICAxNnB4IHRyaWdnZXJzIGlPUyBTYWZhcmkncyBhdXRvLXpvb20tb24tZm9jdXMuIFsyMDI2LTA3LTEzXVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIE9wdGlvbiByb3dzIOKAlCBNYXRlcmlhbC9BcHBsZSB0b3VjaCBndWlkYW5jZTogPj00OHB4IHRhcCB0YXJnZXQsIDE2cHhcbiAgIGxhYmVsIChuZXZlciBzbWFsbGVyIOKAlCByZWFkYWJpbGl0eSBhdCBhcm0ncyBsZW5ndGgpLiAqL1xuLnFkbmFwcm8tc2VsZWN0LXBvcG92ZXItLXRvdWNoIC5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0tc2l6ZS1kZWZhdWx0IHtcbiAgICAvKiBtaW4taGVpZ2h0IChub3QgZml4ZWQgaGVpZ2h0KSBpcyBhIGZsb29yIOKAlCB0aGUgcm93IGdyb3dzIHdoZW4gYSBsb25nXG4gICAgICAgbGFiZWwgd3JhcHMgdG8gdHdvIGxpbmVzLiBhbGlnbi1pdGVtczogY2VudGVyIChmcm9tIF9tZW51LWl0ZW0uc2NzcylcbiAgICAgICBrZWVwcyB0aGUgdG9nZ2xlIGNlbnRyZWQgYWdhaW5zdCB0aGUgdGFsbGVyIHJvdy4gKi9cbiAgICBtaW4taGVpZ2h0OiA0OHB4O1xuICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG59XG4ucWRuYXByby1zZWxlY3QtcG9wb3Zlci0tdG91Y2ggLnFkbmFwcm8tbWVudS1pdGVtIC5tZW51LWl0ZW0tbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAvKiBMZXQgbG9uZyBvcHRpb24gbGFiZWxzIFdSQVAgaW5zdGVhZCBvZiB0cnVuY2F0aW5nIHdpdGggYW4gZWxsaXBzaXMg4oCUXG4gICAgICAgdGhlIHdpZGVyIGJyZWFrLW91dCBwb3BvdmVyIHBsdXMgd3JhcHBpbmcgbWVhbnMgYSBmdWxsIFwiQW50d29vcmRvcHRpZVwiXG4gICAgICAgbGFiZWwgc2hvd3MuIE92ZXJyaWRlcyB0aGUgYmFzZSAubWVudS1pdGVtLWxhYmVsIG5vd3JhcC9lbGxpcHNpcy4gKi9cbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHRleHQtb3ZlcmZsb3c6IGNsaXA7XG59XG5cbi8qIENoZWNrYm94L3JhZGlvIGluZGljYXRvciDigJQgYnVtcCBmcm9tIHRoZSAxNnB4IGRlZmF1bHQgdG93YXJkIHRoZSAyOHB4XG4gICBhbHJlYWR5IGVzdGFibGlzaGVkIGJ5IHFkbmFwcm8tY2hlY2tib3gncyBvd24gc2l6ZT1cInRvdWNoLXNtXCIgKGRlbnNlLXJvd1xuICAgdG91Y2ggY29udmVudGlvbiwgc2VlIF9jaGVja2JveC5zY3NzKS4gTWFyay9kb3Qgc2NhbGUgd2l0aCBpdC4gKi9cbi5xZG5hcHJvLXNlbGVjdC1wb3BvdmVyLS10b3VjaCAucWRuYXByby1tZW51LWl0ZW0gcWRuYXByby1jaGVja2JveCB7XG4gICAgLS1jYi1zaXplOiAyOHB4O1xufVxuLnFkbmFwcm8tc2VsZWN0LXBvcG92ZXItLXRvdWNoIC5xZG5hcHJvLW1lbnUtaXRlbSBxZG5hcHJvLWNoZWNrYm94IC5jaGVja2JveC1tYXJrIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG59XG4ucWRuYXByby1zZWxlY3QtcG9wb3Zlci0tdG91Y2ggLnFkbmFwcm8tbWVudS1pdGVtIHFkbmFwcm8tY2hlY2tib3ggLmNoZWNrYm94LW1hcmstZGFzaCB7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgaGVpZ2h0OiAzcHg7XG59XG4ucWRuYXByby1zZWxlY3QtcG9wb3Zlci0tdG91Y2ggLnFkbmFwcm8tbWVudS1pdGVtIHFkbmFwcm8tcmFkaW8ge1xuICAgIC0tcmItc2l6ZTogMjhweDtcbn1cbi5xZG5hcHJvLXNlbGVjdC1wb3BvdmVyLS10b3VjaCAucWRuYXByby1tZW51LWl0ZW0gcWRuYXByby1yYWRpbyAucmFkaW8tZG90IHtcbiAgICB3aWR0aDogN3B4O1xuICAgIGhlaWdodDogN3B4O1xufVxuXG4vKiBBIGxpdHRsZSBleHRyYSByb29tIGJldHdlZW4gcm93cyBvbmNlIHRoZXkncmUgdGFsbGVyLiAqL1xuLnFkbmFwcm8tc2VsZWN0LXBvcG92ZXItLXRvdWNoIC5xZG5hcHJvLXNlbGVjdC1tZW51IHtcbiAgICBnYXA6IDZweDtcbn1cblxuLyogU2VhcmNoIGlucHV0IOKAlCA+PTE2cHggaXMgQ1JJVElDQUwgKGFueXRoaW5nIHNtYWxsZXIgbWFrZXMgaU9TIFNhZmFyaVxuICAgYXV0by16b29tIG9uIGZvY3VzKS4gRXh0cmEgaGVpZ2h0L3BhZGRpbmcgKyBleHBsaWNpdCBzcGVjaWZpY2l0eSAodHdvXG4gICBjbGFzc2VzIG9uIHRoZSBzZWFyY2ggZWxlbWVudCBpdHNlbGYpIHNvIHRoaXMgcmVsaWFibHkgYmVhdHNcbiAgIF9pbnB1dC5zY3NzJ3Mgb3duIGAucWRuYXByby1pbnB1dC5pbnB1dC1zaXplLXNtYWxsIC5pbnB1dC1maWVsZGAgcnVsZVxuICAgcmVnYXJkbGVzcyBvZiBwYXJ0aWFsIGltcG9ydCBvcmRlci4gKi9cbi5xZG5hcHJvLXNlbGVjdC1wb3BvdmVyLS10b3VjaCAucWRuYXByby1zZWxlY3Qtc2VhcmNoLmlucHV0LXNpemUtc21hbGwgLmlucHV0LWZpZWxkIHtcbiAgICBtaW4taGVpZ2h0OiA0OHB4O1xuICAgIHBhZGRpbmc6IDAgMTRweDtcbn1cbi5xZG5hcHJvLXNlbGVjdC1wb3BvdmVyLS10b3VjaCAucWRuYXByby1zZWxlY3Qtc2VhcmNoIC5pbnB1dC1uYXRpdmUge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbn1cbiIsIi8vIHNjc3MvY29tcG9uZW50cy92Mi9zaGFyZS9fc2hhcmUuc2Nzc1xuLy8gU3R5bGVzIGZvciB0aGUgdW5pdmVyc2FsIHNoYXJlIGZlYXR1cmU6IHRoZSBRZG5hU2hhcmUgZGlhbG9nIGJvZHlcbi8vICh3ZWIvanMvcWRuYS1zaGFyZS5qcykgKyB0aGUgcWRuYXByby1zaGFyZS1idG4gY29tcG9uZW50XG4vLyAod2ViL2pzL2NvbXBvbmVudHMvdjIvc2hhcmUvcWRuYS1zaGFyZS1idG4uanMpLlxuLy9cbi8vIFVzZXMgZGVzaWduLXRva2VucyAod2l0aCBidWlsdC1pbiBkYXJrLW1vZGUgb3ZlcnJpZGVzKSBmb3IgdGhlbWluZy5cbi8vIENvbXBpbGVkIGludG8gd2ViL2Nzcy92MS9zdHlsZS12MS5jc3MgYnkgYGd1bHAgc2Fzcy12MWAuXG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gIFNoYXJlIGRpYWxvZyBib2R5IChpbnNpZGUgPHFkbmFwcm8tbW9kYWwgY2xhc3M9XCJxZG5hcHJvLXNoYXJlLW1vZGFsXCI+KVxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4ucWRuYXByby1zaGFyZS1ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBzYW5zLXNlcmlmO1xufVxuXG4vLyBDb21wbGlhbmNlIHdhcm5pbmcgc2hvd24gZm9yIGBzZW5zaXRpdmVgIGNvbnRlbnQuXG4ucWRuYXByby1zaGFyZS13YXJuIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy10YWctd2FybmluZy1iZyk7XG4gICAgY29sb3I6IHZhcigtLWMtdGFnLXdhcm5pbmctdGV4dCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy13YXJuaW5nLWJyaWdodC1ib3JkZXIpO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbn1cblxuLy8gTm90ZSBleHBsYWluaW5nIGZpbGVzIG9ubHkgcmlkZSBuYXRpdmUvZG93bmxvYWQuXG4ucWRuYXByby1zaGFyZS1ub3RlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xufVxuXG4ucWRuYXByby1zaGFyZS1jaGFubmVscyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNnB4O1xufVxuXG4ucWRuYXByby1zaGFyZS1jaGFubmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDExcHggMTJweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5KTtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEyMG1zIGVhc2Utb3V0LCBib3JkZXItY29sb3IgMTIwbXMgZWFzZS1vdXQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS0xMDApO1xuICAgIH1cblxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1mb2N1cy1yaW5nKTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTUwKTtcbiAgICB9XG59XG5cbi5xZG5hcHJvLXNoYXJlLWNoYW5uZWwtaWNvbiB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG5cbi5xZG5hcHJvLXNoYXJlLWNoYW5uZWwtbGFiZWwge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xufVxuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vICBxZG5hcHJvLXNoYXJlLWJ0biAgKHRoZSByZXVzYWJsZSBzaGFyZSBidXR0b24pXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5xZG5hcHJvLXNoYXJlLWJ0biB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA4cHggMTRweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEyMG1zIGVhc2Utb3V0LCBib3JkZXItY29sb3IgMTIwbXMgZWFzZS1vdXQsIGNvbG9yIDEyMG1zIGVhc2Utb3V0O1xuXG4gICAgLnNoYXJlLWJ0bi1pY29uIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGZsZXgtc2hyaW5rOiAwOyB9XG5cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tZm9jdXMtcmluZyk7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gICAgfVxuXG4gICAgLy8gSWNvbi1vbmx5OiBzcXVhcmUsIGNlbnRlcmVkLlxuICAgICYuc2hhcmUtYnRuLWljb24tb25seSB7XG4gICAgICAgIGdhcDogMDtcbiAgICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgfVxuXG4gICAgJi5zaGFyZS1idG4tZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbn1cblxuLy8gUHJpbWFyeSDigJQgZmlsbGVkIHB1cnBsZS5cbi5xZG5hcHJvLXNoYXJlLWJ0bi5zaGFyZS1idG4tcHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgICAmOmhvdmVyICB7IGJhY2tncm91bmQ6IHZhcigtLWMtYnJhbmQtcHVycGxlLWhvdmVyKTsgfVxuICAgICY6YWN0aXZlIHsgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC1wdXJwbGUtcHJlc3MpOyB9XG59XG5cbi8vIFN1YnRsZSAoZGVmYXVsdCkg4oCUIHRyYW5zcGFyZW50LCBwdXJwbGUgaWNvbiwgbGlnaHQgaG92ZXIuXG4ucWRuYXByby1zaGFyZS1idG4uc2hhcmUtYnRuLXN1YnRsZSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gICAgLnNoYXJlLWJ0bi1pY29uIHsgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7IH1cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKTsgfVxufVxuXG4vLyBTZWNvbmRhcnkg4oCUIGJvcmRlcmVkLlxuLnFkbmFwcm8tc2hhcmUtYnRuLnNoYXJlLWJ0bi1zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5KTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYm9yZGVyLWNhcmQpO1xuICAgIC5zaGFyZS1idG4taWNvbiB7IGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApOyB9XG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZC1ob3Zlcik7IH1cbn1cblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyAgU2hhcmUg4oaSIGluYm94IHJlY2lwaWVudCBwaWNrZXIgKHdlYi9qcy9xZG5hLXNoYXJlLWluYm94LmpzKVxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4ucWRuYXByby1zaGFyZS1pbmJveC1ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMHB4O1xuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ucWRuYXByby1zaGFyZS1pbmJveC1saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWF4LWhlaWdodDogNDZ2aDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG1hcmdpbjogMCAtNHB4O1xuICAgIHBhZGRpbmc6IDAgNHB4O1xufVxuXG4vKiBQaWNrLW1vZGUgaGVhZGVyIHNsb3Q6IGN1c3RvbSBmaWVsZHMgKGZyZXF1ZW50aWUgKyBzZXQpIGJvdmVuIGRlIFRlYW1zL1BlcnNvbmVuLVxuICAgc2VjdGllcy4gT25kZXJyYW5kIHNjaGVpZHQgemUgdmFuIGRlIHpvZWsvbGlqc3QuIFtKYW4gMjAyNi0wNy0xMV0gKi9cbi5xZG5hcHJvLXNoYXJlLWluYm94LWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLCAjZTZlNGYyKTtcbn1cbi5xZG5hcHJvLXNoYXJlLWluYm94LWhlYWRlciAubWRhc2gtZmxkIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAzcHg7IH1cbi5xZG5hcHJvLXNoYXJlLWluYm94LWhlYWRlciBsYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMC41cHg7IGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjY4ODQpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAuMDRlbTsgcGFkZGluZy1sZWZ0OiAycHg7XG59XG4ucWRuYXByby1zaGFyZS1pbmJveC1oZWFkZXIgc2VsZWN0IHtcbiAgICBmb250LXNpemU6IDEzcHg7IGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZyk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXRyZWUpOyBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7IHBhZGRpbmc6IDhweCAxMnB4OyB3aWR0aDogMTAwJTsgY3Vyc29yOiBwb2ludGVyO1xufVxuLnFkbmFwcm8tc2hhcmUtaW5ib3gtaGVhZGVyIHNlbGVjdDpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IGJvcmRlci1jb2xvcjogdmFyKC0tYy1zaWRlYmFyLWJnKTsgfVxuXG4ucWRuYXByby1zaGFyZS1pbmJveC1zZWN0aW9uIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gICAgcGFkZGluZzogMTBweCA0cHggNHB4O1xufVxuXG4ucWRuYXByby1zaGFyZS1pbmJveC1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHkpO1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTEwbXMgZWFzZS1vdXQsIGJvcmRlci1jb2xvciAxMTBtcyBlYXNlLW91dDtcblxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpOyB9XG4gICAgJi5pcy1zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtMTAwKTtcbiAgICB9XG4gICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWZvY3VzLXJpbmcpO1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogMnB4O1xuICAgIH1cbn1cblxuLnFkbmFwcm8tc2hhcmUtaW5ib3gtY2hlY2sgeyBmbGV4LXNocmluazogMDsgfVxuLnFkbmFwcm8tc2hhcmUtaW5ib3gtYXZhdGFyIHsgZmxleC1zaHJpbms6IDA7IH1cblxuLnFkbmFwcm8tc2hhcmUtaW5ib3gtdGV4dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBsaW5lLWhlaWdodDogMS4yNTtcbn1cbi5xZG5hcHJvLXNoYXJlLWluYm94LW5hbWUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi5xZG5hcHJvLXNoYXJlLWluYm94LXN1YiB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLy8gT3B0aW9uYWwgY29tbWVudCBmaWVsZCBhdCB0aGUgYm90dG9tIG9mIHRoZSByZWNpcGllbnQgcGlja2VyICh0ZXh0IHNoYXJlcykuXG4ucWRuYXByby1zaGFyZS1pbmJveC1jb21tZW50LXdyYXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDZweDtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbn1cbi5xZG5hcHJvLXNoYXJlLWluYm94LWNvbW1lbnQtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xufVxuIiwiLy8gcWRuYXByby1zaGFyZS1saW5rIOKAlCByZXVzYWJsZSBwdWJsaWMgc2hhcmUtbGluayBzdXJmYWNlIChVUkwgZnJhbWUsIG9wdGlvbmFsXG4vLyBRUiBjYXJkLCBzdGF0dXMgcGlsbCwgbWV0YSwgY29weS9kZWFjdGl2YXRlIGFjdGlvbnMpLlxuLy8gUUROQSB0b2tlbnM6IGdyZXktNTAgVVJMIGZyYW1lLCBncmV5LTEwMCBib3JkZXJzLCBwdXJwbGUtNTAwIGFjY2VudHMsXG4vLyBzaWduYWwtZ3JlZW4gcGlsbC4gRkxBVCBzZWxlY3RvcnMsIG5vIG5lc3Rpbmcg4oCUIHRoZSBQV0EgdjItY29tcG9uZW50IHJ1bnRpbWVcbi8vIGV4cGVjdHMgZmxhdCBjb21waWxlZCBDU1MgKHNhbWUgcnVsZSBhcyBxZG5hcHJvLWFsZXJ0IC8gYm90dG9tLXNoZWV0KS5cblxuLy8gVGhlIHdob2xlIGNvbXBvbmVudCBpcyBhIGJvcmRlcmVkIGNhcmQgKGJvdGggdmFyaWFudHMpLiBUaGUgbm8tUVIgdmFyaWFudCBpc1xuLy8gbGVmdC1hbGlnbmVkIChoZWFkaW5nICsgaGVscGVyIHRleHQgcmVhZCBhcyBhIHBhcmFncmFwaCk7IHRoZSBRUiB2YXJpYW50XG4vLyBjZW50ZXJzIGl0cyBjb2x1bW4gKGJhZGdlL1FSL21ldGEvYnV0dG9ucyksIHNlZSAtLWNhcmQgYmVsb3cuXG4ucWRuYXByby1zaGFyZS1saW5rIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxMnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYyk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMywgMTJweCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gIHBhZGRpbmc6IDE2cHg7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xufVxuXG4vLyAtLS0gQ2FyZCB2YXJpYW50IChxcik6IEtpbSdzIGRlc2lnbiDigJQgY2VudGVyZWQgcGlsbCwgUVIsIG1ldGEsIGZyYW1lLCBidXR0b25zIC0tLVxuLnFkbmFwcm8tc2hhcmUtbGluay0tY2FyZCB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi8vIExlYWRpbmcgdGl0bGUgKyBoZWxwZXIgdGV4dCAocGxhbm5lciBcIkplIGRlZWwtbGlua1wiIGJsb2NrKS5cbi5xZG5hcHJvLXNoYXJlLWxpbmtfX2hlYWRpbmcge1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZyk7XG59XG4ucWRuYXByby1zaGFyZS1saW5rX19kZXNjIHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgbWFyZ2luLXRvcDogLTRweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNzI4MCk7XG59XG5cbi5xZG5hcHJvLXNoYXJlLWxpbmtfX2hlYWQge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgbWluLWhlaWdodDogNHB4O1xufVxuXG4vLyBTdGF0dXMgcGlsbCAoYWN0aXZlID0gZ3JlZW4sIGluYWN0aXZlID0gZ3JleSkuXG4ucWRuYXByby1zaGFyZS1saW5rX19iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDVweDtcbiAgcGFkZGluZzogM3B4IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBmb250LXNpemU6IC44cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMS40O1xufVxuLnFkbmFwcm8tc2hhcmUtbGlua19fYmFkZ2UtLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLWdyZWVuLWJnLCAjYzVmNWUyKTtcbiAgY29sb3I6IHZhcigtLWMtc2lnbmFsLWdyZWVuLXRleHQsICM0MjhiNmUpO1xufVxuLnFkbmFwcm8tc2hhcmUtbGlua19fYmFkZ2UtLWluYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYyk7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNjAwLCAjNTY1YjY2KTtcbn1cblxuLy8gUVIgaG9zdCDigJQgdGhlIHZlbmRvcmVkIGxpYiBpbmplY3RzIGEgPGNhbnZhcz4vPGltZz4vPHRhYmxlPi5cbi5xZG5hcHJvLXNoYXJlLWxpbmtfX3FyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDRweDtcbn1cbi5xZG5hcHJvLXNoYXJlLWxpbmtfX3FyIGNhbnZhcyxcbi5xZG5hcHJvLXNoYXJlLWxpbmtfX3FyIGltZyxcbi5xZG5hcHJvLXNoYXJlLWxpbmtfX3FyIHRhYmxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5xZG5hcHJvLXNoYXJlLWxpbmtfX21ldGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDRweCAyMHB4O1xuICBmb250LXNpemU6IC44cmVtO1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNzI4MCk7XG59XG5cbi8vIC0tLSBHcmV5IFVSTCBmcmFtZSAoYm90aCB2YXJpYW50cykg4oCUIG1vbm9zcGFjZSwgb25lIHNjcm9sbGxlc3MgbGluZSAtLS1cbi5xZG5hcHJvLXNoYXJlLWxpbmtfX3VybCB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMiwgOHB4KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwLCAjZjBmMWYyKTtcbn1cbi5xZG5hcHJvLXNoYXJlLWxpbmtfX3VybC10ZXh0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIC8vIE1hdGNoIHRoZSBwbGFubmVyIGZlZWQtbGluayBib3g6IE1lbmxvL21vbm9zcGFjZSwgbm90IEludGVyIChLaW0gMjIuMDcuMjAyNikuXG4gIGZvbnQtZmFtaWx5OiBNZW5sbywgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDEyLjVweDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nKTtcbn1cblxuLy8gLS0tIEFjdGlvbiBidXR0b25zIOKAlCBmdWxsIGJ1dHRvbnMgYmVsb3cgdGhlIGZyYW1lLCBob3Jpem9udGFsbHkgY2VudGVyZWQgLS0tXG4ucWRuYXByby1zaGFyZS1saW5rX19hY3Rpb25zIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDhweDtcbn1cbi8vIEljb24gc2l0cyBsZWZ0IG9mIHRoZSBsYWJlbCBpbnNpZGUgdGhlIGFjdGlvbiBidXR0b25zLlxuLnFkbmFwcm8tc2hhcmUtbGlua19fY29weSBxZG5hcHJvLWljb24sXG4ucWRuYXByby1zaGFyZS1saW5rX19kZWFjdGl2YXRlIHFkbmFwcm8taWNvbiB7XG4gIG1hcmdpbi1yaWdodDogNnB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1zaWRlYmFyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBGb2xkZXIgLyBuYXZpZ2F0aW9uIHNpZGViYXIuIFdyYXBzIHFkbmFwcm8taW5wdXQgKHNlYXJjaCksXG4vLyAgcWRuYXByby1pY29uLWJ0biAoaGVhZGVyIGFjdGlvbnMpIGFuZCBxZG5hcHJvLXRyZWUtaXRlbSAobWVudSBpdGVtcykuXG4vLyAgRmlnbWE6IFFETkEtUFJPIOKAlCBub2RlIDg3Njc6MTg3ODk0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBUb2tlbnMgKEZpZ21hIHZhcmlhYmxlcykgW0ZJR01BIHZlcmlmaWVkXTpcbi8vICAgICRzaWRlYmFyLWJnICAgICAgICAgICAgI2ZmZmZmZiAgIFN1cmZhY2UvTW9kYWwgYW5kIHBvcC1vdmVyL3BvcHBvdmVyLUJHXG4vLyAgICAkc2lkZWJhci1kaXZpZGVyICAgICAgICNkOWRiZWIgICBCb3JkZXIvZXhjZXB0aW9ucy9JbnB1dC1TdHJva2UtdHJhbnNwYXJlbnQtYmdcbi8vICAgICRzaWRlYmFyLXRpdGxlLWNvbG9yICAgIzQwNDk5YSAgIFRleHQvSGVhZGVyXG4vLyAgICAkc2lkZWJhci1yYWRpdXMgICAgICAgIDhweCAgICAgICB2YXIoLS1zZHMtc2l6ZS1yYWRpdXMtMjAwKVxuLy8gICAgJHNpZGViYXItcGFkZGluZyAgICAgICA4cHggICAgICAgdmFyKC0tc2RzLXNpemUtc3BhY2UtMjAwKVxuLy8gICAgJHNpZGViYXItaXRlbXMtZ2FwICAgICA4cHggICAgICAgU3BhY2luZy1YU1xuLy8gIFR5cG9ncmFwaHk6XG4vLyAgICBUaXRsZSAoSDYpICAgICAgICAgICAgIEludGVyIFNlbWlCb2xkIDIwIC8gMjQsICM0MDQ5OWFcbi8vICAgIEl0ZW1zICAgICAgICAgICAgICAgICAgaW5oZXJpdGVkIGZyb20gcWRuYXByby10cmVlLWl0ZW1cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4ucWRuYXByby1zaWRlYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgd2lkdGg6IDI5N3B4OyAgICAgICAgICAgICAgICAgICAgICAgLy8gbWF0Y2hlcyBGaWdtYSBpbnN0YW5jZSB3aWR0aFxuICAgIG1heC1oZWlnaHQ6IDEwMHZoO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gICAgLy8gTm8gYm9yZGVyIOKAlCBzaWRlYmFyIHNpdHMgb24gYSBsaWdodC1wdXJwbGUgYXBwIGJhY2tncm91bmQgd2hlcmUgdGhlXG4gICAgLy8gd2hpdGUgc3VyZmFjZSBwcm92aWRlcyBlbm91Z2ggY29udHJhc3Qgb24gaXRzIG93bi5cbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCBpbnRlciwgc2Fucy1zZXJpZjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMTgwbXMgZWFzZS1vdXQ7XG5cbiAgICAvLyBDb2xsYXBzZWQ6IGhlYWRlci1vbmx5IHN0cmlwLiBTZWFyY2ggKyBpdGVtcyBzdGF5IGluIHRoZSBET00gc28gd2VcbiAgICAvLyBjYW4gYW5pbWF0ZSB0aGVpciBoZWlnaHQgKyBvcGFjaXR5LiBUcmFuc2l0aW9uIHRpbWluZyBpcyBzaG9ydFxuICAgIC8vICgxODBtcyBlYXNlLW91dCkgc28gaXQgZmVlbHMgcmVzcG9uc2l2ZSBidXQgbm90IHNuYXBweS5cbiAgICAvLyBOT1RFOiBkb24ndCBvdmVycmlkZSB0aGUgaG9zdCdzIGhlaWdodCBoZXJlIOKAlCB0aGUgY2hpbGQgbWF4LWhlaWdodFxuICAgIC8vIHRyYW5zaXRpb25zIG5hdHVyYWxseSBwdWxsIHRoZSBzaWRlYmFyIGRvd24gYXMgdGhleSBzaHJpbmsuXG4gICAgJi5zaWRlYmFyLWNvbGxhcHNlZCAuc2lkZWJhci1zZWFyY2gsXG4gICAgJi5zaWRlYmFyLWNvbGxhcHNlZCAuc2lkZWJhci1pdGVtcyB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLy8gLS0tIFRvcCBzZWN0aW9uIChoZWFkZXIgKyBzZWFyY2gpIC0tLVxuICAgIC8vIFBhZGRpbmcgMTJweCAobm90IEZpZ21hJ3MgOHB4KSBiZWNhdXNlIHdpdGggYW4gOHB4IHNpZGViYXIgcmFkaXVzLFxuICAgIC8vIDhweCBwYWRkaW5nIGNhdXNlcyB0aGUgc2VhcmNoJ3MgY29ybmVyIHRvIHZpc3VhbGx5IGFsaWduIHdpdGggdGhlXG4gICAgLy8gc2lkZWJhcidzIHJvdW5kZWQgY29ybmVyIOKAlCBpdCByZWFkcyBhcyBpZiB0aGUgc2VhcmNoIGlzIHBva2luZ1xuICAgIC8vIG91dHNpZGUuIDEycHggZ2l2ZXMgYSBjbGVhbiB3aGl0ZSB3ZWRnZSBhcm91bmQgaXQuIFtJTkZFUlJFRCB0d2Vha11cbiAgICAuc2lkZWJhci10b3Age1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIC8vIEJlbHQtYW5kLWJyYWNlczoga2VlcCBldmVyeXRoaW5nIGluc2lkZSBubyBtYXR0ZXIgd2hhdCBhblxuICAgICAgICAvLyBvdmVyLWVhZ2VyIGNoaWxkIChzZWFyY2gtaW5wdXQgZmllbGQtcm93LCBmbGV4LXdlaXJkbmVzcykgdHJpZXMuXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG5cbiAgICAuc2lkZWJhci1oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBwYWRkaW5nOiAwIDAgNHB4IDhweDsgICAgICAgICAgICAvLyBtYXRjaGVzIEZpZ21hOiBwYi14eHMsIHBsLXhzXG4gICAgfVxuXG4gICAgLnNpZGViYXItdGl0bGUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIGludGVyLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTsgICAgICAgICAgICAgICAgICAvLyBUZXh0L0hlYWRlclxuICAgIH1cblxuICAgIC5zaWRlYmFyLWFjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgfVxuXG4gICAgLy8gU2VhcmNoIGlucHV0IOKAlCBmdWxsLXdpZHRoLCBzaXplPXNtYWxsLiBtYXgtaGVpZ2h0IGxhcmdlIGVub3VnaCBmb3JcbiAgICAvLyBhbnkgcmVhbGlzdGljIHNlYXJjaC1pbnB1dCBoZWlnaHQ7IGFuaW1hdGlvbiBjb2xsYXBzZXMgaXQgc21vb3RobHkuXG4gICAgLy9cbiAgICAvLyBUaGUgb2xkIFwiQmVsdC1hbmQtYnJhY2VzXCIgbmVzdGVkIG92ZXJyaWRlIG9uIC5pbnB1dC1maWVsZC1yb3cgL1xuICAgIC8vIC5pbnB1dC1maWVsZCAod2lkdGg6MTAwJTsgbWluLXdpZHRoOjA7IGJveC1zaXppbmcpIGxpdmVkIGhlcmUgdG9cbiAgICAvLyBmb3JjZSB0aGUgc2VhcmNoIHRvIHN0YXkgaW5zaWRlIHRoZSAyOTdweCBzaWRlYmFyLiBUaGF0IGZpeCBpc1xuICAgIC8vIG5vIGxvbmdlciBuZWVkZWQg4oCUIHRoZSByb290IGNhdXNlIChtaXNzaW5nIG1pbi13aWR0aDowIG9uIHRoZVxuICAgIC8vIGJhc2UgLmlucHV0LWZpZWxkIC8gLmlucHV0LWZpZWxkLXJvdykgaXMgbm93IGZpeGVkIGluXG4gICAgLy8gX2lucHV0LnNjc3MgaXRzZWxmLCBzbyBldmVyeSBxZG5hcHJvLWlucHV0IGluc3RhbmNlIHNocmlua3NcbiAgICAvLyBwcm9wZXJseSByZWdhcmRsZXNzIG9mIGl0cyBwYXJlbnQuXG4gICAgLnNpZGViYXItc2VhcmNoIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogODBweDtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICAgIG1heC1oZWlnaHQgMTgwbXMgZWFzZS1vdXQsXG4gICAgICAgICAgICBvcGFjaXR5IDEyMG1zIGVhc2Utb3V0LFxuICAgICAgICAgICAgcGFkZGluZyAxODBtcyBlYXNlLW91dCxcbiAgICAgICAgICAgIG1hcmdpbiAxODBtcyBlYXNlLW91dDtcbiAgICB9XG5cbiAgICAvLyAtLS0gSXRlbXMgY29udGFpbmVyIChzY3JvbGxhYmxlLCByb3VuZGVkIGJvdHRvbSkgLS0tXG4gICAgLy8gbWF4LWhlaWdodCBpcyBcImxhcmdlIGVub3VnaFwiICgxMjAwcHgpIOKAlCB3aGVuIHJlYWwgY29udGVudCBpcyBzaG9ydGVyXG4gICAgLy8gdGhlIHRyYW5zaXRpb24gZW5kcyBlYXJseSBzbyB0aGUgYW5pbWF0aW9uIGZlZWxzIHF1aWNrIHJlZ2FyZGxlc3MuXG4gICAgLnNpZGViYXItaXRlbXMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgcGFkZGluZzogMTJweDsgICAgICAgICAgICAgIC8vIG1hdGNoZXMgc2lkZWJhci10b3Ag4oCUIGF2b2lkcyBjb3JuZXIgY2xhc2hcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICAvLyBmbGV4IDEgMSBhdXRvIHNvIG5hdHVyYWwgY29udGVudC1oZWlnaHQgZHJpdmVzIHRoZSBjb250YWluZXIsXG4gICAgICAgIC8vIGJ1dCBpdCBzdGlsbCBzaHJpbmtzIGluc2lkZSBhIG1heC1oZWlnaHQnZCBob3N0IHdoZW4gY29udGVudCBvdmVyZmxvd3MuXG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMjAwcHg7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgICBtYXgtaGVpZ2h0IDIyMG1zIGVhc2Utb3V0LFxuICAgICAgICAgICAgb3BhY2l0eSAxNDBtcyBlYXNlLW91dCxcbiAgICAgICAgICAgIHBhZGRpbmcgMjIwbXMgZWFzZS1vdXQsXG4gICAgICAgICAgICBtYXJnaW4gMjIwbXMgZWFzZS1vdXQ7XG4gICAgfVxuXG4gICAgLy8gRGl2aWRlciBiZXR3ZWVuIGdyb3VwcyAocGxhaW4gPGhyPilcbiAgICAuc2lkZWJhci1pdGVtcyA+IGhyIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci10cmVlKTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLy8gVHJlZS1pdGVtcyBpbnNpZGU6IHRoZSBjb21wb25lbnQgaGFuZGxlcyBpdHMgb3duIHN0eWxpbmcuIFdlIGp1c3RcbiAgICAvLyByZXNldCBhbnkgZGVmYXVsdCBtYXJnaW5zIHNvIHRoZXkgc2l0IGZsdXNoIGluIHRoZSBmbGV4IGNvbHVtbi5cbiAgICAuc2lkZWJhci1pdGVtcyA+IHFkbmFwcm8tdHJlZS1pdGVtIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIERhcmstbW9kZSBvdmVycmlkZXNcbi8vICBbRklHTUEgdmVyaWZpZWQg4oCUIGRhcmsgdG9rZW5zIG1pZ3JhdGVkIGhlcmUgZnJvbSB0aGUgc2lkZWJhclxuLy8gIHByZXZpZXcgc28gdGhleSBhcHBseSBldmVyeXdoZXJlIHRoZSBzaWRlYmFyIGlzIHVzZWQsIG5vdCBvbmx5XG4vLyAgaW5zaWRlIHRoZSBwcmV2aWV3IGhhcm5lc3MuXVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tc2lkZWJhciB7XG4gICAgYmFja2dyb3VuZDogIzFmMjAyODsgICAgICAgICAgICAgICAgICAgIC8vIFN1cmZhY2UvTW9kYWwgKGRhcmssIGluZmVycmVkKVxuXG4gICAgLnNpZGViYXItdGl0bGUge1xuICAgICAgICBjb2xvcjogI2YwZjFmMjsgICAgICAgICAgICAgICAgICAgICAvLyBUZXh0L0hlYWRlciAoZGFyaylcbiAgICB9XG5cbiAgICAuc2lkZWJhci1pdGVtcyA+IGhyIHtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogIzNhM2I0MjsgICAgICAgICAgLy8gRGl2aWRlciAoZGFyaylcbiAgICB9XG5cbiAgICAvLyBTZWFyY2ggaW5wdXQgaW4gZGFyayDigJQgaW5wdXQgdG9rZW5zIGluc2lkZSB0aGUgc2lkZWJhciBzdXJmYWNlXG4gICAgcWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMmEyYjM0O1xuICAgICAgICBib3JkZXItY29sb3I6ICMzYTNiNDI7XG4gICAgfVxuICAgIHFkbmFwcm8taW5wdXQgLmlucHV0LW5hdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAjZTFlM2U2O1xuICAgIH1cbiAgICBxZG5hcHJvLWlucHV0IC5pbnB1dC1uYXRpdmU6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6ICNhNmFhYjM7ICAgICAgICAgICAgICAgICAgICAgLy8gVGV4dC9JbnB1dC1wbGFjZWhvbGRlci1saWtlXG4gICAgfVxufVxuIiwiLy8gcWRuYXByby1zbGlkZXIg4oCUIGdlbmVyYWwtcHVycG9zZSB2YWx1ZSBzbGlkZXIgKGNvbnRpbnVvdXMgb3IgTi1zdGVwIHNuYXAsXG4vLyBzaW5nbGUgb3IgZHVhbC1oYW5kbGUgcmFuZ2UsIGljb25zL2lucHV0L3Rvb2x0aXAsIDMgY29sb3VyIHZhcmlhbnRzKS5cbi8vIEZMQVQgQ1NTOyBjb2xvdXJzIGNvbWUgZnJvbSB0aGUgZGVzaWduLXRva2VuIDpyb290ICh2YXIoLS1jLSopKS5cbi8vIEVkaXQgSEVSRSwgdGhlbiBgZ3VscCBzYXNzLXYxYCArIHRoZSBzeW5jLlxuXG4ucWRuYXByby1zbGlkZXIge1xuICAtLXFzLXRyYWNrOiB2YXIoLS1jLWdyZXktMTAwLCAjZTdlOWVjKTtcbiAgLS1xcy1maWxsOiB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xuICAtLXFzLWRvdDogdmFyKC0tYy1ncmV5LTMwMCwgI2M0YzdjYyk7XG4gIC0tcXMtZG90LWFjdGl2ZTogdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKTtcbiAgLS1xcy1kZWZhdWx0LW1hcmtlcjogdmFyKC0tYy1ncmV5LTQwMCwgI2E2YWFiMyk7XG4gIC0tcXMtaGFuZGxlOiAjZmZmO1xuICAtLXFzLWhhbmRsZS1ib3JkZXI6IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG4gIC0tcXMtaGFuZGxlLWdsb3c6IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiA2cHggNHB4O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBub25lO1xuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG59XG5cbi8vIC0tLS0gQ29sb3VyIHZhcmlhbnRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5xZG5hcHJvLXNsaWRlci5xZG5hcHJvLXNsaWRlci0tbmV1dHJhbCB7XG4gIC0tcXMtdHJhY2s6IHZhcigtLWMtZ3JleS01MCwgI2YwZjFmMik7XG4gIC0tcXMtZmlsbDogdmFyKC0tYy1ncmV5LTQwMCwgI2E2YWFiMyk7XG4gIC0tcXMtZG90LWFjdGl2ZTogdmFyKC0tYy1ncmV5LTQwMCwgI2E2YWFiMyk7XG4gIC0tcXMtaGFuZGxlLWJvcmRlcjogdmFyKC0tYy1ncmV5LTQwMCwgI2E2YWFiMyk7XG4gIC0tcXMtaGFuZGxlLWdsb3c6IHZhcigtLWMtZ3JleS0zMDAsICNjNGM3Y2MpO1xufVxuLy8gU2VudGltZW50OiB0aGUgVFJBQ0sgaXRzZWxmIGlzIGFsd2F5cyB0aGUgZnVsbCByZWTihpJ5ZWxsb3fihpJncmVlbiBzY2FsZSAoYVxuLy8gc2VtYW50aWMgZ3JhZGllbnQsIG5vdCBhIHByb2dyZXNzIGZpbGwpIOKAlCB0aGUgaGFuZGxlIG1hcmtzIHdoZXJlIHlvdSBhcmVcbi8vIG9uIGl0LCBzbyAucXMtZmlsbCBpcyBub3QgdXNlZCB0byBwYWludCBwcm9ncmVzcyBoZXJlIChpdCBzdGF5cyB0cmFuc3BhcmVudCkuXG4ucWRuYXByby1zbGlkZXIucWRuYXByby1zbGlkZXItLXNlbnRpbWVudCAucXMtdHJhY2sge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgOTBkZWcsXG4gICAgdmFyKC0tYy13YXJuLXJlZC01MDAsICNkYzI2MjYpLFxuICAgIHZhcigtLWMtd2Fybi15ZWxsb3ctNTAwLCAjZmJiZjI0KSxcbiAgICB2YXIoLS1jLXN1Y2Nlc3MtYnJpZ2h0LCAjMWQ5ZTc1KVxuICApO1xufVxuLnFkbmFwcm8tc2xpZGVyLnFkbmFwcm8tc2xpZGVyLS1zZW50aW1lbnQgLnFzLWZpbGwgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuLnFkbmFwcm8tc2xpZGVyLnFkbmFwcm8tc2xpZGVyLS1zZW50aW1lbnQge1xuICAtLXFzLWhhbmRsZS1ib3JkZXI6IHZhcigtLWMtZ3JleS03MDAsICM0MDQ0NGQpO1xuICAtLXFzLWhhbmRsZS1nbG93OiB2YXIoLS1jLWdyZXktNDAwLCAjYTZhYWIzKTtcbiAgLS1xcy1kb3Q6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcbiAgLS1xcy1kb3QtYWN0aXZlOiAjZmZmO1xufVxuLy8gSGlnaGxpZ2h0OiBzaW5nbGUgYnJpZ2h0IGFjY2VudCBjb2xvdXIgKC0tYy1wdXJwbGUtaGlnaGxpZ2h0KSwgZGlzdGluY3QgZnJvbVxuLy8gdGhlIGJyYW5kLXB1cnBsZSBzY2FsZSB1c2VkIGJ5IHRoZSBkZWZhdWx0IFwicHVycGxlXCIgdmFyaWFudC4gVGhpcyBpcyBhXG4vLyBTRU1BTlRJQyB0b2tlbiAoc2VlIF9kZXNpZ24tdG9rZW5zLnNjc3MpIGFscmVhZHkgcmVkZWZpbmVkIHVuZGVyXG4vLyBbZGF0YS10aGVtZT1cImRhcmtcIl0gaXRzZWxmLCBzbyDigJQgdW5saWtlIGV2ZXJ5IG90aGVyIHZhcmlhbnQgb24gdGhpc1xuLy8gY29tcG9uZW50IOKAlCBpdCBuZWVkcyBubyBsb2NhbCBkYXJrLW1vZGUgb3ZlcnJpZGUgYmxvY2sgYmVsb3cuXG4ucWRuYXByby1zbGlkZXIucWRuYXByby1zbGlkZXItLWhpZ2hsaWdodCB7XG4gIC0tcXMtdHJhY2s6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSwgI2YzZjVmZik7XG4gIC0tcXMtZmlsbDogdmFyKC0tYy1wdXJwbGUtaGlnaGxpZ2h0LCAjNDY1MmYzKTtcbiAgLS1xcy1kb3QtYWN0aXZlOiB2YXIoLS1jLXB1cnBsZS1oaWdobGlnaHQsICM0NjUyZjMpO1xuICAtLXFzLWhhbmRsZS1ib3JkZXI6IHZhcigtLWMtcHVycGxlLWhpZ2hsaWdodCwgIzQ2NTJmMyk7XG4gIC0tcXMtaGFuZGxlLWdsb3c6IHZhcigtLWMtcHVycGxlLWhpZ2hsaWdodCwgIzQ2NTJmMyk7XG59XG5cbi8vIC0tLS0gSWNvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ucWRuYXByby1zbGlkZXIgLnFzLWljb24ge1xuICBmbGV4LXNocmluazogMDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjcyODApO1xufVxuLnFkbmFwcm8tc2xpZGVyIC5xcy1pY29uIHN2ZyB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGZpbGw6IGN1cnJlbnRDb2xvcjsgfVxuXG4vLyAtLS0tIFRyYWNrICsgZmlsbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnFkbmFwcm8tc2xpZGVyIC5xcy10cmFjayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBoZWlnaHQ6IDZweDtcbiAgbWFyZ2luOiAxNHB4IDA7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1xcy10cmFjayk7XG59XG4ucWRuYXByby1zbGlkZXIgLnFzLWZpbGwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tcXMtZmlsbCk7XG59XG5cbi8vIC0tLS0gU3RlcCBkb3QgbWFya2VycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ucWRuYXByby1zbGlkZXIgLnFzLWRvdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiA1cHg7XG4gIGhlaWdodDogNXB4O1xuICBtYXJnaW4tbGVmdDogLTIuNXB4O1xuICBtYXJnaW4tdG9wOiAtMi41cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tcXMtZG90KTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXMgZWFzZS1vdXQsIHRyYW5zZm9ybSAxMjBtcyBlYXNlLW91dDtcbn1cbi5xZG5hcHJvLXNsaWRlciAucXMtZG90LmlzLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXFzLWRvdC1hY3RpdmUpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMTUpO1xufVxuXG4vLyAtLS0tIERlZmF1bHQtdmFsdWUgbWFya2VyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gT3B0aW9uYWwgZGVjb3JhdGl2ZSB0aWNrIChkZWZhdWx0LXZhbHVlIGF0dHJpYnV0ZSkgc2hvd2luZyBlLmcuIGEgc2V0dGluZydzXG4vLyBmYWN0b3J5IGRlZmF1bHQgYWxvbmdzaWRlIHRoZSBjdXJyZW50IHZhbHVlLiBBIHRoaW4gdmVydGljYWwgdGljayBzdHJhZGRsaW5nXG4vLyB0aGUgdHJhY2ssIGRlbGliZXJhdGVseSBOT1Qgcm91bmQgbGlrZSB0aGUgaGFuZGxlIG9yIHRoZSBzdGVwIGRvdHMsIHNvIGl0XG4vLyByZWFkcyBhcyBhbiB1bm9idHJ1c2l2ZSByZWZlcmVuY2UgbWFyayByYXRoZXIgdGhhbiBhbm90aGVyIGludGVyYWN0aXZlIHBvaW50LlxuLnFkbmFwcm8tc2xpZGVyIC5xcy1kZWZhdWx0LW1hcmtlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiAycHg7XG4gIGhlaWdodDogMTJweDtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIG1hcmdpbi10b3A6IC02cHg7XG4gIGJvcmRlci1yYWRpdXM6IDFweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tcXMtZGVmYXVsdC1tYXJrZXIpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogMTtcbn1cblxuLy8gLS0tLSBIYW5kbGUocykgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5xZG5hcHJvLXNsaWRlciAucXMtaGFuZGxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbiAgbWFyZ2luLWxlZnQ6IC05cHg7XG4gIHBhZGRpbmc6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1xcy1oYW5kbGUpO1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1xcy1oYW5kbGUtYm9yZGVyKTtcbiAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xOCk7XG4gIGN1cnNvcjogZ3JhYjtcbiAgei1pbmRleDogMjtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAxNDBtcyBlYXNlLW91dCwgdHJhbnNmb3JtIDEyMG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8tc2xpZGVyIC5xcy1oYW5kbGU6aG92ZXIge1xuICBib3gtc2hhZG93OiAwIDAgMCA2cHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXFzLWhhbmRsZS1nbG93KSAyNSUsIHRyYW5zcGFyZW50KSwgMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xOCk7XG59XG4ucWRuYXByby1zbGlkZXIgLnFzLWhhbmRsZTphY3RpdmUsXG4ucWRuYXByby1zbGlkZXIuaXMtZHJhZ2dpbmcgLnFzLWhhbmRsZSB7XG4gIGN1cnNvcjogZ3JhYmJpbmc7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgxLjA4KTtcbn1cbi5xZG5hcHJvLXNsaWRlciAucXMtaGFuZGxlOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxuLnFkbmFwcm8tc2xpZGVyIC5xcy1oYW5kbGU6Zm9jdXMtdmlzaWJsZSB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDRweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcXMtaGFuZGxlLWdsb3cpIDI1JSwgdHJhbnNwYXJlbnQpLCAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE4KTtcbn1cblxuLy8gLS0tLSBUb29sdGlwIChyZWFsIHFkbmFwcm8tdG9vbHRpcCwgdmFsdWUgYnViYmxlIHdoaWxlIGRyYWdnaW5nL2ZvY3VzZWQpIC0tLVxuLy8gVGFyZ2V0cyB0aGUgcWRuYXByby10b29sdGlwIFRBRywgbm90IGEgY3VzdG9tIGNsYXNzIOKAlCB0aGUgY29tcG9uZW50J3Mgb3duXG4vLyByZW5kZXIoKSByZWJ1aWxkcyBpdHMgY2xhc3NOYW1lIGZyb20gc2NyYXRjaCBvbiBldmVyeSBhdHRyaWJ1dGUgY2hhbmdlIGFuZFxuLy8gb25seSBwcmVzZXJ2ZXMgXCJ0b29sdGlwLW1hbmFnZWRcIi9cInRvb2x0aXAtdmlzaWJsZVwiLCBzbyBhbnkgb3RoZXIgY2xhc3Mgd2Vcbi8vIGFkZCB0byBpdCBnZXRzIHNpbGVudGx5IHdpcGVkIHRoZSBtb21lbnQgaXQgKHJlKXJlbmRlcnMuXG4vLyBgdG9vbHRpcC1tYW5hZ2VkYCAoc2V0IGluIEpTKSBvcHRzIHRoZSB0b29sdGlwIGludG8gaXRzIG93biBvcGFjaXR5OjBcbi8vIGRlZmF1bHQgc3RhdGU7IHdlIHRoZW4gdG9nZ2xlIGB0b29sdGlwLXZpc2libGVgIG91cnNlbHZlcyAoaXRzIG93biBDU1Ncbi8vIGFscmVhZHkgaGFuZGxlcyB0aGUgb3BhY2l0eSBmYWRlIOKAlCBzZWUgX3Rvb2x0aXAuc2NzcykuIFdlIGZ1bGx5IG93biB0aGVcbi8vIGB0cmFuc2Zvcm1gIGhlcmUgKHBvc2l0aW9uIG9mZnNldCArIHNjYWxlKSBzbyB0aGUgdHdvIGRvbid0IGZpZ2h0IG92ZXIgb25lXG4vLyBDU1MgcHJvcGVydHk7IHRoZSBzY2FsZSB2YWx1ZXMgbWlycm9yIHRoZSB0b29sdGlwJ3Mgb3duIGhvdmVyLW1hbmFnZWQgc3RhdGVzLlxuLnFkbmFwcm8tc2xpZGVyIC5xcy1oYW5kbGUgcWRuYXByby10b29sdGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IGNhbGMoMTAwJSArIDhweCk7XG4gIGxlZnQ6IDUwJTtcbiAgei1pbmRleDogMztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSBzY2FsZSgwLjkyKTtcbn1cbi5xZG5hcHJvLXNsaWRlciAucXMtaGFuZGxlIHFkbmFwcm8tdG9vbHRpcC50b29sdGlwLXZpc2libGUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgc2NhbGUoMSk7XG59XG5cbi8vIC0tLS0gUGFpcmVkIG51bWVyaWMgaW5wdXQgKHJlYWwgcWRuYXByby1pbnB1dCwgdHlwZT1udW1iZXIsIHNpemU9c21hbGwpIC0tLVxuLnFkbmFwcm8tc2xpZGVyIC5xcy1pbnB1dCB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aWR0aDogNjhweDtcbn1cblxuLy8gLS0tLSBzaXplPVwidG91Y2hcIiAoUFdBLW9ubHkpIOKAlCBiaWdnZXIgaGFuZGxlICsgdGhpY2tlciB0cmFjayArIGhpdCBhcmVhIC0tLVxuLy8gTWF0Y2hlcyBxZG5hcHJvLWJ1dHRvbi9pY29uLWJ0bidzIHNpemU9XCJ0b3VjaFwiIDQ0cHggdGFwLXRhcmdldCBjb252ZW50aW9uLlxuLy8gRG8gbm90IHVzZSBpbiB0aGUgYmFja29mZmljZS5cbi5xZG5hcHJvLXNsaWRlci5xZG5hcHJvLXNsaWRlci0tdG91Y2ggLnFzLXRyYWNrIHtcbiAgaGVpZ2h0OiAxMHB4O1xuICBtYXJnaW46IDIycHggMDtcbn1cbi5xZG5hcHJvLXNsaWRlci5xZG5hcHJvLXNsaWRlci0tdG91Y2ggLnFzLWhhbmRsZSB7XG4gIHdpZHRoOiA0NHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIG1hcmdpbi1sZWZ0OiAtMjJweDtcbiAgYm9yZGVyLXdpZHRoOiAzcHg7XG59XG4ucWRuYXByby1zbGlkZXIucWRuYXByby1zbGlkZXItLXRvdWNoIC5xcy1kb3Qge1xuICB3aWR0aDogN3B4O1xuICBoZWlnaHQ6IDdweDtcbiAgbWFyZ2luLWxlZnQ6IC0zLjVweDtcbiAgbWFyZ2luLXRvcDogLTMuNXB4O1xufVxuLnFkbmFwcm8tc2xpZGVyLnFkbmFwcm8tc2xpZGVyLS10b3VjaCAucXMtaWNvbiB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG59XG4ucWRuYXByby1zbGlkZXIucWRuYXByby1zbGlkZXItLXRvdWNoIC5xcy1kZWZhdWx0LW1hcmtlciB7XG4gIHdpZHRoOiAzcHg7XG4gIGhlaWdodDogMThweDtcbiAgbWFyZ2luLWxlZnQ6IC0xLjVweDtcbiAgbWFyZ2luLXRvcDogLTlweDtcbn1cblxuLnFkbmFwcm8tc2xpZGVyLmlzLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC41O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLy8gLS0tLSBEYXJrIG1vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRoZSByYXcgcGFsZXR0ZSB0b2tlbnMgdXNlZCBhYm92ZSAoLS1jLXB1cnBsZS01MDAsIC0tYy1ncmV5LTUwLCAtLWMtd2Fybi0qLFxuLy8gLS1jLXN1Y2Nlc3MtYnJpZ2h0KSBkbyBOT1QgZmxpcCBhdXRvbWF0aWNhbGx5IHVuZGVyIFtkYXRhLXRoZW1lPVwiZGFya1wiXSDigJRcbi8vIG9ubHkgc2VtYW50aWMgdG9rZW5zIGRvIChzZWUgX2Rlc2lnbi10b2tlbnMuc2NzcydzIGRhcmsgb3ZlcnJpZGUgYmxvY2ssXG4vLyB3aGljaCBvbmx5IHJlLXBvaW50cyB0aGluZ3MgbGlrZSAtLWMtdGV4dC1tdXRlZCwgbm90IHRoZSBudW1iZXJlZCBzY2FsZVxuLy8gaXRzZWxmKS4gU28gdGhpcyBjb21wb25lbnQgZGVmaW5lcyBpdHMgb3duIGRhcmsgb3ZlcnJpZGUgZm9yIHRoZSBsb2NhbFxuLy8gLS1xcy0qIGN1c3RvbSBwcm9wcywgc2FtZSBwYXR0ZXJuIGFzIHFkbmFwcm8tdG9nZ2xlLiBbMDcuMDcuMjAyNl1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1zbGlkZXIge1xuICAtLXFzLXRyYWNrOiB2YXIoLS1jLWdyZXktNzAwLCAjNDA0NDRkKTtcbiAgLS1xcy1kb3Q6IHZhcigtLWMtZ3JleS01MDAsICM2YjcyODApO1xuICAtLXFzLWRlZmF1bHQtbWFya2VyOiB2YXIoLS1jLWdyZXktMzAwLCAjYzRjN2NjKTtcbiAgLS1xcy1oYW5kbGU6IHZhcigtLWMtZ3JleS0xMDAsICNlN2U5ZWMpO1xuICAtLXFzLWhhbmRsZS1ib3JkZXI6IHZhcigtLWMtcHVycGxlLTMwMCwgIzhhOTJkMCk7XG4gIC0tcXMtaGFuZGxlLWdsb3c6IHZhcigtLWMtcHVycGxlLTIwMCwgI2E1YWNmZik7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tc2xpZGVyLnFkbmFwcm8tc2xpZGVyLS1uZXV0cmFsIHtcbiAgLS1xcy10cmFjazogdmFyKC0tYy1ncmV5LTcwMCwgIzQwNDQ0ZCk7XG4gIC0tcXMtZmlsbDogdmFyKC0tYy1ncmV5LTQwMCwgI2E2YWFiMyk7XG4gIC0tcXMtZG90LWFjdGl2ZTogdmFyKC0tYy1ncmV5LTMwMCwgI2M0YzdjYyk7XG4gIC0tcXMtaGFuZGxlLWJvcmRlcjogdmFyKC0tYy1ncmV5LTMwMCwgI2M0YzdjYyk7XG4gIC0tcXMtaGFuZGxlLWdsb3c6IHZhcigtLWMtZ3JleS01MDAsICM2YjcyODApO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXNsaWRlci5xZG5hcHJvLXNsaWRlci0tc2VudGltZW50IHtcbiAgLS1xcy1oYW5kbGUtYm9yZGVyOiB2YXIoLS1jLWdyZXktMzAwLCAjYzRjN2NjKTtcbiAgLS1xcy1oYW5kbGUtZ2xvdzogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNzI4MCk7XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9za2VsZXRvbi9fc2tlbGV0b24tY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBTa2VsZXRvbiBsb2FkZXIg4oCUIGNlbnRyYWwgQ1NTIGZvciBhbGwgdjEgcGFnZXMgdGhhdCBzaG93IGFcbiAgIHNrZWxldG9uIHdoaWxlIGRhdGEgbG9hZHMuIFNhbWUgc2hpbW1lciAvIC5zay1ib25lIHZvY2FidWxhcnlcbiAgIGFzIHRoZSBob21lcGFnZS1tb2NrdXAgcHJvdG8gc28gZXZlcnkgcGFnZSBsb29rdCBjb25zaXN0ZW50LlxuICAgKEtpbSAyMDI2LTA1LTI5LilcblxuICAgVXNhZ2U6XG4gICAgIDxib2R5IGNsYXNzPVwiaXMtc2tlbGV0b24tbG9hZGluZ1wiPlxuICAgICAgIC4uLlxuICAgICAgIDxkaXYgY2xhc3M9XCJza2VsZXRvbi1ncmlkXCI+XG4gICAgICAgICA8ZGl2IGNsYXNzPVwic2stY2FyZFwiPlxuICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2stYm9uZVwiIHN0eWxlPVwiaGVpZ2h0OjYwcHg7XCI+PC9kaXY+XG4gICAgICAgICAgIDxkaXYgY2xhc3M9XCJzay1ib25lXCIgc3R5bGU9XCJoZWlnaHQ6MTJweDt3aWR0aDo2MCU7XCI+PC9kaXY+XG4gICAgICAgICA8L2Rpdj5cbiAgICAgICA8L2Rpdj5cbiAgICAgPC9ib2R5PlxuXG4gICBUb2dnbGUgdmlzaWJpbGl0eSBieSBhZGRpbmcgLyByZW1vdmluZyBgaXMtc2tlbGV0b24tbG9hZGluZ2BcbiAgIG9uIHRoZSBib2R5LiBUaGUgcGFnZS1zcGVjaWZpYyBsYXlvdXQgKC5zay1jYXJkIHNoYXBlLCBncmlkXG4gICBjb2x1bW5zLCBldGMuKSBsaXZlcyBpbiB0aGUgcGFnZSdzIG93biBzdHlsZXNoZWV0IOKAlCBvbmx5XG4gICB0aGUgYm9uZSAvIHNoaW1tZXIgcHJpbWl0aXZlcyBsaXZlIGhlcmUuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbkBrZXlmcmFtZXMgc2stc2hpbW1lciB7XG4gIDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODAwcHggMDtcbiAgfVxuICAxMDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA4MDBweCAwO1xuICB9XG59XG4vKiBQYWdlLWRlZmF1bHQg4oCUIGxpZ2h0IHRoZW1lLiBEYXJrIG1vZGUgb3ZlcnJpZGVzIGJlbG93LiAqL1xuYm9keSB7XG4gIC0tc2stYmFzZTogdmFyKC0tYy1zaWRlYmFyLWljb24pO1xuICAtLXNrLXNoaW5lOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCk7XG4gIC0tc2stY2FyZC1iZzogdmFyKC0tYy1wdXJwbGUtNTApO1xufVxuXG5ib2R5W2RhdGEtdGhlbWU9ZGFya10ge1xuICAtLXNrLWJhc2U6ICMxZTFmMmU7XG4gIC0tc2stc2hpbmU6ICMyNjI4NDA7XG4gIC0tc2stY2FyZC1iZzogIzE0MTUxZjtcbn1cblxuLyogVGhlIGJvbmUg4oCUIHNpbmdsZSBzaGltbWVyLXBhaW50ZWQgcmVjdGFuZ2xlLiBDb21wb3NlIGludG9cbiAgIHBhZ2Utc3BlY2lmaWMgc2tlbGV0b24gc2hhcGVzIGJ5IHN0YWNraW5nIHRoZXNlIGluc2lkZSAuc2stY2FyZFxuICAgd3JhcHBlcnMgKHBhZ2Utc2lkZSkuICovXG4uc2stYm9uZSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tc2stYmFzZSkgMjUlLCB2YXIoLS1zay1zaGluZSkgNTAlLCB2YXIoLS1zay1iYXNlKSA3NSUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDgwMHB4IDEwMCU7XG4gIGFuaW1hdGlvbjogc2stc2hpbW1lciAxLjVzIGluZmluaXRlIGxpbmVhcjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuXG4vKiBHZW5lcmljIHNrZWxldG9uIGNhcmQgY2hyb21lIOKAlCBwYWdlIGNhbiBvdmVycmlkZSBncmlkIGxheW91dFxuICAgYW5kIGluZGl2aWR1YWwgY2FyZCBkaW1lbnNpb25zLiBQYWdlcyB0aGF0IHdhbnQgYSBkaWZmZXJlbnRcbiAgIGxvb2sgY2FuIHNraXAgdGhpcyBjbGFzcyBhbmQgc3R5bGUgdGhlaXIgb3duIHdyYXBwZXIuICovXG4uc2stY2FyZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNrLWNhcmQtYmcpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDY0LCA3MywgMTU0LCAwLjEyKTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgcGFkZGluZzogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnNrLWJvbmUge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxufSIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL3NrZWxldG9uLWJvbmUvX3NrZWxldG9uLWJvbmUtY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBxZG5hcHJvLXNrZWxldG9uLWJvbmUg4oCUIGF0b21pYyBzaGltbWVyIHBsYWNlaG9sZGVyLlxuXG4gICBUaGUgc2hpbW1lciBwYWludCAoLnNrLWJvbmUsIEBrZXlmcmFtZXMgc2stc2hpbW1lcikgYW5kIHRoZVxuICAgLS1zay0qIGNvbG9yIHZhcnMgbGl2ZSBpbiBza2VsZXRvbi9fc2tlbGV0b24tY29tcGlsZWQuY3NzIGFuZFxuICAgYXJlIE5PVCBkdXBsaWNhdGVkIGhlcmUuIFRoaXMgZmlsZSBvbmx5IG1ha2VzIHRoZSBjdXN0b20gZWxlbWVudFxuICAgYSBibG9jayBib3ggYW5kIGFkZHMgdGhlIGNpcmNsZS9waWxsIHJhZGl1cyBtb2RpZmllcnMuIFRoZSBzaGFwZVxuICAgb3ZlcnJpZGVzIGJlYXQgLnNrLWJvbmUncyA0cHggb24gc3BlY2lmaWNpdHkgKHR5cGUgKyBjbGFzcyksIHNvXG4gICBidW5kbGUgc291cmNlLW9yZGVyIGRvZXMgbm90IG1hdHRlci4gKEtpbSAyMDI2LTA1LTMwKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5xZG5hcHJvLXNrZWxldG9uLWJvbmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbnFkbmFwcm8tc2tlbGV0b24tYm9uZS5za2VsZXRvbi1ib25lLWNpcmNsZSB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxucWRuYXByby1za2VsZXRvbi1ib25lLnNrZWxldG9uLWJvbmUtcGlsbCB7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xufSIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8tc2tlbGV0b24taW5ib3gtcm93XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBNb2xlY3VsZTogY29tcG9zZXMgcWRuYXByby1za2VsZXRvbi1ib25lIGF0b21zIGludG8gdGhlIHNoYXBlIG9mIGFcbi8vICBxZG5hcHJvLWluYm94LW1lc3NhZ2Ugcm93LiBMb2FkaW5nIHN0YXRlIGZvciB0aGUgUFdBIGluYm94IGxpc3Qgb25cbi8vICBmaXJzdCBvcGVuIChTQ09QRS1wd2EtaW5ib3gubWQgZGVjaXNpb24gMjcsIHBoYXNlIDNkKSDigJQgYnVpbHQgaGVyZVxuLy8gIGluIHRoZSBiYWNrb2ZmaWNlMiBsaWJyYXJ5IGFzIHRoZSBzaGFyZWQgY29tcG9uZW50IHNvdXJjZTsgdGhlIGFwcFxuLy8gIHNpZGUgd2lyZXMgaXQgaW50byB0aGUgYWN0dWFsIHNjcmVlbiBzZXBhcmF0ZWx5LlxuLy9cbi8vICBHZW9tZXRyeSBpcyBhIGRlbGliZXJhdGUgMToxIG1pcnJvciBvZiBfaW5ib3gtbWVzc2FnZS5zY3NzJ3Ncbi8vICBwYWRkaW5nIC8gZ2FwIC8gbWFyZ2luIHZhbHVlcyAoTk9UIHJlLXVzZWQgY2xhc3MgbmFtZXMg4oCUIHNlZSB0aGVcbi8vICBub3RlIGluIHRoZSBKUyBmaWxlKSBzbyB0aGUgc2tlbGV0b24gLT4gcmVhbC1yb3cgc3dhcCBoYXMgemVyb1xuLy8gIGxheW91dCBzaGlmdDpcbi8vICAgIGhvc3QgICAgICAgICAgcGFkZGluZyA0cHggOHB4LCBnYXAgOHB4ICAgICAgICAgICAgKHNhbWUgYXMgLnFkbmFwcm8taW5ib3gtbWVzc2FnZSlcbi8vICAgIGxlYWQgY29sdW1uICAgd2lkdGggNTBweCwgcGFkZGluZy10b3AgNHB4LCBmbGV4LWVuZCBqdXN0aWZ5ICAgKHNhbWUgYXMgLmluYm94LW1lc3NhZ2UtbGVhZClcbi8vICAgIG1haW4gY29sdW1uICAgcGFkZGluZyA0cHggMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNhbWUgYXMgLmluYm94LW1lc3NhZ2UtbWFpbilcbi8vICAgIHJvdyAxICAgICAgICAgaGVpZ2h0IDI0cHggICAobWlycm9ycyB0aGUgc2VuZGVyIGxpbmUtaGVpZ2h0LCB0ZXh0LXN0eWxlLWJvZHktKi1tZClcbi8vICAgIHJvdyAyICAgICAgICAgaGVpZ2h0IDIwcHgsIG1hcmdpbi10b3AgLTJweCAgKG1pcnJvcnMgc3ViamVjdC90aW1lc3RhbXAsICotc20gKyBjb21wYWN0IHJlY2lwZSlcbi8vICAgIHJvdyAzICAgICAgICAgaGVpZ2h0IDIwcHgsIG1hcmdpbi10b3AgLTJweCAgKG1pcnJvcnMgcHJldmlldy9kdWUtdGltZSwgKi1zbSArIGNvbXBhY3QgcmVjaXBlKVxuLy9cbi8vICBTaGltbWVyIHBhaW50ICguc2stYm9uZSkgKyBwcmVmZXJzLXJlZHVjZWQtbW90aW9uIGhhbmRsaW5nIGxpdmVcbi8vICBjZW50cmFsbHkgaW4gc2tlbGV0b24vX3NrZWxldG9uLWNvbXBpbGVkLmNzcyDigJQgbm90IGR1cGxpY2F0ZWQgaGVyZS5cbi8vICBUaGlzIGZpbGUgb25seSBhZGRzIHRoZSByb3cgY2hyb21lICsgdGhlIHN0YWdnZXItaW4gZW50cmFuY2UuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxucWRuYXByby1za2VsZXRvbi1pbmJveC1yb3cge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA0cHggOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcblxuICAgIC8vIFN0YWdnZXItaW4gb24gbW91bnQg4oCUIHNhbWUgcmVjaXBlIGFzIHRoZSByZWFsLWNvbnRlbnQgY2FyZC1lbnRlclxuICAgIC8vIGFuaW1hdGlvbiBkb2N1bWVudGVkIGluIHRoZSBza2VsZXRvbi1sb2FkZXJzIHNraWxsICgyNDBtcyxcbiAgICAvLyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSksIDI1bXMgc3RhZ2dlciBzdGVwLCBjYXBwZWQgYXRcbiAgICAvLyAxMiByb3dzIHNvIGEgbG9uZyBsaXN0IGRvZXNuJ3QgdGFrZSBmb3JldmVyIHRvIGZpbmlzaCByZXZlYWxpbmcpLlxuICAgIG9wYWNpdHk6IDA7XG4gICAgYW5pbWF0aW9uOiBza2ktcm93LWVudGVyIDI0MG1zIGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjY0LCAxKSBib3RoO1xuXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAxMiB7XG4gICAgICAgICY6bnRoLW9mLXR5cGUoI3skaX0pIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogI3soJGkgLSAxKSAqIDI1fW1zO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIDEzdGggcm93IGFuZCBiZXlvbmQ6IG5vIGRlbGF5LCBhcHBlYXIgaW1tZWRpYXRlbHkgKG1hdGNoZXMgdGhlXG4gICAgLy8gXCJzdGFnZ2VyIGNhcFwiIHJ1bGUg4oCUIGEgdmVyeSBsb25nIGxpc3Qgc2hvdWxkIG5vdCB0YWtlIGZvcmV2ZXIpLlxuICAgICY6bnRoLW9mLXR5cGUobiArIDEzKSB7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogMG1zO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBza2ktcm93LWVudGVyIHtcbiAgICAwJSAgIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDZweCk7IH1cbiAgICAxMDAlIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgcWRuYXByby1za2VsZXRvbi1pbmJveC1yb3cge1xuICAgICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG5xZG5hcHJvLXNrZWxldG9uLWluYm94LXJvdyAuc2tpLWxlYWQge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICB3aWR0aDogNTBweDtcbiAgICBwYWRkaW5nLXRvcDogNHB4O1xufVxuXG5xZG5hcHJvLXNrZWxldG9uLWluYm94LXJvdyAuc2tpLW1haW4ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAwO1xuICAgIHBhZGRpbmc6IDRweCAwO1xufVxuXG5xZG5hcHJvLXNrZWxldG9uLWluYm94LXJvdyAuc2tpLXJvdy0xIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAyNHB4O1xufVxuXG4vLyBSb3cgMiBpcyB0aGUgc3ViamVjdCArIHRpbWVzdGFtcCBsaW5lIGFuZCByb3cgMyB0aGUgcHJldmlldyArIGR1ZS10aW1lIGxpbmUuXG4vLyBUaGV5IGFyZSBOT1QgdGhlIHNhbWUgaGVpZ2h0IGluIHRoZSByZWFsIHJvdzogbWVhc3VyZWQgaW4gdGhlIGJyb3dzZXIgb25cbi8vIDI5LjA3LjIwMjYsIC5pbmJveC1tZXNzYWdlLXJvdy0yIGlzIDI0cHggKGxhcmdlciBzdWJqZWN0IHR5cGUpIGFuZFxuLy8gLmluYm94LW1lc3NhZ2Utcm93LTMgaXMgMjBweC4gU2hhcmluZyBvbmUgaGVpZ2h0IGhlcmUgbWFkZSB0aGUgd2hvbGUgc2tlbGV0b25cbi8vIDc2cHggYWdhaW5zdCB0aGUgcmVhbCByb3cncyA4MHB4IOKAlCBhIDRweCBqdW1wIHBlciByb3csIHNvIH4yNHB4IG9mIHNoaWZ0IG9uIGFcbi8vIHNjcmVlbmZ1bCwgd2hpY2ggaXMgZXhhY3RseSB3aGF0IGEgc2tlbGV0b24gZXhpc3RzIHRvIHByZXZlbnQuIEtlZXAgdGhlc2UgdHdvXG4vLyBzZXBhcmF0ZSwgYW5kIHJlLW1lYXN1cmUgaWYgdGhlIHJlYWwgcm93J3MgdHlwZSBzaXplcyBldmVyIGNoYW5nZS5cbnFkbmFwcm8tc2tlbGV0b24taW5ib3gtcm93IC5za2ktcm93LTIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiA4cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIG1hcmdpbi10b3A6IC0ycHg7XG59XG5cbnFkbmFwcm8tc2tlbGV0b24taW5ib3gtcm93IC5za2ktcm93LTMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiA4cHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbi10b3A6IC0ycHg7XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9za2VsZXRvbi1wcm9qZWN0LWNhcmQvX3NrZWxldG9uLXByb2plY3QtY2FyZC1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG5AY2hhcnNldCBcIlVURi04XCI7XG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIHFkbmFwcm8tc2tlbGV0b24tcHJvamVjdC1jYXJkIOKAlCBjb21wb3NlcyBza2VsZXRvbi1ib25lIGF0b21zIGludG9cbiAgIGEgcHJvamVjdC1jYXJkLXNoYXBlZCBsb2FkaW5nIHBsYWNlaG9sZGVyLiBNaXJyb3JzIHRoZSBvcmlnaW5hbFxuICAgLnB2Mi1za2VsZXRvbi1jYXJkIGNocm9tZSBzbyB0aGUgc2tlbGV0b24gLT4gcmVhbCBjYXJkIHN3YXAgaGFzXG4gICB6ZXJvIGxheW91dCBzaGlmdCAoc2FtZSAxMnB4IHJhZGl1cywgMXB4IGJvcmRlciwgMjA4cHggbWluLWhlaWdodCxcbiAgIDE1OHB4IHBob3RvIGJsb2NrKS4gQ2FyZCBzdXJmYWNlIGNvbG9yIGNvbWVzIGZyb20gLS1zay1jYXJkLWJnIGluXG4gICBza2VsZXRvbi9fc2tlbGV0b24tY29tcGlsZWQuY3NzLiAoS2ltIDIwMjYtMDUtMzApXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbnFkbmFwcm8tc2tlbGV0b24tcHJvamVjdC1jYXJkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWluLWhlaWdodDogMjA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNrLWNhcmQtYmcpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDY0LCA3MywgMTU0LCAwLjEyKTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbn1cblxuLyogUGhvdG8gYmxvY2sgZmlsbHMgdGhlIHRvcCBlZGdlLXRvLWVkZ2U7IHRoZSBjYXJkJ3Mgb3duIHJhZGl1cyArXG4gICBvdmVyZmxvdzpoaWRkZW4gY2xpcHMgdGhlIGNvcm5lcnMsIHNvIHRoZSBib25lIGl0c2VsZiBoYXMgbm8gcmFkaXVzLlxuICAgQmVhdHMgLnNrLWJvbmUncyA0cHggb24gc3BlY2lmaWNpdHkgKHR5cGUgKyBjbGFzcyArIDpmaXJzdC1jaGlsZCkuICovXG5xZG5hcHJvLXNrZWxldG9uLXByb2plY3QtY2FyZCA+IC5zay1ib25lOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxucWRuYXByby1za2VsZXRvbi1wcm9qZWN0LWNhcmQgLnNzcC1ib2R5IHtcbiAgZmxleDogMTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMnB4O1xuICBwYWRkaW5nOiAxMnB4O1xufVxuXG5xZG5hcHJvLXNrZWxldG9uLXByb2plY3QtY2FyZCAuc3NwLXNwYWNlciB7XG4gIGZsZXg6IDE7XG59IiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvc291cmNlLXBpbGwvX3NvdXJjZS1waWxsLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi50ZXh0LWgxIHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogNjBweDtcbiAgbGluZS1oZWlnaHQ6IDcycHg7XG59XG5cbi50ZXh0LWgyIHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogNDBweDtcbiAgbGluZS1oZWlnaHQ6IDU2cHg7XG59XG5cbi50ZXh0LWgzIHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMzJweDtcbiAgbGluZS1oZWlnaHQ6IDQ4cHg7XG59XG5cbi50ZXh0LWg0IHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgbGluZS1oZWlnaHQ6IDQ0cHg7XG59XG5cbi50ZXh0LWg1IHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgbGluZS1oZWlnaHQ6IDM2cHg7XG59XG5cbi50ZXh0LWg2IHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG59XG5cbi50ZXh0LWJvZHkteHMge1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbn1cblxuLnRleHQtYm9keS1zbSB7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4udGV4dC1ib2R5LW1kIHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG59XG5cbi50ZXh0LWJvZHktbGcge1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbn1cblxuLnRleHQtYm9keS14bCB7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xufVxuXG4ucWRuYXByby1zb3VyY2UtcGlsbCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZS1vdXQ7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLnFkbmFwcm8tc291cmNlLXBpbGxbcm9sZT1idXR0b25dOmhvdmVyLCAucWRuYXByby1zb3VyY2UtcGlsbC5mb3JjZS1ob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYm9yZGVyLWNhcmQpO1xufVxuLnFkbmFwcm8tc291cmNlLXBpbGxbcm9sZT1idXR0b25dOmFjdGl2ZSwgLnFkbmFwcm8tc291cmNlLXBpbGwuZm9yY2UtcHJlc3NlZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0zMDApO1xufVxuLnFkbmFwcm8tc291cmNlLXBpbGwuc291cmNlLXBpbGwtdHlwZS10ZXh0IHtcbiAgZ2FwOiAwO1xufVxuLnFkbmFwcm8tc291cmNlLXBpbGwgLnNvdXJjZS1waWxsLWxlYWRpbmcge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby1zb3VyY2UtcGlsbCBxZG5hcHJvLWZpbGUtaWNvbi5zb3VyY2UtcGlsbC1sZWFkaW5nIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbn1cbi5xZG5hcHJvLXNvdXJjZS1waWxsIHFkbmFwcm8tZmlsZS1pY29uLnNvdXJjZS1waWxsLWxlYWRpbmcgLnFkbmFwcm8tZmlsZS1pY29uLWJhZGdlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5xZG5hcHJvLXNvdXJjZS1waWxsIC5zb3VyY2UtcGlsbC1mYXZpY29uIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTdweDtcbiAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0zMDApO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQtaG92ZXIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ucWRuYXByby1zb3VyY2UtcGlsbCAuc291cmNlLXBpbGwtZmF2aWNvbiBpbWcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTIwbXMgZWFzZTtcbn1cbi5xZG5hcHJvLXNvdXJjZS1waWxsIC5zb3VyY2UtcGlsbC1mYXZpY29uLWxldHRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmb250LXNpemU6IDlweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MDApO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsaW5lLWhlaWdodDogMTtcbiAgei1pbmRleDogMDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4ucWRuYXByby1zb3VyY2UtcGlsbCAuc291cmNlLXBpbGwtZmF2aWNvbi1mYWxsYmFjayB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0yMDApO1xufVxuLnFkbmFwcm8tc291cmNlLXBpbGwgLnNvdXJjZS1waWxsLWZhdmljb24tZmFsbGJhY2sgaW1nIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5xZG5hcHJvLXNvdXJjZS1waWxsIC5zb3VyY2UtcGlsbC1zdGFjayB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nLXJpZ2h0OiA2cHg7XG59XG4ucWRuYXByby1zb3VyY2UtcGlsbCAuc291cmNlLXBpbGwtc3RhY2staXRlbSB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE3cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWdyZXktMzAwKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyKTtcbiAgbWFyZ2luLXJpZ2h0OiAtNnB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby1zb3VyY2UtcGlsbCAuc291cmNlLXBpbGwtc3RhY2staXRlbSBpbWcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTIwbXMgZWFzZTtcbn1cbi5xZG5hcHJvLXNvdXJjZS1waWxsIC5zb3VyY2UtcGlsbC1zdGFjay1pdGVtIC5zb3VyY2UtcGlsbC1mYXZpY29uLWxldHRlciB7XG4gIGZvbnQtc2l6ZTogOHB4O1xufVxuLnFkbmFwcm8tc291cmNlLXBpbGwgLnNvdXJjZS1waWxsLXN0YWNrLWZhbGxiYWNrIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTIwMCk7XG59XG4ucWRuYXByby1zb3VyY2UtcGlsbCAuc291cmNlLXBpbGwtc3RhY2stZmFsbGJhY2sgaW1nIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5xZG5hcHJvLXNvdXJjZS1waWxsIC5zb3VyY2UtcGlsbC1sYWJlbCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBtYXgtd2lkdGg6IDI0MHB4O1xufVxuLnFkbmFwcm8tc291cmNlLXBpbGxbcm9sZT1idXR0b25dIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnFkbmFwcm8tc291cmNlLXBpbGw6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuLnFkbmFwcm8tc291cmNlLXBpbGxbcm9sZT1idXR0b25dOmZvY3VzLXZpc2libGUsIC5xZG5hcHJvLXNvdXJjZS1waWxsLmZvcmNlLWZvY3VzIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXNvdXJjZS1waWxsIHtcbiAgY29sb3I6ICNhNmFhYjM7XG4gIGJhY2tncm91bmQ6ICMyZTMwMzY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1zb3VyY2UtcGlsbFtyb2xlPWJ1dHRvbl06aG92ZXIsIFtkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXNvdXJjZS1waWxsLmZvcmNlLWhvdmVyIHtcbiAgYmFja2dyb3VuZDogIzQwNDQ0ZDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXNvdXJjZS1waWxsW3JvbGU9YnV0dG9uXTphY3RpdmUsIFtkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXNvdXJjZS1waWxsLmZvcmNlLXByZXNzZWQge1xuICBiYWNrZ3JvdW5kOiAjNTY1YjY2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tc291cmNlLXBpbGwgLnNvdXJjZS1waWxsLWZhdmljb24sXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1zb3VyY2UtcGlsbCAuc291cmNlLXBpbGwtc3RhY2staXRlbSB7XG4gIGJhY2tncm91bmQ6ICMxZjIwMjg7XG4gIGJvcmRlci1jb2xvcjogIzU2NWI2Njtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXNvdXJjZS1waWxsIC5zb3VyY2UtcGlsbC1mYXZpY29uLWZhbGxiYWNrLFxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tc291cmNlLXBpbGwgLnNvdXJjZS1waWxsLXN0YWNrLWZhbGxiYWNrIHtcbiAgYmFja2dyb3VuZDogIzU2NWI2Njtcbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8tc3Rhci1yYXRpbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIEZhc2UgMmEg4oCUIHBlcnNvbmFsIDUtc3RhciByYXRpbmcgY29udHJvbC4gVmlzdWFsL2ludGVyYWN0aW9uXG4vLyAgbW9kZWwgYm9ycm93ZWQgZnJvbSBxZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbiAoc2luZ2xlIGZvY3VzYWJsZVxuLy8gIGhvc3QsIGhvdmVyLXByZXZpZXcsIGNsaWNrLXRvLXRvZ2dsZS1vZmYpLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnFkbmFwcm8tc3Rhci1yYXRpbmcge1xuICAgIC0tYy1mb2N1cy1yaW5nOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAgIC0tYy1mb2N1cy1nbG93OiByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMnB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgLnN0YXItcmF0aW5nLXN0YXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTMwMCk7XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDEyMG1zIGVhc2UsIHRyYW5zZm9ybSAxMjBtcyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSk7XG4gICAgfVxuICAgIC5zdGFyLXJhdGluZy1zdGFyLWZpbGxlZCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LWJvcmRlcik7XG4gICAgfVxuXG4gICAgJjpub3QoLnN0YXItcmF0aW5nLXJlYWRvbmx5KSAuc3Rhci1yYXRpbmctc3Rhcjpob3ZlciB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xNSk7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWMtZm9jdXMtcmluZyksIDAgMCAwIDZweCB2YXIoLS1jLWZvY3VzLWdsb3cpO1xuICAgIH1cblxuICAgIC8vIFwiYmlnXCIgKDIwcHggdnMgMTZweCBpY29ucykgaXMgYXBwbGllZCB2aWEgYSByZWFsIGBzaXplYCBhdHRyaWJ1dGUgb25cbiAgICAvLyBlYWNoIHFkbmFwcm8taWNvbiAocmVidWlsdCBpbiBKUyBvbiBhdHRyaWJ1dGUgY2hhbmdlKSDigJQgbm8gQ1NTXG4gICAgLy8gdHJhbnNmb3JtOnNjYWxlIG5lZWRlZCwgc28gbm8gc3RhbGUgbGF5b3V0IGdhcHMuXG5cbiAgICAmLnN0YXItcmF0aW5nLXJlYWRvbmx5IHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gcWRuYXByby1zdGFyLXJhdGluZyB7XG4gICAgLS1jLWZvY3VzLXJpbmc6ICNhNWFjZmY7XG4gICAgLS1jLWZvY3VzLWdsb3c6IHJnYmEoMTY1LCAxNzIsIDI1NSwgMC40MCk7XG5cbiAgICAuc3Rhci1yYXRpbmctc3RhciB7XG4gICAgICAgIGNvbG9yOiAjNGE0ZTVjO1xuICAgIH1cbiAgICAuc3Rhci1yYXRpbmctc3Rhci1maWxsZWQge1xuICAgICAgICBjb2xvcjogI2ZmZDU0YTtcbiAgICB9XG59XG4iLCIvLyBxZG5hcHJvLXN0YXQtY2FyZCDigJQgY29tcGFjdCBzdGF0IHRpbGUgZm9yIGEgcGFnZSBoZWFkZXIgcm93LlxuLy8gU291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBzdHlsZXM7IGVkaXQgSEVSRSwgdGhlbiBydW4gYGd1bHAgc2Fzcy12MWBcbi8vIChjb21waWxlcyBpbnRvIHdlYi9jc3MvdjEvc3R5bGUtdjEuY3NzKS4gUGxhaW4gQ1NTIG9uIHB1cnBvc2UgdG8gbWF0Y2ggdGhlXG4vLyBvdGhlciB2MiBjb21wb25lbnQgc291cmNlcy5cbi8vXG4vLyBUd28gbG9va3MgdmlhIHRoZSB2YXJpYW50IGNsYXNzOlxuLy8gICAuc3RhdC1jYXJkLXZhcmlhbnQtZGVmYXVsdCDigJQgbWluaW1hbCB3aGl0ZSBjYXJkICh0aGUgb3JpZ2luYWwgbG9vaylcbi8vICAgLnN0YXQtY2FyZC12YXJpYW50LWFjY2VudCAg4oCUIHRvbmUtdGludGVkIGNhcmQgd2l0aCBhIHdoaXRlIGljb24gY2hpcFxuLy8gVG9uZSAoLnN0YXQtY2FyZC10b25lLSopIHNldHMgdGhlIGFjY2VudCArIHNvZnQtdGludCB2aWEgQ1NTIHZhcnMsIHNvIHRoZVxuLy8gdmFyaWFudHMgc3RheSB0b25lLWFnbm9zdGljLiBTdGF0ZXM6IGhvdmVyIC8gcHJlc3NlZCAvIGZvY3VzIC8gZGlzYWJsZWQuXG4vL1xuLy8gVGhyZWUgaGVpZ2h0cyB2aWEgdGhlIHNpemUgY2xhc3MgKC5zdGF0LWNhcmQtc2l6ZS1sYXJnZSBpcyB0aGUgZGVmYXVsdCBhbmRcbi8vIHN0YXlzIGV4YWN0bHkgYXMgaXQgd2FzLCBzbyBldmVyeSBleGlzdGluZyBwYWdlIGlzIHVudG91Y2hlZCk6XG4vLyAgIGxhcmdlICDigJQgODBweCAgKGRlZmF1bHQpXG4vLyAgIG1lZGl1bSDigJQgNjBweFxuLy8gICBzbWFsbCAg4oCUIDQ0cHhcbi8vIFRoZSBzaXplIGNsYXNzZXMgY29tZSBBRlRFUiB0aGUgdmFyaWFudCBydWxlcyBvbiBwdXJwb3NlOiBhdCBlcXVhbFxuLy8gc3BlY2lmaWNpdHkgdGhlIGxhdGVyIHJ1bGUgd2lucywgc28gYSBzaXplIG92ZXJyaWRlcyB0aGUgYWNjZW50IHZhcmlhbnQnc1xuLy8gYmlnZ2VyIGljb24gY2hpcCBhbmQgdmFsdWUgZm9yIGJvdGggdmFyaWFudHMgYXQgb25jZS4gW0tpbSAxMC4wOC4yMDI2XVxuXG4ucWRuYXByby1zdGF0LWNhcmQge1xuICAtLXNjLWFjY2VudDogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgLS1zYy1zb2Z0OiAgIHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSk7XG4gIC0tc2MtYm9yZGVyOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCk7XG5cbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiA4MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIHBhZGRpbmc6IDEycHggMTRweDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdC0yKTtcbiAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMTYwbXMgZWFzZSwgdHJhbnNmb3JtIDE2MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGJvcmRlci1jb2xvciAxNDBtcyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDE0MG1zIGVhc2U7XG59XG5cbi8vIC0tLSB0b25lcyAoYWNjZW50ICsgc29mdCB0aW50ICsgYm9yZGVyIHRpbnQpIC0tLVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC10b25lLXB1cnBsZSB7IC0tc2MtYWNjZW50OiB2YXIoLS1jLXB1cnBsZS01MDApOyAtLXNjLXNvZnQ6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSk7IC0tc2MtYm9yZGVyOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCk7IH1cbi5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtdG9uZS1yZWQgICAgeyAtLXNjLWFjY2VudDogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpOyAtLXNjLXNvZnQ6IHZhcigtLWMtc2lnbmFsLXJlZC1zb2Z0KTsgLS1zYy1ib3JkZXI6IHZhcigtLWMtdGFnLWNyaXRpY2FsLWJnKTsgfVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC10b25lLWdyZWVuICB7IC0tc2MtYWNjZW50OiB2YXIoLS1jLXN1Y2Nlc3MtYnJpZ2h0KTsgLS1zYy1zb2Z0OiB2YXIoLS1jLWNoaXAtZ3JlZW4tYmcpOyAtLXNjLWJvcmRlcjogdmFyKC0tYy1zaWduYWwtZ3JlZW4tMTAwKTsgfVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC10b25lLWJsdWUgICB7IC0tc2MtYWNjZW50OiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtaG92ZXIpOyAtLXNjLXNvZnQ6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSk7IC0tc2MtYm9yZGVyOiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtMi1iZyk7IH1cbi5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtdG9uZS1vcmFuZ2UgeyAtLXNjLWFjY2VudDogdmFyKC0tYy13YXJuLXllbGxvdy02MDApOyAtLXNjLXNvZnQ6IHZhcigtLWMtc2lnbmFsLW9yYW5nZS1iZyk7IC0tc2MtYm9yZGVyOiB2YXIoLS1jLXNpZ25hbC15ZWxsb3ctYmcpOyB9XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXRvbmUtZ3JheSAgIHsgLS1zYy1hY2NlbnQ6IHZhcigtLWMtZ3JleS01MDApOyAtLXNjLXNvZnQ6IHZhcigtLWMtYmctY2FyZC1ob3Zlcik7IC0tc2MtYm9yZGVyOiB2YXIoLS1jLWNoaXAtZ3JleS1ob3Zlcik7IH1cblxuLy8gLS0tIGlubmVyIHBhcnRzIC0tLVxuLnFkbmFwcm8tc3RhdC1jYXJkIC5zdGF0LWNhcmQtaWNvbiB7XG4gIHdpZHRoOiAzNHB4O1xuICBoZWlnaHQ6IDM0cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogOXB4O1xufVxuLnFkbmFwcm8tc3RhdC1jYXJkIC5zdGF0LWNhcmQtYm9keSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMXB4O1xuICBtaW4td2lkdGg6IDA7XG59XG4ucWRuYXByby1zdGF0LWNhcmQgLnN0YXQtY2FyZC12YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nKTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5xZG5hcHJvLXN0YXQtY2FyZCAuc3RhdC1jYXJkLWxhYmVsIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi8vIC0tLSB2YXJpYW50OiBhY2NlbnQgKHRvbmUtdGludGVkLCB3aGl0ZSBpY29uIGNoaXAsIGJvbGRlciB2YWx1ZSkgLS0tXG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXZhcmlhbnQtYWNjZW50IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Mtc29mdCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2MtYm9yZGVyKTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtdmFyaWFudC1hY2NlbnQgLnN0YXQtY2FyZC1pY29uIHtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYm94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMjAsIDI1LCA4MCwgMC4xMCk7XG59XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXZhcmlhbnQtYWNjZW50IC5zdGF0LWNhcmQtdmFsdWUge1xuICBmb250LXNpemU6IDIycHg7XG59XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXZhcmlhbnQtYWNjZW50IC5zdGF0LWNhcmQtbGFiZWwge1xuICBjb2xvcjogdmFyKC0tc2MtYWNjZW50KTtcbn1cblxuLy8gLS0tIHZhcmlhbnQ6IGVtcHR5IChkYXNoZWQsIG11dGVkIOKAlCB2YWx1ZSBpcyAwIC8gbm90aGluZyBsaW5rZWQgeWV0KSAtLS1cbi8vIERpc3Rpbmd1aXNoZXMgYW4gRU1QVFkgc3RhdCAoXCJHZWVuIGJlcmljaHRlblwiKSBmcm9tIGFuIGFjdGl2ZSBvbmU6IGRhc2hlZFxuLy8gYm9yZGVyLCBtdXRlZCB0b25lLXRpbnRlZCBpY29uIGNoaXAsIE5PIG51bWJlciDigJQgdGhlIGxhYmVsICsgLnN0YXQtY2FyZC1zdWJcbi8vIGhpbnQgY2FycnkgdGhlIG1lc3NhZ2UsIGFuZCBob3ZlciB0dXJucyBpbnZpdGluZyAocHVycGxlKS4gW0tpbSAyMDI2LTA2LTE0XVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC12YXJpYW50LWVtcHR5IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgYm9yZGVyOiAxLjVweCBkYXNoZWQgdmFyKC0tYy1zaWRlYmFyLWljb24pO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC12YXJpYW50LWVtcHR5IC5zdGF0LWNhcmQtaWNvbiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNjLXNvZnQpO1xuICBvcGFjaXR5OiAwLjU1O1xufVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC12YXJpYW50LWVtcHR5IC5zdGF0LWNhcmQtdmFsdWUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC12YXJpYW50LWVtcHR5IC5zdGF0LWNhcmQtbGFiZWwge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQtcHApO1xuICB0cmFuc2l0aW9uOiBjb2xvciAxNDBtcyBlYXNlO1xufVxuLnFkbmFwcm8tc3RhdC1jYXJkIC5zdGF0LWNhcmQtc3ViIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tYy1zaWRlYmFyLWljb24pO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgdHJhbnNpdGlvbjogY29sb3IgMTQwbXMgZWFzZTtcbn1cbi5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtdmFyaWFudC1lbXB0eTpub3QoLnN0YXQtY2FyZC1kaXNhYmxlZCk6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtcHVycGxlLTMwMCk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbn1cbi5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtdmFyaWFudC1lbXB0eTpub3QoLnN0YXQtY2FyZC1kaXNhYmxlZCk6aG92ZXIgLnN0YXQtY2FyZC1sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xufVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC12YXJpYW50LWVtcHR5Om5vdCguc3RhdC1jYXJkLWRpc2FibGVkKTpob3ZlciAuc3RhdC1jYXJkLXN1YiB7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS0zMDApO1xufVxuXG4vLyAtLS0gd2FybmluZyBzdGF0ZTogYSByZXF1aXJlZCBzZXR0aW5nIGlzIG9uIGJ1dCBub3RoaW5nIGlzIGxpbmtlZCB5ZXQgLS0tXG4vLyBBbWJlciBhY2NlbnQ7IG9uIHRoZSBlbXB0eSB2YXJpYW50IHRoZSBkYXNoZWQgYm9yZGVyICsgbGFiZWwgKyBzdWIgdHVybiBhbWJlclxuLy8gc28gdGhlIGNhcmQgcmVhZHMgYXMgXCJhY3RpZSBub2RpZ1wiLCBtYXRjaGluZyB0aGUgYW1iZXIgcm93IHdhcm5pbmdzLiBbS2ltIDIwMjYtMDYtMTVdXG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXdhcm5pbmcge1xuICAtLXNjLWFjY2VudDogdmFyKC0tYy13YXJuLXllbGxvdy02MDApO1xuICAtLXNjLXNvZnQ6IHZhcigtLWMtc2lnbmFsLW9yYW5nZS1iZyk7XG4gIC0tc2MtYm9yZGVyOiB2YXIoLS1jLXNpZ25hbC15ZWxsb3ctYmcpO1xufVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC13YXJuaW5nLnN0YXQtY2FyZC12YXJpYW50LWVtcHR5IHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXdhcm4teWVsbG93LTYwMCk7XG59XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXdhcm5pbmcuc3RhdC1jYXJkLXZhcmlhbnQtZW1wdHkgLnN0YXQtY2FyZC1pY29uIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtd2FybmluZyAuc3RhdC1jYXJkLXN1YiB7XG4gIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC15ZWxsb3ctdGV4dCk7XG59XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXdhcm5pbmcuc3RhdC1jYXJkLXZhcmlhbnQtZW1wdHkgLnN0YXQtY2FyZC1sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS1jLXRhZy13YXJuaW5nLXRleHQpO1xufVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC13YXJuaW5nLnN0YXQtY2FyZC12YXJpYW50LWVtcHR5Om5vdCguc3RhdC1jYXJkLWRpc2FibGVkKTpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy13YXJuLXllbGxvdy02MDApO1xufVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC13YXJuaW5nLnN0YXQtY2FyZC12YXJpYW50LWVtcHR5Om5vdCguc3RhdC1jYXJkLWRpc2FibGVkKTpob3ZlciAuc3RhdC1jYXJkLWxhYmVsIHtcbiAgY29sb3I6IHZhcigtLWMtdGFnLXdhcm5pbmctdGV4dCk7XG59XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXdhcm5pbmcuc3RhdC1jYXJkLXZhcmlhbnQtZW1wdHk6bm90KC5zdGF0LWNhcmQtZGlzYWJsZWQpOmhvdmVyIC5zdGF0LWNhcmQtc3ViIHtcbiAgY29sb3I6IHZhcigtLWMtdGFnLXdhcm5pbmctdGV4dCk7XG59XG5cbi8vIC0tLSBzaXplcyAtLS1cbi8vIFBsYWNlZCBhZnRlciB0aGUgdmFyaWFudHMgc28gYSBzaXplIHdpbnMgb24gYm90aCBkZWZhdWx0IGFuZCBhY2NlbnQuXG4vLyBsYXJnZSA9IHRoZSBvcmlnaW5hbCBudW1iZXJzOyB3cml0dGVuIG91dCBzbyB0aGUgY2xhc3MgaXMgcmVhbCBhbmQgY2FuIGJlXG4vLyBzZXQgZXhwbGljaXRseSB3aXRob3V0IGNoYW5naW5nIGFueXRoaW5nLlxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC1zaXplLWxhcmdlIHtcbiAgbWluLWhlaWdodDogODBweDtcbiAgcGFkZGluZzogMTJweCAxNHB4O1xuICBnYXA6IDEwcHg7XG59XG5cbi5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtc2l6ZS1tZWRpdW0ge1xuICBtaW4taGVpZ2h0OiA2MHB4O1xuICBwYWRkaW5nOiA5cHggMTJweDtcbiAgZ2FwOiA5cHg7XG4gIGJvcmRlci1yYWRpdXM6IDExcHg7XG59XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXNpemUtbWVkaXVtIC5zdGF0LWNhcmQtaWNvbiB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cbi8vIFRoZSBsYWJlbCBhbmQgdGhlIHN1YiBoYXZlIG5vIGxpbmUtaGVpZ2h0IG9mIHRoZWlyIG93biBvbiB0aGUgbGFyZ2UgY2FyZCDigJRcbi8vIHRoZXkgaW5oZXJpdCB0aGUgcGFnZSdzLiBBdCA4MHB4IHRoYXQgbmV2ZXIgc2hvd2VkLCBiZWNhdXNlIG1pbi1oZWlnaHQgd29uLlxuLy8gQXQgNjAvNDRweCBpdCBkb2VzOiBhbiBpbmhlcml0ZWQgMjRweCBsaW5lIHB1c2hlcyB0aGUgY2FyZCB0YWxsZXIgdGhhbiB0aGVcbi8vIHNpemUgaXQgcHJvbWlzZXMuIFNvIHRoZSBzbWFsbGVyIHNpemVzIHBpbiB0aGVpciBvd24gbGluZS1oZWlnaHQuIFsxMC4wOC4yMDI2XVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC1zaXplLW1lZGl1bSAuc3RhdC1jYXJkLXZhbHVlIHsgZm9udC1zaXplOiAxN3B4OyB9XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXNpemUtbWVkaXVtIC5zdGF0LWNhcmQtbGFiZWwgeyBmb250LXNpemU6IDExcHg7IGxpbmUtaGVpZ2h0OiAxLjM1OyB9XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXNpemUtbWVkaXVtIC5zdGF0LWNhcmQtc3ViICAgeyBmb250LXNpemU6IDExcHg7IGxpbmUtaGVpZ2h0OiAxLjM1OyB9XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXNpemUtbWVkaXVtLnN0YXQtY2FyZC12YXJpYW50LWVtcHR5IC5zdGF0LWNhcmQtbGFiZWwgeyBmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjM7IH1cblxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC1zaXplLXNtYWxsIHtcbiAgbWluLWhlaWdodDogNDRweDtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGdhcDogOHB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xufVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC1zaXplLXNtYWxsIC5zdGF0LWNhcmQtaWNvbiB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbn1cbi5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtc2l6ZS1zbWFsbCAuc3RhdC1jYXJkLXZhbHVlIHsgZm9udC1zaXplOiAxNXB4OyB9XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXNpemUtc21hbGwgLnN0YXQtY2FyZC1sYWJlbCB7IGZvbnQtc2l6ZTogMTBweDsgbGluZS1oZWlnaHQ6IDEuMzU7IH1cbi5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtc2l6ZS1zbWFsbCAuc3RhdC1jYXJkLXN1YiAgIHsgZm9udC1zaXplOiAxMHB4OyBsaW5lLWhlaWdodDogMS4zNTsgfVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC1zaXplLXNtYWxsLnN0YXQtY2FyZC12YXJpYW50LWVtcHR5IC5zdGF0LWNhcmQtbGFiZWwgeyBmb250LXNpemU6IDEzcHg7IGxpbmUtaGVpZ2h0OiAxLjM7IH1cblxuLy8gVGhlIGFjY2VudCB2YXJpYW50IGtlZXBzIGl0cyB3aGl0ZSBjaGlwIG9uIGV2ZXJ5IHNpemUsIGJ1dCBub3QgdGhlIGV4dHJhXG4vLyBjaGlwIHBhZGRpbmc6IGF0IDYwLzQ0cHggYSA0MHB4IGNoaXAgbm8gbG9uZ2VyIGZpdHMuXG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXZhcmlhbnQtYWNjZW50LnN0YXQtY2FyZC1zaXplLW1lZGl1bSAuc3RhdC1jYXJkLXZhbHVlIHsgZm9udC1zaXplOiAxOHB4OyB9XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXZhcmlhbnQtYWNjZW50LnN0YXQtY2FyZC1zaXplLXNtYWxsIC5zdGF0LWNhcmQtdmFsdWUgIHsgZm9udC1zaXplOiAxNXB4OyB9XG5cbi8vIC0tLSBzdGF0ZTogaG92ZXIgLS0tXG4ucWRuYXByby1zdGF0LWNhcmQ6bm90KC5zdGF0LWNhcmQtZGlzYWJsZWQpOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zYy1hY2NlbnQpO1xuICBib3gtc2hhZG93OiAwIDRweCAxNHB4IHJnYmEoMjAsIDI1LCA4MCwgMC4xMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbn1cbi5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtdmFyaWFudC1hY2NlbnQ6bm90KC5zdGF0LWNhcmQtZGlzYWJsZWQpOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMCA2cHggMThweCByZ2JhKDIwLCAyNSwgODAsIDAuMTIpO1xufVxuXG4vLyAtLS0gc3RhdGU6IHByZXNzZWQgLS0tXG4ucWRuYXByby1zdGF0LWNhcmQ6bm90KC5zdGF0LWNhcmQtZGlzYWJsZWQpOmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgwLjk4NSk7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDIwLCAyNSwgODAsIDAuMTIpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA2MG1zO1xufVxuXG4vLyAtLS0gc3RhdGU6IGZvY3VzIChrZXlib2FyZCkgLS0tXG4ucWRuYXByby1zdGF0LWNhcmQ6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG4ucWRuYXByby1zdGF0LWNhcmQ6bm90KC5zdGF0LWNhcmQtZGlzYWJsZWQpOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXItY29sb3I6IHZhcigtLXNjLWFjY2VudCk7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDRweCB2YXIoLS1mb2N1cy1nbG93KTtcbn1cblxuLy8gLS0tIHN0YXRlOiBkaXNhYmxlZCAtLS1cbi5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4vLyBDb252ZW5pZW5jZSByb3cgd3JhcHBlciAoY29uc3VtZXJzIG1heSB1c2UgdGhlaXIgb3duIGxheW91dCBpbnN0ZWFkKS5cbi5xZG5hcHJvLXN0YXQtY2FyZC1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEwcHg7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLy8gLS0tIGRhcmsgdGhlbWUgLS0tXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tc3RhdC1jYXJkLFxuW2RhdGEtdGhlbWUtZGFya10gLnFkbmFwcm8tc3RhdC1jYXJkIHtcbiAgYmFja2dyb3VuZDogIzJhMmQzNjtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXdoaXRlLTA4KTtcbn1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1zdGF0LWNhcmQgLnN0YXQtY2FyZC12YWx1ZSxcbltkYXRhLXRoZW1lLWRhcmtdIC5xZG5hcHJvLXN0YXQtY2FyZCAuc3RhdC1jYXJkLXZhbHVlIHtcbiAgY29sb3I6ICNmMGYxZmE7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tc3RhdC1jYXJkIC5zdGF0LWNhcmQtbGFiZWwsXG5bZGF0YS10aGVtZS1kYXJrXSAucWRuYXByby1zdGF0LWNhcmQgLnN0YXQtY2FyZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDUpO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtdmFyaWFudC1hY2NlbnQsXG5bZGF0YS10aGVtZS1kYXJrXSAucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXZhcmlhbnQtYWNjZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTApO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtdmFyaWFudC1hY2NlbnQgLnN0YXQtY2FyZC1pY29uLFxuW2RhdGEtdGhlbWUtZGFya10gLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC12YXJpYW50LWFjY2VudCAuc3RhdC1jYXJkLWljb24ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTApO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuIiwiLy8gcWRuYXByby1zdGlja2VyLXNoZWV0IOKAlCBQdWxzZSBzdGlja2VyIHBpY2tlciBpbiBhIFdISVRFIChzdGFuZGFyZCkgYm90dG9tIHNoZWV0LlxuLy8gRkxBVCBDU1M7IHRoZSBzaGVldCBzdXJmYWNlIGl0c2VsZiBsaXZlcyBvbiBxZG5hcHJvLWJvdHRvbS1zaGVldCAobm8gdmFyaWFudCkuXG4vLyBFZGl0IEhFUkUsIHRoZW4gYGd1bHAgc2Fzcy12MWAuXG4vL1xuLy8gSU1QT1JUQU5UOiB0aGUgaW5uZXIgYm90dG9tLXNoZWV0IFBPUlRBTFMgaXRzZWxmIHRvIDxib2R5PiBvbiBvcGVuLCBzbyBpdHMgY29udGVudFxuLy8gbm8gbG9uZ2VyIHNpdHMgdW5kZXIgdGhlIDxxZG5hcHJvLXN0aWNrZXItc2hlZXQ+IGhvc3QuIEFsbCBzdHlsaW5nIGlzIHRoZXJlZm9yZVxuLy8gc2NvcGVkIHRvIFtkYXRhLXN0aWNrZXItc2hlZXRdIChhIERBVEEtQVRUUklCVVRFIGhvb2sgb24gdGhhdCBpbm5lciBib3R0b20tc2hlZXQsXG4vLyB3aGljaCB0cmF2ZWxzIHdpdGggdGhlIHBvcnRhbCkgYW5kIC5zcy1yb290ICh0aGUgY29udGVudCByb290IGluc2lkZSBpdCkg4oCUIE5FVkVSXG4vLyB1bmRlciAucWRuYXByby1zdGlja2VyLXNoZWV0LiBBIGRhdGEtYXR0cmlidXRlIGlzIHVzZWQgaW5zdGVhZCBvZiBhIGNsYXNzIGJlY2F1c2Vcbi8vIHFkbmFwcm8tYm90dG9tLXNoZWV0IHJlYnVpbGRzIGl0cyBvd24gY2xhc3NOYW1lIG9uIGV2ZXJ5IHJlbmRlcigpIOKAlCBhIGNsYXNzIGFkZGVkXG4vLyBoZXJlIHdvdWxkIGJlIHNpbGVudGx5IHdpcGVkLCBzYW1lIGxlc3NvbiBhcyBxZG5hcHJvLWVtb2ppLXNoZWV0J3MgLmVzLXNoZWV0LlxuXG4ucWRuYXByby1zdGlja2VyLXNoZWV0IHtcbiAgZGlzcGxheTogY29udGVudHM7IC8vIHRoZSBob3N0IGlzIGp1c3QgYSB3cmFwcGVyOyB0aGUgcmVhbCBVSSBsaXZlcyBvbiB0aGUgcG9ydGFsZWQgc2hlZXRcbn1cblxuLy8gLS0tLSBQYW5lbDogb25lIEZJWEVEIGhlaWdodCBmb3IgdGhlIHdob2xlIGxpZmV0aW1lIC0tLS1cbi8vIDgwJSwgcmFpc2VkIGZyb20gdGhlIDYyJSBpbiB0aGUgZGVzaWduIChLaW0gMTYuMDguMjAyNjogXCJkZSBib3R0b20gc2hlZXQgbWFnXG4vLyBob2dlciB6b2RhdCBqZSB3YXQgbWVlciBrYW4gemllblwiKS4gTWVhc3VyZWQgb24gYSAzOTB4ODQ0IHBob25lOiA2MiUgc2hvd2VkXG4vLyAzLjkgcm93cywgODAlIHNob3dzIDUuNiDigJQgaGFsZiBhIHNjcmVlbiBtb3JlIHN0aWNrZXJzIGZvciBmcmVlLCB3aXRob3V0XG4vLyBtYWtpbmcgYSBzaW5nbGUgb25lIHNtYWxsZXIuIEEgRklYRUQgaGVpZ2h0IGFuZCBuZXZlciBhIG1lYXN1cmVkIG9uZTogdGhlXG4vLyBjb250ZW50IGluc2lkZSBjaGFuZ2VzIChjaGlwcywgc2VhcmNoIHJlc3VsdHMsIGVtcHR5IHN0YXRlKSBhbmQgYSBzaGVldCB3aG9zZVxuLy8gb3V0bGluZSBtb3ZlcyBhbG9uZyB3aXRoIGl0IGlzIHRoZSB3aGFjay1hLW1vbGUgZnJvbSB0aGUgZXZlbnQtc2hlZXQuXG4ucWRuYXByby1ib3R0b20tc2hlZXRbZGF0YS1zdGlja2VyLXNoZWV0XSAuYnMtcGFuZWwge1xuICBoZWlnaHQ6IDgwJTtcbiAgbWF4LWhlaWdodDogODAlO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0W2RhdGEtc3RpY2tlci1zaGVldF0gLmJzLWJvZHkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBnYXA6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8vIC0tLS0gT3BwZXJ2bGFrIDI6IGRlIHBvcG92ZXIgKHRhYmxldC9kZXNrdG9wKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8g4pqg77iPIERlIEhPU1QgbW9ldCBkZSBicmVlZHRlIHpldHRlbi4gcWRuYXByby1wb3BvdmVyIGlzIHN0YW5kYWFyZCAyODBweCwgd2FudCBkYXRcbi8vIGlzIGVlbiBNRU5VLW1hYXQ7IGVlbiBncmlkIHZhbiB2aWpmIHN0aWNrZXJzIHBhc3QgZGFhciBuaWV0IGluIGVuIHN0ZWVrdCBlclxuLy8gemljaHRiYWFyIHVpdC4gMzgwcHggZ2VlZnQgdmlqZiBrb2xvbW1lbiB2YW4gfjY0cHggcGx1cyBkZSBwYWRkaW5nLlxucWRuYXByby1wb3BvdmVyW2RhdGEtc3RpY2tlci1zaGVldF0ge1xuICB3aWR0aDogbWluKDkydncsIDM4MHB4KTtcbiAgcGFkZGluZzogOHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLy8gRWVuIFZBU1RFIGhvb2d0ZSwgbmV0IGFscyBkZSA4MCUgdmFuIGRlIHNoZWV0OiBkZSBpbmhvdWQgd2lzc2VsdCAoY2hpcHMsXG4vLyB6b2VrcmVzdWx0YWF0LCBsZWdlIHN0YWF0KSBlbiBlZW4ga2FhcnQgZGllIG1ldCB6aWpuIGluaG91ZCBtZWVncm9laXQgc3ByaW5ndFxuLy8gYmlqIGVsa2UgdG9ldHNhYW5zbGFnLiBCaW5uZW4gZGllIGhvb2d0ZSBzY3JvbHQgLnNzLXNjcm9sbC5cbnFkbmFwcm8tcG9wb3ZlcltkYXRhLXN0aWNrZXItc2hlZXRdIC5zcy1yb290IHtcbiAgLy8g4pqg77iPIGBmbGV4OiBub25lYCBob29ydCBISUVSIGJpajogLnNzLXJvb3QgZHJhYWd0IGBmbGV4OiAxYCB2b29yIGRlIGJvdHRvbVxuICAvLyBzaGVldCwgZW4gaW4gZWVuIGZsZXgta29sb20gcmVrZW50IGRlIGZsZXgtdmVyZGVsaW5nIGRlIGhvb2d0ZSB1aXQgZW5cbiAgLy8gbmVnZWVydCBgaGVpZ2h0YCB2b2xzdHJla3QuIFpvbmRlciBkZXplIHJlZ2VsIGdyb2VpZGUgZGUga2FhcnQgZG9vciB0b3QgZGVcbiAgLy8gdm9sbGUgaW5ob3VkICgzMzY0cHggZ2VtZXRlbikgaW4gcGxhYXRzIHZhbiB0ZSBzY3JvbGxlbi5cbiAgZmxleDogbm9uZTtcbiAgaGVpZ2h0OiA0NjBweDtcbn1cbi8vIERlIHpvZWtiYWxrIHN0YWF0IGluIGVlbiBwb3BvdmVyIGFsIGJpbm5lbiBkZSBwYWRkaW5nIHZhbiBkZSBrYWFydCB6ZWxmLlxucWRuYXByby1wb3BvdmVyW2RhdGEtc3RpY2tlci1zaGVldF0gLnNzLXNlYXJjaCB7XG4gIHBhZGRpbmc6IDAgMCA4cHg7XG59XG5xZG5hcHJvLXBvcG92ZXJbZGF0YS1zdGlja2VyLXNoZWV0XSAuc3MtY2F0cyB7XG4gIHBhZGRpbmc6IDAgMCAxMHB4O1xufVxucWRuYXByby1wb3BvdmVyW2RhdGEtc3RpY2tlci1zaGVldF0gLnNzLWNvdW50IHtcbiAgcGFkZGluZzogMCAwIDZweDtcbn1cbnFkbmFwcm8tcG9wb3ZlcltkYXRhLXN0aWNrZXItc2hlZXRdIC5zcy1ncmlkIHtcbiAgcGFkZGluZzogMCAwIDhweDtcbn1cblxuLnNzLXJvb3Qge1xuICBmbGV4OiAxO1xuICBtaW4taGVpZ2h0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG59XG5cbi8vIC0tLS0gU2VhcmNoIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnNzLXNlYXJjaCB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBwYWRkaW5nOiA0cHggMTJweCA4cHg7XG59XG5cbi8vIC0tLS0gQ2F0ZWdvcnkgY2hpcHMgKGhvcml6b250YWwgc2Nyb2xsKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5zcy1jYXRzIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiAwIDEycHggMTBweDtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7XG59XG4uc3MtY2F0czo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogMDsgaGVpZ2h0OiAwOyBkaXNwbGF5OiBub25lOyB9XG5cbi8vIFRoZSBjaGlwcyBhcmUgcGxhaW4gcWRuYXByby10YWdzOiB2YXJpYW50PVwib3V0bGluZVwiIHdoZW4gdW5jaG9zZW4sXG4vLyBjb2xvcj1cImFjdGlvblwiIHdoZW4gY2hvc2VuLiBCb3RoIGJlY2FtZSByZWFsIGNvbXBvbmVudCBzdGF0ZXMgb24gMTYuMDguMjAyNlxuLy8gKEtpbTogXCJkZXplIHRhZ3MsIGRhdCB6aWpuIGdlZW4gY29tcG9uZW50cyBkZW5rIGlrXCIg4oCUIHplIHdhcmVuIGhldCB3ZWwsIG1hYXJcbi8vIGh1biB3aXR0ZS1tZXQtcmFuZCBzdGFuZCBiZXN0b25kIG5vZyBuaWV0IGluIGhldCBjb21wb25lbnQsIGVuIGRpZSBob29ydCBkYWFyXG4vLyB0aHVpcyBlbiBuaWV0IGhpZXIpLiBFciBzdGFhdCBkdXMgZ2VlbiBlbmtlbGUga2xldXJyZWdlbCBtZWVyIGluIGRpdCBiZXN0YW5kLlxuXG4vLyBIRVQgU0NST0xMRU5ERSBERUVMIHZhbiBkZSBzaGVldDogdGVsbGVyICsgZ3JpZCArIGxlZ2Ugc3RhYXQgKyBvZmZsaW5lLW1lbGRpbmcuXG4vLyBEaXQgc3RvbmQgbmVyZ2VucyBpbiBkZSBDU1MsIGR1cyBkZXplIGRvb3MgZ3JvZWlkZSBnZXdvb24gZG9vciB0b3QgfjQ5MDBweCBpblxuLy8gZWVuIHBhbmVlbCB2YW4gNjc1IGVuIGAuYnMtYm9keSB7IG92ZXJmbG93OiBoaWRkZW4gfWAga25pcHRlIGRlIHJlc3QgZXJhZiDigJRcbi8vIGVyIHdhcyBnZWVuIGVua2VsZSBtYW5pZXIgb20gYmlqIHN0aWNrZXIgMjAgdGUga29tZW4gKG1lbGRpbmcgS2ltIDE2LjA4LjIwMjY6XG4vLyBcImlrIGthbiBvb2sgbmlldCBpbiBkZSBzdGlja2VycyBzY3JvbGxlblwiKS4gYG1pbi1oZWlnaHQ6IDBgIGhvb3J0IGVyIHZlcnBsaWNodFxuLy8gYmlqOiB6b25kZXIgZGllIHJlZ2VsIHdlaWdlcnQgZWVuIGZsZXgta2luZCBrbGVpbmVyIHRlIHdvcmRlbiBkYW4gemlqbiBpbmhvdWRcbi8vIGVuIHNjcm9sbHQgZXIgYWxzbm9nIG5pZXRzLiBab2VrYmFsayBlbiBjaGlwcyBibGlqdmVuIHN0YWFuIChmbGV4LXNocmluazogMCkuXG4uc3Mtc2Nyb2xsIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgLy8gR2VlbiB6aWNodGJhcmUgc2Nyb2xsYmFsaywgemVsZmRlIGFmc3ByYWFrIGFscyBkZSBib3R0b20gc2hlZXQgemVsZi5cbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7XG59XG4uc3Mtc2Nyb2xsOjotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiAwOyBoZWlnaHQ6IDA7IGRpc3BsYXk6IG5vbmU7IH1cblxuLnNzLWNvdW50IHtcbiAgcGFkZGluZzogMCAxMnB4IDZweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbn1cblxuLy8gNSBrb2xvbW1lbiBpLnAudi4gNCAoS2ltIDE2LjA4LjIwMjY6IFwiaWsgd2lsIGVyIG1lZXIgdGVnZWxpamsgemllblwiLCB6ZVxuLy8gYWNjZXB0ZWVydCBkYXQgZGUgdGVnZWxzIGtsZWluZXIgd29yZGVuKS4gUmVrZW5zb20gb3AgZWVuIHRlbGVmb29uIHZhblxuLy8gMzkwcHQgYnJlZWQsIG1ldCBkZSAxMnB4IHppanBhZGRpbmcgZW4gNnB4IGdhcCBoaWVyb25kZXI6ICgzOTAgLSAyKjEyIC1cbi8vIDQqNikgLyA1ID0gKDM5MCAtIDI0IC0gMjQpIC8gNSA9IDM0MiAvIDUgPSA2OCw0cHggcGVyIHRlZ2VsICh3YXMgODdweCBiaWpcbi8vIDQga29sb21tZW4pLiBDZWxwYWRkaW5nICguc3MtY2VsbCwgNnB4KSBpcyBkYWFybWVlIDYvNjgsNCDiiYggOCw4JSB2YW4gZGVcbi8vIHRlZ2VsIOKAlCBvbmRlciBkZSBncmVucyB2YW4gZWVuIHRpZW5kZSwgZHVzIGRpZSBibGlqZnQgb3AgNnB4IHN0YWFuLlxuLnNzLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg1LCAxZnIpO1xuICBnYXA6IDZweDtcbiAgcGFkZGluZzogMCAxMnB4IDEycHg7XG59XG4vLyBUaGUgSlMgaGlkZXMgdGhlIGdyaWQgd2l0aCB0aGUgYGhpZGRlbmAgQVRUUklCVVRFIHdoZW4gYSBzZWFyY2ggaGFzIG5vIGhpdHMuXG4vLyBXaXRob3V0IHRoaXMgcnVsZSB0aGF0IGRvZXMgbm90aGluZzogYGRpc3BsYXk6IGdyaWRgIGFib3ZlIHdpbnMgZnJvbSB0aGVcbi8vIGJyb3dzZXIncyBvd24gW2hpZGRlbl0geyBkaXNwbGF5OiBub25lIH0sIHNvIHRoZSBwcmV2aW91cyByZXN1bHRzIGtlcHQgc2l0dGluZ1xuLy8gdW5kZXIgdGhlIFwibm90aGluZyBmb3VuZFwiIGxpbmUuIE1lYXN1cmVkIG9uIDE2LjA4LjIwMjYg4oCUIHNhbWUgZmFtaWx5IGFzIHRoZVxuLy8gZGlzYWJsZWQgYm90dG9tLXNoZWV0IGJ1dHRvbiB0aGF0IHN0YXllZCB2aXNpYmxlIGZvciB0aGUgc2FtZSByZWFzb24uXG4uc3MtZ3JpZFtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLnNzLWNlbGwge1xuICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBwYWRkaW5nOiA2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zcy1jZWxsOmFjdGl2ZSB7IGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZC1ob3Zlcik7IH1cbi8vIEhldCByYXN0ZXIgdG9vbnQgc2luZHMgMTguMDguMjAyNiBlZW4gU1RJTFNUQUFORCBiZWVsZCBlbiBnZWVuIGxvcGVuZGVcbi8vIGFuaW1hdGllIG1lZXI6IDMxNiBMb3R0aWUncyBvcCA2MCBmcHMgbWFha3RlbiBkZSBzaGVldCBvcCBlZW4gaVBhZCBvbmJydWlrYmFhclxuLy8gKHppZSBkZSBub3RpdGllIGJpaiBfcmVuZGVyR3JpZCgpIGluIHFkbmEtc3RpY2tlci1zaGVldC5qcykuIERlIHNlbGVjdG9yIHZvb3Jcbi8vIHFkbmFwcm8tbG90dGllIGJsaWpmdCBzdGFhbiB2b29yIGhldCBnZXZhbCBlZW4gY29uc3VtZW50IGVyIHplbGYgbm9nIMOpw6luIGluXG4vLyBlZW4gY2VsIHpldDsgZGUgPGltZz4gaXMgZGUgbm9ybWFsZSB3ZWcuXG4uc3MtY2VsbCAuc3MtaW1nLFxuLnNzLWNlbGwgcWRuYXByby1sb3R0aWUge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8vIG9iamVjdC1maXQgaG9vcnQgZXIgZXhwbGljaWV0IGJpajogZGUgcG9zdGVycyB6aWpuIHZpZXJrYW50LCBtYWFyIHpvbmRlciBkZXplXG4vLyByZWdlbCByZWt0IGVlbiA8aW1nPiBtZWUgbWV0IGVlbiBjZWwgZGllIGRvb3IgYWZyb25kaW5nIG5ldCBuaWV0IHZpZXJrYW50IGlzLlxuLnNzLWNlbGwgLnNzLWltZyB7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG5cbi8vIC0tLS0gRW1wdHkgc2VhcmNoIHN0YXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uc3MtZW1wdHkge1xuICBwYWRkaW5nOiA0NHB4IDI0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbn1cblxuLy8gLS0tLSBPZmZsaW5lIG5vdGljZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2FtZSB0cmFwIGFzIC5zcy1ncmlkIGFib3ZlLCBhbmQgbWVhc3VyZWQgd2l0aCB0aGUgc2FtZSByZXN1bHQ6IHRoZSBKUyBoaWRlc1xuLy8gdGhpcyBub3RpY2Ugd2l0aCB0aGUgYGhpZGRlbmAgYXR0cmlidXRlIHdoaWxlIG9ubGluZSwgYnV0IGBkaXNwbGF5OiBmbGV4YCB3aW5zLFxuLy8gc28gaXQga2VwdCBvY2N1cHlpbmcgMTU2cHggdW5kZXIgdGhlIGdyaWQuIE91dCBvZiBzaWdodCBiZWxvdyAyMjAgc3RpY2tlcnMsIGJ1dFxuLy8gdGhlcmUg4oCUIGFuZCBvbiBhIHNob3J0IHNlYXJjaCByZXN1bHQgaXQgd291bGQgaGF2ZSBiZWVuIGluIHBsYWluIHZpZXcuXG4uc3Mtb2ZmbGluZVtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLnNzLW9mZmxpbmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIHBhZGRpbmc6IDU2cHggMjRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbn1cbi5zcy1vZmZsaW5lIC5zcy1pY29uIHtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbn1cbi5zcy1vZmZsaW5lLXRleHQge1xuICBmb250LXNpemU6IDE0cHg7XG4gIG1heC13aWR0aDogMjYwcHg7XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9zdWdnZXN0aW9uLWNoaXAvX3N1Z2dlc3Rpb24tY2hpcC1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4ucWRuYXByby1zdWdnZXN0aW9uLWNoaXAge1xuICAtLWMtZm9jdXMtcmluZzogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgLS1jLWZvY3VzLWdsb3c6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjUpO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIHBhZGRpbmc6IDZweCAxMHB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ncmV5LTMwMCk7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktOTUwKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLW91dCwgYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2Utb3V0LCBjb2xvciAxMjBtcyBlYXNlLW91dCwgYm94LXNoYWRvdyAxMjBtcyBlYXNlLW91dDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5xZG5hcHJvLXN1Z2dlc3Rpb24tY2hpcCAuc3VnZ2VzdGlvbi1jaGlwLWljb24ge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLXN1Z2dlc3Rpb24tY2hpcCAuc3VnZ2VzdGlvbi1jaGlwLWxhYmVsIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIG1heC13aWR0aDogMjQwcHg7XG59XG4ucWRuYXByby1zdWdnZXN0aW9uLWNoaXA6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuLnFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwOmZvY3VzLXZpc2libGUsIC5xZG5hcHJvLXN1Z2dlc3Rpb24tY2hpcC5mb3JjZS1mb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1jLWZvY3VzLXJpbmcpLCAwIDAgMCA2cHggdmFyKC0tYy1mb2N1cy1nbG93KTtcbn1cbi5xZG5hcHJvLXN1Z2dlc3Rpb24tY2hpcC5zdWdnZXN0aW9uLWNoaXAtdGhlbWUtcHVycGxlOmhvdmVyOm5vdCguc3VnZ2VzdGlvbi1jaGlwLWRpc2FibGVkKSwgLnFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwLnN1Z2dlc3Rpb24tY2hpcC10aGVtZS1wdXJwbGUuZm9yY2UtaG92ZXI6bm90KC5zdWdnZXN0aW9uLWNoaXAtZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogI2U2ZTlmZjtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtMi1ob3Zlcik7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xufVxuLnFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwLnN1Z2dlc3Rpb24tY2hpcC10aGVtZS1wdXJwbGU6YWN0aXZlOm5vdCguc3VnZ2VzdGlvbi1jaGlwLWRpc2FibGVkKSwgLnFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwLnN1Z2dlc3Rpb24tY2hpcC10aGVtZS1wdXJwbGUuZm9yY2UtcHJlc3NlZDpub3QoLnN1Z2dlc3Rpb24tY2hpcC1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZGViYXItaWNvbik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG4ucWRuYXByby1zdWdnZXN0aW9uLWNoaXAuc3VnZ2VzdGlvbi1jaGlwLXRoZW1lLW9yYW5nZTpob3Zlcjpub3QoLnN1Z2dlc3Rpb24tY2hpcC1kaXNhYmxlZCksIC5xZG5hcHJvLXN1Z2dlc3Rpb24tY2hpcC5zdWdnZXN0aW9uLWNoaXAtdGhlbWUtb3JhbmdlLmZvcmNlLWhvdmVyOm5vdCguc3VnZ2VzdGlvbi1jaGlwLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtdGFnLXdhcm5pbmctYmcpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtd2Fybi15ZWxsb3ctNjAwKTtcbiAgY29sb3I6IHZhcigtLWMtdGFnLXdhcm5pbmctdGV4dCk7XG59XG4ucWRuYXByby1zdWdnZXN0aW9uLWNoaXAuc3VnZ2VzdGlvbi1jaGlwLXRoZW1lLW9yYW5nZTphY3RpdmU6bm90KC5zdWdnZXN0aW9uLWNoaXAtZGlzYWJsZWQpLCAucWRuYXByby1zdWdnZXN0aW9uLWNoaXAuc3VnZ2VzdGlvbi1jaGlwLXRoZW1lLW9yYW5nZS5mb3JjZS1wcmVzc2VkOm5vdCguc3VnZ2VzdGlvbi1jaGlwLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLXllbGxvdy1iZyk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy13YXJuLXllbGxvdy02MDApO1xuICBjb2xvcjogdmFyKC0tYy10YWctd2FybmluZy10ZXh0KTtcbn1cbi5xZG5hcHJvLXN1Z2dlc3Rpb24tY2hpcC5zdWdnZXN0aW9uLWNoaXAtZGlzYWJsZWQsIC5xZG5hcHJvLXN1Z2dlc3Rpb24tY2hpcC5zdWdnZXN0aW9uLWNoaXAtZGlzYWJsZWQ6aG92ZXIsIC5xZG5hcHJvLXN1Z2dlc3Rpb24tY2hpcC5zdWdnZXN0aW9uLWNoaXAtZGlzYWJsZWQ6YWN0aXZlIHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCk7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtYm9yZGVyLWNhcmQpO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwIHtcbiAgYm9yZGVyLWNvbG9yOiAjNTY1YjY2O1xuICBjb2xvcjogI2YwZjFmMjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXN1Z2dlc3Rpb24tY2hpcC5zdWdnZXN0aW9uLWNoaXAtdGhlbWUtcHVycGxlOmhvdmVyOm5vdCguc3VnZ2VzdGlvbi1jaGlwLWRpc2FibGVkKSwgW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwLnN1Z2dlc3Rpb24tY2hpcC10aGVtZS1wdXJwbGUuZm9yY2UtaG92ZXI6bm90KC5zdWdnZXN0aW9uLWNoaXAtZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSg3MCwgODIsIDI0MywgMC4zKTtcbiAgYm9yZGVyLWNvbG9yOiAjN2M4NGM1O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXN1Z2dlc3Rpb24tY2hpcC5zdWdnZXN0aW9uLWNoaXAtdGhlbWUtcHVycGxlOmFjdGl2ZTpub3QoLnN1Z2dlc3Rpb24tY2hpcC1kaXNhYmxlZCksIFtkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXN1Z2dlc3Rpb24tY2hpcC5zdWdnZXN0aW9uLWNoaXAtdGhlbWUtcHVycGxlLmZvcmNlLXByZXNzZWQ6bm90KC5zdWdnZXN0aW9uLWNoaXAtZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSg3MCwgODIsIDI0MywgMC40NSk7XG4gIGJvcmRlci1jb2xvcjogI2E1YWNmZjtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1zdWdnZXN0aW9uLWNoaXAuc3VnZ2VzdGlvbi1jaGlwLXRoZW1lLW9yYW5nZTpob3Zlcjpub3QoLnN1Z2dlc3Rpb24tY2hpcC1kaXNhYmxlZCksIFtkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXN1Z2dlc3Rpb24tY2hpcC5zdWdnZXN0aW9uLWNoaXAtdGhlbWUtb3JhbmdlLmZvcmNlLWhvdmVyOm5vdCguc3VnZ2VzdGlvbi1jaGlwLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjQ1LCAxNDMsIDYsIDAuMjUpO1xuICBib3JkZXItY29sb3I6ICNjOTdlMjI7XG4gIGNvbG9yOiAjZmZlNGJhO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwLnN1Z2dlc3Rpb24tY2hpcC10aGVtZS1vcmFuZ2U6YWN0aXZlOm5vdCguc3VnZ2VzdGlvbi1jaGlwLWRpc2FibGVkKSwgW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwLnN1Z2dlc3Rpb24tY2hpcC10aGVtZS1vcmFuZ2UuZm9yY2UtcHJlc3NlZDpub3QoLnN1Z2dlc3Rpb24tY2hpcC1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI0NSwgMTQzLCA2LCAwLjQpO1xuICBib3JkZXItY29sb3I6ICNmNWI3NzA7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwLnN1Z2dlc3Rpb24tY2hpcC1kaXNhYmxlZCwgW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwLnN1Z2dlc3Rpb24tY2hpcC1kaXNhYmxlZDpob3ZlciwgW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwLnN1Z2dlc3Rpb24tY2hpcC1kaXNhYmxlZDphY3RpdmUge1xuICBjb2xvcjogIzZiNzI4MDtcbiAgYm9yZGVyLWNvbG9yOiAjM2EzYjQyO1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby10YWJsZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgTGlzdCB2aWV3IChuYXRpdmUgPHRhYmxlPikgKyBHcmlkIHZpZXcgKGNhcmQgZ3JpZClcbi8vICBMYXp5LWxvYWQsIHNvcnQsIHNpbXBsZSArIGFkdmFuY2VkIHNlYXJjaCwgYnVsayBzZWxlY3Rcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyDilIDilIAgV2lkdGggb2YgdGhlIGNoZWNrYm94IGNvbHVtbiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vXG4vLyBUaGUgd2hvbGUgY2VsbCBpcyB0aGUgdGFwIHRhcmdldCAoc2VlIF9tYWtlQ2hlY2tib3hDZWxsIGluIHFkbmEtdGFibGUuanMpLCBzb1xuLy8gaXRzIHdpZHRoIElTIHRoZSB0YXJnZXQgd2lkdGguIFR3byBudW1iZXJzLCBiZWNhdXNlIHRoZSByaWdodCBhbnN3ZXIgZGlmZmVyc1xuLy8gcGVyIGlucHV0IGRldmljZSBbS2ltIDA5LjA4LjIwMjZdOlxuLy9cbi8vICAgbW91c2UgIDM2cHgg4oCUIDEwICsgYSAxNnB4IGJveCArIDEwLiBXZWxsIGFib3ZlIHRoZSAyNHB4IFdDQUcgMi41LjggbWluaW11bSxcbi8vICAgICAgICAgICAgICAgICBhbmQgaXQgZ2l2ZXMgOHB4IGJhY2sgdG8gdGhlIGNvbHVtbnMsIHdoaWNoIGlzIHdoYXQgdGhlIHRhYmxlXG4vLyAgICAgICAgICAgICAgICAgaXMgYWN0dWFsbHkgZm9yLlxuLy8gICB0b3VjaCAgNDRweCDigJQgQXBwbGUncyBtaW5pbXVtIGZvciBhIGZpbmdlci4gQSB0YWJsZXQga2VlcHMgZXhhY3RseSB3aGF0IGl0XG4vLyAgICAgICAgICAgICAgICAgaGFkOyBub3RoaW5nIGFib3V0IHRoZSBlYXJsaWVyIG1pc2NsaWNrIGZpeCBpcyBnaXZlbiB1cCB0aGVyZS5cbi8vXG4vLyBgcG9pbnRlcjogY29hcnNlYCBhc2tzIGFib3V0IHRoZSBQUklNQVJZIGlucHV0IGRldmljZSwgc28gYSBsYXB0b3Agd2l0aCBhXG4vLyB0b3VjaHNjcmVlbiBidXQgYSB0cmFja3BhZCBpbiB1c2Ugc3RheXMgb24gMzYuXG5cbiR0YWJsZS1jaGVja2JveC13aWR0aCAgICAgIDogMzZweDtcbiR0YWJsZS1jaGVja2JveC1wYWRkaW5nLXggIDogMTBweDtcbiR0YWJsZS1jaGVja2JveC13aWR0aC10b3VjaDogNDRweDtcbiR0YWJsZS1jaGVja2JveC1wYWRkaW5nLXRvdWNoOiAxMnB4O1xuXG5AbWVkaWEgKHBvaW50ZXI6IGNvYXJzZSkge1xuICAgIC5xZG5hcHJvLXRhYmxlLWxpc3Qge1xuICAgICAgICB0aGVhZCB0aC5jb2wtY2hlY2tib3gsXG4gICAgICAgIHRib2R5IHRkLmNvbC1jaGVja2JveCB7XG4gICAgICAgICAgICB3aWR0aDogJHRhYmxlLWNoZWNrYm94LXdpZHRoLXRvdWNoO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkdGFibGUtY2hlY2tib3gtcGFkZGluZy10b3VjaDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICR0YWJsZS1jaGVja2JveC1wYWRkaW5nLXRvdWNoO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5xZG5hcHJvLXRhYmxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWluLWhlaWdodDogMDtcbn1cblxuLy8g4pSA4pSAIFdyYXBwZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ucWRuYXByby10YWJsZS13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIC8vIEhvcml6b250YWwgc2Nyb2xsOiB3aGVuIGEgc2lkZSBwYW5lbCBuYXJyb3dzIHRoZSBjZW50ZXIgYXJlYSwgdGhlIHRhYmxlXG4gICAgLy8ga2VlcHMgaXRzIG5hdHVyYWwgKG1pbi1jb250ZW50KSB3aWR0aCBhbmQgd291bGQgb3RoZXJ3aXNlIGJlIGNsaXBwZWQg4oCUXG4gICAgLy8gYGF1dG9gIGxldHMgaXQgc2Nyb2xsIGluc3RlYWQgb2YgaGlkaW5nIGNvbHVtbnMuIGBhdXRvYCBzdGlsbCBjbGlwcyB0b1xuICAgIC8vIGJvcmRlci1yYWRpdXMsIGFuZCB0aGlzIHN0YXlzIHRoZSBzY3JvbGwgY29udGFpbmVyIHNvIHRoZSBzdGlja3kgPHRoZWFkPlxuICAgIC8vICh3aGljaCByZXNvbHZlcyBhZ2FpbnN0IFRISVMgZWxlbWVudCkga2VlcHMgd29ya2luZy5cbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbn1cblxuLy8g4pSA4pSAIFNwaW5uZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyDilIDilIAgTG9hZGluZyBpbmRpY2F0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL1xuLy8gQSAycHggYmFyIGFsb25nIHRoZSB0b3AgZWRnZSBvZiB0aGUgdGFibGUsIHdpdGggYSBzZWdtZW50IHNsaWRpbmcgdGhyb3VnaCBpdC5cbi8vIEtpbSAwOS4wOC4yMDI2OiB0aGlzIHdhcyBhIHdoaXRlIHZlaWwgb3ZlciB0aGUgV0hPTEUgdGFibGUgd2l0aCBhIHNwaW5uZXIgaW5cbi8vIHRoZSBtaWRkbGUsIHNvIGEgc2xvdyByZXF1ZXN0IGhpZCB0aGUgdmVyeSByb3dzIHlvdSB3ZXJlIHJlYWRpbmcgYW5kIGEgZmFzdFxuLy8gb25lIGZsYXNoZWQuIE5vdyB0aGUgcm93cyBzdGF5IHJlYWRhYmxlIGFuZCB0aGUgbW92ZW1lbnQgaXMgYXQgdGhlIGVkZ2UsIG91dFxuLy8gb2YgdGhlIHdheSBvZiB0aGUgdGV4dCDigJQgdGhlIHNhbWUgY2hvaWNlIFlvdVR1YmUgYW5kIEdpdEh1YiBtYWtlLlxuLy9cbi8vIEl0IG9ubHkgYXBwZWFycyBhdCBhbGwgb25jZSBhIGZldGNoIG91dGxhc3RzIHNwaW5uZXJEZWxheU1zOyBzZWVcbi8vIF9zaG93U3Bpbm5lckRlbGF5ZWQoKSBpbiBxZG5hLXRhYmxlLmpzLiBUaGUgZWxlbWVudCBrZWVwcyBpdHMgb2xkIGNsYXNzIG5hbWVcbi8vIHNvIG5vIGNvbnN1bWVyIHRoYXQgaGlkZXMgb3IgcXVlcmllcyBpdCBicmVha3MuXG5cbi5xZG5hcHJvLXRhYmxlLXNwaW5uZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICB6LWluZGV4OiAxMDtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTEwMCk7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4IDhweCAwIDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAmOm5vdChbaGlkZGVuXSkgeyBkaXNwbGF5OiBibG9jazsgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB3aWR0aDogMzUlO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWFjdGlvbi01MDApO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgIGFuaW1hdGlvbjogcWRuYXByby10YWJsZS1wcm9ncmVzcyAxLjFzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBxZG5hcHJvLXRhYmxlLXByb2dyZXNzIHtcbiAgICAvLyAtMTAwJSB0byA0MDAlIG9mIGl0cyBPV04gd2lkdGgsIHNvIHRoZSBiYXIgdHJhdmVscyB0aGUgZnVsbCB0cmFjayBhbmRcbiAgICAvLyBsZWF2ZXMgaXQgY2xlYW5seSBhdCBib3RoIGVuZHMgaW5zdGVhZCBvZiBzdGlja2luZyB0byBhIGNvcm5lci5cbiAgICBmcm9tIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgfVxuICAgIHRvICAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwJSk7IH1cbn1cblxuLy8gQSBtb3ZpbmcgYmFyIGlzIGV4YWN0bHkgdGhlIGtpbmQgb2YgdGhpbmcgXCJyZWR1Y2UgbW90aW9uXCIgaXMgYWJvdXQuIFRoZSBiYXJcbi8vIHN0YXlzIHZpc2libGUgc28gYSBzbG93IHJlcXVlc3Qgc3RpbGwgc2F5cyBzb21ldGhpbmcsIGl0IGp1c3QgaG9sZHMgc3RpbGwuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5xZG5hcHJvLXRhYmxlLXNwaW5uZXI6OmFmdGVyIHtcbiAgICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgb3BhY2l0eTogMC40NTtcbiAgICB9XG59XG5cbi8vIOKUgOKUgCBTZW50aW5lbCAobGF6eS1sb2FkIHRyaWdnZXIsIHplcm8gaGVpZ2h0KSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLnFkbmFwcm8tdGFibGUtc2VudGluZWwge1xuICAgIGhlaWdodDogMXB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vLyDilIDilIAgTGlzdCB2aWV3IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5xZG5hcHJvLXRhYmxlLWxpc3Qge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgLy8gTk9URTogbm8gYG92ZXJmbG93OiBoaWRkZW5gIGhlcmUuIEFuIGludGVybWVkaWF0ZSBhbmNlc3RvciB3aXRoIGFcbiAgICAvLyBub24tdmlzaWJsZSBvdmVyZmxvdyBiZWNvbWVzIHRoZSBzdGlja3kgY29udGFpbmluZyBibG9jaywgd2hpY2ggd291bGRcbiAgICAvLyBwaW4gPHRoZWFkPiB0byB0aGUgdGFibGUgYm94IChpdCBzY3JvbGxzIGF3YXkpIGluc3RlYWQgb2YgdGhlIHdyYXBwZXIuXG4gICAgLy8gVGhlIHJvdW5kZWQtY29ybmVyIGNsaXBwaW5nICsgY2FyZCBzaGFkb3cgbm93IGxpdmUgb25cbiAgICAvLyAucWRuYXByby10YWJsZS13cmFwcGVyICh0aGUgc2Nyb2xsIGNvbnRhaW5lcikgc28gdGhlIHN0aWNreSBoZWFkZXIgd29ya3MuXG5cbiAgICB0aGVhZCB7XG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgICAgcGFkZGluZzogMTBweCAxNnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyKTtcbiAgICAgICAgICAgIC8vIEtpbSAwOS4wOC4yMDI2OiB3YXMgMTFweCB1cHBlcmNhc2UgaW4gLS1jLWdyZXktNTAwLiBUaGUgY2FwaXRhbHMgYW5kXG4gICAgICAgICAgICAvLyB0aGUgbGV0dGVyLXNwYWNpbmcgdGhhdCBtYWRlIHRoZW0gcmVhZGFibGUgYXJlIGJvdGggZ29uZSDigJQgYSBsYWJlbFxuICAgICAgICAgICAgLy8gbm93IHJlYWRzIGFzIHRoZSB3b3JkIHRoZSBjb2x1bW4gaXMgY2FsbGVkLiAxMnB4IGJlY2F1c2UgMTFweFxuICAgICAgICAgICAgLy8gbG93ZXJjYXNlIGluIGEgbmVhci1ibGFjayBpcyBub3RpY2VhYmx5IHNtYWxsZXIgdGhhbiB0aGUgc2FtZSBzaXplXG4gICAgICAgICAgICAvLyBpbiBjYXBpdGFsczsgdGhlIGNhcGl0YWxzIHdlcmUgZG9pbmcgdGhlIHdlaWdodC1saWZ0aW5nLlxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0xMDApO1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgICAgICYuY29sLWNoZWNrYm94IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJHRhYmxlLWNoZWNrYm94LXdpZHRoO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggJHRhYmxlLWNoZWNrYm94LXBhZGRpbmcteDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8g4pSA4pSAIFNvcnRpbmcg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gS2ltIDA5LjA4LjIwMjYsIGFmdGVyIHRoZSBHb29nbGUgRHJpdmUgcGF0dGVybjogdGhlIExBQkVMIG5ldmVyXG4gICAgICAgICAgICAvLyBjaGFuZ2VzIGNvbG91ci4gVGhlIG9ubHkgdGhpbmcgdGhhdCBzYXlzIFwic29ydGVkIG9uIHRoaXMgY29sdW1uLFxuICAgICAgICAgICAgLy8gdGhpcyB3YXlcIiBpcyBvbmUgYXJyb3cuIEJlZm9yZSB0aGlzIHRoZSB3aG9sZSB3b3JkIHBsdXMgaXRzIGljb25cbiAgICAgICAgICAgIC8vIHR1cm5lZCBwdXJwbGUsIHdoaWNoIHJlYWQgYXMgYSBzZWxlY3RlZCBjb2x1bW4gcmF0aGVyIHRoYW4gYXMgYVxuICAgICAgICAgICAgLy8gZGlyZWN0aW9uLCBhbmQgbGVmdCB5b3UgbG9va2luZyBmb3IgdGhlIGFycm93IGFueXdheS5cbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyBBdCByZXN0IGFuIHVuc29ydGVkIGNvbHVtbiBzaG93cyBub3RoaW5nIGF0IGFsbCDigJQgYSByb3cgb2YgZ3JleVxuICAgICAgICAgICAgLy8gZG91YmxlLWNoZXZyb25zIG9uIGV2ZXJ5IHNvcnRhYmxlIGhlYWRlciBpcyBub2lzZSB5b3UgaGF2ZSB0b1xuICAgICAgICAgICAgLy8gbGVhcm4gdG8gaWdub3JlLiBUaGUgYXJyb3cgYXBwZWFycyBvbiBob3ZlciAoYW5kIG9uIGtleWJvYXJkXG4gICAgICAgICAgICAvLyBmb2N1cykgdG8gc2F5IFwieW91IGNhbiBzb3J0IGhlcmVcIiwgYW5kIHN0YXlzIHB1dCBvbmNlIHlvdSBkby5cblxuICAgICAgICAgICAgJi5pcy1zb3J0YWJsZSB7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7XG5cbiAgICAgICAgICAgICAgICAgICAgLmNvbC1zb3J0LWljb24geyBvcGFjaXR5OiAwLjQ1OyB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIC5jb2wtc29ydC1pY29uIHsgb3BhY2l0eTogMC40NTsgfVxuXG4gICAgICAgICAgICAgICAgJi5pcy1zb3J0ZWQgLmNvbC1zb3J0LWljb24ge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS01MCwgI2U2ZTlmZik7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8g4pSA4pSAIERyYWctdG8tcmVvcmRlciDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgICAgICAgICAgIC8vIEdyYWIgYWZmb3JkYW5jZSBvbiBvcmRlcmFibGUgaGVhZGVycywgYSBkaW0gb24gdGhlIG9uZSBiZWluZyBkcmFnZ2VkLFxuICAgICAgICAgICAgLy8gYW5kIGEgdmVydGljYWwgaW5zZXJ0aW9uIGxpbmUgb24gdGhlIGVkZ2UgdGhlIGNvbHVtbiB3aWxsIGRyb3AgYWdhaW5zdC5cbiAgICAgICAgICAgICYuaXMtb3JkZXJhYmxlIHtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGdyYWI7XG5cbiAgICAgICAgICAgICAgICAmOmFjdGl2ZSB7IGN1cnNvcjogZ3JhYmJpbmc7IH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5pcy1kcmFnZ2luZyB7IG9wYWNpdHk6IDAuNDsgfVxuXG4gICAgICAgICAgICAmLmRyb3AtYmVmb3JlIHsgYm94LXNoYWRvdzogaW5zZXQgMnB4IDAgMCAwIHZhcigtLWMtYWN0aW9uLTUwMCk7IH1cbiAgICAgICAgICAgICYuZHJvcC1hZnRlciAgeyBib3gtc2hhZG93OiBpbnNldCAtMnB4IDAgMCAwIHZhcigtLWMtYWN0aW9uLTUwMCk7IH1cblxuICAgICAgICAgICAgLy8gRmxleCB3cmFwcGVyIGtlZXBzIGxhYmVsICsgc29ydCBpY29uIG9uIG9uZSBiYXNlbGluZVxuICAgICAgICAgICAgLmNvbC1oZWFkZXItY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVGhlIHJvdW5kIGJhZGdlIHRoZSBhcnJvdyBzaXRzIGluLiBUaGUgc3ZnIGtlZXBzIGl0cyBvd24gMTRweCwgc29cbiAgICAgICAgICAgIC8vIHRoZSAyMHB4IGhvc3QgaXMgcHVyZWx5IHRoZSBkaXNjIGFyb3VuZCBpdC5cbiAgICAgICAgICAgIC5jb2wtc29ydC1pY29uIHtcbiAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzLCBiYWNrZ3JvdW5kIDAuMTVzLCBjb2xvciAwLjE1cztcblxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvciAhaW1wb3J0YW50OyAvLyBvdmVycmlkZSBnbG9iYWwgcWRuYXByby1pY29uIHN2ZyBmaWxsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8g4pSA4pSAIFN0aWNreSAocGlubmVkLWxlZnQpIGNvbHVtbnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gICAgLy8gQSBjb2x1bW4gbWFya2VkIHN0aWNreSBzdGF5cyB2aXNpYmxlIGR1cmluZyBob3Jpem9udGFsIHNjcm9sbDogaXQgcGlucyB0b1xuICAgIC8vIHRoZSBsZWZ0IGVkZ2Ugb2YgdGhlIHNjcm9sbCBjb250YWluZXIgKC5xZG5hcHJvLXRhYmxlLXdyYXBwZXIpLiBUaGUgY2VsbFxuICAgIC8vIG5lZWRzIGFuIE9QQVFVRSBiYWNrZ3JvdW5kIHNvIHNjcm9sbGluZyBjb2x1bW5zIHBhc3MgKmJlaGluZCogaXQsIHBsdXMgYVxuICAgIC8vIHotaW5kZXggYWJvdmUgbm9ybWFsIGNlbGxzLiBBIHJpZ2h0IGluc2V0IGRpdmlkZXIgbWFya3MgdGhlIGZyb3plbiBlZGdlLlxuICAgIHRoLmNvbC1zdGlja3ksXG4gICAgdGQuY29sLXN0aWNreSB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IC0xcHggMCAwIHZhcigtLWMtZ3JleS0xMDApO1xuICAgIH1cblxuICAgIHRkLmNvbC1zdGlja3kgeyBiYWNrZ3JvdW5kOiAjZmZmZmZmOyB9XG5cbiAgICAvLyBIZWFkZXIgb2YgYSBzdGlja3kgY29sdW1uIGlzIHN0aWNreSBvbiBCT1RIIGF4ZXMgKHRvcCBmcm9tIHRoZSB0aGVhZCBydWxlICtcbiAgICAvLyBsZWZ0IGhlcmUpOyBsaWZ0IGl0IGFib3ZlIHRoZSBvdGhlciBzdGlja3ktdG9wIGhlYWRlcnMgYW5kIHRoZSBib2R5IGNlbGwuXG4gICAgdGhlYWQgdGguY29sLXN0aWNreSB7IHotaW5kZXg6IDM7IH1cblxuICAgIC8vIEtlZXAgdGhlIGZyb3plbiBjZWxsJ3MgYmFja2dyb3VuZCBpbiBzdGVwIHdpdGggcm93IGhvdmVyIC8gc2VsZWN0aW9uIHNvIHRoZVxuICAgIC8vIGNvbHVtbnMgc2Nyb2xsaW5nIGJlaGluZCBpdCBuZXZlciBzaG93IHRocm91Z2guXG4gICAgdGJvZHkgdHI6aG92ZXIgdGQuY29sLXN0aWNreSAgICAgICB7IGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZC1ob3Zlcik7IH1cbiAgICB0Ym9keSB0ci5pcy1zZWxlY3RlZCB0ZC5jb2wtc3RpY2t5IHsgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtYmx1ZS1iZyk7IH1cbiAgICAvLyBBIHN0aWNreSBjb2x1bW4gcGFpbnRzIGl0cyBvd24gYmFja2dyb3VuZCwgc28gdGhlIGFjdGl2ZSByb3cgbmVlZHMgaXQgdG9vIG9yXG4gICAgLy8gdGhlIHN0aWNreSBjZWxsIHN0YXlzIHdoaXRlIHdoaWxlIHRoZSByZXN0IG9mIHRoZSByb3cgaXMgaGlnaGxpZ2h0ZWQuXG4gICAgdGJvZHkgdHIuaXMtYWN0aXZlICAgdGQuY29sLXN0aWNreSB7IGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTUwLCAjZWVmMGZmKTsgfVxuXG4gICAgLy8gc3R5bGUtdjEgaGFzIGFuIHVuc2NvcGVkIGRhcmstbW9kZSBxZG5hcHJvLWNoZWNrYm94IHZhciBibG9jayB0aGF0IGJsZWVkc1xuICAgIC8vIGludG8gYWxsIHBhZ2VzIOKAlCByZXNldCB0byBsaWdodC1tb2RlIHZhbHVlcyBpbnNpZGUgdGhlIHRhYmxlIHNvIGNoZWNrYm94ZXNcbiAgICAvLyBsb29rIGNvcnJlY3QgcmVnYXJkbGVzcyBvZiB0aGF0IGdsb2JhbCBvdmVycmlkZS5cbiAgICBxZG5hcHJvLWNoZWNrYm94IHtcbiAgICAgICAgLS1jYi1iZzogICAgICAgICAgI2ZmZmZmZjtcbiAgICAgICAgLS1jYi1iZy1ob3ZlcjogICAgdmFyKC0tYy1ncmV5LTUwKTtcbiAgICAgICAgLS1jYi1ib3JkZXI6ICAgICAgdmFyKC0tYy1ncmV5LTMwMCk7XG4gICAgICAgIC0tY2ItZmlsbGVkLWJnOiAgIHZhcigtLWMtYWN0aW9uLTUwMCk7XG4gICAgICAgIC0tY2ItZmlsbGVkLWJvcmRlcjogdmFyKC0tYy1hY3Rpb24tNTAwKTtcbiAgICAgICAgLS1jYi1tYXJrOiAgICAgICAgI2ZmZmZmZjtcbiAgICB9XG5cbiAgICB0Ym9keSB7XG4gICAgICAgIHRyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLWJnLWNhcmQtaG92ZXIpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzO1xuXG4gICAgICAgICAgICAvLyBUaGUgbGFzdCByb3cga2VlcHMgaXRzIGxpbmUuIERyb3BwaW5nIGl0IGlzIHRoZSB1c3VhbCByZWZsZXgsIGJ1dCB0aGVcbiAgICAgICAgICAgIC8vIHRhYmxlIGRvZXMgbm90IGVuZCB3aGVyZSB0aGUgcm93cyBlbmQ6IHRoZSBjYXJkIHJ1bnMgb24gYmVsb3cgaXQsIHNvIGFcbiAgICAgICAgICAgIC8vIGJvcmRlcmxlc3MgbGFzdCByb3cgcmVhZHMgYXMgYW4gdW5maW5pc2hlZCBsaXN0IGluc3RlYWQgb2YgYSBjbG9zZWQgb25lLlxuICAgICAgICAgICAgLy8gW0tpbSAwOS4wOC4yMDI2LCBsb29raW5nIGF0IGEgdGFibGUgd2l0aCAxMSByb3dzIGluIGEgdGFsbCBwYW5lbF1cblxuICAgICAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZC1ob3Zlcik7IH1cblxuICAgICAgICAgICAgJi5pcy1zZWxlY3RlZCB7IGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLWJsdWUtYmcpOyB9XG5cbiAgICAgICAgICAgIC8vIFRoZSByb3cgeW91IGFyZSBMT09LSU5HIEFULCBhcyBvcHBvc2VkIHRvIHRoZSByb3dzIHlvdSBoYXZlIHRpY2tlZC5cbiAgICAgICAgICAgIC8vIFNwbGl0IHNjcmVlbiBuZWVkcyB0aGlzOiB0aGUgcm93IHdob3NlIGNvbnRlbnRzIGZpbGwgdGhlIHJpZ2h0LWhhbmRcbiAgICAgICAgICAgIC8vIHBhbmVsIGhhcyB0byBzdGFuZCBvdXQgd2l0aG91dCB0b3VjaGluZyB0aGUgY2hlY2tib3ggc2VsZWN0aW9uLlxuICAgICAgICAgICAgLy8gU2FtZSBhY3RpdmUtdmVyc3VzLXNlbGVjdGVkIHNwbGl0IHRoZSBpbmJveCBtZXNzYWdlIGxpc3QgdXNlcy5cbiAgICAgICAgICAgIC8vIFtLaW0gMTAuMDguMjAyNl1cbiAgICAgICAgICAgICYuaXMtYWN0aXZlIHsgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNTAsICNlZWYwZmYpOyB9XG5cbiAgICAgICAgICAgICYuaXMtY2xpY2thYmxlIHsgY3Vyc29yOiBwb2ludGVyOyB9XG5cbiAgICAgICAgICAgICYucWRuYXByby10YWJsZS1lbXB0eS1yb3cge1xuICAgICAgICAgICAgICAgIHRkLmNvbC1lbXB0eSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNTJweCAxNnB4O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTQwMCk7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMXB4IDE2cHg7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtZ3JleS05MDApO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuXG4gICAgICAgICAgICAvLyBUaGUgd2hvbGUgY2VsbCBpcyB0aGUgdGFwIHRhcmdldCBmb3IgdGhlIHJvdydzIGNoZWNrYm94IChzZWVcbiAgICAgICAgICAgIC8vIF9tYWtlQ2hlY2tib3hDZWxsKS4gVGhlIHBhZGRpbmcgaXMgd2hhdCBtYWtlcyBpdCBiaWc6IDEycHggZWl0aGVyXG4gICAgICAgICAgICAvLyBzaWRlIG9mIGFuIDE4cHggYm94IGdpdmVzIGEgNDRweC13aWRlIHRhcmdldCBvdmVyIHRoZSBmdWxsIHJvd1xuICAgICAgICAgICAgLy8gaGVpZ2h0LCB3aGljaCBjbGVhcnMgdGhlIDQ0cHggbWluaW11bS4gVGhlIGN1cnNvciBzYXlzIHNvLlxuICAgICAgICAgICAgLy8gW0tpbSAwOS4wOC4yMDI2IOKAlCBjbGlja2luZyBqdXN0IGJlc2lkZSB0aGUgYm94IHVzZWQgdG8gb3BlbiB0aGUgcm93XVxuICAgICAgICAgICAgJi5jb2wtY2hlY2tib3gge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkdGFibGUtY2hlY2tib3gtd2lkdGg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTFweCAkdGFibGUtY2hlY2tib3gtcGFkZGluZy14O1xuXG4gICAgICAgICAgICAgICAgJi5pcy1oaXQtYXJlYSB7IGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY29sLW51bWJlciB7IGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7IH1cblxuICAgICAgICAgICAgLy8gT3B0LWluIG9uZS1saW5lICsgZWxsaXBzaXMgdHJ1bmNhdGlvbiBmb3IgYSBwbGFpbiB0ZXh0IGNlbGwgKHRoZVxuICAgICAgICAgICAgLy8gYHRydW5jYXRlYCBhdHRyaWJ1dGUgb24gcWRuYXByby10YWJsZS1jb2x1bW4pLiBgZGlzcGxheTogaW5saW5lLWJsb2NrYFxuICAgICAgICAgICAgLy8gaXMgcmVxdWlyZWQ6IHRoZSBjZWxsJ3MgZGVmYXVsdCB0ZXh0IGlzIGEgcGxhaW4gPHNwYW4+LCBhbmQgYG1heC13aWR0aGBcbiAgICAgICAgICAgIC8vIGhhcyBubyBlZmZlY3Qgb24gYW4gaW5saW5lIGVsZW1lbnQuIFRoZSBhY3R1YWwgcGl4ZWwgYm91bmQgaXMgc2V0IGFzXG4gICAgICAgICAgICAvLyBhbiBpbmxpbmUgc3R5bGUgYnkgX3RydW5jYXRlTWF4V2lkdGgoKSBpbiBxZG5hLXRhYmxlLmpzIChmcm9tIHRoZVxuICAgICAgICAgICAgLy8gY29sdW1uJ3MgYHdpZHRoYCBhdHRyaWJ1dGUsIG9yIGEgMjQwcHggZGVmYXVsdCkg4oCUIHNlZSB0aGUgYHRydW5jYXRlYFxuICAgICAgICAgICAgLy8gZG9jYmxvY2sgdGhlcmUgZm9yIHdoeSBhIGJvdW5kIGlzIHVuYXZvaWRhYmxlOiB0aGlzIHRhYmxlIHNldHMgbm9cbiAgICAgICAgICAgIC8vIGB0YWJsZS1sYXlvdXRgLCBzbyBpdCB1c2VzIHRoZSBicm93c2VyJ3MgYXV0b21hdGljIGxheW91dCwgd2hlcmVcbiAgICAgICAgICAgIC8vIGB3aGl0ZS1zcGFjZTogbm93cmFwYCBhbG9uZSB3aWRlbnMgdGhlIGNvbHVtbiBpbnN0ZWFkIG9mIHRydW5jYXRpbmcgaXQuXG4gICAgICAgICAgICAuY29sLXRydW5jYXRlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIOKUgOKUgCBDZWxsIHR5cGUgd3JhcHBlcnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgICAgICAgICAgIC5jb2wtdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgLy8gU2FtZSBzdG9yeSBhcyAuY29sLXRodW1ibmFpbC10ZXh0IGJlbG93OiAyOHB4IGlzIHRoZSBcImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgIC8vIGRlbnNpdHkgYm94IGFuZCB0aGUgZGVuc2l0eSBibG9ja3MgbW92ZSBpdC4gQSBmaXhlZCAzNnB4IG1hZGVcbiAgICAgICAgICAgICAgICAvLyB0aGUgdGVtcGxhdGUgbGlicmFyeSdzIHJvd3MgNThweCB0YWxsIGluIHRoZSBDT01QQUNUIGRlbnNpdHksXG4gICAgICAgICAgICAgICAgLy8gYmVjYXVzZSB0aGUgcGljdHVyZSwgbm90IHRoZSB0ZXh0LCBzZXQgdGhlIGhlaWdodC4gW0tpbSAxMC4wOC4yMDI2XVxuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZC1ob3Zlcik7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvbC10aHVtYm5haWwtdGV4dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBnYXA6IDEwcHg7XG5cbiAgICAgICAgICAgICAgICAvLyAyOHB4ID0gdGhlIFwiZGVmYXVsdFwiIGRlbnNpdHkgdGlsZSwgdGhlIHNhbWUgYm94IGFcbiAgICAgICAgICAgICAgICAvLyBcInZpc3VhbC10ZXh0XCIgY2VsbCB1c2VzLCBzbyBhIHVzZXJzIHJvdyBhbmQgYSBwaG9uZS1udW1iZXJzXG4gICAgICAgICAgICAgICAgLy8gcm93IGFyZSB0aGUgc2FtZSBoZWlnaHQuIFRoZSBkZW5zaXR5IGJsb2NrcyBmdXJ0aGVyIGRvd25cbiAgICAgICAgICAgICAgICAvLyBvdmVycmlkZSBpdCAoY29tcGFjdCAyMCwgY29tZm9ydGFibGUgMzQpIOKAlCBpdCB3YXMgYSBGSVhFRCAzNnB4XG4gICAgICAgICAgICAgICAgLy8gdW50aWwgMTAuMDguMjAyNiwgd2hpY2ggaXMgd2h5IGEgY29tcGFjdCB1c2VycyByb3cgd2FzIDUzcHhcbiAgICAgICAgICAgICAgICAvLyB0YWxsIHdoZXJlIGEgY29tcGFjdCBwaG9uZS1udW1iZXJzIHJvdyB3YXMgNDAuIFtLaW0gMTAuMDguMjAyNl1cbiAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBBbiBBVkFUQVIgb25seSBnZXRzIGl0cyBib3ggaGVyZSDigJQgbmV2ZXIgYSBzaGFwZSBvciBhXG4gICAgICAgICAgICAgICAgLy8gYmFja2dyb3VuZC4gcWRuYXByby1hdmF0YXIgZHJhd3MgaXRzIG93biBjaXJjbGUsIGl0cyBvd24gdGludFxuICAgICAgICAgICAgICAgIC8vIGFuZCBpdHMgb3duIGFuaW1hbC9pbml0aWFscyBpbnNpZGUgaXQsIGV4YWN0bHkgbGlrZSB0aGVcbiAgICAgICAgICAgICAgICAvLyBcInZpc3VhbC10ZXh0XCIgY2VsbCBiZWxvdyBhbHJlYWR5IHJlc3BlY3RzLiBUaGlzIGNlbGwgdXNlZCB0b1xuICAgICAgICAgICAgICAgIC8vIGhhbmQgaXQgYm9yZGVyLXJhZGl1czo0cHggKyBhIGdyZXkgYmFja2Ryb3AgKyBvYmplY3QtZml0LFxuICAgICAgICAgICAgICAgIC8vIHdoaWNoIHNxdWFyZWQgb2ZmIGEgcm91bmQgYXZhdGFyIGFuZCBwdXQgYSBncmV5IGJsb2NrIGJlaGluZFxuICAgICAgICAgICAgICAgIC8vIGl0IOKAlCB0aGF0IGlzIHdoeSB0aGUgdXNlciBwaG90b3MgbG9va2VkIHdyb25nIGluc3RlYWQgb2YganVzdFxuICAgICAgICAgICAgICAgIC8vIGxvb2tpbmcgbGlrZSB0aGUgYXZhdGFycyB0aGV5IGFyZS4gW0tpbSAxMC4wOC4yMDI2XVxuICAgICAgICAgICAgICAgIHFkbmFwcm8tYXZhdGFyIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8g4pSA4pSAIFJvdW5kZWQgc2hhcGUgKGltYWdlLXNoYXBlPVwicm91bmRlZFwiKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgICAgICAgICAgICAgICAvL1xuICAgICAgICAgICAgICAgIC8vIEEgVEhJTkcsIG5vdCBhIHBlcnNvbjogYSByb3VuZGVkIHJlY3RhbmdsZSBpbnN0ZWFkIG9mIHRoZSBhdmF0YXJcbiAgICAgICAgICAgICAgICAvLyBjaXJjbGUgYWJvdmUuIDZweCwgdGhlIHNhbWUgY29ybmVyIHRoZSBcInZpc3VhbC10ZXh0XCIgdGlsZSB1c2VzLCBzb1xuICAgICAgICAgICAgICAgIC8vIHRoZSB0d28gY29tcG9zaXRlIGNlbGwgdHlwZXMgcmVhZCBhcyBvbmUgZmFtaWx5LlxuICAgICAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAgICAgLy8gLmN0dC1tZWRpYSBpcyB0aGUgc2hhcmVkIEJPWCAocGhvdG8gYW5kIHN0YW5kLWluIHRpbGUgYWxpa2UpLCBzbyBhXG4gICAgICAgICAgICAgICAgLy8gY29sdW1uIHdpdGggc29tZSBwaG90b2dyYXBoZWQgcmVjb3JkcyBhbmQgc29tZSBub3Qga2VlcHMgb25lIGxlZnRcbiAgICAgICAgICAgICAgICAvLyBlZGdlIGFuZCBvbmUgcm93IGhlaWdodC4gU2l6ZXMgbGl2ZSBpbiB0aGUgZGVuc2l0eSBibG9ja3MgYXQgdGhlXG4gICAgICAgICAgICAgICAgLy8gYm90dG9tIG9mIHRoaXMgZmlsZSwgbmV4dCB0byB0aGUgYXZhdGFyJ3MuXG4gICAgICAgICAgICAgICAgLmN0dC1tZWRpYSB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgICAgICAgICAvLyBTYW1lIDI4cHggYm94IGFzIHRoZSBhdmF0YXIgYWJvdmUsIHNvIGEgcm91bmRlZCBjb2x1bW4gYW5kIGFcbiAgICAgICAgICAgICAgICAgICAgLy8gY2lyY3VsYXIgb25lIGxpbmUgdXAgcm93IGZvciByb3cuIFRoZSBkZW5zaXR5IGJsb2NrcyBhdCB0aGVcbiAgICAgICAgICAgICAgICAgICAgLy8gYm90dG9tIG9mIHRoaXMgZmlsZSBvdmVycmlkZSBpdCAoMjAgLyAzNCksIGV4YWN0bHkgYXMgdGhleSBkb1xuICAgICAgICAgICAgICAgICAgICAvLyBmb3IgdGhlIGF2YXRhci5cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpbWcuY3R0LXBob3RvIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZC1ob3Zlcik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gU3RhbmQtaW4gZm9yIGEgcmVjb3JkIHdpdGggbm8gcGhvdG86IHRoZSB1bml0IHR5cGUncyBpY29uLCBvciB0aGVcbiAgICAgICAgICAgICAgICAvLyBpbml0aWFscy4gQSBmbGF0IG5ldXRyYWwgdGlsZSwgZGVsaWJlcmF0ZWx5IE5PVCBvbmUgb2YgdGhlIGVpZ2h0XG4gICAgICAgICAgICAgICAgLy8gaG91c2UgY29sb3VycyDigJQgdGhlIGNvbG91ciB3b3VsZCBoYXZlIHRvIG1lYW4gc29tZXRoaW5nLCBhbmQgaGVyZVxuICAgICAgICAgICAgICAgIC8vIGl0IHdvdWxkIG9ubHkgYmUgXCJ0aGlzIHJlY29yZCBoYXMgbm8gcGljdHVyZVwiLlxuICAgICAgICAgICAgICAgIC5jdHQtdGlsZSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jdHQtdGlsZS0taW5pdGlhbHMge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCk7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gfjcwJSBmaWxsLCB0aGUgc2FtZSBwcm9wb3J0aW9uIHRoZSBcInZpc3VhbC10ZXh0XCIgdGlsZSBnaXZlcyBpdHMgb3duXG4gICAgICAgICAgICAgICAgLy8gaWNvbiBhbmQgcWRuYXByby10YXNrbGlzdC1jYXJkIGdpdmVzIGl0cyBcImxpc3RcIiB2YXJpYW50LlxuICAgICAgICAgICAgICAgIC5jdHQtdGlsZS1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDcwJTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA3MCU7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyDigKZidXQgdGhlIHRpbGUgaXMgYSA8c3Bhbj4gdG9vIGFuZCBtdXN0IGtlZXAgaXRzIGJveDogdGhlIGVsbGlwc2lzXG4gICAgICAgICAgICAgICAgLy8gcnVsZSBhYm92ZSBpcyBmb3IgdGhlIExBQkVMLiBXaXRob3V0IHRoaXMgdGhlIHRpbGUgY29sbGFwc2VzIGFuZFxuICAgICAgICAgICAgICAgIC8vIHRoZSBpbml0aWFscyBzcGlsbCBvbnRvIHRoZSBuYW1lLlxuICAgICAgICAgICAgICAgIHNwYW4uY3R0LW1lZGlhIHtcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY29sLWljb24tdGV4dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBnYXA6IDdweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gXCJ2aXN1YWwtdGV4dFwiIOKAlCBhIHJlY29yZCdzIG93biByZXNvbHZlZCB2aXN1YWwgKHBob3RvLCBhbmltYWwsXG4gICAgICAgICAgICAvLyBpbml0aWFscyBvciBhIHRpbnRlZCBhY3Rpdml0eS1pY29uIHRpbGUpIGluIGZyb250IG9mIGl0cyB0ZXh0LCBvbmVcbiAgICAgICAgICAgIC8vIHNoYXJlZCBzaGFwZSBmb3IgYWxsIGZvdXIga2luZHMgc28gYSBtaXhlZC1jb250ZW50IGNvbHVtbiAoZS5nLiBzb21lXG4gICAgICAgICAgICAvLyByb3dzIGxpbmtlZCB0byBhIHVzZXIsIHNvbWUgbm90KSBzdGlsbCBsaW5lcyB1cC4gU2l6aW5nIGl0c2VsZiBpc1xuICAgICAgICAgICAgLy8gTk9UIGhlcmUg4oCUIHFkbmFwcm8tYXZhdGFyIGFuZCBxZG5hcHJvLWFjdGl2aXR5LWljb24gYXJlIGJvdGggc2l6ZWRcbiAgICAgICAgICAgIC8vIHZpYSB0aGVpciBvd24gYHNpemVgIGF0dHJpYnV0ZSBpbiBKUyAocWRuYS10YWJsZS5qc1xuICAgICAgICAgICAgLy8gUUROQV9UQUJMRV9WSVNVQUxfVEVYVF9TSVpFUyAvIF9zeW5jVmlzdWFsVGV4dFNpemVzKCkpLCBiZWNhdXNlIGEgcm93XG4gICAgICAgICAgICAvLyBkZW5zaXR5IGNoYW5nZSBpcyBhIGNsYXNzIHN3YXAgd2l0aCBubyByZS1yZW5kZXIgYW5kIHRoZXNlIHR3b1xuICAgICAgICAgICAgLy8gY29tcG9uZW50cyBrZXkgb2ZmIGEgZGlzY3JldGUgYXR0cmlidXRlLCBub3QgYSBDU1MgY3VzdG9tIHByb3BlcnR5LlxuICAgICAgICAgICAgLmNvbC12aXN1YWwtdGV4dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgLy8gVGhlIFwiaW1hZ2VcIi9cInBob3RvXCIga2luZHMgcmVuZGVyIGEgcGxhaW4gPGltZz4g4oCUIHNjb3BlZCB0byB0aGVcbiAgICAgICAgICAgICAgICAvLyBlbGVtZW50IGl0c2VsZiAobm90IHRoZSBzaGFyZWQgLmN2dC1tZWRpYSBjbGFzcykgc28gdGhpcyBuZXZlclxuICAgICAgICAgICAgICAgIC8vIGNvbXBldGVzIHdpdGggcWRuYXByby1hdmF0YXIncyBPV04gY2lyY2xlL2JhY2tncm91bmQgcnVsZSBiZWxvdzpcbiAgICAgICAgICAgICAgICAvLyB0aGF0IGNvbXBvbmVudCBzZXRzIC0tYXYtYmcvYm9yZGVyLXJhZGl1czo1MCUgb24gaXRzZWxmIGF0IGFcbiAgICAgICAgICAgICAgICAvLyBzaW5nbGUtY2xhc3Mgc3BlY2lmaWNpdHksIGFuZCBhIHNhbWUtc3BlY2lmaWNpdHkgYC5jdnQtbWVkaWFgXG4gICAgICAgICAgICAgICAgLy8gcnVsZSB3b3VsZCBiZSBhIGNvaW4tZmxpcCBvbiBkZWNsYXJhdGlvbiBvcmRlciBpbnN0ZWFkIG9mIGFcbiAgICAgICAgICAgICAgICAvLyBkZWxpYmVyYXRlIGNob2ljZS5cbiAgICAgICAgICAgICAgICBpbWcuY3Z0LW1lZGlhIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZC1ob3Zlcik7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIHFkbmFwcm8tYXZhdGFyIGRyYXdzIGl0cyBvd24gY2lyY2xlL3RpbnQgZW50aXJlbHkgYnkgaXRzZWxmIOKAlFxuICAgICAgICAgICAgICAgIC8vIG9ubHkgdGhlIGxheW91dCBjb25jZXJuIChuZXZlciBzaHJpbmtpbmcgaW4gYSBuYXJyb3cgY29sdW1uKVxuICAgICAgICAgICAgICAgIC8vIGJlbG9uZ3MgaGVyZS5cbiAgICAgICAgICAgICAgICBxZG5hcHJvLWF2YXRhci5jdnQtbWVkaWEge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBJY29uLWtpbmQgdGlsZTogcWRuYXByby1hY3Rpdml0eS1pY29uIGlzIG5vdCBpdHNlbGYgdGludGFibGVcbiAgICAgICAgICAgICAgICAvLyAoZml4ZWQgdHdvLXRvbmUgYXJ0d29yaywgc2VlIGl0cyBvd24gZG9jYmxvY2spLCBzbyB0aGUgY29sb3VyXG4gICAgICAgICAgICAgICAgLy8gY3VlIGxpdmVzIG9uIHRoaXMgdGlsZSBiYWNrZ3JvdW5kIGluc3RlYWQg4oCUIHNhbWUgaWRlYSBhc1xuICAgICAgICAgICAgICAgIC8vIHFkbmFwcm8tdGFza2xpc3QtY2FyZCdzIC50bGMtdGlsZS5cbiAgICAgICAgICAgICAgICAuY3Z0LXRpbGUge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTEwMCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmN2dC10aWxlLS1ncmV5ICAgICAgICB7IGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7IH1cbiAgICAgICAgICAgICAgICAuY3Z0LXRpbGUtLXJlZCAgICAgICAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtcmVkLWJnKTsgfVxuICAgICAgICAgICAgICAgIC5jdnQtdGlsZS0teWVsbG93ICAgICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAteWVsbG93LWJnKTsgfVxuICAgICAgICAgICAgICAgIC5jdnQtdGlsZS0tZ3JlZW4gICAgICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAtZ3JlZW4tYmcpOyB9XG4gICAgICAgICAgICAgICAgLmN2dC10aWxlLS1ibHVlICAgICAgICB7IGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLWJsdWUtYmcpOyB9XG4gICAgICAgICAgICAgICAgLmN2dC10aWxlLS1icmlnaHQtYmx1ZSB7IGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1icmlnaHQtYmx1ZS0yLWJnKTsgfVxuICAgICAgICAgICAgICAgIC5jdnQtdGlsZS0tcGluayAgICAgICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1waW5rLWJnKTsgfVxuICAgICAgICAgICAgICAgIC5jdnQtdGlsZS0tcHVycGxlICAgICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAtcHVycGxlLWJnKTsgfVxuXG4gICAgICAgICAgICAgICAgLmN2dC1sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gXCJ0ZXh0LXN1YlwiIOKAlCB0d28gc3RhY2tlZCBsaW5lcyBpbiBvbmUgY2VsbDogdGhlIHJlY29yZCdzIG93biB2YWx1ZSBvblxuICAgICAgICAgICAgLy8gdG9wLCBhIHN1cHBvcnRpbmcgbGluZSB1bmRlciBpdCAoc2VlIFRleHRTdWJDb2x1bW4pLiBJdCBleGlzdHMgc28gYW5cbiAgICAgICAgICAgIC8vIG92ZXJ2aWV3IGNhbiBmb2xkIGNvbHVtbnMgdGhhdCBvbmx5IGV2ZXIgcXVhbGlmeSB0aGUgbWFpbiBvbmUgKGNpdHksXG4gICAgICAgICAgICAvLyBjb3VudHJ5KSBpbnRvIHRoZSBjb2x1bW4gdGhleSBxdWFsaWZ5LCBpbnN0ZWFkIG9mIHNwZW5kaW5nIGEgd2hvbGVcbiAgICAgICAgICAgIC8vIHRhYmxlIGNvbHVtbiBlYWNoLlxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIFRoZSBtYXJrIGluIGZyb250IGlzIHRoZSBDT0xVTU4ncywgaWRlbnRpY2FsIG9uIGV2ZXJ5IHJvdyDigJQgdGhlIHNhbWVcbiAgICAgICAgICAgIC8vIDI4cHggYm94IFwidGh1bWJuYWlsLXRleHRcIiB1c2VzLCBzbyBhIHRhYmxlIHdpdGggYm90aCB0eXBlcyBrZWVwcyBvbmVcbiAgICAgICAgICAgIC8vIGxlZnQgZWRnZS4gSXQgaXMgTk9UIGdpdmVuIGEgYmFja2dyb3VuZCBvciBhIHJhZGl1czogdGhlc2UgYXJlIHRoZVxuICAgICAgICAgICAgLy8gZnVsbC1jb2xvdXIgU1ZHIHBvc3RlcnMgb2YgdGhlIGFuaW1hdGVkIGljb24gc2V0LCBkcmF3aW5ncyB3aXRoIHRoZWlyXG4gICAgICAgICAgICAvLyBvd24gc2lsaG91ZXR0ZSwgYW5kIGEgZ3JleSB0aWxlIGJlaGluZCBvbmUgcmVhZHMgYXMgYSBmYWlsZWQgcGhvdG8uXG4gICAgICAgICAgICAuY29sLXRleHQtc3ViIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICBpbWcuY3RzLW1hcmsge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmN0cy1saW5lcyB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgIC8vIDEuMywgbm90IHRoZSB0YWJsZSdzIG93biBsaW5lLWhlaWdodDogdHdvIGxpbmVzIGF0IHRoZSByb3cnc1xuICAgICAgICAgICAgICAgICAgICAvLyBkZWZhdWx0IGxlYWRpbmcgbWFrZSB0aGUgY2VsbCB0YWxsZXIgdGhhbiB0aGUgbWFyayBiZXNpZGUgaXRcbiAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHB1bGwgZXZlcnkgb3RoZXIgcm93IGFsb25nIHdpdGggaXQuXG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBCb3RoIGxpbmVzIHN0YXkgb24gT05FIGxpbmUgZWFjaCBhbmQgY2xpcC4gV2l0aG91dCB0aGlzIHRoZVxuICAgICAgICAgICAgICAgIC8vIHNlY29uZCBsaW5lIHdyYXBzIGluIGEgbmFycm93IGNvbHVtbiBhbmQgdGhlIHJvdyBzaWxlbnRseVxuICAgICAgICAgICAgICAgIC8vIGRvdWJsZXMgaW4gaGVpZ2h0IOKAlCB0aGUgZXhhY3QgdHJhcCB0aGUgYHRydW5jYXRlYCBvcHRpb24gZXhpc3RzXG4gICAgICAgICAgICAgICAgLy8gZm9yIG9uIHBsYWluIHRleHQgY29sdW1ucy5cbiAgICAgICAgICAgICAgICAuY3RzLW1haW4sXG4gICAgICAgICAgICAgICAgLmN0cy1zdWIge1xuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuY3RzLXN1YiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gRml4ZWQgMTJweCByYXRoZXIgdGhhbiBhIHJlbGF0aXZlIHN0ZXA6IHRoZSBkZW5zaXR5IHJ1bGVzIGF0XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBib3R0b20gb2YgdGhpcyBmaWxlIHJlLXNldCB0aGUgbWFpbiBsaW5lIHBlciBkZW5zaXR5LCBhbmRcbiAgICAgICAgICAgICAgICAgICAgLy8gYW4gZW0tYmFzZWQgc3ViLWxpbmUgd291bGQgZHJpZnQgYWxvbmcgd2l0aCBpdCBpbnRvIDEwcHggb25cbiAgICAgICAgICAgICAgICAgICAgLy8gY29tcGFjdC5cbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvbC1hdmF0YXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTEwMCk7XG5cbiAgICAgICAgICAgICAgICAgICAgJi5pcy1lbXB0eSB7IGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZC1ob3Zlcik7IH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLy8g4pSA4pSAIEdyaWQgdmlldyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ucWRuYXByby10YWJsZS1ncmlkIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGdhcDogMTZweDtcbiAgICBwYWRkaW5nOiAxNnB4O1xuXG4gICAgJjpub3QoW2hpZGRlbl0pIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgLy8gMTgwLCBub3QgMjIwIChLaW0gMTAuMDguMjAyNjogXCJrdW5uZW4gemUgZWVuIHRpa2tpZSBrbGVpbmVyIGRhdCBlciAxXG4gICAgICAgIC8vIGV4dHJhIHRpbGUgb3AgMSByaWoga2FuIHN0YWFuXCIpLiBPbiBoZXIgMTQ4M3B4IHdpbmRvdyB0aGUgY2VudGVyIGFyZWFcbiAgICAgICAgLy8gZ2l2ZXMgdGhlIGdyaWQgMTIxMnB4IG9mIHVzYWJsZSB3aWR0aDogYXQgMjIwIHRoYXQgaXMgZml2ZSBjb2x1bW5zIG9mXG4gICAgICAgIC8vIDIzMCwgYXQgMTgwIGl0IGlzIHNpeCBvZiAxODkuIEFueSBuYXJyb3dlciBhbmQgYSB0d28tbGluZSB0aXRsZSBwbHVzIGFcbiAgICAgICAgLy8gdGFnIHBsdXMgYSBzdGF0IHN0YXJ0IGZpZ2h0aW5nIGZvciB0aGUgc2FtZSBsaW5lLlxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxODBweCwgMWZyKSk7XG4gICAgfVxufVxuXG4ucWRuYXByby10YWJsZS1ncmlkLWVtcHR5IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogNTJweCAxNnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwKTtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG5cbi8vIFRoZSBncmlkIHZpZXcncyBDQVJEIGlzIHFkbmFwcm8tZ3JpZC10aWxlIGluIGl0cyBsYXlvdXQ9XCJjYXJkXCIgbW9kZSBhcyBvZlxuLy8gMTAuMDguMjAyNiAtIHRoaXMgZmlsZSB1c2VkIHRvIGNhcnJ5IH4xMjAgbGluZXMgb2YgYC5xZG5hcHJvLXRhYmxlLWNhcmRgXG4vLyBtYXJrdXAgQ1NTIChiYW5uZXIsIGF2YXRhciBjaXJjbGUsIHRpdGxlLCBzdWJ0aXRsZSwgc3RhdHMpIHRoYXQgd2VyZSBhXG4vLyBzZWNvbmQgY29weSBvZiBhbiBhbmF0b215IHRoZSBjb21wb25lbnQgYWxyZWFkeSBvd25lZC4gRXZlcnl0aGluZyBhYm91dCBhXG4vLyBjYXJkIG5vdyBsaXZlcyBpbiBfZ3JpZC10aWxlLnNjc3M7IG9ubHkgdGhlIEdSSUQgYXJvdW5kIHRoZSBjYXJkc1xuLy8gKC5xZG5hcHJvLXRhYmxlLWdyaWQgYWJvdmUpIGFuZCB0aGUgZW50cmFuY2UgYW5pbWF0aW9uIGJlbG93IGFyZSB0aGVcbi8vIHRhYmxlJ3Mgb3duIGJ1c2luZXNzLlxuXG4vLyDilIDilIAgRW50cmFuY2UgYW5pbWF0aW9uIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy9cbi8vIFJvd3MgYW5kIGNhcmRzIGNvbWUgaW4gb25lIGJ5IG9uZSwgc28gc3dpdGNoaW5nIGJldHdlZW4gbGlzdCBhbmQgZ3JpZCByZWFkcyBhc1xuLy8gYSBjaGFuZ2UgaW5zdGVhZCBvZiBhIGp1bXAgY3V0LiBxZG5hLXRhYmxlLmpzIGhhbmdzIGBpcy1lbnRlcmluZ2Agb24gYSByb3cgb3Jcbi8vIGNhcmQgYW5kIHdyaXRlcyBpdHMgKGNhcHBlZCkgcG9zaXRpb24gaW50byAtLXFkbmFwcm8tdGFibGUtZW50ZXItaTsgdGhlIGRlbGF5XG4vLyBpcyB0aGF0IG51bWJlciB0aW1lcyB0aGUgc3RlcC4gW0tpbSAwOC4wOC4yMDI2XVxuLy9cbi8vIEl0IGZpcmVzIE9OTFkgb24gYSB2aWV3IHN3aXRjaCBhbmQgb24gdGhlIGZpcnN0IHBhaW50IGFmdGVyIGxvYWRpbmcg4oCUIG5ldmVyIG9uXG4vLyBzb3J0LCBzZWFyY2gsIHBpbiBvciBjb2x1bW4gZHJhZywgZXZlbiB0aG91Z2ggdGhvc2UgYWxzbyByZS1yZW5kZXIgdGhlIGJvZHkuXG4vLyBSZS1hbmltYXRpbmcgdGhlIHdob2xlIGxpc3Qgb24gZXZlcnkga2V5c3Ryb2tlIGlzIG1vcmUgcmVzdGxlc3MgdGhhbiBub3RoaW5nLlxuLy9cbi8vIGlzLWVudGVyaW5nLWZsYXQgaXMgdGhlIHNhbWUgYXJyaXZhbCBXSVRIT1VUIHRoZSB1cHdhcmQgc2hpZnQsIGZvciBhIHRhYmxlIHdpdGhcbi8vIGEgcGlubmVkIGNvbHVtbjogYSB0cmFuc2Zvcm0gb24gdGhlIHJvdyBtYWtlcyB0aGF0IHJvdyB0aGUgY29udGFpbmluZyBibG9jaywgc29cbi8vIHRoZSBzdGlja3kgY2VsbCB3b3VsZCBzdG9wIHN0aWNraW5nIGZvciBhcyBsb25nIGFzIHRoZSBhbmltYXRpb24gcnVucy5cblxuJHRhYmxlLWVudGVyLWR1cmF0aW9uIDogMTgwbXM7XG4kdGFibGUtZW50ZXItc3RlcCAgICAgOiAyNW1zO1xuJHRhYmxlLWVudGVyLXNoaWZ0ICAgIDogNnB4O1xuJHRhYmxlLWVudGVyLWVhc2UgICAgIDogY3ViaWMtYmV6aWVyKDAuMjIsIDAuNjEsIDAuMzYsIDEpOyAvLyBlYXNlLW91dDogcXVpY2sgb2ZmIHRoZSBtYXJrLCBzb2Z0IGxhbmRpbmdcblxuQGtleWZyYW1lcyBxZG5hcHJvLXRhYmxlLWVudGVyIHtcbiAgICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCR0YWJsZS1lbnRlci1zaGlmdCk7IH1cbiAgICB0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBub25lOyB9XG59XG5cbkBrZXlmcmFtZXMgcWRuYXByby10YWJsZS1lbnRlci1mbGF0IHtcbiAgICBmcm9tIHsgb3BhY2l0eTogMDsgfVxuICAgIHRvICAgeyBvcGFjaXR5OiAxOyB9XG59XG5cbi5xZG5hcHJvLXRhYmxlLWxpc3QgdGJvZHkgdHIuaXMtZW50ZXJpbmcsXG4ucWRuYXByby10YWJsZS1ncmlkIC5xZG5hcHJvLWdyaWQtdGlsZS5pcy1lbnRlcmluZyB7XG4gICAgYW5pbWF0aW9uOiBxZG5hcHJvLXRhYmxlLWVudGVyICR0YWJsZS1lbnRlci1kdXJhdGlvbiAkdGFibGUtZW50ZXItZWFzZSBib3RoO1xuICAgIGFuaW1hdGlvbi1kZWxheTogY2FsYyh2YXIoLS1xZG5hcHJvLXRhYmxlLWVudGVyLWksIDApICogI3skdGFibGUtZW50ZXItc3RlcH0pO1xufVxuXG4ucWRuYXByby10YWJsZS1saXN0IHRib2R5IHRyLmlzLWVudGVyaW5nLWZsYXQge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBxZG5hcHJvLXRhYmxlLWVudGVyLWZsYXQ7XG59XG5cbi8vIFNvbWVvbmUgd2hvIGFza2VkIHRoZSBzeXN0ZW0gZm9yIGxlc3MgbW92ZW1lbnQgZ2V0cyB0aGUgZW5kIHN0YXRlIHJpZ2h0IGF3YXksXG4vLyBub3QgYSBmYXN0ZXIgdmVyc2lvbiBvZiB0aGUgc2FtZSB0aGluZy5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLnFkbmFwcm8tdGFibGUtbGlzdCB0Ym9keSB0ci5pcy1lbnRlcmluZyxcbiAgICAucWRuYXByby10YWJsZS1ncmlkIC5xZG5hcHJvLWdyaWQtdGlsZS5pcy1lbnRlcmluZyB7XG4gICAgICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICB9XG59XG5cbi8vIOKUgOKUgCBSb3cgZGVuc2l0eSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vXG4vLyBUd28gc3RlcHMsIExJU1QgVklFVyBPTkxZLiBgZGVmYXVsdGAgaXMgd2hhdCB0aGUgdGFibGUgYWx3YXlzIHdhcywgc28gbm90aGluZ1xuLy8gY2hhbmdlcyBmb3IgYSB0YWJsZSB0aGF0IG5ldmVyIGFza3MgZm9yIHRoaXMuIFtLaW0gMDkuMDguMjAyNl1cbi8vXG4vLyAgIGRlZmF1bHQgICAgIDExcHggcGFkZGluZyAvIDE0cHggIOKGkiB+NDBweCByb3dcbi8vICAgY29tZm9ydGFibGUgMTZweCBwYWRkaW5nIC8gMTVweCAg4oaSIH41MXB4IHJvd1xuLy9cbi8vIGBjb21mb3J0YWJsZWAgcmFpc2VzIHRoZSBURVhUIGFzIHdlbGwuIEEgdGFsbGVyIHJvdyBvbiBpdHMgb3duIGRvZXMgbm90aGluZ1xuLy8gZm9yIHNvbWVvbmUgd2hvIGNhbm5vdCByZWFkIDE0cHgsIGFuZCB0aGF0IGlzIHdobyB0aGUgc2V0dGluZyBpcyBmb3IuIFRoZVxuLy8gaGVpZ2h0IHN0aWxsIGNvbWVzIGZyb20gcGFkZGluZyArIGxpbmUtaGVpZ2h0IGFuZCBuZXZlciBmcm9tIGEgZml4ZWQgaGVpZ2h0LFxuLy8gc28gYSBsb25nIGNlbGwga2VlcHMgZ3Jvd2luZyBpdHMgb3duIHJvdyBhbmQgYnJvd3NlciB6b29tIChXQ0FHIDEuNC40IGFza3Ncbi8vIGZvciAyMDAlIHdpdGhvdXQgbG9zcykgd29ya3Mgb24gdG9wIG9mIHRoaXMgaW5zdGVhZCBvZiBmaWdodGluZyBpdC5cbi8vXG4vLyBUaGVyZSBpcyBkZWxpYmVyYXRlbHkgTk8gYGNvbXBhY3RgIHN0ZXA6IGF0IDMycHggYSByb3cgZmFsbHMgdW5kZXIgdGhlIDQ0cHhcbi8vIHRhcCB0YXJnZXQsIGFuZCBhIHN0ZXAgdGhhdCBvbmx5IGV4aXN0cyB3aXRoIGEgbW91c2UgaXMgYSBzdGVwIHRoYXQgaGFzIHRvIGJlXG4vLyBleHBsYWluZWQuXG5cbiR0YWJsZS1jb21wYWN0LXBhZGRpbmcteSAgICAgICAgICA6IDhweDtcbiR0YWJsZS1jb21wYWN0LXBhZGRpbmcteCAgICAgICAgICA6IDEycHg7XG4kdGFibGUtY29tcGFjdC1mb250LXNpemUgICAgICAgICAgOiAxMnB4O1xuJHRhYmxlLWNvbXBhY3QtaGVhZC1wYWRkaW5nLXkgICAgIDogN3B4O1xuJHRhYmxlLWNvbWZvcnRhYmxlLXBhZGRpbmcteSAgICAgIDogMTZweDtcbiR0YWJsZS1jb21mb3J0YWJsZS1mb250LXNpemUgICAgICA6IDE1cHg7XG4kdGFibGUtY29tZm9ydGFibGUtaGVhZC1wYWRkaW5nLXkgOiAxMnB4O1xuJHRhYmxlLWRlbnNpdHktZHVyYXRpb24gICAgICAgICAgIDogMjAwbXM7XG4kdGFibGUtZGVuc2l0eS1lYXNlICAgICAgICAgICAgICAgOiBjdWJpYy1iZXppZXIoMC4yMiwgMC42MSwgMC4zNiwgMSk7IC8vIHNhbWUgZWFzZS1vdXQgYXMgdGhlIGVudHJhbmNlXG5cbi8vIFRoZSByb3dzIEdST1cgYW5kIFNIUklOSyBpbnN0ZWFkIG9mIHNuYXBwaW5nLiBEZWxpYmVyYXRlbHkgYSB0cmFuc2l0aW9uIGFuZFxuLy8gbm90IGFuIGFuaW1hdGlvbjogYSB0cmFuc2l0aW9uIG9ubHkgZmlyZXMgb24gYSBjaGFuZ2UsIHNvIGEgZnJlc2hseSByZW5kZXJlZFxuLy8gdGFibGUgKGV2ZXJ5IGZldGNoLCBldmVyeSBzb3J0KSBwYWludHMgYXQgaXRzIGZpbmFsIHNpemUgd2l0aG91dCBhIHdvYmJsZSwgYW5kXG4vLyB0aGUgdHdvIGRpcmVjdGlvbnMgYXJlIGZyZWUg4oCUIHRoZSBzYW1lIHJ1bGUgY292ZXJzIHJvb21pZXIgYW5kIHRpZ2h0ZXIuXG4vL1xuLy8gUGFkZGluZyBhbmQgZm9udC1zaXplIGFyZSBMQVlPVVQgcHJvcGVydGllcywgc28gdGhpcyBpcyBub3QgYSBHUFUtY29tcG9zaXRlZFxuLy8gYW5pbWF0aW9uIHRoZSB3YXkgdGhlIGVudHJhbmNlIGlzOyB3aXRoIHRoZSAyNSByb3dzIG9mIGEgZGVmYXVsdCBwYWdlIHRoYXQgaXNcbi8vIHVubm90aWNlYWJsZSwgYnV0IGl0IGlzIHRoZSByZWFzb24gbm90IHRvIHJlYWNoIGZvciB0aGlzIG9uIGV2ZXJ5dGhpbmcuXG4vL1xuLy8gSXQgc2l0cyBvbiB0aGUgYmFzZSBzZWxlY3Rvciwgbm90IG9uIHRoZSBjb21mb3J0YWJsZSBvbmUsIG9yIHRoZSB3YXkgYmFja1xuLy8gKHRoZSBjbGFzcyBiZWluZyByZW1vdmVkKSB3b3VsZCBoYXZlIG5vIHRyYW5zaXRpb24gdG8gcnVuIGFuZCBvbmx5IGdyb3dpbmdcbi8vIHdvdWxkIGFuaW1hdGUuXG5cbi5xZG5hcHJvLXRhYmxlLWxpc3Qge1xuICAgIHRoZWFkIHRoLFxuICAgIHRib2R5IHRkIHtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICAgIHBhZGRpbmctdG9wICAgICR0YWJsZS1kZW5zaXR5LWR1cmF0aW9uICR0YWJsZS1kZW5zaXR5LWVhc2UsXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbSAkdGFibGUtZGVuc2l0eS1kdXJhdGlvbiAkdGFibGUtZGVuc2l0eS1lYXNlLFxuICAgICAgICAgICAgLy8gY29tcGFjdCBpcyB0aGUgb25seSBzdGVwIHRoYXQgYWxzbyB0aWdodGVucyBsZWZ0L3JpZ2h0LCBhbmQgd2l0aG91dFxuICAgICAgICAgICAgLy8gdGhlc2UgdHdvIHRoZSByb3cgd291bGQgZ3JvdyBzbW9vdGhseSB3aGlsZSB0aGUgY29sdW1ucyBzbmFwcGVkLlxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0ICAgJHRhYmxlLWRlbnNpdHktZHVyYXRpb24gJHRhYmxlLWRlbnNpdHktZWFzZSxcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQgICR0YWJsZS1kZW5zaXR5LWR1cmF0aW9uICR0YWJsZS1kZW5zaXR5LWVhc2UsXG4gICAgICAgICAgICBmb250LXNpemUgICAgICAkdGFibGUtZGVuc2l0eS1kdXJhdGlvbiAkdGFibGUtZGVuc2l0eS1lYXNlO1xuICAgIH1cbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAucWRuYXByby10YWJsZS1saXN0IHtcbiAgICAgICAgdGhlYWQgdGgsXG4gICAgICAgIHRib2R5IHRkIHsgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAgIH1cbn1cblxuLnFkbmFwcm8tdGFibGUtbGlzdC5pcy1kZW5zaXR5LWNvbWZvcnRhYmxlIHtcbiAgICB0aGVhZCB0aCB7XG4gICAgICAgIHBhZGRpbmctdG9wICAgOiAkdGFibGUtY29tZm9ydGFibGUtaGVhZC1wYWRkaW5nLXk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkdGFibGUtY29tZm9ydGFibGUtaGVhZC1wYWRkaW5nLXk7XG4gICAgfVxuXG4gICAgdGJvZHkgdGQge1xuICAgICAgICBwYWRkaW5nLXRvcCAgIDogJHRhYmxlLWNvbWZvcnRhYmxlLXBhZGRpbmcteTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICR0YWJsZS1jb21mb3J0YWJsZS1wYWRkaW5nLXk7XG4gICAgICAgIGZvbnQtc2l6ZSAgICAgOiAkdGFibGUtY29tZm9ydGFibGUtZm9udC1zaXplO1xuXG4gICAgICAgICYuY29sLWNoZWNrYm94IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wICAgOiAkdGFibGUtY29tZm9ydGFibGUtcGFkZGluZy15O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICR0YWJsZS1jb21mb3J0YWJsZS1wYWRkaW5nLXk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUaGUgY29tcG9zaXRlIGNlbGwgdHlwZXMgY2FycnkgdGhlaXIgb3duIHR5cGUgc2NhbGU7IGxpZnQgdGhvc2Ugd2l0aCB0aGVcbiAgICAvLyByZXN0IHNvIGEgcm9vbXkgdGFibGUgZG9lcyBub3QgZW5kIHVwIHdpdGggb25lIGNvbHVtbiBzdGlsbCBhdCAxNHB4LlxuICAgIC5jb2wtdGh1bWJuYWlsLXRleHQgc3BhbixcbiAgICAuY29sLWljb24tdGV4dCxcbiAgICAuY29sLXZpc3VhbC10ZXh0IC5jdnQtbGFiZWwsXG4gICAgLmNvbC10ZXh0LXN1YiAuY3RzLW1haW4ge1xuICAgICAgICBmb250LXNpemU6ICR0YWJsZS1jb21mb3J0YWJsZS1mb250LXNpemU7XG4gICAgfVxuXG4gICAgLy8gVGhlIHBob3RvIGdyb3dzIHdpdGggdGhlIHJvdywgc2FtZSAzNHB4IHRpbGUgYSBjb21mb3J0YWJsZVxuICAgIC8vIFwidmlzdWFsLXRleHRcIiBjZWxsIHVzZXMuXG4gICAgLmNvbC10aHVtYm5haWwtdGV4dCBpbWcsXG4gICAgLmNvbC10aHVtYm5haWwtdGV4dCBxZG5hcHJvLWF2YXRhcixcbiAgICAuY29sLXRodW1ibmFpbC10ZXh0IC5jdHQtbWVkaWEsXG4gICAgLmNvbC10aHVtYm5haWwgaW1nLFxuICAgIC5jb2wtdGV4dC1zdWIgaW1nLmN0cy1tYXJrIHtcbiAgICAgICAgd2lkdGg6IDM0cHg7XG4gICAgICAgIGhlaWdodDogMzRweDtcbiAgICB9XG5cbiAgICAuY29sLXRodW1ibmFpbC10ZXh0IC5jdHQtdGlsZS0taW5pdGlhbHMgeyBmb250LXNpemU6IDEzcHg7IH1cbn1cblxuLy8gQ29tcGFjdCDigJQgS2ltIDA5LjA4LjIwMjYsIGZyb20gaGVyIG93biByb29teS9jb21wYWN0IGRlc2lnbiBwYWlyOiAzMnB4IHJvd3MsXG4vLyAxMnB4IHRleHQsIDEycHggbGVmdCBhbmQgcmlnaHQuIFRoaXMgaXMgdGhlIG9uZSBzdGVwIHRoYXQgYWxzbyB0aWdodGVucyB0aGVcbi8vIEhPUklaT05UQUwgcGFkZGluZywgYmVjYXVzZSB0aGF0IGlzIHdoZXJlIGEgd2lkZSB0YWJsZSBhY3R1YWxseSB3aW5zIHJvb206IGF0XG4vLyB0ZW4gY29sdW1ucyB0aGUgMTZweCBkZWZhdWx0IHNwZW5kcyAzMjBweCBvbiBhaXIgYWxvbmUuXG4vL1xuLy8gVGhlIGVhcmxpZXIgbm90ZSBhYm92ZSBzYXlzIGEgY29tcGFjdCBzdGVwIHdhcyByZWplY3RlZCBiZWNhdXNlIGEgMzJweCByb3cgc2l0c1xuLy8gdW5kZXIgdGhlIDQ0cHggdGFwIHRhcmdldC4gVGhhdCBvYmplY3Rpb24gc3RhbmRzIGZvciB0b3VjaCBhbmQgaXMgdGhlIHJlYXNvblxuLy8gY29tcGFjdCBpcyBOT1QgdGhlIGRlZmF1bHQgYW5kIG5ldmVyIGJlY29tZXMgaXQgYXV0b21hdGljYWxseTogYSBwYWdlIG9wdHMgaW4sXG4vLyBvciBhIHBlcnNvbiBwaWNrcyBpdC4gT24gdGhlIGJhY2tvZmZpY2UsIHdoaWNoIGlzIGEgbW91c2UtYW5kLWtleWJvYXJkIGRlc2tcbi8vIHRvb2wsIGEgZGVuc2VyIHRhYmxlIGlzIHRoZSBwb2ludC5cbi8vXG4vLyBUaGUgaGVpZ2h0IHN0aWxsIGNvbWVzIGZyb20gcGFkZGluZyBwbHVzIGxpbmUtaGVpZ2h0LCBuZXZlciBmcm9tIGEgZml4ZWRcbi8vIGhlaWdodCwgc28gYSBsb25nIGNlbGwgY2FuIHN0aWxsIGdyb3cgaXRzIG93biByb3cgYW5kIGJyb3dzZXIgem9vbSBrZWVwc1xuLy8gd29ya2luZyAoV0NBRyAxLjQuNCkuXG4ucWRuYXByby10YWJsZS1saXN0LmlzLWRlbnNpdHktY29tcGFjdCB7XG4gICAgdGhlYWQgdGgge1xuICAgICAgICBwYWRkaW5nLXRvcCAgIDogJHRhYmxlLWNvbXBhY3QtaGVhZC1wYWRkaW5nLXk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkdGFibGUtY29tcGFjdC1oZWFkLXBhZGRpbmcteTtcbiAgICAgICAgcGFkZGluZy1sZWZ0ICA6ICR0YWJsZS1jb21wYWN0LXBhZGRpbmcteDtcbiAgICAgICAgcGFkZGluZy1yaWdodCA6ICR0YWJsZS1jb21wYWN0LXBhZGRpbmcteDtcbiAgICB9XG5cbiAgICB0Ym9keSB0ZCB7XG4gICAgICAgIHBhZGRpbmctdG9wICAgOiAkdGFibGUtY29tcGFjdC1wYWRkaW5nLXk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkdGFibGUtY29tcGFjdC1wYWRkaW5nLXk7XG4gICAgICAgIHBhZGRpbmctbGVmdCAgOiAkdGFibGUtY29tcGFjdC1wYWRkaW5nLXg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQgOiAkdGFibGUtY29tcGFjdC1wYWRkaW5nLXg7XG4gICAgICAgIGZvbnQtc2l6ZSAgICAgOiAkdGFibGUtY29tcGFjdC1mb250LXNpemU7XG5cbiAgICAgICAgJi5jb2wtY2hlY2tib3gge1xuICAgICAgICAgICAgcGFkZGluZy10b3AgICA6ICR0YWJsZS1jb21wYWN0LXBhZGRpbmcteTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkdGFibGUtY29tcGFjdC1wYWRkaW5nLXk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29sLXRodW1ibmFpbC10ZXh0IHNwYW4sXG4gICAgLmNvbC1pY29uLXRleHQsXG4gICAgLmNvbC12aXN1YWwtdGV4dCAuY3Z0LWxhYmVsLFxuICAgIC5jb2wtdGV4dC1zdWIgLmN0cy1tYWluIHtcbiAgICAgICAgZm9udC1zaXplOiAkdGFibGUtY29tcGFjdC1mb250LXNpemU7XG4gICAgfVxuXG4gICAgLy8gVGhlIHN1Yi1saW5lIGRyb3BzIG9uZSBzdGVwIHRvbywgc28gYSBjb21wYWN0IHJvdyBzdGF5cyBhIGNvbXBhY3Qgcm93OiBhdFxuICAgIC8vIDEycHggdW5kZXIgYSAxMnB4IG1haW4gbGluZSB0aGUgdHdvIHN0b3AgcmVhZGluZyBhcyBhIGhpZXJhcmNoeS5cbiAgICAuY29sLXRleHQtc3ViIC5jdHMtc3ViIHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgIH1cblxuICAgIC8vIFRoZSBwaG90byBzaHJpbmtzIHdpdGggdGhlIHJvdywgc2FtZSAyMHB4IHRpbGUgYSBjb21wYWN0IFwidmlzdWFsLXRleHRcIlxuICAgIC8vIGNlbGwgdXNlcyDigJQgb3RoZXJ3aXNlIHRoZSBpbWFnZSwgbm90IHRoZSB0ZXh0LCBzZXRzIHRoZSByb3cgaGVpZ2h0LlxuICAgIC5jb2wtdGh1bWJuYWlsLXRleHQgaW1nLFxuICAgIC5jb2wtdGh1bWJuYWlsLXRleHQgcWRuYXByby1hdmF0YXIsXG4gICAgLmNvbC10aHVtYm5haWwtdGV4dCAuY3R0LW1lZGlhLFxuICAgIC5jb2wtdGh1bWJuYWlsIGltZyxcbiAgICAuY29sLXRleHQtc3ViIGltZy5jdHMtbWFyayB7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgfVxuXG4gICAgLy8gNHB4IGF0IDIwcHg6IDYgb24gYSBib3ggdGhpcyBzbWFsbCBlYXRzIHRoZSBjb3JuZXIgaW50byBhIGxvemVuZ2UuXG4gICAgLmNvbC10aHVtYm5haWwtdGV4dCAuY3R0LW1lZGlhICAgICAgICAgIHsgYm9yZGVyLXJhZGl1czogNHB4OyB9XG4gICAgLmNvbC10aHVtYm5haWwtdGV4dCAuY3R0LXRpbGUtLWluaXRpYWxzIHsgZm9udC1zaXplOiA5cHg7IH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8tdGFibGUtd3JhcHBlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgVGhlIHNoZWxsIGFyb3VuZCBhIHFkbmFwcm8tdGFibGU6IGxhYmVsICsgY291bnQgKyBidXR0b25zLlxuLy9cbi8vICBQb3J0ZWQgMToxIGZyb20gdGhlIGhhbmQtcm9sbGVkIC5vdi1wYW5lbC1oZWFkZXIgYmxvY2sgaW5cbi8vICBzY3NzL3BhZ2VzL19vdmVydmlldy5zY3NzIChwYWRkaW5nLCBoYWlybGluZSwgdHlwZSBzaXplcyBhbmRcbi8vICB0aGUgY291bnQgcGlsbCBhcmUgdGhlIHNhbWUgbnVtYmVycyksIHdpdGggb25lIGRpZmZlcmVuY2U6XG4vLyAgdGhlIGxvb3NlIGhleGVzIHRoZXJlIHdlcmUgc3dhcHBlZCBmb3IgZGVzaWduIHRva2Vucywgc28gdGhlXG4vLyAgc3RyaXAgYWxzbyBob2xkcyB1cCBpbiBkYXJrIG1vZGUuIFRoZSBoZXggYmVoaW5kIGVhY2ggdG9rZW5cbi8vICBpcyB0aGUgTElHSFQgdmFsdWUgYW5kIHN0YXlzIGFzIGEgc2FmZXR5IG5ldCBmb3IgYSB0b2tlbiB0aGF0XG4vLyAgZG9lcyBub3QgcmVzb2x2ZS5cbi8vXG4vLyAgQ2FyZWZ1bCB3aGVuIHJlYWRpbmc6IHFkbmEtdGFibGUuanMgdXNlcyB0aGUgQ0xBU1Ncbi8vICAucWRuYXByby10YWJsZS13cmFwcGVyIGZvciBpdHMgb3duIHNjcm9sbCBjb250YWluZXIuIFRoYXQgaXNcbi8vICBhIGNsYXNzLCB0aGlzIGlzIGFuIGVsZW1lbnQg4oCUIGRpZmZlcmVudCBzZWxlY3RvcnMuIEV2ZXJ5IHBhcnRcbi8vICBpbiBoZXJlIGNhcnJpZXMgYSBfXyBzdWZmaXggc28gdGhlIHR3byBzdGF5IGFwYXJ0LlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnFkbmFwcm8tdGFibGUtd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIC8vIFRoZSBzdHJpcCBpcyBmaXhlZCBoZWlnaHQgYW5kIHRoZSB0YWJsZSB0YWtlcyB0aGUgcmVzdCwgc28gYSB0YWJsZVxuICAgIC8vIGluc2lkZSBhIGZpeGVkLWhlaWdodCBwYWdlIGFyZWEgc2Nyb2xscyBpbnRlcm5hbGx5IGluc3RlYWQgb2YgcHVzaGluZ1xuICAgIC8vIHRoZSBzdHJpcCBvZmYgc2NyZWVuLlxuICAgIG1pbi1oZWlnaHQ6IDA7XG5cbiAgICA+IHFkbmFwcm8tdGFibGUge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICB9XG59XG5cbi8vIOKUgOKUgCBTdHJpcCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8g4pSA4pSAIFRoZSBzdHJpcCwgYW5kIHRoZSB0d28gYmFycyBpbnNpZGUgaXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL1xuLy8gVGhlIG5vcm1hbCBiYXIgYW5kIHRoZSBzZWxlY3Rpb24gYmFyIGFyZSBCT1RIIHBsYWNlZCBpbiByb3cgMSAvIGNvbHVtbiAxIG9mXG4vLyB0aGUgc2FtZSBncmlkLiBUaGF0IG1ha2VzIHRoZSBzdHJpcCBhcyB0YWxsIGFzIHRoZSB0YWxsZXIgb2YgdGhlIHR3byBhdCBhbGxcbi8vIHRpbWVzLCBzbyBzd2l0Y2hpbmcgYmV0d2VlbiB0aGVtIGNhbm5vdCBtb3ZlIHRoZSB0YWJsZSBieSBhIHBpeGVsIOKAlCB3aGljaCBpc1xuLy8gdGhlIGVudGlyZSByZXF1aXJlbWVudDogYSB0YWJsZSB0aGF0IHNoaWZ0cyB0aGUgbW9tZW50IHlvdSB0aWNrIGEgcm93IGhhbmRzXG4vLyB5b3UgYSBtaXNjbGljay4gW0tpbSAwOS4wOC4yMDI2XVxuLy9cbi8vIGBoaWRkZW5gIGFsb25lIHdvdWxkIHRha2UgdGhlIGJhciBvdXQgb2YgdGhlIGZsb3cgYW5kIHRoZSBncmlkIHdvdWxkIHNocmlua1xuLy8gYmFjaywgc28gdGhlIGhpZGRlbiBiYXIga2VlcHMgaXRzIHNwYWNlIGFuZCBpcyBtYWRlIGludmlzaWJsZSBpbnN0ZWFkLlxuXG4ucWRuYXByby10YWJsZS13cmFwcGVyX19oZWFkZXIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgLy8gNnB4IGluc3RlYWQgb2YgOHB4LCB0b2dldGhlciB3aXRoIHRoZSAyOHB4IGJ1dHRvbnMuIFRoZSBzdHJpcCBoYXMgbm8gaGVpZ2h0IG9mXG4gICAgLy8gaXRzIG93bjogaXQgaXMgd2hhdGV2ZXIgdGhlIGJ1dHRvbnMgcGx1cyB0aGlzIHBhZGRpbmcgY29tZSB0bywgc28gdGhpcyBpcyB0aGVcbiAgICAvLyBvdGhlciBoYWxmIG9mIG1ha2luZyB0aGUgaGVhZGVyIHNob3J0ZXIuIFtLaW0gMDkuMDguMjAyNl1cbiAgICAvLyA0cHggaW5zdGVhZCBvZiA2OiB0aGUgdHdvIHBpeGVscyBtb3ZlZCBpbnRvIHRoZSBidXR0b25zLCB3aGljaCB3ZW50IGZyb20gMjhcbiAgICAvLyB0byAzMi4gU2FtZSBzdHJpcCBoZWlnaHQsIGJpZ2dlciB0YXJnZXQuIFtLaW0gMDkuMDguMjAyNl1cbiAgICBwYWRkaW5nOiA0cHggMTZweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCwgI2YwZjFmMik7XG5cbiAgICAvLyBUSEUgSEVJR0hUIE9GIEEgQkFSIElTIE9ORSBOVU1CRVIsIGFuZCBib3RoIGJhcnMgYXJlIGhlbGQgdG8gaXQuXG4gICAgLy9cbiAgICAvLyBUaGUgZ3JpZCBhbHJlYWR5IG1ha2VzIHRoZSBzdHJpcCBhcyB0YWxsIGFzIHRoZSB0YWxsZXIgYmFyLCBidXQgdGhhdCBpcyBhXG4gICAgLy8gTU9NRU5UQVJZIG1heGltdW06IHRoZSBzZWxlY3Rpb24gYmFyJ3Mgb3duIGhlaWdodCBkZXBlbmRzIG9uIGJ1dHRvbnMgdGhhdFxuICAgIC8vIG9ubHkgYXBwZWFyIG9uY2Ugc29tZXRoaW5nIGlzIHNlbGVjdGVkLCBzbyBhIHRhbGxlciBidXR0b24gYXBwZWFyaW5nIG1hZGVcbiAgICAvLyB0aGUgc3RyaXAgZ3JvdyBhbnl3YXkg4oCUIHRoZSBqdW1wIHdhcyBiYWNrLiBbS2ltIDA5LjA4LjIwMjZdXG4gICAgLy9cbiAgICAvLyAzMnB4LCBiZWNhdXNlIHRoYXQgaXMgd2hhdCBldmVyeXRoaW5nIGluIHRoZSBzdHJpcCBhY3R1YWxseSBpczogdGhlIGJ1dHRvbnNcbiAgICAvLyBhcmUgYHNudWdgICgzMiksIGFuZCB0aGUgdmlldyBzd2l0Y2ggaW4gaXRzIGB0aWxlc2Agc2tpbiBoYXMgbm8gdHJhY2tcbiAgICAvLyBwYWRkaW5nLiBUaGlzIGZsb29yIHN0b29kIGF0IDM0IGZvciBhIGRheSBvbiB0aGUgd3JvbmdcbiAgICAvLyBhc3N1bXB0aW9uIHRoYXQgdGhlIHN3aXRjaCBjYXJyaWVkIDLDlzNweCBvZiB0cmFjayDigJQgbWVhc3VyZWQgMDkuMDguMjAyNiwgaXRcbiAgICAvLyBkb2VzIG5vdCwgYW5kIHRob3NlIDZweCB3ZXJlIGFpciBub3RoaW5nIHVzZWQuIEJvdGggYmFycyBjYXJyeSB0aGUgZmxvb3IsIHNvXG4gICAgLy8gbmVpdGhlciBjYW4gYmUgc2hvcnRlciB0aGFuIHRoZSBvdGhlciB3aGF0ZXZlciBhIHBhZ2UgaGFuZ3MgaW5cbiAgICAvLyBzbG90PVwic2VsZWN0aW9uXCIuIEEgY29udHJvbCBUQUxMRVIgdGhhbiB0aGlzIHN0aWxsIHB1c2hlcyB0aGUgc3RyaXAgb3V0OyB0aGVcbiAgICAvLyBmbG9vciBwcmV2ZW50cyBzaHJpbmtpbmcsIG5vdCBncm93aW5nLCB3aGljaCBpcyB3aHkgdGhlIGJ1aWx0LWluIGJ1dHRvbnMgYW5kXG4gICAgLy8gdGhlIHBhZ2UncyBidWxrIGJ1dHRvbnMgYXJlIGFsbCBoZWxkIHRvIHRoZSBzYW1lIHNpemUuXG4gICAgLS1xdHctYmFyLWhlaWdodDogMzJweDtcbn1cblxuLnFkbmFwcm8tdGFibGUtd3JhcHBlcl9fYmFyIHtcbiAgICBncmlkLWFyZWE6IDEgLyAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBtaW4taGVpZ2h0OiB2YXIoLS1xdHctYmFyLWhlaWdodCk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjEycyBlYXNlO1xuXG4gICAgJltoaWRkZW5dIHtcbiAgICAgICAgZGlzcGxheTogZmxleDsgICAgICAvLyBiZWF0IHRoZSBicm93c2VyIGRlZmF1bHQgc28gaXQga2VlcHMgaXRzIHNwYWNlXG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxufVxuXG4vLyBUaGUgY2hlY2stYWxsIGdseXBoIGluIGZyb250IG9mIFwiMyBnZXNlbGVjdGVlcmRcIi5cbi5xZG5hcHJvLXRhYmxlLXdyYXBwZXJfX3NlbGVjdGlvbi1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG59XG5cbltkYXRhLXF0dy1zZWxlY3Rpb24tY291bnRdIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHksICMzNzQxNTEpO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8vIFNpdHMgZGlyZWN0bHkgYWZ0ZXIgXCJOIGdlc2VsZWN0ZWVyZFwiIGluIHRoZSBsZWZ0IGdyb3VwLCB3aXRoIGEgZ2FwIHRoYXQgcmVhZHMgYXNcbi8vIFwidGhlc2UgYmVsb25nIHRvIHRoYXQgc2VudGVuY2VcIiB3aXRob3V0IGdsdWluZyB0aGVtIHRvZ2V0aGVyLiBbS2ltIDEwLjA4LjIwMjZdXG4ucWRuYXByby10YWJsZS13cmFwcGVyX19zZWxlY3Rpb24tYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG5cbi8vIOKUgOKUgCBUaGUgYnVsayBidXR0b25zIGFycml2ZSBvbmUgYnkgb25lIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9cbi8vIEZhc3RlciBhbmQgc2hvcnRlciB0aGFuIHRoZSByb3dzIGluIHRoZSB0YWJsZTogdGhpcyBpcyBhIHN0cmlwIG9mIGZvdXIgb3IgZml2ZVxuLy8gYnV0dG9ucywgbm90IGEgcGFnZSBvZiByZWNvcmRzLCBhbmQgeW91IGFyZSBhbHJlYWR5IGxvb2tpbmcgc3RyYWlnaHQgYXQgaXQuXG4vLyAxMjBtcyBlYWNoLCAyMG1zIGFwYXJ0LCBhbmQgdGhleSBjb21lIGZyb20gc2xpZ2h0bHkgYmVsb3ctcmlnaHQgc28gdGhlIHdob2xlXG4vLyBncm91cCByZWFkcyBhcyBvbmUgbW92ZW1lbnQgcmF0aGVyIHRoYW4gZml2ZSBzZXBhcmF0ZSBvbmVzLlxuLy9cbi8vIEpTIHJlLXRyaWdnZXJzIHRoaXMgb24gZXZlcnkgZW50cnkgKHJlbW92ZSBjbGFzcyDihpIgcmVmbG93IOKGkiBhZGQgY2xhc3MpLFxuLy8gYmVjYXVzZSB0aGUgYmFyIGlzIG5ldmVyIGRpc3BsYXk6bm9uZSBhbmQgdGhlIGJyb3dzZXIgd291bGQgb3RoZXJ3aXNlIHJ1biB0aGVcbi8vIGFuaW1hdGlvbiBvbmNlLCBhdCBwYWdlIGxvYWQuIEdvaW5nIGZyb20gMyBzZWxlY3RlZCB0byAyIGRvZXMgTk9UIHJlcGxheSBpdC5cblxuJHR3LWJ1bGstZHVyYXRpb24gOiAxMjBtcztcbiR0dy1idWxrLXN0ZXAgICAgIDogMjBtcztcbiR0dy1idWxrLWVhc2UgICAgIDogY3ViaWMtYmV6aWVyKDAuMjIsIDAuNjEsIDAuMzYsIDEpO1xuXG5Aa2V5ZnJhbWVzIHFkbmFwcm8tdGFibGUtd3JhcHBlci1idWxrLWluIHtcbiAgICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNHB4LCAycHgpIHNjYWxlKDAuOTQpOyB9XG4gICAgdG8gICB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogbm9uZTsgfVxufVxuXG5bZGF0YS1xdHctYmFyPVwic2VsZWN0aW9uXCJdIC5pcy1lbnRlcmluZyB7XG4gICAgYW5pbWF0aW9uOiBxZG5hcHJvLXRhYmxlLXdyYXBwZXItYnVsay1pbiAkdHctYnVsay1kdXJhdGlvbiAkdHctYnVsay1lYXNlIGJvdGg7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiBjYWxjKHZhcigtLXF0dy1lbnRlci1pLCAwKSAqICN7JHR3LWJ1bGstc3RlcH0pO1xufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIFtkYXRhLXF0dy1iYXI9XCJzZWxlY3Rpb25cIl0gLmlzLWVudGVyaW5nIHsgYW5pbWF0aW9uOiBub25lOyB9XG59XG5cbi8vIExhYmVsLCBjb3VudCBhbmQgdGhlICsgYWxsIGxpdmUgb24gdGhlIGxlZnQuIFRoZSArIGdldHMgYSBsaXR0bGUgYWlyIHNvIGl0XG4vLyByZWFkcyBhcyBpdHMgb3duIGFjdGlvbiBhbmQgbm90IGFzIHBhcnQgb2YgdGhlIGNvdW50LiBbS2ltIDA5LjA4LjIwMjZdXG4ucWRuYXByby10YWJsZS13cmFwcGVyX19sZWZ0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgbWluLXdpZHRoOiAwO1xuXG4gICAgPiAucWRuYXByby1idXR0b24geyBtYXJnaW4tbGVmdDogNnB4OyB9XG59XG5cbi5xZG5hcHJvLXRhYmxlLXdyYXBwZXJfX3JpZ2h0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG4gICAgZmxleDogMCAwIGF1dG87XG59XG5cbi8vIEhvc3Qtc3VwcGxpZWQgYnV0dG9ucyAoc2xvdD1cImFjdGlvbnNcIikgc2l0IGxlZnQgb2YgdGhlIGJ1aWx0LWluIG9uZXMgYW5kIGFyZVxuLy8gc2VwYXJhdGVkIGZyb20gdGhlbSBieSB0aGVpciBvd24gZ2FwLCBzbyBhbiBleHBvcnQgYnV0dG9uIG5ldmVyIHJlYWRzIGFzIHBhcnRcbi8vIG9mIHRoZSB2aWV3IHRvZ2dsZS5cbi5xZG5hcHJvLXRhYmxlLXdyYXBwZXJfX2FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcblxuICAgICY6bm90KDplbXB0eSkge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICB9XG59XG5cbi5xZG5hcHJvLXRhYmxlLXdyYXBwZXJfX2xhYmVsIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHksICMzNzQxNTEpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLy8gVGhlIGNvdW50IGlzIHBsYWluIG11dGVkIHRleHQgbmV4dCB0byB0aGUgbGFiZWwsIG5vdCBhIHBpbGwuIEtpbSAwOS4wOC4yMDI2OlxuLy8gdGhlIGdyZXkgYmFkZ2UgcmVhZCBhcyBhIHN0YXR1cyBtYXJrZXIsIGFzIGlmIHRoZSAxMSBtZWFudCBzb21ldGhpbmcgaGFkXG4vLyBoYXBwZW5lZC4gSXQgaXMganVzdCBob3cgbWFueSByb3dzIHRoZXJlIGFyZSwgc28gaXQgaXMgc2V0IGxpa2UgYSBudW1iZXI6IHNhbWVcbi8vIHNpemUgYXMgdGhlIGxhYmVsLCBsaWdodGVyIHdlaWdodCwgbXV0ZWQgY29sb3VyLCBhbmQgYSBsaXR0bGUgYWlyIGluIGZyb250LlxuLy8gQSBiYWRnZSBlYXJucyBpdHMgY29udGFpbmVyIHdoZW4gaXQgY29tcGV0ZXMgZm9yIGF0dGVudGlvbiAoYW4gdW5yZWFkIGNvdW50KTtcbi8vIHRoaXMgb25lIG5ldmVyIGRvZXMuXG5bZGF0YS1xdHctY291bnRdIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBtYXJnaW4tbGVmdDogMnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwKTtcbiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuXG4gICAgJltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxufVxuXG4vLyBUaGUgaGFpcmxpbmVzIGJldHdlZW4gdGhlIGdyb3VwcyBvbiB0aGUgcmlnaHQuIFRoZSBoZWlnaHQgY29tZXMgZnJvbSB0aGVcbi8vIGRpdmlkZXIncyBvd24gYGxlbmd0aGAgYXR0cmlidXRlOyBvbmx5IHRoZSBhaXIgYXJvdW5kIGl0IGlzIGRlY2lkZWQgaGVyZS5cbi5xZG5hcHJvLXRhYmxlLXdyYXBwZXJfX2RpdmlkZXIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1hcmdpbjogMCA0cHg7XG59XG5cbi8vIOKUgOKUgCBWaWV3IHN3aXRjaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyBUaGUgc3dpdGNoIGlzIGEgcWRuYXByby1zZWdtZW50IChzaXplPXNtYWxsLCBpY29uLW9ubHkgaXRlbXMpIGFuZCBicmluZ3MgaXRzXG4vLyBvd24gbG9vayBhbmQgaXRzIG93biBzbGlkaW5nIGJsb2NrLiBOb3RoaW5nIGlzIHJlc3R5bGVkIGhlcmUg4oCUIHRoYXQgd291bGQgYmVcbi8vIHBhaW50aW5nIG92ZXIgYW5vdGhlciBjb21wb25lbnQuIFRoZSBvbmx5IHRoaW5nIHRoaXMgZmlsZSBkZWNpZGVzIGlzIHRoZSBhaXJcbi8vIGFyb3VuZCBpdDogdGhlIHNlZ21lbnQgaXMgMzRweCB0YWxsICgyOHB4IGl0ZW0gKyAyw5czcHggdHJhY2sgcGFkZGluZykgYWdhaW5zdFxuLy8gdGhlIDI4cHggb2YgdGhlICsgYnV0dG9uIG5leHQgdG8gaXQsIHNvIGl0IGdldHMgYSBoYWlyIG1vcmUgcm9vbSBvbiB0aGUgbGVmdC5cblxuLnFkbmFwcm8tdGFibGUtd3JhcHBlcl9fcmlnaHQgPiBxZG5hcHJvLXNlZ21lbnQge1xuICAgIG1hcmdpbi1sZWZ0OiAycHg7XG59XG5cbi8vIOKUgOKUgCBEZW5zaXR5IGJ1dHRvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyBJdCBzdGF5cyBwcmVzc2VkIHdoaWxlIHRoZSByb3dzIGFyZSByb29teS4gcWRuYXByby1idXR0b24gb25seSBwYWludHMgaXRzXG4vLyBgYWN0aXZlYCBzdGF0ZSBmb3IgdHlwZT1cInNlY29uZGFyeVwiICguYnV0dG9uLXNlY29uZGFyeS5idXR0b24tYWN0aXZlIGluXG4vLyBfYnV0dG9uLnNjc3MpIGFuZCB0aGlzIGlzIGEgc3VidGxlIGljb24gYnV0dG9uLCBzbyB0aGUgcHJlc3NlZCBsb29rIGlzIGRlZmluZWRcbi8vIGhlcmUg4oCUIHNjb3BlZCB0byB0aGlzIGNvbXBvbmVudCwgYW5kIGh1bmcgb24gdGhlIGNvbXBvbmVudCdzIG93biBgYWN0aXZlYFxuLy8gYXR0cmlidXRlIHJhdGhlciB0aGFuIGEgcGFnZSBjbGFzcywgc28gdGhlIHN0YXRlIHN0YXlzIHdoZXJlIGl0IGJlbG9uZ3MuXG4vLyBxZG5hLWJ1dHRvbi5qcyByZXdyaXRlcyBjbGFzc05hbWUgb24gZXZlcnkgcmVuZGVyLCBoZW5jZSB0aGUgY2xhc3Mgc2VsZWN0b3Igb25cbi8vIHRoZSBob3N0IGFuZCBub3Qgb24gdGhlIGF0dHJpYnV0ZS5cblxuLnFkbmFwcm8tdGFibGUtd3JhcHBlcl9faGVhZGVyIHtcbiAgICBbZGF0YS1xdHctYWN0aW9uPVwiZGVuc2l0eVwiXS5xZG5hcHJvLWJ1dHRvbi5idXR0b24tYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNTAsICNlNmU5ZmYpO1xuICAgICAgICBjb2xvcjogICAgICB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xuICAgIH1cblxuICAgIC8vIFdpdGhvdXQgdGhpcyB0aGUgcnVsZSBhYm92ZSBhbHNvIHdpbnMgZHVyaW5nIGhvdmVyIChpdCBvdXRyYW5rc1xuICAgIC8vIC5idXR0b24tc3VidGxlOmhvdmVyKSBhbmQgdGhlIHByZXNzZWQgYnV0dG9uIHdvdWxkIGdvIGRlYWQgdW5kZXIgdGhlIG1vdXNlLlxuICAgIFtkYXRhLXF0dy1hY3Rpb249XCJkZW5zaXR5XCJdLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1hY3RpdmU6aG92ZXI6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtMTAwLCAjYzBjNWZmKTtcbiAgICB9XG59XG5cbi8vIOKUgOKUgCBDb2x1bW4tc2V0dGluZ3MgcGFuZWwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyBOb3Rpb24ncyBcInByb3BlcnRpZXNcIiBwYW5lbDogb25lIGxpc3Qgb2YgZXZlcnkgY29sdW1uLCBzcGxpdCBieSBpdHMgT1dOXG4vLyBjdXJyZW50IHZpc2liaWxpdHkgaW50byBcIlppY2h0YmFhclwiIC8gXCJWZXJib3JnZW5cIiwgYSBzZWFyY2ggZmllbGQgb24gdG9wLFxuLy8gXCJTdGFuZGFhcmQgaGVyc3RlbGxlblwiIGF0IHRoZSBib3R0b20uIFNlZSBxZG5hLXRhYmxlLXdyYXBwZXIuanMncyBmaWxlLWxldmVsXG4vLyBkb2NibG9jayBmb3IgdGhlIGZ1bGwgZGVzaWduIGFuZCB0aGUgcmV1c2UgZGVjaXNpb25zLiBbS2ltJ3MgZGVzaWduLFxuLy8gYXBwcm92ZWQgMDkuMDguMjAyNl1cbi8vXG4vLyBUaGUgcG9wb3ZlciBkZWZhdWx0ICgyODBweCB3aWRlLCA2cHggcGFkZGluZyDigJQgc2l6ZWQgZm9yIGEgcGxhaW4gbWVudSwgc2VlXG4vLyB0aGUgcWRuYS1wb3BvdmVycyBza2lsbCBwb2ludCAxKSBkb2VzIG5vdCBmaXQgYSBwYW5lbCB3aXRoIGl0cyBvd24gc2VhcmNoXG4vLyBmaWVsZCBhbmQgZm9vdGVyLCBzbyB0aGUgY2hyb21lIG1vdmVzIG9udG8gdGhlIGlubmVyIHNlY3Rpb25zIGluc3RlYWQg4oCUXG4vLyB0aGF0IGFsc28gbGV0cyB0aGUgZm9vdGVyJ3MgYm9yZGVyIHJ1biBlZGdlLXRvLWVkZ2UuXG5xZG5hcHJvLXBvcG92ZXJbZGF0YS1xdHctY29sdW1ucy1wYW5lbF0ge1xuICAgIC8vIDM2MCBpbnN0ZWFkIG9mIDMyMDogYSBjb2x1bW4gbmFtZSBsaWtlIFwiVGVsZWZvb25udW1tZXJcIiBwbHVzIGEgZ3JpcCBhbmQgYW5cbiAgICAvLyBleWUgbGVmdCBhbG1vc3Qgbm8gYWlyLiBbS2ltIDA5LjA4LjIwMjYsIFwiaGV0IGlzIGVlbiBiZWV0amUga3JhcFwiXVxuICAgIHdpZHRoOiBtaW4oOTJ2dywgMzYwcHgpO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi5xdHctY29scGFuZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAvLyBUaGUgNDIwcHggY2FwIHdhcyB0aGUgcmVhbCByZWFzb24gaXQgZmVsdCBjcmFtcGVkOiBuaW5lIGNvbHVtbnMgc2Nyb2xsZWRcbiAgICAvLyBpbnNpZGUgYSBzaG9ydCBib3ggd2hpbGUgdGhlIHNjcmVlbiBoYWQgcm9vbSB0byBzcGFyZS4gSXQgZm9sbG93cyB0aGUgd2luZG93XG4gICAgLy8gbm93IGFuZCBvbmx5IHN0b3BzIGF0IDcyMCBzbyBpdCBuZXZlciBiZWNvbWVzIGEgZnVsbC1oZWlnaHQgd2FsbCBvZiBuYW1lcy5cbiAgICBtYXgtaGVpZ2h0OiBtaW4oODB2aCwgNzIwcHgpO1xufVxuXG4ucXR3LWNvbHBhbmVsX190aXRsZSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcGFkZGluZzogMTBweCAxMnB4IDRweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYTFmNGQpO1xufVxuXG4ucXR3LWNvbHBhbmVsX190aXRsZSArIHFkbmFwcm8taW5wdXQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDAgMTJweCA4cHg7XG59XG5cbi5xdHctY29scGFuZWxfX2xpc3Qge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBwYWRkaW5nOiA0cHggNnB4O1xufVxuXG4ucXR3LWNvbHBhbmVsX19zZWN0aW9uICsgLnF0dy1jb2xwYW5lbF9fc2VjdGlvbiB7XG4gICAgbWFyZ2luLXRvcDogNnB4O1xufVxuXG4ucXR3LWNvbHBhbmVsX19zZWN0aW9uLWxhYmVsIHtcbiAgICBwYWRkaW5nOiA2cHggNnB4IDJweDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjcyODApO1xuXG4gICAgJltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxufVxuXG4ucXR3LWNvbHBhbmVsX19yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuXG4gICAgJltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCwgI2YwZjFmMik7IH1cblxuICAgIC8vIFNhbWUgdmlzdWFsIGxhbmd1YWdlIGFzIHFkbmFwcm8tdGFibGUncyBvd24gaGVhZGVyIGRyYWcgKHRhYmxlLnNjc3MpIOKAlFxuICAgIC8vIGEgdmVydGljYWwgY291bnRlcnBhcnQsIHRvcC9ib3R0b20gaW5zdGVhZCBvZiBsZWZ0L3JpZ2h0LlxuICAgICYuaXMtZHJhZ2dpbmcgeyBvcGFjaXR5OiAwLjQ7IH1cbiAgICAmLmRyb3AtYmVmb3JlIHsgYm94LXNoYWRvdzogaW5zZXQgMCAycHggMCAwIHZhcigtLWMtYWN0aW9uLTUwMCk7IH1cbiAgICAmLmRyb3AtYWZ0ZXIgIHsgYm94LXNoYWRvdzogaW5zZXQgMCAtMnB4IDAgMCB2YXIoLS1jLWFjdGlvbi01MDApOyB9XG5cbiAgICAmLmlzLWRyYWdnYWJsZSB7IGN1cnNvcjogZ3JhYjsgfVxuICAgICYuaXMtZHJhZ2dhYmxlLmlzLWRyYWdnaW5nIHsgY3Vyc29yOiBncmFiYmluZzsgfVxufVxuXG4ucXR3LWNvbHBhbmVsX19oYW5kbGUsXG4ucXR3LWNvbHBhbmVsX19oYW5kbGUtc3BhY2VyIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG59XG5cbi5xdHctY29scGFuZWxfX2hhbmRsZSB7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS00MDAsICNhNmFhYjMpO1xufVxuXG4ucXR3LWNvbHBhbmVsX19sYWJlbCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHksICMzNzQxNTEpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnF0dy1jb2xwYW5lbF9fZXllIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI3MjgwKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBxZG5hcHJvLWljb24geyB3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyB9XG5cbiAgICAmOmhvdmVyICAgICAgICB7IGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0xMDAsICNlN2U5ZWMpOyBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHksICMzNzQxNTEpOyB9XG4gICAgJjpmb2N1cy12aXNpYmxlIHsgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWMtYWN0aW9uLTUwMCk7IG91dGxpbmUtb2Zmc2V0OiAxcHg7IH1cbn1cblxuLnF0dy1jb2xwYW5lbF9fbG9jayB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwLCAjYTZhYWIzKTtcbn1cblxuLnF0dy1jb2xwYW5lbF9fZm9vdGVyIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCwgI2YwZjFmMik7XG59XG5cbi5xdHctY29scGFuZWxfX3Jlc2V0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHBhZGRpbmc6IDRweCA2cHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcblxuICAgIHFkbmFwcm8taWNvbiB7IHdpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7IH1cblxuICAgICY6aG92ZXIgICAgICAgICB7IGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTUwLCAjZTZlOWZmKTsgfVxuICAgICY6Zm9jdXMtdmlzaWJsZSB7IG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jLWFjdGlvbi01MDApOyBvdXRsaW5lLW9mZnNldDogMXB4OyB9XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi90YWcvX3RhZy1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4udGV4dC1oMSB7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDYwcHg7XG4gIGxpbmUtaGVpZ2h0OiA3MnB4O1xufVxuXG4udGV4dC1oMiB7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDQwcHg7XG4gIGxpbmUtaGVpZ2h0OiA1NnB4O1xufVxuXG4udGV4dC1oMyB7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDMycHg7XG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xufVxuXG4udGV4dC1oNCB7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDI4cHg7XG4gIGxpbmUtaGVpZ2h0OiA0NHB4O1xufVxuXG4udGV4dC1oNSB7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGxpbmUtaGVpZ2h0OiAzNnB4O1xufVxuXG4udGV4dC1oNiB7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4udGV4dC1ib2R5LXhzIHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG59XG5cbi50ZXh0LWJvZHktc20ge1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbn1cblxuLnRleHQtYm9keS1tZCB7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4udGV4dC1ib2R5LWxnIHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG59XG5cbi50ZXh0LWJvZHkteGwge1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMzJweDtcbn1cblxuLnFkbmFwcm8tdGFnIHtcbiAgLS10YWctYmc6IHZhcigtLWMtZ3JleS01MCk7XG4gIC0tdGFnLWJnLWhvdmVyOiB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbiAgLS10YWctdGV4dDogIzFlMWYyMDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmbGV4LXNocmluazogMDtcbiAgZ2FwOiA0cHg7XG4gIHBhZGRpbmc6IDAgOHB4O1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS10YWctYmcpO1xuICBjb2xvcjogdmFyKC0tdGFnLXRleHQpO1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNjAwO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlO1xufVxuLnFkbmFwcm8tdGFnIC50YWctaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LXNocmluazogMDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tdGFnIC50YWctaWNvbiBzdmcge1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4ucWRuYXByby10YWcgLnRhZy1sYWJlbCB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLyogQW5pbWF0ZWQgbGVhZGluZyBpY29uIChsb3R0aWUtbmFtZSAvIGxvdHRpZS1zcmMpLiBBIGhhaXIgbGFyZ2VyIHRoYW4gdGhlXG4gICBzdGF0aWMgaWNvbjogYSBMb3R0aWUncyBhcnR3b3JrIHJhcmVseSBmaWxscyBpdHMgb3duIGZyYW1lIGVkZ2UgdG8gZWRnZSxcbiAgIHNvIGF0IGljb24tc2l6ZSBpdCByZWFkcyBzbWFsbGVyIHRoYW4gaXRzIHN0YXRpYyBzaWJsaW5nLiAqL1xuLnFkbmFwcm8tdGFnIC50YWctbG90dGllIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLXRhZy50YWctc2l6ZS1iaWcge1xuICBoZWlnaHQ6IDI4cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4ucWRuYXByby10YWcudGFnLXNpemUtYmlnIC50YWctaWNvbiB7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG59XG4ucWRuYXByby10YWcudGFnLXNpemUtYmlnIC50YWctbG90dGllIHtcbiAgLS1xbC1zaXplOiAxOHB4O1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xufVxuLnFkbmFwcm8tdGFnLnRhZy1zaXplLXNtYWxsIHtcbiAgaGVpZ2h0OiAyNHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwYWRkaW5nOiAwIDhweDtcbn1cbi5xZG5hcHJvLXRhZy50YWctc2l6ZS1zbWFsbCAudGFnLWljb24ge1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAxMnB4O1xufVxuLnFkbmFwcm8tdGFnLnRhZy1zaXplLXNtYWxsIC50YWctbG90dGllIHtcbiAgLS1xbC1zaXplOiAxNnB4O1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xufVxuLyogUmVtb3ZhYmxlIOKclSAoc2VsZWN0aW9uIHRva2VucyAvIHJlbW92YWJsZSBwaWxscykuICovXG4ucWRuYXByby10YWcudGFnLXJlbW92YWJsZSB7XG4gIHBhZGRpbmctcmlnaHQ6IDRweDtcbn1cbi5xZG5hcHJvLXRhZyAudGFnLXJlbW92ZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvcGFjaXR5OiAwLjY7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZSwgb3BhY2l0eSAxMjBtcyBlYXNlO1xufVxuLnFkbmFwcm8tdGFnIC50YWctcmVtb3ZlOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnFkbmFwcm8tdGFnIC50YWctcmVtb3ZlOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAycHggc29saWQgY3VycmVudENvbG9yO1xuICBvdXRsaW5lLW9mZnNldDogMXB4O1xufVxuLnFkbmFwcm8tdGFnIC50YWctcmVtb3ZlIHFkbmFwcm8taWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLXRhZyAudGFnLXJlbW92ZSBxZG5hcHJvLWljb24gc3ZnIHtcbiAgZmlsbDogY3VycmVudENvbG9yO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnFkbmFwcm8tdGFnLnRhZy1zaXplLWJpZyAudGFnLXJlbW92ZSB7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7XG59XG4ucWRuYXByby10YWcudGFnLXNpemUtYmlnIC50YWctcmVtb3ZlIHFkbmFwcm8taWNvbiB7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG59XG4ucWRuYXByby10YWcudGFnLXNpemUtc21hbGwgLnRhZy1yZW1vdmUge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xufVxuLnFkbmFwcm8tdGFnLnRhZy1zaXplLXNtYWxsIC50YWctcmVtb3ZlIHFkbmFwcm8taWNvbiB7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG59XG4ucWRuYXByby10YWcudGFnLWRpc2FibGVkIC50YWctcmVtb3ZlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby10YWcudGFnLWNvbG9yLWdyZXkge1xuICAtLXRhZy1iZzogdmFyKC0tYy1jaGlwLWdyZXktYmcpO1xuICAtLXRhZy1iZy1ob3ZlcjogdmFyKC0tYy1jaGlwLWdyZXktaG92ZXIpO1xuICAtLXRhZy10ZXh0OiB2YXIoLS1jLWNoaXAtZ3JleS10ZXh0KTtcbn1cbi5xZG5hcHJvLXRhZy50YWctY29sb3ItZ3JleS0yIHtcbiAgLS10YWctYmc6IHZhcigtLWMtY2hpcC1ncmV5LTItYmcpO1xuICAtLXRhZy1iZy1ob3ZlcjogdmFyKC0tYy1jaGlwLWdyZXktMi1ob3Zlcik7XG4gIC0tdGFnLXRleHQ6IHZhcigtLWMtY2hpcC1ncmV5LTItdGV4dCk7XG59XG4ucWRuYXByby10YWcudGFnLWNvbG9yLXJlZCB7XG4gIC0tdGFnLWJnOiB2YXIoLS1jLWNoaXAtcmVkLWJnKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtY2hpcC1yZWQtaG92ZXIpO1xuICAtLXRhZy10ZXh0OiB2YXIoLS1jLWNoaXAtcmVkLXRleHQpO1xufVxuLnFkbmFwcm8tdGFnLnRhZy1jb2xvci1yZWQtMiB7XG4gIC0tdGFnLWJnOiB2YXIoLS1jLWNoaXAtcmVkLTItYmcpO1xuICAtLXRhZy1iZy1ob3ZlcjogdmFyKC0tYy1jaGlwLXJlZC0yLWhvdmVyKTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy1jaGlwLXJlZC0yLXRleHQpO1xufVxuLnFkbmFwcm8tdGFnLnRhZy1jb2xvci15ZWxsb3cge1xuICAtLXRhZy1iZzogdmFyKC0tYy1jaGlwLXllbGxvdy1iZyk7XG4gIC0tdGFnLWJnLWhvdmVyOiB2YXIoLS1jLWNoaXAteWVsbG93LWhvdmVyKTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy1jaGlwLXllbGxvdy10ZXh0KTtcbn1cbi5xZG5hcHJvLXRhZy50YWctY29sb3IteWVsbG93LTIge1xuICAtLXRhZy1iZzogdmFyKC0tYy1jaGlwLXllbGxvdy0yLWJnKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtY2hpcC15ZWxsb3ctMi1ob3Zlcik7XG4gIC0tdGFnLXRleHQ6IHZhcigtLWMtY2hpcC15ZWxsb3ctMi10ZXh0KTtcbn1cbi5xZG5hcHJvLXRhZy50YWctY29sb3ItZ3JlZW4ge1xuICAtLXRhZy1iZzogdmFyKC0tYy1jaGlwLWdyZWVuLWJnKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtY2hpcC1ncmVlbi1ob3Zlcik7XG4gIC0tdGFnLXRleHQ6IHZhcigtLWMtY2hpcC1ncmVlbi10ZXh0KTtcbn1cbi5xZG5hcHJvLXRhZy50YWctY29sb3ItZ3JlZW4tMiB7XG4gIC0tdGFnLWJnOiB2YXIoLS1jLWNoaXAtZ3JlZW4tMi1iZyk7XG4gIC0tdGFnLWJnLWhvdmVyOiB2YXIoLS1jLWNoaXAtZ3JlZW4tMi1ob3Zlcik7XG4gIC0tdGFnLXRleHQ6IHZhcigtLWMtY2hpcC1ncmVlbi0yLXRleHQpO1xufVxuLnFkbmFwcm8tdGFnLnRhZy1jb2xvci1ibHVlIHtcbiAgLS10YWctYmc6IHZhcigtLWMtY2hpcC1ibHVlLWJnKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtY2hpcC1ibHVlLWhvdmVyKTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy1jaGlwLWJsdWUtdGV4dCk7XG59XG4ucWRuYXByby10YWcudGFnLWNvbG9yLWJsdWUtMiB7XG4gIC0tdGFnLWJnOiB2YXIoLS1jLWNoaXAtYmx1ZS0yLWJnKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtY2hpcC1ibHVlLTItaG92ZXIpO1xuICAtLXRhZy10ZXh0OiB2YXIoLS1jLWNoaXAtYmx1ZS0yLXRleHQpO1xufVxuLnFkbmFwcm8tdGFnLnRhZy1jb2xvci1icmlnaHQtYmx1ZSB7XG4gIC0tdGFnLWJnOiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtYmcpO1xuICAtLXRhZy1iZy1ob3ZlcjogdmFyKC0tYy1jaGlwLWJyaWdodC1ibHVlLWhvdmVyKTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy1jaGlwLWJyaWdodC1ibHVlLXRleHQpO1xufVxuLnFkbmFwcm8tdGFnLnRhZy1jb2xvci1icmlnaHQtYmx1ZS0yIHtcbiAgLS10YWctYmc6IHZhcigtLWMtY2hpcC1icmlnaHQtYmx1ZS0yLWJnKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtY2hpcC1icmlnaHQtYmx1ZS0yLWhvdmVyKTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy1jaGlwLWJyaWdodC1ibHVlLTItdGV4dCk7XG59XG4ucWRuYXByby10YWcudGFnLWNvbG9yLXBpbmsge1xuICAtLXRhZy1iZzogdmFyKC0tYy1jaGlwLXBpbmstYmcpO1xuICAtLXRhZy1iZy1ob3ZlcjogdmFyKC0tYy1jaGlwLXBpbmstaG92ZXIpO1xuICAtLXRhZy10ZXh0OiB2YXIoLS1jLWNoaXAtcGluay10ZXh0KTtcbn1cbi5xZG5hcHJvLXRhZy50YWctY29sb3ItZGFyay1waW5rIHtcbiAgLS10YWctYmc6IHZhcigtLWMtY2hpcC1kYXJrLXBpbmstYmcpO1xuICAtLXRhZy1iZy1ob3ZlcjogdmFyKC0tYy1jaGlwLWRhcmstcGluay1ob3Zlcik7XG4gIC0tdGFnLXRleHQ6IHZhcigtLWMtY2hpcC1kYXJrLXBpbmstdGV4dCk7XG59XG4ucWRuYXByby10YWcudGFnLWNvbG9yLXB1cnBsZSB7XG4gIC0tdGFnLWJnOiB2YXIoLS1jLWNoaXAtcHVycGxlLWJnKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtY2hpcC1wdXJwbGUtaG92ZXIpO1xuICAtLXRhZy10ZXh0OiB2YXIoLS1jLWNoaXAtcHVycGxlLXRleHQpO1xufVxuLnFkbmFwcm8tdGFnLnRhZy1jb2xvci1kYXJrLXB1cnBsZSB7XG4gIC0tdGFnLWJnOiB2YXIoLS1jLWNoaXAtZGFyay1wdXJwbGUtYmcpO1xuICAtLXRhZy1iZy1ob3ZlcjogdmFyKC0tYy1jaGlwLWRhcmstcHVycGxlLWhvdmVyKTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy1jaGlwLWRhcmstcHVycGxlLXRleHQpO1xufVxuLyogQ09MT1I6IGFjdGlvbiDigJQgdGhlIG9kZCBvbmUgb3V0IFsxNi4wOC4yMDI2XS4gVGhlIHNpeHRlZW4gY29sb3VycyBhYm92ZSBhcmVcbiAgIHBhc3RlbCBzdXJmYWNlcyB3aXRoIGRhcmsgdGV4dCwgbWFkZSBmb3IgTEFCRUxMSU5HIHNvbWV0aGluZy4gVGhpcyBvbmUgaXMgdGhlXG4gICBzb2xpZCBicmFuZCBibHVlIHdpdGggd2hpdGUgdGV4dDogdGhlIENIT1NFTiBzdGF0ZSBvZiBhIGZpbHRlciBjaGlwLCB3aGljaCB0aGVcbiAgIHBhbGV0dGUgc2ltcGx5IGhhZCBubyBhbnN3ZXIgZm9yLiBCdWlsdCB3aXRoIHZhcmlhbnQ9b3V0bGluZSBiZWxvdywgZm9yIHRoZVxuICAgY2F0ZWdvcnkgY2hpcHMgaW4gdGhlIHN0aWNrZXIgc2hlZXQuICovXG4ucWRuYXByby10YWcudGFnLWNvbG9yLWFjdGlvbiB7XG4gIC0tdGFnLWJnOiB2YXIoLS1jLWFjdGlvbi01MDApO1xuICAtLXRhZy1iZy1ob3ZlcjogdmFyKC0tYy1hY3Rpb24tNjAwKTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG59XG5cbi8qIFZBUklBTlQ6IG91dGxpbmUg4oCUIHdoaXRlIHN1cmZhY2Ugd2l0aCBhIGJvcmRlciBpbnN0ZWFkIG9mIGEgZmlsbGVkIGNoaXBcbiAgIFsxNi4wOC4yMDI2XS4gVGhlIFVOY2hvc2VuIHN0YXRlIG9mIGEgZmlsdGVyIGNoaXAuIEEgcm93IG9mIGZpbGxlZCBwYXN0ZWxcbiAgIGNoaXBzIGFsbCByZWFkIGFzIFwic2VsZWN0ZWRcIiwgd2hpY2ggaXMgZXhhY3RseSB3aGF0IGEgZmlsdGVyIHJvdyBtdXN0IG5vdCBkbyxcbiAgIHNvIHRoaXMgd2FzIHRoZSBtaXNzaW5nIGhhbGYgb2YgdGhlIHBhaXIuXG4gICBUaGUgYm9yZGVyIHNpdHMgb24gLS10YWctYm9yZGVyIHNvIGEgY29sb3VyIGNhbiBtb3ZlIGl0IGFsb25nOyBieSBkZWZhdWx0IGl0XG4gICBmb2xsb3dzIHRoZSBjYXJkIGJvcmRlci4gYGJhY2tncm91bmRgIGFuZCBgY29sb3JgIGtlZXAgY29taW5nIGZyb20gdGhlIHNhbWVcbiAgIC0tdGFnLWJnLy0tdGFnLXRleHQgYXMgZXZlcnl3aGVyZSBlbHNlLCBzbyBob3ZlciwgZm9jdXMsIGRpc2FibGVkIGFuZCB0aGVcbiAgIGRhcmstbW9kZSBibG9jayBiZWxvdyBuZWVkIG5vIGV4dHJhIHJ1bGVzLiAqL1xuLnFkbmFwcm8tdGFnLnRhZy12YXJpYW50LW91dGxpbmUge1xuICAtLXRhZy1iZzogdmFyKC0tYy1iZy1jYXJkKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtZ3JleS01MCk7XG4gIC0tdGFnLXRleHQ6IHZhcigtLWMtdGV4dC1ib2R5KTtcbiAgLS10YWctYm9yZGVyOiB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdGFnLWJvcmRlcik7XG59XG5cbi8qIFZBUklBTlQ6IGdsYXNzIOKAlCBkb29yc2NoaWpuZW5kIFdJVCB2bGFrIG1ldCBlZW4gYmx1ciBbMTkuMDguMjAyNl0uIFZvb3IgZWVuXG4gICB0YWcgZGllIE9QIEVFTiBGT1RPIGxpZ3Q6IGRlIGNhbXBhZ25lc3RhdHVzIG9wIGVlbiBQdWxzZS1rYWFydC4gRG9ua2VyIGdsYXNcbiAgIHdhcyBkZSBlZXJzdGUgcG9naW5nIGVuIGxhcyB0ZSB6d2FhciBvcCBkZSB0ZWdlbCAoS2ltLCAxOS4wOC4yMDI2KTsgd2l0IGdsYXNcbiAgIGxlZ3QgZWVuIGxpY2h0ZSB3YWFzIG92ZXIgZGUgZm90byBpbiBwbGFhdHMgdmFuIGVyIGVlbiBibG9rIG9wIHRlIHpldHRlbi5cbiAgIERlIHRla3N0IGlzIGJld3VzdCB2YXIoLS1jLWdyZXktOTAwKSBlbiBOSUVUIC0tYy10ZXh0LWJvZHk6IGRpZSBsYWF0c3RlIGtsYXB0XG4gICBpbiBkb25rZXJlIG1vZHVzIG9tIG5hYXIgbGljaHRncmlqcywgZW4gb3AgZWVuIHdpdCB2bGFrIGlzIGRhdCBvbmxlZXNiYWFyLiBEZVxuICAgZ3JpanNzY2hhYWwgd29yZHQgaW4gaGV0IGRvbmtlcmUgdGhlbWEgbmlldCBoZXJ6ZXQsIGR1cyBkZXplIHdhYXJkZSBzdGFhdCB2YXN0XG4gICBpbiBiZWlkZSB0aGVtYSdzIOKAlCBuZXQgYWxzIGRlIHBpbCB6ZWxmLCB3YW50IGhpaiBsaWd0IG9wIGVlbiBmb3RvIGVuIG5pZXQgb3BcbiAgIGRlIHBhZ2luYWtsZXVyLlxuICAgR2xhc3MgbmVnZWVydCBgY29sb3JgLiBFw6luIG5ldXRyYWxlIGxhYWcgd2Vya3Qgb3AgZWxrZSBmb3RvLCBsaWNodCBvZiBkb25rZXI7XG4gICBkZSBzdGF0dXMgbGVlc3QgamUgYWFuIGhldCBMQUJFTC4gRGUga2xldXJyZWdlbHMgaGllcmJvdmVuIGhlYmJlbiBkZXplbGZkZVxuICAgc29vcnRlbGlqa2hlaWQgZW4ga29tZW4gZWVyZGVyLCBkdXMgZGl0IGJsb2sgd2ludDsgaGV0IGRvbmtlcmUtbW9kdXMtYmxva1xuICAgb25kZXJhYW4gZGl0IGJlc3RhbmQgaGVlZnQgw6nDqW4gc2VsZWN0b3IgbWVlciwgZHVzIGdsYXNzIHN0YWF0IGRhYXIgb3BuaWV1dy4gKi9cbi5xZG5hcHJvLXRhZy50YWctdmFyaWFudC1nbGFzcyB7XG4gIC0tdGFnLWJnOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzIpO1xuICAtLXRhZy1iZy1ob3ZlcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg1KTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy1ncmV5LTkwMCk7XG4gIC0tdGFnLWJvcmRlcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU1KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdGFnLWJvcmRlcik7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpIHNhdHVyYXRlKDEuNCk7XG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCkgc2F0dXJhdGUoMS40KTtcbiAgLyogRWVuIHRhZyBvcCBlZW4gZm90byBkcmFhZ3QgemlqbiBlaWdlbiBzY2hhZHV3OiBkZSBmb3RvIGVyb25kZXIga2FuIGVsa2VcbiAgICAgaGVsZGVyaGVpZCBoZWJiZW4gZW4gem9uZGVyIGRpdCBsb3N0IGRlIHJhbmQgb3AgaW4gZWVuIGxpY2h0ZSBmb3RvLiAqL1xuICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE4KTtcbn1cblxuLnFkbmFwcm8tdGFnLnRhZy1pbnRlcmFjdGl2ZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5xZG5hcHJvLXRhZy50YWctaW50ZXJhY3RpdmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS10YWctYmctaG92ZXIpO1xufVxuLnFkbmFwcm8tdGFnLnRhZy1pbnRlcmFjdGl2ZTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4ucWRuYXByby10YWcudGFnLWludGVyYWN0aXZlOmZvY3VzLXZpc2libGUsIC5xZG5hcHJvLXRhZy50YWctaW50ZXJhY3RpdmUuZm9yY2UtZm9jdXMge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbn1cbi5xZG5hcHJvLXRhZy50YWctZGlzYWJsZWQsIC5xZG5hcHJvLXRhZy50YWctZGlzYWJsZWQudGFnLWludGVyYWN0aXZlIHtcbiAgLS10YWctYmc6IHZhcigtLWMtZ3JleS01MCk7XG4gIC0tdGFnLWJnLWhvdmVyOiB2YXIoLS1jLWdyZXktNTApO1xuICAtLXRhZy10ZXh0OiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLnFkbmFwcm8tdGFnLnRhZy1kaXNhYmxlZDpmb2N1cy12aXNpYmxlLCAucWRuYXByby10YWcudGFnLWRpc2FibGVkLmZvcmNlLWZvY3VzLCAucWRuYXByby10YWcudGFnLWRpc2FibGVkLnRhZy1pbnRlcmFjdGl2ZTpmb2N1cy12aXNpYmxlLCAucWRuYXByby10YWcudGFnLWRpc2FibGVkLnRhZy1pbnRlcmFjdGl2ZS5mb3JjZS1mb2N1cyB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFnLnRhZy1jb2xvci1ncmV5IHtcbiAgLS10YWctYmc6IHZhcigtLWMtY2hpcC1ncmV5LWJnKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtY2hpcC1ncmV5LWhvdmVyKTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy1jaGlwLWdyZXktdGV4dCk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YWcudGFnLWNvbG9yLWdyZXktMiB7XG4gIC0tdGFnLWJnOiB2YXIoLS1jLWNoaXAtZ3JleS0yLWJnKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtY2hpcC1ncmV5LTItaG92ZXIpO1xuICAtLXRhZy10ZXh0OiB2YXIoLS1jLWNoaXAtZ3JleS0yLXRleHQpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFnLnRhZy1jb2xvci1yZWQge1xuICAtLXRhZy1iZzogdmFyKC0tYy1jaGlwLXJlZC1iZyk7XG4gIC0tdGFnLWJnLWhvdmVyOiB2YXIoLS1jLWNoaXAtcmVkLWhvdmVyKTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy1jaGlwLXJlZC10ZXh0KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhZy50YWctY29sb3ItcmVkLTIge1xuICAtLXRhZy1iZzogdmFyKC0tYy1jaGlwLXJlZC0yLWJnKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtY2hpcC1yZWQtMi1ob3Zlcik7XG4gIC0tdGFnLXRleHQ6IHZhcigtLWMtY2hpcC1yZWQtMi10ZXh0KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhZy50YWctY29sb3IteWVsbG93IHtcbiAgLS10YWctYmc6IHZhcigtLWMtY2hpcC15ZWxsb3ctYmcpO1xuICAtLXRhZy1iZy1ob3ZlcjogdmFyKC0tYy1jaGlwLXllbGxvdy1ob3Zlcik7XG4gIC0tdGFnLXRleHQ6IHZhcigtLWMtY2hpcC15ZWxsb3ctdGV4dCk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YWcudGFnLWNvbG9yLXllbGxvdy0yIHtcbiAgLS10YWctYmc6IHZhcigtLWMtY2hpcC15ZWxsb3ctMi1iZyk7XG4gIC0tdGFnLWJnLWhvdmVyOiB2YXIoLS1jLWNoaXAteWVsbG93LTItaG92ZXIpO1xuICAtLXRhZy10ZXh0OiB2YXIoLS1jLWNoaXAteWVsbG93LTItdGV4dCk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YWcudGFnLWNvbG9yLWdyZWVuIHtcbiAgLS10YWctYmc6IHZhcigtLWMtY2hpcC1ncmVlbi1iZyk7XG4gIC0tdGFnLWJnLWhvdmVyOiB2YXIoLS1jLWNoaXAtZ3JlZW4taG92ZXIpO1xuICAtLXRhZy10ZXh0OiB2YXIoLS1jLWNoaXAtZ3JlZW4tdGV4dCk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YWcudGFnLWNvbG9yLWdyZWVuLTIge1xuICAtLXRhZy1iZzogdmFyKC0tYy1jaGlwLWdyZWVuLTItYmcpO1xuICAtLXRhZy1iZy1ob3ZlcjogdmFyKC0tYy1jaGlwLWdyZWVuLTItaG92ZXIpO1xuICAtLXRhZy10ZXh0OiB2YXIoLS1jLWNoaXAtZ3JlZW4tMi10ZXh0KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhZy50YWctY29sb3ItYmx1ZSB7XG4gIC0tdGFnLWJnOiB2YXIoLS1jLWNoaXAtYmx1ZS1iZyk7XG4gIC0tdGFnLWJnLWhvdmVyOiB2YXIoLS1jLWNoaXAtYmx1ZS1ob3Zlcik7XG4gIC0tdGFnLXRleHQ6IHZhcigtLWMtY2hpcC1ibHVlLXRleHQpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFnLnRhZy1jb2xvci1ibHVlLTIge1xuICAtLXRhZy1iZzogdmFyKC0tYy1jaGlwLWJsdWUtMi1iZyk7XG4gIC0tdGFnLWJnLWhvdmVyOiB2YXIoLS1jLWNoaXAtYmx1ZS0yLWhvdmVyKTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy1jaGlwLWJsdWUtMi10ZXh0KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhZy50YWctY29sb3ItYnJpZ2h0LWJsdWUge1xuICAtLXRhZy1iZzogdmFyKC0tYy1jaGlwLWJyaWdodC1ibHVlLWJnKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtY2hpcC1icmlnaHQtYmx1ZS1ob3Zlcik7XG4gIC0tdGFnLXRleHQ6IHZhcigtLWMtY2hpcC1icmlnaHQtYmx1ZS10ZXh0KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhZy50YWctY29sb3ItYnJpZ2h0LWJsdWUtMiB7XG4gIC0tdGFnLWJnOiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtMi1iZyk7XG4gIC0tdGFnLWJnLWhvdmVyOiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtMi1ob3Zlcik7XG4gIC0tdGFnLXRleHQ6IHZhcigtLWMtY2hpcC1icmlnaHQtYmx1ZS0yLXRleHQpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFnLnRhZy1jb2xvci1waW5rIHtcbiAgLS10YWctYmc6IHZhcigtLWMtY2hpcC1waW5rLWJnKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtY2hpcC1waW5rLWhvdmVyKTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy1jaGlwLXBpbmstdGV4dCk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YWcudGFnLWNvbG9yLWRhcmstcGluayB7XG4gIC0tdGFnLWJnOiB2YXIoLS1jLWNoaXAtZGFyay1waW5rLWJnKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtY2hpcC1kYXJrLXBpbmstaG92ZXIpO1xuICAtLXRhZy10ZXh0OiB2YXIoLS1jLWNoaXAtZGFyay1waW5rLXRleHQpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFnLnRhZy1jb2xvci1wdXJwbGUge1xuICAtLXRhZy1iZzogdmFyKC0tYy1jaGlwLXB1cnBsZS1iZyk7XG4gIC0tdGFnLWJnLWhvdmVyOiB2YXIoLS1jLWNoaXAtcHVycGxlLWhvdmVyKTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy1jaGlwLXB1cnBsZS10ZXh0KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhZy50YWctY29sb3ItZGFyay1wdXJwbGUge1xuICAtLXRhZy1iZzogdmFyKC0tYy1jaGlwLWRhcmstcHVycGxlLWJnKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtY2hpcC1kYXJrLXB1cnBsZS1ob3Zlcik7XG4gIC0tdGFnLXRleHQ6IHZhcigtLWMtY2hpcC1kYXJrLXB1cnBsZS10ZXh0KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhZy50YWctZGlzYWJsZWQsIFtkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhZy50YWctZGlzYWJsZWQudGFnLWludGVyYWN0aXZlIHtcbiAgLS10YWctYmc6ICMyZTMwMzQ7XG4gIC0tdGFnLWJnLWhvdmVyOiAjMmUzMDM0O1xuICAtLXRhZy10ZXh0OiAjNmI3MTgwO1xufVxuXG4vKiBHbGFzcyBibGlqZnQgZ2xhc3MgaW4gZG9ua2VyZSBtb2R1cy4gRGUgW2RhdGEtdGhlbWU9ZGFya10ga2xldXJyZWdlbHMgaGllcmJvdmVuXG4gICBoZWJiZW4gw6nDqW4gc2VsZWN0b3IgbWVlciBkYW4gLnFkbmFwcm8tdGFnLnRhZy12YXJpYW50LWdsYXNzLCBkdXMgem9uZGVyIGRpdFxuICAgYmxvayB6b3VkZW4gemlqIGhldCB2bGFrIHRlcnVncGFra2VuLiBIZXR6ZWxmZGUgd2l0dGUgZ2xhcyBpbiBiZWlkZSB0aGVtYSdzIGlzXG4gICBtZXQgb3B6ZXQ6IGRlIHBpbCBsaWd0IG9wIGVlbiBmb3RvLCBuaWV0IG9wIGRlIHBhZ2luYWtsZXVyLiBbMTkuMDguMjAyNl0gKi9cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhZy50YWctdmFyaWFudC1nbGFzcyB7XG4gIC0tdGFnLWJnOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzIpO1xuICAtLXRhZy1iZy1ob3ZlcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg1KTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy1ncmV5LTkwMCk7XG4gIC0tdGFnLWJvcmRlcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU1KTtcbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL3Rhc2tsaXN0LWNhcmQvX3Rhc2tsaXN0LWNhcmQtY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLWNhcmQsICNlMWUzZTYpO1xuICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1pbi1oZWlnaHQ6IDg0cHg7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMTYwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDE2MG1zIGVhc2UsIHRyYW5zZm9ybSAxMjBtcyBlYXNlO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgLyogTmV2ZXIgaW5oZXJpdCB0aGUgYW5jaG9yIHVuZGVybGluZSB3aGVuIHRoZSBjYXJkIGlzIHdyYXBwZWQgaW4gYVxuICAgICBsaW5rIChlLmcuIHRoZSBwcm9qZWN0cy12MiB0YXNrbGlzdCBncmlkKS4gKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkICosXG4ucWRuYXByby10YXNrbGlzdC1jYXJkICo6OmJlZm9yZSxcbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQgKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMCAzcHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZDphY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTg1KTtcbiAgYm94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyA4MG1zIGVhc2UsIHRyYW5zZm9ybSA4MG1zIGVhc2U7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQ6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jLXB1cnBsZS01MDApO1xuICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG4vKiA9PT0gRGFyayBtb2RlIC0gYmFzZSBjYXJkIGNocm9tZSA9PT1cbiAgIEluIHRoZSBidW5kbGUgdGhlc2UgcmVhZCBmcm9tIHRoZSBnbG9iYWwgLS1jLSogdG9rZW5zLCBidXQgaW4gdGhlXG4gICBzdGFuZGFsb25lIGxpYnJhcnkgcHJldmlldyB0aG9zZSB0b2tlbnMgYXJlIGFic2VudCwgc28gdGhlIGxpZ2h0XG4gICBmYWxsYmFja3Mgd291bGQgd2luIGFuZCB0aGUgY2FyZCB3b3VsZCBzdGF5IGxpZ2h0LiBUaGVzZSBleHBsaWNpdFxuICAgZGFyayBvdmVycmlkZXMgbWFrZSB0aGUgYmFzZSBjaHJvbWUgY29ycmVjdCBpbiBkYXJrIG1vZGUgZXZlcnl3aGVyZS5cbiAgIFZhbHVlcyBtYXRjaCB0aGUgZGFyayBwYWxldHRlIGFscmVhZHkgdXNlZCBpbiB0aGlzIGZpbGUgKHN1cmZhY2VcbiAgIHZhcigtLWMtZ3JleS04MDApLCBuZXV0cmFsIHRpbGUgdmFyKC0tYy1ncmV5LTcwMCksIHByaW1hcnkgdGV4dCB2YXIoLS1jLWdyZXktNTApLCBtdXRlZCB2YXIoLS1jLWdyZXktNDAwKSxcbiAgIHN1YnRsZSBib3JkZXIgcmdiYSgyNTUsMjU1LDI1NSwwLjEwKSkuICovXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1jYXJkIHtcbiAgYmFja2dyb3VuZDogIzJlMzAzNjtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhc2tsaXN0LWNhcmQgLnRsYy10aWxlIHtcbiAgYmFja2dyb3VuZDogIzQwNDQ0ZDtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtY2FyZCAudGxjLW5hbWUge1xuICBjb2xvcjogI2YwZjFmMjtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtY2FyZCAudGxjLXN1YiB7XG4gIGNvbG9yOiAjYTBhNGI4O1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkIC50bGMtaWNvbiB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMTJweCAwIDEycHggMTJweDtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZCAudGxjLXRpbGUge1xuICB3aWR0aDogNjBweDtcbiAgaGVpZ2h0OiA2MHB4O1xuICBmbGV4OiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogMTNweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTEwMCwgI2YwZjFmMik7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQuaGFzLWNvbG9yIC50bGMtdGlsZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXRsYy1iZywgdmFyKC0tYy1ncmV5LTEwMCwgI2YwZjFmMikpO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkIC50bGMtYm9keSB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbiAgcGFkZGluZzogMTZweCAyMHB4IDE2cHggMTJweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQgLnRsYy1uYW1lIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTkwMCwgIzBiMGIwZCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgLyogV3JhcCB0byBhIHNlY29uZCBsaW5lLCB0aGVuIHRydW5jYXRlIHdpdGggYW4gZWxsaXBzaXMgLSBuZXZlciBhXG4gICAgIHRoaXJkIGxpbmUuIGB3aGl0ZS1zcGFjZTogbm9ybWFsYCBpcyBleHBsaWNpdCBzbyBpdCBhbHdheXMgYmVhdHNcbiAgICAgdGhlIGxlZ2FjeSBwYWdlLWxldmVsIGAudGxjLW5hbWUgeyB3aGl0ZS1zcGFjZTogbm93cmFwIH1gLiBUaGUgNjBweFxuICAgICBpY29uIHRpbGUga2VlcHMgdGhlIGNhcmQgPj0gODRweCB0YWxsLCB3aGljaCBmaXRzIHR3byAxNnB4LzEuM1xuICAgICBsaW5lcywgc28gdGhlIGNhcmQgaGVpZ2h0IGRvZXMgbm90IGdyb3cuICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIGxpbmUtY2xhbXA6IDI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQgLnRsYy1zdWIge1xuICBmb250LXNpemU6IDEyLjVweDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM4OThlOTkpO1xuICBtYXJnaW4tdG9wOiA0cHg7XG59XG5cbi8qIENvbXBhY3QgdmFyaWFudDogc21hbGxlciB0aWxlICsgYm9keSwgZm9yIGRlbnNlIGxpc3QgY29udGV4dHMuICovXG4ucWRuYXByby10YXNrbGlzdC1jYXJkLnRsYy1jb21wYWN0IHtcbiAgbWluLWhlaWdodDogNzJweDtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZC50bGMtY29tcGFjdCAudGxjLWljb24ge1xuICBwYWRkaW5nOiA5cHggMCA5cHggOXB4O1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkLnRsYy1jb21wYWN0IC50bGMtdGlsZSB7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDExcHg7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQudGxjLWNvbXBhY3QgLnRsYy1ib2R5IHtcbiAgcGFkZGluZzogMTJweCAxNHB4IDEycHggMTBweDtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZC50bGMtY29tcGFjdCAudGxjLW5hbWUge1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQudGxjLWNvbXBhY3QgLnRsYy1zdWIge1xuICBmb250LXNpemU6IDExLjVweDtcbn1cblxuLyogPT09IExpc3QgdmFyaWFudDogb25lLWxpbmUgcGlja2VyL3BhbmVsIHJvdyA9PT1cbiAgIGBsaXN0YCB3aW5zIG92ZXIgYGNvbXBhY3RgIChlbmZvcmNlZCBpbiBKUyByZW5kZXIoKTogY29tcGFjdCBpcyBuZXZlclxuICAgYXBwbGllZCB0b2dldGhlciB3aXRoIHRsYy1saXN0KS4gT25lIHJvdywgfjQwcHggdG90YWwgKDZweCBpY29uLWJsb2NrXG4gICBwYWRkaW5nIHRvcC9ib3R0b20gKyAyOHB4IHRpbGUgPSA0MHB4KSwgYSBzbWFsbCAyOHB4IGljb24gdGlsZSAoc2FtZVxuICAgY29sb3IvaWNvbiB2b2NhYnVsYXJ5IGFzIGV2ZXJ5IG90aGVyIG1vZGUpLCBzaW5nbGUtbGluZSBlbGxpcHNpemVkXG4gICBuYW1lLCB+OHB4IHJhZGl1cy4gTm8gY291bnQvbWV0YS9hcmNoaXZlZC1jaGlwL2FjdGlvbnMvZmF2b3JpdGUgZXZlclxuICAgcmVuZGVyIGluIHRoaXMgbW9kZSAoZ3VhcmRlZCBpbiBKUyksIHNvIHRoZXJlIGlzIG5vdGhpbmcgdG8gc3R5bGUgZm9yXG4gICB0aGVtIGhlcmUuXG4gICBIb3ZlciB1c2VzIGEgRkxBVCBiYWNrZ3JvdW5kIHRpbnQgLSB0aGUgaG91c2UgbGlzdC1yb3cgY29udmVudGlvblxuICAgKG1hdGNoZXMgcWRuYXByby1tZW51LWl0ZW0ncyAtLW1pLWJnLWhvdmVyIGFuZCB0aGUgZXZlbnQtc2hlZXQgcm93XG4gICBob3ZlciksIG5vdCB0aGUgZnJlZS1mbG9hdGluZyBjYXJkJ3Mgc2hhZG93LWxpZnQgLSBiZWNhdXNlIHRoaXNcbiAgIHZhcmlhbnQgc2l0cyBpbmxpbmUgaW4gYSBsaXN0LCBub3QgYXMgaXRzIG93biBjYXJkLiAqL1xuLnFkbmFwcm8tdGFza2xpc3QtY2FyZC50bGMtbGlzdCB7XG4gIG1pbi1oZWlnaHQ6IDQwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZC50bGMtbGlzdDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCwgI2YwZjFmMik7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQudGxjLWxpc3Q6YWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkLnRsYy1saXN0IC50bGMtaWNvbiB7XG4gIHBhZGRpbmc6IDZweCAwIDZweCA2cHg7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQudGxjLWxpc3QgLnRsYy10aWxlIHtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkLnRsYy1saXN0IC50bGMtYm9keSB7XG4gIHBhZGRpbmc6IDZweCAxMnB4IDZweCA4cHg7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQudGxjLWxpc3QgLnRsYy1uYW1lIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNTAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgLyogT3ZlcnJpZGUgdGhlIGJhc2UgcnVsZSdzIDItbGluZSBjbGFtcCBib3ggLSBzaW5nbGUgbGluZSBvbmx5LiAqL1xuICBkaXNwbGF5OiBibG9jaztcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiB1bnNldDtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtY2FyZC50bGMtbGlzdDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNik7XG59XG5cbi8qID09PSBDZW50ZXJlZCB2YXJpYW50OiB2ZXJ0aWNhbCBncmlkIHRpbGUgPT09XG4gICBgY2VudGVyZWRgIHdpbnMgb3ZlciBib3RoIGBsaXN0YCBhbmQgYGNvbXBhY3RgIChlbmZvcmNlZCBpbiBKUyByZW5kZXIoKTpcbiAgIG5laXRoZXIgaXMgYXBwbGllZCB0b2dldGhlciB3aXRoIHRsYy1jZW50ZXJlZCkuIFJlY3Rhbmd1bGFyIHRpbGUgZm9yIGFcbiAgIGdyaWQgb2YgdGlsZXMgKGUuZy4gNCBwZXIgcm93IG9uIHRoZSBtYXN0ZXItZGF0YSBsYW5kaW5nIHBhZ2UpOiB0aGVcbiAgIGljb24gdGlsZSBzaXRzIGNlbnRlcmVkIG9uIHRvcCwgdGhlIG5hbWUgY2VudGVycyB1bmRlcm5lYXRoIGl0LCBhbmRcbiAgIHRoZSBjb3VudCBjZW50ZXJzIGJlbG93IHRoYXQgLSBhIHZlcnRpY2FsIHN0YWNrIGluc3RlYWQgb2YgdGhlIGRlZmF1bHRcbiAgIGljb24tbGVmdC9ib2R5LXJpZ2h0IHJvdy4gV2lkdGggaXMgZHJpdmVuIGJ5IHRoZSBwYWdlJ3MgZ3JpZCwgbm90IGJ5XG4gICB0aGlzIGNvbXBvbmVudC4gTm8gYWN0aW9ucy9mYXZvcml0ZS9hcmNoaXZlZC1jaGlwIGV2ZXIgcmVuZGVyIGhlcmVcbiAgIChndWFyZGVkIGluIEpTKTsgdGhlIGFyY2hpdmVkIGRpbS9kZXNhdHVyYXRlIHRyZWF0bWVudCBiZWxvdyBzdGlsbFxuICAgYXBwbGllcyB1bmNoYW5nZWQgc2luY2UgaXQgdGFyZ2V0cyB0aGUgc2hhcmVkIC50bGMtdGlsZS8udGxjLW5hbWVcbiAgIHNlbGVjdG9ycy4gKi9cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQudGxjLWNlbnRlcmVkIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMjBweCAxNnB4IDE4cHg7XG4gIG1pbi1oZWlnaHQ6IDEzMnB4O1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkLnRsYy1jZW50ZXJlZCAudGxjLWljb24ge1xuICBmbGV4LXNocmluazogMDtcbiAgcGFkZGluZzogMCAwIDEycHg7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQudGxjLWNlbnRlcmVkIC50bGMtYm9keSB7XG4gIGZsZXg6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkLnRsYy1jZW50ZXJlZCAudGxjLW5hbWUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQudGxjLWNlbnRlcmVkIC50bGMtc3ViIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKiA9PT0gSG92ZXIgYWN0aW9uIGJ1dHRvbnMgKGZhdm9yaXRlICsgMy1kb3RzKSA9PT1cbiAgIEJlaGF2aW91ciBtaXJyb3JzIHRoZSBwcm9qZWN0LWNhcmQgdG9wLWFjdGlvbnMgRVhBQ1RMWSAoS2ltIDIwMjYtMDYtMDEpOlxuICAgLSBSaWdodC1hbmNob3JlZCBpbmxpbmUtZmxleCBpbiB0aGUgdG9wLXJpZ2h0IGNvcm5lci5cbiAgIC0gVGhlIGZhdm9yaXRlIChzdGFyKSBpcyBoaWRkZW4gYXQgcmVzdCBhbmQgZmFkZXMgaW4gb24gaG92ZXI7IG9uY2UgaXRcbiAgICAgaXMgZmF2b3JpdGVkICguZmF2b3JpdGUtYnV0dG9uLWZhdm9yaXRlZCkgaXQgU1RBWVMgdmlzaWJsZSBpbiB0aGVcbiAgICAgY29ybmVyLCBzbyB5b3Ugc2VlIGF0IGEgZ2xhbmNlIHdoaWNoIGxpc3RzIGFyZSBtYXJrZWQuXG4gICAtIFRoZSAzLWRvdHMgU0xJREVTIElOOiBjb2xsYXBzZWQgdG8gd2lkdGggMCBhdCByZXN0IChzbyB0aGVyZSBpcyBub1xuICAgICBlbXB0eSBib3gpLCBleHBhbmRzIHRvIDMycHggKyBhbiA4cHggbGVmdCBtYXJnaW4gb24gaG92ZXIgLSB0aGUgc2FtZVxuICAgICB3aWR0aC9vcGFjaXR5IHRyYW5zaXRpb24gLnByb2plY3QtY2FyZC1tZW51LXRyaWdnZXIgdXNlcy5cbiAgIFRoZSBwcm9qZWN0IGNhcmQgdXNlcyBhIGdsYXNzIHN1cmZhY2UgKGl0IHNpdHMgb24gYSBwaG90byk7IHRoZSB0YXNrbGlzdFxuICAgY2FyZCBpcyB3aGl0ZSwgc28gdGhlIGJ1dHRvbnMgZ2V0IGEgc29saWQtd2hpdGUgc3VyZmFjZSArIHJpbmcgaW5zdGVhZFxuICAgKGdsYXNzIGlzIGludmlzaWJsZSBvbiB3aGl0ZSkuICovXG4ucWRuYXByby10YXNrbGlzdC1jYXJkIC50bGMtYWN0aW9ucyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA4cHg7XG4gIHJpZ2h0OiA4cHg7XG4gIHotaW5kZXg6IDI7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4vKiBGYXZvcml0ZSAoc3Rhcik6IGhpZGRlbiBhdCByZXN0LCBmYWRlcyBpbiBvbiBob3ZlciwgcGVyc2lzdHMgd2hlbiBtYXJrZWQuICovXG4ucWRuYXByby10YXNrbGlzdC1jYXJkIC50bGMtYWN0aW9ucyAucWRuYXByby1mYXZvcml0ZS1idXR0b24ge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IHJnYmEoMjAsIDI1LCA4MCwgMC4yMiksIDAgMCAwIDFweCByZ2JhKDIwLCAyNSwgODAsIDAuMTQpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMTYwbXMgZWFzZTtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZCAudGxjLWFjdGlvbnMgLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uOm5vdCguZmF2b3JpdGUtYnV0dG9uLWZhdm9yaXRlZCkge1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZDpob3ZlciAudGxjLWFjdGlvbnMgLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uOm5vdCguZmF2b3JpdGUtYnV0dG9uLWZhdm9yaXRlZCksXG4ucWRuYXByby10YXNrbGlzdC1jYXJkOmZvY3VzLXdpdGhpbiAudGxjLWFjdGlvbnMgLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uOm5vdCguZmF2b3JpdGUtYnV0dG9uLWZhdm9yaXRlZCkge1xuICBvcGFjaXR5OiAxO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZCAudGxjLWFjdGlvbnMgLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKTtcbn1cblxuLyogMy1kb3RzOiBzbGlkZXMgaW4gZnJvbSB3aWR0aCAwIG9uIGhvdmVyIChtaXJyb3JzIC5wcm9qZWN0LWNhcmQtbWVudS10cmlnZ2VyKS4gKi9cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQgLnRsYy1hY3Rpb25zIC5xZG5hcHJvLWJ1dHRvbiB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB3aWR0aDogMCAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiAwO1xuICBoZWlnaHQ6IDMycHggIWltcG9ydGFudDtcbiAgbWluLWhlaWdodDogMzJweCAhaW1wb3J0YW50O1xuICBtYXgtaGVpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogNHB4ICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogbWF4LXdpZHRoIDIwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIHdpZHRoIDIwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIG1pbi13aWR0aCAyMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBtYXJnaW4tbGVmdCAyMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBvcGFjaXR5IDE1MG1zIGVhc2UsIGJhY2tncm91bmQgMTIwbXMgZWFzZTtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZDpob3ZlciAudGxjLWFjdGlvbnMgLnFkbmFwcm8tYnV0dG9uLFxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZDpmb2N1cy13aXRoaW4gLnRsYy1hY3Rpb25zIC5xZG5hcHJvLWJ1dHRvbiB7XG4gIHdpZHRoOiAzMnB4ICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogMzJweCAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDMycHg7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICBtYXJnaW4tbGVmdDogOHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCByZ2JhKDIwLCAyNSwgODAsIDAuMjIpLCAwIDAgMCAxcHggcmdiYSgyMCwgMjUsIDgwLCAwLjE0KSAhaW1wb3J0YW50O1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkOmhvdmVyIC50bGMtYWN0aW9ucyAucWRuYXByby1idXR0b246aG92ZXIsXG4ucWRuYXByby10YXNrbGlzdC1jYXJkOmZvY3VzLXdpdGhpbiAudGxjLWFjdGlvbnMgLnFkbmFwcm8tYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKSAhaW1wb3J0YW50O1xufVxuXG4vKiBEYXJrLW1vZGUgc3VyZmFjZXMuICovXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1jYXJkIC50bGMtYWN0aW9ucyAucWRuYXByby1mYXZvcml0ZS1idXR0b24ge1xuICBiYWNrZ3JvdW5kOiAjMmUzMDM2O1xuICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjQpLCAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KTtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtY2FyZCAudGxjLWFjdGlvbnMgLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogIzM4M2I0Mjtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtY2FyZDpob3ZlciAudGxjLWFjdGlvbnMgLnFkbmFwcm8tYnV0dG9uLFxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtY2FyZDpmb2N1cy13aXRoaW4gLnRsYy1hY3Rpb25zIC5xZG5hcHJvLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6ICMyZTMwMzYgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC40KSwgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCkgIWltcG9ydGFudDtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtY2FyZDpob3ZlciAudGxjLWFjdGlvbnMgLnFkbmFwcm8tYnV0dG9uOmhvdmVyLFxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtY2FyZDpmb2N1cy13aXRoaW4gLnRsYy1hY3Rpb25zIC5xZG5hcHJvLWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICMzODNiNDIgIWltcG9ydGFudDtcbn1cblxuLyogPT09IEFyY2hpdmVkIHN0YXRlIChtaXJyb3JzIHRoZSBwcm9qZWN0LWNhcmQgYXJjaGl2ZWQgdmFyaWFudCkgPT09XG4gICBUaGUgdGFza2xpc3QgY2FyZCBoYXMgbm8gcGhvdG8gdG8gZGVzYXR1cmF0ZSwgc28gdGhlIGNvbG91ciB0aWxlIElTXG4gICB0aGUgaW1hZ2VyeTogaXQgaXMgZnVsbHkgZ3JleWVkIG91dCAoZ3JheXNjYWxlIDEpIHNvIHRoZSBwYXN0ZWxcbiAgIGlkZW50aXR5IGRyb3BzIGF3YXksIGV4YWN0bHkgbGlrZSB0aGUgcHJvamVjdCBjYXJkJ3MgZGVzYXR1cmF0ZWRcbiAgIHBob3RvLiBDYXJkIGRpbXMgdG8gMC44NSAoc2FtZSBhcyB0aGUgcHJvamVjdCBjYXJkKSBhbmQgdGhlIG5hbWUgaXNcbiAgIG11dGVkLiAqL1xuLnFkbmFwcm8tdGFza2xpc3QtY2FyZFthcmNoaXZlZF0ge1xuICBvcGFjaXR5OiAwLjg1O1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkW2FyY2hpdmVkXSAudGxjLXRpbGUge1xuICBmaWx0ZXI6IGdyYXlzY2FsZSgxKSBicmlnaHRuZXNzKDAuOTgpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMTAwLCAjZWVmMGYyKTtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZFthcmNoaXZlZF0gLnRsYy1uYW1lIHtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS02MDAsICM2YjcyODApO1xufVxuXG4vKiBUaGUgZmF2b3JpdGUvcGluIG1ha2VzIG5vIHNlbnNlIG9uIGFuIGFyY2hpdmVkIHRhc2tsaXN0OyBrZWVwIG9ubHkgdGhlXG4gICAzLWRvdHMgKHdoaWNoIG9mZmVycyBcIkFjdGl2ZXJlblwiKS4gKi9cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmRbYXJjaGl2ZWRdIC50bGMtYWN0aW9ucyAucWRuYXByby1mYXZvcml0ZS1idXR0b24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkIC50bGMtYXJjaGl2ZWQtY2hpcCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbiAgbWFyZ2luLXRvcDogNnB4O1xuICBwYWRkaW5nOiAycHggOXB4IDJweCA3cHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMTAwLCAjZWVmMGYyKTtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS02MDAsICM2YjcyODApO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBsZXR0ZXItc3BhY2luZzogMC4ycHg7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQgLnRsYy1hcmNoaXZlZC1jaGlwIHFkbmFwcm8taWNvbiB7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1jYXJkIC50bGMtYXJjaGl2ZWQtY2hpcCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIGNvbG9yOiAjYTBhNGI4O1xufVxuXG4vKiBBcmNoaXZlZCB2YXJpYW50IGluIGRhcmsgbW9kZTogYSBkYXJrIG5ldXRyYWwgdGlsZSAodGhlIGFyY2hpdmVkXG4gICBsaWdodCBydWxlIHNldHMgaXRzIG93biBiYWNrZ3JvdW5kLCBzbyBpdCBtdXN0IGJlIHJlLW92ZXJyaWRkZW4gaGVyZSlcbiAgIGFuZCBhIGxpZ2h0ZXIgbXV0ZWQgZ3JleSBuYW1lLCBzbyB0aGUgZGltbWVkL2Rlc2F0dXJhdGVkIHRyZWF0bWVudFxuICAgcmVhZHMgY29ycmVjdGx5IG9uIHRoZSBkYXJrIGNhcmQgc3VyZmFjZS4gKi9cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhc2tsaXN0LWNhcmRbYXJjaGl2ZWRdIC50bGMtdGlsZSB7XG4gIGJhY2tncm91bmQ6ICM0MDQ0NGQ7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhc2tsaXN0LWNhcmRbYXJjaGl2ZWRdIC50bGMtbmFtZSB7XG4gIGNvbG9yOiAjYTBhNGI4O1xufVxuXG4vKiA9PT0gQ29sb3VyIHBhbGV0dGUgKHFkbmFwcm8tdGFnIGxpZ2h0IHBhc3RlbHMpID09PSAqL1xuLnFkbmFwcm8tdGFza2xpc3QtY2FyZC50bGMtY29sb3ItZ3JleSB7XG4gIC0tdGxjLWJnOiB2YXIoLS1jLWdyZXktNTApO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkLnRsYy1jb2xvci1yZWQge1xuICAtLXRsYy1iZzogdmFyKC0tYy1zaWduYWwtcmVkLWJnKTtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZC50bGMtY29sb3IteWVsbG93IHtcbiAgLS10bGMtYmc6IHZhcigtLWMtY2hpcC15ZWxsb3ctYmcpO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkLnRsYy1jb2xvci1ncmVlbiB7XG4gIC0tdGxjLWJnOiB2YXIoLS1jLWNoaXAtZ3JlZW4tYmcpO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkLnRsYy1jb2xvci1ibHVlIHtcbiAgLS10bGMtYmc6IHZhcigtLWMtc2lnbmFsLWJsdWUtYmcpO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkLnRsYy1jb2xvci1icmlnaHQtYmx1ZSB7XG4gIC0tdGxjLWJnOiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtMi1iZyk7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQudGxjLWNvbG9yLXBpbmsge1xuICAtLXRsYy1iZzogdmFyKC0tYy1zaWduYWwtcGluay1iZyk7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQudGxjLWNvbG9yLXB1cnBsZSB7XG4gIC0tdGxjLWJnOiB2YXIoLS1jLWNoaXAtcHVycGxlLWJnKTtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtY2FyZC50bGMtY29sb3ItZ3JleSB7XG4gIC0tdGxjLWJnOiAjNDA0NDRkO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1jYXJkLnRsYy1jb2xvci1yZWQge1xuICAtLXRsYy1iZzogIzVhMmIyYjtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtY2FyZC50bGMtY29sb3IteWVsbG93IHtcbiAgLS10bGMtYmc6ICM1YTRkMWY7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhc2tsaXN0LWNhcmQudGxjLWNvbG9yLWdyZWVuIHtcbiAgLS10bGMtYmc6ICMyYTU1NDQ7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhc2tsaXN0LWNhcmQudGxjLWNvbG9yLWJsdWUge1xuICAtLXRsYy1iZzogIzJlM2U1NDtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtY2FyZC50bGMtY29sb3ItYnJpZ2h0LWJsdWUge1xuICAtLXRsYy1iZzogIzNhNGE4YTtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtY2FyZC50bGMtY29sb3ItcGluayB7XG4gIC0tdGxjLWJnOiAjNGUyYTM2O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1jYXJkLnRsYy1jb2xvci1wdXJwbGUge1xuICAtLXRsYy1iZzogIzNhMzU1NTtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgM3B4IDEycHggcmdiYSgwLCAwLCAwLCAwLjQpO1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCk7XG59IiwiLy8gX3RleHQtbGluay5zY3NzXG4vL1xuLy8gRGVzaWduIHNvdXJjZSA6IEZpZ21hIFFETkEtUFJPLCBjb21wb25lbnQgc2V0IG5vZGUgMzE5NDo3OTA5NVxuLy8gVmVyaWZpZWQgdmlhICA6IGluc3RhbmNlc1xuLy8gICA4NzU5OjE4NjczOSAgKEhpZ2hsaWdodCAvIERlZmF1bHQgIC8gMTQgLyBCb2xkIC8gTGluaylcbi8vICAgODc2MDoxODY3NDEgIChFcnJvciAgICAgLyBIb3ZlciAgICAvIDE0IC8gQm9sZCAvIEJHKVxuLy8gICA4NzYwOjE4Njc0MyAgKFN1Y2Nlc3MgICAvIEhvdmVyICAgIC8gMTQgLyBCb2xkIC8gQkcpXG4vLyAgIDg3NjA6MTg2NzQ1ICAoSGlnaGxpZ2h0IC8gSG92ZXIgICAgLyAxNCAvIEJvbGQgLyBCRylcbi8vIFZhcmlhbnRzICAgICAgOiA0IGNvbG9yIMOXIDUgc2l6ZSDDlyA0IHdlaWdodCDDlyAyIGhvdmVyIMOXIDUgc3RhdGUgPSA3MDBcbi8vXG4vLyBUYXJnZXQgICAgICAgIDogYmFja29mZmljZTIvc2Nzcy92MS9jb21wb25lbnRzL190ZXh0LWxpbmsuc2Nzc1xuLy8gQWZ0ZXIgYWRkaW5nICA6IGFwcGVuZCAgQHVzZSBcImNvbXBvbmVudHMvdGV4dC1saW5rXCI7ICB0byBzY3NzL3YxL3N0eWxlLnNjc3Ncbi8vXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUT0tFTiBNQVBQSU5HIChGaWdtYSBwYXRoIOKGkiBTQ1NTIHZhcmlhYmxlKVxuLy8gQWxsIHZhbHVlcyBiZWxvdyBhcmUgW0ZJR01BIHZlcmlmaWVkXSB1bmxlc3MgbWFya2VkIFtJTkZFUlJFRF0uXG4vL1xuLy8gICBUZWtzdFxuLy8gICAgICR0ZXh0LW9uLWJvZHkgICAgICAgICAgICAgICAgICDihpIgdG9rZW5zL3RleHQvb24tYm9keSAgICAgICAgICAgICAgICAgICAgW0lORkVSUkVEIGluIGxpZ2h0XVxuLy8gICAgICR0ZXh0LWVycm9yICAgICAgICAgICAgICAgICAgICDihpIgdG9rZW5zL3RleHQvZXJyb3IgICAgICAgICAgICAgICAgICAgICAgKGRlZmF1bHQgc3RhdGUpXG4vLyAgICAgJHRleHQtb24tZXJyb3IgICAgICAgICAgICAgICAgIOKGkiB0b2tlbnMvdGV4dC9vbi1lcnJvciAgICgjYzY1YTVhKSAgICAgICAoaG92ZXItYmcgZXJyb3IpXG4vLyAgICAgJHRleHQtc3VjY2Vzcy1kYXJrICAgICAgICAgICAgIOKGkiB0b2tlbnMvdGV4dC9zdWNjZXNzLWRhcmsgKCM0MjhiNmUpXG4vLyAgICAgJHB1cnBsZS1oaWdobGlnaHQgICAgICAgICAgICAgIOKGkiB0b2tlbnMvcHVycGxlLWhpZ2hsaWdodCAoIzQ2NTJmMylcbi8vXG4vLyAgIFN1cmZhY2Vcbi8vICAgICAkc3VyZmFjZS1idXR0b25zLXN1YnRsZS1ob3ZlciAg4oaSIHRva2Vucy9zdXJmYWNlL2J1dHRvbnMvc3VidGxlLWhvdmVyICgjZjBmMWYyKVxuLy8gICAgICRzdXJmYWNlLWJ1dHRvbnMtc3VidGxlLXByZXNzZWQg4oaSIHRva2Vucy9zdXJmYWNlL2J1dHRvbnMvc3VidGxlLXByZXNzZWQgKCNlNGU2ZTgpIFtzeXN0ZW1pY11cbi8vICAgICAkc3VyZmFjZS1zaWduYWwtcmVkLTUwICAgICAgICAg4oaSIHRva2Vucy9zdXJmYWNlL3NpZ25hbC9zaWduYWwtcmVkLTUwICgjZmVmMWYxKVxuLy8gICAgICRzdXJmYWNlLXNpZ25hbC1ncmVlbi01MCAgICAgICDihpIgdG9rZW5zL3N1cmZhY2Uvc2lnbmFsL3NpZ25hbC1ncmVlbi01MCAoI2YwZmRmOClcbi8vXG4vLyAgIEJvcmRlclxuLy8gICAgICRib3JkZXItZXJyb3ItZGFyayAgICAgICAgICAgICDihpIgdG9rZW5zL2JvcmRlci9lcnJvci1kYXJrICAgKCNjNjVhNWEpXG4vLyAgICAgJGJvcmRlci1zdWNjZXNzLWRhcmsgICAgICAgICAgIOKGkiB0b2tlbnMvYm9yZGVyL3N1Y2Nlc3MtZGFyayAoIzQyOGI2ZSlcbi8vXG4vLyAgIFR5cG9ncmFwaHkgLyBzcGFjaW5nIC8gcmFkaXVzXG4vLyAgICAgJGZvbnQtZmFtaWx5LXByaW1hcnksICRmb250LXdlaWdodC17cmVndWxhcnxtZWRpdW18c2VtaS1ib2xkfGJvbGR9XG4vLyAgICAgJHNwYWNpbmcteHhzICg0cHgpLCAkcmFkaXVzLXNtYWxsICg4cHgpXG4vL1xuLy8gQSB0cmFuc3BhcmVudCAwLjVweCBib3JkZXIgaXMgYXBwbGllZCBvbiB0aGUgYmFzZSBzbyBFcnJvci9TdWNjZXNzIGhvdmVyXG4vLyBzdGF0ZXMgY2FuIHJldmVhbCB0aGVpciByZWFsIGJvcmRlciB3aXRob3V0IGNhdXNpbmcgYW55IGxheW91dCBzaGlmdC5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFBSRVNTRUQgU1RBVEUgW0tpbSAyMDI2LTA0LTI4XVxuLy8gQWxpZ25lZCB3aXRoIHRoZSBzeXN0ZW1pYyBwcmVzc2VkIHBhdHRlcm4gdXNlZCBhY3Jvc3MgYWxsIGludGVyYWN0aXZlXG4vLyBRRE5BIFBybyBjb21wb25lbnRzLiBUd28gc3RyYXRlZ2llcywgb25lIHBlciBob3Zlci10eXBlOlxuLy9cbi8vICAgaG92ZXItbGluayAg4oCUIHRleHQgZ2V0cyBvbmUgdGllciBkYXJrZXIgKyBiZyBwaWNrcyB1cCBzdWJ0bGUtcHJlc3NlZCxcbi8vICAgICAgICAgICAgICAgICB1bmRlcmxpbmUgcGVyc2lzdHMgZnJvbSBob3Zlci4gR2l2ZXMgaGFwdGljIGZlZWRiYWNrIG9uIGFcbi8vICAgICAgICAgICAgICAgICBjb21wb25lbnQgdGhhdCBvdGhlcndpc2UgaGFzIG5vIGJnIHN0YXRlLlxuLy8gICBob3Zlci1iZyAgICDigJQgYmcgc3RlcHMgZnJvbSBzdWJ0bGUtaG92ZXIgKCNmMGYxZjIpIHRvIHN1YnRsZS1wcmVzc2VkXG4vLyAgICAgICAgICAgICAgICAgKCNlNGU2ZTgpOyBlcnJvci9zdWNjZXNzIHVzZSBzaWduYWwte3JlZCxncmVlbn0tMTAwIHRpbnRzLlxuLy9cbi8vIERyaXZlbiBieSBUSFJFRSBzZWxlY3RvciBmb3JtcyBzbyBpdCB3b3JrcyBpbiBhbGwgY29udGV4dHM6XG4vLyAgIDphY3RpdmUgICAgICAgICAgICAgICAgICAg4oCUIHJlYWwgcG9pbnRlciBpbnRlcmFjdGlvblxuLy8gICAudGV4dC1saW5rLXByZXNzZWQgICAgICAgIOKAlCBwaW5uZWQgdmlhIGF0dHJpYnV0ZSAoZS5nLiBzdWJtaXR0aW5nIHN0YXRlKVxuLy8gICAuZm9yY2UtcHJlc3NlZCAgICAgICAgICAgIOKAlCBwcmV2aWV3L2RvY3MgaGVscGVyIGNsYXNzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBGT0NVUyBTVEFURVxuLy8gQ2Fub25pY2FsIFFETkEgUHJvIGZvY3VzLXJlY2lwZSDigJQgMnB4IG91dGxpbmUgKyA0cHggb3V0ZXIgZ2xvdyBAIDI1JVxuLy8gYWxwaGEuIEluc2V0IG9mZnNldCAoLTJweCkgc28gdGhlIHJpbmcgc3RheXMgaW5zaWRlIHRoZSByb3VuZGVkIGJvcmRlci5cbi8vIGAuZm9yY2UtZm9jdXNgIGlzIGEgcHJldmlldy9zY3JlZW5zaG90IGhlbHBlci5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gRklYICgyMS4wNy4yMDI2LCBQV0EgRG9jdW1lbnRlbi1wcm9qZWN0IC0gS2ltJ3MgdG9lc3RlbC10ZXN0KTogdGhpcyBmaWxlXG4vLyB1c2VkIHRvIEB1c2UgXCIuLi9tb2R1bGVzL3tjb2xvcnMsdHlwb2dyYXBoeSxzcGFjaW5nfVwiIC0gcGF0aHMgdGhhdCByZXNvbHZlXG4vLyB0byBiYWNrb2ZmaWNlMi9zY3NzL2NvbXBvbmVudHMvdjIvbW9kdWxlcy8qLCB3aGljaCBkb2VzIE5PVCBleGlzdCAodGhlIHJlYWxcbi8vIG1vZHVsZXMgbGl2ZSBhdCBiYWNrb2ZmaWNlMi9zY3NzL21vZHVsZXMvKiwgMyBsZXZlbHMgdXAsIG5vdCAxKS4gU2luY2UgYVxuLy8gcmVsYXRpdmUgQHVzZSBpcyBBTFdBWVMgcmVzb2x2ZWQgZnJvbSB0aGUgaW1wb3J0aW5nIGZpbGUncyBvd24gbG9jYXRpb25cbi8vIChuZXZlciBsb2FkLXBhdGgtc2VhcmNoZWQpLCB0aGlzIG1hZGUgdGhlIGZpbGUgZmFpbCB0byBjb21waWxlIC0gaXQgd2FzXG4vLyB0aGVyZWZvcmUgbmV2ZXIgQHVzZSdkIGZyb20gY29tcG9uZW50cy5zY3NzIChncmVwcGVkOiB6ZXJvIFwiLnFkbmFwcm8tdGV4dC1saW5rXCJcbi8vIG1hdGNoZXMgYW55d2hlcmUgaW4gdGhlIGNvbXBpbGVkIHN0eWxlLXYxLmNzcyksIHNvIHFkbmFwcm8tdGV4dC1saW5rIGhhc1xuLy8gYmVlbiBydW5uaW5nIHdpdGggTk8gQ1NTIEFUIEFMTCwgYW55d2hlcmUsIHNpbmNlIGl0IHdhcyBmaXJzdCBidWlsdCAtIHRoZVxuLy8gY29tcG9uZW50J3Mgb25seSBvdGhlciBjb25zdW1lciAocWRuYXByby1hdmF0YXItc3RhY2sncyBcIitOXCIgb3ZlcmZsb3cgY2hpcClcbi8vIG5ldmVyIGhpdCB0aGlzIGJlY2F1c2UgaXQgc3R5bGVzIHRoYXQgY2hpcCBlbnRpcmVseSB2aWEgSVRTIE9XTlxuLy8gW2RhdGEtcm9sZT1vdmVyZmxvd10gYXR0cmlidXRlIGhvb2sgKF9hdmF0YXItc3RhY2suc2NzcyksIGJ5cGFzc2luZ1xuLy8gLnFkbmFwcm8tdGV4dC1saW5rJ3MgY2xhc3MtYmFzZWQgcnVsZXMgY29tcGxldGVseS4gVGhlIHNlYXJjaC1vdmVybGF5J3Ncbi8vIGNhbmNlbC9cIldpc3NlblwiIGxpbmtzIChxZG5hLXNlYXJjaC1vdmVybGF5LmpzKSBhcmUgdGhlIGZpcnN0IEdFTkVSSUMgdXNlIG9mXG4vLyB0aGlzIGNvbXBvbmVudCBhbnl3aGVyZSBpbiB0aGUgYXBwLCB3aGljaCBpcyB3aGF0IHN1cmZhY2VkIHRoZSBnYXAuXG4vLyBSZXdpcmVkIGJlbG93IG9udG8gdGhlIHNoYXJlZCBkZXNpZ24tdG9rZW5zIDpyb290IGN1c3RvbSBwcm9wZXJ0aWVzXG4vLyAoZGVzaWduLXRva2Vucy9fZGVzaWduLXRva2Vucy5zY3NzLCBhbHJlYWR5IGxvYWRlZCBmaXJzdCBieSBldmVyeSB2MlxuLy8gY29tcG9uZW50KSBpbnN0ZWFkIG9mIHRoZSBicm9rZW4gJHZhcmlhYmxlIEB1c2UgaW1wb3J0cyAtIHNhbWUgY29udmVudGlvblxuLy8gZXZlcnkgc2libGluZyBGTEFUIHYyIGNvbXBvbmVudCAocG9wb3Zlciwgc2VhcmNoLW92ZXJsYXksIC4uLikgYWxyZWFkeVxuLy8gZm9sbG93cy4gSGV4IHZhbHVlcyB0aGF0IGhhdmUgbm8gZGlyZWN0IGRlc2lnbi10b2tlbiBlcXVpdmFsZW50IGFyZSBpbmxpbmVkXG4vLyBsaXRlcmFsbHkgZnJvbSB0aGlzIGZpbGUncyBvd24gXCJUT0tFTiBNQVBQSU5HXCIgY29tbWVudCBhYm92ZSAoRmlnbWEtdmVyaWZpZWRcbi8vIHZhbHVlcyksIHNhbWUgYXMgdGhlIHRva2VuLW1hcHBpbmcgZG9jIGFscmVhZHkgZG9jdW1lbnRlZC4gVGhpcyBmaWxlIGlzIG5vd1xuLy8gcmVhbCAoYCZgLW5lc3RlZCkgU0NTUyAtIHN5bmNlZCBpbnRvIHRoZSBQV0EgdmlhIHN5bmMtdjItY29tcG9uZW50cy5qcydzXG4vLyBjb21waWxlU2NzcyBwYXRoIChsaWtlIGxpc3Qtcm93L3NlZ21lbnQvYm90dG9tLW5hdi9hcHAtaGVhZGVyKSwgbm90IHRoZVxuLy8gZmxhdCBcIi8vXCItc3RyaXAgY29weS5cbi5xZG5hcHJvLXRleHQtbGluayB7XG4gICAgLS10bC1jLWZvY3VzLXJpbmc6IHZhcigtLWMtcHVycGxlLTUwMCk7ICAgICAgICAgICAgICAgICAgLy8gQm9yZGVyL0FjdGlvbi1QdXJwbGUtT3V0bGluZWRcbiAgICAtLXRsLWMtZm9jdXMtZ2xvdzogcmdiYSg3MCwgODIsIDI0MywgMC4yNSk7ICAvLyBQdXJwbGUtSGlnaGxpZ2h0IEAgMjUlXG4gICAgLS10bC1jLWJnLWhvdmVyOiAgICB2YXIoLS1jLWdyZXktNTApOyAgICAgICAgLy8gI2YwZjFmMiwgPSAkc3VyZmFjZS1idXR0b25zLXN1YnRsZS1ob3ZlclxuICAgIC0tdGwtYy1iZy1wcmVzc2VkOiAgdmFyKC0tYy1ib3JkZXItY2FyZCk7ICAgICAgICAgICAgICAgICAvLyBbc3lzdGVtaWMg4oCUIDEgc3RlcCBkYXJrZXIgdGhhbiBzdWJ0bGUtaG92ZXJdXG4gICAgLS10bC1jLXRleHQ6ICAgICAgICB2YXIoLS1jLXRleHQtYm9keSk7ICAgICAgLy8gPSAkdGV4dC1vbi1ib2R5XG4gICAgLS10bC1jLXRleHQtaG92ZXI6ICB2YXIoLS1jLXRleHQtYm9keSk7XG4gICAgLS10bC1jLXRleHQtcHJlc3NlZDogdmFyKC0tYy1ncmV5LTgwMCk7ICAgICAgICAgICAgICAgIC8vIFtzeXN0ZW1pYyDigJQgMSBzdGVwIGRhcmtlciB0aGFuIHRleHQtb24tYm9keV1cblxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIC8vIGBkaXNwbGF5YCBvbiB0aGUgY2xhc3MgYmVhdHMgdGhlIGJyb3dzZXIncyBvd24gYFtoaWRkZW5dIHsgZGlzcGxheTogbm9uZSB9YCwgc29cbiAgICAvLyB3aXRob3V0IHRoaXMgYSBob3N0IHRoYXQgaGlkZXMgdGhlIGxpbmsgd2l0aCB0aGUgaGlkZGVuIGF0dHJpYnV0ZSAodGhlIGhvbmVzdCB3YXlcbiAgICAvLyB0byBoaWRlIGFuIGVsZW1lbnQpIGdvdCBhIGxpbmsgdGhhdCBzdGF5ZWQgdmlzaWJsZS4gU2FtZSBvbmUtbGluZXIgdGhlIG90aGVyXG4gICAgLy8gY29tcG9uZW50cyB3aXRoIGEgZGlzcGxheSBvZiB0aGVpciBvd24gY2FycnkuIFtLaW0gMTkuMDguMjAyNl1cbiAgICAmW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAycHggdmFyKC0tcy0xKTsgICAgICAgICAgICAgICAgICAvLyA9ICRzcGFjaW5nLXh4cyAoNHB4KVxuICAgIGJvcmRlcjogMC41cHggc29saWQgdHJhbnNwYXJlbnQ7ICAgICAgICAgIC8vIHJlc2VydmVzIHNwYWNlIGZvciBob3ZlciBib3JkZXJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTIpOyAgICAgICAgICAgICAgICAvLyA9ICRyYWRpdXMtc21hbGwgKDhweClcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdmFyKC0tdGwtYy10ZXh0KTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZmYpOyAgICAgICAgICAgICAgICAgICAvLyA9ICRmb250LWZhbWlseS1wcmltYXJ5XG4gICAgZm9udC13ZWlnaHQ6IDcwMDsgICAgICAgICAgICAgICAgICAgICAgICAgLy8gPSAkZm9udC13ZWlnaHQtYm9sZCAobm8gLS1mdy1ib2xkIHRva2VuIGV4aXN0cyB5ZXQpXG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXMgZWFzZSxcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3IgMTIwbXMgZWFzZSxcbiAgICAgICAgICAgICAgICBjb2xvciAxMjBtcyBlYXNlLFxuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbiAxMjBtcyBlYXNlLFxuICAgICAgICAgICAgICAgIG9wYWNpdHkgMTIwbXMgZWFzZTtcblxuICAgIC8vIC0tLS0gRm9jdXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAmOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxuICAgICY6Zm9jdXMtdmlzaWJsZSxcbiAgICAmLmZvcmNlLWZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLXRsLWMtZm9jdXMtcmluZyk7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggdmFyKC0tdGwtYy1mb2N1cy1nbG93KTtcbiAgICB9XG5cbiAgICAvLyAtLS0tIERpc2FibGVkICh3aW5zIG92ZXIgZXZlcnl0aGluZykgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAmW2Rpc2FibGVkXSxcbiAgICAmLnRleHQtbGluay1kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgJjpmb2N1cy12aXNpYmxlLFxuICAgICAgICAmLmZvcmNlLWZvY3VzIHsgb3V0bGluZTogMnB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3gtc2hhZG93OiBub25lOyB9XG4gICAgfVxuXG4gICAgLy8gLS0tIENvbG91ciB2YXJpYW50cyAoZGVmYXVsdCBzdGF0ZSkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICYudGV4dC1saW5rLW5ldXRyYWwgICB7XG4gICAgICAgIC0tdGwtYy10ZXh0OiB2YXIoLS1jLXRleHQtYm9keSk7XG4gICAgICAgIC0tdGwtYy10ZXh0LXByZXNzZWQ6IHZhcigtLWMtZ3JleS04MDApO1xuICAgIH1cbiAgICAmLnRleHQtbGluay1lcnJvciAgICAge1xuICAgICAgICAtLXRsLWMtdGV4dDogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpOyAgICAvLyAjYzY1YTVhLCA9ICR0ZXh0LWVycm9yIC8gJHRleHQtb24tZXJyb3JcbiAgICAgICAgLS10bC1jLXRleHQtcHJlc3NlZDogdmFyKC0tYy1jaGlwLXJlZC10ZXh0KTsgICAgICAgICAgICAgIC8vIDEgdGllciBkYXJrZXIgdGhhbiAkdGV4dC1lcnJvclxuICAgIH1cbiAgICAmLnRleHQtbGluay1zdWNjZXNzICAge1xuICAgICAgICAtLXRsLWMtdGV4dDogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCk7ICAvLyAjNDI4YjZlLCA9ICR0ZXh0LXN1Y2Nlc3MtZGFya1xuICAgICAgICAtLXRsLWMtdGV4dC1wcmVzc2VkOiB2YXIoLS1jLWNoaXAtZ3JlZW4tdGV4dCk7ICAgICAgICAgICAgICAgLy8gMSB0aWVyIGRhcmtlciB0aGFuICR0ZXh0LXN1Y2Nlc3MtZGFya1xuICAgIH1cbiAgICAmLnRleHQtbGluay1oaWdobGlnaHQge1xuICAgICAgICAtLXRsLWMtdGV4dDogdmFyKC0tYy1wdXJwbGUtaGlnaGxpZ2h0KTsgICAvLyAjNDY1MmYzLCA9ICRwdXJwbGUtaGlnaGxpZ2h0XG4gICAgICAgIC0tdGwtYy10ZXh0LXByZXNzZWQ6IHZhcigtLWMtcHVycGxlLTcwMCk7ICAgICAgICAgICAgICAvLyBwcmVzc2VkLXB1cnBsZSA9IGRhcmtlc3QgYnJhbmRcbiAgICB9XG5cbiAgICAvLyAtLS0gU2l6ZSB2YXJpYW50cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgJi50ZXh0LWxpbmstMTAgeyBmb250LXNpemU6IDEwcHg7IGxpbmUtaGVpZ2h0OiAyMHB4OyB9XG4gICAgJi50ZXh0LWxpbmstMTIgeyBmb250LXNpemU6IDEycHg7IGxpbmUtaGVpZ2h0OiAyMHB4OyB9XG4gICAgJi50ZXh0LWxpbmstMTQgeyBmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAyNHB4OyB9XG4gICAgJi50ZXh0LWxpbmstMTYgeyBmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiAyNHB4OyB9XG4gICAgJi50ZXh0LWxpbmstMjAgeyBmb250LXNpemU6IDIwcHg7IGxpbmUtaGVpZ2h0OiAzMnB4OyB9XG5cbiAgICAvLyAtLS0gV2VpZ2h0IHZhcmlhbnRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgJi50ZXh0LWxpbmstd2VpZ2h0LXJlZ3VsYXIgIHsgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXJlZ3VsYXIpOyB9XG4gICAgJi50ZXh0LWxpbmstd2VpZ2h0LW1lZGl1bSAgIHsgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LW1lZGl1bSk7IH1cbiAgICAmLnRleHQtbGluay13ZWlnaHQtc2VtaWJvbGQgeyBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaSk7IH1cbiAgICAmLnRleHQtbGluay13ZWlnaHQtYm9sZCAgICAgeyBmb250LXdlaWdodDogNzAwOyB9XG5cbiAgICAvLyAtLS0gSG92ZXIgdHlwZTogbGluayAodW5kZXJsaW5lIG9ubHkpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAmLnRleHQtbGluay1ob3Zlci1saW5rOm5vdChbZGlzYWJsZWRdKTpub3QoLnRleHQtbGluay1kaXNhYmxlZCk6aG92ZXIsXG4gICAgJi50ZXh0LWxpbmstaG92ZXItbGluay50ZXh0LWxpbmstYWN0aXZlIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuXG4gICAgLy8gLS0tIEhvdmVyIHR5cGU6IGJnIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIE5ldXRyYWwgKyBIaWdobGlnaHQ6IGJhY2tncm91bmQgdGludCB0byBzdWJ0bGUtaG92ZXIgKGdlZW4gYm9yZGVyKVxuICAgIC8vIEVycm9yICsgU3VjY2VzcyAgICA6IHNpZ25hbC10aW50ICsgMC41cHggc2lnbmFsIGJvcmRlciArIHRleHQgc2hpZnRcbiAgICAmLnRleHQtbGluay1ob3Zlci1iZzpub3QoW2Rpc2FibGVkXSk6bm90KC50ZXh0LWxpbmstZGlzYWJsZWQpOmhvdmVyLFxuICAgICYudGV4dC1saW5rLWhvdmVyLWJnLnRleHQtbGluay1hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10bC1jLWJnLWhvdmVyKTtcbiAgICB9XG5cbiAgICAmLnRleHQtbGluay1ob3Zlci1iZy50ZXh0LWxpbmstZXJyb3I6bm90KFtkaXNhYmxlZF0pOm5vdCgudGV4dC1saW5rLWRpc2FibGVkKTpob3ZlcixcbiAgICAmLnRleHQtbGluay1ob3Zlci1iZy50ZXh0LWxpbmstZXJyb3IudGV4dC1saW5rLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLXJlZC1zb2Z0KTsgICAgICAgICAgICAgICAgICAgICAgLy8gPSAkc3VyZmFjZS1zaWduYWwtcmVkLTUwIChubyBkaXJlY3QgdG9rZW47IEZpZ21hLXZlcmlmaWVkIGhleCwgc2VlIGhlYWRlcilcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCk7ICAgLy8gPSAkYm9yZGVyLWVycm9yLWRhcmtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0KTsgICAgICAgICAgLy8gPSAkdGV4dC1vbi1lcnJvclxuICAgIH1cblxuICAgICYudGV4dC1saW5rLWhvdmVyLWJnLnRleHQtbGluay1zdWNjZXNzOm5vdChbZGlzYWJsZWRdKTpub3QoLnRleHQtbGluay1kaXNhYmxlZCk6aG92ZXIsXG4gICAgJi50ZXh0LWxpbmstaG92ZXItYmcudGV4dC1saW5rLXN1Y2Nlc3MudGV4dC1saW5rLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1ncmVlbi1iZyk7ICAgICAgICAgICAgICAgICAgICAgIC8vID0gJHN1cmZhY2Utc2lnbmFsLWdyZWVuLTUwIChubyBkaXJlY3QgdG9rZW47IEZpZ21hLXZlcmlmaWVkIGhleCwgc2VlIGhlYWRlcilcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0KTsgLy8gPSAkYm9yZGVyLXN1Y2Nlc3MtZGFya1xuICAgICAgICAvLyB0ZXh0IHN0YXlzICR0ZXh0LXN1Y2Nlc3MtZGFyayAoc2FtZSBodWUgYXMgYm9yZGVyLXN1Y2Nlc3MtZGFyaylcbiAgICB9XG5cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vICBQUkVTU0VEIOKAlCA6YWN0aXZlICsgLnRleHQtbGluay1wcmVzc2VkICsgLmZvcmNlLXByZXNzZWRcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gICAgLy8gLS0tIGhvdmVyLWxpbmsgcHJlc3NlZDogc3VidGxlLXByZXNzZWQgYmcgKyBkYXJrZXIgdGV4dCArIHVuZGVybGluZS5cbiAgICAmLnRleHQtbGluay1ob3Zlci1saW5rOm5vdChbZGlzYWJsZWRdKTpub3QoLnRleHQtbGluay1kaXNhYmxlZCk6YWN0aXZlLFxuICAgICYudGV4dC1saW5rLWhvdmVyLWxpbmsudGV4dC1saW5rLXByZXNzZWQsXG4gICAgJi50ZXh0LWxpbmstaG92ZXItbGluay5mb3JjZS1wcmVzc2VkIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGwtYy1iZy1wcmVzc2VkKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXRsLWMtdGV4dC1wcmVzc2VkKTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuXG4gICAgLy8gLS0tIGhvdmVyLWJnIHByZXNzZWQ6IGJnIG9uZSB0aWVyIGRlZXBlciB0aGFuIGhvdmVyLWJnLlxuICAgIC8vIE5ldXRyYWwgKyBIaWdobGlnaHQ6IHN1YnRsZS1wcmVzc2VkXG4gICAgJi50ZXh0LWxpbmstaG92ZXItYmc6bm90KFtkaXNhYmxlZF0pOm5vdCgudGV4dC1saW5rLWRpc2FibGVkKTphY3RpdmUsXG4gICAgJi50ZXh0LWxpbmstaG92ZXItYmcudGV4dC1saW5rLXByZXNzZWQsXG4gICAgJi50ZXh0LWxpbmstaG92ZXItYmcuZm9yY2UtcHJlc3NlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRsLWMtYmctcHJlc3NlZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS10bC1jLXRleHQtcHJlc3NlZCk7XG4gICAgfVxuICAgIC8vIEVycm9yIHByZXNzZWRcbiAgICAmLnRleHQtbGluay1ob3Zlci1iZy50ZXh0LWxpbmstZXJyb3I6bm90KFtkaXNhYmxlZF0pOm5vdCgudGV4dC1saW5rLWRpc2FibGVkKTphY3RpdmUsXG4gICAgJi50ZXh0LWxpbmstaG92ZXItYmcudGV4dC1saW5rLWVycm9yLnRleHQtbGluay1wcmVzc2VkLFxuICAgICYudGV4dC1saW5rLWhvdmVyLWJnLnRleHQtbGluay1lcnJvci5mb3JjZS1wcmVzc2VkIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtcmVkLWJnKTsgICAgICAgICAgICAgICAgICAgICAvLyBzaWduYWwtcmVkLTEwMCAoMSBzdGVwIGRlZXBlciB0aGFuIC01MClcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXRhZy1jcml0aWNhbC10ZXh0KTsgICAgICAgICAgICAgICAgICAgLy8gMSB0aWVyIGRhcmtlciB0aGFuICRib3JkZXItZXJyb3ItZGFya1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1jaGlwLXJlZC10ZXh0KTtcbiAgICB9XG4gICAgLy8gU3VjY2VzcyBwcmVzc2VkXG4gICAgJi50ZXh0LWxpbmstaG92ZXItYmcudGV4dC1saW5rLXN1Y2Nlc3M6bm90KFtkaXNhYmxlZF0pOm5vdCgudGV4dC1saW5rLWRpc2FibGVkKTphY3RpdmUsXG4gICAgJi50ZXh0LWxpbmstaG92ZXItYmcudGV4dC1saW5rLXN1Y2Nlc3MudGV4dC1saW5rLXByZXNzZWQsXG4gICAgJi50ZXh0LWxpbmstaG92ZXItYmcudGV4dC1saW5rLXN1Y2Nlc3MuZm9yY2UtcHJlc3NlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1ncmVlbi1iZyk7ICAgICAgICAgICAgICAgICAgICAgLy8gc2lnbmFsLWdyZWVuLTEwMCAoMSBzdGVwIGRlZXBlciB0aGFuIC01MClcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWNoaXAtZ3JlZW4tdGV4dCk7ICAgICAgICAgICAgICAgICAgIC8vIDEgdGllciBkYXJrZXIgdGhhbiAkYm9yZGVyLXN1Y2Nlc3MtZGFya1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1jaGlwLWdyZWVuLXRleHQpO1xuICAgIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgRGFyay1tb2RlIG92ZXJyaWRlc1xuLy8gIFtJTkZFUlJFRF0g4oCUIEZpZ21hIHNob3dlZCBvbmx5IGxpZ2h0IHRva2Vucy4gUGF0dGVybiBhbGlnbmVkXG4vLyAgd2l0aCBxZG5hcHJvLWJ1dHRvbiArIHFkbmFwcm8taWNvbi1idG4gZGFyay1tb2RlIHRyZWF0bWVudDogaW52ZXJ0XG4vLyAgdGhlIHN1cmZhY2UgdGludHMgKGxpZ2h0IOKGkiBkYXJrIGdyZXkpIGFuZCBsaWZ0IHRleHQgdG8gdGhlXG4vLyAgbGlnaHRlciByYW1wIHZhbHVlIHNvIGNvbnRyYXN0IHN0YXlzIEFBLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tdGV4dC1saW5rIHtcbiAgICAtLXRsLWMtYmctaG92ZXI6ICAgICM0MDQ0NGQ7ICAgICAgICAgICAgICAgICAvLyBTdXJmYWNlL0J1dHRvbnMvU3VidGxlLWhvdmVyLWRhcmtcbiAgICAtLXRsLWMtYmctcHJlc3NlZDogICM1NjViNjY7ICAgICAgICAgICAgICAgICAvLyAxIHRpZXIgZGFya2VyIHRoYW4gYmctaG92ZXJcbiAgICAtLXRsLWMtdGV4dDogICAgICAgICNlMWUzZTY7XG4gICAgLS10bC1jLXRleHQtaG92ZXI6ICAjZTFlM2U2O1xuICAgIC0tdGwtYy10ZXh0LXByZXNzZWQ6ICNmMGYxZjI7XG5cbiAgICAmLnRleHQtbGluay1uZXV0cmFsICAge1xuICAgICAgICAtLXRsLWMtdGV4dDogI2UxZTNlNjtcbiAgICAgICAgLS10bC1jLXRleHQtcHJlc3NlZDogI2YwZjFmMjtcbiAgICB9XG4gICAgJi50ZXh0LWxpbmstZXJyb3IgICAgIHtcbiAgICAgICAgLS10bC1jLXRleHQ6ICNmYmFhYWE7XG4gICAgICAgIC0tdGwtYy10ZXh0LXByZXNzZWQ6ICNmZWUzZTM7XG4gICAgfVxuICAgICYudGV4dC1saW5rLXN1Y2Nlc3MgICB7XG4gICAgICAgIC0tdGwtYy10ZXh0OiAjOGJlY2M1O1xuICAgICAgICAtLXRsLWMtdGV4dC1wcmVzc2VkOiAjZTJmYWYxO1xuICAgIH1cbiAgICAmLnRleHQtbGluay1oaWdobGlnaHQge1xuICAgICAgICAtLXRsLWMtdGV4dDogI2FhYjJmZjsgICAgICAgICAgICAgICAgICAgIC8vIGxpZnRlZCBwdXJwbGUtaGlnaGxpZ2h0IGZvciBkYXJrIGNvbnRyYXN0XG4gICAgICAgIC0tdGwtYy10ZXh0LXByZXNzZWQ6ICNkNmRhZmY7XG4gICAgfVxuXG4gICAgLy8gSG92ZXItYmcgY29sb3Itc3BlY2lmaWMgZGFyayBlcXVpdmFsZW50c1xuICAgICYudGV4dC1saW5rLWhvdmVyLWJnLnRleHQtbGluay1lcnJvcjpub3QoW2Rpc2FibGVkXSk6bm90KC50ZXh0LWxpbmstZGlzYWJsZWQpOmhvdmVyLFxuICAgICYudGV4dC1saW5rLWhvdmVyLWJnLnRleHQtbGluay1lcnJvci50ZXh0LWxpbmstYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzVhMmIyYjsgICAgICAgICAgICAgICAgICAgICAvLyBkYXJrIHNpZ25hbC1yZWQgYmdcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZmJhYWFhOyAgICAgICAgICAgICAgICAgICAvLyBsaWdodCByZWQgYm9yZGVyXG4gICAgICAgIGNvbG9yOiAjZmVlM2UzO1xuICAgIH1cbiAgICAmLnRleHQtbGluay1ob3Zlci1iZy50ZXh0LWxpbmstc3VjY2Vzczpub3QoW2Rpc2FibGVkXSk6bm90KC50ZXh0LWxpbmstZGlzYWJsZWQpOmhvdmVyLFxuICAgICYudGV4dC1saW5rLWhvdmVyLWJnLnRleHQtbGluay1zdWNjZXNzLnRleHQtbGluay1hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMmE1NTQ0OyAgICAgICAgICAgICAgICAgICAgIC8vIGRhcmsgc2lnbmFsLWdyZWVuIGJnXG4gICAgICAgIGJvcmRlci1jb2xvcjogIzhiZWNjNTtcbiAgICAgICAgY29sb3I6ICNlMmZhZjE7XG4gICAgfVxuXG4gICAgLy8gUHJlc3NlZCBkYXJrXG4gICAgJi50ZXh0LWxpbmstaG92ZXItYmcudGV4dC1saW5rLWVycm9yOm5vdChbZGlzYWJsZWRdKTpub3QoLnRleHQtbGluay1kaXNhYmxlZCk6YWN0aXZlLFxuICAgICYudGV4dC1saW5rLWhvdmVyLWJnLnRleHQtbGluay1lcnJvci50ZXh0LWxpbmstcHJlc3NlZCxcbiAgICAmLnRleHQtbGluay1ob3Zlci1iZy50ZXh0LWxpbmstZXJyb3IuZm9yY2UtcHJlc3NlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICM3YTM4Mzg7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2ZlZTNlMztcbiAgICAgICAgY29sb3I6ICNmZWUzZTM7XG4gICAgfVxuICAgICYudGV4dC1saW5rLWhvdmVyLWJnLnRleHQtbGluay1zdWNjZXNzOm5vdChbZGlzYWJsZWRdKTpub3QoLnRleHQtbGluay1kaXNhYmxlZCk6YWN0aXZlLFxuICAgICYudGV4dC1saW5rLWhvdmVyLWJnLnRleHQtbGluay1zdWNjZXNzLnRleHQtbGluay1wcmVzc2VkLFxuICAgICYudGV4dC1saW5rLWhvdmVyLWJnLnRleHQtbGluay1zdWNjZXNzLmZvcmNlLXByZXNzZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjM2Q3YTYyO1xuICAgICAgICBib3JkZXItY29sb3I6ICNlMmZhZjE7XG4gICAgICAgIGNvbG9yOiAjZTJmYWYxO1xuICAgIH1cbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL3RpbWVzdGFtcC9fdGltZXN0YW1wLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi5xZG5hcHJvLXRpbWVzdGFtcCB7XG4gIC0tdHMtY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCk7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiB2YXIoLS10cy1jb2xvcik7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ucWRuYXByby10aW1lc3RhbXAudGltZXN0YW1wLWNvbG9yLXB1cnBsZSB7XG4gIC0tdHMtY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG4ucWRuYXByby10aW1lc3RhbXAudGltZXN0YW1wLWNvbG9yLWhpZ2hsaWdodCB7XG4gIC0tdHMtY29sb3I6IHZhcigtLWMtYWN0aW9uLTUwMCk7XG59XG4ucWRuYXByby10aW1lc3RhbXAudGltZXN0YW1wLXdlaWdodC1yZWd1bGFyIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5xZG5hcHJvLXRpbWVzdGFtcC50aW1lc3RhbXAtd2VpZ2h0LWJvbGQge1xuICBmb250LXdlaWdodDogNzAwO1xufVxuLnFkbmFwcm8tdGltZXN0YW1wLnRpbWVzdGFtcC1zaXplLTEwIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBsaW5lLWhlaWdodDogMTRweDtcbn1cbi5xZG5hcHJvLXRpbWVzdGFtcC50aW1lc3RhbXAtc2l6ZS0xMSB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG59XG4ucWRuYXByby10aW1lc3RhbXAudGltZXN0YW1wLXNpemUtMTIge1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xufVxuLnFkbmFwcm8tdGltZXN0YW1wLnRpbWVzdGFtcC1zaXplLTEzIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMThweDtcbn1cbi5xZG5hcHJvLXRpbWVzdGFtcC50aW1lc3RhbXAtc2l6ZS0xNCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG59XG4ucWRuYXByby10aW1lc3RhbXAudGltZXN0YW1wLXNpemUtMTUge1xuICBmb250LXNpemU6IDE1cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xufVxuLnFkbmFwcm8tdGltZXN0YW1wLnRpbWVzdGFtcC1zaXplLTE2IHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbn1cbi5xZG5hcHJvLXRpbWVzdGFtcC50aW1lc3RhbXAtaW5saW5lIHtcbiAgYWxpZ24tc2VsZjogYmFzZWxpbmU7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRpbWVzdGFtcCB7XG4gIC0tdHMtY29sb3I6ICNiOGJjYzQ7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10aW1lc3RhbXAudGltZXN0YW1wLWNvbG9yLXB1cnBsZSB7XG4gIC0tdHMtY29sb3I6ICNiOGJjYzQ7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10aW1lc3RhbXAudGltZXN0YW1wLWNvbG9yLWhpZ2hsaWdodCB7XG4gIC0tdHMtY29sb3I6ICNhNWFjZmY7XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi90b2FzdC9fdG9hc3QtY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLnFkbmFwcm8tdG9hc3Qge1xuICAtLXRvYXN0LWJnOiB2YXIoLS1jLWdyZXktOTUwKTtcbiAgLS10b2FzdC10ZXh0OiAjZmZmZmZmO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEwMDAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCA0cHgpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgcGFkZGluZzogOHB4IDE0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHZhcigtLXRvYXN0LWJnKTtcbiAgY29sb3I6IHZhcigtLXRvYXN0LXRleHQpO1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMThweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYm94LXNoYWRvdzogMCA2cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMTgpLCAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNjBtcyBlYXNlLW91dCwgdHJhbnNmb3JtIDIyMG1zIGN1YmljLWJlemllcigwLjIsIDAuOCwgMC4yLCAxKTtcbn1cbi5xZG5hcHJvLXRvYXN0LnRvYXN0LXBvc2l0aW9uLXRvcCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIGNhbGMoLTEwMCUgKyA0cHgpKTtcbn1cbi5xZG5hcHJvLXRvYXN0LnRvYXN0LXBvc2l0aW9uLWJvdHRvbSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDRweCk7XG59XG4ucWRuYXByby10b2FzdCAudG9hc3QtaWNvbiB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4ucWRuYXByby10b2FzdCAudG9hc3QtbGFiZWwge1xuICBmbGV4OiAxIDEgYXV0bztcbn1cbi8vIFNuYWNrYmFyIGFjdGlvbiBidXR0b24gKGUuZy4gXCJVbmRvXCIpIOKAlCBpbmhlcml0cyB0aGUgdG9hc3QncyB0ZXh0IGNvbG91cixcbi8vIHBpbGwgdGFwIHRhcmdldCwgc2l0cyBhZnRlciB0aGUgbGFiZWwgd2l0aCBhIGxpdHRsZSBicmVhdGhpbmcgcm9vbS5cbi5xZG5hcHJvLXRvYXN0IC50b2FzdC1hY3Rpb24ge1xuICBmbGV4LXNocmluazogMDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAtNHB4IC02cHggLTRweCA0cHg7XG4gIHBhZGRpbmc6IDRweCAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICBvcGFjaXR5OiAwLjk1O1xufVxuLnFkbmFwcm8tdG9hc3QgLnRvYXN0LWFjdGlvbjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCk7IH1cbi5xZG5hcHJvLXRvYXN0IC50b2FzdC1hY3Rpb246YWN0aXZlIHsgb3BhY2l0eTogMC43NTsgfVxuLy8gT24gdGhlIGxpZ2h0ICh5ZWxsb3cvcmVkKSB2YXJpYW50cyB0aGUgd2hpdGUtYWxwaGEgaG92ZXIgaXMgaW52aXNpYmxlIOKAlCB0aW50IGRhcmtcbi5xZG5hcHJvLXRvYXN0LnRvYXN0LXZhcmlhbnQteWVsbG93IC50b2FzdC1hY3Rpb246aG92ZXIsXG4ucWRuYXByby10b2FzdC50b2FzdC12YXJpYW50LXJlZCAudG9hc3QtYWN0aW9uOmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA4KTsgfVxuLnFkbmFwcm8tdG9hc3QudG9hc3QtdmFyaWFudC1kYXJrIHtcbiAgLS10b2FzdC1iZzogdmFyKC0tYy1ncmV5LTk1MCk7XG4gIC0tdG9hc3QtdGV4dDogI2ZmZmZmZjtcbn1cbi5xZG5hcHJvLXRvYXN0LnRvYXN0LXZhcmlhbnQtcHVycGxlIHtcbiAgLS10b2FzdC1iZzogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgLS10b2FzdC10ZXh0OiAjZmZmZmZmO1xufVxuLy8gV2FybmluZyAoYW1iZXIpICsgZXJyb3IgKHJlZCkg4oCUIHJldXNlIHRoZSBkZXNpZ24tc3lzdGVtIHdhcm5pbmcgcGFsZXR0ZVxuLy8gKHNhbWUgdmFsdWVzIGFzIHRoZSBhbnN3ZXItb3B0aW9uIHdhcm5pbmcgcGlsbCArIHFkbmFwcm8tYnV0dG9uIHdhcm5pbmcgdGludHMpLlxuLy8gQSAxcHggYm9yZGVyIGRlZmluZXMgdGhlIGVkZ2Ugc2luY2UgdGhlc2Ugc2l0IGxpZ2h0LW9uLWxpZ2h0LlxuLnFkbmFwcm8tdG9hc3QudG9hc3QtdmFyaWFudC15ZWxsb3cge1xuICAtLXRvYXN0LWJnOiB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LWJnKTtcbiAgLS10b2FzdC10ZXh0OiB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LXRleHQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LWJvcmRlcik7XG59XG4ucWRuYXByby10b2FzdC50b2FzdC12YXJpYW50LXJlZCB7XG4gIC0tdG9hc3QtYmc6IHZhcigtLWMtc2lnbmFsLXJlZC1iZyk7XG4gIC0tdG9hc3QtdGV4dDogdmFyKC0tYy10YWctY3JpdGljYWwtdGV4dCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtY2hpcC1yZWQtMi1iZyk7XG59XG4ucWRuYXByby10b2FzdC50b2FzdC12aXNpYmxlLCAucWRuYXByby10b2FzdFt2aXNpYmxlXSB7XG4gIG9wYWNpdHk6IDE7XG59XG4ucWRuYXByby10b2FzdC50b2FzdC12aXNpYmxlLnRvYXN0LXBvc2l0aW9uLXRvcCwgLnFkbmFwcm8tdG9hc3RbdmlzaWJsZV0udG9hc3QtcG9zaXRpb24tdG9wIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTEwMCUpO1xufVxuLnFkbmFwcm8tdG9hc3QudG9hc3QtdmlzaWJsZS50b2FzdC1wb3NpdGlvbi1ib3R0b20sIC5xZG5hcHJvLXRvYXN0W3Zpc2libGVdLnRvYXN0LXBvc2l0aW9uLWJvdHRvbSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10b2FzdCB7XG4gIGJveC1zaGFkb3c6IDAgNnB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjQpLCAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRvYXN0LnRvYXN0LXZhcmlhbnQtZGFyayB7XG4gIC0tdG9hc3QtYmc6ICNmMGYxZjI7XG4gIC0tdG9hc3QtdGV4dDogIzBiMGIwZDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRvYXN0LnRvYXN0LXZhcmlhbnQtcHVycGxlIHtcbiAgLS10b2FzdC1iZzogI2E1YWNmZjtcbiAgLS10b2FzdC10ZXh0OiAjMGIwYjBkO1xufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAucWRuYXByby10b2FzdCB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxMjBtcyBsaW5lYXI7XG4gIH1cbiAgLnFkbmFwcm8tdG9hc3QudG9hc3QtcG9zaXRpb24tdG9wIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtMTAwJSkgIWltcG9ydGFudDtcbiAgfVxuICAucWRuYXByby10b2FzdC50b2FzdC1wb3NpdGlvbi1ib3R0b20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL3RvZ2dsZS9fdG9nZ2xlLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi5xZG5hcHJvLXRvZ2dsZSB7XG4gIC0tdGctYmc6IHZhcigtLWMtZ3JleS0zMDApO1xuICAtLXRnLWJnLWFjdGl2ZTogdmFyKC0tYy1hY3Rpb24tNTAwKTtcbiAgLS10Zy1iZy1ob3ZlcjogdmFyKC0tYy1ncmV5LTQwMCk7XG4gIC0tdGctYmctYWN0aXZlLWhvdmVyOiB2YXIoLS1jLWFjdGlvbi02MDApO1xuICAtLXRnLXRodW1iOiAjZmZmZmZmO1xuICAtLXRnLWZvY3VzLXJpbmc6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIC0tdGctZm9jdXMtZ2xvdzogcmdiYSg3MCwgODIsIDI0MywgMC4yNSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS10Zy1iZyk7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBmbGV4LXNocmluazogMDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxODBtcyBlYXNlLW91dDtcbn1cbi5xZG5hcHJvLXRvZ2dsZSAudG9nZ2xlLXRodW1iIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tdGctdGh1bWIpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIHJnYmEoMCwgMCwgMCwgMC4wNCksIDAgM3B4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpLCAwIDNweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA2KTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xuICB0cmFuc2l0aW9uOiBsZWZ0IDMyMG1zIGN1YmljLWJlemllcigwLjM0LCAxLjM1LCAwLjY0LCAxKSwgdHJhbnNmb3JtIDIwMG1zIGN1YmljLWJlemllcigwLjM0LCAxLjM1LCAwLjY0LCAxKSwgYmFja2dyb3VuZC1jb2xvciAxODBtcyBlYXNlLW91dDtcbn1cbi5xZG5hcHJvLXRvZ2dsZS50b2dnbGUtYWN0aXZlIC50b2dnbGUtdGh1bWIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7XG59XG4ucWRuYXByby10b2dnbGUudG9nZ2xlLXNpemUtYXZlcmFnZSB7XG4gIHdpZHRoOiA1MXB4O1xuICBoZWlnaHQ6IDMxcHg7XG59XG4ucWRuYXByby10b2dnbGUudG9nZ2xlLXNpemUtYXZlcmFnZSAudG9nZ2xlLXRodW1iIHtcbiAgd2lkdGg6IDI3cHg7XG4gIGhlaWdodDogMjdweDtcbiAgbGVmdDogMnB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG4ucWRuYXByby10b2dnbGUudG9nZ2xlLXNpemUtYXZlcmFnZS50b2dnbGUtYWN0aXZlIC50b2dnbGUtdGh1bWIge1xuICBsZWZ0OiAyMnB4O1xufVxuLnFkbmFwcm8tdG9nZ2xlLnRvZ2dsZS1zaXplLXNtYWxsIHtcbiAgd2lkdGg6IDM3cHg7XG4gIGhlaWdodDogMjJweDtcbn1cbi5xZG5hcHJvLXRvZ2dsZS50b2dnbGUtc2l6ZS1zbWFsbCAudG9nZ2xlLXRodW1iIHtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbiAgbGVmdDogMnB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG4ucWRuYXByby10b2dnbGUudG9nZ2xlLXNpemUtc21hbGwudG9nZ2xlLWFjdGl2ZSAudG9nZ2xlLXRodW1iIHtcbiAgbGVmdDogMTdweDtcbn1cbi5xZG5hcHJvLXRvZ2dsZS50b2dnbGUtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tdGctYmctYWN0aXZlKTtcbn1cbi5xZG5hcHJvLXRvZ2dsZTpob3Zlcjpub3QoLnRvZ2dsZS1kaXNhYmxlZCk6bm90KC50b2dnbGUtYWN0aXZlKSwgLnFkbmFwcm8tdG9nZ2xlLmZvcmNlLWhvdmVyOm5vdCgudG9nZ2xlLWRpc2FibGVkKTpub3QoLnRvZ2dsZS1hY3RpdmUpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tdGctYmctaG92ZXIpO1xufVxuLnFkbmFwcm8tdG9nZ2xlOmhvdmVyOm5vdCgudG9nZ2xlLWRpc2FibGVkKS50b2dnbGUtYWN0aXZlLCAucWRuYXByby10b2dnbGUuZm9yY2UtaG92ZXI6bm90KC50b2dnbGUtZGlzYWJsZWQpLnRvZ2dsZS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS10Zy1iZy1hY3RpdmUtaG92ZXIpO1xufVxuLnFkbmFwcm8tdG9nZ2xlOmFjdGl2ZTpub3QoLnRvZ2dsZS1kaXNhYmxlZCkgLnRvZ2dsZS10aHVtYiwgLnFkbmFwcm8tdG9nZ2xlLmZvcmNlLXByZXNzZWQ6bm90KC50b2dnbGUtZGlzYWJsZWQpIC50b2dnbGUtdGh1bWIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGVYKDEuMTUpO1xufVxuLnFkbmFwcm8tdG9nZ2xlOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5xZG5hcHJvLXRvZ2dsZTpmb2N1cy12aXNpYmxlLCAucWRuYXByby10b2dnbGUuZm9yY2UtZm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tdGctZm9jdXMtcmluZyksIDAgMCAwIDZweCB2YXIoLS10Zy1mb2N1cy1nbG93KTtcbn1cbi5xZG5hcHJvLXRvZ2dsZS50b2dnbGUtZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tdG9nZ2xlLnRvZ2dsZS1kaXNhYmxlZDpub3QoLnRvZ2dsZS1hY3RpdmUpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwKTtcbn1cbi5xZG5hcHJvLXRvZ2dsZS50b2dnbGUtZGlzYWJsZWQudG9nZ2xlLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRvZ2dsZSB7XG4gIC0tdGctYmc6ICM1NjViNjY7XG4gIC0tdGctYmctYWN0aXZlOiAjNDY1MmYzO1xuICAtLXRnLWJnLWhvdmVyOiAjNmI3MjgwO1xuICAtLXRnLWJnLWFjdGl2ZS1ob3ZlcjogIzVhNjZmZjtcbiAgLS10Zy10aHVtYjogI2UxZTNlNjtcbiAgLS10Zy1mb2N1cy1yaW5nOiAjYTVhY2ZmO1xuICAtLXRnLWZvY3VzLWdsb3c6IHJnYmEoNzAsIDgyLCAyNDMsIDAuNCk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10b2dnbGUudG9nZ2xlLWRpc2FibGVkOm5vdCgudG9nZ2xlLWFjdGl2ZSkge1xuICBiYWNrZ3JvdW5kOiAjNDA0NDRkO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdG9nZ2xlLnRvZ2dsZS1kaXNhYmxlZC50b2dnbGUtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogIzQwNDQ0ZDtcbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL3Rvb2xiYXItYWN0aW9uLWJ0bi9fYWN0aW9uLWJ0bi1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4ucWRuYXByby1hY3Rpb24tYnRuIHtcbiAgLS1hYi1iZzogdHJhbnNwYXJlbnQ7XG4gIC0tYWItYmctaG92ZXI6IHZhcigtLWMtZ3JleS01MCk7XG4gIC0tYWItYmctYWN0aXZlOiAjZTZlOWZmO1xuICAtLWFiLWJnLWFjdGl2ZS1ob3ZlcjogdmFyKC0tYy1ib3JkZXItdHJlZS1icmlnaHQpO1xuICAtLWFiLWljb246IHZhcigtLWMtZ3JleS05NTApO1xuICAtLWFiLWljb24tYWN0aXZlOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAtLWFiLXVuZGVybGluZTogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgLS1hYi1mb2N1cy1yaW5nOiB2YXIoLS1jLWdyZXktOTUwKTtcbiAgLS1hYi1mb2N1cy1nbG93OiByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbiAgLS1hYi1kaXNhYmxlZC1iZzogdmFyKC0tYy1ncmV5LTUwKTtcbiAgLS1hYi1kaXNhYmxlZC1pY29uOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpO1xuICAtLWFiLWFjdGl2ZS1saW5lLXdpZHRoOiAxNnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFiLWJnKTtcbiAgY29sb3I6IHZhcigtLWFiLWljb24pO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBmbGV4LXNocmluazogMDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLW91dCwgY29sb3IgMTIwbXMgZWFzZS1vdXQ7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xufVxuLnFkbmFwcm8tYWN0aW9uLWJ0biBxZG5hcHJvLWljb24sXG4ucWRuYXByby1hY3Rpb24tYnRuIC5hY3Rpb24tYnRuLWljb24sXG4ucWRuYXByby1hY3Rpb24tYnRuIC5hY3Rpb24tYnRuLWNoZXZyb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5xZG5hcHJvLWFjdGlvbi1idG4gc3ZnIHtcbiAgZmlsbDogY3VycmVudENvbG9yO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnFkbmFwcm8tYWN0aW9uLWJ0biAuYWN0aW9uLWJ0bi1pY29uLXdyYXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby1hY3Rpb24tYnRuIC5hY3Rpb24tYnRuLWRvdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMnB4O1xuICByaWdodDogLTJweDtcbiAgd2lkdGg6IDhweDtcbiAgaGVpZ2h0OiA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy13YXJuLXJlZC01MDApO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMS41cHggdmFyKC0tYWItZG90LXJpbmcsICNmZmZmZmYpO1xufVxuLnFkbmFwcm8tYWN0aW9uLWJ0bjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogNTAlO1xuICB3aWR0aDogdmFyKC0tYWItYWN0aXZlLWxpbmUtd2lkdGgpO1xuICBoZWlnaHQ6IDJweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYWItdW5kZXJsaW5lKTtcbiAgYm9yZGVyLXJhZGl1czogMXB4IDFweCAwIDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSBzY2FsZVgoMCk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDI2MG1zIGN1YmljLWJlemllcigwLjM0LCAxLjM1LCAwLjY0LCAxKSwgb3BhY2l0eSAxODBtcyBlYXNlLW91dDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby1hY3Rpb24tYnRuLmFjdGlvbi1idG4tYWN0aXZlOjphZnRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSBzY2FsZVgoMSk7XG4gIG9wYWNpdHk6IDE7XG59XG4ucWRuYXByby1hY3Rpb24tYnRuW2Rpc2FibGVkXS5hY3Rpb24tYnRuLWFjdGl2ZTo6YWZ0ZXIsIC5xZG5hcHJvLWFjdGlvbi1idG4uYWN0aW9uLWJ0bi1kaXNhYmxlZC5hY3Rpb24tYnRuLWFjdGl2ZTo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hYi1kaXNhYmxlZC1pY29uKTtcbiAgb3BhY2l0eTogMC42O1xufVxuLnFkbmFwcm8tYWN0aW9uLWJ0bi5hY3Rpb24tYnRuLXNoYXBlLXNxdWFyZS5hY3Rpb24tYnRuLXNpemUtZGVmYXVsdCB7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIG1pbi13aWR0aDogNDBweDtcbn1cbi5xZG5hcHJvLWFjdGlvbi1idG4uYWN0aW9uLWJ0bi1zaGFwZS1zcXVhcmUuYWN0aW9uLWJ0bi1zaXplLWRlZmF1bHQgcWRuYXByby1pY29uLFxuLnFkbmFwcm8tYWN0aW9uLWJ0bi5hY3Rpb24tYnRuLXNoYXBlLXNxdWFyZS5hY3Rpb24tYnRuLXNpemUtZGVmYXVsdCAuYWN0aW9uLWJ0bi1pY29uIHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbn1cbi5xZG5hcHJvLWFjdGlvbi1idG4uYWN0aW9uLWJ0bi1zaGFwZS1zcXVhcmUuYWN0aW9uLWJ0bi1zaXplLXNtYWxsIHtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgbWluLXdpZHRoOiAyOHB4O1xuICAtLWFiLWFjdGl2ZS1saW5lLXdpZHRoOiAxMnB4O1xufVxuLnFkbmFwcm8tYWN0aW9uLWJ0bi5hY3Rpb24tYnRuLXNoYXBlLXNxdWFyZS5hY3Rpb24tYnRuLXNpemUtc21hbGwgcWRuYXByby1pY29uLFxuLnFkbmFwcm8tYWN0aW9uLWJ0bi5hY3Rpb24tYnRuLXNoYXBlLXNxdWFyZS5hY3Rpb24tYnRuLXNpemUtc21hbGwgLmFjdGlvbi1idG4taWNvbiB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG59XG4ucWRuYXByby1hY3Rpb24tYnRuLmFjdGlvbi1idG4tc2hhcGUtc3F1YXJlLmFjdGlvbi1idG4tc2l6ZS1zbWFsbDo6YWZ0ZXIge1xuICBib3R0b206IDA7XG4gIGhlaWdodDogMS41cHg7XG59XG4ucWRuYXByby1hY3Rpb24tYnRuLmFjdGlvbi1idG4tc2hhcGUtdGhpbi5hY3Rpb24tYnRuLXNpemUtZGVmYXVsdCB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIG1pbi13aWR0aDogMjBweDtcbiAgLS1hYi1hY3RpdmUtbGluZS13aWR0aDogMTJweDtcbn1cbi5xZG5hcHJvLWFjdGlvbi1idG4uYWN0aW9uLWJ0bi1zaGFwZS10aGluLmFjdGlvbi1idG4tc2l6ZS1kZWZhdWx0IHFkbmFwcm8taWNvbixcbi5xZG5hcHJvLWFjdGlvbi1idG4uYWN0aW9uLWJ0bi1zaGFwZS10aGluLmFjdGlvbi1idG4tc2l6ZS1kZWZhdWx0IC5hY3Rpb24tYnRuLWljb24ge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xufVxuLnFkbmFwcm8tYWN0aW9uLWJ0bi5hY3Rpb24tYnRuLXNoYXBlLXRoaW4uYWN0aW9uLWJ0bi1zaXplLXNtYWxsIHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjhweDtcbiAgbWluLXdpZHRoOiAyMHB4O1xuICAtLWFiLWFjdGl2ZS1saW5lLXdpZHRoOiAxMHB4O1xufVxuLnFkbmFwcm8tYWN0aW9uLWJ0bi5hY3Rpb24tYnRuLXNoYXBlLXRoaW4uYWN0aW9uLWJ0bi1zaXplLXNtYWxsIHFkbmFwcm8taWNvbixcbi5xZG5hcHJvLWFjdGlvbi1idG4uYWN0aW9uLWJ0bi1zaGFwZS10aGluLmFjdGlvbi1idG4tc2l6ZS1zbWFsbCAuYWN0aW9uLWJ0bi1pY29uIHtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbn1cbi5xZG5hcHJvLWFjdGlvbi1idG4uYWN0aW9uLWJ0bi1zaGFwZS10aGluLmFjdGlvbi1idG4tc2l6ZS1zbWFsbDo6YWZ0ZXIge1xuICBib3R0b206IDA7XG4gIGhlaWdodDogMS41cHg7XG59XG4ucWRuYXByby1hY3Rpb24tYnRuLmFjdGlvbi1idG4taGFzLWNoZXZyb24uYWN0aW9uLWJ0bi1zaGFwZS1zcXVhcmUuYWN0aW9uLWJ0bi1zaXplLWRlZmF1bHQge1xuICB3aWR0aDogNjBweDtcbn1cbi5xZG5hcHJvLWFjdGlvbi1idG4uYWN0aW9uLWJ0bi1oYXMtY2hldnJvbi5hY3Rpb24tYnRuLXNoYXBlLXNxdWFyZS5hY3Rpb24tYnRuLXNpemUtc21hbGwge1xuICB3aWR0aDogYXV0bztcbiAgbWluLXdpZHRoOiA0NHB4O1xuICBwYWRkaW5nOiAwIDRweDtcbn1cbi5xZG5hcHJvLWFjdGlvbi1idG4gLmFjdGlvbi1idG4tY2hldnJvbiB7XG4gIG9wYWNpdHk6IDAuNztcbn1cbi5xZG5hcHJvLWFjdGlvbi1idG4uYWN0aW9uLWJ0bi1oYXMtY2hldnJvbiAuYWN0aW9uLWJ0bi1jaGV2cm9uIHtcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbn1cbi5xZG5hcHJvLWFjdGlvbi1idG4uYWN0aW9uLWJ0bi10eXBlLXRhYmxlIHtcbiAgLS1hYi1iZy1ob3ZlcjogdmFyKC0tYy1ib3JkZXItY2FyZCk7XG59XG4ucWRuYXByby1hY3Rpb24tYnRuLmFjdGlvbi1idG4tY29sb3ItaGlnaGxpZ2h0IHtcbiAgLS1hYi1pY29uOiB2YXIoLS1jLWFjdGlvbi01MDApO1xuICAtLWFiLWJnLWFjdGl2ZTogI2U2ZTlmZjtcbiAgLS1hYi1iZy1hY3RpdmUtaG92ZXI6IHZhcigtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0KTtcbiAgLS1hYi1pY29uLWFjdGl2ZTogdmFyKC0tYy1hY3Rpb24tNTAwKTtcbiAgLS1hYi11bmRlcmxpbmU6IHZhcigtLWMtYWN0aW9uLTUwMCk7XG4gIC0tYWItZm9jdXMtcmluZzogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cbi5xZG5hcHJvLWFjdGlvbi1idG4uYWN0aW9uLWJ0bi1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hYi1iZy1hY3RpdmUpO1xuICBjb2xvcjogdmFyKC0tYWItaWNvbi1hY3RpdmUpO1xufVxuLnFkbmFwcm8tYWN0aW9uLWJ0bjpob3Zlcjpub3QoW2Rpc2FibGVkXSk6bm90KC5hY3Rpb24tYnRuLWFjdGl2ZSkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hYi1iZy1ob3Zlcik7XG59XG4ucWRuYXByby1hY3Rpb24tYnRuOmhvdmVyOm5vdChbZGlzYWJsZWRdKS5hY3Rpb24tYnRuLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFiLWJnLWFjdGl2ZS1ob3Zlcik7XG59XG4ucWRuYXByby1hY3Rpb24tYnRuOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLCAwLCAwLCAwLjE1KSwgcmdiYSgwLCAwLCAwLCAwLjE1KSk7XG59XG4ucWRuYXByby1hY3Rpb24tYnRuOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5xZG5hcHJvLWFjdGlvbi1idG46Zm9jdXMtdmlzaWJsZSwgLnFkbmFwcm8tYWN0aW9uLWJ0bi5mb3JjZS1mb2N1cyB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1hYi1mb2N1cy1yaW5nKTtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDRweCB2YXIoLS1hYi1mb2N1cy1nbG93KTtcbn1cbi5xZG5hcHJvLWFjdGlvbi1idG4uZm9yY2UtaG92ZXI6bm90KFtkaXNhYmxlZF0pOm5vdCguYWN0aW9uLWJ0bi1hY3RpdmUpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYWItYmctaG92ZXIpO1xufVxuLnFkbmFwcm8tYWN0aW9uLWJ0bi5mb3JjZS1ob3Zlcjpub3QoW2Rpc2FibGVkXSkuYWN0aW9uLWJ0bi1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hYi1iZy1hY3RpdmUtaG92ZXIpO1xufVxuLnFkbmFwcm8tYWN0aW9uLWJ0bi5mb3JjZS1wcmVzc2VkOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2JhKDAsIDAsIDAsIDAuMTUpLCByZ2JhKDAsIDAsIDAsIDAuMTUpKTtcbn1cbi5xZG5hcHJvLWFjdGlvbi1idG5bZGlzYWJsZWRdLCAucWRuYXByby1hY3Rpb24tYnRuLmFjdGlvbi1idG4tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hYi1kaXNhYmxlZC1iZykgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWFiLWRpc2FibGVkLWljb24pICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tYWN0aW9uLWJ0bltkaXNhYmxlZF0uYWN0aW9uLWJ0bi1hY3RpdmUsIC5xZG5hcHJvLWFjdGlvbi1idG4uYWN0aW9uLWJ0bi1kaXNhYmxlZC5hY3Rpb24tYnRuLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFiLWJnLWFjdGl2ZSkgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWFiLWRpc2FibGVkLWljb24pICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYWN0aW9uLWJ0biB7XG4gIC0tYWItYmc6IHRyYW5zcGFyZW50O1xuICAtLWFiLWJnLWhvdmVyOiAjNTY1YjY2O1xuICAtLWFiLWJnLWFjdGl2ZTogIzJhMmQ1MjtcbiAgLS1hYi1iZy1hY3RpdmUtaG92ZXI6ICMzYTNmNmI7XG4gIC0tYWItaWNvbjogI2UxZTNlNjtcbiAgLS1hYi1pY29uLWFjdGl2ZTogI2E1YWNmZjtcbiAgLS1hYi11bmRlcmxpbmU6ICNhNWFjZmY7XG4gIC0tYWItZm9jdXMtcmluZzogI2UxZTNlNjtcbiAgLS1hYi1mb2N1cy1nbG93OiByZ2JhKDcwLCA4MiwgMjQzLCAwLjQpO1xuICAtLWFiLWRpc2FibGVkLWJnOiAjNDA0NDRkO1xuICAtLWFiLWRpc2FibGVkLWljb246ICM2YjcyODA7XG4gIC0tYWItZG90LXJpbmc6ICMyZTMwMzY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpb24tYnRuLmFjdGlvbi1idG4tdHlwZS10YWJsZSB7XG4gIC0tYWItYmctaG92ZXI6ICM0MDQ0NGQ7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpb24tYnRuLmFjdGlvbi1idG4tY29sb3ItaGlnaGxpZ2h0IHtcbiAgLS1hYi1pY29uOiAjYTVhY2ZmO1xuICAtLWFiLWJnLWhvdmVyOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjE4KTtcbiAgLS1hYi1iZy1hY3RpdmU6ICM0NjUyZjM7XG4gIC0tYWItYmctYWN0aXZlLWhvdmVyOiAjNWE2NmZmO1xuICAtLWFiLWljb24tYWN0aXZlOiAjZmZmZmZmO1xuICAtLWFiLXVuZGVybGluZTogI2ZmZmZmZjtcbiAgLS1hYi1mb2N1cy1yaW5nOiAjYTVhY2ZmO1xufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvdG9vbHRpcC9fdG9vbHRpcC1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4ucWRuYXByby10b29sdGlwIHtcbiAgLS10dC1iZzogdmFyKC0tYy1ncmV5LTMwMCk7XG4gIC0tdHQtYm9yZGVyOiB2YXIoLS1jLWdyZXktMzAwKTtcbiAgLS10dC10ZXh0OiB2YXIoLS1jLWdyZXktOTUwKTtcbiAgLS10dC10aXRsZTogdmFyKC0tYy1ncmV5LTk1MCk7XG4gIC0tdHQtcG9pbnRlci1zaXplOiA4cHg7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiAwO1xuICBwYWRkaW5nOiAwIDhweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdHQtYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS10dC1iZyk7XG4gIGNvbG9yOiB2YXIoLS10dC10ZXh0KTtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNDAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKDEyLCAxMiwgMTMsIDAuMDUpO1xuICBtYXgtd2lkdGg6IDMyMHB4O1xufVxuLnFkbmFwcm8tdG9vbHRpcFtoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogd3JhcCAoMDUuMDguMjAyNikg4oCUIGVlbiBsYW5nZXJlIHRla3N0IG92ZXIgbWVlcmRlcmUgcmVnZWxzLlxuICAgV0FBUk9NIGRpdCBub2RpZyB3YXM6IGhpZXJib3ZlbiBzdGFhbiBgd2hpdGUtc3BhY2U6IG5vd3JhcGAgZW4gYG1heC13aWR0aDogMzIwcHhgXG4gICBzYW1lbiwgZW4gZGFuIHdpbnQgbm93cmFwOiBkZSB0ZWtzdCBicmVla3QgbmlldCBhZiBtYWFyIGxvb3B0IGdld29vbiBidWl0ZW4gZGllXG4gICAzMjBweCBkb29yLCB0b3QgYnVpdGVuIGhldCB2ZW5zdGVyLiBHZW1ldGVuIG1ldCBlZW4gd2FhcnNjaHV3aW5nc3Rla3N0IHZhbiA3OSB0ZWtlbnNcbiAgIGluIGhldCBkb2N1bWVudGVudmVuc3RlciB2YW4gZWVuIHRha2VubGlqc3Q6IGRlIHRvb2x0aXAgd2FzIDQ3NHB4IGJyZWVkIGVuIGxpZXAgYWFuXG4gICBkZSByZWNodGVya2FudCB2YW4gaGV0IHNjaGVybSBhZi5cbiAgIFN0YW5kYWFyZCBibGlqZnQgbm93cmFwLCBkdXMgZ2VlbiBlbmtlbGUgYmVzdGFhbmRlIHRvb2x0aXAgdmVyYW5kZXJ0IHZhbiB2b3JtOyBkZXplXG4gICBrbGFzc2UgaXMgZXIgdm9vciB0b29sdGlwcyBkaWUgZWVuIGhlbGUgemluIHppam4gaW4gcGxhYXRzIHZhbiBlZW4gbGFiZWwuXG4gICBgdGV4dC1hbGlnbjogbGVmdGAgd2FudCBnZWNlbnRyZWVyZGUgbG9vcGVuZGUgdGVrc3QgbGVlc3Qgc2xlY2h0LCBlbiBkZSBiYXNpc3JlZ2VsXG4gICBjZW50cmVlcnQgKGFsaWduLWl0ZW1zOiBjZW50ZXIgb3AgZGUgZmxleGtvbG9tKS4gKi9cbi5xZG5hcHJvLXRvb2x0aXAudG9vbHRpcC13cmFwIHtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xufVxuLnFkbmFwcm8tdG9vbHRpcC50b29sdGlwLXdyYXAudG9vbHRpcC1zbWFsbCB7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG59XG4ucWRuYXByby10b29sdGlwLnRvb2x0aXAtYmlnIHtcbiAgcGFkZGluZzogNHB4IDhweDtcbn1cbi5xZG5hcHJvLXRvb2x0aXAudG9vbHRpcC1zbWFsbCB7XG4gIHBhZGRpbmc6IDAgOHB4O1xufVxuLnFkbmFwcm8tdG9vbHRpcCAudG9vbHRpcC10aXRsZSB7XG4gIGNvbG9yOiB2YXIoLS10dC10aXRsZSk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5xZG5hcHJvLXRvb2x0aXAgLnRvb2x0aXAtYm9keSB7XG4gIGNvbG9yOiB2YXIoLS10dC10ZXh0KTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnFkbmFwcm8tdG9vbHRpcC50b29sdGlwLWJpZyAudG9vbHRpcC1ib2R5IHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbn1cbi5xZG5hcHJvLXRvb2x0aXAudG9vbHRpcC1zbWFsbCAudG9vbHRpcC1ib2R5IHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbn1cbi5xZG5hcHJvLXRvb2x0aXAudG9vbHRpcC1mbG9hdGluZy50b29sdGlwLWJpZyAudG9vbHRpcC1ib2R5IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbn1cbi5xZG5hcHJvLXRvb2x0aXAudG9vbHRpcC1wdXJwbGUge1xuICAtLXR0LWJnOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAtLXR0LWJvcmRlcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgLS10dC10ZXh0OiAjZmZmZmZmO1xuICAtLXR0LXRpdGxlOiAjZmZmZmZmO1xufVxuLnFkbmFwcm8tdG9vbHRpcC50b29sdGlwLXB1cnBsZS1kYXJrIHtcbiAgLy8gUHVycGxlLTYwMCDigJQgdXNlZCBmb3IgdGhlIGNvbGxhcHNlZC1yYWlsIGZseW91dCBsYWJlbHMuIFJlYWRzIHN0cm9uZ2VyXG4gIC8vIHRoYW4gdG9vbHRpcC1wdXJwbGUgKFB1cnBsZS01MDApLCBzbyB0aGUgZmxvYXRpbmcgbGFiZWwga2VlcHMgY29udHJhc3RcbiAgLy8gYWdhaW5zdCBib3RoIGxpZ2h0IGFuZCBkYXJrIHN1cmZhY2VzLlxuICAtLXR0LWJnOiB2YXIoLS1jLXB1cnBsZS03MDApO1xuICAtLXR0LWJvcmRlcjogdmFyKC0tYy1wdXJwbGUtNzAwKTtcbiAgLS10dC10ZXh0OiAjZmZmZmZmO1xuICAtLXR0LXRpdGxlOiAjZmZmZmZmO1xufVxuLnFkbmFwcm8tdG9vbHRpcC50b29sdGlwLWxpZ2h0LXB1cnBsZSB7XG4gIC0tdHQtYmc6ICNlNmU5ZmY7XG4gIC0tdHQtYm9yZGVyOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCk7XG4gIC0tdHQtdGV4dDogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgLS10dC10aXRsZTogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cbi5xZG5hcHJvLXRvb2x0aXAudG9vbHRpcC1uZXV0cmFsLWRhcmsge1xuICAtLXR0LWJnOiB2YXIoLS1jLWdyZXktMzAwKTtcbiAgLS10dC1ib3JkZXI6IHZhcigtLWMtZ3JleS0zMDApO1xuICAtLXR0LXRleHQ6IHZhcigtLWMtZ3JleS05NTApO1xuICAtLXR0LXRpdGxlOiB2YXIoLS1jLWdyZXktOTUwKTtcbn1cbi5xZG5hcHJvLXRvb2x0aXAudG9vbHRpcC1uZXV0cmFsLWxpZ2h0IHtcbiAgLS10dC1iZzogdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gIC0tdHQtYm9yZGVyOiB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbiAgLS10dC10ZXh0OiB2YXIoLS1jLWdyZXktNTAwKTtcbiAgLS10dC10aXRsZTogdmFyKC0tYy1ncmV5LTUwMCk7XG59XG4ucWRuYXByby10b29sdGlwLnRvb2x0aXAtcG9pbnRlcjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogdmFyKC0tdHQtcG9pbnRlci1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS10dC1wb2ludGVyLXNpemUpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS10dC1iZyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXR0LWJvcmRlcik7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tdG9vbHRpcC50b29sdGlwLXBvaW50ZXIudG9vbHRpcC1wb3NpdGlvbi10b3A6OmJlZm9yZSB7XG4gIGJvdHRvbTogY2FsYyh2YXIoLS10dC1wb2ludGVyLXNpemUpICogLTAuNSAtIDFweCk7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ucWRuYXByby10b29sdGlwLnRvb2x0aXAtcG9pbnRlci50b29sdGlwLXBvc2l0aW9uLWJvdHRvbTo6YmVmb3JlIHtcbiAgdG9wOiBjYWxjKHZhcigtLXR0LXBvaW50ZXItc2l6ZSkgKiAtMC41IC0gMXB4KTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ucWRuYXByby10b29sdGlwLnRvb2x0aXAtcG9pbnRlci50b29sdGlwLXBvc2l0aW9uLWxlZnQ6OmJlZm9yZSB7XG4gIHJpZ2h0OiBjYWxjKHZhcigtLXR0LXBvaW50ZXItc2l6ZSkgKiAtMC41IC0gMXB4KTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnFkbmFwcm8tdG9vbHRpcC50b29sdGlwLXBvaW50ZXIudG9vbHRpcC1wb3NpdGlvbi1yaWdodDo6YmVmb3JlIHtcbiAgbGVmdDogY2FsYyh2YXIoLS10dC1wb2ludGVyLXNpemUpICogLTAuNSAtIDFweCk7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ucWRuYXByby10b29sdGlwIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjkyKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxMjBtcyBlYXNlLW91dCwgdHJhbnNmb3JtIDEyMG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8tdG9vbHRpcC50b29sdGlwLXZpc2libGUge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xufVxuLnFkbmFwcm8tdG9vbHRpcDpub3QoLnRvb2x0aXAtbWFuYWdlZCkge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IG5vbmU7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRvb2x0aXAge1xuICAtLXR0LWJnOiAjNDA0NDRkO1xuICAtLXR0LWJvcmRlcjogIzQwNDQ0ZDtcbiAgLS10dC10ZXh0OiAjZTFlM2U2O1xuICAtLXR0LXRpdGxlOiAjZTFlM2U2O1xuICBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjMpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdG9vbHRpcC50b29sdGlwLXB1cnBsZSB7XG4gIC0tdHQtYmc6ICMzODQyYzI7XG4gIC0tdHQtYm9yZGVyOiAjMzg0MmMyO1xuICAtLXR0LXRleHQ6ICNmZmZmZmY7XG4gIC0tdHQtdGl0bGU6ICNmZmZmZmY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10b29sdGlwLnRvb2x0aXAtbGlnaHQtcHVycGxlIHtcbiAgLS10dC1iZzogIzJhMmQ1MjtcbiAgLS10dC1ib3JkZXI6ICMzYTNmNmI7XG4gIC0tdHQtdGV4dDogIzhiOTNmZjtcbiAgLS10dC10aXRsZTogIzhiOTNmZjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRvb2x0aXAudG9vbHRpcC1uZXV0cmFsLWRhcmsge1xuICAtLXR0LWJnOiAjNDA0NDRkO1xuICAtLXR0LWJvcmRlcjogIzQwNDQ0ZDtcbiAgLS10dC10ZXh0OiAjZTFlM2U2O1xuICAtLXR0LXRpdGxlOiAjZTFlM2U2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdG9vbHRpcC50b29sdGlwLW5ldXRyYWwtbGlnaHQge1xuICAtLXR0LWJnOiAjMmUzMDM2O1xuICAtLXR0LWJvcmRlcjogIzJlMzAzNjtcbiAgLS10dC10ZXh0OiAjYTZhYWIzO1xuICAtLXR0LXRpdGxlOiAjYTZhYWIzO1xufVxuIiwiLy8gX3RvdWNoLWJ1dHRvbi5zY3NzXG4vL1xuLy8gcWRuYXByby10b3VjaC1idXR0b24gLSBiaWcsIGZpbmdlci1mcmllbmRseSBhY3Rpb24gYnV0dG9uIGZvciB0aGUgUFdBLlxuLy8gVHdvIHZhcmlhbnRzIG9mIHRoZSBzYW1lIGFuYXRvbXkgKGljb24gKyBsYWJlbCArIG9wdGlvbmFsIGNvdW50IGJhZGdlKTpcbi8vXG4vLyAgIHZhcmlhbnQ9XCJncmlkXCIgKGRlZmF1bHQpICBzcXVhcmUtaXNoIHRpbGUsIDIgcGVyIHJvdyBvbiBhIHBob25lXG4vLyAgIHZhcmlhbnQ9XCJyb3dcIiAgICAgICAgICAgICBob3Jpem9udGFsIHN0cmlwLCBmdWxsIHdpZHRoICh0aGUgXCJJbnN0ZWxsaW5nZW5cIiByb3cpXG4vL1xuLy8gTmFtZWQgdG91Y2gtYnV0dG9uIHJhdGhlciB0aGFuIGhvbWUtYnV0dG9uIG9uIHB1cnBvc2UgKEtpbSAyNy4wNy4yMDI2KTpcbi8vIHRoZSBQV0EgaG9tZSBzY3JlZW4gaXMgdGhlIGZpcnN0IGNvbnN1bWVyLCBidXQgbm90aGluZyBpbiBoZXJlIGlzXG4vLyBob21lLXNwZWNpZmljIC0gYW55IFBXQSBzY3JlZW4gdGhhdCBuZWVkcyBhIGxhcmdlIHRhcCB0YXJnZXQgd2l0aCBhblxuLy8gYWN0aXZpdHkgaWNvbiBjYW4gdXNlIGl0LlxuLy9cbi8vIEdFT01FVFJZIChLaW0ncyBicmllZiAyNy4wNy4yMDI2LCBtZWFzdXJlZCBpbiBGaWdtYSBXSVRIT1VUIHRoZSBib3JkZXIpOlxuLy8gICBncmlkICAgaWNvbiA0OHg0OCAgIG1pbi1oZWlnaHQgMTA0cHggICBwYWRkaW5nIDEycHggICBnYXAgOHB4ICAgIGxhYmVsIDE2cHgvNTAwXG4vLyAgIHJvdyAgICBpY29uIDQyeDQyICAgbWluLWhlaWdodCAgNThweCAgIHBhZGRpbmcgIDhweCAgIGdhcCAyNHB4ICAgbGFiZWwgMTZweC81MDBcbi8vXG4vLyBUaGUgYnJpZWZlZCBoZWlnaHRzIGFyZSBjb250ZW50LWJveCBudW1iZXJzOyB0aGlzIGNvbXBvbmVudCBpcyBib3JkZXItYm94XG4vLyAoaG91c2UgYmFzZWxpbmUpIGFuZCBjYXJyaWVzIGEgMXB4IGJvcmRlciwgc28gdGhlIHJlYWwgcmVuZGVyZWQgaGVpZ2h0cyBsYW5kXG4vLyBvbiAxMDZweCBhbmQgNjBweC4gS2ltOiBcIjJweCBob29ndGUgdmVyc2NoaWwgbWFha3QgbWUgbmlldCB6byB2ZWVsIHVpdFwiXG4vLyAoMjcuMDcuMjAyNiksIHNvIHBhZGRpbmcsIGljb24gc2l6ZSBhbmQgZ2FwIGFyZSBrZXB0IEVYQUNUTFkgYXMgYnJpZWZlZCBhbmRcbi8vIHRoZSBoZWlnaHQgaXMgdGhlIHZhbHVlIHRoYXQgZ2l2ZXMuIG1pbi1oZWlnaHQgKG5vdCBoZWlnaHQpIHNvIGEgbGFiZWwgdGhhdFxuLy8gd3JhcHMgaW4gYSBsb25nIHRyYW5zbGF0aW9uIGdyb3dzIHRoZSBidXR0b24gaW5zdGVhZCBvZiBvdmVyZmxvd2luZyBpdC5cbi8vXG4vLyBMYWJlbCBsaW5lLWhlaWdodCBpcyAyNHB4IC0gdGhlIHNhbWUgMTZweC8yNHB4IHBhaXIgdGhlIGJ1dHRvbiBjb21wb25lbnRcbi8vIHVzZXMgZm9yIGl0cyAxNnB4IHR5cGUsIHJhdGhlciB0aGFuIHNxdWVlemluZyB0byAyMHB4IGp1c3QgdG8ga2VlcCB0aGVcbi8vIGhlaWdodCBhdCAxMDQuXG4vL1xuLy8gU1RBVEUgQ09MT1VSUyBmb2xsb3cgdGhlIGJ1dHRvbiBjb21wb25lbnQncyBydWxlOiBlYWNoIHN0YXRlIGlzIG9uZSBzdGVwXG4vLyBkYXJrZXIgb24gdGhlIGdyZXkgcmFtcCB0aGFuIHRoZSBwcmV2aW91cyBvbmUgKHNlZSBfYnV0dG9uLnNjc3Ncbi8vIC5idXR0b24tc3VidGxlOiAjZjBmMWYyIGhvdmVyIC0+ICNlNGU2ZTggYWN0aXZlKS4gSGVyZSwgcGVyIEtpbSwgdGhlIEJPUkRFUlxuLy8gZGFya2VucyBhbG9uZyB3aXRoIHRoZSBzdXJmYWNlIHNvIHRoZSBvdXRsaW5lIG5ldmVyIGRpc2FwcGVhcnMgaW50byB0aGVcbi8vIGhvdmVyIGZpbGw6XG4vLyAgIGlkbGUgICAgIGJnIHdoaXRlICAgICAgICAgYm9yZGVyIGdyZXktMTAwICgjZTdlOWVjKVxuLy8gICBob3ZlciAgICBiZyBncmV5LTEwMCAgICAgIGJvcmRlciBncmV5LTIwMCAoI2QxZDVkYilcbi8vICAgcHJlc3NlZCAgYmcgZ3JleS0yMDAgICAgICBib3JkZXIgZ3JleS0zMDAgKCNjNGM3Y2MpXG4vLyBObyBzY2FsZS90cmFuc2Zvcm0gb24gcHJlc3MgLSB0aGUgYnV0dG9uIGNvbXBvbmVudCBwcmVzc2VzIGJ5IGNvbG91ciBvbmx5LlxuLy9cbi8vIEZPQ1VTIGlzIHRoZSBidXR0b24gY29tcG9uZW50J3MgcmluZyB2ZXJiYXRpbTogMnB4IC0tYnRuLWZvY3VzLXJpbmcgYXRcbi8vIC0ycHggb2Zmc2V0IHBsdXMgYSA0cHggLS1idG4tZm9jdXMtZ2xvdyBoYWxvLlxuLy9cbi8vIERJU0FCTEVEIGlzIHRoZSBidXR0b24gY29tcG9uZW50J3MgZGlzYWJsZWQgcGFsZXR0ZSB2ZXJiYXRpbSAoYmFja2dyb3VuZFxuLy8gI2YwZjFmMiwgY29sb3VyICM4OThlOTksIHRyYW5zcGFyZW50IGJvcmRlciwgbm90LWFsbG93ZWQsIHBvaW50ZXItZXZlbnRzXG4vLyBub25lKSwgcGx1cyBLaW0ncyBhZGRpdGlvbjogdGhlIGljb24gZHJvcHMgdG8gMzAlIG9wYWNpdHkuXG4vL1xuLy8gU2l0cyBvbiBhIGxpZ2h0IGdyZXkgcGFnZSAoLS1jLWJnLXBhZ2UpLCB3aGljaCBpcyB3aHkgaWRsZSBpcyBwdXJlIHdoaXRlXG4vLyB3aXRoIGEgaGFpcmxpbmUgYm9yZGVyIHJhdGhlciB0aGFuIGEgc2hhZG93LlxuXG4ucWRuYXByby10b3VjaC1idXR0b24ge1xuICAgIC0tcXRiLWJnOiB2YXIoLS1jLWJnLWNhcmQsICNmZmZmZmYpO1xuICAgIC0tcXRiLWJnLWhvdmVyOiB2YXIoLS1jLWdyZXktMTAwLCAjZTdlOWVjKTtcbiAgICAtLXF0Yi1iZy1wcmVzc2VkOiB2YXIoLS1jLWdyZXktMjAwLCAjZDFkNWRiKTtcbiAgICAtLXF0Yi1ib3JkZXI6IHZhcigtLWMtZ3JleS0xMDAsICNlN2U5ZWMpO1xuICAgIC0tcXRiLWJvcmRlci1ob3ZlcjogdmFyKC0tYy1ncmV5LTIwMCwgI2QxZDVkYik7XG4gICAgLS1xdGItYm9yZGVyLXByZXNzZWQ6IHZhcigtLWMtZ3JleS0zMDAsICNjNGM3Y2MpO1xuICAgIC0tcXRiLWxhYmVsLWNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSwgIzBiMGIwZCk7XG4gICAgLS1xdGItZGlzYWJsZWQtYmc6IHZhcigtLWMtZ3JleS01MCk7XG4gICAgLS1xdGItZGlzYWJsZWQtY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCk7XG4gICAgLS1idG4tZm9jdXMtcmluZzogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgICAtLWJ0bi1mb2N1cy1nbG93OiByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbiAgICAvLyBQaWxscyAoMTguMDguMjAyNiwgcmVwYWlyIGNhcmQgMTAsIHNlZSAucXRiLXBpbGxzIGJlbG93KSAtIE1JUlJPUiBvZlxuICAgIC8vIHFkbmFwcm8tZ3JpZC10aWxlJ3MgLS1xZ3QtcGlsbC0qIHRva2VucyAoc2FtZSB2YWx1ZXMsIGBxdGItYCBwcmVmaXgpOlxuICAgIC8vIHN0cm9uZyByZXVzZXMgdGhlIFNBTUUgc29saWQgc2lnbmFsLXJlZCBxZG5hcHJvLW51bWJlci1pbmRpY2F0b3ItYmFkZ2VcbiAgICAvLyBgYWxlcnRgIGNvbG91ciB1c2VzICgtLWMtd2Fybi1yZWQtNTAwKSwgbm90IGEgbmV3IHJlZDsgc29mdCBpcyBhIGZsYXRcbiAgICAvLyBsaWdodC1ncmV5IGNoaXAgd2l0aCBhbiBhY3Rpb24tYmx1ZSBpY29uIGFuZCBhIGRhcmsgY291bnQuXG4gICAgLy8gS29yYWFsLCBuaWV0IGhldCB3YWFyc2NodXdpbmdzcm9vZDogS2ltcyBtb2NrdXAgKDE4LjA4LjIwMjYpIGtsZXVydCBkZVxuICAgIC8vIHN0ZXJrZSBwaWwgaW4gZGV6ZWxmZGUgdG9vbiBhbHMgaGV0IFB1bHNlLWhhcnQtYXJ0d29yay4gRXIgYmVzdGFhdCBnZWVuXG4gICAgLy8ga29yYWFsLXRva2VuOyBkaXQgaXMgZGUgZ2VzYW1wbGVkZSB3YWFyZGUgdWl0IGRlIG1vY2t1cC5cbiAgICAtLXF0Yi1waWxsLXN0cm9uZy1iZzogI2U4NzA1ZjtcbiAgICAtLXF0Yi1waWxsLXN0cm9uZy1mZzogI2ZmZmZmZjtcbiAgICAvLyBTaW5kcyBkZSBkZXJkZSBpdGVyYXRpZSB6aWpuIGRpdCBTVElQS0xFVVJFTiwgZ2VlbiB2bGFra2VuIG1lZXIuXG4gICAgLS1xdGItcGlsbC1zb2Z0LWRvdC1iZzogdmFyKC0tYy1hY3Rpb24tNTAwLCAjNDY1MmYzKTtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcXRiLWJnKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1xdGItYm9yZGVyKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTMsIDEycHgpO1xuICAgIGNvbG9yOiB2YXIoLS1xdGItbGFiZWwtY29sb3IpO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mZiwgXCJJbnRlclwiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWYpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZS1vdXQsIGJvcmRlci1jb2xvciAxMjBtcyBlYXNlLW91dCwgY29sb3IgMTIwbXMgZWFzZS1vdXQ7XG59XG5cbi8vIC0tLSBMYWJlbCArIGljb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLnFkbmFwcm8tdG91Y2gtYnV0dG9uIC5xdGItbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIC8vIEEgbGFiZWwgbG9uZ2VyIHRoYW4gdGhlIGJ1dHRvbiBjbGFtcHMgaW5zdGVhZCBvZiBwdXNoaW5nIHRoZSBiYWRnZSBvdXQuXG4gICAgLy8gR3JpZCBjbGFtcHMgdG8gMiBsaW5lcyAodGhlIHRpbGUgZ3Jvd3MpLCByb3cgY2xhbXBzIHRvIDEgLSBhIHJvdyBpcyBhXG4gICAgLy8gZml4ZWQtaGVpZ2h0IHN0cmlwIG5leHQgdG8gYSB0cmFpbGluZyBiYWRnZS5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xufVxuXG4vLyBGbGV4LCBub3QgYmxvY2s6IHRoZSBpY29uIGNoaWxkIGlzIGlubGluZS1ibG9jaywgc28gYSBibG9jayB3cmFwcGVyIHdvdWxkXG4vLyBhZGQgdGhlIGxpbmUtYm94IHN0cnV0IG9uIHRvcCBvZiB0aGUgNDgvNDJweCBpY29uIGFuZCBxdWlldGx5IG1ha2UgdGhlXG4vLyBidXR0b24gYSBmZXcgcGl4ZWxzIHRhbGxlciB0aGFuIHRoZSBnZW9tZXRyeSB0YWJsZSBzYXlzLlxuLnFkbmFwcm8tdG91Y2gtYnV0dG9uIC5xdGItaWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTIwbXMgZWFzZS1vdXQ7XG59XG5cbi8vIFNhbWUgc3RydXQgcmVhc29uaW5nIGFzIC5xdGItaWNvbiAtIHRoZSBiYWRnZSBpcyBpbmxpbmUtYmxvY2suXG4ucWRuYXByby10b3VjaC1idXR0b24gLnF0Yi1iYWRnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xufVxuXG4vLyAtLS0gVmFyaWFudDogZ3JpZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5xZG5hcHJvLXRvdWNoLWJ1dHRvbi5xdGItdmFyaWFudC1ncmlkIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWluLWhlaWdodDogMTA0cHg7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5xZG5hcHJvLXRvdWNoLWJ1dHRvbi5xdGItdmFyaWFudC1ncmlkIC5xdGItbGFiZWwge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAgIGxpbmUtY2xhbXA6IDI7XG59XG5cbi8vIFRvcC1yaWdodCBjb3JuZXIgb2YgdGhlIHRpbGUsIGluc2lkZSB0aGUgcGFkZGluZyBib3ggKEtpbSAyNy4wNy4yMDI2OlxuLy8gXCJyZWNodGVyYm92ZW5ob2VrXCIpLiBOb3Qgb3ZlcmhhbmdpbmcgLSB0aGUgYmFkZ2UgYmVsb25ncyB0byB0aGUgdGlsZSBoZXJlLFxuLy8gdW5saWtlIHFkbmFwcm8tZ3JpZC10aWxlIHdoZXJlIGl0IHN0cmFkZGxlcyB0aGUgb3V0ZXIgY29ybmVyLlxuLnFkbmFwcm8tdG91Y2gtYnV0dG9uLnF0Yi12YXJpYW50LWdyaWQgLnF0Yi1iYWRnZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogOHB4O1xuICAgIHJpZ2h0OiA4cHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgLy8gei1pbmRleCBhZGRlZCAxOC4wOC4yMDI2IGFsb25nc2lkZSAucXRiLXBpbGxzIGJlbG93LCBwdXJlbHkgc28gdGhlXG4gICAgLy8gc3RhY2tpbmcgb3JkZXIgYWdhaW5zdCB0aGUgcGlsbHMgaXMgZGV0ZXJtaW5pc3RpYyAoc2VlIC5xdGItcGlsbHMnXG4gICAgLy8gY29tbWVudCBmb3IgdGhlIFwiY29sbGlzaW9uXCIgcnVsZSkgLSBoYXMgbm8gdmlzdWFsIGVmZmVjdCBvbiBhIHRpbGVcbiAgICAvLyB1c2luZyBvbmx5IHRoZSBiYWRnZSwgc28gdGhlIHBpbGwtZnJlZSB0aWxlIHN0YXlzIHBpeGVsLWlkZW50aWNhbC5cbiAgICB6LWluZGV4OiAxO1xufVxuXG4vLyAtLS0tIFBpbGxzOiBhdHRyaWJ1dGUtZHJpdmVuIHNpZ25hbCBwYWlyLCBzdGFja2VkIHRvcC1yaWdodCAoYWRkZWRcbi8vIDE4LjA4LjIwMjYsIHJlcGFpciBjYXJkIDEwIC0gTUlSUk9SIG9mIHFkbmFwcm8tZ3JpZC10aWxlJ3MgYC5xZ3QtcGlsbHNgLFxuLy8gc2VlIF9ncmlkLXRpbGUuc2NzcyBmb3IgdGhlIHR3aW4gYmxvY2s6IHRoZSBET00gc2hhcGUgaXMgbWlycm9yZWQsIGJ1dCB0aGVcbi8vIFNUWUxJTkcgYmVsb3cgZGVsaWJlcmF0ZWx5IGRpdmVyZ2VzIHNpbmNlIDE4LjA4LjIwMjYgLSBncmlkLXRpbGUgc3RpbGwgaGFzXG4vLyB0aGUgc21hbGwgY29ybmVyIGNoaXBzLCB0b3VjaC1idXR0b24gZm9sbG93cyBLaW0ncyBob21lLXRpbGUgbW9ja3VwKSAtLS0tXG4vL1xuLy8gS2ltcyBtb2NrdXAgKDE4LjA4LjIwMjYsIHR3ZWVkZSBpdGVyYXRpZSBuYSBoYWFyIHNjaGVybXZlcmdlbGlqa2luZyk6IGRlXG4vLyBwaWxsZW4gemlqbiBHRUVOIGhvZWtzdGlja2VydGplcyBtYWFyIGVlbiBlaWdlbiBrb2xvbSBkaWUgZGUgcmVjaHRlcmhlbGZ0XG4vLyB2YW4gZGUgdGVnZWwgdnVsdC4gSWNvb24gKyBsYWJlbCBzY2h1aXZlbiBuYWFyIGxpbmtzLCBlbGtlIHBpbCBpcyBlZW5cbi8vIGdyb3RlIGFmZ2Vyb25kZSBiYWxrIG1ldCBoZXQgaWNvb24gbGlua3MgZW4gaGV0IGNpamZlciByZWNodHMuIERlIGVlcnN0ZVxuLy8gdWl0dm9lcmluZyAobWluaS1iYWRnZXMgcmVjaHRzYm92ZW4pIGlzIHByZWNpZXMgd2F0IHplIGFma2V1cmRlLlxuLy9cbi8vIEhJRVJBUkNIWSBibGlqZnQgaGV0IHB1bnQ6IHN0cm9uZyA9IGdldnVsZGUga29yYWFsLWJhbGsgZGllIHNjaHJlZXV3dFxuLy8gKFB1bHNlOiBrbGFhcnN0YWFuZGUgc3RhcHBlbiksIHNvZnQgPSBzdGlsIGdyaWpzIHZsYWsgZGF0IGZsdWlzdGVydFxuLy8gKHNvY2lhbGUgdXBkYXRlcyksIHN0cm9uZyBib3ZlbiBzb2Z0LlxuLy9cbi8vIERlIHRlZ2VsLWxheW91dCBibGlqZnQgT05HRU1PRUlEOiBkaXQgaXMgZWVuIG92ZXJsYXkgaW4gZGUgaG9laywgZ2VlblxuLy8gaGVyc2NoaWtraW5nLiAoRGUgdm9yaWdlIGl0ZXJhdGllIGhhZCBkYWFyIGVlbiBob3N0LWtsYXNzZSB2b29yIG5vZGlnO1xuLy8gZGllIGlzIG1ldCBkZSBiYWxrZW4gbWVlZ2VnYWFuLilcbi8vIOKaoO+4jyBERVJERSBpdGVyYXRpZSAoS2ltIDE4LjA4LjIwMjYpLiBFZXJzdCBtaW5pLWNoaXBzIGluIGRlIGhvZWsgKGFmZ2VrZXVyZDpcbi8vIHRlIGtsZWluKSwgdG9lbiBncm90ZSBiYWxrZW4gbWV0IGNpamZlcnMgbmFhc3QgaGV0IGljb29uIChhZmdla2V1cmQ6IHRlIHZlZWxcbi8vIGdld2ljaHQgdm9vciBlZW4gaG9tZS10ZWdlbCkuIEVpbmR2b3JtIHZvbGdlbnMgaGFhciBtb2NrdXA6IGhldCBpY29vbiB6ZWxmXG4vLyBtZXQgZWVuIGdla2xldXJkZSBTVElQIGVyb3AsIGdlc3RhcGVsZCBpbiBkZSByZWNodGVyYm92ZW5ob2VrLCBlbiBkZSB0ZWdlbFxuLy8gdmVyZGVyIG9uZ2Vtb2VpZCAtIGhhcnQgZW4gbGFiZWwgYmxpanZlbiBnZXdvb24gZ2VjZW50cmVlcmQuIEVyIHN0YWF0IGdlZW5cbi8vIGNpamZlciBtZWVyOiBvcCBkZSBob21lIGlzIGRlIHZyYWFnIFwiaXMgZXIgaWV0cz9cIiwgbmlldCBcImhvZXZlZWwgcHJlY2llc1wiIC1cbi8vIGRhdCBnZXRhbCBzdGFhdCBvcCBoZXQgc2NoZXJtIHdhYXIgamUgaGVlbiBnYWF0LiBEZSBjb3VudCBibGlqZnQgd2VsIGluIGRlXG4vLyBET00gdm9vciBzY2hlcm1sZXplcnMgKC5xdGItcGlsbC1jb3VudCBoaWVyb25kZXIpLlxuLy9cbi8vIEhJRVJBUkNISUUgeml0IG51IGluIGRlIHN0aXBrbGV1cjoga29yYWFsID0gd2VyayAoa2xhYXJzdGFhbmRlIHN0YXBwZW4sXG4vLyBzY2hyZWV1d3QpLCBibGF1dyA9IHNvY2lhYWwgKHVwZGF0ZXMsIGZsdWlzdGVydCkuIEhldCBpY29vbiB6ZWxmIGlzIGluXG4vLyBiZWlkZSBnZXZhbGxlbiBnZXdvb24gZGUgbGFiZWxrbGV1ci5cbi8vXG4vLyBHUklEIE9OTFksIHplbGZkZSByZWRlbiBhbHMgdm9vcmhlZW46IHZhcmlhbnQ9XCJyb3dcIiBob3VkdCB6aWpuIGJhZGdlIGluIGRlXG4vLyBmbG93IHpvZGF0IGVlbiBsYW5nIGxhYmVsIGVybmFhc3QgZWxsaXBzaXN0IGluIHBsYWF0cyB2YW4gZXJvbmRlcmRvb3IgdGVcbi8vIGxvcGVuOyBlZW4gYWJzb2x1dGUgaG9la292ZXJsYXkgem91IGRhdCB0ZXJ1Z2JyZW5nZW4uXG4ucWRuYXByby10b3VjaC1idXR0b24ucXRiLXZhcmlhbnQtZ3JpZCAucXRiLXBpbGxzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMHB4O1xuICAgIHJpZ2h0OiAxMHB4O1xuICAgIHotaW5kZXg6IDI7IC8vIGJvdmVuIC5xdGItYmFkZ2UgKHotaW5kZXggMSlcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8vIGRlIGhlbGUgdGVnZWwgaXMgZGUga25vcDsgZGl0IGlzIHdlZXJnYXZlXG59XG5cbi5xdGItcGlsbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xufVxuXG4ucXRiLXBpbGwtaWNvbiB7XG4gICAgd2lkdGg6IDI2cHg7XG4gICAgaGVpZ2h0OiAyNnB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiB2YXIoLS1xdGItbGFiZWwtY29sb3IpO1xufVxuXG4vLyBEZSBzdGlwIG92ZXJsYXB0IGRlIHJlY2h0ZXJib3ZlbmhvZWsgdmFuIGhldCBpY29vbiwgbWV0IGVlbiByaW5nIGluIGRlXG4vLyB0ZWdlbGtsZXVyIHpvZGF0IGhpaiBsb3MgdmFuIGRlIGljb29ubGlqbmVuIGxlZXN0ICh6ZWxmZGUgdHJ1YyBhbHMgZGVcbi8vIGF2YXRhci1vdmVybGF5IGluIHFkbmFwcm8tdXBkYXRlLXJvdykuXG4ucXRiLXBpbGwtZG90IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtM3B4O1xuICAgIHJpZ2h0OiAtM3B4O1xuICAgIHdpZHRoOiAxM3B4O1xuICAgIGhlaWdodDogMTNweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tcXRiLWJnLCAjZmZmZmZmKTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ucXRiLXBpbGwtc3Ryb25nIC5xdGItcGlsbC1kb3Qge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXF0Yi1waWxsLXN0cm9uZy1iZyk7XG4gICAgLS1xdGItZG90LXJhZGFyOiAyMzIsIDExMiwgOTU7IC8vIHJnYiB2YW4gaGV0IGtvcmFhbCwgdm9vciBkZSByaW5nIGhpZXJvbmRlclxufVxuLnF0Yi1waWxsLXNvZnQgLnF0Yi1waWxsLWRvdCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcXRiLXBpbGwtc29mdC1kb3QtYmcpO1xuICAgIC0tcXRiLWRvdC1yYWRhcjogNzAsIDgyLCAyNDM7XG59XG5cbi8vIFJhZGFyLXB1bHMgKHdlbnMgS2ltIDE4LjA4LjIwMjYpOiBcImVlbiBtb29pZSBwdWxzZSwgbmlldCB0ZSBpbnRydXNpdmUsIG5pZXRcbi8vIHRlIHZhYWssIGFscyBlZW4gcmFkYXJcIi4gRcOpbiB6YWNodGUgcmluZyBkaWUgaW4gfjEsOHMgdWl0ZGlqdCBlbiB2ZXJ2YWFndCxcbi8vIGRhYXJuYSBydWltIHZpZXIgc2Vjb25kZW4gc3RpbHRlIC0gZGUgY3ljbHVzIGlzIDZzLCBkdXMgaGV0IHNpZ25hYWwgYWRlbXQgaW5cbi8vIHBsYWF0cyB2YW4gZGF0IGhldCBrbmlwcGVydC4gQWxsZWVuIGVlbiBib3gtc2hhZG93IGJld2VlZ3QgKGNvbXBvc2l0ZWQpLFxuLy8gZGUgc3RpcCB6ZWxmIHN0YWF0IHN0aWwuIFZlcmdlbGlqayBkZSBwYWFyc2UgbG9vcCBpbiBkZSBxZG5hcHJvLWxvdHRpZS1cbi8vIHByZXZpZXcsIG1hYXIgZGFuIGVlbiBmYWN0b3IgcnVzdGlnZXIuXG5Aa2V5ZnJhbWVzIHF0Yi1kb3QtcmFkYXIge1xuICAgIDAlICAgeyBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEodmFyKC0tcXRiLWRvdC1yYWRhciwgNzAsIDgyLCAyNDMpLCAwLjQwKTsgfVxuICAgIDMwJSAgeyBib3gtc2hhZG93OiAwIDAgMCA5cHggcmdiYSh2YXIoLS1xdGItZG90LXJhZGFyLCA3MCwgODIsIDI0MyksIDApOyB9XG4gICAgMTAwJSB7IGJveC1zaGFkb3c6IDAgMCAwIDlweCByZ2JhKHZhcigtLXF0Yi1kb3QtcmFkYXIsIDcwLCA4MiwgMjQzKSwgMCk7IH1cbn1cbi5xdGItcGlsbC1kb3Qge1xuICAgIGFuaW1hdGlvbjogcXRiLWRvdC1yYWRhciA2cyBlYXNlLW91dCBpbmZpbml0ZTtcbn1cbi8vIFdpZSBoZXQgc3lzdGVlbSBvbSBydXN0IHZyYWFndCwga3Jpamd0IHJ1c3Q6IGRlIHN0aXAgYWxsZWVuLlxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAucXRiLXBpbGwtZG90IHsgYW5pbWF0aW9uOiBub25lOyB9XG59XG5cbi8vIEFsbGVlbiB2b29yIHNjaGVybWxlemVyczogZGUgc3RpcCB6ZWd0IERBVCBlciBpZXRzIGlzLCBkaXQgemVndCBob2V2ZWVsLlxuLnF0Yi1waWxsLWNvdW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8vIC0tLSBWYXJpYW50OiByb3cgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLnFkbmFwcm8tdG91Y2gtYnV0dG9uLnF0Yi12YXJpYW50LXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMjRweDtcbiAgICBtaW4taGVpZ2h0OiA1OHB4O1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4ucWRuYXByby10b3VjaC1idXR0b24ucXRiLXZhcmlhbnQtcm93IC5xdGItbGFiZWwge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4vLyBFbmQgb2YgdGhlIHJvdywgdmVydGljYWxseSBjZW50cmVkIChLaW0gMjcuMDcuMjAyNjogXCJsaWdnZW5kZSB2YXJpYW50IGFhblxuLy8gaGV0IGVpbmRlXCIpLiBJbiBmbG93IHJhdGhlciB0aGFuIGFic29sdXRlLCBzbyBhIGxvbmcgbGFiZWwgZWxsaXBzaXplc1xuLy8gYWdhaW5zdCBpdCBpbnN0ZWFkIG9mIHJ1bm5pbmcgdW5kZXJuZWF0aCBpdC5cbi5xZG5hcHJvLXRvdWNoLWJ1dHRvbi5xdGItdmFyaWFudC1yb3cgLnF0Yi1iYWRnZSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgLy8gVGhlIDI0cHggaWNvbi10by1sYWJlbCBnYXAgd291bGQgcmVhZCBhcyBhIGh1Z2UgaG9sZSBpbiBmcm9udCBvZiB0aGVcbiAgICAvLyBiYWRnZTsgdGhlIGJhZGdlIGtlZXBzIHRoZSByb3cncyBvd24gOHB4IHBhZGRpbmcgcmh5dGhtIGluc3RlYWQuXG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8vIC0tLSBTdGF0ZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLnFkbmFwcm8tdG91Y2gtYnV0dG9uOmhvdmVyOm5vdCgucXRiLWRpc2FibGVkKSxcbi5xZG5hcHJvLXRvdWNoLWJ1dHRvbi5mb3JjZS1ob3Zlcjpub3QoLnF0Yi1kaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXF0Yi1iZy1ob3Zlcik7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1xdGItYm9yZGVyLWhvdmVyKTtcbn1cblxuLnFkbmFwcm8tdG91Y2gtYnV0dG9uLmlzLXByZXNzZWQ6bm90KC5xdGItZGlzYWJsZWQpLFxuLnFkbmFwcm8tdG91Y2gtYnV0dG9uLmZvcmNlLXByZXNzZWQ6bm90KC5xdGItZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1xdGItYmctcHJlc3NlZCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1xdGItYm9yZGVyLXByZXNzZWQpO1xufVxuXG4ucWRuYXByby10b3VjaC1idXR0b246Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG5cbi5xZG5hcHJvLXRvdWNoLWJ1dHRvbjpmb2N1cy12aXNpYmxlLFxuLnFkbmFwcm8tdG91Y2gtYnV0dG9uLmZvcmNlLWZvY3VzIHtcbiAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYnRuLWZvY3VzLXJpbmcpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCB2YXIoLS1idG4tZm9jdXMtZ2xvdyk7XG59XG5cbi5xZG5hcHJvLXRvdWNoLWJ1dHRvbi5xdGItZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXF0Yi1kaXNhYmxlZC1iZyk7XG4gICAgY29sb3I6IHZhcigtLXF0Yi1kaXNhYmxlZC1jb2xvcik7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ucWRuYXByby10b3VjaC1idXR0b24ucXRiLWRpc2FibGVkOmZvY3VzLXZpc2libGUsXG4ucWRuYXByby10b3VjaC1idXR0b24ucXRiLWRpc2FibGVkLmZvcmNlLWZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi8vIEtpbSdzIG9uZSBhZGRpdGlvbiBvbiB0b3Agb2YgdGhlIGJ1dHRvbiBjb21wb25lbnQncyBkaXNhYmxlZCBwYWxldHRlLlxuLnFkbmFwcm8tdG91Y2gtYnV0dG9uLnF0Yi1kaXNhYmxlZCAucXRiLWljb24ge1xuICAgIG9wYWNpdHk6IDAuMztcbn1cblxuLy8gLS0tIERhcmsgdGhlbWUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNhbWUgcmFtcCwgb25lIHN0ZXAgcGVyIHN0YXRlLCBvbiB0aGUgZGFyayBncmV5cyB0aGUgb3RoZXIgdjIgY29tcG9uZW50cyB1c2UuXG5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby10b3VjaC1idXR0b24ge1xuICAgIC0tcXRiLWJnOiB2YXIoLS1jLWJnLWNhcmQsICMyYTJkMzQpO1xuICAgIC0tcXRiLWJnLWhvdmVyOiAjMzQzODQxO1xuICAgIC0tcXRiLWJnLXByZXNzZWQ6ICMzZTQzNGQ7XG4gICAgLS1xdGItYm9yZGVyOiAjNDA0NDRkO1xuICAgIC0tcXRiLWJvcmRlci1ob3ZlcjogIzRiNTA1YTtcbiAgICAtLXF0Yi1ib3JkZXItcHJlc3NlZDogIzU3NWQ2ODtcbiAgICAtLXF0Yi1sYWJlbC1jb2xvcjogdmFyKC0tYy10ZXh0LWJvZHksICNmMGYxZjIpO1xuICAgIC0tcXRiLWRpc2FibGVkLWJnOiAjNDA0NDRkO1xuICAgIC0tcXRiLWRpc2FibGVkLWNvbG9yOiAjNmI3MjgwO1xufVxuXG4vLyAtLS0gUmVkdWNlZCBtb3Rpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5xZG5hcHJvLXRvdWNoLWJ1dHRvbiB7XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby10cmFuc2xhdGlvbi1wYW5lbFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgQSByZXVzYWJsZSwgZGF0YS1zb3VyY2UtYWdub3N0aWMgc2xpZGUtaW4gdHJhbnNsYXRpb24gZWRpdG9yLlxuLy8gIFZpc3VhbGx5IG1pcnJvcnMgdGhlIGZsb3cgZWRpdG9yJ3MgdHJhbnNsYXRpb24gcGFuZWwgYnV0IGlzXG4vLyAgZnVsbHkgaW5kZXBlbmRlbnQgb2YgaXQ6IGl0cyBvd24gYHF0cC1gIGNsYXNzIG5hbWVzcGFjZSwgbm9cbi8vICBjb3VwbGluZyB0byBfZmxvd2VkaXRvci5zY3NzLiBCb3RoIHRoZSB0YXNrbGlzdCBwYWdlIGFuZCAobGF0ZXIpXG4vLyAgdGhlIGZsb3cgZWRpdG9yIGNhbiBydW4gb24gdGhpcyBzYW1lIGNvbXBvbmVudC4gW0tpbSAyMDI2LTA2LTE2XVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnFkbmFwcm8tdHJhbnNsYXRpb24tcGFuZWwge1xuICAgIGRpc3BsYXk6IGNvbnRlbnRzOyAvLyBob3N0IGFkZHMgbm8gbGF5b3V0IGJveDsgdGhlIC5xdHAgcGFuZWwgaXMgZml4ZWQtcG9zaXRpb25lZFxufVxuXG4vLyBXaGlsZSB0aGUgcGFuZWwgaXMgb3BlbiB0aGUgcGFnZSBpcyBpbiBcInRyYW5zbGF0ZSBtb2RlXCI6IHRoZSB0YXNrbGlzdCBjaHJvbWVcbi8vIGJlaGluZCBpdCBpcyBub24taW50ZXJhY3RpdmUgKG5vIHN0YXQtY2FyZCBwaWNrZXJzLCBubyBpbnNlcnQgXCIrXCIgbWVudSwgbm9cbi8vIG1hbmFnZXJzIHBpY2tlcikuIEFjdGl2aXR5IHJvd3MsIHRoZSBjaGVjay1pbiBhbmQgdGl0bGVzIHN0YXkgY2xpY2thYmxlIOKAlFxuLy8gdGhleSBmb2N1cyB0aGUgbWF0Y2hpbmcgdHJhbnNsYXRpb24gY2FyZCBpbnN0ZWFkLiBbS2ltIDIwMjYtMDYtMTZdXG5ib2R5LnF0cC1vcGVuIHtcbiAgICAuc3RhdHMtYmFyLFxuICAgIC5tZ3Itc3RhY2stdHJpZ2dlcixcbiAgICAuaW5zZXJ0LXpvbmUge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG59XG5cbi5xdHAge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiA0MjBweDtcbiAgICBtYXgtd2lkdGg6IDkydnc7XG4gICAgLy8gRnJvc3RlZCB3aGl0ZSBzdXJmYWNlICh3YXMgYSBsYXZlbmRlciB0aW50KS4gVGhlIHB1cnBsZSBoZWFkZXIgYmFyIGtlZXBzXG4gICAgLy8gaXRzIGJyYW5kIGNvbG91ciBvbiB0b3Agb2YgdGhpcy4gW0tpbSAyMDI2LTA2LTE2XVxuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NSk7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDI0cHgpIHNhdHVyYXRlKDE2MCUpO1xuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDI0cHgpIHNhdHVyYXRlKDE2MCUpO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU1KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgei1pbmRleDogMTA1MDtcbiAgICBib3gtc2hhZG93OiAtOHB4IDAgMzJweCByZ2JhKDQwLCA0NiwgMTAwLCAwLjE4KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgXCJTZWdvZSBVSVwiLCBzYW5zLXNlcmlmO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAvLyBTbGlkZS1pbjogc3RhcnRzIG9mZi1zY3JlZW4sIEpTIGFkZHMgLnF0cC0tdmlzaWJsZSBvbiB0aGUgbmV4dCBmcmFtZS5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDI0MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG5cbiAgICAmLS12aXNpYmxlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIH1cblxuICAgICogeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG59XG5cbi8vIOKUgOKUgCBIZWFkZXIg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4ucXRwLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDExcHggMTZweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDY1LCA3MywgMTU0LCAwLjU1KTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTRweCk7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTRweCk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZ2FwOiA5cHg7XG59XG4vLyBQdXNoZXMgdGhlIGF1dG8tdHJhbnNsYXRlIGJ1dHRvbiArIGNsb3NlIHRvIHRoZSByaWdodCAodGhlIFwiVmVydGFsaW5nZW5cIlxuLy8gdGl0bGUgd2FzIHJlbW92ZWQpLlxuLnF0cC1oZWFkZXItc3BhY2VyIHtcbiAgICBmbGV4OiAxO1xufVxuLy8gQ2xvc2UgPSBxZG5hcHJvLWJ1dHRvbiAoZ2xhc3MsIGljb24tb25seSk7IG5vIGN1c3RvbSBzdHlsaW5nIG5lZWRlZC5cblxuLy8g4pSA4pSAIEF1dG8tdHJhbnNsYXRlIGJ1dHRvbiBzaGltbWVyIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gQSBzdWJ0bGUgbGlnaHQgc3RyZWFrIHN3ZWVwcyBhY3Jvc3MgdGhlIGJ1dHRvbiBwZXJpb2RpY2FsbHkgdG8gZHJhdyB0aGUgZXllXG4vLyB0byB0aGUgXCJtYWdpY1wiIGFjdGlvbiwgdGhlbiByZXN0cy4gW0tpbSAyMDI2LTA2LTE2XVxuLnF0cC1hdC1idG4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDU1JTtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEyMGRlZyxcbiAgICAgICAgICAgIHRyYW5zcGFyZW50IDAlLFxuICAgICAgICAgICAgcmdiYSg2NSwgNzMsIDE1NCwgMC4xMykgNTAlLFxuICAgICAgICAgICAgdHJhbnNwYXJlbnQgMTAwJSk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjAwJSk7XG4gICAgICAgIGFuaW1hdGlvbjogcXRwLXNoaW1tZXIgMy40cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxufVxuQGtleWZyYW1lcyBxdHAtc2hpbW1lciB7XG4gICAgMCUgICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjAwJSk7IH1cbiAgICAzMCUgIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIyMCUpOyB9XG4gICAgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMjAlKTsgfVxufVxuXG4vLyDilIDilIAgQXV0by10cmFuc2xhdGUgYnV0dG9uIChpbiBoZWFkZXIpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gSXQgaXMgYSA8cWRuYXByby1idXR0b24gdHlwZT1cInNlY29uZGFyeS13aGl0ZVwiPjsgdGhlIGNvbXBvbmVudCBvd25zIGl0cyBsb29rLlxuLy8gV2Ugb25seSBrZWVwIHRoZSBpY29uICsgbGFiZWwgZ2FwIGFuZCB0aGUgc3BpbiBjdWUgb24gdGhlIGlubmVyIGljb24uXG4ucXRwLWF0LWljb24geyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gLy8gc3BhY2luZyBjb21lcyBmcm9tIHFkbmFwcm8tYnV0dG9uJ3Mgb3duIGdhcFxuLnF0cC1hdC1pY29uLS1zcGluIHsgYW5pbWF0aW9uOiBxdHAtcm90YXRlIDAuOHMgbGluZWFyIGluZmluaXRlOyB9XG5cbkBrZXlmcmFtZXMgcXRwLXJvdGF0ZSB7XG4gICAgZnJvbSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XG4gICAgdG8gICB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH1cbn1cblxuLy8g4pSA4pSAIEF1dG8tdHJhbnNsYXRlIGJhciAoY29uZmlybSAvIHJlc3VsdCBzdHJpcCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4ucXRwLWF0LWJhciB7XG4gICAgcGFkZGluZzogOXB4IDE0cHg7XG4gICAgLy8gU2FtZSBmcm9zdGVkIHN1cmZhY2UgYXMgdGhlIHBhbmVsIChubyBwdXJwbGUgdGludCk7IGp1c3QgYSBkaXZpZGVyIGxpbmUuXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjE2LCAyMTksIDIzNywgMC42MCk7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgJi0tZG9uZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMzQsIDE0MCwgOTAsIDAuMTApO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDM0LCAxNDAsIDkwLCAwLjE4KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGFnLW5ldy10ZXh0KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgfVxuICAgICYtLWVycm9yIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxOTYsIDU0LCA0MiwgMC4xMCk7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMTk2LCA1NCwgNDIsIDAuMTgpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10YWctY3JpdGljYWwtdGV4dCk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNnB4O1xuICAgIH1cbn1cbi5xdHAtYXQtYmFyLXF1ZXN0aW9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiA3cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi8vIERpcmVjdGlvbiByb3c6IFwiTkwg4oaSIEVOXCIgcGx1cyB0aGUgc3dhcCBidXR0b24uIFJlYWRzIGxlZnQgdG8gcmlnaHQgYXMgd2hhdFxuLy8gdGhlIHJ1biB3aWxsIGRvIOKAlCBsZWZ0IGlzIHJlYWQsIHJpZ2h0IGlzIHdyaXR0ZW4uXG4ucXRwLWF0LWRpciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDdweDtcbn1cbi5xdHAtYXQtZGlyLWxhbmcge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWluLXdpZHRoOiAzMnB4O1xuICAgIGhlaWdodDogMjJweDtcbiAgICBwYWRkaW5nOiAwIDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSg2NSwgNzMsIDE1NCwgMC4xMCk7XG4gICAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4ucXRwLWF0LWRpci1hcnJvdyB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgY29sb3I6IHJnYmEoNjMsIDczLCAxNTQsIDAuNTUpO1xufVxuLnF0cC1hdC1iYXItYnRucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDZweDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi8vIFRoZSBjb25maXJtIGJ1dHRvbnMgYXJlIHFkbmFwcm8tYnV0dG9uIGNvbXBvbmVudHMgKHByaW1hcnktcHVycGxlIC9cbi8vIHNlY29uZGFyeS1wdXJwbGUgLyBzdWJ0bGUpIOKAlCB0aGV5IGJyaW5nIHRoZWlyIG93biBzdHlsaW5nLlxuXG4vLyDilIDilIAgTGFuZ3VhZ2UgcGlja2VyIChxZG5hcHJvLXNlZ21lbnQsIHNsaWRpbmcgcGlsbCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4ucXRwLWxhbmctYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBhZGRpbmc6IDhweCAxNHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41MCk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjE2LCAyMTksIDIzNywgMC43MCk7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG4vLyBBbWJlciBcImhhcyBtaXNzaW5nIHRyYW5zbGF0aW9uc1wiIGRvdCBvbiBhIGxhbmd1YWdlIHBpbGwgKGxpa2UgYSBkb3QgYmFkZ2UpLlxuLy8gTGV0cyB5b3Ugc3BvdCB3aGljaCBvZiBtYW55IGxhbmd1YWdlcyBzdGlsbCBuZWVkIHdvcmsgd2l0aG91dCBzd2l0Y2hpbmcuXG4ucXRwLWxhbmctc2VnIC5xZG5hcHJvLXNlZ21lbnQtaXRlbVtkYXRhLW1pc3NpbmddIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogM3B4O1xuICAgICAgICByaWdodDogNnB4O1xuICAgICAgICB3aWR0aDogOHB4O1xuICAgICAgICBoZWlnaHQ6IDhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdhcm4teWVsbG93LTYwMCk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAjZmZmO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG59XG5cbi8vIOKUgOKUgCBDb2x1bW4gaGVhZGVycyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5xdHAtY29sLWhlYWRlcnMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41MCk7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHJnYmEoMjE2LCAyMTksIDIzNywgMC43MCk7XG59XG4ucXRwLWNvbC1oIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA3ZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci10cmVlKTtcbiAgICB9XG59XG4ucXRwLW1pc3NpbmctcGlsbCB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtdGFnLXdhcm5pbmctYmcpO1xuICAgIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC15ZWxsb3ctdGV4dCk7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIHBhZGRpbmc6IDJweCA2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy13YXJuLXllbGxvdy02MDApO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG59XG5cbi8vIOKUgOKUgCBDYXJkIGxpc3Qg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4ucXRwLWJvZHkge1xuICAgIGZsZXg6IDE7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA3cHg7XG4gICAgLy8gU2Nyb2xsLCBidXQgaGlkZSB0aGUgYmFyIChjb250ZW50IHN0YXlzIHNjcm9sbGFibGUgdmlhIHdoZWVsL3RyYWNrcGFkKS5cbiAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7ICAgICAgICAgICAgLy8gRmlyZWZveFxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgd2lkdGg6IDA7IGhlaWdodDogMDsgfVxufVxuLnF0cC1lbXB0eSB7XG4gICAgcGFkZGluZzogMjhweCAxNnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkLXBwKTtcbiAgICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5xdHAtY2FyZCB7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gICAgLy8gVGhlIGNhcmQncyBjb2xvdXIgc2lnbmFsIGxpdmVzIGluIHRoZSBiYWRnZSBub3csIG5vdCBhIGxlZnQgYWNjZW50IHN0cmlwZS5cbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDEyMG1zO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggcmdiYSg2NSwgNzMsIDE1NCwgMC4xNCk7XG4gICAgfVxuICAgIC8vIFNlbGVjdGVkID0gdGhlIFNBTUUgZm9jdXMgcmluZyBhcyB0aGUgYWN0aXZpdHkgcm93IChxdHAtcm93LWZvY3VzZWQpLlxuICAgIC8vIExpc3RlZCB3aXRoIDpob3ZlciB0b28gc28gaG92ZXJpbmcgYSBzZWxlY3RlZCBjYXJkIG5ldmVyIGRyb3BzIHRoZSByaW5nLlxuICAgICYtLXNlbGVjdGVkLFxuICAgICYtLXNlbGVjdGVkOmhvdmVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWMtY2hpcC1icmlnaHQtYmx1ZS1ob3ZlciksIDAgNHB4IDE0cHggcmdiYSg2NSwgNzMsIDE1NCwgMC4xOCk7XG4gICAgfVxuICAgIC8vIE9uZS1zaG90IGhpZ2hsaWdodCB3aGVuIGEgY2FyZCBpcyBzcG90bGlnaHRlZCAoZmxvdyBlZGl0b3IgY2FudmFzIHN5bmMpLlxuICAgICYtLXNwb3RsaWdodCB7XG4gICAgICAgIGFuaW1hdGlvbjogcXRwLXNwb3RsaWdodCA5MDBtcyBlYXNlLW91dCBmb3J3YXJkcztcbiAgICB9XG4gICAgLy8gQXJjaGl2ZWQgYWN0aXZpdHk6IG11dGVkIGdyZXkgY2FyZCBzbyBpdCByZWFkcyBhcyBcInBhcmtlZFwiLlxuICAgICYtLWFyY2hpdmVkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJvcmRlci10cmVlKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyKTtcbiAgICAgICAgLnF0cC1tZXRhIHsgYmFja2dyb3VuZDogcmdiYSgxMjAsIDEyNCwgMTUwLCAwLjA4KTsgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tYy1ib3JkZXItc29mdC0yKTsgfVxuICAgIH1cbn1cblxuQGtleWZyYW1lcyBxdHAtc3BvdGxpZ2h0IHtcbiAgICAwJSAgIHsgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoNjUsIDczLCAxNTQsIDAuNTUpOyB9XG4gICAgNjAlICB7IGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDY1LCA3MywgMTU0LCAwLjI1KTsgfVxuICAgIDEwMCUgeyBib3gtc2hhZG93OiBub25lOyB9XG59XG5cbi8vIOKUgOKUgCBCYWRnZSAoZmxvdyBlZGl0b3IpIHZhcmlhbnQg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBUaGUgbm9kZS10eXBlIGJhZGdlICh2cmFhZ3Nvb3J0KSBjYXJyaWVzIHRoZSBub2RlIGNvbG91cjsgdGhlIGJhZGdlIGlzIGFcbi8vIHJvdW5kZWQgcGlsbCB3aXRoIGEgbGl0dGxlIGJyZWF0aGluZyByb29tIGZyb20gdGhlIGNhcmQgZWRnZS4gKE5vIGxlZnQgY29sb3VyXG4vLyBzdHJpcCDigJQgcmVtb3ZlZCBhdCBLaW0ncyByZXF1ZXN0IDE4LjA2LjIwMjYuKSBUaGUgaWNvbiAodGFza2xpc3QpIHZhcmlhbnQgaXNcbi8vIHVuYWZmZWN0ZWQuXG4ucXRwLWNhcmQtLWJhZGdlIHtcbiAgICAucXRwLW1ldGEgIHsgcGFkZGluZy1sZWZ0OiAxMnB4OyB9XG4gICAgLnF0cC1iYWRnZSB7IGJvcmRlci1yYWRpdXM6IDZweDsgfVxufVxuXG4vLyDilIDilIAgQXJjaGl2ZWQgc2VjdGlvbiBkaXZpZGVyIChrZXlsaW5lICsgbGFiZWwpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLnF0cC1zZWN0aW9uLWRpdmlkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW46IDE2cHggMnB4IDhweDtcbiAgICBmbGV4LXNocmluazogMDtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgICB9XG59XG4ucXRwLXNlY3Rpb24tbGFiZWwge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA1cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xuICAgIHBhZGRpbmc6IDNweCA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuLnF0cC1zZWN0aW9uLWljb24geyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLy8gQ2FyZCBoZWFkZXI6IHR5cGUgYmFkZ2UgKyBpZCArIHNhdmUgZG90XG4ucXRwLW1ldGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDdweDtcbiAgICAvLyBObyBsZWZ0IHBhZGRpbmc6IHRoZSBiYWRnZSBzaXRzIGZsdXNoIGFnYWluc3QgdGhlIGNhcmQncyBsZWZ0IGVkZ2Ugc28gaXRzXG4gICAgLy8gcm91bmRlZC1sZWZ0IC8gc3RyYWlnaHQtcmlnaHQgcmVhZHMgYXMgYSBjb3JuZXIgdGFiLlxuICAgIHBhZGRpbmc6IDZweCAxMHB4IDZweCAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNjUsIDczLCAxNTQsIDAuMDYpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLWNoaXAtcHVycGxlLWJnKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucXRwLWJhZGdlIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgcGFkZGluZzogM3B4IDhweDtcbiAgICAvLyBMZWZ0IHJvdW5kZWQsIHJpZ2h0IHN0cmFpZ2h0LlxuICAgIGJvcmRlci1yYWRpdXM6IDZweCAwIDAgNnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ucXRwLW5vZGUtaWQge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkLXBwKTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vLyDilIDilIAgSWNvbiB2YXJpYW50IGhlYWRlciAodGFza2xpc3QpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gQWN0aXZpdHkgaWNvbiArIG5hbWUgdGl0bGUgaW5zdGVhZCBvZiB0aGUgY29sb3VyZWQgYmFkZ2UuXG4ucXRwLW1ldGEtLWljb24ge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDsgLy8gdGhlIGJhZGdlLWZsdXNoIDAgcGFkZGluZyBkb2Vzbid0IGFwcGx5IGhlcmVcbiAgICBnYXA6IDhweDtcbn1cbi5xdHAtYWN0aXZpdHktaWNvbiB7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG4ucXRwLWljb24tcGxhY2Vob2xkZXIge1xuICAgIHdpZHRoOiAyNnB4O1xuICAgIGhlaWdodDogMjZweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLXB1cnBsZS1iZyk7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG4ucXRwLXRpdGxlIHtcbiAgICBmbGV4OiAwIDEgYXV0bzsgICAvLyB0YWtlIGNvbnRlbnQgd2lkdGgsIHNocmluaytlbGxpcHNpemUgaWYgbG9uZyAoYmFkZ2Ugc2l0cyByaWdodCBhZnRlcilcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6IHZhcigtLWMtcHVycGxlLTcwMCk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLy8gU21hbGwgc3RhdHVzIHRhZ3MgYWZ0ZXIgdGhlIG5hbWU6IHN1YmZsb3cgLyB0aXRsZSAvIGFyY2hpdmVkLlxuLnF0cC10YWcge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHBhZGRpbmc6IDJweCA3cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLy8gc3ViZmxvdyArIHRpdGxlIHVzZSBhIHNvZnQgcHVycGxlOyBhcmNoaXZlZCBpcyBncmV5LlxuICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNjUsIDczLCAxNTQsIDAuMTIpO1xuXG4gICAgJi0tYXJjaGl2ZWQge1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYm9yZGVyLXNvZnQtMik7XG4gICAgfVxufVxuLnF0cC1zYXZlIHtcbiAgICB3aWR0aDogN3B4O1xuICAgIGhlaWdodDogN3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAmLS1zYXZpbmcgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdhcm4teWVsbG93LTYwMCk7IH1cbiAgICAmLS1zYXZlZCAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1Y2Nlc3MtYnJpZ2h0KTsgfVxuICAgICYtLWVycm9yICB7IGJhY2tncm91bmQ6IHZhcigtLWMtdGFnLWNyaXRpY2FsLXRleHQpOyB9XG59XG5cbi8vIOKUgOKUgCBUd28tY29sdW1uIGxheW91dCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5xdHAtY29scyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG59XG4ucXRwLWNvbCB7XG4gICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNnB4O1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgLy8gVGlnaHRlbiB0aGUgaW5uZXIgZWRnZSAodG93YXJkIHRoZSBjZW50cmUgZGl2aWRlcikgdG8gNHB4IG9uIGVhY2ggc2lkZTtcbiAgICAvLyB0aGUgb3V0ZXIgZWRnZXMga2VlcCAxMHB4LlxuICAgICYtLXByaW1hcnkgeyBwYWRkaW5nLXJpZ2h0OiA0cHg7IH1cbiAgICAmLS10YXJnZXQge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDRweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1jLWNoaXAtcHVycGxlLWJnKTtcbiAgICB9XG59XG5cbi8vIOKUgOKUgCBJbnB1dHMgKHNoYXJlZCBxZG5hcHJvLWlucHV0LCB0eXBlPVwiZXhwYW5kaW5nXCIpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gRmllbGRzIGFyZSB0aGUgcmVhbCBpbnB1dCBjb21wb25lbnQgc28gdGhleSBtYXRjaCB0aGUgcmVzdCBvZiB0aGUgYXBwLlxuLy8gV2Ugb25seSBkbyBsYXlvdXQgKyB0aGUgbWlzc2luZy10cmFuc2xhdGlvbiBhY2NlbnQgaGVyZTsgdGhlIGZpZWxkJ3Mgb3duXG4vLyBsb29rIChib3JkZXIsIGZvY3VzIHJpbmcsIHBhZGRpbmcsIGF1dG8tZ3JvdykgY29tZXMgZnJvbSBfaW5wdXQuc2Nzcy5cbi5xdHAtZmllbGQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4vLyDilIDilIAgUGVyLXJvdyBmaWVsZCBjYXB0aW9uIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gU21hbGwsIG11dGVkLCB1bm9idHJ1c2l2ZSBsYWJlbCBhYm92ZSBhIGZpZWxkIChvciBhIGZpZWxkIHBhaXIpIHNvIGJhcmVcbi8vIHRleHQgbGlrZSBcIlZlcnkgcG9vclwiIC8gXCJXaHkgZGlkIHlvdSBnaXZlIHRoaXMgc2NvcmU/XCIgaXMgaWRlbnRpZmlhYmxlIGF0XG4vLyBhIGdsYW5jZS4gT3B0aW9uYWwgYW5kIGdlbmVyaWM6IGFueSBmaWVsZCBraW5kIGNhbiBjYXJyeSBvbmUuIFtLaW0gMjAyNi0wNy0xMV1cbi5xdHAtZmllbGQtZ3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5xdHAtZmllbGQtY2FwdGlvbiB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZC1wcCk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNDVlbTtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIG1hcmdpbi1ib3R0b206IDNweDtcblxuICAgIC8vIEFib3ZlIHRoZSB3aG9sZSBhbnN3ZXItb3B0aW9ucyBibG9jayAob25jZSwgbm90IHBlciBvcHRpb24pLCBhIGJpdFxuICAgIC8vIHN0cm9uZ2VyIHNvIGl0IHJlYWRzIGFzIGEgc2VjdGlvbiBsYWJlbCwgbWF0Y2hpbmcgdGhlIGRpdmlkZXIgYWJvdmUgaXQuXG4gICAgJi0tc2VjdGlvbiB7XG4gICAgICAgIG1hcmdpbjogMnB4IDAgNHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkLXBwKTtcbiAgICB9XG59XG4ucXRwLWFucy1yb3cgLnF0cC1maWVsZCB7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDA7XG59XG4vLyBNaXNzaW5nIHRyYW5zbGF0aW9uIChlbXB0eSB0YXJnZXQgZmllbGQsIG5vbi1zdWIpOiBhbWJlciBhY2NlbnQsIG1pcnJvcnMgdGhlXG4vLyBmbG93IGVkaXRvci4gVGFyZ2V0cyB0aGUgaW5wdXQgY29tcG9uZW50J3MgaW5uZXIgZmllbGQgd3JhcHBlci5cbi5xdHAtZmllbGQtLW1pc3NpbmcgLmlucHV0LWZpZWxkIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtd2Fybi15ZWxsb3ctNjAwKSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCkgIWltcG9ydGFudDtcbn1cblxuLy8g4pSA4pSAIEFjdGl2aXR5IHJvdyBmb2N1cyBzdGF0ZSAod2hpbGUgdGhlIHBhbmVsIGlzIG9wZW4pIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gV2hlbiB0aGUgdHJhbnNsYXRpb24gcGFuZWwgaXMgb3BlbiwgY2xpY2tpbmcgYW4gYWN0aXZpdHkgcm93IGZvY3VzZXMgaXRcbi8vIChoZXJlICsgaW4gdGhlIHBhbmVsKSBpbnN0ZWFkIG9mIG9wZW5pbmcgdGhlIGZsb3cgZWRpdG9yLiBUaGUgcmluZyBmb2xsb3dzXG4vLyB0aGUgcm93J3Mgb3duIGJvcmRlci1yYWRpdXMgdmlhIGJveC1zaGFkb3cuIFtLaW0gMjAyNi0wNi0xNl1cbnFkbmFwcm8tYWN0aXZpdHktcm93LnF0cC1yb3ctZm9jdXNlZCAuYWN0aXZpdHktcm93LWlubmVyIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tYy1jaGlwLWJyaWdodC1ibHVlLWhvdmVyKSwgMCA0cHggMTRweCByZ2JhKDY1LCA3MywgMTU0LCAwLjE4KTtcbn1cbi8vIFNhbWUgZm9jdXMgcmluZyBmb3IgYSBzZWN0aW9uLWhlYWRlciB0aXRsZSAoaXQgaGFzIG5vIGZvY3VzIHN0YXRlIG9mIGl0cyBvd24pLlxucWRuYXByby1zZWN0aW9uLWhlYWRlci5xdHAtcm93LWZvY3VzZWQgLnNoLXBpbGwge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtaG92ZXIpLCAwIDRweCAxNHB4IHJnYmEoNjUsIDczLCAxNTQsIDAuMTgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cblxuLy8g4pSA4pSAIEFuc3dlciBvcHRpb25zIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLnF0cC1hbnMtZGl2aWRlciB7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLXB1cnBsZS1iZyk7XG4gICAgbWFyZ2luOiAycHggMDtcbn1cbi5xdHAtYW5zLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDZweDtcbn1cbi5xdHAtYW5zLWRvdCB7XG4gICAgd2lkdGg6IDZweDtcbiAgICBoZWlnaHQ6IDZweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luLXRvcDogMTFweDtcbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8tdHJhbnNsYXRpb24tbW9kYWxcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIEEgcmV1c2FibGUsIGRhdGEtc291cmNlLWFnbm9zdGljIG1vZGFsIGZvciB0cmFuc2xhdGluZyBPTkVcbi8vICBmaWVsZCBpbnRvIGFsbCBlbmFibGVkIGJhY2tlbmQgbGFuZ3VhZ2VzLiBUaGUgbGlnaHR3ZWlnaHRcbi8vICBjb3VudGVycGFydCB0byBxZG5hcHJvLXRyYW5zbGF0aW9uLXBhbmVsOiBpdCBjb21wb3NlcyB0aGVcbi8vICBzaGFyZWQgcWRuYXByby1tb2RhbCBhbmQgb25seSBzdHlsZXMgaXRzIGJvZHkgKHRoZSBgcXRtLWBcbi8vICBuYW1lc3BhY2UpLiBTaGFyZXMgdGhlIHBhbmVsJ3MgdmlzdWFsIGxhbmd1YWdlIChmcm9zdGVkIGF1dG9cbi8vICBidXR0b24gc2hpbW1lciwgYW1iZXIgXCJtaXNzaW5nXCIgYWNjZW50LCByZXN1bHQgYmFyKS4gW0tpbSAyMDI2LTA2LTE3XVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnFkbmFwcm8tdHJhbnNsYXRpb24tbW9kYWwge1xuICAgIGRpc3BsYXk6IGNvbnRlbnRzOyAvLyBob3N0IGFkZHMgbm8gbGF5b3V0IGJveDsgdGhlIHFkbmFwcm8tbW9kYWwgaXQgYnVpbGRzIG93bnMgbGF5b3V0XG59XG5cbi5xdG0ge1xuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgXCJTZWdvZSBVSVwiLCBzYW5zLXNlcmlmO1xuICAgICogeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG59XG5cbi8vIOKUgOKUgCBUb3Agcm93OiBzb3VyY2UgcmVmZXJlbmNlICsgYXV0by10cmFuc2xhdGUgYnV0dG9uIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLnF0bS10b3Age1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNHB4O1xufVxuLnF0bS1zb3VyY2Uge1xuICAgIG1pbi13aWR0aDogMDsgLy8gYWxsb3cgdGhlIHNvdXJjZSB0ZXh0IHRvIGVsbGlwc2l6ZSBpbnN0ZWFkIG9mIHB1c2hpbmcgdGhlIGJ1dHRvbiBvZmZcbiAgICBmbGV4OiAxO1xufVxuLnF0bS1maWVsZC1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wN2VtO1xuICAgIG1hcmdpbi1ib3R0b206IDZweDtcbn1cbi5xdG0tc291cmNlLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1pbi13aWR0aDogMDtcbn1cbi5xdG0tc291cmNlLXRleHQge1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNzAwKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4ucXRtLXNvdXJjZS1lbXB0eSB7IGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQtcHApOyBmb250LXdlaWdodDogNTAwOyB9XG5cbi8vIOKUgOKUgCBMYW5ndWFnZSBwaWxsIChzaGFyZWQgYnkgc291cmNlICsgZWFjaCBmaWVsZCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4ucXRtLXBpbGwge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xuICAgIHBhZGRpbmc6IDNweCA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNjUsIDczLCAxNTQsIDAuMTIpO1xuICAgIC8vIFRoZSBzb3VyY2UgcGlsbCBpcyBmaWxsZWQgKGl0IGlzIHRoZSBcImZyb21cIiBsYW5ndWFnZSkuXG4gICAgJi0tc291cmNlIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAgIH1cbn1cblxuLy8g4pSA4pSAIEF1dG8tdHJhbnNsYXRlIGJ1dHRvbiBzaGltbWVyIChtaXJyb3JzIHRoZSBwYW5lbCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4ucXRtLWF0LWJ0biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogNTUlO1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTIwZGVnLFxuICAgICAgICAgICAgdHJhbnNwYXJlbnQgMCUsXG4gICAgICAgICAgICByZ2JhKDY1LCA3MywgMTU0LCAwLjEzKSA1MCUsXG4gICAgICAgICAgICB0cmFuc3BhcmVudCAxMDAlKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMDAlKTtcbiAgICAgICAgYW5pbWF0aW9uOiBxdG0tc2hpbW1lciAzLjRzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gICAgLy8gTm8gc2hpbW1lciB3aGlsZSBkaXNhYmxlZCAobm8gc291cmNlIHZhbHVlIHlldCkuXG4gICAgJltkaXNhYmxlZF06OmFmdGVyIHsgYW5pbWF0aW9uOiBub25lOyB9XG59XG5Aa2V5ZnJhbWVzIHF0bS1zaGltbWVyIHtcbiAgICAwJSAgIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMDAlKTsgfVxuICAgIDMwJSAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjIwJSk7IH1cbiAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIyMCUpOyB9XG59XG4ucXRtLWF0LWljb24geyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbi5xdG0tYXQtaWNvbi0tc3BpbiB7IGFuaW1hdGlvbjogcXRtLXJvdGF0ZSAwLjhzIGxpbmVhciBpbmZpbml0ZTsgfVxuQGtleWZyYW1lcyBxdG0tcm90YXRlIHtcbiAgICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgICB0byAgIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxufVxuXG4vLyDilIDilIAgQXV0by10cmFuc2xhdGUgYmFyIChjb25maXJtIC8gcmVzdWx0IHN0cmlwKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5xdG0tYXQtYmFyLWhvc3Q6bm90KDplbXB0eSkgeyBtYXJnaW4tYm90dG9tOiAxMnB4OyB9XG4ucXRtLWF0LWJhciB7XG4gICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjE2LCAyMTksIDIzNywgMC44MCk7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDY1LCA3MywgMTU0LCAwLjA0KTtcblxuICAgICYtLWRvbmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDM0LCAxNDAsIDkwLCAwLjEwKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAxNDAsIDkwLCAwLjIwKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGFnLW5ldy10ZXh0KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgfVxuICAgICYtLWVycm9yIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxOTYsIDU0LCA0MiwgMC4xMCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxOTYsIDU0LCA0MiwgMC4yMCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRhZy1jcml0aWNhbC10ZXh0KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgfVxufVxuLnF0bS1hdC1iYXItcXVlc3Rpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuLnF0bS1hdC1iYXItYnRucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDZweDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLy8g4pSA4pSAIEZpZWxkczogb25lIHBlciBzZWNvbmRhcnkgbGFuZ3VhZ2Ug4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4ucXRtLWZpZWxkcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbn1cbi5xdG0tZW1wdHkge1xuICAgIHBhZGRpbmc6IDIycHggMTZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZC1wcCk7XG4gICAgZm9udC1zaXplOiAxM3B4O1xufVxuLy8gTGFuZ3VhZ2UgcGlsbCBzaXRzIEJFRk9SRSB0aGUgaW5wdXQgKGlubGluZSwgbm90IHN0YWNrZWQgYWJvdmUpIOKAlCBjYWxtZXIgYW5kXG4vLyBzYXZlcyB2ZXJ0aWNhbCBzcGFjZS4gQWxsIHBpbGxzIHNoYXJlIGEgbWluLXdpZHRoIHNvIHRoZSBpbnB1dHMgbGluZSB1cC4gW0tpbSAyMDI2LTA2LTE3XVxuLnF0bS1maWVsZC1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICAucXRtLXBpbGwge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgbWluLXdpZHRoOiAzOHB4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG59XG4ucXRtLWZpZWxkIHtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi13aWR0aDogMDtcbn1cbi8vIE1pc3NpbmcgdHJhbnNsYXRpb24gKGVtcHR5IGZpZWxkKTogYW1iZXIgYWNjZW50LCBtaXJyb3JzIHRoZSBwYW5lbC4gVGFyZ2V0c1xuLy8gdGhlIGlucHV0IGNvbXBvbmVudCdzIGlubmVyIGZpZWxkIHdyYXBwZXIuXG4ucXRtLWZpZWxkLS1taXNzaW5nIC5pbnB1dC1maWVsZCB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXdhcm4teWVsbG93LTYwMCkgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpICFpbXBvcnRhbnQ7XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi90cmVlLWl0ZW0vX3RyZWUtaXRlbS1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4ucWRuYXByby10cmVlLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDAuNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zLCBjb2xvciAxMjBtcztcbn1cbi5xZG5hcHJvLXRyZWUtaXRlbTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4ucWRuYXByby10cmVlLWl0ZW06Zm9jdXMtdmlzaWJsZSwgLnFkbmFwcm8tdHJlZS1pdGVtLmZvcmNlLWZvY3VzIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSg3MCwgODIsIDI0MywgMC4yNSk7XG59XG4ucWRuYXByby10cmVlLWl0ZW0gPiAudHJlZS1pdGVtLWNoZXZyb24tYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby10cmVlLWl0ZW0gPiAudHJlZS1pdGVtLWNoZXZyb24tYnRuID4gLnRyZWUtaXRlbS1jaGV2cm9uLWljb24ge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTYwbXMgZWFzZTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbn1cbi5xZG5hcHJvLXRyZWUtaXRlbSA+IC50cmVlLWl0ZW0tY2hldnJvbi1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuLnFkbmFwcm8tdHJlZS1pdGVtID4gLnRyZWUtaXRlbS1jaGV2cm9uLWJ0bjphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDgpO1xufVxuLnFkbmFwcm8tdHJlZS1pdGVtID4gLnRyZWUtaXRlbS1jaGV2cm9uLWJ0bjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4ucWRuYXByby10cmVlLWl0ZW0gPiAudHJlZS1pdGVtLWNoZXZyb24tYnRuOmZvY3VzLXZpc2libGUsIC5xZG5hcHJvLXRyZWUtaXRlbSA+IC50cmVlLWl0ZW0tY2hldnJvbi1idG4uZm9yY2UtZm9jdXMge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbn1cbi5xZG5hcHJvLXRyZWUtaXRlbSA+IC50cmVlLWl0ZW0taWNvbiB7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8tdHJlZS1pdGVtID4gLnRyZWUtaXRlbS1sYWJlbCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnFkbmFwcm8tdHJlZS1pdGVtID4gLnRyZWUtaXRlbS1iYWRnZSB7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8tdHJlZS1pdGVtLnRyZWUtaXRlbS1leHBhbmRlZCA+IC50cmVlLWl0ZW0tY2hldnJvbi1idG4gPiAudHJlZS1pdGVtLWNoZXZyb24taWNvbiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xufVxuLnFkbmFwcm8tdHJlZS1pdGVtLnRyZWUtaXRlbS1sYXJnZSB7XG4gIG1pbi1oZWlnaHQ6IDQwcHg7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xufVxuLnFkbmFwcm8tdHJlZS1pdGVtLnRyZWUtaXRlbS1sYXJnZSA+IC50cmVlLWl0ZW0tY2hldnJvbi1idG4ge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xufVxuLnFkbmFwcm8tdHJlZS1pdGVtLnRyZWUtaXRlbS1sYXJnZS50cmVlLWl0ZW0tdHlwZS1zdWJmb2xkZXIge1xuICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcbn1cbi5xZG5hcHJvLXRyZWUtaXRlbS50cmVlLWl0ZW0tbGFyZ2UudHJlZS1pdGVtLXR5cGUtc3ViZm9sZGVyLnRyZWUtaXRlbS1hY3RpdmUge1xuICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XG59XG4ucWRuYXByby10cmVlLWl0ZW0udHJlZS1pdGVtLXNtYWxsIHtcbiAgbWluLWhlaWdodDogMzJweDtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZ2FwOiA4cHg7XG59XG4ucWRuYXByby10cmVlLWl0ZW0udHJlZS1pdGVtLXNtYWxsID4gLnRyZWUtaXRlbS1jaGV2cm9uLWJ0biB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG59XG4ucWRuYXByby10cmVlLWl0ZW0udHJlZS1pdGVtLXNtYWxsLnRyZWUtaXRlbS10eXBlLXN1YmZvbGRlciB7XG4gIHBhZGRpbmctbGVmdDogMjRweDtcbiAgcGFkZGluZy1yaWdodDogOHB4O1xufVxuLnFkbmFwcm8tdHJlZS1pdGVtLnRyZWUtaXRlbS1zbWFsbC50cmVlLWl0ZW0tdHlwZS1zdWJmb2xkZXIudHJlZS1pdGVtLWFjdGl2ZSB7XG4gIHBhZGRpbmctbGVmdDogNDhweDtcbn1cbi5xZG5hcHJvLXRyZWUtaXRlbS50cmVlLWl0ZW0tdHlwZS1zdWJmb2xkZXI6bm90KC50cmVlLWl0ZW0tYWN0aXZlKTpub3QoLnRyZWUtaXRlbS1kaXNhYmxlZCkge1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCk7XG59XG4ucWRuYXByby10cmVlLWl0ZW0udHJlZS1pdGVtLXR5cGUtY2hldnJvbjpub3QoLnRyZWUtaXRlbS1hY3RpdmUpOm5vdCgudHJlZS1pdGVtLWRpc2FibGVkKSA+IC50cmVlLWl0ZW0tbGFiZWwge1xuICBmb250LXdlaWdodDogNzAwO1xufVxuLnFkbmFwcm8tdHJlZS1pdGVtOm5vdCgudHJlZS1pdGVtLWFjdGl2ZSk6bm90KC50cmVlLWl0ZW0tZGlzYWJsZWQpOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwKTtcbn1cbi5xZG5hcHJvLXRyZWUtaXRlbTpub3QoLnRyZWUtaXRlbS1hY3RpdmUpOm5vdCgudHJlZS1pdGVtLWRpc2FibGVkKTphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbn1cbi5xZG5hcHJvLXRyZWUtaXRlbS50cmVlLWl0ZW0tYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI2U2ZTlmZjtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG4ucWRuYXByby10cmVlLWl0ZW0udHJlZS1pdGVtLWFjdGl2ZSA+IC50cmVlLWl0ZW0tbGFiZWwge1xuICBmb250LXdlaWdodDogNzAwO1xufVxuLnFkbmFwcm8tdHJlZS1pdGVtLnRyZWUtaXRlbS1hY3RpdmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCk7XG59XG4ucWRuYXByby10cmVlLWl0ZW0udHJlZS1pdGVtLWFjdGl2ZTphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZGViYXItaWNvbik7XG59XG4ucWRuYXByby10cmVlLWl0ZW0udHJlZS1pdGVtLWRpc2FibGVkLCAucWRuYXByby10cmVlLWl0ZW0udHJlZS1pdGVtLWRpc2FibGVkOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCk7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdHJlZS1pdGVtIHtcbiAgY29sb3I6ICNlMWUzZTY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10cmVlLWl0ZW0gPiAudHJlZS1pdGVtLWljb24sXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10cmVlLWl0ZW0gPiAudHJlZS1pdGVtLWNoZXZyb24tYnRuID4gLnRyZWUtaXRlbS1jaGV2cm9uLWljb24ge1xuICBjb2xvcjogI2UxZTNlNjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRyZWUtaXRlbSA+IC50cmVlLWl0ZW0tYmFkZ2Uge1xuICBjb2xvcjogI2E2YWFiMztcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10cmVlLWl0ZW06bm90KC50cmVlLWl0ZW0tYWN0aXZlKTpub3QoLnRyZWUtaXRlbS1kaXNhYmxlZCk6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjNTY1YjY2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdHJlZS1pdGVtLnRyZWUtaXRlbS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjNDY1MmYzO1xuICBjb2xvcjogI2YwZjFmMjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRyZWUtaXRlbS50cmVlLWl0ZW0tYWN0aXZlOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogIzM4NDJjMjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRyZWUtaXRlbS50cmVlLWl0ZW0tYWN0aXZlID4gLnRyZWUtaXRlbS1pY29uLFxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdHJlZS1pdGVtLnRyZWUtaXRlbS1hY3RpdmUgPiAudHJlZS1pdGVtLWJhZGdlLFxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdHJlZS1pdGVtLnRyZWUtaXRlbS1hY3RpdmUgPiAudHJlZS1pdGVtLWNoZXZyb24tYnRuID4gLnRyZWUtaXRlbS1jaGV2cm9uLWljb24ge1xuICBjb2xvcjogI2YwZjFmMjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRyZWUtaXRlbS50cmVlLWl0ZW0tZGlzYWJsZWQsIFtkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRyZWUtaXRlbS50cmVlLWl0ZW0tZGlzYWJsZWQ6aG92ZXIge1xuICBjb2xvcjogIzZiNzI4MDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRyZWUtaXRlbS50cmVlLWl0ZW0tZGlzYWJsZWQgPiAudHJlZS1pdGVtLWljb24sXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10cmVlLWl0ZW0udHJlZS1pdGVtLWRpc2FibGVkID4gLnRyZWUtaXRlbS1iYWRnZSxcbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRyZWUtaXRlbS50cmVlLWl0ZW0tZGlzYWJsZWQgPiAudHJlZS1pdGVtLWNoZXZyb24tYnRuID4gLnRyZWUtaXRlbS1jaGV2cm9uLWljb24sIFtkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRyZWUtaXRlbS50cmVlLWl0ZW0tZGlzYWJsZWQ6aG92ZXIgPiAudHJlZS1pdGVtLWljb24sXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10cmVlLWl0ZW0udHJlZS1pdGVtLWRpc2FibGVkOmhvdmVyID4gLnRyZWUtaXRlbS1iYWRnZSxcbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRyZWUtaXRlbS50cmVlLWl0ZW0tZGlzYWJsZWQ6aG92ZXIgPiAudHJlZS1pdGVtLWNoZXZyb24tYnRuID4gLnRyZWUtaXRlbS1jaGV2cm9uLWljb24ge1xuICBjb2xvcjogIzZiNzI4MDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRyZWUtaXRlbTpmb2N1cy12aXNpYmxlLCBbZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10cmVlLWl0ZW0uZm9yY2UtZm9jdXMge1xuICBvdXRsaW5lLWNvbG9yOiAjYTVhY2ZmO1xuICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSg3MCwgODIsIDI0MywgMC40KTtcbn1cbiIsIi8vIHFkbmFwcm8tdW5pdC1pbnB1dC1yb3cg4oCUIG9uZSByb3cgb2YgdGhlIFBXQSBwZXItdW5pdCBvcGVuLWludm9lciBzY3JlZW4uXG4vLyBGTEFUIENTUyAoY29waWVkIHZlcmJhdGltIGludG8gdGhlIFBXQSBieSBzeW5jLXYyLWNvbXBvbmVudHMuanMpLiBDb2xvdXJzL3JhZGlpIGNvbWVcbi8vIGZyb20gdGhlIGRlc2lnbi10b2tlbiA6cm9vdCAodmFyKC0tYy0qKSAvIC0tci0qKTsgLS10aGVtZS0qIHN0YXlzIGZvciBmbG93IHRoZW1pbmcuXG4vLyBFZGl0IEhFUkUsIHRoZW4gYGd1bHAgc2Fzcy12MWAgKGxpYnJhcnkpICsgdGhlIHN5bmMgKFBXQSkuIEBtZWRpYSBpcyBmaW5lLlxuXG4ucWRuYXByby11bml0LWlucHV0LXJvdyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiA4cHggMTJweDtcbiAgYm9yZGVyOiAxLjVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXJvdyk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1mb250LWZhbWlseSwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMsIGJhY2tncm91bmQgMC4ycztcbn1cblxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cudWlyLWJvcmRlcmxlc3Mge1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG4vKiBFcnJvciA9IHNvZnQgcmVkIGJhY2tncm91bmQ7IG5vIGNvbG91cmVkIGJvcmRlci4gKi9cbi5xZG5hcHJvLXVuaXQtaW5wdXQtcm93LnVpci1lcnJvciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLXJlZC1zb2Z0KTtcbn1cblxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cgLnVpci1lcnJvci1tc2cge1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiB2YXIoLS1jLXRhZy1jcml0aWNhbC10ZXh0KTtcbiAgbWFyZ2luLXRvcDogM3B4O1xufVxuXG4vLyBUaGUgd2hvbGUgbGVmdCB6b25lIChpbWFnZSArIG5hbWUgKyBFQU4pIGlzIHRoZSB0YXAgLyBsb25nLXByZXNzIHRhcmdldCBhbmQgY2Fycmllc1xuLy8gdGhlIHByZXNzZWQgc3RhdGUg4oCUIG5vdCBqdXN0IHRoZSBuYW1lLiBwYWRkaW5nICsgbWF0Y2hpbmcgbmVnYXRpdmUgbWFyZ2luIGdpdmUgdGhlXG4vLyBwcmVzc2VkIGhpZ2hsaWdodCBicmVhdGhpbmcgcm9vbSB3aXRob3V0IHNoaWZ0aW5nIHRoZSBsYXlvdXQuICgxMnB4IOKGkiAtLXItY2FyZCAxNHB4Lilcbi5xZG5hcHJvLXVuaXQtaW5wdXQtcm93IC51aXItbWFpbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMyk7IC8qIDEycHgg4oCUIHRoZSBwcmVzc2VkLXpvbmUgcmFkaXVzIEtpbSBwaWNrZWQgKi9cbiAgcGFkZGluZzogNHB4O1xuICBtYXJnaW46IC00cHg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTJzIGVhc2UsIHRyYW5zZm9ybSAwLjFzIGVhc2U7XG59XG4vKiBQcmVzc2VkIHN0YXRlIChhZGRlZCB2aWEgSlMgcG9pbnRlcmRvd24g4oCUIHJlbGlhYmxlIG9uIHRvdWNoKTogcHVycGxlLXRpbnRlZFxuICAgaGlnaGxpZ2h0IG92ZXIgaW1hZ2UgKyBuYW1lICsgRUFOLCBwbHVzIGEgc21hbGwgc3F1YXNoLiAqL1xuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cgLnVpci1tYWluLmlzLXByZXNzZWQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS1zb2Z0LTEyKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTtcbn1cblxuLy8gSW1hZ2Ugd3JhcHBlciBpcyBhbHdheXMgcmVuZGVyZWQg4oCUIGV2ZW4gd2l0aG91dCBzaG93LWltYWdlIOKAlCBzbyB0aGUgc3RhdHVzIGNpcmNsZVxuLy8gaGFzIGEgcmVsaWFibGUgYW5jaG9yLiBXaXRob3V0IGFuIGltYWdlIHRoZSB3cmFwcGVyIGNvbGxhcHNlcyB0byAwIHdpZHRoIChvdmVyZmxvd1xuLy8gdmlzaWJsZSkgYW5kIHRoZSBjaXJjbGUgc3RpbGwgc2hvd3MgYXQgdGhlIGxlZnQgZWRnZS5cbi5xZG5hcHJvLXVuaXQtaW5wdXQtcm93IC51aXItaW1hZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cudWlyLW5vLWltYWdlIC51aXItaW1hZ2Uge1xuICB3aWR0aDogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4ucWRuYXByby11bml0LWlucHV0LXJvdyAudWlyLWltYWdlIGltZyB7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDQ4cHg7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLWJ0bik7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cgLnVpci1pbWFnZS1lbXB0eSB7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItYnRuKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ibGFjay0wNik7XG59XG5cbi8vIFN0YXR1cyBjaXJjbGUg4oCUIGFuY2hvcmVkIHRvIHRoZSBib3R0b20tbGVmdCBvZiB0aGUgaW1hZ2UsIG1hdGNoaW5nIHRoZSB1bml0LWNhcmRcbi8vIGNoZWNrLWJhZGdlIHBhdHRlcm4uIEhpZGRlbiBieSBkZWZhdWx0OyBhbmltYXRlZCBpbiB3aGVuIGZpbGxlZCBvciBlcnJvci5cbi5xZG5hcHJvLXVuaXQtaW5wdXQtcm93IC51aXItc3RhdHVzLWNpcmNsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAtNnB4O1xuICBsZWZ0OiAtNnB4O1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjQpO1xuICB6LWluZGV4OiAyO1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xufVxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cudWlyLWZpbGxlZCAudWlyLXN0YXR1cy1jaXJjbGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1Y2Nlc3MtYnJpZ2h0LCAjMWRiODdhKTtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgYW5pbWF0aW9uOiB1aXItYmFkZ2UtcG9wIDAuNTJzIGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjUsIDEpO1xufVxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cudWlyLWVycm9yIC51aXItc3RhdHVzLWNpcmNsZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtdGFnLWNyaXRpY2FsLXRleHQsICNjMDM5MmIpO1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICBhbmltYXRpb246IHVpci1iYWRnZS1wb3AgMC41MnMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNSwgMSk7XG59XG5cbi8vIERyYXctaW4gY2hlY2ttYXJrIChmaWxsZWQgc3RhdGUgb25seSkuXG4ucWRuYXByby11bml0LWlucHV0LXJvdyAudWlyLWNoZWNrLXBhdGgge1xuICBzdHJva2UtZGFzaGFycmF5OiAyMztcbiAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDIzO1xufVxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cudWlyLWZpbGxlZCAudWlyLWNoZWNrLXBhdGgge1xuICBhbmltYXRpb246IHVpci1kcmF3IDAuMzhzIGN1YmljLWJlemllcigwLjIyLCAxLCAwLjM2LCAxKSAwLjA0cyBmb3J3YXJkcztcbn1cblxuQGtleWZyYW1lcyB1aXItYmFkZ2UtcG9wIHtcbiAgMCUgICB7IHRyYW5zZm9ybTogc2NhbGUoMC43KSAgcm90YXRlKDBkZWcpOyAgfVxuICAyMCUgIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjIyKSByb3RhdGUoLTVkZWcpOyB9XG4gIDQ0JSAgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOTApIHJvdGF0ZSgzZGVnKTsgIH1cbiAgNjQlICB7IHRyYW5zZm9ybTogc2NhbGUoMS4wOCkgcm90YXRlKC0xZGVnKTsgfVxuICA4MCUgIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjk3KSByb3RhdGUoMGRlZyk7ICB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpICAgIHJvdGF0ZSgwZGVnKTsgIH1cbn1cbkBrZXlmcmFtZXMgdWlyLWRyYXcge1xuICAwJSAgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDIzOyAgfVxuICA2MiUgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0xOyAgfVxuICA4MCUgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDAuNzsgfVxuICAxMDAlIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7ICAgfVxufVxuXG4ucWRuYXByby11bml0LWlucHV0LXJvdyAudWlyLXRleHQge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG59XG4vLyBUaGUgbmFtZSB3cmFwcyBieSBkZWZhdWx0IChzbyBtYXgtaGVpZ2h0IGFuaW1hdGVzIGFnYWluc3QgdGhlIHJlYWwgY29udGVudCBoZWlnaHRcbi8vIGluIEJPVEggZGlyZWN0aW9ucyDigJQgc2VlIF9leHBhbmROYW1lL19jb2xsYXBzZU5hbWUgaW4gdGhlIEpTKS4gYC5pcy1jbGFtcGVkYCBpcyB0aGVcbi8vIHJlc3Rpbmcgb25lLWxpbmUgZWxsaXBzaXMgc3RhdGUsIHJlLWFwcGxpZWQgb25seSBhZnRlciBhIGNvbGxhcHNlIGZpbmlzaGVzLlxuLy8gZWFzZU91dFF1aW50IEAgMC4yNnMgPSBmYXN0IGJ1dCBzbW9vdGguIChQcmVzcy90YXAgbGl2ZSBvbiAudWlyLW1haW4gbm93Lilcbi5xZG5hcHJvLXVuaXQtaW5wdXQtcm93IC51aXItbmFtZSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6IHZhcigtLXRoZW1lLWZpZWxkLXRleHQtY29sb3IsICMxZDFkMWIpO1xuICBsaW5lLWhlaWdodDogMS41ZW07XG4gIG1heC1oZWlnaHQ6IDEuNWVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMjZzIGN1YmljLWJlemllcigwLjIyLCAxLCAwLjM2LCAxKTtcbn1cbi5xZG5hcHJvLXVuaXQtaW5wdXQtcm93IC51aXItbmFtZS5pcy1jbGFtcGVkIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi8vIE5vIG1ldGE6IHNob3cgMiBsaW5lcyBvZiB0aGUgbmFtZSBpbnN0ZWFkIG9mIDEuIFRoZSBpcy1jbGFtcGVkIHN0YXRlIHN3aXRjaGVzXG4vLyB0byBub3JtYWwgd3JhcHBpbmcgKG5vIHRydW5jYXRpb24gYXQgbGluZSAxKS4gVGFwLXRvLWV4cGFuZCBzdGlsbCB3b3JrcyBmb3Jcbi8vIG5hbWVzIGxvbmdlciB0aGFuIDIgbGluZXMgdmlhIHRoZSBKUyBfY29sbGFwc2VkSGVpZ2h0KCkgaGVscGVyLlxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cudWlyLW5vLW1ldGEgLnVpci1uYW1lIHtcbiAgbWF4LWhlaWdodDogM2VtO1xufVxuLy8gVHJ1ZSBtdWx0aS1saW5lIGVsbGlwc2lzOiBjbGFtcCB0aGUgcmVzdGluZyAyLWxpbmUgc3RhdGUgd2l0aCAtd2Via2l0LWxpbmUtY2xhbXAgc28gYW4gXCLigKZcIlxuLy8gYXBwZWFycyBhdCB0aGUgZW5kIHdoZW4gdGhlIG5hbWUgaXMgY3V0IG9mZiAoZS5nLiBcIk9tZXByYXpvbCBWaWF0cmlzIDIwbWcgQ2FwcyAxMDBcIiDihpIgXCLigKYyMG1n4oCmXCIpLlxuLy8gUGxhaW4gb3ZlcmZsb3c6aGlkZGVuIHdvdWxkIHNpbGVudGx5IGRyb3AgdGhlIHRoaXJkIGxpbmUgd2l0aCBubyBjdWUuIFRoZSBjbGFtcCBsaXZlcyBvbmx5IG9uXG4vLyAuaXMtY2xhbXBlZCAodGhlIHJlc3Rpbmcgc3RhdGUpOyB0YXAtdG8tZXhwYW5kIHJlbW92ZXMgdGhlIGNsYXNzLCBzbyB0aGUgZnVsbCBuYW1lIHN0aWxsIHVuZm9sZHMuXG4ucWRuYXByby11bml0LWlucHV0LXJvdy51aXItbm8tbWV0YSAudWlyLW5hbWUuaXMtY2xhbXBlZCB7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAvLyBUaGUgYmFzZSAuaXMtY2xhbXBlZCBydWxlIChhYm92ZSkgc2V0cyB3aGl0ZS1zcGFjZTpub3dyYXAgZm9yIGl0cyBvd24gMS1saW5lXG4gIC8vIGVsbGlwc2lzLiAtd2Via2l0LWxpbmUtY2xhbXAgbmVlZHMgdGhlIHRleHQgdG8gYWN0dWFsbHkgV1JBUCBiZWZvcmUgaXQgY2FuXG4gIC8vIGNsYW1wIGF0IDIgbGluZXMsIHNvIG5vd3JhcCBtdXN0IGJlIG92ZXJyaWRkZW4gaGVyZSDigJQgd2l0aG91dCB0aGlzLCB0aGUgbmFtZVxuICAvLyBuZXZlciByZWFjaGVzIGEgMm5kIGxpbmUgcmVnYXJkbGVzcyBvZiBtYXgtaGVpZ2h0Ly13ZWJraXQtbGluZS1jbGFtcCwgYW5kIHlvdVxuICAvLyBqdXN0IGdldCAxLWxpbmUgdHJ1bmNhdGlvbiBhZ2Fpbi4gW0tpbSBjYXVnaHQgdGhpcyAyMDI2LTA3LTAxXVxuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cudWlyLWZpbGxlZCAudWlyLW5hbWUge1xuICBjb2xvcjogdmFyKC0tdGhlbWUtZGVzY3JpcHRpb24tY29sb3IsICM2YjZiNmIpO1xufVxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cgLnVpci1tZXRhIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogdmFyKC0tdGhlbWUtZGVzY3JpcHRpb24tY29sb3IsICM4YThhOGEpO1xuICBtYXJnaW4tdG9wOiAycHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cgLnVpci1tZXRhW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vLyBmbGV4LWdyb3c6IDEgKHdhcyAwLCB0aGUgZmxleC9mbGV4LWJhc2lzIGRlZmF1bHQpIGxldHMgdGhpcyB6b25lIGNsYWltIGl0cyBzaGFyZSBvZiB0aGVcbi8vIHJvdydzIGZyZWUgc3BhY2UgaW5zdGVhZCBvZiBoYW5kaW5nIEFMTCBvZiBpdCB0byAudWlyLW1haW4uIFdpdGhvdXQgaXQsIC51aXItaW5wdXQncyBvd25cbi8vIGJveCBpcyBzaXplZCBwdXJlbHkgZnJvbSBpdHMgY29udGVudCAoYSBmaXhlZC13aWR0aCBxZG5hcHJvLWlucHV0LCBvciBhIDEwMCUtd2lkdGggY2hpbGRcbi8vIGxpa2UgLnluLXVuaXQtYnV0dG9ucyB0aGF0IGhhcyBub3RoaW5nIGRlZmluaXRlIHRvIGZpbGwgYWdhaW5zdCksIHNvIHRoZSByb3cncyByaWdodC1oYW5kXG4vLyBzcGFjZSBzaWxlbnRseSB3ZW50IHRvIHRoZSBuYW1lIGNvbHVtbiBhbmQgdGhlIGhvc3RlZCBmaWVsZC9idXR0b25zIHN0b3BwZWQgc2hvcnQgb2YgdGhlXG4vLyByb3cncyB0cnVlIHJpZ2h0IGVkZ2UgLS0gdmlzaWJsZSBhcyBhIHJpZ2h0LXNpZGUgZ2FwIHZzLiB0aGUgZXllLXRvZ2dsZSBidXR0b24gYWJvdmUgdGhlXG4vLyBsaXN0LCB3aGljaCBET0VTIHJlYWNoIHRoYXQgZWRnZS4ganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZCB0aGVuIGh1Z3MgYSBzdGlsbC1uYXJyb3dlclxuLy8gY2hpbGQgKGUuZy4gYSBjb21wYWN0IG51bWJlci9kYXRlIHFkbmFwcm8taW5wdXQpIGFnYWluc3QgdGhhdCBlZGdlIGluc3RlYWQgb2YgbGVhdmluZyBpdFxuLy8gc3RyYW5kZWQgb24gdGhlIGxlZnQgb2YgYSBub3ctd2lkZXIgYm94LiBpbnB1dC10eXBlPVwidGV4dFwiL1wiZXhwYW5kaW5nXCIga2VlcCB0aGVpciBvd24gbW9yZVxuLy8gc3BlY2lmaWMgZmxleDogNiAxIDAgb3ZlcnJpZGUgYmVsb3cgKGhpZ2hlciBzcGVjaWZpY2l0eSwgdW5hZmZlY3RlZCk7IHRoZWlyIHFkbmFwcm8taW5wdXRcbi8vIGFscmVhZHkgZmxleDoxLWZpbGxzIHRoaXMgem9uZSwgc28ganVzdGlmeS1jb250ZW50IGlzIGEgbm8tb3AgdGhlcmUuIFN0YWNrZWQgbGF5b3V0IGZvcmNlc1xuLy8gd2lkdGg6IDEwMCUgb24gdGhpcyB6b25lIHJlZ2FyZGxlc3MsIHNvIHRoaXMgaXMgYSBuby1vcCB0aGVyZSB0b28uIFsyMDI2LTA3LTEyXVxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cgLnVpci1pbnB1dCB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBmbGV4LWdyb3c6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGdhcDogOHB4O1xufVxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cgLnVpci1pbnB1dCBxZG5hcHJvLWlucHV0IHtcbiAgd2lkdGg6IDk2cHg7XG59XG4vKiBXaXRoIMKxIGNvdW50ZXIgYnV0dG9ucyAoc3Bpbm5lcikgdGhlIGZpZWxkIG5lZWRzIHJvb20gZm9yIOKIkiBmaWVsZCArIC4gVGhlIMKxIHRvdWNoXG4gICBidXR0b25zICh+NDRweCBlYWNoKSArIGEgZGVjaW1hbCB2YWx1ZSBjbGlwcGVkIGF0IDEzOHB4OyB3aWRlbmVkIHNvIFwiMCwwMFwiIC8gY291bnRzXG4gICBzdGF5IHZpc2libGUuIE5vdCB2aWV3cG9ydC1nYXRlZDogdGhlIGNsaXAgaXMgZmllbGQtdnMtY29udGVudCwgcHJlc2VudCBldmVyeXdoZXJlLiAqL1xuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cgLnVpci1pbnB1dCBxZG5hcHJvLWlucHV0W3NwaW5uZXJdIHtcbiAgd2lkdGg6IDE4MHB4O1xufVxuXG4vKiBEcm9wIHRoZSBpbi1maWVsZCBzdGF0ZSBpY29uICh0aGUgcmVkIFwiIVwiIGFsZXJ0LWNpcmNsZSkgaW5zaWRlIHRoZSBwZXItdW5pdCByb3cuIFRoZSBlcnJvciBpc1xuICAgYWxyZWFkeSBzaWduYWxsZWQgYnkgdGhlIHJlZCByb3cgYm9yZGVyLCB0aGUgcmVkIOKclyBvbiB0aGUgaW1hZ2UsIGFuZCB0aGUgXCJTdGlsbCB0byBmaWxsXCIgbGluZSDigJRcbiAgIHRoZSBleHRyYSBcIiFcIiBvbmx5IGVhdHMgd2lkdGgsIHdoaWNoIGh1cnRzIG1vc3Qgb24gdGhlIG5hcnJvdyBudW1iZXIvZGF0ZS9kZWNpbWFsIGZpZWxkcy5cbiAgIFNjb3BlZCB0byB0aGlzIHJvdyBvbmx5IChub3QgcWRuYXByby1pbnB1dCBlbHNld2hlcmUpLiA1IGNsYXNzZXMgKyBlbGVtZW50ICg1MSkgYmVhdHMgdGhlXG4gICBjb21wb25lbnQncyBvd24gLmlucHV0LXN0YXRlLWljb24gZGlzcGxheSBydWxlICg0MCkgd2l0aG91dCAhaW1wb3J0YW50LiAqL1xuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cgLnVpci1pbnB1dCBxZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZCAuaW5wdXQtdHJhaWxpbmcgLmlucHV0LXN0YXRlLWljb24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBOYXJyb3cgc2NyZWVucyAocGhvbmUpICsgcGVyLXVuaXQgT05MWTogZHJvcCB0aGUgaW4tZmllbGQgY2xlYXIgKMOXKSBidXR0b24uIEluIHRoZVxuICAgY29tcGFjdCBcImlucHV0IGZvciBldmVyeSB1bml0XCIgcm93cyB0aGUgw5cgZWF0cyB0aGUgd2lkdGggdGhlIHZhbHVlIG5lZWRzIOKAlCBpdCBjbGlwc1xuICAgXCLigqwgMiwwMFwiIC8gXCIwLDAwMFwiIG9uIGRlY2ltYWwgKyBjdXJyZW5jeS4gT24gcGhvbmUgdGhhdCBzcGFjZSBpcyB0b28gcHJlY2lvdXM7IG9uXG4gICB0YWJsZXQvZGVza3RvcCB0aGVyZSdzIHJvb20sIHNvIHRoZSDDlyBzdGF5cyB0aGVyZS4gU2VsZWN0LWFsbCArIHJldHlwZSBzdGlsbCBjbGVhcnMuXG4gICBTY29wZWQgdG8gLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cgc28gc2luZ2xlIGZ1bGwtd2lkdGggZmllbGRzIGtlZXAgdGhlaXIgw5cuIFtLaW0gMjAyNi0wNy0wMV0gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAucWRuYXByby11bml0LWlucHV0LXJvdyAudWlyLWlucHV0IHFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC10cmFpbGluZyBxZG5hcHJvLWljb24tYnRuW2ljb249XCJjbG9zZVwiXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAvKiBDdXJyZW5jeSBzdGlsbCBuZWVkcyBhIGJpdCBtb3JlIHJvb20gZm9yIHRoZSDigqwgcHJlZml4ICsgdmFsdWUgKGV2ZW4gd2l0aG91dCB0aGUgw5cpLiAqL1xuICAucWRuYXByby11bml0LWlucHV0LXJvd1tpbnB1dC10eXBlPVwiY3VycmVuY3lcIl0gLnVpci1pbnB1dCBxZG5hcHJvLWlucHV0IHtcbiAgICB3aWR0aDogMTMwcHg7XG4gIH1cbiAgLyogRGF0ZTogdGhlIG5hdGl2ZSBwaWNrZXIgKGRkL21tL3l5eXkgKyBjYWxlbmRhciBpY29uKSBoYXMgYSB3aWRlIGludHJpbnNpYyBtaW5cbiAgICAgKH4yMDBweCkuIEF0IHRoZSA5NnB4IGRlZmF1bHQgaXQgb3ZlcmZsb3dlZCBvZmYtc2NyZWVuLiBXaWRlbiBzbyBpdCBmaXRzOyB0aGUgbmFtZVxuICAgICBjb2x1bW4geWllbGRzIChLaW0ncyBwaWNrIOKAlCBvcHRpb24gMSkuIFRpbWUgaXMgbmFycm93ZXIgYnV0IGFsc28gY2xpcHBlZCBhdCA5NnB4LiAqL1xuICAucWRuYXByby11bml0LWlucHV0LXJvd1tpbnB1dC10eXBlPVwiZGF0ZVwiXSAudWlyLWlucHV0IHFkbmFwcm8taW5wdXQge1xuICAgIHdpZHRoOiAyMDBweDtcbiAgfVxuICAucWRuYXByby11bml0LWlucHV0LXJvd1tpbnB1dC10eXBlPVwidGltZVwiXSAudWlyLWlucHV0IHFkbmFwcm8taW5wdXQge1xuICAgIHdpZHRoOiAxMjBweDtcbiAgfVxufVxuXG4vKiBQZXItdW5pdCBtZXNzYWdlIGNoYW5uZWw6IHRoZSBmaWVsZCdzIE9XTiB2YWxpZGF0aW9uIG1lc3NhZ2Ugc3RheXMgaGlkZGVuIOKAlCB0aGUgcGVyLXVuaXQgZXJyb3JcbiAgIGlzIGNhcnJpZWQgYnkgdGhlIHJvdyBpbnN0ZWFkIChcIlN0aWxsIHRvIGZpbGxcIiB1bmRlciB0aGUgbmFtZSwgc2V0IGJ5IGFkdmFuY2VkX2lucHV0LmpzKS4gVGhlXG4gICBsb25nIHJlcXVpcmVkIG1lc3NhZ2UgKFwiWW91IGhhdmUgdG8gZmlsbCBvdXQgYWxsIHJlcXVpcmVkIGZvcm0gZmllbGRzLlwiKSB3b3VsZCBvdGhlcndpc2UgcnVuIG9mZlxuICAgYSBuYXJyb3cgcGhvbmUgZmllbGQuIEF1dG8tc2NvcGVkIHRvIHBlci11bml0IGJlY2F1c2Ugb25seSB0aGUgcGVyLXVuaXQgc2NyZWVuIHdyYXBzIHRoZSBpbnB1dCBpblxuICAgLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3c7IHRoZSBzaW5nbGUgZnVsbC13aWR0aCBmaWVsZCAobm90LXBlci11bml0KSBpcyB1bndyYXBwZWQgYW5kIGtlZXBzIHRoZVxuICAgZnVsbGVyIG1lc3NhZ2UuIENvdmVycyBib3RoIGJsdXIgYW5kIHN1Ym1pdCBwYXRocyBpbiBvbmUgcnVsZS4gVGhlIGNvbnN0cmFpbnRzIGhpbnQgKGEgc2VwYXJhdGVcbiAgIGxpbmUgYmVsb3cgdGhlIGZpZWxkKSBpcyBOT1QgLmlucHV0LW1lc3NhZ2UsIHNvIG1pbi9tYXgvcmFuZ2UgaGludHMgc3RpbGwgc2hvdy4gKi9cbi5xZG5hcHJvLXVuaXQtaW5wdXQtcm93IC51aXItaW5wdXQgcWRuYXByby1pbnB1dCAuaW5wdXQtbWVzc2FnZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIFNpemluZy9zaGFwZSAoNDR4NDQpIG5vdyBjb21lcyBmcm9tIHFkbmFwcm8tYnV0dG9uJ3Mgb3duIHNpemU9XCJ0b3VjaFwiICtcbi8vIGljb24tb25seSBDU1Mg4oCUIG9ubHkgdGhlIG9yZy10aGVtZWFibGUgY29sb3VyIHN0YXlzIGEgbG9jYWwgb3ZlcnJpZGUsIHNpbmNlXG4vLyBxZG5hcHJvLWJ1dHRvbidzIG93biBzZWNvbmRhcnktcHVycGxlIHR5cGUgaXMgYSBmaXhlZCBjb2xvdXIgd2l0aCBub1xuLy8gdmFyKC0tdGhlbWUtYnRuLWNvbG9yKSBob29rLiBjb2xvci1taXggbWlycm9ycyBzZWNvbmRhcnktcHVycGxlJ3Mgb3duIGxpZ2h0LVxuLy8gdGludC1iZy9zb2xpZC10ZXh0IGxvb2sgKCNlNmU5ZmYgLyAjNDA0OTlhKSBidXQgZGVyaXZlcyBib3RoIGZyb20gdGhlIG9yZydzXG4vLyB0aGVtZSBjb2xvdXIgaW5zdGVhZCBvZiB0aGUgaGFyZGNvZGVkIGRlZmF1bHQuIFsyMDI2LTA3LTAxXVxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cgLnVpci1zY2FuIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpIDEyJSwgI2ZmZik7XG4gIGNvbG9yOiB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpO1xufVxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cgLnVpci1zY2FuIHFkbmFwcm8taWNvbiB7XG4gIGNvbG9yOiB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpO1xufVxuXG4vLyBTdGFja2VkOiBpbnB1dCBkcm9wcyBmdWxsLXdpZHRoIGJlbG93IHRoZSBpbWFnZSArIG5hbWUuXG4ucWRuYXByby11bml0LWlucHV0LXJvdy51aXItbGF5b3V0LXN0YWNrZWQge1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4ucWRuYXByby11bml0LWlucHV0LXJvdy51aXItbGF5b3V0LXN0YWNrZWQgLnVpci1tYWluIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4ucWRuYXByby11bml0LWlucHV0LXJvdy51aXItbGF5b3V0LXN0YWNrZWQgLnVpci1pbnB1dCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiA2cHg7XG59XG4ucWRuYXByby11bml0LWlucHV0LXJvdy51aXItbGF5b3V0LXN0YWNrZWQgLnVpci1pbnB1dCBxZG5hcHJvLWlucHV0IHtcbiAgZmxleDogMTtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi8vIOKUgOKUgCBUZXh0IC8gZXhwYW5kaW5nOiBmbHVpZCBmaWVsZCwgd2lkdGgtaW5kZXBlbmRlbnQg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBUZXh0IChhbmQgaXRzIGV4cGFuZGFibGUgdmFyaWFudCkgZXhwZWN0cyBhIGxvbmdlciBhbnN3ZXIgdGhhbiBhIG51bWJlci9kYXRlL3RpbWUuIFRoZSBmaWVsZFxuLy8gaXMgRkxVSUQgYXQgZXZlcnkgdmlld3BvcnQ6IGl0IHNoYXJlcyB0aGUgcm93IHdpdGggdGhlIHVuaXQgbmFtZSB2aWEgZmxleCBhbmQgZ3Jvd3Mgc21vb3RobHlcbi8vIGFzIHRoZSB2aWV3cG9ydCB3aWRlbnMg4oCUIG5vIGJyZWFrcG9pbnQgc3RlcC4gVGhlIG5hbWUgd3JhcHMgdG8gMiBsaW5lcyAodmlhIG5vLW1ldGEpIGFuZCBnaXZlc1xuLy8gdXAgc3BhY2U7IG9uIHBob25lIHRoZSBzcGxpdCBsYW5kcyB+NDAvNjAgKGZpZWxkIGRvbWluYW50IOKAlCBLaW0ncyBwaWNrIGZvciBsb25nIGlucHV0L2JhcmNvZGVzKS5cbi8vIFRoZSBpbnB1dCB6b25lIGlzIGNhcHBlZCBhdCA1NjRweCAo4omINTIwcHggZmllbGQgKyAzNnB4IHNjYW4gYnV0dG9uICsgOHB4IGdhcCkgc28gdGhlIGZpZWxkXG4vLyBzdG9wcyBncm93aW5nIGF0IH41MjBweCBvbiB3aWRlIHRhYmxldC9kZXNrdG9wIGFuZCB0aGUgc3VycGx1cyBnb2VzIGJhY2sgdG8gdGhlIG5hbWUuXG4vLyBudW1iZXIgLyBjdXJyZW5jeSAvIGRhdGUgLyB0aW1lIGFyZSBOT1QgZmx1aWQg4oCUIHRoZXkga2VlcCBmaXhlZCBjb21wYWN0IHdpZHRocyAoc2VlIHRhYmxldCBibG9jaykuXG4vL1xuLy8gU3BsaXQgaXMgc2V0IGJ5IGV4cGxpY2l0IGZsZXgtZ3JvdyBvbiBhIDAgYmFzaXMgKDQgOiA2IOKJiCA0MC82MCksIE5PVCBieSBjb250ZW50LiBBIGNvbnRlbnRcbi8vIGJhc2lzIChmbGV4LWJhc2lzOmF1dG8pIHdvdWxkIG1ha2UgYSBGSUxMRUQgcm93IHdpZGVyIHRoYW4gZW1wdHkgb25lcyDigJQgdGhlIGNsZWFyICjDlykgYnV0dG9uXG4vLyBhZGRzIHdpZHRoIOKAlCBzbyByb3dzIHdvdWxkIG1pc2FsaWduLiBCYXNpcyAwIGtlZXBzIGV2ZXJ5IHJvdydzIGZpZWxkIGV4YWN0bHkgdGhlIHNhbWUgd2lkdGguXG4vLyA6bm90KC51aXItbGF5b3V0LXN0YWNrZWQpIOKAlCB0aGUgZmx1aWQgaW5saW5lIHNwbGl0IG11c3QgTk9UIGFwcGx5IHdoZW4gdGhlIHJvdyBpcyBzdGFja2VkXG4vLyAoXCJJbnB1dCBiZWxvdyBuYW1lXCIpLCBvciBpdCBvdmVycmlkZXMgdGhlIHN0YWNrZWQgd2lkdGg6MTAwJSAoZXF1YWwgc3BlY2lmaWNpdHksIGRlZmluZWQgbGF0ZXIpXG4vLyBhbmQgdGhlIGZpZWxkIG5ldmVyIGRyb3BzIGJlbG93IHRoZSBuYW1lLiBTdGFja2VkIGtlZXBzIGl0cyBvd24gZnVsbC13aWR0aCBydWxlcyBiZWxvdy5cbi5xZG5hcHJvLXVuaXQtaW5wdXQtcm93W2lucHV0LXR5cGU9XCJ0ZXh0XCJdOm5vdCgudWlyLWxheW91dC1zdGFja2VkKSAudWlyLW1haW4sXG4ucWRuYXByby11bml0LWlucHV0LXJvd1tpbnB1dC10eXBlPVwiZXhwYW5kaW5nXCJdOm5vdCgudWlyLWxheW91dC1zdGFja2VkKSAudWlyLW1haW4geyBmbGV4OiA0IDEgMDsgfVxuXG4ucWRuYXByby11bml0LWlucHV0LXJvd1tpbnB1dC10eXBlPVwidGV4dFwiXTpub3QoLnVpci1sYXlvdXQtc3RhY2tlZCkgLnVpci1pbnB1dCxcbi5xZG5hcHJvLXVuaXQtaW5wdXQtcm93W2lucHV0LXR5cGU9XCJleHBhbmRpbmdcIl06bm90KC51aXItbGF5b3V0LXN0YWNrZWQpIC51aXItaW5wdXQgeyBmbGV4OiA2IDEgMDsgbWluLXdpZHRoOiAwOyBtYXgtd2lkdGg6IDU2NHB4OyB9XG5cbi5xZG5hcHJvLXVuaXQtaW5wdXQtcm93W2lucHV0LXR5cGU9XCJ0ZXh0XCJdOm5vdCgudWlyLWxheW91dC1zdGFja2VkKSAudWlyLWlucHV0IHFkbmFwcm8taW5wdXQsXG4ucWRuYXByby11bml0LWlucHV0LXJvd1tpbnB1dC10eXBlPVwiZXhwYW5kaW5nXCJdOm5vdCgudWlyLWxheW91dC1zdGFja2VkKSAudWlyLWlucHV0IHFkbmFwcm8taW5wdXQgeyBmbGV4OiAxOyB3aWR0aDogYXV0bzsgbWluLXdpZHRoOiAwOyB9XG5cbi8vIOKUgOKUgCBUYWJsZXQgaW5wdXQtdHlwZSByZXNwb25zaXZlbmVzcyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFRoZSBob3N0IGdldHMgaW5wdXQtdHlwZT1cIm51bWJlcnxjdXJyZW5jeXxkYXRlfHRpbWVcIiBmcm9tIHRoZSBjYWxsZXIuIHRleHQvZXhwYW5kaW5nIGFyZSBmbHVpZFxuLy8gKHNlZSBhYm92ZSkgYW5kIG5vdCBoYW5kbGVkIGhlcmUuIFRoZXNlIGZvdXIgc3RheSBjb21wYWN0IGFuZCBvbmx5IGdldCBhIGZpeGVkIHdpZHRoIG9uIHRhYmxldC5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAvLyBOdW1lcmljIOKAlCBhbGxvdyBzbGlnaHQgZ3Jvd3RoIGJ1dCBjYXAgc28gYSBzaW5nbGUgZGlnaXQgZG9lc24ndCBmbG9hdCBpbiBhIGdpYW50IGJveC5cbiAgLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3dbaW5wdXQtdHlwZT1cIm51bWJlclwiXSxcbiAgLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3dbaW5wdXQtdHlwZT1cImN1cnJlbmN5XCJdIHtcbiAgICAudWlyLWlucHV0IHFkbmFwcm8taW5wdXQgeyB3aWR0aDogMTYwcHg7IH1cbiAgfVxuXG4gIC8vIERhdGUgLyB0aW1lIOKAlCBqdXN0IGVub3VnaCByb29tIGZvciB0aGUgbmF0aXZlIHBpY2tlciBhZmZvcmRhbmNlLlxuICAucWRuYXByby11bml0LWlucHV0LXJvd1tpbnB1dC10eXBlPVwiZGF0ZVwiXSAudWlyLWlucHV0IHFkbmFwcm8taW5wdXQgIHsgd2lkdGg6IDE3MHB4OyB9XG4gIC5xZG5hcHJvLXVuaXQtaW5wdXQtcm93W2lucHV0LXR5cGU9XCJ0aW1lXCJdIC51aXItaW5wdXQgcWRuYXByby1pbnB1dCAgeyB3aWR0aDogMTMwcHg7IH1cbn1cblxuLy8gQ29tcGFjdCBpbnB1dC10eXBlczogbGV0IHRoZSB1bml0IE5BTUUgYWJzb3JiIHRoZSByb3cncyBmcmVlIHNwYWNlIChsYWJlbC1sZWZ0IC8gdmFsdWUtcmlnaHQpXG4vLyBpbnN0ZWFkIG9mIHRoZSBpbnB1dCB6b25lIGNsYWltaW5nIGZsZXgtZ3JvdzoxIGFuZCBzdHJhbmRpbmcgYSBkZWFkIGdhcCBiZXR3ZWVuIHRoZSBuYW1lIGFuZCBhXG4vLyByaWdodC1odWdnZWQsIGZpeGVkLXdpZHRoIGZpZWxkLiBUaGVzZSB0eXBlcyBoYXZlIGEgY29udGVudC1zaXplZCBjb250cm9sIChudW1iZXIvY3VycmVuY3kvZGF0ZS9cbi8vIHRpbWUgPSBhIGZpeGVkLXdpZHRoIHFkbmFwcm8taW5wdXQ7IHBob3RvID0gYSBjb21wYWN0IGNhcHR1cmUgYnV0dG9uKSwgc28gZmxleC1ncm93OjAgc2hyaW5rcyB0aGVcbi8vIHpvbmUgdG8gdGhhdCBjb250cm9sIGFuZCAudWlyLW1haW4gKGZsZXg6MSkgZ3Jvd3MgdG8gcHVzaCBpdCB0byB0aGUgcm93J3MgcmlnaHQgZWRnZSDigJQgbm8gZ2FwLlxuLy8gTk9UIGFwcGxpZWQgdG8gdGV4dC9leHBhbmRpbmcgKGZsdWlkLCBmaWVsZCBmaWxscyBpdHMgZmxleDo2IHpvbmUpIG9yIHllcy9ubyAoaW5wdXQtdHlwZT1cInRleHRcIixcbi8vIGZ1bGwtd2lkdGggYnV0dG9ucykg4oCUIHRob3NlIHN0YXkgZXhhY3RseSBhcyB0aGV5IHdlcmUuIEFsbCB2aWV3cG9ydHM6IHRoZSBnYXAgaXMgbm90IHRhYmxldC1vbmx5LlxuLy8gW0tpbSAxMy4wNy4yMDI2IOKAlCByZWdyZXNzaW9uIGZyb20gdGhlIDEyLjA3IHJpZ2h0LWVkZ2UtYWxpZ25tZW50IGNoYW5nZSBvbiBjb21wYWN0IHBlci11bml0IHJvd3NdXG4ucWRuYXByby11bml0LWlucHV0LXJvd1tpbnB1dC10eXBlPVwibnVtYmVyXCJdOm5vdCgudWlyLWxheW91dC1zdGFja2VkKSAudWlyLWlucHV0LFxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3dbaW5wdXQtdHlwZT1cImN1cnJlbmN5XCJdOm5vdCgudWlyLWxheW91dC1zdGFja2VkKSAudWlyLWlucHV0LFxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3dbaW5wdXQtdHlwZT1cImRhdGVcIl06bm90KC51aXItbGF5b3V0LXN0YWNrZWQpIC51aXItaW5wdXQsXG4ucWRuYXByby11bml0LWlucHV0LXJvd1tpbnB1dC10eXBlPVwidGltZVwiXTpub3QoLnVpci1sYXlvdXQtc3RhY2tlZCkgLnVpci1pbnB1dCxcbi5xZG5hcHJvLXVuaXQtaW5wdXQtcm93W2lucHV0LXR5cGU9XCJwaG90b1wiXTpub3QoLnVpci1sYXlvdXQtc3RhY2tlZCkgLnVpci1pbnB1dCB7XG4gIGZsZXgtZ3JvdzogMDtcbn1cblxuLy8gQ2FyZCBib3JkZXJzOiB0YWJsZXQgeWVzLCBtb2JpbGUgbm8gKGRlbnNlciBvbiBwaG9uZSkg4oCUIFFETkEgcmVzcG9uc2l2ZSBwcmluY2lwbGUuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLWNhcmQpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItcm93KTtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIH1cblxuICAvLyBCb3JkZXJsZXNzIHZhcmlhbnQg4oCUIHN1cHByZXNzZXMgdGhlIHRhYmxldCBjYXJkIGJvcmRlci4gTm8gb3V0bGluZSwgbm8gbWFyZ2luIGJldHdlZW4gcm93cy5cbiAgLy8gVXNhZ2U6IDxxZG5hcHJvLXVuaXQtaW5wdXQtcm93IGJvcmRlcmxlc3MgLi4uPlxuICAucWRuYXByby11bml0LWlucHV0LXJvdy51aXItYm9yZGVybGVzcyB7XG4gICAgYm9yZGVyOiAxLjVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItcm93KTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4iLCIvLyBfdXBkYXRlLXJvdy5zY3NzXG4vL1xuLy8gcWRuYXByby11cGRhdGUtcm93IOKAlCBPTkUgcm93IGluIGFuIHVwZGF0ZXMvbm90aWZpY2F0aW9ucyBsaXN0LCBGYWNlYm9va1xuLy8gbW9kZWwgKEtpbSdzIGRlY2lzaW9uIDE4LjA4LjIwMjYpOiBhIDQ0cHggYXZhdGFyIHdpdGggYSBzbWFsbCBvdmVybGF5XG4vLyBiYWRnZSBib3R0b20tcmlnaHQgdGhhdCBzaWduYWxzIFdIQVQgS0lORCBvZiB1cGRhdGUgdGhpcyBpcywgcGx1cyBhXG4vLyB0aHJlZS1saW5lIHRleHQgYmxvY2sgKHRpdGxlL3ByZXZpZXcvbWV0YSkgYW5kIGEgcmlnaHQtYWxpZ25lZCB1bnJlYWQgZG90LlxuLy8gU2VlIHFkbmEtdXBkYXRlLXJvdy5qcydzIGRvYy1jb21tZW50IGZvciB0aGUgZnVsbCBhdHRyaWJ1dGUgY29udHJhY3QgYW5kXG4vLyB0aGUgXCJ3aHkgYSBuZXcgY29tcG9uZW50XCIgcmVhc29uaW5nLlxuXG4ucWRuYXByby11cGRhdGUtcm93IHtcbiAgICAtLXVpci1iZy1ob3ZlcjogdmFyKC0tYy1iZy1zdWJ0bGUtaG92ZXIsICNmMGYxZjIpO1xuICAgIC8vIFRyYW5zbHVjZW50IHB1cnBsZSBvdmVybGF5LCByZXVzZWQgdmVyYmF0aW0gZnJvbSBxZG5hcHJvLWxpc3Qtcm93J3Mgb3duXG4gICAgLy8gcHJlc3NlZC9zZWxlY3RlZCBmaWxsICgtLXFsci1iZy1wcmVzc2VkIC8gLS1xbHItYmctc2VsZWN0ZWQpIHJhdGhlciB0aGFuXG4gICAgLy8gYSBuZXcgaGFuZC1waWNrZWQgdmFsdWUg4oCUIHNhbWUgcmVhc29uaW5nIGFzIHRoYXQgY29tcG9uZW50OiBpdCBpcyBhblxuICAgIC8vIHJnYmEoKSBPVkVSIHRoZSBzdXJmYWNlIGNvbG91ciwgc28gaXQgcmVhZHMgY29ycmVjdGx5IGluIGJvdGggdGhlbWVzXG4gICAgLy8gd2l0aG91dCBhIHNlcGFyYXRlIFtkYXRhLXRoZW1lPWRhcmtdIHJ1bGUuXG4gICAgLS11aXItYmctcHJlc3NlZDogdmFyKC0tYy1wdXJwbGUtc29mdC0xMiwgcmdiYSg2NCwgNzMsIDE1NCwgMC4xMikpO1xuICAgIC0tdWlyLXRpdGxlLWNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZywgIzFhMWY0ZCk7XG4gICAgLS11aXItbXV0ZWQtY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gICAgLS11aXItZG90LWNvbG9yOiB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xuICAgIC0tdWlyLWZvY3VzLXJpbmc6IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG4gICAgLS11aXItZm9jdXMtZ2xvdzogcmdiYSg3MCwgODIsIDI0MywgMC4yNSk7XG4gICAgLy8gQ29yYWwgKDE4LjA4LjIwMjYpLiBObyBjb3JhbCBkZXNpZ24gVE9LRU4gZXhpc3RzIGluIHRoaXMgbGlicmFyeSDigJQgdGhpc1xuICAgIC8vIGlzIHRoZSBleGFjdCBzYW1lIGhhbmQtc2FtcGxlZCB2YWx1ZSBxZG5hcHJvLXRvdWNoLWJ1dHRvbidzIHN0cm9uZyBwaWxsXG4gICAgLy8gdXNlcyBmb3IgdGhlIGlkZW50aWNhbCBQdWxzZS1oZWFydCBhcnR3b3JrIHRvbmUgKHNlZSB0aGF0IGZpbGUnc1xuICAgIC8vIC0tcXRiLXBpbGwtc3Ryb25nLWJnIGNvbW1lbnQpLiBLZXB0IExPQ0FMIHRvIHRoaXMgY29tcG9uZW50IHJhdGhlciB0aGFuXG4gICAgLy8gcHJvbW90ZWQgdG8gYSBzaGFyZWQgdG9rZW4sIHNhbWUgY2hvaWNlIG1hZGUgdGhlcmUuXG4gICAgLS11aXItYmFkZ2Utd2FybS1iZzogI2U4NzA1ZjtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTBweCAxNnB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGNvbG9yOiB2YXIoLS11aXItdGl0bGUtY29sb3IpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMDBtcyBlYXNlLW91dDtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS11aXItYmctaG92ZXIpO1xuICAgIH1cblxuICAgICYuaXMtcHJlc3NlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXVpci1iZy1wcmVzc2VkKTtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgICAgaW5zZXQgMCAwIDAgMnB4IHZhcigtLXVpci1mb2N1cy1yaW5nKSxcbiAgICAgICAgICAgIGluc2V0IDAgMCAwIDVweCB2YXIoLS11aXItZm9jdXMtZ2xvdyk7XG4gICAgfVxufVxuXG4vLyAtLS0tIEF2YXRhciBjbHVzdGVyICg0NHB4IGNpcmNsZSArIG9wdGlvbmFsIG92ZXJsYXkgYmFkZ2UpIC0tLS1cblxuLnVpci1hdmF0YXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogNDRweDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG59XG5cbi8vIFRoZSBgaW1hZ2VgIG1vZGUgKGUuZy4gYSBjYW1wYWlnbiBjb3ZlciBmb3IgYSBcImxpa2VzXCIgcm93KSDigJQgYSBiYXJlIHJvdW5kXG4vLyBpbWFnZSwgTk9UIHJvdXRlZCB0aHJvdWdoIHFkbmFwcm8tYXZhdGFyIChzZWUgcWRuYS11cGRhdGUtcm93LmpzIGRvYy1cbi8vIGNvbW1lbnQ6IGEgY2FtcGFpZ24gY292ZXIgaXMgbm90IGEgcGVyc29uKS5cbi51aXItYXZhdGFyLWltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDQ0cHg7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLy8gcWRuYXByby1hdmF0YXIgaXRzZWxmIGlzIHNpemVkIHZpYSBpdHMgb3duIC0tYXYtc2l6ZSBvdmVycmlkZSAoc2VlIHRoZVxuLy8gY29tcG9uZW50IEpTKSDigJQgbm8gZXh0cmEgc2l6aW5nIG5lZWRlZCBoZXJlIGJleW9uZCBmbGV4LXNocmluayBzYWZldHkuXG4udWlyLWF2YXRhci1lbCB7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi8vIFRoZSBvdmVybGF5IGJhZGdlIOKAlCAyMHB4LCBzaXRzIG9uIHRoZSBhdmF0YXIncyBib3R0b20tcmlnaHQgY29ybmVyLCB3aXRoIGFcbi8vIDJweCBib3JkZXIgaW4gdGhlIHN1cmZhY2UgY29sb3VyIHNvIGl0IHZpc3VhbGx5IFwibGllcyBvbiB0b3Agb2ZcIiB0aGVcbi8vIGF2YXRhciByYXRoZXIgdGhhbiBqdXN0IHRvdWNoaW5nIGl0cyBlZGdlIChzYW1lIGlkZWEgYXMgYW4gb25saW5lLXN0YXR1c1xuLy8gZG90LCBiaWdnZXIsIHdpdGggYSBnbHlwaCkuIEJvcmRlciBjb2xvdXIgZm9sbG93cyAtLWMtYmctY2FyZCBzbyBpdCBibGVuZHNcbi8vIHdpdGggd2hhdGV2ZXIgY2FyZCBzdXJmYWNlIHRoaXMgcm93IHNpdHMgb24sIGluIGJvdGggdGhlbWVzLlxuLnVpci1iYWRnZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAtMnB4O1xuICAgIGJvdHRvbTogLTJweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG4gICAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi51aXItYmFkZ2UtYWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xufVxuXG4udWlyLWJhZGdlLXdhcm0ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXVpci1iYWRnZS13YXJtLWJnLCAjZTg3MDVmKTtcbn1cblxuLnVpci1iYWRnZS1pY29uIHtcbiAgICB3aWR0aDogMTJweDtcbiAgICBoZWlnaHQ6IDEycHg7XG59XG5cbi8vIC0tLS0gQm9keSAodGl0bGUgKyBvcHRpb25hbCBwcmV2aWV3ICsgb3B0aW9uYWwgbWV0YSkgLS0tLVxuXG4udWlyLWJvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZ2FwOiAycHg7XG59XG5cbi51aXItdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgY29sb3I6IHZhcigtLXVpci10aXRsZS1jb2xvcik7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vLyBVbnJlYWQ6IGEgYml0IGhlYXZpZXIsIG5ldmVyIGEgY29sb3VyIGNoYW5nZSDigJQgdGhlIHJvdyBzdGF5cyBmdWxseVxuLy8gbGVnaWJsZSBlaXRoZXIgd2F5IChzYW1lIFwibmV2ZXIgYW4gb3BhY2l0eS9uZXZlciBhIGNvbG91ci1vbmx5IGN1ZVwiXG4vLyBzdGFuY2UgcWRuYXByby1saXN0LXJvdydzIGB0b25lPVwibXV0ZWRcImAgdGFrZXMgZm9yIGl0cyBvd24gZW1waGFzaXMpLlxuLy8gT25nZWxlemVuIGtyaWpndCBuYWFzdCBkZSBzdGlwIG9vayBlZW4gSElHSExJR0hUIG9wIGRlIGhlbGUgcmlqIChLaW1zXG4vLyBhYW52dWxsaW5nIDE4LjA4LjIwMjYsIG5hYXIgRmFjZWJvb2tzIFwiTmlldXdcIi1zZWN0aWUpOiBlZW4gemFjaHRlXG4vLyBhY3RpZS10aW50IG92ZXIgZGUgcmlqdmxha3RlLiBUb2tlbiBoZWVmdCBlZW4gZGFyay1vdmVycmlkZSBub2RpZyAtIGRlXG4vLyByZ2JhLXRpbnQgd2Vya3Qgb3AgbGljaHQgZW4gZG9ua2VyIGFsbGViZWkgb21kYXQgaGlqIHRyYW5zcGFyYW50IGlzLlxuLnFkbmFwcm8tdXBkYXRlLXJvdy51aXItdW5yZWFkIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWFjdGlvbi0wOCwgcmdiYSg3MCwgODIsIDI0MywgMC4wOCkpO1xufVxuLnFkbmFwcm8tdXBkYXRlLXJvdy51aXItdW5yZWFkIC51aXItdGl0bGUge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi51aXItcHJldmlldyB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gICAgY29sb3I6IHZhcigtLXVpci1tdXRlZC1jb2xvcik7XG4gICAgLy8gVHdvLWxpbmUgY2xhbXAsIG5vdCBhIG9uZS1saW5lIGVsbGlwc2lzIOKAlCBhbiB1cGRhdGUgcHJldmlldyBpcyBhXG4gICAgLy8gc2VudGVuY2UsIG5vdCBhIGZpbGVuYW1lIChzZWUgcWRuYS11cGRhdGUtcm93LmpzIGRvYy1jb21tZW50KS5cbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4udWlyLW1ldGEge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgY29sb3I6IHZhcigtLXVpci1tdXRlZC1jb2xvcik7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vLyAtLS0tIFVucmVhZCBkb3QgKEZhY2Vib29rIHBvc2l0aW9uOiByaWdodCBlZGdlLCB2ZXJ0aWNhbGx5IGNlbnRlcmVkIGJ5XG4vLyB0aGUgcm93J3Mgb3duIGZsZXggYWxpZ24taXRlbXMg4oCUIG5vIGV4dHJhIHZlcnRpY2FsLWNlbnRlcmluZyBydWxlIG5lZWRlZCkgLS0tLVxuXG4udWlyLWRvdCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDhweDtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdWlyLWRvdC1jb2xvcik7XG59XG4iLCIvLyBxZG5hcHJvLXdpemFyZC1tb2RhbCDigJQgbXVsdGktc3RlcCBtb2RhbCB3aXRoIHBlci1zdGVwIHdpZHRoICsgc2xpZGUuXG4vLyBTb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZTsgZWRpdCBoZXJlLCB0aGVuIHJ1biBgZ3VscCBzYXNzLXYxYFxuLy8gKGNvbXBpbGVzIGludG8gd2ViL2Nzcy92MS9zdHlsZS12MS5jc3MpLiBQbGFpbiBDU1MgdG8gbWF0Y2ggdGhlIG90aGVyIHYyXG4vLyBzb3VyY2VzLlxuLy9cbi8vIEhldCBmcmFtZSBrb210IHVpdCBkZSBHRURFRUxERSBzY2hpbDogZGUgc2NyaW0gZW4gaGV0IGdyaWp6ZSBmcmFtZSB6aWpuXG4vLyAucW9zLXNjcmltIC8gLnFvcy1kaWFsb2cgdWl0IGNvbXBvbmVudHMvdjIvb3ZlcmxheS1zaGVsbC4gSGllciBzdGFhdCBhbGxlZW5cbi8vIG5vZyB3YXQgZWVuIHdpemFyZCBlaWdlbiBpczogZGUgYnJlZWR0ZSBkaWUgcGVyIHN0YXAgYW5pbWVlcnQsIGRlIHN0YXAtc2xpZGUsXG4vLyBlbiBoZXQgaW5mby1wYW5lZWwuIFRvdCAxOS4wOC4yMDI2IHN0b25kIGRlIGhlbGUgc2NoaWwgaGllciBhbHMgS09QSUUgdmFuXG4vLyBxZG5hcHJvLW1vZGFsLCBtZXQgZWlnZW4gZGFyay10aW50ZW4gZGllIHZhbiBkZSBtb2RhbCBhZndla2VuLlxuLy8gRWxrZSBzdGFwIElTIHppam4gZWlnZW4gd2l0dGUgdmVuc3RlciAoa2xldXIvcmFuZC9yYWRpdXMgdWl0IGRlXG4vLyBvdmVybGF5LXRva2VucywgbWFhciB6b25kZXIgLnFvcy13aW5kb3c6IGNvbnN1bWVycyB6ZXR0ZW4gaHVuIGVpZ2VuIHBhZGRpbmdcbi8vIGluIGVlbiBzdGFwLCBkdXMgZGUgcGFkZGluZyB2YW4gZGUgc2NoaWwgem91IGh1biBsYXlvdXQgYnJla2VuKS5cbi8vIFtLaW0gMjAyNi0wNi0xNSwgc2NoaWwgbG9zZ2V0cm9ra2VuIDE5LjA4LjIwMjZdXG5cbi5xZG5hcHJvLXdpemFyZC1tb2RhbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDA7XG4gIHotaW5kZXg6IHZhcigtLW92ZXJsYXkteik7XG4gIC8qIEdlZW4gaW5nZWJha2tlbiB6b29tLCBlbiBkYXQgaXMgc2luZHMgMjAyNi0wOC0wMyBkZSByZWdlbCB2b29yIEVMSyB2ZW5zdGVyOiBgcWRuYXByby1tb2RhbGAgaGFkXG4gICAgIGVyIGVlbiB2YW4gMS4yNSB2b29yIGRlIGxlZ2FjeSBgYm9keSB7IHpvb206IDAuOCB9YCwgZW4gZGllIGlzIHdlZ2dlaGFhbGQgb21kYXQgZGllIGJvZHktem9vbSBlZW5cbiAgICAgdjEtcGFnaW5hIG5pZXQgbWVlciBiZXJlaWt0ICh6aWUgZGUgdWl0bGVnIGluIGBjb21wb25lbnRzL3YyL21vZGFsL19tb2RhbC5zY3NzYCkuIFpldCBoaWVyIGR1cyBvb2tcbiAgICAgZ2VlbiBjb3VudGVyLXpvb20gdGVydWc7IGtvbXQgem8nbiBwYWdpbmEgZXIgb29pdCB3ZWVyLCBkYW4gaG9vcnQgZGUgY29ycmVjdGllIGJpaiBkaWUgUEFHSU5BLiAqL1xufVxuLnFkbmFwcm8td2l6YXJkLW1vZGFsLndtLW9wZW4geyBkaXNwbGF5OiBmbGV4OyB9XG5cblxuLyogSGV0IGdyaWp6ZSBmcmFtZSB6ZWxmIGlzIC5xb3MtZGlhbG9nOyBoaWVyIGFsbGVlbiBkZSBicmVlZHRlIGRpZSBwZXIgc3RhcFxuICAgYW5pbWVlcnQuIERhdCBpcyBoZXQgZW5pZ2Ugd2F0IGVlbiB3aXphcmQgYW5kZXJzIGRvZXQgZGFuIGVlbiBtb2RhbC4gKi9cbi53bS1kaWFsb2cge1xuICB3aWR0aDogNDgwcHg7XG4gIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDQ4cHgpO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjM4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xufVxuXG4vKiBTdGVwIHZpZXdwb3J0IChpbnNpZGUgdGhlIDhweCBncmV5IHBhZGRpbmcpLiBTdGVwcyBzdGFjayArIHNsaWRlIGhlcmUuICovXG4ud20tc3RlcHMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8qIC5xb3MtZGlhbG9nIGlzIGVlbiBmbGV4Y29udGFpbmVyIChuZXQgYWxzIGJpaiBxZG5hcHJvLW1vZGFsLCB3YWFyXG4gICAgIC5tb2RhbC13aW5kb3cgZGUgZmxleGNoaWxkIGlzKSwgZHVzIGRpdCBtb2V0IGV4cGxpY2lldCBkZSBydWltdGUgcGFra2VuLlxuICAgICBab25kZXIgZGV6ZSB0d2VlIHJlZ2VscyBrbGFwdCBoZXQgc3RhcHZlbnN0ZXIgaW4gdG90IDFweCBicmVlZDogZGUgc3RhcHBlblxuICAgICB6ZWxmIHN0YWFuIGFic29sdXV0LCBkdXMgZXIgaXMgZ2VlbiBpbmhvdWQgZGllIGJyZWVkdGUgZ2VlZnQuIEhldCBvdWRlXG4gICAgIC53bS1kaWFsb2cgd2FzIGVlbiBibG9rLCB3YWFyZG9vciBkaXQgZ3JhdGlzIGdvZWQgZ2luZy4gKi9cbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgaGVpZ2h0OiB2YXIoLS13bS1oZWlnaHQsIDU0MHB4KTtcbiAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDY0cHgpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBBVVRPLUhFSUdIVCBob3N0cyAob3B0LWluIGF0dHJpYnV0ZSwgMjAuMDcuMjAyNik6IHRoZSBjb21wb25lbnQgd3JpdGVzIHRoZVxuICAgYWN0aXZlIHN0ZXAncyBtZWFzdXJlZCBuYXR1cmFsIGhlaWdodCBhcyBhbiBpbmxpbmUgc3R5bGU7IHRoaXMgdHJhbnNpdGlvblxuICAgbWFrZXMgc3RlcCBjaGFuZ2VzIGdsaWRlIG9uIHRoZSBTQU1FIGN1cnZlIGFzIHRoZSB3aWR0aC4gR2F0ZWQgb24gdGhlXG4gICBhdHRyaWJ1dGUgc28gZml4ZWQtaGVpZ2h0IGhvc3RzIChNYXN0ZXIgUGlja2VyKSBuZXZlciBhbmltYXRlIGhlaWdodC4gKi9cbi5xZG5hcHJvLXdpemFyZC1tb2RhbFthdXRvLWhlaWdodF0gLndtLXN0ZXBzIHtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMzhzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG5cbi8qIEVsa2Ugc3RhcCBJUyBoZXQgd2l0dGUgdmVuc3RlcjogemVsZmRlIGtsZXVyL3JhbmQvcmFkaXVzIGFscyAucW9zLXdpbmRvdyBlblxuICAgYWxzIHFkbmFwcm8tbW9kYWwsIHVpdCBkZSBvdmVybGF5LXRva2Vucy4gKi9cbi5xZG5hcHJvLXdpemFyZC1zdGVwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYmFja2dyb3VuZDogdmFyKC0tb3ZlcmxheS13aW5kb3ctYmcpO1xuICBib3JkZXI6IDAuNXB4IHNvbGlkIHZhcigtLW92ZXJsYXktd2luZG93LWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLW92ZXJsYXktd2luZG93LXJhZGl1cyk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjM2cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBvcGFjaXR5IDAuMjhzIGVhc2U7XG59XG4ucWRuYXByby13aXphcmQtc3RlcC53bS1hY3RpdmUgICAgeyB0cmFuc2Zvcm06IG5vbmU7IG9wYWNpdHk6IDE7IH1cbi5xZG5hcHJvLXdpemFyZC1zdGVwLndtLW9mZi1sZWZ0ICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNzBweCk7IG9wYWNpdHk6IDA7IHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4ucWRuYXByby13aXphcmQtc3RlcC53bS1vZmYtcmlnaHQgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNzBweCk7ICBvcGFjaXR5OiAwOyBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4vKiBPcHRpb25hbCBjZW50ZXJlZCBzZWdtZW50IC8gdGFiIGJhciB1bmRlciB0aGUgaGVhZGVyIChsaWtlIHFkbmFwcm8tbW9kYWwnc1xuICAgdGFicyByb3csIGUuZy4gXCJWcmFnZW4gfCBUaWpkc2luc3RlbGxpbmdlblwiKS4gRHJvcCBhIHFkbmFwcm8tc2VnbWVudCBpbiBhXG4gICAud20tdGFiYmFyOyBvbWl0IHRoZSBlbGVtZW50IHdoZW4gaXQncyBub3QgbmVlZGVkICg9IGhpZGRlbikuIFtLaW0gMjAyNi0wNi0xNV0gKi9cbi53bS10YWJiYXIgeyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgcGFkZGluZzogNnB4IDE2cHggOHB4OyBmbGV4LXNocmluazogMDsgfVxuXG4vKiB3aXRoLWluZm8gc3RlcDogdHJhbnNwYXJlbnQgc28gdGhlIGdyZXkgZGlhbG9nIGZyYW1lIHNob3dzIG9uIHRoZSBsZWZ0OyBhXG4gICBncmV5IGluZm8gcGFuZWwgKyA4cHggZ2FwICsgdGhlIHdoaXRlIGJvcmRlcmVkIG1haW4uIE1pcnJvcnMgcWRuYXByby1tb2RhbC4gKi9cbi5xZG5hcHJvLXdpemFyZC1zdGVwLndtLXdpdGgtaW5mbyB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGdhcDogOHB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi53bS1pbmZvIHtcbiAgZmxleDogMCAwIDI2MHB4O1xuICBtaW4td2lkdGg6IDA7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIHBhZGRpbmc6IDE2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTRweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi53bS1pbmZvLWhlYWQgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDsgfVxuLndtLWluZm8taGVhZCBxZG5hcHJvLWljb24geyBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTsgfVxuLndtLWluZm8tdGl0bGUgeyBmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiAyNHB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTsgfVxuLndtLWluZm8tdGV4dCB7IGZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDIycHg7IGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZyk7IH1cbi53bS1pbmZvLWlsbHVzdHJhdGlvbiB7XG4gIG1hcmdpbi10b3A6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiAtMTZweDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTZweDtcbiAgbWFyZ2luLWJvdHRvbTogLTE2cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgLyogRGVjb3JhdGl2ZSBpbGx1c3RyYXRpb24gYWx3YXlzIGF0IDYwJSBvcGFjaXR5IHNvIGl0IHN0YXlzIHN1YnRsZSBiZWhpbmRcbiAgICAgdGhlIGNvbnRlbnQsIGNvbnNpc3RlbnQgYWNyb3NzIGV2ZXJ5IG1vZGFsLiBbS2ltIDIwMjYtMDYtMTVdICovXG4gIG9wYWNpdHk6IDAuNjtcbn1cbi53bS1pbmZvLWlsbHVzdHJhdGlvbiBxZG5hcHJvLWlsbHVzdHJhdGlvbixcbi53bS1pbmZvLWlsbHVzdHJhdGlvbiBpbWcsXG4ud20taW5mby1pbGx1c3RyYXRpb24gc3ZnIHsgZGlzcGxheTogYmxvY2s7IG1heC13aWR0aDogMTAwJTsgaGVpZ2h0OiBhdXRvOyB9XG4vKiBUaGUgRE1TIGZvbGRlci1hY2Nlc3Mgcm9sZSBhcnQgaXMgdGFsbCBwb3J0cmFpdDsgd2l0aG91dCBhIGhlaWdodCBjYXAgaXRcbiAgIGZpbGxzIHRoZSB3aG9sZSBpbmZvIGNvbHVtbi4gQ2FwIGl0IHNvIGl0IHNpdHMgYXMgYSBzdWJ0bGUgYm90dG9tXG4gICBpbGx1c3RyYXRpb24gbGlrZSB0aGUgbGFuZHNjYXBlIG9uZXMuIFNjb3BlZCB0byB0aGUgcm9sZS0qIGFzc2V0cyBzbyB0aGVcbiAgIG90aGVyIHBpY2tlciBjb25zdW1lcnMgKHRlYW1zL2xvY2F0aW9ucy9LUElzKSBhcmUgdW50b3VjaGVkLiBbS2ltIDIwMjYtMDctMjFdICovXG4ud20taW5mby1pbGx1c3RyYXRpb24gaW1nW3NyYyo9XCJyb2xlLVwiXSB7IHdpZHRoOiBhdXRvOyBtYXgtaGVpZ2h0OiAzMDBweDsgbWFyZ2luLWxlZnQ6IGF1dG87IG1hcmdpbi1yaWdodDogYXV0bzsgfVxuLndtLW1haW4ge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1vdmVybGF5LXdpbmRvdy1iZyk7XG4gIGJvcmRlcjogMC41cHggc29saWQgdmFyKC0tb3ZlcmxheS13aW5kb3ctYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tb3ZlcmxheS13aW5kb3ctcmFkaXVzKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8gQWxsZWVuLWR1aW0gc2Nyb2xsYmFycyBrb21lbiB1aXQgZGUgZ2VkZWVsZGUgc2NoaWwgKC5xb3Mtc2NyaW0gOjotd2Via2l0LSopLFxuLy8gZGllIGRlemVsZmRlIHN1YnRyZWUgZGVrdC4gU3RvbmQgaGllciBhbHMga29waWUgdmFuIF9tb2RhbC5zY3NzLlxuXG4vLyBEZSBlbnRyZWUtYW5pbWF0aWVzIChzY3JpbSBmYWRlICsgZGlhbG9nIGxpZnQpIGtvbWVuIHVpdCBkZSBnZWRlZWxkZSBzY2hpbDpcbi8vIEBrZXlmcmFtZXMgcW9zLXNjcmltLWluIC8gcW9zLWRpYWxvZy1pbi4gRGUgZWlnZW4gcWRuYXByby13bS0qIGtvcGllZW4gemlqblxuLy8gd2VnLlxuLy9cbi8vIEdFRU4gZGFyay1ibG9rIG1lZXIgbm9kaWc6IGZyYW1lLCB2ZW5zdGVyIGVuIHNjcmltIGxlemVuIGRlIG92ZXJsYXktdG9rZW5zIGVuXG4vLyB3aXNzZWxlbiBkYWFyZG9vciBhdXRvbWF0aXNjaCBtZWUuIEhpZXIgc3RvbmRlbiBlaWdlbiB0aW50ZW4gKCMxZjIyMjkgL1xuLy8gIzJhMmQzNikgZGllIEFGV0VLRU4gdmFuIHFkbmFwcm8tbW9kYWw7IGRhdCB2ZXJzY2hpbCBpcyBvcGdlaGV2ZW4sIGR1cyBlZW5cbi8vIHdpemFyZCB6aWV0IGVyIGluIGhldCBkb25rZXIgbnUgdWl0IGFscyBlZW4gbW9kYWwuXG4iLCIvLyBzY3NzL2NvbXBvbmVudHMvdjIvdW5pdC10eXBlL191bml0LXR5cGUuc2Nzc1xuLy8gRGlyZWN0IHYyIHBvcnQgb2YgcWRuYS1jYXJkLXVuaXQtdHlwZSDihpIgcWRuYXByby11bml0LXR5cGUuXG4vLyBWaXN1YWxseSBpZGVudGljYWwgdG8gdjEgKHVuaXRUeXBlLnNjc3MpLiBPbmx5IHRoZSBjbGFzcyBuYW1lcyBjaGFuZ2VkLlxuXG5xZG5hcHJvLXVuaXQtdHlwZSB7XG4gICAgZGlzcGxheTogY29udGVudHM7XG59XG5cbi5xZG5hcHJvLXVuaXQtdHlwZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIG1pbi1oZWlnaHQ6IDEyMHB4O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYmctY2FyZC1ob3Zlcik7XG4gICAgfVxufVxuXG4ucWRuYXByby11bml0LXR5cGUgKixcbi5xZG5hcHJvLXVuaXQtdHlwZSAqOjpiZWZvcmUsXG4ucWRuYXByby11bml0LXR5cGUgKjo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi51dGMtdG9wIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZ2FwOiAxNnB4O1xuICAgIHBhZGRpbmc6IDEuMjVyZW0gMS41cmVtIDAuNXJlbTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4udXRjLWljb24ge1xuICAgIGZsZXg6IDAgMCA0OHB4O1xuICAgIHdpZHRoOiA0OHB4O1xuICAgIGhlaWdodDogNDhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiA0NHB4O1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcblxuICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiA0OHB4O1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG4udXRjLWNvbnRlbnQge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLnV0Yy1oZWFkaW5nIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tVHlwZS1Gb250LUZhbWlseS1wcmltYXJ5LCBJbnRlcik7XG4gICAgZm9udC1zaXplOiB2YXIoLS1Gb250LXNpemUtQm9keS1JbnRlci1tZWRpdW0tMTQsIDE0cHgpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLUxpbmUtSGVpZ2h0LUJvZHktQm9keS1NZWRpdW0tQ2FwdGlvbiwgMjRweCk7XG4gICAgY29sb3I6IHZhcigtLVRleHQtQm9keSwgIzBiMGIwZCk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLnV0Yy1zdWJoZWFkaW5nIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tVHlwZS1Gb250LUZhbWlseS1wcmltYXJ5LCBJbnRlcik7XG4gICAgZm9udC1zaXplOiB2YXIoLS1Gb250LXNpemUtQm9keS1zbWFsbC0xMiwgMTJweCk7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tTGluZS1IZWlnaHQtQm9keS1Cb2R5LVNtYWxsLCAyMHB4KTtcbiAgICBjb2xvcjogdmFyKC0tVGV4dC1Cb2R5LVNlY29uZGFyeSwgIzZiNzI4MCk7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLnV0Yy1mb290ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3c7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMC41cmVtIDEuNXJlbSAwLjc1cmVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAmW2hpZGRlbl0ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLnV0Yy1wYWlyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogNHB4O1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xufVxuXG4udXRjLWxhYmVsLFxuLnV0Yy12YWx1ZSB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLVR5cGUtRm9udC1GYW1pbHktcHJpbWFyeSwgSW50ZXIpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tRm9udC1zaXplLUJvZHktc21hbGwtMTIsIDEycHgpO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLUxpbmUtSGVpZ2h0LUJvZHktQm9keS1TbWFsbCwgMjBweCk7XG4gICAgY29sb3I6IHZhcigtLVN1cmZhY2UtU2lnbmFsLVNpZ25hbC1ncmV5LURldGFpbCwgIzZiNzI4MCk7XG59XG4iLCIvLyBxZG5hcHJvLWRhdGUtY2Fyb3VzZWwg4oCUIGZsYXQgQ1NTIChnZW5lcmF0ZWQgZnJvbSBjb21waWxlZCBvdXRwdXQsIDI4LjA2LjIwMjYpXG4vLyBGTEFUIENTUyBSRVFVSVJFRDogdjIgY29tcG9uZW50IFNDU1MgbXVzdCBiZSBmbGF0IGZvciBQV0Egc3luYyAobm8gJiBuZXN0aW5nKS5cbi8vIFRvIHVwZGF0ZTogZWRpdCB0aGUgU0NTUyB3aXRoIGZsYXQgc2VsZWN0b3JzLCBydW4gZ3VscCBzYXNzLXYxLCB0aGVuIG5vZGUgYXBwX2FwaV9xZG5hdjIvc3luYy12Mi1jb21wb25lbnRzLmpzXG5cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWwge1xuICAtLWRjLWFjdGl2ZTogdmFyKC0tYy1zaWRlYmFyLWJnKTtcbiAgLS1kYy1jYXJkLWJnOiAjZmZmZmZmO1xuICAtLWRjLWJvcmRlcjogcmdiYSg1OCwgNjYsIDE0NCwgMC4xMyk7XG4gIC0tZGMtYm9yZGVyLXBhc3Q6IHJnYmEoNTgsIDY2LCAxNDQsIDAuMDcpO1xuICAtLWRjLW5hbWUtaWRsZTogdmFyKC0tYy10ZXh0LWRpc2FibGVkLXBwKTtcbiAgLS1kYy1kYXktaWRsZTogdmFyKC0tYy1wdXJwbGUtNDAwKTtcbiAgLS1kYy1uYW1lLXBhc3Q6IHZhcigtLWMtc2lkZWJhci1pY29uKTtcbiAgLS1kYy1kYXktcGFzdDogdmFyKC0tYy1wdXJwbGUtNDAwKTtcbiAgLS1kYy1kb3QtaWRsZTogcmdiYSg1OCwgNjYsIDE0NCwgMC4yMik7XG4gIC0tZGMtdGl0bGUtY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nKTtcbiAgLS1kYy1tb250aC1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNDAwKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGN1cnNvcjogZ3JhYjtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDAuNXB4IHNvbGlkIHZhcigtLWRjLWJvcmRlcik7XG4gIC8vIERlIGJyZWRlIHN0cmlwIHdvcmR0IHZpc3VlZWwgZ2VjbGlwdCB2aWEgY2xpcC1wYXRoIG9wIF9fc3RyaXAtd3JhcCwgbWFhclxuICAvLyBjbGlwLXBhdGggY29udGFpbnQgZGUgTEFZT1VULW92ZXJmbG93IG5pZXQg4oaSIGRlIHN0cmlwYnJlZWR0ZSBsZWt0ZSBuYWFyXG4gIC8vIC5xZG5hLWNvbnRlbnQtLXBhZ2UgKG92ZXJmbG93LXg6YXV0byBkb29yIG92ZXJmbG93LXk6b3ZlcmxheSkg4oaSIGhvcml6b250YWxlXG4gIC8vIHBhZ2Utc2Nyb2xsIG9wIGhvbWUuIG92ZXJmbG93LXg6Y2xpcCBjb250YWludCAndCB3w6lsOyBkZSB2ZXJ0aWNhbGUgYXMgYmxpamZ0XG4gIC8vIHZyaWogKGNsaXAgZm9yY2VlcnQgZGllIG5pZXQsIGFuZGVycyBkYW4gaGlkZGVuKSB6b2RhdCBkZSBncm93LWthYXJ0IGthblxuICAvLyB1aXRrbGFwcGVuLiBbMjkuMDYuMjAyNl1cbiAgb3ZlcmZsb3cteDogY2xpcDtcbn1cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWwuaXMtZHJhZ2dpbmcge1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9faGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCA4cHg7XG4gIG1pbi1oZWlnaHQ6IDUycHg7XG4gIG1heC1oZWlnaHQ6IDUycHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4yOHMgY3ViaWMtYmV6aWVyKDAuMiwgMCwgMCwgMSksIG1pbi1oZWlnaHQgMC4yOHMgY3ViaWMtYmV6aWVyKDAuMiwgMCwgMCwgMSksIG9wYWNpdHkgMC4xOHMgZWFzZSwgdHJhbnNmb3JtIDAuMjhzIGN1YmljLWJlemllcigwLjIsIDAsIDAsIDEpO1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9faGVhZGVyLWluZm8ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDJweDtcbn1cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2hlYWRlci10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLWRjLXRpdGxlLWNvbG9yKTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2hlYWRlci1tb250aCB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLWRjLW1vbnRoLWNvbG9yKTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbn1cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX3ZhbmRhYWctYnRuIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGNlbnRlcjtcbn1cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX3ZhbmRhYWctYnRuLmlzLXBvcHBpbmctaW4ge1xuICBhbmltYXRpb246IHFkbmFwcm8tZGMtYnRuLWluIDAuMzhzIGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjY0LCAxKSBmb3J3YXJkcztcbn1cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX3ZhbmRhYWctYnRuLmlzLXBvcHBpbmctb3V0IHtcbiAgYW5pbWF0aW9uOiBxZG5hcHJvLWRjLWJ0bi1vdXQgMC4ycyBlYXNlLWluIGZvcndhcmRzO1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fc3RyaXAtd3JhcCB7XG4gIC8vIGNsaXAtcGF0aCBjbGlwcyBob3Jpem9udGFsbHkgb25seSAoY2FyZHMgc2Nyb2xsIG9mZiB0aGUgc2lkZXMpIGFuZCBsZWF2ZXNcbiAgLy8gdG9wL2JvdHRvbSBmcmVlIHNvIHRoZSBhY3RpdmUgY2FyZCBjYW4gc2NhbGUgdXAuIG92ZXJmbG93OmhpZGRlbiBjYW4ndCBkb1xuICAvLyBzaW5nbGUtYXhpcy4gVGhlIGVkZ2UtZmFkZSBtYXNrLCBob3dldmVyLCBvbmx5IGNvdmVycyBpdHMgb3duIGJvcmRlci1ib3gsXG4gIC8vIHNvIGEgY2FyZCBncm93aW5nIGFib3ZlIHRoZSBib3ggd291bGQgYmUgbWFza2VkIGF3YXkg4oCUIHRoZSB0b3AgcGFkZGluZyBnaXZlc1xuICAvLyB0aGUgbWFzayB2ZXJ0aWNhbCByb29tLCBhbmQgdGhlIG1hdGNoaW5nIG5lZ2F0aXZlIG1hcmdpbiBrZWVwcyB0aGUgY2FyZCByb3dcbiAgLy8gaW4gdGhlIHNhbWUgdmlzdWFsIHBvc2l0aW9uIChubyBsYXlvdXQgc2hpZnQpLlxuICBjbGlwLXBhdGg6IGluc2V0KC0yMDBweCAwcHggLTIwMHB4IDBweCk7XG4gIHBhZGRpbmc6IDEwcHggMCA4cHg7XG4gIG1hcmdpbi10b3A6IC0xMHB4O1xuICAtd2Via2l0LW1hc2s6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdHJhbnNwYXJlbnQgMCUsIGJsYWNrIDExJSwgYmxhY2sgODklLCB0cmFuc3BhcmVudCAxMDAlKTtcbiAgbWFzazogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB0cmFuc3BhcmVudCAwJSwgYmxhY2sgMTElLCBibGFjayA4OSUsIHRyYW5zcGFyZW50IDEwMCUpO1xuICB0b3VjaC1hY3Rpb246IHBhbi15O1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fc3RyaXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDhweDtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbn1cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2NhcmQge1xuICB3aWR0aDogNTZweDtcbiAgaGVpZ2h0OiA3MnB4O1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMTJzIGVhc2UsIGJvcmRlci1jb2xvciAwLjEycyBlYXNlLCBvcGFjaXR5IDAuMTJzIGVhc2UsIHdpZHRoIDAuMjhzIGN1YmljLWJlemllcigwLjIsIDAsIDAsIDEpLCBoZWlnaHQgMC4yOHMgY3ViaWMtYmV6aWVyKDAuMiwgMCwgMCwgMSksIGJvcmRlci1yYWRpdXMgMC4yOHMgY3ViaWMtYmV6aWVyKDAuMiwgMCwgMCwgMSk7XG59XG4ucWRuYXByby1kYXRlLWNhcm91c2VsX19jYXJkLS1pZGxlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tZGMtY2FyZC1iZyk7XG4gIGJvcmRlcjogMC41cHggc29saWQgdmFyKC0tZGMtYm9yZGVyKTtcbn1cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2NhcmQtLWlkbGUgLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZC1uYW1lIHtcbiAgY29sb3I6IHZhcigtLWRjLW5hbWUtaWRsZSk7XG59XG4ucWRuYXByby1kYXRlLWNhcm91c2VsX19jYXJkLS1pZGxlIC5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2NhcmQtZGF5IHtcbiAgY29sb3I6IHZhcigtLWRjLWRheS1pZGxlKTtcbn1cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2NhcmQtLWlkbGUgLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZC1kb3Qge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1kYy1kb3QtaWRsZSk7XG59XG4ucWRuYXByby1kYXRlLWNhcm91c2VsX19jYXJkLS1wYXN0IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tZGMtY2FyZC1iZyk7XG4gIGJvcmRlcjogMC41cHggc29saWQgdmFyKC0tZGMtYm9yZGVyLXBhc3QpO1xuICBvcGFjaXR5OiAwLjQ4O1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZC0tcGFzdCAucWRuYXByby1kYXRlLWNhcm91c2VsX19jYXJkLW5hbWUge1xuICBjb2xvcjogdmFyKC0tZGMtbmFtZS1wYXN0KTtcbn1cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2NhcmQtLXBhc3QgLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZC1kYXkge1xuICBjb2xvcjogdmFyKC0tZGMtZGF5LXBhc3QpO1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZC0tcGFzdCAucWRuYXByby1kYXRlLWNhcm91c2VsX19jYXJkLWRvdCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWRjLWRvdC1pZGxlKTtcbn1cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2NhcmQtLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWRjLWFjdGl2ZSk7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2NhcmQtLWFjdGl2ZSAucWRuYXByby1kYXRlLWNhcm91c2VsX19jYXJkLW5hbWUge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZC0tYWN0aXZlIC5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2NhcmQtZGF5IHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZC0tYWN0aXZlIC5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2NhcmQtZG90IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZC1uYW1lIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjEycyBlYXNlLCBmb250LXNpemUgMC4yOHMgY3ViaWMtYmV6aWVyKDAuMiwgMCwgMCwgMSksIG1hcmdpbi1ib3R0b20gMC4yOHMgY3ViaWMtYmV6aWVyKDAuMiwgMCwgMCwgMSk7XG59XG4ucWRuYXByby1kYXRlLWNhcm91c2VsX19jYXJkLWRheSB7XG4gIGZvbnQtc2l6ZTogMjNweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMTJzIGVhc2UsIGZvbnQtc2l6ZSAwLjI4cyBjdWJpYy1iZXppZXIoMC4yLCAwLCAwLCAxKTtcbn1cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2NhcmQtZG90IHtcbiAgd2lkdGg6IDRweDtcbiAgaGVpZ2h0OiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbCAuZHJhZy1tb2RlIC5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2NhcmQtLWFjdGl2ZTpub3QoLmlzLWdyb3dpbmcpIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xOHMgZWFzZTtcbn1cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2NhcmQuaXMtcHJlc3Npbmcge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuODYpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4wOXMgZWFzZS1pbjtcbn1cblxuLy8gLS0tLSBDb21wYWN0IChjb2xsYXBzZWQpIHN0YXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRvZ2dsZWQgdmlhIHRoZSBgY29tcGFjdGAgYXR0cmlidXRlICh0aGUgaG9zdCBwYWdlIHNldHMgaXQgb24gc2Nyb2xsKS5cbi8vIEhlYWRlciBjb2xsYXBzZXMgYXdheSwgY2FyZHMgc2hyaW5rOyB0aGUgc3RyaXAgc3RheXMgc2Nyb2xsYWJsZSBhbmQgdGhlXG4vLyBhY3RpdmUgZGF5IHJlLWNlbnRyZXMgKHRoZSBKUyBjZW50cmluZyBtYXRoIHJlYWRzIENBUkRfV19DT01QQUNUIHRvIG1hdGNoKS5cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxbY29tcGFjdF0gLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9faGVhZGVyIHtcbiAgbWF4LWhlaWdodDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxbY29tcGFjdF0gLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZCB7XG4gIHdpZHRoOiAzOHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG59XG4ucWRuYXByby1kYXRlLWNhcm91c2VsW2NvbXBhY3RdIC5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2NhcmQtbmFtZSB7XG4gIGZvbnQtc2l6ZTogOXB4O1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG59XG4ucWRuYXByby1kYXRlLWNhcm91c2VsW2NvbXBhY3RdIC5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2NhcmQtZGF5IHtcbiAgZm9udC1zaXplOiAxNXB4O1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbFtjb21wYWN0XSAucWRuYXByby1kYXRlLWNhcm91c2VsX19jYXJkLWRvdCB7XG4gIHdpZHRoOiAzcHg7XG4gIGhlaWdodDogM3B4O1xuICBtYXJnaW4tdG9wOiAycHg7XG59XG4ucWRuYXByby1kYXRlLWNhcm91c2VsW2NvbXBhY3RdIC5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX3N0cmlwLXdyYXAge1xuICBwYWRkaW5nOiA2cHggMDtcbiAgbWFyZ2luLXRvcDogLTZweDtcbn1cblxuQGtleWZyYW1lcyBxZG5hcHJvLWRjLWdyb3cge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICA1NSUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xOCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHFkbmFwcm8tZGMtcG9wIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC44Nik7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMTIpO1xuICB9XG4gIDcyJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk2KTtcbiAgfVxuICA4NyUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuQGtleWZyYW1lcyBxZG5hcHJvLWRjLWNvbmZpcm0ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICB9XG4gIDQ1JSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjE1KTtcbiAgfVxuICA3MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45Nyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuQGtleWZyYW1lcyBxZG5hcHJvLWRjLXdpZ2dsZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAyNSUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45Mykgcm90YXRlKC0zZGVnKTtcbiAgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNCkgcm90YXRlKDIuNWRlZyk7XG4gIH1cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpIHJvdGF0ZSgtMWRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKSByb3RhdGUoMGRlZyk7XG4gIH1cbn1cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2NhcmQuaXMtZ3Jvd2luZyB7XG4gIGFuaW1hdGlvbjogcWRuYXByby1kYy1ncm93IDAuMzJzIGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjY0LCAxKSBmb3J3YXJkcztcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2NhcmQuaXMtcG9wcGluZyB7XG4gIGFuaW1hdGlvbjogcWRuYXByby1kYy1wb3AgMC40OHMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpIGZvcndhcmRzO1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZC5pcy1jb25maXJtaW5nIHtcbiAgYW5pbWF0aW9uOiBxZG5hcHJvLWRjLWNvbmZpcm0gMC40MnMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpIGZvcndhcmRzO1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZC5pcy13aWdnbGUge1xuICBhbmltYXRpb246IHFkbmFwcm8tZGMtd2lnZ2xlIDAuMzZzIGVhc2UgZm9yd2FyZHM7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG5cbkBrZXlmcmFtZXMgcWRuYXByby1kYy1idG4taW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjQpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgNjUlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbkBrZXlmcmFtZXMgcWRuYXByby1kYy1idG4tb3V0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAzNSUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wOCk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuIiwiLy8gcWRuYXByby11bml0LWNhcmQg4oCUIFBXQSB1bml0LXNlbGVjdCB0aWxlLiBGb3VyIHZpZXcgbW9kZXMuXG4vLyBGTEFUIENTUzsgY29sb3Vycy9yYWRpaSBmcm9tIHRoZSBkZXNpZ24tdG9rZW4gOnJvb3QgKHZhcigtLWMtKikgLyAtLXItKikuXG4vLyBFZGl0IEhFUkUsIHRoZW4gcnVuIGBndWxwIHNhc3MtdjFgIChsaWJyYXJ5KSArIHRoZSBzeW5jIChQV0EpLlxuLy9cbi8vIFZpZXcgbW9kZXMgKEpTIGFkZHMgdGhlIGNsYXNzIGZyb20gdGhlIGB2aWV3YCBhdHRyaWJ1dGUpOlxuLy8gICAudmlldy1ncmlkLWNvbXBhY3QgICBuYXJyb3cgMy1jb2wgY2FyZCAoZGVmYXVsdClcbi8vICAgLnZpZXctZ3JpZC1zdGFuZGFyZCAgd2lkZXIgMi1jb2wgY2FyZFxuLy8gICAudmlldy1saXN0LWNvbXBhY3QgICBkZW5zZSAxLWNvbCBob3Jpem9udGFsIHJvd1xuLy8gICAudmlldy1saXN0LWxhcmdlICAgICByb29teSAxLWNvbCBob3Jpem9udGFsIHJvd1xuLy8gU3RhdGVzOlxuLy8gICAuaXMtc2VsZWN0ZWQgICBwdXJwbGUgZ2xvdyArIGNoZWNrbWFyayBiYWRnZSB2aXNpYmxlXG4vLyAgIC5zdGF0dXMtcHJvYmxlbSAgcmVkIGxlZnQtYm9yZGVyIGFjY2VudCAobGlzdCBtb2RlcyBvbmx5KVxuLy8gRHluYW1pYyBDU1MgdmFycyAoc2V0IGlubGluZSBieSBKUyB2aWEgc3R5bGUuc2V0UHJvcGVydHkpOlxuLy8gICAtLXVjLWZiLWJnICAgZmFsbGJhY2sgYmFja2dyb3VuZCBjb2xvdXIgIChoYXNoLWRlcml2ZWQpXG4vLyAgIC0tdWMtZmItZmcgICBmYWxsYmFjayB0ZXh0IGNvbG91ciAgICAgICAgIChoYXNoLWRlcml2ZWQpXG5cbi8vIEhvc3Q6IE5PIGNsaXBwaW5nLCBOTyBjaHJvbWUuIEp1c3QgdGhlIGZsZXggYm94ICsgcG9zaXRpb24gY29udGV4dCArIHByZXNzL2dsb3dcbi8vIHRyYW5zaXRpb25zLiBUaGUgbWFuZGF0b3J5IGJhZGdlIGlzIGEgZGlyZWN0IGhvc3QgY2hpbGQgKHNpYmxpbmcgb2YgX19mcmFtZSkgYW5kXG4vLyBuZWVkcyB0aGUgaG9zdCdzIG92ZXJmbG93OnZpc2libGUgdG8gb3ZlcmhhbmcgdGhlIGNhcmQncyBjb3JuZXIuIEJvcmRlci9yYWRpdXMvXG4vLyBiYWNrZ3JvdW5kL292ZXJmbG93OmhpZGRlbiBub3cgbGl2ZSBvbiAucWRuYXByby11bml0LWNhcmRfX2ZyYW1lIGJlbG93LCB3aGljaCBpc1xuLy8gdGhlIGhvc3QncyBzaW5nbGUgZmxleCBjaGlsZCBhbmQgZmlsbHMgaXQgaW4gYm90aCBkaW1lbnNpb25zLiBbS2ltIDIwMjYtMDctMTVdXG4ucWRuYXByby11bml0LWNhcmQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAvLyBEZWNsYXJlIHRoZSBmb250IHNvIHRoZSB0aWxlIHJlbmRlcnMgaW4gSW50ZXIgZXZlcnl3aGVyZSwgaW5zdGVhZCBvZiBpbmhlcml0aW5nIHRoZVxuICAvLyBob3N0IHBhZ2UgZm9udCAoZS5nLiB0aGUgUFdBJ3MgTW9udHNlcnJhdCB0aGVtZSBmb250KS4gdjIgY29tcG9uZW50cyBhcmUgZGVzaWduZWQgaW4gSW50ZXIuXG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjtcbiAgLy8gUmVsZWFzZSA9IGEgc3ByaW5neSBcInBvcFwiIGJhY2sgKG92ZXJzaG9vdCBlYXNpbmcpIOKAlCB0aGUgc2F0aXNmeWluZyBwYXJ0LiBQcmVzcy1kb3duXG4gIC8vIG92ZXJyaWRlcyB0aGlzIHdpdGggYSBmYXN0ZXIgc25hcCAoc2VlIC5pcy1wcmVzc2luZykuIE9ubHkgdGhlIHByb3BzIHRoYXQgc3RpbGwgbGl2ZVxuICAvLyBvbiB0aGUgaG9zdDogcHJlc3Mtc2NhbGUgKyB0aGUgc2VsZWN0ZWQgZ2xvdyAoYm94LXNoYWRvdykuIGJvcmRlci1jb2xvci9iYWNrZ3JvdW5kXG4gIC8vIHRyYW5zaXRpb25zIG1vdmVkIHRvIHRoZSBmcmFtZSB3aXRoIHRoZWlyIHJ1bGVzLlxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTcwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpLCBib3gtc2hhZG93IDEyMG1zIGVhc2U7XG59XG4vLyBGcmFtZTogdGhlIGFjdHVhbCBjYXJkIGNocm9tZSArIGNsaXAuIFNpbmdsZSBmbGV4IGNoaWxkIG9mIHRoZSBob3N0LCBzdHJldGNoZXMgdG9cbi8vIGZpbGwgaXQgKGZsZXggZGVmYXVsdCBhbGlnbi1pdGVtczogc3RyZXRjaCksIGhvbGRzIGV2ZXJ5dGhpbmcgZXhjZXB0IHRoZVxuLy8gbWFuZGF0b3J5IGJhZGdlIHNvIHRoZSBiYWRnZSBjYW4gb3ZlcmhhbmcgdGhpcyBmcmFtZSdzIHJvdW5kZWQgY29ybmVyLlxuLnFkbmFwcm8tdW5pdC1jYXJkX19mcmFtZSB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAvLyBib3gtc2hhZG93IGVyYmlqIHNpbmRzIGRlIHNlbGVjdGllLWdsb2VkIHZhbiBkZSBob3N0IG5hYXIgaGV0IGZyYW1lIHZlcmh1aXNkZVxuICAvLyAoMjQuMDguMjAyNik6IHpvbmRlciBkaXQgc3Byb25nIGRlIGdsb2VkIGVyIGhhcmQgaW4gZW4gdWl0LCB3YW50IGRlIGhvc3QtdHJhbnNpdGllXG4gIC8vIGhpZXJvbmRlciBnZWxkdCBuaWV0IG1lZXIgdm9vciBlZW4gc2NoYWR1dyBkaWUgaGllciBnZXRla2VuZCB3b3JkdC5cbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2UsIGJhY2tncm91bmQgMTIwbXMgZWFzZSwgYm94LXNoYWRvdyAxMjBtcyBlYXNlO1xufVxuLy8gVGFjdGlsZSBwcmVzczogcXVpY2sgZGlwIGluLCBzaXplZCBzbyBpdCdzIGZlbHQgYnV0IG5ldmVyIHNsdWdnaXNoLlxuLnFkbmFwcm8tdW5pdC1jYXJkLmlzLXByZXNzaW5nIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDcwbXMgZWFzZS1vdXQ7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAucWRuYXByby11bml0LWNhcmQsXG4gIC5xZG5hcHJvLXVuaXQtY2FyZC5pcy1wcmVzc2luZyB7IHRyYW5zaXRpb246IG5vbmU7IHRyYW5zZm9ybTogbm9uZTsgfVxufVxuXG4vLyBHUklEIE1PREVTIOKAlCBjb2x1bW4gbGF5b3V0LCBuYW1lIGFib3ZlIGltYWdlXG4ucWRuYXByby11bml0LWNhcmQudmlldy1ncmlkLWNvbXBhY3QgLnFkbmFwcm8tdW5pdC1jYXJkX19mcmFtZSxcbi5xZG5hcHJvLXVuaXQtY2FyZC52aWV3LWdyaWQtc3RhbmRhcmQgLnFkbmFwcm8tdW5pdC1jYXJkX19mcmFtZSB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4ucWRuYXByby11bml0LWNhcmQudmlldy1ncmlkLWNvbXBhY3QgLnFkbmFwcm8tdW5pdC1jYXJkX19uYW1lLFxuLnFkbmFwcm8tdW5pdC1jYXJkLnZpZXctZ3JpZC1zdGFuZGFyZCAucWRuYXByby11bml0LWNhcmRfX25hbWUge1xuICAvLyBmbGV4LWdyb3c6IG5hbWUgYXJlYSBhYnNvcmJzIHRoZSBjYXJkJ3MgZXh0cmEgaGVpZ2h0IHNvIGl0IGVxdWFsaXNlcyB0byB0aGUgdGFsbGVzdFxuICAvLyBuYW1lIGluIHRoZSByb3cgKGltYWdlICsgc3RhdHVzIGJhbm5lciB0aGVuIGFsaWduIGFjcm9zcyBjYXJkcyk7IGltYWdlIHN0YXlzIHNxdWFyZS5cbiAgZmxleDogMSAwIGF1dG87XG4gIHBhZGRpbmc6IDhweCA2cHggNnB4O1xuICBmb250LXNpemU6IDE0cHg7IC8vIG1pbiAxNHB4LCBhbHNvIGluIHRoZSBjb21wYWN0IHZpZXcgKEtpbSAyNC4wNi4yMDI2KVxuICBsaW5lLWhlaWdodDogMS4zO1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcpO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAzOyAvLyB3cmFwIHVwIHRvIDMgbGluZXMsIHRoZW4gZWxsaXBzaXMgKOKApilcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgICAvLyBkZWZlbnNpdmU6IG5ldmVyIGxldCBhIGdsb2JhbCBub3dyYXAgY29sbGFwc2UgdGhlIG5hbWVcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5xZG5hcHJvLXVuaXQtY2FyZC52aWV3LWdyaWQtY29tcGFjdCAucWRuYXByby11bml0LWNhcmRfX2ltYWdlLXdyYXAsXG4ucWRuYXByby11bml0LWNhcmQudmlldy1ncmlkLXN0YW5kYXJkIC5xZG5hcHJvLXVuaXQtY2FyZF9faW1hZ2Utd3JhcCB7XG4gIHdpZHRoOiAxMDAlO1xuICBhc3BlY3QtcmF0aW86IDEgLyAxOyAvLyB1bml0IHBob3RvcyBhcmUgc3RvcmVkIGFzIGEgc3F1YXJlIGNyb3AgKDMwMHgzMDApIOKGkiB1bmlmb3JtIGNhcmRzXG4gIGZsZXgtc2hyaW5rOiAwOyAgICAgIC8vIGltYWdlIGtlZXBzIGl0cyBzaXplOyBleHRyYSByb3cgaGVpZ2h0IGdvZXMgdG8gdGhlIG5hbWUgYXJlYSwgbm90IHRoZSBwaG90b1xufVxuLnFkbmFwcm8tdW5pdC1jYXJkLnZpZXctZ3JpZC1jb21wYWN0IC5xZG5hcHJvLXVuaXQtY2FyZF9fY2hlY2stYmFkZ2UsXG4ucWRuYXByby11bml0LWNhcmQudmlldy1ncmlkLXN0YW5kYXJkIC5xZG5hcHJvLXVuaXQtY2FyZF9fY2hlY2stYmFkZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogNnB4O1xuICByaWdodDogNnB4O1xufVxuLnFkbmFwcm8tdW5pdC1jYXJkLnZpZXctZ3JpZC1zdGFuZGFyZCAucWRuYXByby11bml0LWNhcmRfX25hbWUge1xuICBmb250LXNpemU6IDE1cHg7XG4gIHBhZGRpbmc6IDlweCAxMXB4IDdweDtcbn1cbi5xZG5hcHJvLXVuaXQtY2FyZC52aWV3LWdyaWQtc3RhbmRhcmQgLnFkbmFwcm8tdW5pdC1jYXJkX19mYWxsYmFjay1hYmJyIHtcbiAgZm9udC1zaXplOiAyNHB4O1xufVxuLnFkbmFwcm8tdW5pdC1jYXJkLnZpZXctZ3JpZC1zdGFuZGFyZCAucWRuYXByby11bml0LWNhcmRfX2NoZWNrLWJhZGdlIHtcbiAgYm90dG9tOiA4cHg7XG4gIHJpZ2h0OiA4cHg7XG4gIHdpZHRoOiAyNnB4O1xuICBoZWlnaHQ6IDI2cHg7XG59XG5cbi8vIExJU1QgTU9ERVMg4oCUIHJvdyBsYXlvdXQsIGltYWdlIGxlZnRcbi5xZG5hcHJvLXVuaXQtY2FyZC52aWV3LWxpc3QtY29tcGFjdCAucWRuYXByby11bml0LWNhcmRfX2ZyYW1lLFxuLnFkbmFwcm8tdW5pdC1jYXJkLnZpZXctbGlzdC1sYXJnZSAucWRuYXByby11bml0LWNhcmRfX2ZyYW1lIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5xZG5hcHJvLXVuaXQtY2FyZC52aWV3LWxpc3QtY29tcGFjdCAucWRuYXByby11bml0LWNhcmRfX2ltYWdlLXdyYXAsXG4ucWRuYXByby11bml0LWNhcmQudmlldy1saXN0LWxhcmdlIC5xZG5hcHJvLXVuaXQtY2FyZF9faW1hZ2Utd3JhcCB7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBvcmRlcjogLTE7IC8vIERPTSBvcmRlciBpcyBuYW1lLWZpcnN0IChmb3IgZ3JpZCk7IHB1bGwgdGhlIGltYWdlIGJhY2sgdG8gdGhlIGxlZnQgaW4gYSByb3dcbn1cbi8vIFRoZSBhdWRpdC1vdXRjb21lIGJhbm5lciBpcyBhIGdyaWQgZmVhdHVyZTsgYSBsaXN0IHJvdyBzdGF5cyBzaW5nbGUtbGluZS5cbi5xZG5hcHJvLXVuaXQtY2FyZC52aWV3LWxpc3QtY29tcGFjdCAucWRuYXByby11bml0LWNhcmRfX3N0YXR1cy1iYXIsXG4ucWRuYXByby11bml0LWNhcmQudmlldy1saXN0LWxhcmdlIC5xZG5hcHJvLXVuaXQtY2FyZF9fc3RhdHVzLWJhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ucWRuYXByby11bml0LWNhcmQudmlldy1saXN0LWNvbXBhY3QgLnFkbmFwcm8tdW5pdC1jYXJkX19uYW1lLFxuLnFkbmFwcm8tdW5pdC1jYXJkLnZpZXctbGlzdC1sYXJnZSAucWRuYXByby11bml0LWNhcmRfX25hbWUge1xuICBmbGV4OiAxO1xuICBwYWRkaW5nOiAwIDEycHg7XG4gIGZvbnQtc2l6ZTogMTRweDsgLy8gbWluIDE0cHhcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nKTtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5xZG5hcHJvLXVuaXQtY2FyZC52aWV3LWxpc3QtY29tcGFjdCAucWRuYXByby11bml0LWNhcmRfX2NoZWNrLWJhZGdlLFxuLnFkbmFwcm8tdW5pdC1jYXJkLnZpZXctbGlzdC1sYXJnZSAucWRuYXByby11bml0LWNhcmRfX2NoZWNrLWJhZGdlIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLXVuaXQtY2FyZC52aWV3LWxpc3QtbGFyZ2UgLnFkbmFwcm8tdW5pdC1jYXJkX19pbWFnZS13cmFwIHtcbiAgd2lkdGg6IDY0cHg7XG4gIGhlaWdodDogNjRweDtcbn1cbi5xZG5hcHJvLXVuaXQtY2FyZC52aWV3LWxpc3QtbGFyZ2UgLnFkbmFwcm8tdW5pdC1jYXJkX19uYW1lIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLnFkbmFwcm8tdW5pdC1jYXJkLnZpZXctbGlzdC1sYXJnZSAucWRuYXByby11bml0LWNhcmRfX2NoZWNrLWJhZGdlIHtcbiAgbWFyZ2luLXJpZ2h0OiAxNHB4O1xuICB3aWR0aDogMjZweDtcbiAgaGVpZ2h0OiAyNnB4O1xufVxuXG4vLyBmbGF0IOKAlCBsaXN0IG1vZGVzIG9ubHkuIE5vIGNhcmQgYm9yZGVyL3JhZGl1cywganVzdCBhIGJvdHRvbSBrZXlsaW5lLCBzbyBhIHN0YWNrXG4vLyBvZiBjYXJkcyByZWFkcyBhcyB0YWJsZSByb3dzIGluc3RlYWQgb2Ygc2VwYXJhdGUgdGlsZXMuIE1pcnJvcnMgdGhlIFwiYm9yZGVyOlxuLy8gdHJhbnNwYXJlbnQgKyBib3JkZXItYm90dG9tOiByZWFsXCIgaWRpb20gYWxyZWFkeSB1c2VkIGJ5IHFkbmFwcm8tdW5pdC1pbnB1dC1yb3cnc1xuLy8gZGVmYXVsdCAobm9uLWJvcmRlcmxlc3MpIGxvb2sg4oCUIHNhbWUgaWRlYSwgcG9ydGVkIGhlcmUuIFsyMDI2LTA3LTAxXVxuLnFkbmFwcm8tdW5pdC1jYXJkLmZsYXQudmlldy1saXN0LWNvbXBhY3QgLnFkbmFwcm8tdW5pdC1jYXJkX19mcmFtZSxcbi5xZG5hcHJvLXVuaXQtY2FyZC5mbGF0LnZpZXctbGlzdC1sYXJnZSAucWRuYXByby11bml0LWNhcmRfX2ZyYW1lIHtcbiAgYm9yZGVyOiAxLjVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQpO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4vLyBjbGVhcmFibGUgY2hlY2tib3gg4oCUIGxpc3QgbW9kZXMgb25seSAoc2FtZSBzY29waW5nIGFzIHRoZSBzdGF0dXMtYmFyIGJlaW5nXG4vLyBncmlkLW9ubHkgYWJvdmUpLiBUcmFpbGluZyBmbGV4IGNoaWxkLCBzaXRzIGFmdGVyIHRoZSBjaGVjay1iYWRnZS4gU2hhcGUvc2l6ZS9cbi8vIGNvbG91ci9ob3Zlci9mb2N1cyBhbGwgY29tZSBmcm9tIHFkbmFwcm8tY2hlY2tib3gncyBvd24gY29tcG9uZW50IENTUyAoaXQnc1xuLy8gcmVuZGVyZWQgc2l6ZT1cInRvdWNoXCIpIOKAlCB0aGlzIG9ubHkgaGFuZGxlcyBpdHMgcG9zaXRpb24gaW4gdGhlIHJvdy4gWzIwMjYtMDctMDFdXG4ucWRuYXByby11bml0LWNhcmRfX2NsZWFyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5xZG5hcHJvLXVuaXQtY2FyZC52aWV3LWxpc3QtY29tcGFjdCAucWRuYXByby11bml0LWNhcmRfX2NsZWFyLFxuLnFkbmFwcm8tdW5pdC1jYXJkLnZpZXctbGlzdC1sYXJnZSAucWRuYXByby11bml0LWNhcmRfX2NsZWFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG59XG5cbi8vIElOVEVSTkFMU1xuLnFkbmFwcm8tdW5pdC1jYXJkX19pbWFnZS13cmFwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZC1ob3Zlcik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucWRuYXByby11bml0LWNhcmRfX2ltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY29udGFpbjsgLy8gcGhvdG9zIGFyZSBzcXVhcmUgY3JvcHM7IGNvbnRhaW4gc2hvd3MgdGhlIHdob2xlIHBhY2ssIG5vIGNyb3BwaW5nXG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnFkbmFwcm8tdW5pdC1jYXJkX19mYWxsYmFjayB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDY4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS11Yy1mYi1iZywgI2VlZjBmYik7XG59XG4ucWRuYXByby11bml0LWNhcmRfX2ZhbGxiYWNrLWFiYnIge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IHZhcigtLXVjLWZiLWZnLCAjNGE1MmEwKTtcbn1cbi5xZG5hcHJvLXVuaXQtY2FyZF9fY2hlY2stYmFkZ2Uge1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNCk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgZWFzZSwgdHJhbnNmb3JtIDIyMG1zIGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjY0LCAxKTtcbn1cbi5xZG5hcHJvLXVuaXQtY2FyZF9fY2hlY2stYmFkZ2Ugc3ZnIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ucWRuYXByby11bml0LWNhcmRfX2xwLXJpbmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICBib3JkZXI6IDIuNXB4IHNvbGlkIHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi8vIEF1ZGl0LW91dGNvbWUgYmFubmVyIChncmlkIGJvdHRvbSkuIENvbG91ciBwZXIgcmVzdWx0LSogY2xhc3M7IGxhYmVsIHRleHQgaXMgcGFzc2VkIGluLlxuLy8gei1pbmRleCAyIGtlZXBzIGl0IGFib3ZlIHRoZSBzZWxlY3RlZCBzY3JpbSAoOjphZnRlciwgei1pbmRleCAxKSwgbGlrZSB0aGUgY2hlY2sgYmFkZ2UuXG4ucWRuYXByby11bml0LWNhcmRfX3N0YXR1cy1iYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgcGFkZGluZzogN3B4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG4gIGZsZXgtc2hyaW5rOiAwOyAvLyBmaXhlZC1oZWlnaHQgYmFubmVyOyBuZXZlciBjb21wcmVzc2VzIHdoZW4gdGhlIG5hbWUgYXJlYSBncm93c1xufVxuLnFkbmFwcm8tdW5pdC1jYXJkX19zdGF0dXMtaWNvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8tdW5pdC1jYXJkX19zdGF0dXMtaWNvbiBzdmcge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8vIExhYmVsIHN0YXlzIG9uIE9ORSBsaW5lOyBpZiBpdCBkb2Vzbid0IGZpdCBpdCB0cnVuY2F0ZXMgd2l0aCDigKYgaW5zdGVhZCBvZiB3cmFwcGluZ1xuLy8gKHdoaWNoIHdvdWxkIGdyb3cgdGhlIGJhbm5lciBhbmQgYnJlYWsgdGhlIGNhcmQgbGF5b3V0KS4gbWluLXdpZHRoOjAgbGV0cyB0aGUgZmxleFxuLy8gaXRlbSBzaHJpbmsgc28gdGV4dC1vdmVyZmxvdyBjYW4ga2ljayBpbi5cbi5xZG5hcHJvLXVuaXQtY2FyZF9fc3RhdHVzLWxhYmVsIHtcbiAgbWluLXdpZHRoOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi5xZG5hcHJvLXVuaXQtY2FyZC5yZXN1bHQtb2sgICAgICAgICAucWRuYXByby11bml0LWNhcmRfX3N0YXR1cy1iYXIgeyBiYWNrZ3JvdW5kOiAjNmJiNmFiOyB9XG4ucWRuYXByby11bml0LWNhcmQucmVzdWx0LW5vdC1vayAgICAgLnFkbmFwcm8tdW5pdC1jYXJkX19zdGF0dXMtYmFyIHsgYmFja2dyb3VuZDogdmFyKC0tYy1mYXZvcml0ZS1oZWFydCk7IH1cbi5xZG5hcHJvLXVuaXQtY2FyZC5yZXN1bHQtZnV0dXJlLWZpeCAucWRuYXByby11bml0LWNhcmRfX3N0YXR1cy1iYXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdhcm4teWVsbG93LTYwMCk7IH1cbi5xZG5hcHJvLXVuaXQtY2FyZC5yZXN1bHQtaXNzdWUgICAgICAucWRuYXByby11bml0LWNhcmRfX3N0YXR1cy1iYXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXRhZy1oYW5kb3Zlci10ZXh0KTsgfSAvLyBwbGFjZWhvbGRlciDigJQgY29uZmlybSB3aXRoIEtpbVxuXG4vLyBXaGVuIGEgYmFubmVyIGlzIHByZXNlbnQgKGdyaWQpLCBsaWZ0IHRoZSBjaGVjayBiYWRnZSBhYm92ZSBpdCBzbyBpdCBzdGF5cyBvbiB0aGUgcGhvdG8uXG4ucWRuYXByby11bml0LWNhcmQuaGFzLXJlc3VsdC52aWV3LWdyaWQtY29tcGFjdCAucWRuYXByby11bml0LWNhcmRfX2NoZWNrLWJhZGdlLFxuLnFkbmFwcm8tdW5pdC1jYXJkLmhhcy1yZXN1bHQudmlldy1ncmlkLXN0YW5kYXJkIC5xZG5hcHJvLXVuaXQtY2FyZF9fY2hlY2stYmFkZ2Uge1xuICBib3R0b206IDM2cHg7XG59XG5cbi8vIFNUQVRFU1xuLy8gR0xPRUQgVkVSSFVJU0QgTkFBUiBIRVQgRlJBTUUsIDI0LjA4LjIwMjYgKEtpbTogXCJ3YWFyb20gaXMgZGUgc2VsZWN0IHN0YXRlIHZhblxuLy8gZWVuIHVuaXQgdmllcmthbnQgdGVyd2lqbCBoZXQgZnJhbWUgcm91bmRlZCBjb3JuZXJzIGhlZWZ0P1wiKS4gSGlqIHN0b25kIG9wIGRlXG4vLyBIT1NULCBlbiBkZSBob3N0IGhlZWZ0IGJld3VzdCBnZWVuIGJvcmRlci1yYWRpdXMgLSBkaWUgeml0IG9wIGhldCBmcmFtZS4gRWVuXG4vLyBib3gtc2hhZG93IHZvbGd0IGRlIHJhZGl1cyB2YW4gaGV0IGVsZW1lbnQgd2FhciBoaWogb3Agc3RhYXQsIGR1cyBlZW4gdmllcmthbnRlXG4vLyBnbG9lZCBvbSBlZW4gcm9uZGUga2FhcnQuXG4vLyBEZSBvdWRlIGNvbW1lbnQgaGllciB6ZWkgZGF0IGRlIGdsb2VkIG9wIGRlIGhvc3QgbW9lc3QgYmxpanZlbiBvbWRhdCBoaWogQlVJVEVOXG4vLyBkZSBib3ggdGVrZW50IGVuIGR1cyBkZSBob3N0J3Mgb3ZlcmZsb3c6dmlzaWJsZSBub2RpZyBoZWVmdC4gRGF0IGtsb3B0IG5pZXQ6XG4vLyBgb3ZlcmZsb3c6IGhpZGRlbmAgb3AgaGV0IGZyYW1lIGtuaXB0IGFsbGVlbiBkZSBJTkhPVUQgdmFuIGhldCBmcmFtZSwgbmlldCB6aWpuXG4vLyBlaWdlbiBidWl0ZW53YWFydHNlIHNjaGFkdXcsIGVuIGRlIGhvc3Qgc3RhYXQgbm9nIHN0ZWVkcyBvcCB2aXNpYmxlIHpvZGF0IGRpZVxuLy8gc2NoYWR1dyBydWltdGUgaGVlZnQuIE9wIGhldCBmcmFtZSB2b2xndCBkZSBnbG9lZCBudSBhdXRvbWF0aXNjaCBkZSBqdWlzdGUgdm9ybSxcbi8vIGluY2x1c2llZiBkZSBmbGF0L3ZpZXctbGlzdC12YXJpYW50ZW4gd2FhciBkZSBmcmFtZS1yYWRpdXMgMCBpcy5cbi5xZG5hcHJvLXVuaXQtY2FyZC5pcy1zZWxlY3RlZCAucWRuYXByby11bml0LWNhcmRfX2ZyYW1lIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKTtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHZhcigtLWZvY3VzLWdsb3cpO1xufVxuLy8gU2VtaS10cmFuc3BhcmVudCBkYXJrIHNjcmltIG92ZXIgdGhlIHdob2xlIHRpbGUgd2hlbiBzZWxlY3RlZCAoaW1hZ2UgKyBuYW1lKS4gTGl2ZXNcbi8vIG9uIHRoZSBmcmFtZSAocG9zaXRpb246cmVsYXRpdmUsIG92ZXJmbG93OmhpZGRlbikgc28gaXQgY2xpcHMgdG8gdGhlIGZyYW1lJ3Mgcm91bmRlZFxuLy8gY29ybmVycyBhbmQg4oCUIGNyaXRpY2FsbHkg4oCUIGRvZXMgTk9UIGNvdmVyIHRoZSBvdmVyaGFuZ2luZyBtYW5kYXRvcnkgYmFkZ2UsIHdoaWNoIGlzXG4vLyBvdXRzaWRlIHRoZSBmcmFtZS4gVGhlIGNoZWNrIGJhZGdlIHNpdHMgYWJvdmUgaXQgKHotaW5kZXgpLiBDb2xvdXIvb3BhY2l0eSBpcyBhXG4vLyBwbGFjZWhvbGRlciBwZW5kaW5nIHRoZSBleGFjdCBGaWdtYSB2YWx1ZSAoNi4xIFVuaXQgQXVkaXQgU3RhcnQuX3VuaXQgc2VsZWN0KS5cbi5xZG5hcHJvLXVuaXQtY2FyZC5pcy1zZWxlY3RlZCAucWRuYXByby11bml0LWNhcmRfX2ZyYW1lOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjYsIDMxLCA3NywgMC4zMik7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAxO1xufVxuLnFkbmFwcm8tdW5pdC1jYXJkLmlzLXNlbGVjdGVkIC5xZG5hcHJvLXVuaXQtY2FyZF9fY2hlY2stYmFkZ2Uge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB6LWluZGV4OiAyO1xuICBhbmltYXRpb246IHVjLWJhZGdlLXBvcCAwLjUycyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC41LCAxKTtcbn1cblxuLy8gRHJhdy1pbiBjaGVja21hcmsgcGF0aFxuLnFkbmFwcm8tdW5pdC1jYXJkX19jaGVjay1wYXRoIHtcbiAgc3Ryb2tlLWRhc2hhcnJheTogMjM7XG4gIHN0cm9rZS1kYXNob2Zmc2V0OiAyMztcbiAgdHJhbnNpdGlvbjogc3Ryb2tlLWRhc2hvZmZzZXQgMC4xNXMgZWFzZTtcbn1cbi5xZG5hcHJvLXVuaXQtY2FyZC5pcy1zZWxlY3RlZCAucWRuYXByby11bml0LWNhcmRfX2NoZWNrLXBhdGgge1xuICBhbmltYXRpb246IHVjLWRyYXcgMC4zOHMgY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpIDAuMDRzIGZvcndhcmRzO1xufVxuXG5Aa2V5ZnJhbWVzIHVjLWJhZGdlLXBvcCB7XG4gIDAlICAgeyB0cmFuc2Zvcm06IHNjYWxlKDAuNykgICAgcm90YXRlKDBkZWcpOyAgfVxuICAyMCUgIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjIyKSAgIHJvdGF0ZSgtNWRlZyk7IH1cbiAgNDQlICB7IHRyYW5zZm9ybTogc2NhbGUoMC45MCkgICByb3RhdGUoM2RlZyk7ICB9XG4gIDY0JSAgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMDgpICAgcm90YXRlKC0xZGVnKTsgfVxuICA4MCUgIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjk3KSAgIHJvdGF0ZSgwZGVnKTsgIH1cbiAgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSkgICAgICByb3RhdGUoMGRlZyk7ICB9XG59XG5cbkBrZXlmcmFtZXMgdWMtZHJhdyB7XG4gIDAlICAgeyBzdHJva2UtZGFzaG9mZnNldDogMjM7ICB9XG4gIDYyJSAgeyBzdHJva2UtZGFzaG9mZnNldDogLTE7ICB9XG4gIDgwJSAgeyBzdHJva2UtZGFzaG9mZnNldDogMC43OyB9XG4gIDEwMCUgeyBzdHJva2UtZGFzaG9mZnNldDogMDsgICB9XG59XG4ucWRuYXByby11bml0LWNhcmQuc3RhdHVzLXByb2JsZW0udmlldy1saXN0LWNvbXBhY3QgLnFkbmFwcm8tdW5pdC1jYXJkX19mcmFtZSxcbi5xZG5hcHJvLXVuaXQtY2FyZC5zdGF0dXMtcHJvYmxlbS52aWV3LWxpc3QtbGFyZ2UgLnFkbmFwcm8tdW5pdC1jYXJkX19mcmFtZSB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1jLWZhdm9yaXRlLWhlYXJ0KTtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDNweDtcbn1cblxuLy8gTWFuZGF0b3J5IG1hcmtlciAoYm9vbGVhbiBgbWFuZGF0b3J5YCBhdHRyKSDigJQgcmVkIHJvdW5kIGFzdGVyaXNrIGJhZGdlIHRoYXRcbi8vIE9WRVJIQU5HUyB0aGUgY2FyZCdzIHRvcC1yaWdodCBjb3JuZXIsIGhhbGYgb3V0c2lkZSB0aGUgdGlsZSwgbGlrZSBhIG5vdGlmaWNhdGlvblxuLy8gYmFkZ2UuIFBvc3NpYmxlIG5vdyBiZWNhdXNlIHRoZSBiYWRnZSBpcyBhIGRpcmVjdCBIT1NUIGNoaWxkIChzaWJsaW5nIG9mXG4vLyBfX2ZyYW1lLCBhcHBlbmRlZCBhZnRlciBpdCkgYW5kIHRoZSBob3N0IGhhcyBvdmVyZmxvdzp2aXNpYmxlIOKAlCBvbmx5IHRoZSBmcmFtZVxuLy8gY2xpcHMuIE5lZ2F0aXZlIHRvcC9yaWdodCBwdWxsIGl0IG91dHNpZGUgdGhlIGZyYW1lJ3Mgcm91bmRlZCBjb3JuZXI7IHRoZSB3aGl0ZVxuLy8gcmluZyAoYm9yZGVyLCBjb2xvdXItbWF0Y2hlZCB0byB0aGUgY2FyZCBiYWNrZ3JvdW5kKSBtYWtlcyBpdCByZWFkIGFzIGEgYmFkZ2Vcbi8vIHBvcHBpbmcgb2ZmIHRoZSBzdXJmYWNlIHJhdGhlciB0aGFuIGEgc2hhcGUgZmxvYXRpbmcgaW4gc3BhY2UuIFtLaW0gMjAyNi0wNy0xNV1cbi5xZG5hcHJvLXVuaXQtY2FyZCAucWRuYXByby11bml0LWNhcmRfX2ltYWdlLXdyYXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ucWRuYXByby11bml0LWNhcmQgLnFkbmFwcm8tdW5pdC1jYXJkX19tYW5kYXRvcnktYmFkZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTdweDtcbiAgcmlnaHQ6IC03cHg7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1mYXZvcml0ZS1oZWFydCk7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWMtYmctY2FyZCk7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogNDtcbn1cbi5xZG5hcHJvLXVuaXQtY2FyZCAucWRuYXByby11bml0LWNhcmRfX21hbmRhdG9yeS1iYWRnZSBzdmcge1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAxMnB4O1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8vIFRoZSBiYWRnZSBub3cgc2l0cyBvdXRzaWRlIHRoZSBmcmFtZSwgc28gYSBsb25nIHRpdGxlIG5vIGxvbmdlciBydW5zIHVuZGVyIGl0IOKAlFxuLy8gb25seSBhIHNtYWxsIG51ZGdlIGlzIGtlcHQgZm9yIHRoZSB+N3B4IGlud2FyZCBvdmVybGFwIGF0IHRoZSB2ZXJ5IHRvcC1yaWdodC5cbi5xZG5hcHJvLXVuaXQtY2FyZC5pcy1tYW5kYXRvcnkudmlldy1ncmlkLWNvbXBhY3QgLnFkbmFwcm8tdW5pdC1jYXJkX19uYW1lLFxuLnFkbmFwcm8tdW5pdC1jYXJkLmlzLW1hbmRhdG9yeS52aWV3LWdyaWQtc3RhbmRhcmQgLnFkbmFwcm8tdW5pdC1jYXJkX19uYW1lIHtcbiAgcGFkZGluZy1yaWdodDogMTRweDtcbn1cbi5xZG5hcHJvLXVuaXQtY2FyZC52aWV3LWxpc3QtY29tcGFjdCAucWRuYXByby11bml0LWNhcmRfX21hbmRhdG9yeS1iYWRnZSB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIHRvcDogLTZweDtcbiAgcmlnaHQ6IC02cHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWMtYmctY2FyZCk7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ucWRuYXByby11bml0LWNhcmQudmlldy1saXN0LWNvbXBhY3QgLnFkbmFwcm8tdW5pdC1jYXJkX19tYW5kYXRvcnktYmFkZ2Ugc3ZnIHtcbiAgd2lkdGg6IDlweDtcbiAgaGVpZ2h0OiA5cHg7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLXVuaXQtY29udGV4dFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgU2xpbSBcIndoaWNoIHVuaXRzIGFtIEkgYW5zd2VyaW5nIGZvclwiIGNvbnRleHQgYmFyICsgYVxuLy8gIGZ1bGxzY3JlZW4gZmxvYXQtaW4gb3ZlcmxheSBsaXN0aW5nIHRoZSBzZWxlY3RlZCB1bml0cy5cbi8vXG4vLyAgQ29uc3VtZXMgZGVzaWduIHRva2VucyBmcm9tIGRlc2lnbi10b2tlbnMvX2Rlc2lnbi10b2tlbnMuc2Nzcy5cbi8vICBDb21wb3NlcyBxZG5hLXVuaXQtY2FyZCAocm93cyksIHFkbmEtaW5wdXQgKHNlYXJjaCksXG4vLyAgcWRuYS1idXR0b24gKGNsb3NlKS4gTGlnaHQgRE9NLCBQYXR0ZXJuIEIuXG4vL1xuLy8gIE5PVEU6IHRoaXMgZmlsZSBpcyBhbHNvIHN5bmNlZCB0byB0aGUgUFdBIHZpYSBzeW5jLXYyLWNvbXBvbmVudHMuanNcbi8vICAod2hpY2ggb25seSBzdHJpcHMgLy8gY29tbWVudHMg4oCUIGl0IGRvZXMgTk9UIGNvbXBpbGUgU0NTUyBuZXN0aW5nKS5cbi8vICBLZWVwIEFMTCBzZWxlY3RvcnMgRkxBVCAobm8gJiBuZXN0aW5nKSBzbyB0aGUgZmlsZSB3b3JrcyBhcyBwbGFpbiBDU1Ncbi8vICBpbiB0aGUgUFdBIHdpdGhvdXQgY29tcGlsYXRpb24uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gLS0tLS0tLS0tLSBob3N0IC0tLS0tLS0tLS1cbi5xZG5hcHJvLXVuaXQtY29udGV4dCB7IGRpc3BsYXk6IGJsb2NrOyB9XG4ucWRuYXByby11bml0LWNvbnRleHQuaXMtZW1wdHkgeyBkaXNwbGF5OiBub25lOyB9XG5cbi8vIC0tLS0tLS0tLS0gdHJpZ2dlciBidXR0b24gLS0tLS0tLS0tLVxuLnFkbmFwcm8tdW5pdC1jb250ZXh0X19iYXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcyBlYXNlLW91dDtcbn1cbi5xZG5hcHJvLXVuaXQtY29udGV4dF9fYmFyOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTEwMCk7IH1cbi5xZG5hcHJvLXVuaXQtY29udGV4dF9fYmFyOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHZhcigtLWZvY3VzLWdsb3cpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9jdXMtcmluZyk7XG59XG5cbi5xZG5hcHJvLXVuaXQtY29udGV4dF9fbmFtZSB7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZnctbWVkaXVtKTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcpO1xufVxuXG4ucWRuYXByby11bml0LWNvbnRleHRfX2NoZXZyb24ge1xuICAgIGZsZXg6IG5vbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbn1cbi5xZG5hcHJvLXVuaXQtY29udGV4dF9fY2hldnJvbiBzdmcgeyBkaXNwbGF5OiBibG9jazsgfVxuXG4vLyAtLS0tLS0tLS0tIGZ1bGxzY3JlZW4gb3ZlcmxheSAtLS0tLS0tLS0tXG4ucWRuYXByby11bml0LWNvbnRleHRfX292ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBpbnNldDogMDtcbiAgICB6LWluZGV4OiAyMTQ3NDgzMDAwOyAvLyBwb3J0YWxsZWQgdG8gPGJvZHk+OiBzaXQgYWJvdmUgZXZlcnl0aGluZ1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG4ucWRuYXByby11bml0LWNvbnRleHRfX292ZXJsYXlbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLnFkbmFwcm8tdW5pdC1jb250ZXh0X19iYWNrZHJvcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmxhY2stMzApO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyNDBtcyBlYXNlO1xufVxuXG4ucWRuYXByby11bml0LWNvbnRleHRfX3BhbmVsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgICAvLyBRdWljayBmbG9vZGZpbGw6IGEgY2lyY2xlIHdpcGVzIG9wZW4gZnJvbSB0aGUgdG9wLXJpZ2h0ICh3aGVyZSB0aGUgYmFyJ3NcbiAgICAvLyBcInZpZXcgYWxsXCIgYWZmb3JkYW5jZSBzaXRzKSBhbmQgZmlsbHMgdGhlIHNjcmVlbi5cbiAgICBjbGlwLXBhdGg6IGNpcmNsZSgwJSBhdCAxMDAlIDAlKTtcbiAgICB0cmFuc2l0aW9uOiBjbGlwLXBhdGggMzQwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICB3aWxsLWNoYW5nZTogY2xpcC1wYXRoO1xufVxuXG4vLyBPdmVybGF5IG9wZW4gc3RhdGVzIOKAlCB0aGVzZSBtdXN0IHdvcmsgZXZlbiB3aGVuIHRoZSBvdmVybGF5IGlzIHBvcnRhbGxlZCB0byA8Ym9keT5cbi8vIChpLmUuIG5vIGxvbmdlciBhIGNoaWxkIG9mIC5xZG5hcHJvLXVuaXQtY29udGV4dCksIHNvIHVzZSBkaXJlY3QgZGVzY2VuZGFudCBzZWxlY3RvcnNcbi8vIHJvb3RlZCBvbiB0aGUgb3ZlcmxheSBlbGVtZW50IGl0c2VsZi5cbi5xZG5hcHJvLXVuaXQtY29udGV4dF9fb3ZlcmxheS5pcy1vcGVuIC5xZG5hcHJvLXVuaXQtY29udGV4dF9fYmFja2Ryb3AgeyBvcGFjaXR5OiAxOyB9XG4ucWRuYXByby11bml0LWNvbnRleHRfX292ZXJsYXkuaXMtb3BlbiAucWRuYXByby11bml0LWNvbnRleHRfX3BhbmVsIHtcbiAgICBjbGlwLXBhdGg6IGNpcmNsZSgxNTAlIGF0IDEwMCUgMCUpO1xufVxuXG4vLyAtLS0tLS0tLS0tIHBhbmVsIGhlYWRlciAtLS0tLS0tLS0tXG4ucWRuYXByby11bml0LWNvbnRleHRfX2hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiB2YXIoLS1zLTMpO1xuICAgIHBhZGRpbmc6IDE4cHggdmFyKC0tcy00KSB2YXIoLS1zLTMpO1xufVxuXG4vLyBUaXRsZSArIGNvdW50LXBpbGwgc2l0IHNpZGUgYnkgc2lkZSBvbiBvbmUgcm93IG5vdywgbm90IHN0YWNrZWQuIFsyMDI2LTA3LTAyXVxuLnFkbmFwcm8tdW5pdC1jb250ZXh0X19oZWFkaW5nLXdyYXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXMtMik7XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4vLyBTaXplcyBidW1wZWQgZm9yIFBXQSBsZWdpYmlsaXR5IChLaW0sIDIwMjYtMDctMDEpOiAxN+KGkjI44oaSMjRweCwgbWVkaXVt4oaSc2VtaSDigJQgS2ltJ3Ncbi8vIGZpbmFsIGNhbGwgYWZ0ZXIgc2VlaW5nIDI4cHgvbWVkaXVtIGluIGNvbnRleHQgKHRvbyBiaWcsIHdhbnRlZCBtb3JlIHdlaWdodCBpbnN0ZWFkKS5cbi5xZG5hcHJvLXVuaXQtY29udGV4dF9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaSk7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nKTtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xufVxuLy8gSW50ZXJhY3RpdmUgcGlsbCAobm90IHBsYWluIHRleHQpIHNvIHRoZSBjb3VudCByZWFkcyBhcyBhIGxpdmUgY291bnRlciDigJQgcHVsc2VzIHZpYVxuLy8gLmlzLXB1bHNpbmcgKGFkZGVkL3JlbW92ZWQgYnkgcWRuYS11bml0LWNvbnRleHQuanMpIHdoZW5ldmVyIGEgdW5pdCBpcyB1bmNoZWNrZWQsIGZvclxuLy8gdmlzdWFsIGZlZWRiYWNrIHRoYXQgdGhlIGNvdW50IGFjdHVhbGx5IGNoYW5nZWQuIFtLaW0sIDIwMjYtMDctMDFdIFNpdHMgbmV4dCB0byB0aGVcbi8vIHRpdGxlIChzZWUgX19oZWFkaW5nLXdyYXApIGFuZCByZXVzZXMgdGhlIGhpbnQgcGlsbCdzIGxpZ2h0LXB1cnBsZS9wdXJwbGUtdGV4dFxuLy8gdG9rZW5zLCBub3QgdGhlIG5ldXRyYWwgZ3JleSBpdCBzdGFydGVkIHdpdGguIFtLaW0sIDIwMjYtMDctMDJdXG4ucWRuYXByby11bml0LWNvbnRleHRfX3N1YnRpdGxlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDJweCAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItcGlsbCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zZWNvbmRhcnktcHVycGxlKTtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LW1lZGl1bSk7XG4gICAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbn1cbi5xZG5hcHJvLXVuaXQtY29udGV4dF9fc3VidGl0bGUuaXMtcHVsc2luZyB7XG4gICAgYW5pbWF0aW9uOiBxZG5hcHJvLXVuaXQtY29udGV4dC1jb3VudC1wb3AgNDIwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpO1xufVxuQGtleWZyYW1lcyBxZG5hcHJvLXVuaXQtY29udGV4dC1jb3VudC1wb3Age1xuICAgIDAlICAgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gICAgMzAlICB7IHRyYW5zZm9ybTogc2NhbGUoMS4xOCk7IH1cbiAgICA1NSUgIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjk0KTsgfVxuICAgIDc1JSAgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpOyB9XG4gICAgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbn1cblxuLy8gQ2xvc2UgYnV0dG9uIGlzIGEgcWRuYXByby1pY29uLWJ0biAodHlwZT1cInN1YnRsZVwiIHJvdW5kIHNpemU9XCJ0b3VjaFwiKS4gdHlwZT1cInN1YnRsZVwiXG4vLyBvbiBpdHMgb3duIHJlbmRlcnMgYSBuZWFyLWJsYWNrIGljb24gKCMwYjBiMGQsIHNlZSBfaWNvbi1idG4uc2Nzcykg4oCUIEtpbSB3YW50cyBhblxuLy8gYWN0dWFsIGdyZXkgaGVyZSwgc28gdGhpcyBzY29wZWQgb3ZlcnJpZGUgKDIgY2xhc3NlcywgdGllcyBpY29uLWJ0bidzIG93blxuLy8gc3BlY2lmaWNpdHk7IHdpbnMgYnkgc291cmNlIG9yZGVyIHNpbmNlIHVuaXQtY29udGV4dCBjb21waWxlcyBhZnRlciBpY29uLWJ0bilcbi8vIHJlY29sb3VycyBqdXN0IHRoaXMgaW5zdGFuY2UgaW5zdGVhZCBvZiBjaGFuZ2luZyB0aGUgc2hhcmVkIHN1YnRsZSB0eXBlIGV2ZXJ5d2hlcmVcbi8vIGl0J3MgdXNlZC4gWzIwMjYtMDctMDFdXG4ucWRuYXByby1pY29uLWJ0bi5xZG5hcHJvLXVuaXQtY29udGV4dF9fY2xvc2Uge1xuICAgIGZsZXg6IG5vbmU7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG59XG5cbi8vIFNob3J0IGV4cGxhaW5lciBhYm92ZSB0aGUgc2VhcmNoIGZpZWxkOiB3aGF0IHVuY2hlY2tpbmcgYSByb3cgZG9lcy4gS2ltIHdhbnRzIHRoaXNcbi8vIGF0dGVudGlvbi1ncmFiYmluZyByYXRoZXIgdGhhbiBwbGFpbiB0ZXh0IOKAlCBzYW1lIGxpZ2h0LXB1cnBsZSBwaWxsICsgaW5mby1pY29uIHNoYXBlXG4vLyBhcyB0aGUgZXhpc3RpbmcgXCJNaW4vbWF4IGNoYXJzXCIgaGludCBpbiBhZHZhbmNlZF9pbnB1dCAoX3B3YS1jdXJyZW50LnNjc3Ncbi8vIC5mbG93LXF1ZXN0aW9uLWhpbnQtLWJsb2NrKSwgcmVjb2xvdXJlZCB2aWEgdG9rZW5zIGluc3RlYWQgb2YgdGhhdCBwaWxsJ3MgZ3JleTpcbi8vIC0tYy1iZy1zZWNvbmRhcnktcHVycGxlICgjZTZlOWZmKSAvIC0tYy1icmFuZC1wdXJwbGUgKCM0MDQ5OWEpLiBbMjAyNi0wNy0wMV1cbi5xZG5hcHJvLXVuaXQtY29udGV4dF9faGludCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgLy8gVGhlIHBhbmVsICh0aGlzIGRpdidzIGZsZXggcGFyZW50KSBpcyBgZmxleC1kaXJlY3Rpb246IGNvbHVtbmAgd2l0aCB0aGUgZGVmYXVsdFxuICAgIC8vIGBhbGlnbi1pdGVtczogc3RyZXRjaGAsIHdoaWNoIGJsb2NraWZpZXMgdGhpcyBjaGlsZCdzIG91dGVyIGRpc3BsYXkgdG8gYGZsZXhgXG4gICAgLy8gYW5kIHN0cmV0Y2hlcyBpdCB0byB0aGUgcGFuZWwncyBmdWxsIHdpZHRoIOKAlCB3aXRob3V0IHRoaXMgaXQgcmVuZGVycyBhcyBhXG4gICAgLy8gZnVsbC13aWR0aCBiYXIsIG5vdCBhIHNocmluay13cmFwcGVkIHBpbGwuIGBjZW50ZXJgIChyYXRoZXIgdGhhbiBgZmxleC1zdGFydGApXG4gICAgLy8gY2VudGVycyB0aGUgc2hyaW5rLXdyYXBwZWQgcGlsbCBob3Jpem9udGFsbHksIHBlciBLaW0uIFsyMDI2LTA3LTAxXVxuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIG1hcmdpbjogMCB2YXIoLS1zLTQpIHZhcigtLXMtMik7XG4gICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc2Vjb25kYXJ5LXB1cnBsZSk7XG4gICAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LW1lZGl1bSk7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbn1cbi5xZG5hcHJvLXVuaXQtY29udGV4dF9faGludDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgLXdlYmtpdC1tYXNrOiBuby1yZXBlYXQgY2VudGVyIC8gY29udGFpbiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDI0IDI0JyUzRSUzQ3BhdGggZmlsbD0nJTIzMDAwJyBkPSdNMTEgOWgyVjdoLTJtMSAxM2MtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDhtMC0xOEExMCAxMCAwIDAgMCAyIDEyYTEwIDEwIDAgMCAwIDEwIDEwIDEwIDEwIDAgMCAwIDEwLTEwQTEwIDEwIDAgMCAwIDEyIDJtLTEgMTVoMnYtNmgtMnonLyUzRSUzQy9zdmclM0VcIik7XG4gICAgbWFzazogbm8tcmVwZWF0IGNlbnRlciAvIGNvbnRhaW4gdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCclM0UlM0NwYXRoIGZpbGw9JyUyMzAwMCcgZD0nTTExIDloMlY3aC0ybTEgMTNjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4bTAtMThBMTAgMTAgMCAwIDAgMiAxMmExMCAxMCAwIDAgMCAxMCAxMCAxMCAxMCAwIDAgMCAxMC0xMEExMCAxMCAwIDAgMCAxMiAybS0xIDE1aDJ2LTZoLTJ6Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xufVxuXG4vLyAtLS0tLS0tLS0tIHNlYXJjaCAtLS0tLS0tLS0tXG4ucWRuYXByby11bml0LWNvbnRleHRfX3NlYXJjaCB7IHBhZGRpbmc6IDAgdmFyKC0tcy00KSB2YXIoLS1zLTMpOyB9XG5cbi8vIC0tLS0tLS0tLS0gbGlzdCAtLS0tLS0tLS0tXG4ucWRuYXByby11bml0LWNvbnRleHRfX2xpc3Qge1xuICAgIGZsZXg6IDE7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgcGFkZGluZzogMnB4IHZhcigtLXMtMykgdmFyKC0tcy00KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA2cHg7XG59XG4ucWRuYXByby11bml0LWNvbnRleHRfX2xpc3RbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLnFkbmFwcm8tdW5pdC1jb250ZXh0X19lbXB0eSB7XG4gICAgZmxleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDQwcHggdmFyKC0tcy00KTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICBmb250LXNpemU6IDEzcHg7XG59XG4ucWRuYXByby11bml0LWNvbnRleHRfX2VtcHR5W2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG5cbi8vIFdpZGVyIGNhbnZhc2VzICh0YWJsZXQvZGVza3RvcCk6IGNlbnRyZSB0aGUgcGFuZWwgYXMgYSBmbG9hdGluZyBzaGVldFxuLy8gaW5zdGVhZCBvZiBlZGdlLXRvLWVkZ2UgZnVsbHNjcmVlbi5cbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAgIC5xZG5hcHJvLXVuaXQtY29udGV4dF9fb3ZlcmxheSB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1zLTYpO1xuICAgIH1cbiAgICAucWRuYXByby11bml0LWNvbnRleHRfX3BhbmVsIHtcbiAgICAgICAgZmxleDogbm9uZTtcbiAgICAgICAgd2lkdGg6IDQ4MHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDgwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItY2FyZCk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1jYXJkKTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG59XG4iLCIucWRuYXByby1zdW1tYXJ5LWJhZGdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tcy0xKTtcbiAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKSAxMCUsIHdoaXRlKTtcbiAgICBjb2xvcjogdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLWJ0bik7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuIiwiLy8gcWRuYXByby1wd2EtbWFpbi1tZW51LWl0ZW1cbi8vIFBXQSBob21lLW1lbnUgdGlsZTogNjB4NjAgdHJhbnNsdWNlbnQgY2lyY2xlICsgYWN0aXZpdHkgaWNvbiAzNnB4ICsgSW50ZXIgNTAwIGxhYmVsLlxuXG5xZG5hcHJvLXB3YS1tYWluLW1lbnUtaXRlbSxcbi5xZG5hcHJvLXB3YS1tYWluLW1lbnUtaXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAucG1pLWNpcmNsZSB7XG4gICAgICAgIHdpZHRoOiA2MHB4O1xuICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXMgZWFzZS1vdXQ7XG5cbiAgICAgICAgcWRuYXByby1hY3Rpdml0eS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiAzNnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIC5wbWktY2lyY2xlLFxuICAgIC5wbWktY2lyY2xlLmZvcmNlLWhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbiAgICB9XG5cbiAgICAucG1pLWNpcmNsZS5pcy1wcmVzc2VkLFxuICAgIC5wbWktY2lyY2xlLmZvcmNlLXByZXNzZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzUpO1xuICAgIH1cblxuICAgIC5wbWktbGFiZWwge1xuICAgICAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICAgIG1heC13aWR0aDogNzJweDtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLWJvdHRvbS1uYXYgKyBxZG5hcHJvLWJvdHRvbS1uYXYtYnRuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBJbmR1c3RyeS1zdGFuZGFyZCBib3R0b20gbmF2aWdhdGlvbiBiYXIgZm9yIFFETkEgUHJvIFBXQS5cbi8vXG4vLyAgU3RhbmRhcmQgaGVpZ2h0ICA6IDYwcHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkgZm9yIG5vdGNoZWQgcGhvbmVzLlxuLy8gIEljb24gc2l6ZSAgICAgICAgOiAyNHB4IEx1Y2lkZSwgc3Ryb2tlLXdpZHRoIDEuNzUsIGZpbGwgbm9uZS5cbi8vICBUYXAgdGFyZ2V0ICAgICAgIDogNDRweCBtaW5pbXVtIHBlciBBcHBsZSBISUcgKGJhciBpcyA2MHB4LCBzbyBhbHdheXMgbWV0KS5cbi8vXG4vLyAgVG9rZW5zIGNvbnN1bWVkIChmcm9tIGRlc2lnbi10b2tlbnMvX2Rlc2lnbi10b2tlbnMuc2Nzcyk6XG4vLyAgICAtLWMtYmctY2FyZCAgICAgICAgICAgICAgbmF2IGJhY2tncm91bmQgKGF1dG8tZmxpcHMgaW4gZGFyayBtb2RlKVxuLy8gICAgLS1jLWJvcmRlci1zb2Z0ICAgICAgICAgIHRvcCBkaXZpZGVyIGxpbmVcbi8vICAgIC0tYy10ZXh0LW11dGVkICAgICAgICAgICBpZGxlIGljb24gY29sb3VyXG4vLyAgICAtLWMtYnJhbmQtcHVycGxlICAgICAgICAgYWN0aXZlIGljb24gKyBhY3RpdmUgZG90ICsgRkFCIGJhY2tncm91bmRcbi8vICAgIC0tYy1icmFuZC1wdXJwbGUtaG92ZXIgICBGQUIgaG92ZXIgYmFja2dyb3VuZFxuLy8gICAgLS1jLWJyYW5kLXB1cnBsZS1wcmVzcyAgIEZBQiBwcmVzc2VkIGJhY2tncm91bmRcbi8vICAgIC0tYy1iZy1zdWJ0bGUtaG92ZXIgICAgICBob3ZlciBiYWNrZ3JvdW5kIG9uIGRlZmF1bHQgaXRlbXNcbi8vICAgIC0tYy1iZy1zZWNvbmRhcnktcHVycGxlICBwcmVzc2VkICsgYWN0aXZlLWl0ZW0gYmFja2dyb3VuZCBwaWxsXG4vLyAgICAtLWMtdGV4dC1kaXNhYmxlZCAgICAgICAgZGlzYWJsZWQgaWNvbiBjb2xvdXJcbi8vICAgIC0tZm9jdXMtcmluZyAgICAgICAgICAgICBrZXlib2FyZCBmb2N1cyBvdXRsaW5lXG4vL1xuLy8gIFBhZ2UgdHJhbnNpdGlvbiBjb21wYW5pb24gY2xhc3NlcyAoYm90dG9tIG9mIGZpbGUpOlxuLy8gICAgLnFkbmFwcm8tcGFnZS1zdGFjayAgICAgICAgIG92ZXJmbG93OmhpZGRlbiB3cmFwcGVyIGZvciB5b3VyIHBhZ2Ugdmlld3Ncbi8vICAgIC5xZG5hcHJvLXBhZ2UgICAgICAgICAgICAgICBiYXNlIGZvciBhbiBpbmRpdmlkdWFsIHBhZ2UgcGFuZWxcbi8vICAgIC5xZG5hcHJvLXBhZ2UtLWVudGVyLWZ3ZCAgICBlbnRlcmluZyBmcm9tIHJpZ2h0ICAoZGlyZWN0aW9uPWZvcndhcmQpXG4vLyAgICAucWRuYXByby1wYWdlLS1sZWF2ZS1md2QgICAgbGVhdmluZyB0byBsZWZ0XG4vLyAgICAucWRuYXByby1wYWdlLS1lbnRlci1id2QgICAgZW50ZXJpbmcgZnJvbSBsZWZ0ICAgKGRpcmVjdGlvbj1iYWNrd2FyZClcbi8vICAgIC5xZG5hcHJvLXBhZ2UtLWxlYXZlLWJ3ZCAgICBsZWF2aW5nIHRvIHJpZ2h0XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4ucWRuYXByby1ib3R0b20tbmF2IHtcbiAgICAtLWJuLWhlaWdodDogNjBweDtcblxuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICB6LWluZGV4OiAxMDA7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIC8vIOKaoO+4jyBgdmFyKC0tcWRuYS1pbnNldC1ib3R0b20sIGVudiguLi4pKWAgZW4gbmlldCBkZSBrYWxlIGVudigpOiBvcCBBbmRyb2lkIGlzXG4gICAgLy8gZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pIGFsdGlqZCAwICh6aWUgZGUgZmxvYXRpbmctdmFyaWFudCBvbmRlcmFhbiBkaXRcbiAgICAvLyBiZXN0YW5kKSwgZHVzIGRlIHZhc3RnZXBsYWt0ZSBiYWxrIGxpZXAgZGFhciBuZXQgem8gb25kZXIgZGUgbmF2aWdhdGllYmFsay5cbiAgICAvLyBEZSB2YXJpYWJlbGUga29tdCB2YW4gZGUgcGx1Z2luIGBxZG5hLWluc2V0c2AgZW4gYmVzdGFhdCBhbGxlZW4gb3AgQW5kcm9pZDtcbiAgICAvLyBpT1MgdmFsdCB0ZXJ1ZyBvcCBlbnYoKSBlbiBnZWRyYWFndCB6aWNoIGR1cyBleGFjdCBhbHMgdm9vcmhlZW4uIFsxMC4wOC4yMDI2XVxuICAgIGhlaWdodDogY2FsYyh2YXIoLS1ibi1oZWlnaHQpICsgdmFyKC0tcWRuYS1pbnNldC1ib3R0b20sIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLCAwcHgpKSk7XG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLXFkbmEtaW5zZXQtYm90dG9tLCBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSwgMHB4KSk7XG5cbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBib3gtc2hhZG93OiAwIC0ycHggMTZweCByZ2JhKDIwLCAyNSwgODAsIDAuMTgpO1xuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAuMiwgMCwgMCwgMSksIG9wYWNpdHkgMC4yMnMgZWFzZTtcbn1cblxuLy8gSGlkZGVuIHN0YXRlIOKAlCBzbGlkZXMgdGhlIGJhciBvZmYtc2NyZWVuICh1c2VkIG9uIHRoZSArIG1lbnUgYW5kIHRoZVxuLy8gdGFza2xpc3QvcXVlc3Rpb25uYWlyZSBmbG93LCB0b2dnbGVkIGZyb20gc3dpdGNoVmlldyBpbiAwLWNvcmUuanMpLlxuLnFkbmFwcm8tYm90dG9tLW5hdi5uYXYtaGlkZGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygxMDAlICsgMjRweCkpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cblxuLnFkbmFwcm8tYm90dG9tLW5hdi1idG4ge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIG1pbi13aWR0aDogMDtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIHBhZGRpbmc6IDhweCA0cHg7XG5cbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcblxuICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlLTY1KTtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgIHRyYW5zaXRpb246IGNvbG9yIDEyMG1zIGVhc2Utb3V0O1xuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHdpZHRoOiA0OHB4O1xuICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLW91dCxcbiAgICAgICAgICAgIHRyYW5zZm9ybSAxMDBtcyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSk7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICAgICAgc3Ryb2tlOiBub25lO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdmctZmlsbGVkIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHN0cm9rZTogbm9uZTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIGNsaXAtcGF0aDogaW5zZXQoMCAxMDAlIDAgMCk7XG4gICAgfVxuXG4gICAgJl9fZG90IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDVweDtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgIHdpZHRoOiA0cHg7XG4gICAgICAgIGhlaWdodDogNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGVhc2Utb3V0O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IC8vIHNob3duIG9ubHkgaW4gZmxvYXRpbmctZ2xhc3MgdmFyaWFudCB2aWEgaXRzIG93biBibG9ja1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMWVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLy8gVGhlIGJhZGdlIGl0c2VsZiBpcyBhIHJlYWwgPHFkbmFwcm8tbnVtYmVyLWluZGljYXRvci1iYWRnZSBjb2xvcj1cImFsZXJ0XCJcbiAgICAvLyBzaXplPVwieHNcIj4g4oCUIHNpemUsIGNvbG91ciBhbmQgdHlwZSBjb21lIGZyb20gdGhhdCBjb21wb25lbnQuIE9ubHkgaXRzXG4gICAgLy8gUExBQ0VNRU5UIG9uIHRoZSBpY29uIGxpdmVzIGhlcmUuIE5vIHNlcGFyYXRpb24gcmluZzogdGhlIHJlZCByZWFkcyBjbGVhcmx5XG4gICAgLy8gZW5vdWdoIGFnYWluc3QgYm90aCBiYXIgY29sb3VycyBvbiBpdHMgb3duIChLaW0sIDAzLjA4LjIwMjYpLlxuICAgIC8vXG4gICAgLy8gSE9PSyBPTiBUSEUgREFUQS1BVFRSSUJVVEUsIE5PVCBBIENMQVNTOiBxZG5hLW51bWJlci1pbmRpY2F0b3ItYmFkZ2UuanMgZG9lc1xuICAgIC8vIGB0aGlzLmNsYXNzTmFtZSA9IFwiXCJgIGluIGluaXRpYWxpemVDbGFzc2VzKCksIGFuZCBvbiB1cGdyYWRlIHRoYXQgcnVucyBmcm9tXG4gICAgLy8gYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrIEJFRk9SRSBjb25uZWN0ZWRDYWxsYmFjayBzbmFwc2hvdHMgX29yaWdpbmFsQ2xhc3NlcyxcbiAgICAvLyBzbyBhIGNsYXNzIHdlIHNldCBoZXJlIGlzIHdpcGVkIGJlZm9yZSBpdCBpcyBldmVyIHJlbWVtYmVyZWQuIFdpdGggdGhlIGNsYXNzXG4gICAgLy8gZ29uZSB0aGUgYmFkZ2UgbG9zdCBgcG9zaXRpb246IGFic29sdXRlYCBhbmQgZmVsbCBiYWNrIGludG8gdGhlIGJ1dHRvbidzXG4gICAgLy8gZmxleCBjb2x1bW4sIGkuZS4gY2VudHJlZCBVTkRFUiB0aGUgaWNvbiAoS2ltJ3Mgc2NyZWVuc2hvdCAwMy4wOC4yMDI2KS4gQVxuICAgIC8vIGRhdGEtYXR0cmlidXRlIGlzIG5ldmVyIHRvdWNoZWQgYnkgdGhhdCByZXNldC5cbiAgICAvLyBWZXJ0aWNhbDogMjBweCB0YWxsIGZyb20gNHB4IGtlZXBzIHRoZSBiYWRnZSBjbGVhciBvZiB0aGUgYmFyJ3MgdG9wIGVkZ2VcbiAgICAvLyB3aGlsZSBzdGlsbCBzaXR0aW5nIG9uIHRoZSBpY29uJ3MgdXBwZXIgY29ybmVyLiBIb3Jpem9udGFsOlxuICAgIC8vIGBjYWxjKDUwJSAtIDI2cHgpYCBwdXRzIHRoZSByaWdodCBlZGdlIDI2cHggcmlnaHQgb2YgdGhlIGJ1dHRvbiBjZW50cmUgbm9cbiAgICAvLyBtYXR0ZXIgaG93IHdpZGUgdGhlIGJ1dHRvbiBpcywgc28gaXQgc3RheXMgNHB4IHBhc3QgdGhlIDQ0cHggaWNvbiBvbiBib3RoXG4gICAgLy8gcGhvbmUgYW5kIHRhYmxldCB3aWR0aHMuIFswMy4wOC4yMDI2XVxuICAgIFtkYXRhLXJvbGU9XCJuYXYtYmFkZ2VcIl0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNHB4O1xuICAgICAgICByaWdodDogY2FsYyg1MCUgLSAyNnB4KTtcbiAgICAgICAgei1pbmRleDogMjsgLy8gYWJvdmUgdGhlIHNsaWRpbmcgcGlsbCAoei1pbmRleCAxKTsgc2VlIC5oYXMtYmFkZ2UgYmVsb3dcbiAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gU2lnbmFsIGRvdCAoXCJzb21ldGhpbmcgbmV3IGhlcmVcIiwgbm8gbnVtYmVyKS4gU2FtZSBjb21wb25lbnQgaW4gaXRzIG93blxuICAgIC8vIGRvdCBtb2RlLCBzbyB0aGUgcmVkIGlzIGxpdGVyYWxseSB0aGUgc2FtZSBkZWNsYXJhdGlvbiBhcyB0aGUgY291bnQncyBhbmRcbiAgICAvLyB0aGUgdHdvIGNhbiBuZXZlciBkcmlmdCBhcGFydC4gU2FtZSBkYXRhLWF0dHJpYnV0ZSBob29rIGFuZCB0aGUgc2FtZVxuICAgIC8vIHJlYXNvbiBmb3IgaXQgYXMgdGhlIGJhZGdlIGFib3ZlOiB0aGF0IGNvbXBvbmVudCB3aXBlcyBjbGFzc05hbWUuXG4gICAgLy9cbiAgICAvLyBTaGFyZXMgdGhlIGJhZGdlJ3MgcmlnaHQgZWRnZSBzbyBhIGRvdCB0YWIgYW5kIGEgY291bnQgdGFiIGxpbmUgdXBcbiAgICAvLyBob3Jpem9udGFsbHkuIFZlcnRpY2FsbHkgaXQgaXMgQ0VOVFJFRCBPTiBXSEVSRSBUSEUgQ09VTlQgV09VTEQgQkU6IHRoZVxuICAgIC8vIDIwcHggYmFkZ2Ugc3RhcnRzIGF0IDRweCwgc28gaXRzIG1pZGRsZSBzaXRzIGF0IDE0cHgsIGFuZCBhbiA4cHggZG90IGhhc1xuICAgIC8vIHRvIHN0YXJ0IGF0IDEwcHggdG8gbGFuZCBvbiB0aGF0IHNhbWUgbWlkZGxlLiBTd2FwcGluZyBhIGNvdW50IGZvciBhIGRvdFxuICAgIC8vIHRoZXJlZm9yZSBtb3ZlcyBub3RoaW5nIHNpZGV3YXlzIG9yIHVwLiBbMDcuMDguMjAyNiwgS2ltXVxuICAgIFtkYXRhLXJvbGU9XCJuYXYtZG90XCJdIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgIHJpZ2h0OiBjYWxjKDUwJSAtIDI2cHgpO1xuICAgICAgICB6LWluZGV4OiAyOyAvLyBhYm92ZSB0aGUgc2xpZGluZyBwaWxsICh6LWluZGV4IDEpOyBzZWUgLmhhcy1iYWRnZSBiZWxvd1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBBIGJhZGdlIG11c3QgbmV2ZXIgZGlzYXBwZWFyIHVuZGVyIHRoZSBzbGlkaW5nIHBpbGwsIG5vdCBldmVuIG9uIHRoZVxuICAgIC8vIHNlbGVjdGVkIHRhYi4gVGhlIGJ1dHRvbiBpcyBpdHMgb3duIHN0YWNraW5nIGNvbnRleHQgaW4gdGhlIHBpbGwgdmFyaWFudHNcbiAgICAvLyAoei1pbmRleCAwKSwgc28gdGhlIGJhZGdlJ3Mgb3duIHotaW5kZXggY2Fubm90IHJlYWNoIHBhc3QgdGhlIHBpbGwg4oCUIHRoZVxuICAgIC8vIHdob2xlIGJ1dHRvbiBoYXMgdG8gY29tZSB1cC4gT25seSBidXR0b25zIHRoYXQgYWN0dWFsbHkgY2FycnkgYSBiYWRnZSBtb3ZlLFxuICAgIC8vIHNvIHRoZSBwaWxsIGtlZXBzIHNpdHRpbmcgb3ZlciBldmVyeSBvdGhlciBpY29uIGV4YWN0bHkgYXMgYmVmb3JlLlxuICAgIC8vIENsYXNzIHNldCBieSBxZG5hLWJvdHRvbS1uYXYuanMuIFRoZSBwaWxsIHZhcmlhbnRzIHJlcGVhdCB0aGlzIHJ1bGUgYXQgdGhlaXJcbiAgICAvLyBvd24gc3BlY2lmaWNpdHksIGJlY2F1c2UgdGhlaXIgYHotaW5kZXg6IDBgIG9uIHRoZSBidXR0b24gd291bGQgd2luIGhlcmUuXG4gICAgLy8gWzAzLjA4LjIwMjYsIEtpbV1cbiAgICAmLmhhcy1iYWRnZSB7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgfVxuXG4gICAgLy8gSG92ZXIgKHBvaW50ZXIgZGV2aWNlcyBvbmx5KVxuICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgICAgICY6aG92ZXI6bm90KC5pcy1kaXNhYmxlZCk6bm90KC5pcy1mYWIpIHtcbiAgICAgICAgICAgIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuX19pY29uIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdoaXRlLTEyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFByZXNzZWRcbiAgICAmOmFjdGl2ZTpub3QoLmlzLWRpc2FibGVkKTpub3QoLmlzLWZhYiksXG4gICAgJi5pcy1wcmVzc2luZzpub3QoLmlzLWRpc2FibGVkKTpub3QoLmlzLWZhYikge1xuICAgICAgICAucWRuYXByby1ib3R0b20tbmF2LWJ0bl9faWNvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdoaXRlLTIyKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC44OCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBY3RpdmUgKHNlbGVjdGVkIHRhYilcbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcblxuICAgICAgICAucWRuYXByby1ib3R0b20tbmF2LWJ0bl9faWNvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdoaXRlLTIyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuX19kb3Qge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFjdGl2ZSArIGhvdmVyXG4gICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgJi5pcy1hY3RpdmU6aG92ZXI6bm90KC5pcy1kaXNhYmxlZCkge1xuICAgICAgICAgICAgLnFkbmFwcm8tYm90dG9tLW5hdi1idG5fX2ljb24ge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtd2hpdGUtMjgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlICsgcHJlc3NlZFxuICAgICYuaXMtYWN0aXZlOmFjdGl2ZTpub3QoLmlzLWRpc2FibGVkKSxcbiAgICAmLmlzLWFjdGl2ZS5pcy1wcmVzc2luZzpub3QoLmlzLWRpc2FibGVkKSB7XG4gICAgICAgIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuX19pY29uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtd2hpdGUtMjIpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjg4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIERpc2FibGVkXG4gICAgJi5pcy1kaXNhYmxlZCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlLTI4KTtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIG9wYWNpdHk6IDAuNDU7XG4gICAgfVxuXG4gICAgLy8gRm9jdXNcbiAgICAmOmZvY3VzICAgICAgICAgIHsgb3V0bGluZTogbm9uZTsgfVxuICAgICY6Zm9jdXMtdmlzaWJsZSAge1xuICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tZm9jdXMtcmluZyk7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgfVxuXG4gICAgLy8gRkFCIHZhcmlhbnRcbiAgICAmLmlzLWZhYiB7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gICAgICAgIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuX19pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA1MnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA1MnB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7XG4gICAgICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgICAgICAgIDAgMnB4IDhweCAgcmdiYSgyMCwgMjUsIDgwLCAwLjIwKSxcbiAgICAgICAgICAgICAgICAwIDZweCAyMHB4IHJnYmEoMjAsIDI1LCA4MCwgMC4xNCk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZS1vdXQsXG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdyAgICAgICAxMjBtcyBlYXNlLW91dCxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gICAgICAgIDE1MG1zIGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjY0LCAxKTtcblxuICAgICAgICAgICAgc3ZnIHsgc3Ryb2tlLXdpZHRoOiAyOyB9XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgICAgICAgICAgJjpob3Zlcjpub3QoLmlzLWRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgLnFkbmFwcm8tYm90dG9tLW5hdi1idG5fX2ljb24ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdoaXRlLTkwKTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMnB4KTtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAgICAgICAgICAgICAgIDAgNHB4IDE0cHggcmdiYSgyMCwgMjUsIDgwLCAwLjI4KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIDAgOHB4IDI4cHggcmdiYSgyMCwgMjUsIDgwLCAwLjE4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZTpub3QoLmlzLWRpc2FibGVkKSxcbiAgICAgICAgJi5pcy1wcmVzc2luZzpub3QoLmlzLWRpc2FibGVkKSB7XG4gICAgICAgICAgICAucWRuYXByby1ib3R0b20tbmF2LWJ0bl9faWNvbiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZS04NSk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpIHNjYWxlKDAuOTMpO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgICAgICAgICAgIDAgMXB4IDRweCByZ2JhKDIwLCAyNSwgODAsIDAuMTQpLFxuICAgICAgICAgICAgICAgICAgICAwIDJweCA4cHggcmdiYSgyMCwgMjUsIDgwLCAwLjEwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlLTY1KTtcblxuICAgICAgICAgICAgLnFkbmFwcm8tYm90dG9tLW5hdi1idG5fX2ljb24geyBiYWNrZ3JvdW5kOiAjZmZmZmZmOyBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUpOyB9XG4gICAgICAgICAgICAucWRuYXByby1ib3R0b20tbmF2LWJ0bl9fZG90ICB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogNHB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIFNsaWRpbmcgcGlsbCB2YXJpYW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnFkbmFwcm8tYm90dG9tLW5hdlt2YXJpYW50PVwic2xpZGluZy1waWxsXCJdIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgY3Vyc29yOiBncmFiO1xuICAgICY6YWN0aXZlIHsgY3Vyc29yOiBncmFiYmluZzsgfVxuXG4gICAgLy8gU3VwcHJlc3MgcGVyLWJ1dHRvbiBzdGF0ZXMg4oCUIGdsYXNzIHBpbGwgaGFuZGxlcyBhbGwgdmlzdWFsIGZlZWRiYWNrXG4gICAgLnFkbmFwcm8tYm90dG9tLW5hdi1idG4gLnFkbmFwcm8tYm90dG9tLW5hdi1idG5fX2ljb24geyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyB9XG4gICAgLnFkbmFwcm8tYm90dG9tLW5hdi1idG5fX2RvdCAgICAgICAgICAgICAgICAgICAgICAgICAgeyBkaXNwbGF5OiBub25lOyB9XG5cbiAgICAvLyAuLi5leGNlcHQgYSBiYWRnZTogdGhhdCBvbmUgc3RheXMgb24gdG9wIG9mIHRoZSBwaWxsIChzZWUgYmFzZSAuaGFzLWJhZGdlKS5cbiAgICAucWRuYXByby1ib3R0b20tbmF2LWJ0bi5oYXMtYmFkZ2UgeyB6LWluZGV4OiAyOyB9XG5cbiAgICAvLyBCdXR0b25zIGJlaGluZCB0aGUgZ2xhc3MgcGlsbCBzbyBiYWNrZHJvcC1maWx0ZXIgY2F0Y2hlcyB0aGVpciBwaXhlbHNcbiAgICBxZG5hcHJvLWJvdHRvbS1uYXYtYnRuIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAwO1xuICAgICAgICBjdXJzb3I6IGluaGVyaXQ7XG4gICAgICAgIC8vIFVuaWZvcm0gZGltIGNvbG91ciDigJQgcGlsbCBicmlnaHRlbnMgaWNvbnMgdGhyb3VnaCBiYWNrZHJvcC1maWx0ZXIsIG5vdCB2aWEgY29sb3IgZmxpcFxuICAgICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZS01NSkgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAvLyBHbGFzcyBwaWxsIOKAlCBicmlnaHRlbnMgd2hhdGV2ZXIgaXQgY292ZXJzIChiZyArIGljb24gc3Ryb2tlcykgdmlhIGJhY2tkcm9wLWZpbHRlclxuICAgIC5xZG5hcHJvLWJvdHRvbS1uYXZfX3BpbGwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogY2FsYygodmFyKC0tYm4taGVpZ2h0KSAtIDQwcHgpIC8gMik7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiA0OHB4O1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICAvLyBHbGFzcyBzdXJmYWNlXG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XG4gICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYnJpZ2h0bmVzcygxLjUpO1xuICAgICAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYnJpZ2h0bmVzcygxLjUpO1xuICAgICAgICBib3JkZXI6IDAuNXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgICBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40MCksXG4gICAgICAgICAgICAwIDJweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNDIwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICB9XG59XG5cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgRmxvYXRpbmcgdmFyaWFudHMgKGdsYXNzICsgc29saWQgc2hhcmUgc2hhcGUvc2l6ZS9kcmFnL3BpbGwpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnFkbmFwcm8tYm90dG9tLW5hdlt2YXJpYW50PVwiZmxvYXRpbmctZ2xhc3NcIl0sXG4ucWRuYXByby1ib3R0b20tbmF2W3ZhcmlhbnQ9XCJmbG9hdGluZy1zb2xpZFwiXSB7XG4gICAgbGVmdDogMTZweDtcbiAgICByaWdodDogMTZweDtcbiAgICAvLyAyMHB4IGluc2V0IHRvdCB2aWV3cG9ydCAoS2ltIDI5LjA2LjIwMjYpOyBzYWZlLWFyZWEtaW5zZXQgYmV3dXN0IHdlZy5cbiAgICAvLyDimqDvuI8gQU5EUk9JRCBFUkJJSiBbMTAuMDguMjAyNiwgSmFuXTogb3AgZWVuIGRyaWUta25vcHBlbi10b2VzdGVsIHN0b25kIGRlemUgYmFsa1xuICAgIC8vIE9OREVSIGRlIEFuZHJvaWQta25vcHBlbiAob3ZlcnppY2h0L2hvbWUvdGVydWcpLiBTaW5kcyBgQW5kcm9pZEVkZ2VUb0VkZ2VgIGxvb3B0XG4gICAgLy8gZGUgcGFnaW5hIHRvdCBkZSBzY2hlcm1yYW5kLCBlbiBgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pYCBpcyBvcCBBbmRyb2lkXG4gICAgLy8gQUxUSUpEIDAg4oCUIGdlbWV0ZW4gb3AgZWVuIFNhbXN1bmcgQTM2OiBuYXZpZ2F0aWViYWxrIDEzNSBmeXNpZWtlIHB4ID0gNDggcHVudGVuLFxuICAgIC8vIHRlcndpamwgZW52KCkgbnVsIHplZ3QuIERlIGVjaHRlIHdhYXJkZSBrb210IG51IHZhbiBkZSBwbHVnaW4gYHFkbmEtaW5zZXRzYFxuICAgIC8vIChxZG5hdjJfYXBwL2xvY2FsLXBsdWdpbnMvcWRuYS1pbnNldHMpLCBkaWUgaGVtIGFscyBDU1MtdmFyaWFiZWxlIG9wIDxodG1sPiB6ZXQuXG4gICAgLy8g4pqg77iPIERlIHRlcnVndmFsIGlzIEJFV1VTVCAwIGVuIG5pZXQgZW52KCk6IGRpZSB2YXJpYWJlbGUgYmVzdGFhdCBhbGxlZW4gb3AgQW5kcm9pZCxcbiAgICAvLyBkdXMgb3AgaU9TIGJsaWpmdCBkaXQgbGV0dGVybGlqayAyMHB4IOKAlCBLaW1zIGtldXplIGhpZXJib3ZlbiwgZW4gSmFucyBlaXMgZGF0IGRlXG4gICAgLy8gaU9TLWFwcCBuaWV0IG1lZSBtYWcgdmVyc2NodWl2ZW4uIEdlbWV0ZW4gdWl0a29tc3Q6IDIwIG9wIGlPUywgNjggYmlqIGRyaWVcbiAgICAvLyBrbm9wcGVuLCA0NCBiaWogdmVlZ25hdmlnYXRpZS5cbiAgICAvLyDimqDvuI8gRW4gZGUgdG9ldHNlbmJvcmRob29ndGUgZXIgd2VlciBBRiBbMTAuMDguMjAyNiwgSmFuOiBcImRpZSBmbG9hdGluZyB0b29sYmFyIG1vZXRcbiAgICAvLyBub29pdCB2ZXJwbGFhdHNlblwiXS4gY29yZG92YS1hbmRyb2lkIGtyaW1wdCBtZXQgQW5kcm9pZEVkZ2VUb0VkZ2UgZGUgd2Vid2VlcmdhdmUgbWV0XG4gICAgLy8gZGUgaG9vZ3RlIHZhbiBoZXQgdG9ldHNlbmJvcmQgKGdlbWV0ZW46IDkxNSDihpIgNTc4IHB1bnRlbiksIGVuIGVlbiBgcG9zaXRpb246IGZpeGVkYFxuICAgIC8vIGVsZW1lbnQgdm9sZ3QgZGllIG5pZXV3ZSBvbmRlcnJhbmQg4oCUIGR1cyBzY2hvb2YgZGV6ZSBiYWxrIG1lZSBvbWhvb2cgZW4gYXQgaGlqIHZhblxuICAgIC8vIGRlIHdlaW5pZ2UgcnVpbXRlIGRpZSBuYWFzdCBoZXQgdG9ldHNlbmJvcmQgb3ZlcmJsZWVmLiBaaWNodGJhYXIgaW4gTm92YSwgbWFhciBoZXRcbiAgICAvLyBpcyBoZXQgZ2VkcmFnIHZhbiBkZSB3ZWJ3ZWVyZ2F2ZSwgZHVzIG92ZXJhbCB3YWFyIGVlbiB0b2V0c2VuYm9yZCBvcGtvbXQuXG4gICAgLy8gRG9vciBkZSBrcmltcCBlcmFmIHRlIHRyZWtrZW4gYmxpamZ0IGRlIGJhbGsgb3AgemlqbiBwbGVrIG9wIGhldCBTQ0hFUk0gc3RhYW4gZW5cbiAgICAvLyB2ZXJkd2lqbnQgaGlqIG5ldGplcyBhY2h0ZXIgaGV0IHRvZXRzZW5ib3JkLlxuICAgIC8vIOKaoO+4jyBPcCBpT1MgYmVzdGFhdCBkZXplIHZhcmlhYmVsZSBuaWV0ICh0ZXJ1Z3ZhbCAwKSBlbiBrcmltcHQgZGUgd2VlcmdhdmUgb29rIG5pZXQgb3BcbiAgICAvLyBkZXplIG1hbmllciDigJQgZGFhciB2ZXJhbmRlcnQgZHVzIG5pZXRzLlxuICAgIGJvdHRvbTogY2FsYygyMHB4ICsgdmFyKC0tcWRuYS1pbnNldC1ib3R0b20sIDBweCkgLSB2YXIoLS1xZG5hLWluc2V0LWltZSwgMHB4KSk7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcblxuICAgIC8vIEZyb3N0ZWQgZ2xhc3Mg4oCUIGxpZ2h0IGNvbnRlbnQgc2hvd3MgdGhyb3VnaFxuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Mik7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDI0cHgpIHNhdHVyYXRlKDEuNSk7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjRweCkgc2F0dXJhdGUoMS41KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTUpO1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAgIDAgOHB4IDMycHggcmdiYSgyMCwgMjUsIDgwLCAwLjE2KSxcbiAgICAgICAgMCAycHggOHB4ICByZ2JhKDIwLCAyNSwgODAsIDAuMDgpLFxuICAgICAgICBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7XG5cbiAgICAvLyBEcmFnIGFmZm9yZGFuY2VcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBjdXJzb3I6IGdyYWI7XG4gICAgLy8gdG91Y2gtYWN0aW9uOm5vbmUg4oaSIGRlIGJyb3dzZXIga2FhcHQgaGV0IGhvcml6b250YWxlIHNsZWVwZ2ViYWFyIG5pZXQgdm9vclxuICAgIC8vIHNjcm9sbDsgcG9pbnRlcm1vdmUvdXAgYmxpanZlbiBiZXRyb3V3YmFhciBrb21lbiAoY3J1Y2lhYWwgdm9vciBkZSBzbmFwIG9wIHRvdWNoKS5cbiAgICB0b3VjaC1hY3Rpb246IG5vbmU7XG4gICAgJjphY3RpdmUgeyBjdXJzb3I6IGdyYWJiaW5nOyB9XG5cbiAgICAvLyBHcm90ZXJlIGdyaWpwem9uZTogb256aWNodGJhcmUgc3RyaXAgaW4gZGUgbGVnZSBydWltdGUgT05ERVIgZGUgYmFsa1xuICAgIC8vICh0dXNzZW4gYmFsayBlbiBzY2hlcm1yYW5kKSB6b2RhdCBkZSBwaWxsIG1ha2tlbGlqa2VyIHRlIHBha2tlbi9zbGVwZW4gaXMuXG4gICAgLy8gUHNldWRvJ3MgemlqbiBnZWVuIGVpZ2VuIGV2ZW50LXRhcmdldCDihpIgZWVuIHBvaW50ZXJkb3duIGhpZXIgdGVsdCBhbHMgZGUgaG9zdC5cbiAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgIH1cblxuICAgIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuIHtcbiAgICAgICAgcGFkZGluZzogMTFweCA0cHg7XG4gICAgICAgIGNvbG9yOiByZ2JhKDUwLCA1NSwgMTAwLCAwLjQ1KTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAwO1xuICAgICAgICBjdXJzb3I6IGluaGVyaXQ7XG5cbiAgICAgICAgLy8gQmFkZ2Ugc3RheXMgb24gdG9wIG9mIHRoZSBzbGlkaW5nIHBpbGwgKHNlZSBiYXNlIC5oYXMtYmFkZ2UpLlxuICAgICAgICAmLmhhcy1iYWRnZSB7IHotaW5kZXg6IDI7IH1cblxuICAgICAgICAvLyBGb3JzZXJlIG1hYXQgdm9vciB0ZWxlZm9vbjogYmFsayA2NHB4ID0gaWNvbi13cmFwcGVyIDQwICsgMngxMSBwYWRkaW5nICg2MilcbiAgICAgICAgLy8gKyAxcHggcmFuZCBib3Zlbi9vbmRlci4gR2x5cGggMjhweCwgcGlsbCA2MHg0OC4gWzI5LjA2LjIwMjZdXG4gICAgICAgIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuX19pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA0NHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgc3ZnIHsgd2lkdGg6IDI4cHg7IGhlaWdodDogMjhweDsgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2hvdyBib2xkIFwiZmlsbGVkXCIgaWNvbiBsYXllciDigJQgSlMgY2xpcHMgaXQgdG8gcGlsbCBvdmVybGFwIGFyZWFcbiAgICAgICAgLnFkbmFwcm8tYm90dG9tLW5hdi1idG5fX3N2Zy1maWxsZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICAgICAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBObyBsYWJlbHMg4oCUIHBpbGwgaXMgdGhlIG9ubHkgc2VsZWN0aW9uIGluZGljYXRvclxuICAgICAgICAucWRuYXByby1ib3R0b20tbmF2LWJ0bl9fbGFiZWwgeyBkaXNwbGF5OiBub25lOyB9XG4gICAgICAgIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuX19kb3QgICB7IGRpc3BsYXk6IG5vbmU7IH1cblxuICAgICAgICAvLyBTdXBwcmVzcyBhbGwgaWNvbiBiYWNrZ3JvdW5kcyDigJQgcGlsbCBoYW5kbGVzIGZlZWRiYWNrXG4gICAgICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgICAgICAgICAmOmhvdmVyOm5vdCguaXMtZGlzYWJsZWQpIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuX19pY29uIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgfVxuICAgICAgICB9XG4gICAgICAgICY6YWN0aXZlOm5vdCguaXMtZGlzYWJsZWQpIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuX19pY29uLFxuICAgICAgICAmLmlzLXByZXNzaW5nOm5vdCguaXMtZGlzYWJsZWQpIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuX19pY29uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1hY3RpdmUge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICAgICAgICAgIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuX19pY29uIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gXCJOZXdcIiBhY3Rpb24gd2hlbiBTRUxFQ1RFRDogdGhlIGZpbGxlZCAoc29saWQpIHBsdXMtY2lyY2xlIHNob3dzLCBidXQgaXRzXG4gICAgICAgIC8vIHBsdXMgaXMgYSBjdXQtb3V0IGdhcC4gU2l0IGEgd2hpdGUgY2lyY2xlIEJFSElORCBpdCBzbyB0aGUgZ2FwIHJlYWRzIHdoaXRlXG4gICAgICAgIC8vIOKGkiBzb2xpZCBwdXJwbGUgZGlzYyB3aXRoIGEgd2hpdGUgKy4gSWRsZSAob3V0bGluZSDiipUpIGlzIHVudG91Y2hlZCwgc28gdGhlXG4gICAgICAgIC8vIHdoaXRlIGNpcmNsZSBjYW4ndCBzaGluZSB0aHJvdWdoIHRoZSBob2xsb3cgb3V0bGluZS5cbiAgICAgICAgJltpY29uPVwicGx1cy1jaXJjbGVcIl0uaXMtYWN0aXZlIHtcbiAgICAgICAgICAgIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuX19pY29uIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAgICAgICAucWRuYXByby1ib3R0b20tbmF2LWJ0bl9faWNvbjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAucWRuYXByby1ib3R0b20tbmF2LWJ0bl9fc3ZnLWZpbGxlZCB7IHotaW5kZXg6IDE7IH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNsaWRpbmcgcGlsbCDigJQgc29mdCBicmFuZCB0aW50IHRoYXQgZ2xpZGVzIHVuZGVyIHRoZSBhY3RpdmUgdGFiXG4gICAgLnFkbmFwcm8tYm90dG9tLW5hdl9fcGlsbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiBjYWxjKDUwJSAtIDI2cHgpOyAvLyB2ZXJ0aWNhYWwgY2VudHJlcmVuICgyNiA9IGhhbHZlIHBpbGwtaG9vZ3RlIDUyKVxuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogNjhweDtcbiAgICAgICAgaGVpZ2h0OiA1MnB4OyAvLyBLaW0gMjkuMDYuMjAyNjogcGlsbCA2OHg1MlxuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg2NCwgNzMsIDE1NCwgMC4xMCk7XG4gICAgICAgIGJhY2tkcm9wLWZpbHRlcjogbm9uZTtcbiAgICAgICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNDIwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICB9XG59XG5cbi8vIOKUgOKUgCBTb2xpZCBwdXJwbGUgc2tpbiAodmFyaWFudD1cImZsb2F0aW5nLXNvbGlkXCIpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gU2FtZSBmbG9hdGluZyBzaGFwZSArIHBpbGwgTUVDSEFOSUVLIGFscyBnbGFzcywgbWFhciBlZW4gb3BhcXVlIGJyYW5kLXB1cnBsZVxuLy8gYmFsay4gRGUgcGlsbCBpcyBOSUVUIHNvbGlkIHdpdCAoZGF0IGRla3QgaGV0IGljb29uIGFmKSBtYWFyIERPT1JTQ0hJSk5FTkQsIG5ldFxuLy8gYWxzIGdsYXNzOiBoZXQgaWNvb24gZXJvbmRlciBibGlqZnQgemljaHRiYWFyIGVuIHZlcmFuZGVydCB2YW4ga2xldXIgZG9vcmRhdCBkZVxuLy8gZmlsbGVkLXN2ZyBvcCBkZSBwaWxsIHdvcmR0IGdlY2xpcHQgKF91cGRhdGVJY29uQ2xpcHMpLiBPcCBkZSBwYWFyc2UgYmFsayB6aWpuXG4vLyBkZSBpY29uZW4gd2l0IChpZGxlIDY1JSkgZW4gbGljaHQgaGV0IGFjdGlldmUgaWNvb24gb25kZXIgZGUgcGlsbCBvcCBuYWFyIHZvbFxuLy8gd2l0LiBbMjkuMDYuMjAyNl0gIzQwNDk5YSBiYWxrLCBrbGV1cmVuIHVpdCBkZSBkZWZhdWx0L3NvbGlkLWRlbW8uXG4ucWRuYXByby1ib3R0b20tbmF2W3ZhcmlhbnQ9XCJmbG9hdGluZy1zb2xpZFwiXSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogbm9uZTtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCA4cHggMjhweCByZ2JhKDIwLCAyNSwgODAsIDAuMjgpLFxuICAgICAgICAwIDJweCA4cHggIHJnYmEoMjAsIDI1LCA4MCwgMC4xNik7XG5cbiAgICAucWRuYXByby1ib3R0b20tbmF2LWJ0biAgICAgICAgeyBjb2xvcjogdmFyKC0tYy13aGl0ZS02NSk7IH1cbiAgICAucWRuYXByby1ib3R0b20tbmF2LWJ0bi5pcy1hY3RpdmUgeyBjb2xvcjogI2ZmZmZmZjsgfVxuXG4gICAgLy8gZG9vcnNjaGlqbmVuZGUgXCJzcG90bGlnaHRcIi1waWxsIChnZWVuIHNvbGlkIGJsb2spIOKAlCBpY29vbiBibGlqZnQgemljaHRiYWFyXG4gICAgLnFkbmFwcm8tYm90dG9tLW5hdl9fcGlsbCB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCk7IH1cblxuICAgIC8vIEdFRU4gZmlsbGVkLWNsaXAgb3Agc29saWQ6IGRlIHdpcGUgKHBhYXJzLW9wLWxpY2h0IGJpaiBnbGFzcykgZ2FmIG9wIGRlXG4gICAgLy8gcGFhcnNlIGJhbGsgd2l0dGUgZnJhZ21lbnRlbi9nbGl0Y2ggdGlqZGVucyBoZXQgc2NodWl2ZW4uIEhldCBhY3RpZXZlIGljb29uXG4gICAgLy8gdmVyYW5kZXJ0IGhpZXIgZ2V3b29uIHZhbiBrbGV1ciB2aWEgLmlzLWFjdGl2ZSAod2l0LTY1IOKGkiB2b2wgd2l0KS4gWzI5LjA2LjIwMjZdXG4gICAgLy8gTkI6IHNlbGVjdG9yIHZpYSAucWRuYXByby1ib3R0b20tbmF2LWJ0biBvbSBkZSBnZWRlZWxkZSBgZGlzcGxheTpibG9ja2BcbiAgICAvLyAoemVsZmRlIHNwZWNpZmljaXRlaXQsIGVlcmRlciBpbiBkZSBicm9uKSB0ZSBvdmVyc2NocmlqdmVuLlxuICAgIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuX19zdmctZmlsbGVkIHsgZGlzcGxheTogbm9uZTsgfVxuICAgIC8vIHBsdXMtY2lyY2xlIHdpdHRlLWNpcmtlbC10cnVjICh2b29yIGdsYXNzKSBoaWVyIG5pZXQgbm9kaWcg4oaSIHVpdCwgYW5kZXJzXG4gICAgLy8gd2l0LW9wLXdpdCBibG9iIGFscyBkZSArIGFjdGllZiBpcy5cbiAgICAucWRuYXByby1ib3R0b20tbmF2LWJ0bltpY29uPVwicGx1cy1jaXJjbGVcIl0uaXMtYWN0aXZlIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuX19pY29uOjpiZWZvcmUgeyBkaXNwbGF5OiBub25lOyB9XG59XG5cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgUGFnZSB0cmFuc2l0aW9uIGtleWZyYW1lcyArIGNsYXNzZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5Aa2V5ZnJhbWVzIHFkbmFwcm8tc2xpZGUtaW4tcmlnaHQge1xuICAgIGZyb20geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IG9wYWNpdHk6IDA7IH1cbiAgICB0byAgIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyAgICBvcGFjaXR5OiAxOyB9XG59XG5cbkBrZXlmcmFtZXMgcWRuYXByby1zbGlkZS1pbi1sZWZ0IHtcbiAgICBmcm9tIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgb3BhY2l0eTogMDsgfVxuICAgIHRvICAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7ICAgICBvcGFjaXR5OiAxOyB9XG59XG5cbkBrZXlmcmFtZXMgcWRuYXByby1zbGlkZS1vdXQtbGVmdCB7XG4gICAgZnJvbSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgICAgb3BhY2l0eTogMTsgfVxuICAgIHRvICAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTMwJSk7IG9wYWNpdHk6IDA7IH1cbn1cblxuQGtleWZyYW1lcyBxZG5hcHJvLXNsaWRlLW91dC1yaWdodCB7XG4gICAgZnJvbSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgICBvcGFjaXR5OiAxOyB9XG4gICAgdG8gICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMCUpOyBvcGFjaXR5OiAwOyB9XG59XG5cbi5xZG5hcHJvLXBhZ2Utc3RhY2sge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ucWRuYXByby1wYWdlIHtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5O1xufVxuXG4ucWRuYXByby1wYWdlLS1lbnRlci1md2Qge1xuICAgIGFuaW1hdGlvbjogcWRuYXByby1zbGlkZS1pbi1yaWdodCAyODBtcyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSkgYm90aDtcbn1cblxuLnFkbmFwcm8tcGFnZS0tbGVhdmUtZndkIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgICBpbnNldDogMDtcbiAgICBhbmltYXRpb246IHFkbmFwcm8tc2xpZGUtb3V0LWxlZnQgMjQwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC44LCAwLjYpIGJvdGg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5xZG5hcHJvLXBhZ2UtLWVudGVyLWJ3ZCB7XG4gICAgYW5pbWF0aW9uOiBxZG5hcHJvLXNsaWRlLWluLWxlZnQgMjgwbXMgY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpIGJvdGg7XG59XG5cbi5xZG5hcHJvLXBhZ2UtLWxlYXZlLWJ3ZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgaW5zZXQ6IDA7XG4gICAgYW5pbWF0aW9uOiBxZG5hcHJvLXNsaWRlLW91dC1yaWdodCAyNDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjgsIDAuNikgYm90aDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbiIsIi8vIFNDU1MtYnJvbiB2b29yIGRlIGNvbXBvbmVudHMtdjItYnVuZGVsLlxuLy8gQmV3ZXJrIEhJRVIsIGRyYWFpIGRhYXJuYSBgZ3VscCBzYXNzLXYxYCBlbiAodm9vciBkZSBhcHApIHN5bmMtdjItY29tcG9uZW50cy5qcy5cbi8vXG4vLyBxZG5hcHJvLXB1bGwtcmVmcmVzaCDigJQgXCJ0cmVrIG9tbGFhZyBvbSB0ZSB2ZXJ2ZXJzZW5cIi5cbi8vXG4vLyBWT09SIERFIFZPUk1HRVZFUiAoS2ltKTogYWxsZXMgd2F0IGplIG5vZGlnIGhlYnQgeml0IGluIGRpdCBiZXN0YW5kLiBEZSBKUyB6ZXRcbi8vIGFsbGVlbiBrbGFzc2VuIGVuIHR3ZWUgdmFyaWFiZWxlbjsgaGlqIGJlcGFhbHQgbmlldHMgb3ZlciBob2UgaGV0IGVydWl0emlldC5cbi8vXG4vLyAgIFRvZXN0YW5kZW4gKGtsYXNzZSBvcCBkZSBob3N0KTpcbi8vICAgICAucHItaWRsZSAgICAgIG5pZXRzIGFhbiBkZSBoYW5kLCB6b25lIGlzIGRpY2h0XG4vLyAgICAgLnByLXB1bGxpbmcgICBnZWJydWlrZXIgdHJla3QsIG1hYXIgbm9nIG5pZXQgdmVyIGdlbm9lZ1xuLy8gICAgIC5wci1yZWFkeSAgICAgdmVyIGdlbm9lZyDigJQgbG9zbGF0ZW4gc3RhcnQgaGV0IHZlcnZlcnNlblxuLy8gICAgIC5wci1idXN5ICAgICAgYmV6aWcgbWV0IHZlcnZlcnNlblxuLy9cbi8vICAgVmFyaWFiZWxlbiBkaWUgSklKIG1hZyB6ZXR0ZW46XG4vLyAgICAgLS1wci1tYXgtcHVsbCAgICAgICBob2UgaG9vZyBkZSB6b25lIG1heGltYWFsIHdvcmR0XG4vLyAgICAgLS1wci1iZyAgICAgICAgICAgICBhY2h0ZXJncm9uZCB2YW4gZGUgem9uZVxuLy8gICAgIC0tcHItY29sb3IgICAgICAgICAga2xldXIgdmFuIGhldCBkcmFhaWVuZGUgcm9uZGplXG4vLyAgICAgLS1wci1sYWJlbC1jb2xvciAgICBrbGV1ciB2YW4gZGUgdGVrc3Rcbi8vICAgICAtLXByLWxhYmVsLXNpemUgICAgIHRla3N0Z3Jvb3R0ZVxuLy8gICAgIC0tcHItc3Bpbm5lci1zaXplICAgZGlhbWV0ZXIgdmFuIGhldCByb25kamVcbi8vICAgICAtLXByLXNwaW5uZXItd2lkdGggIGRpa3RlIHZhbiBkZSByYW5kIHZhbiBoZXQgcm9uZGplXG4vL1xuLy8gICBWYXJpYWJlbGVuIGRpZSBkZSBKUyB6ZXQgKGFsbGVlbiBsZXplbik6XG4vLyAgICAgLS1wci1kaXN0YW5jZSAgIGhvZXZlZWwgcGl4ZWxzIGRlIHpvbmUgbnUgb3BlbiBzdGFhdFxuLy8gICAgIC0tcHItcHJvZ3Jlc3MgICAwIOKGkiAxIHRlcndpamwgamUgdHJla3Q7IHJla2VuIGhpZXIgZ2VydXN0IG1lZSwgYmlqdm9vcmJlZWxkXG4vLyAgICAgICAgICAgICAgICAgICAgIGBvcGFjaXR5OiB2YXIoLS1wci1wcm9ncmVzcylgIG9mIGBzY2FsZSh2YXIoLS1wci1wcm9ncmVzcykpYFxuLy9cbi8vIOKaoO+4jyBgb3ZlcmZsb3c6IGhpZGRlbmAgb3AgZGUgaG9zdCBpcyBmdW5jdGlvbmVlbCwgbmlldCBjb3NtZXRpc2NoOiBkZSB6b25lIGlzIGluXG4vLyBydXN0IDAgcHggaG9vZyBlbiBkZSBpbmRpY2F0b3Igeml0IGVyIGFsIGluLiBab25kZXIgZGl0IHN0ZWVrdCBoaWogYm92ZW4gZGUgcmFuZFxuLy8gdmFuIGhldCBzY2hlcm0gdWl0LiBaaWUgb29rIGRlIGtsaXAtdmFsa3VpbCBpbiBDTEFVREUubWQuXG5cbi8qIGNvbXBpbGVkIGZyb20gX3B1bGwtcmVmcmVzaC5zY3NzICovXG4ucWRuYXByby1wdWxsLXJlZnJlc2gge1xuICAgIC0tcHItbWF4LXB1bGw6IDk2cHg7XG4gICAgLS1wci1iZzogdHJhbnNwYXJlbnQ7XG4gICAgLS1wci1jb2xvcjogIzQwNDk5YTtcbiAgICAtLXByLWxhYmVsLWNvbG9yOiAjNmU3MjgwO1xuICAgIC0tcHItbGFiZWwtc2l6ZTogMTNweDtcbiAgICAtLXByLXNwaW5uZXItc2l6ZTogMjJweDtcbiAgICAtLXByLXNwaW5uZXItd2lkdGg6IDJweDtcbiAgICAtLXByLWRpc3RhbmNlOiAwcHg7XG4gICAgLS1wci1wcm9ncmVzczogMDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIC8qIOKaoO+4jyBGdW5jdGlvbmVlbCwgbmV0IGFscyBkZSBvdmVyZmxvdyBoaWVyYm92ZW4uIERlIHpvbmUgaXMgYmlqbmEgYWx0aWpkIGVlblxuICAgICAgIGtpbmQgdmFuIGRlIHNjcm9sbGVuZGUgYmFrLCBlbiBkaWUgaXMgb3AgZGUgbWVlc3RlIHNjaGVybWVuIGVlbiBGTEVYLUtPTE9NXG4gICAgICAgKC5xZG5hLWNvbnRlbnQtLXBhZ2UpLiBFZW4gZmxleC1pdGVtIG1hZyBzdGFuZGFhcmQga3JpbXBlbiwgZHVzIGRlIGluaG91ZFxuICAgICAgIGVyb25kZXIgZHJ1a3QgZGUgem9uZSB0ZXJ1ZyBuYWFyIDAgcHg6IGhldCBnZWJhYXIgd2Vya3QgZGFuIHfDqWwg4oCUIGRlIGtsYXNzZW5cbiAgICAgICBsb3BlbiBuZXRqZXMgZG9vciBwci1wdWxsaW5nL3ByLXJlYWR5L3ByLWJ1c3kg4oCUIG1hYXIgamUgemlldCBlbiB2b2VsdCBuaWV0cy5cbiAgICAgICBHZW1ldGVuIG9wIFB1bHNlIDIwLjA4LjIwMjY6IC0tcHItZGlzdGFuY2Ugc3RvbmQgb3AgODBweCwgZGUgY29tcHV0ZWQgaGVpZ2h0XG4gICAgICAgb3AgMHB4LiBPcCBoZXQgc3RhcnRzY2hlcm0gdmllbCBkaXQgbm9vaXQgb3AsIHdhbnQgLmhvbWVfdmlld19fcGFuZWwgaXMgZWVuXG4gICAgICAgZ2V3b25lIGJsb2stY29udGFpbmVyLiAqL1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgaGVpZ2h0OiB2YXIoLS1wci1kaXN0YW5jZSk7XG4gICAgbWF4LWhlaWdodDogdmFyKC0tcHItbWF4LXB1bGwpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXByLWJnKTtcbiAgICAvKiBUZXJ1Z3ZlcmVuIGFscyBkZSB2aW5nZXIgbG9zIGlzLiBUaWpkZW5zIGhldCB0cmVra2VuIHN0YWF0IGRlIG92ZXJnYW5nIHVpdCxcbiAgICAgICBhbmRlcnMgbG9vcHQgZGUgem9uZSBhY2h0ZXIgZGUgdmluZ2VyIGFhbi4gKi9cbiAgICB0cmFuc2l0aW9uOiBoZWlnaHQgMjIwbXMgZWFzZTtcbn1cblxuLnFkbmFwcm8tcHVsbC1yZWZyZXNoLnByLXB1bGxpbmcsXG4ucWRuYXByby1wdWxsLXJlZnJlc2gucHItcmVhZHkge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG59XG5cbi5xZG5hcHJvLXB1bGwtcmVmcmVzaCAucHItaW5kaWNhdG9yIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IHZhcigtLXByLXNwaW5uZXItc2l6ZSk7XG4gICAgb3BhY2l0eTogdmFyKC0tcHItcHJvZ3Jlc3MpO1xufVxuXG4ucWRuYXByby1wdWxsLXJlZnJlc2ggLnByLXNwaW5uZXIge1xuICAgIHdpZHRoOiB2YXIoLS1wci1zcGlubmVyLXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tcHItc3Bpbm5lci1zaXplKTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyOiB2YXIoLS1wci1zcGlubmVyLXdpZHRoKSBzb2xpZCB2YXIoLS1wci1jb2xvcik7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgLyogTWVlZHJhYWllbiBtZXQgZGUgdmluZ2VyOiDDqcOpbiBoZWxlIHNsYWcgb3ZlciBkZSB2b2xsZWRpZ2UgdHJla2Fmc3RhbmQuICovXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoY2FsYyh2YXIoLS1wci1wcm9ncmVzcykgKiAzNjBkZWcpKTtcbn1cblxuLnFkbmFwcm8tcHVsbC1yZWZyZXNoLnByLXJlYWR5IC5wci1zcGlubmVyIHtcbiAgICAvKiBWZXIgZ2Vub2VnOiBoZXQgcm9uZGplIHN0YWF0IHN0aWwgZW4gdm9sLCBhbHMgYmV2ZXN0aWdpbmcgZGF0IGxvc2xhdGVuIHdlcmt0LiAqL1xuICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLXByLWNvbG9yKTtcbn1cblxuLnFkbmFwcm8tcHVsbC1yZWZyZXNoLnByLWJ1c3kgLnByLWluZGljYXRvciB7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLnFkbmFwcm8tcHVsbC1yZWZyZXNoLnByLWJ1c3kgLnByLXNwaW5uZXIge1xuICAgIGFuaW1hdGlvbjogcWRuYXByby1wdWxsLXJlZnJlc2gtc3BpbiA5MDBtcyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbi5xZG5hcHJvLXB1bGwtcmVmcmVzaCAucHItbGFiZWwge1xuICAgIGNvbG9yOiB2YXIoLS1wci1sYWJlbC1jb2xvcik7XG4gICAgZm9udC1zaXplOiB2YXIoLS1wci1sYWJlbC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG5Aa2V5ZnJhbWVzIHFkbmFwcm8tcHVsbC1yZWZyZXNoLXNwaW4ge1xuICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxufVxuXG4vLyBCZXdlZ2luZ3N2b29ya2V1ciB2YW4gaGV0IHRvZXN0ZWwgcmVzcGVjdGVyZW46IGdlZW4gZWluZGVsb29zIGRyYWFpZW5kIHJvbmRqZVxuLy8gdm9vciB3aWUgZGF0IGhlZWZ0IHVpdGdlemV0LiBEZSB0ZWtzdCBibGlqZnQgZGUgdG9lc3RhbmQgdmVydGVsbGVuLlxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAucWRuYXByby1wdWxsLXJlZnJlc2ggeyB0cmFuc2l0aW9uOiBub25lOyB9XG4gICAgLnFkbmFwcm8tcHVsbC1yZWZyZXNoIC5wci1zcGlubmVyIHsgYW5pbWF0aW9uOiBub25lOyB0cmFuc2Zvcm06IG5vbmU7IH1cbn1cbiIsIi8vIHFkbmFwcm8tdGFiLWJhciAoKyBxZG5hcHJvLXRhYi1iYXItaXRlbSkg4oCUIGZ1bGwtd2lkdGggdG9wIHRhYiBiYXIsXG4vLyBzbGlkaW5nIHBpbGwgLyBzZWdtZW50ZWQgY29udHJvbC4gRkxBVCBDU1M7IGNvbG91cnMvcmFkaWkvc3BhY2luZyBhbGwgZnJvbVxuLy8gdGhlIGRlc2lnbi10b2tlbiA6cm9vdCAodmFyKC0tYy0qKSAvIC0tci0qIC8gLS1zLSopIHNvIGxpZ2h0L2RhcmsgdGhlbWluZ1xuLy8gKHNlZSBkZXNpZ24tdG9rZW5zLnNjc3MgW2RhdGEtdGhlbWU9XCJkYXJrXCJdIGJsb2NrKSBhcHBsaWVzIGF1dG9tYXRpY2FsbHkuXG4vLyBUaGUgdHdvIFNVUkZBQ0UgZmlsbHMgYXJlIHRoZSBvbmUgZXhjZXB0aW9uIOKAlCBzZWUgLS10Yi10cmFjay1iZyAvXG4vLyAtLXRiLXBpbGwtYmcgYmVsb3cgYW5kIHRoZSBkYXJrIGJsb2NrIGF0IHRoZSBib3R0b20gb2YgdGhpcyBmaWxlLlxuLy9cbi8vIExheW91dDogZXF1YWwtd2lkdGggZmxleCBzZWdtZW50cyAoLnFkbmFwcm8tdGFiLWJhci1pdGVtIHsgZmxleDogMSB9KSDigJRcbi8vIHRoZSBzbGlkaW5nIHBpbGwncyB3aWR0aCBvbmx5IGV2ZXIgZGVwZW5kcyBvbiB0aGUgQkFSJ3Mgb3duIHdpZHRoLCBuZXZlciBvblxuLy8gYSB0YWIncyBsYWJlbC9jb3VudCBjb250ZW50LCBzbyBhIGxpdmUgY291bnQgY2hhbmdlIGNhbiBuZXZlciBkZXN5bmMgaXQuXG4vL1xuLy8gUGlsbCBhbmltYXRpb246IEpTIHNldHMgdHJhbnNmb3JtL3dpZHRoIGlubGluZTsgdGhlIHRyYW5zaXRpb24gaXRzZWxmIGxpdmVzXG4vLyBoZXJlIHZpYSAtLXRiLXBpbGwtZHVyYXRpb24gc28gcHJlZmVycy1yZWR1Y2VkLW1vdGlvbiBjYW4gY29sbGFwc2UgaXQgdG8gMFxuLy8gd2l0aG91dCBhbnkgSlMgYnJhbmNoaW5nLlxuXG4ucWRuYXByby10YWItYmFyIHtcbiAgLS10Yi1waWxsLWR1cmF0aW9uOiAyMjBtcztcblxuICAvLyBTdXJmYWNlIGZpbGxzLCBhbGlnbmVkIDE6MSB3aXRoIHFkbmFwcm8tc2VnbWVudCBbS2ltIDMwLjA3LjIwMjZdLiBUaGUgdHJhY2tcbiAgLy8gaXMgdGhlIG5ldXRyYWwgZ3JleSBTdXJmYWNlL1NlY29uZGFyeSAoI2YwZjFmMikg4oCUIGl0IHVzZWQgdG8gYmUgdGhlIGxhdmVuZGVyXG4gIC8vIC0tYy1iZy1zdWJ0bGUtcHVycGxlLCB3aGljaCBtYWRlIHRoZSBzYW1lIGNvbnRyb2wgcmVhZCBkaWZmZXJlbnRseSBwZXIgcGFnZS5cbiAgLy8gQm90aCBnbyB0aHJvdWdoIGEgbG9jYWwgY3VzdG9tIHByb3BlcnR5IHNvIHRoZSBkYXJrIGJsb2NrIGF0IHRoZSBib3R0b20gb25seVxuICAvLyBoYXMgdG8gcmUtcG9pbnQgdHdvIHZhbHVlcyBpbnN0ZWFkIG9mIHJlcGVhdGluZyB0aGUgcnVsZXMuXG4gIC0tdGItdHJhY2stYmc6IHZhcigtLWMtZ3JleS01MCk7XG4gIC0tdGItcGlsbC1iZzogdmFyKC0tYy1iZy1jYXJkKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIGFuY2hvcnMgdGhlIGFic29sdXRlbHktcG9zaXRpb25lZCBwaWxsXG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiB2YXIoLS1zLTEpOyAvLyB+NHB4IGlubmVyIHBhZGRpbmdcbiAgZ2FwOiAycHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLXRiLXRyYWNrLWJnKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tci00KTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZmKTtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnFkbmFwcm8tdGFiLWJhciB7IC0tdGItcGlsbC1kdXJhdGlvbjogMG1zOyB9XG59XG5cbi8vIFNsaWRpbmcgcGlsbCDigJQgY3JlYXRlZCArIHBvc2l0aW9uZWQgYnkgSlMgKHRyYW5zZm9ybSArIHdpZHRoKS4gU2l0cyBiZWhpbmRcbi8vIHRoZSBpdGVtcyAoei1pbmRleCAwKTsgaXRlbXMgdGhlbXNlbHZlcyBhcmUgdHJhbnNwYXJlbnQgc28gdGhlIHBpbGwgc2hvd3Ncbi8vIHRocm91Z2ggYXMgdGhlIGFjdGl2ZS10YWIgYmFja2dyb3VuZC5cbi5xZG5hcHJvLXRhYi1iYXJfX3BpbGwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogdmFyKC0tcy0xKTtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiB2YXIoLS1zLTEpO1xuICB3aWR0aDogMDsgICAgICAgICAgLy8gc2V0IGJ5IEpTXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgLy8gc2V0IGJ5IEpTXG4gIGJhY2tncm91bmQ6IHZhcigtLXRiLXBpbGwtYmcpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTMpO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctY2FyZCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAwO1xuICBvcGFjaXR5OiAwOyAvLyBKUyBmbGlwcyB0byAxIG9uY2UgYW4gYWN0aXZlIHRhYiBpcyBtZWFzdXJlZCAobm8gZmxhc2ggYXQgMCwwKVxuICB0cmFuc2l0aW9uOlxuICAgIHRyYW5zZm9ybSB2YXIoLS10Yi1waWxsLWR1cmF0aW9uKSBjdWJpYy1iZXppZXIoMC4wNSwgMC43LCAwLjEsIDEuMCksXG4gICAgd2lkdGggICAgIHZhcigtLXRiLXBpbGwtZHVyYXRpb24pIGN1YmljLWJlemllcigwLjA1LCAwLjcsIDAuMSwgMS4wKSxcbiAgICBvcGFjaXR5IDEyMG1zIGVhc2U7XG59XG5cbi5xZG5hcHJvLXRhYi1iYXItaXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gc3RhY2tzIGFib3ZlIHRoZSBwaWxsXG4gIHotaW5kZXg6IDE7XG4gIGZsZXg6IDEgMSAwOyAvLyBlcXVhbC13aWR0aCBzZWdtZW50c1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIG1pbi1oZWlnaHQ6IDQ0cHg7IC8vIHRvdWNoIHRhcmdldFxuICBwYWRkaW5nOiAwIHZhcigtLXMtMik7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMyk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBjb2xvciAxNTBtcyBlYXNlO1xufVxuXG4ucWRuYXByby10YWItYmFyLWl0ZW1fX2xhYmVsIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogdmFyKC0tZnctbWVkaXVtKTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB0cmFuc2l0aW9uOiBjb2xvciAxNTBtcyBlYXNlLCBmb250LXdlaWdodCAxNTBtcyBlYXNlO1xufVxuXG4vLyBBY3RpdmUgdGFiIOKAlCBkZWVwIHB1cnBsZSwgc2VtaWJvbGQgbGFiZWwuIFRoZSBwaWxsIGJlaGluZCBpdCBzdXBwbGllcyB0aGVcbi8vIHdoaXRlIGZpbGwgKyBzaGFkb3c7IHRoaXMgb25seSB0b3VjaGVzIHRoZSBsYWJlbCBjb2xvdXIvd2VpZ2h0LlxuLnFkbmFwcm8tdGFiLWJhci1pdGVtLmlzLWFjdGl2ZSAucWRuYXByby10YWItYmFyLWl0ZW1fX2xhYmVsIHtcbiAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWkpO1xufVxuXG4vLyBJbmFjdGl2ZSBob3ZlciDigJQgYSBmYWludCBsaWZ0IHNvIHRoZSBiYXIgcmVhZHMgYXMgaW50ZXJhY3RpdmUuXG4ucWRuYXByby10YWItYmFyLWl0ZW06bm90KC5pcy1hY3RpdmUpOmhvdmVyIC5xZG5hcHJvLXRhYi1iYXItaXRlbV9fbGFiZWwge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHkpO1xufVxuXG4ucWRuYXByby10YWItYmFyLWl0ZW06Zm9jdXMtdmlzaWJsZSB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1yaW5nKSwgMCAwIDAgNHB4IHZhcigtLWZvY3VzLWdsb3cpO1xufVxuXG4ucWRuYXByby10YWItYmFyLWl0ZW1fX2JhZGdlIHtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi8vIERhcmsgbW9kZSDigJQgdGhlIE9OTFkgZXhwbGljaXQgb3ZlcnJpZGUgdGhpcyBjb21wb25lbnQgbmVlZHMuIEV2ZXJ5IG90aGVyXG4vLyB2YWx1ZSBpcyBhIHNlbWFudGljIHRva2VuIHRoYXQgZmxpcHMgaXRzZWxmLCBidXQgdGhlIHR3byBzdXJmYWNlcyBjYW5ub3QgYmU6XG4vLyBxZG5hcHJvLXNlZ21lbnQgcHV0cyBhIERBUktFUiBwaWxsIG9uIGEgTElHSFRFUiB0cmFjayBpbiBkYXJrIG1vZGUgKCMxZTIwMjhcbi8vIG9uICMyYTJkMzUpLCB0aGUgcmV2ZXJzZSBvZiB0aGUgbGlnaHQgdGhlbWUuIExlYXZpbmcgdGhlIHBpbGwgb25cbi8vIC0tYy1iZy1jYXJkIHdvdWxkIHJlc29sdmUgaXQgdG8gdGhlIHNhbWUgZ3JleSBhcyB0aGUgdHJhY2sgYW5kIHRoZSBwaWxsXG4vLyB3b3VsZCBkaXNhcHBlYXIuIE5lYXJlc3QgdG9rZW5zIHRvIHNlZ21lbnQncyBoYXJkY29kZWQgaGV4ZXM6IGdyZXktODAwXG4vLyAoIzJlMzAzNikgZm9yIHRoZSB0cmFjaywgZ3JleS05MDAgKCMxODE4MWMpIGZvciB0aGUgcGlsbC5cbi8vIFNhbWUgdGhyZWUgc2VsZWN0b3JzIGFzIHRoZSBkZXNpZ24tdG9rZW5zIGRhcmsgYmxvY2ssIHNvIGl0IHRyaWdnZXJzIG9uXG4vLyBbZGF0YS10aGVtZS1kYXJrXSAodGFza2xpc3QpLCBbZGF0YS10aGVtZT1cImRhcmtcIl0gYW5kIGJvZHlbZGF0YS10aGVtZT1cImRhcmtcIl0uXG5bZGF0YS10aGVtZS1kYXJrXSAucWRuYXByby10YWItYmFyLFxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXRhYi1iYXIsXG5ib2R5W2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXRhYi1iYXIge1xuICAtLXRiLXRyYWNrLWJnOiB2YXIoLS1jLWdyZXktODAwKTtcbiAgLS10Yi1waWxsLWJnOiB2YXIoLS1jLWdyZXktOTAwKTtcbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8tYXBwLWhlYWRlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgR2VuZXJpYyBhcHAgaGVhZGVyIHNoZWxsIGZvciB0aGUgUUROQSBQV0EgKHJlcGxhY2VzIHBlci1zY3JlZW4gYWQtaG9jXG4vLyAgaGVhZGVycywgZS5nLiB0aGUgYWdlbmRhIGhlYWRlciBpbiBELWFnZW5kYS5odG1sIOKAlCB0aGF0IHZpZXcgaXMgdGhlXG4vLyAgZGVzaWduIHJlZmVyZW5jZSwgbm90IGEgZGVwZW5kZW5jeSkuXG4vL1xuLy8gIFRhcCB0YXJnZXQgOiA0NHB4IG1pbmltdW0gKHFkbmFwcm8taWNvbi1idG4gc2l6ZT1cInRvdWNoXCIpLCBBcHBsZSBISUcuXG4vLyAgU2FmZSBhcmVhICA6IHBhZGRpbmctdG9wOiB2YXIoLS1xZG5hLWluc2V0LXRvcCwgZW52KHNhZmUtYXJlYS1pbnNldC10b3ApKSDigJQgYWx3YXlzXG4vLyAgICAgICAgICAgICAgIG9uLCBzbyBhIHN0aWNreSBoZWFkZXIgYXQgdG9wOjAgcmVzcGVjdHMgdGhlIG5vdGNoIGF1dG9tYXRpY2FsbHkuXG4vLyAgICAgICAgICAgICAgIEFuZHJvaWQgbGV2ZXJ0IGRlIGVjaHRlIHdhYXJkZSB2aWEgZGUgcGx1Z2luIHFkbmEtaW5zZXRzOyBpT1MgZ2VicnVpa3Rcbi8vICAgICAgICAgICAgICAgemlqbiBlaWdlbiBlbnYoKS4gWmllIGRlIHJlZ2VsIHplbGYgdm9vciBoZXQgd2Fhcm9tLlxuLy9cbi8vICBUb2tlbnMgY29uc3VtZWQgKGZyb20gZGVzaWduLXRva2Vucy9fZGVzaWduLXRva2Vucy5zY3NzKSwgdmlhIHRoZVxuLy8gIGNvbXBvbmVudCdzIG93biAtLXFhaC0qIGN1c3RvbSBwcm9wZXJ0aWVzIHNvIGEgcXVlc3Rpb25uYWlyZSB0aGVtZSBjYW5cbi8vICByZWNvbG91ciB0aGUgaGVhZGVyIHdpdGhvdXQgZm9ya2luZyBpdDpcbi8vICAgIC0tYy1iZy1jYXJkICAgICAgIC0tcWFoLWJnIGRlZmF1bHRcbi8vICAgIC0tYy10ZXh0LWhlYWRpbmcgIC0tcWFoLWZnIGRlZmF1bHQgKHRpdGxlICsgYmFjayBpY29uKVxuLy8gICAgLS1jLXRleHQtbXV0ZWQgICAgLS1xYWgtc3VidGl0bGUtY29sb3IgZGVmYXVsdFxuLy8gICAgLS1jLWJvcmRlci1zb2Z0ICAgLS1xYWgtYm9yZGVyLWNvbG9yIGRlZmF1bHRcbi8vXG4vLyAgbW9kZT1cInNlbGVjdGlvblwiIGtlZXBzIGEgV0hJVEUgc3VyZmFjZSBhbmQgY2FycmllcyB0aGUgcHVycGxlIG9ubHkgaW4gdGhlXG4vLyAgYm9yZGVyLCB0aGUgY291bnQgYW5kIHRoZSBhY3Rpb25zLiBJdCB1c2VkIHRvIGZpbGwgdGhlIHdob2xlIGJhciB3aXRoIHRoZVxuLy8gIGxpYnJhcnkncyBcInNlbGVjdGVkXCIgcHVycGxlICgjZTZlOWZmLCB0aGUgc2FtZSBwYWlyIGFzXG4vLyAgcWRuYXByby1pbmJveC1tZXNzYWdlJ3MgLmluYm94LW1lc3NhZ2Utc2VsZWN0ZWQpLCBidXQgdGhhdCBtYWRlIHRoZSBoZWFkZXJcbi8vICBmaWdodCB0aGUgc2VsZWN0ZWQgUk9XUyByaWdodCB1bmRlciBpdDogeW91IGNvdWxkIG5vIGxvbmdlciBzZWUgd2hlcmUgdGhlXG4vLyAgaGVhZGVyIGVuZGVkIGFuZCB0aGUgc2VsZWN0aW9uIGJlZ2FuLiBbS2ltIDI5LjA3LjIwMjYsIG5hIGVlbiB0b2VzdGVsdGVzdF1cbi8vICAgIC0tYy1iZy1jYXJkICAgICAgIC0tcWFoLWJnIGluIHNlbGVjdGlvbiBtb2RlICh3YXMgLS1jLXB1cnBsZS01MClcbi8vICAgIC0tYy1icmFuZC1wdXJwbGUgIC0tcWFoLXNlbGVjdGlvbi1mZyBvdmVycmlkZSAoY291bnQgKyBhY3Rpb25zIG9ubHk7XG4vLyAgICAgICAgICAgICAgICAgICAgICB0aGUgYm9yZGVyIHVzZXMgdGhlIHN0YW5kYXJkIC0tYy1ib3JkZXItc29mdCBhZ2FpblxuLy8gICAgICAgICAgICAgICAgICAgICAgc2luY2UgMzEuMDcuMjAyNiwgS2ltOiBncmlqcyBpbiBwbGFhdHMgdmFuIHBhYXJzKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5xZG5hcHJvLWFwcC1oZWFkZXIge1xuICAgIC0tcWFoLWJnOiB2YXIoLS1jLWJnLWNhcmQsICNmZmZmZmYpO1xuICAgIC0tcWFoLWZnOiB2YXIoLS1jLXRleHQtaGVhZGluZywgIzFhMWY0ZCk7XG4gICAgLS1xYWgtc3VidGl0bGUtY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gICAgLS1xYWgtYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJvcmRlci1zb2Z0LCByZ2JhKDAsIDAsIDAsIDAuMDcpKTtcbiAgICAtLXFhaC1oZWlnaHQ6IDU2cHg7XG4gICAgLS1xYWgtc2VsZWN0aW9uLWZnOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSk7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIGJhY2tncm91bmQ6IHZhcigtLXFhaC1iZyk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXFhaC1ib3JkZXItY29sb3IpO1xuICAgIC8vIEluemV0IHZvb3IgZGUgc3RhdHVzYmFsay4gWzEwLjA4LjIwMjYsIEphbl1cbiAgICAvLyDimqDvuI8gR0VFTiBrYWxlIGVudigpIGVuIEdFRU4gdmFzdGUga2FwIOKAlCBiZWlkZSB6aWpuIGhpZXIgZm91dCBnZWJsZWtlbjpcbiAgICAvLyAgIMK3IEthbGUgYGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKWAgb3AgQW5kcm9pZCBnYWYgNTEgcHVudGVuIHRlcndpamwgZGUgc3RhdHVzYmFsa1xuICAgIC8vICAgICAyOCBsZWVrOiA2MCBmeXNpZWtlIHBpeGVscyBsZWdlIHJ1aW10ZSBib3ZlbiBlbGtlIHRpdGVsLlxuICAgIC8vICAgwrcgRGUga2FwIGBtaW4oZW52KC4uLiksIDI4cHgpYCBkaWUgZGFhcm9wIHZvbGdkZSBsb3N0ZSBkYXQgb3Agdm9vciBBbmRyb2lkIG1hYXJcbiAgICAvLyAgICAgd2FzIEZPVVQgVk9PUiBpT1M6IGRhYXIgaXMgZGllIGluemV0IDQ3KyBwdW50ZW4sIGR1cyBrYXB0ZSBoaWogaW5ob3VkIG9uZGVyIGRlXG4gICAgLy8gICAgIGlua2VwaW5nLiBFw6luIGRhZyBpbiBkZSBjb2RlYmFzZSBnZXdlZXN0LlxuICAgIC8vIE51IGRlIEVDSFRFIHdhYXJkZSwgcGVyIHRvZXN0ZWwsIHVpdCBkZSBBbmRyb2lkLWxhYWc6IGRlIHBsdWdpbiBgcWRuYS1pbnNldHNgXG4gICAgLy8gKHFkbmF2Ml9hcHAvbG9jYWwtcGx1Z2lucy9xZG5hLWluc2V0cykgemV0IGhlbSBhbHMgQ1NTLXZhcmlhYmVsZSBvcCA8aHRtbD4uXG4gICAgLy8gR2VtZXRlbjogU2Ftc3VuZyBBMzYgMzMgcHVudGVuLCBlbXVsYXRvciA1MCAoZGllIG1lbGR0IHN0YXR1c2JhbGsgPSB1aXRzcGFyaW5nKS5cbiAgICAvLyDimqDvuI8gRGUgdmFyaWFiZWxlIGJlc3RhYXQgQUxMRUVOIG9wIEFuZHJvaWQsIGR1cyBpT1MgdmFsdCB0ZXJ1ZyBvcCB6aWpuIGVpZ2VuIGVudigpXG4gICAgLy8g4oCUIG9uZ2VrYXB0LCBkdXMgZGFhciBpcyBkZSBpbmtlcGluZyB3ZWVyIGNvcnJlY3QgZ2VyZXNwZWN0ZWVyZC5cbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tcWRuYS1pbnNldC10b3AsIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wLCAwcHgpKTtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbn1cblxuLy8gVHJhbnNwYXJlbnQgdmFyaWFudCDigJQgc2VhbWxlc3MsIGZvciBhIHNjcmVlbiB0aGF0IHBhaW50cyBpdHMgb3duXG4vLyBiYWNrZ3JvdW5kIGJlaGluZCB0aGUgaGVhZGVyIChlLmcuIGEgY29sb3VyZWQgcXVlc3Rpb25uYWlyZSBjYW52YXMpLlxuLnFkbmFwcm8tYXBwLWhlYWRlci5xYWgtdmFyaWFudC10cmFuc3BhcmVudCB7XG4gICAgLS1xYWgtYmc6IHRyYW5zcGFyZW50O1xuICAgIC0tcWFoLWJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5xYWgtcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWluLWhlaWdodDogdmFyKC0tcWFoLWhlaWdodCk7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogNHB4IDEycHg7XG59XG5cbi5xYWgtYmFjayB7XG4gICAgZmxleDogMCAwIGF1dG87XG5cbiAgICAmW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG59XG5cbi8vIFdyYXBzIC5xYWgtdGl0bGVzICsgdGhlIG9wdGlvbmFsIGF2YXRhciBzbG90IGFzIE9ORSBibG9jaywgc28gdGhlIHR3byBjYW5cbi8vIGJlIGNlbnRlcmVkIHRvZ2V0aGVyIHVuZGVyIGFsaWduPVwiY2VudGVyXCIuIEluIGFsaWduPVwic3RhcnRcIiAoZGVmYXVsdClcbi8vIHRoaXMgd3JhcHBlciBpcyBpbmVydDogaXQganVzdCBmb3J3YXJkcyB0aGUgcm93J3MgZmxleGlibGUgc3BhY2UgdG9cbi8vIC5xYWgtdGl0bGVzIGV4YWN0bHkgbGlrZSAucWFoLXRpdGxlcyB1c2VkIHRvIGNsYWltIGRpcmVjdGx5LCBzbyB3cmFwcGluZ1xuLy8gaXQgaGVyZSBkb2VzIG5vdCBjaGFuZ2UgdGhlIGRlZmF1bHQgbGF5b3V0IGF0IGFsbC5cbi5xYWgtdGl0bGUtY2x1c3RlciB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xufVxuXG4ucWFoLXRpdGxlcyB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4vLyBBdmF0YXIgc2xvdCDigJQgc2FtZSBlbXB0eS1jb2xsYXBzZSBjb250cmFjdCBhcyAucWFoLWFjdGlvbnMgLyAucWFoLW5vdmEuXG4ucWFoLWF2YXRhciB7XG4gICAgZmxleDogMCAwIGF1dG87XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAmOmVtcHR5IHsgZGlzcGxheTogbm9uZTsgfVxufVxuXG4vLyBGb250LXdlaWdodCA1MDAgKG1lZGl1bSksIG5vdCA2MDAg4oCUIEtpbTogdGhlIHRpdGxlIGZlbHQgdG9vIGhlYXZ5IG5leHQgdG9cbi8vIHRoZSByZXN0IG9mIHRoZSBsaWJyYXJ5LiBDcm9zcy1jaGVja2VkIGFnYWluc3QgZXZlcnkgcGxhaW4tcm93L2xhYmVsXG4vLyBjb21wb25lbnQgKHFkbmFwcm8tdW5pdC1jYXJkIGxpc3QtY29tcGFjdCAxNC81MDAsIHFkbmFwcm8tYm90dG9tLW5hdiBsYWJlbFxuLy8gMTAvNTAwLCBxZG5hcHJvLWV2ZW50LWNhcmQgc2l6ZT1cInNtYWxsXCIgdGl0bGUgMTIvNTAwIOKAlCBkaWFsbGVkIGJhY2sgZnJvbVxuLy8gNjAwIG9uIDE2LjA3LjIwMjYgZm9yIHRoZSBleGFjdCBzYW1lIFwidG9vIGhlYXZ5XCIgY29tcGxhaW50KSDigJQgNjAwLzcwMCBvbmx5XG4vLyBzaG93cyB1cCBvbiBjYXJkLWVtcGhhc2lzIGNvbnRleHRzIChldmVudC1jYXJkIGRlZmF1bHQsIHVuaXQtY2FyZFxuLy8gbGlzdC1sYXJnZSkgb3IgdGhlIHR5cG9ncmFwaHkgbW9kdWxlJ3MgSGVhZGluZyBtaXhpbnMsIG5vdCBvbiBhIHBhZ2Vcbi8vIGhlYWRlciB0aXRsZSBzaXR0aW5nIGRpcmVjdGx5IGFib3ZlIGxpc3Qgcm93cy4gU2VlIF9saXN0LXJvdy5zY3NzIGhlYWRlclxuLy8gY29tbWVudCBmb3IgdGhlIGZ1bGwgY3Jvc3MtY29tcG9uZW50IGV2aWRlbmNlLiBbS2ltIDIwMjYtMDctMjFdXG4ucWFoLXRpdGxlIHtcbiAgICBjb2xvcjogdmFyKC0tcWFoLWZnKTtcbiAgICBmb250LXNpemU6IDE3cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgJjplbXB0eSB7IGRpc3BsYXk6IG5vbmU7IH1cbn1cblxuLnFhaC1zdWJ0aXRsZSB7XG4gICAgY29sb3I6IHZhcigtLXFhaC1zdWJ0aXRsZS1jb2xvcik7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcblxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICY6ZW1wdHkgeyBkaXNwbGF5OiBub25lOyB9XG59XG5cbi8vIExlYWRpbmctc2xvdDoga25vcHBlbiBoZWxlbWFhbCBsaW5rcywgbmEgZGUgdGVydWcvYW5udWxlZXIta25vcCBlbiB2b29yIGRlIHRpdGVsLlxuLy8gRXJiaWogb3AgMzEuMDcuMjAyNiB2b29yIGhldCBQV0EtcG9zdHZhazogdmFsdCBkZSBtYXBwZW4temlqYmFsayB3ZWcgb21kYXQgaGV0IHNjaGVybSB0ZVxuLy8gc21hbCBpcywgZGFuIGhvb3J0IGRhYXIgZWVuIGtub3AgZGllIGRpZSBtYXBwZW4gYWxzIHBhbmVlbCBvcGVudCwgZW4gZGF0IGlzIG9vayBkZSBwbGVrXG4vLyB3YWFyIGRlIGJhY2tvZmZpY2UtaW5ib3ggaGVtIGhlZWZ0LlxuLy8gTGVlZyA9IGdlZW4gcnVpbXRlLCBuZXQgYWxzIGVsa2UgYW5kZXJlIHNsb3QsIGR1cyBnZWVuIGVua2VsIGJlc3RhYW5kIHNjaGVybSBtZXJrdCBoaWVyXG4vLyBpZXRzIHZhbi5cbi8vIGBoaWRkZW5gIE1PRVQgaGV0IHdpbm5lbiB2YW4gZGUgZWlnZW4gZGlzcGxheS1yZWdlbCB2YW4gZWVuIGdlc2xvdHRlIGtub3AsIGVuIGRhdCBkb2V0XG4vLyBoZXQgbmlldCB2YW56ZWxmOiBgaGlkZGVuYCBrcmlqZ3QgemlqbiBgZGlzcGxheTogbm9uZWAgYWxsZWVuIHVpdCBkZSBzdHlsZXNoZWV0IHZhbiBkZVxuLy8gQlJPV1NFUiwgZW4gZWxrZSBlaWdlbiBkaXNwbGF5LXJlZ2VsIHZlcnNsYWF0IGRpZS4gRWVuIHFkbmFwcm8taWNvbi1idG4gc3RhYXQgb3Bcbi8vIGBkaXNwbGF5OiBpbmxpbmUtZmxleGAgZW4gZWVuIHFkbmFwcm8taW5wdXQgb3AgYGRpc3BsYXk6IGJsb2NrYCwgZHVzIHpvbmRlciBkZXplIHJlZ2VsXG4vLyBibGlqZnQgZWVuIHZlcmJvcmdlbiBrbm9wIGdld29vbiBzdGFhbi5cbi8vXG4vLyBEaXQgaXMgbmlldXcgc2luZHMgMzEuMDcuMjAyNiBlbiBoZXQgaXMgbm9kaWcgZ2V3b3JkZW4gZG9vciBlZW4gZWNodGUgZm91dDogaGV0IFBXQS1wb3N0dmFrXG4vLyBoYWFsZGUgemlqbiBrbm9wcGVuIG1ldCBlZW4ge3sjaWZ9fS1ibG9rIGluIGVuIHVpdCBkZSBET00sIGVuIG9tZGF0IGRlemUga29wIHNsb3Qta2luZGVyZW5cbi8vIFZFUlBMQUFUU1QgbGllcCBSYWN0aXZlIGRhYXJvcCBzdHVrIG1ldCBcImluc2VydEJlZm9yZSBvcCBudWxsXCIgKGZvdXRjb2RlIDUzMzEsIGdldm9uZGVuIGRvb3Jcbi8vIEtpbSkuIERlIHJlcGFyYXRpZSBpcyBkYXQgZWVuIGdlYnJ1aWtlciB6aWpuIGtub3BwZW4gbGFhdCBzdGFhbiBlbiBhbGxlZW4gYGhpZGRlbmAgemV0LCBlblxuLy8gZGFuIG1vZXQgZGF0IGF0dHJpYnV1dCBoaWVyIG9vayBlY2h0IHdlcmtlbi5cbi8vXG4vLyBTcGVjaWZpY2l0ZWl0OiAoMCwyLDApIHRlZ2VuIGRlICgwLDEsMCkgdmFuIC5xZG5hcHJvLWljb24tYnRuLCBkdXMgZGV6ZSB3aW50IHpvbmRlclxuLy8gIWltcG9ydGFudC4gTmFnZXJla2VuZCwgbmlldCBhYW5nZW5vbWVuLlxuLnFhaC1sZWFkaW5nIFtoaWRkZW5dLFxuLnFhaC1zZWFyY2ggW2hpZGRlbl0sXG4ucWFoLWFjdGlvbnMgW2hpZGRlbl0sXG4ucWFoLW5vdmEgW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5xYWgtbGVhZGluZyB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuXG4gICAgJjplbXB0eSB7IGRpc3BsYXk6IG5vbmU7IH1cbn1cblxuLy8gU2VhcmNoIHNsb3Q6IHNpdHMgYmV0d2VlbiB0aGUgdGl0bGUgY2x1c3RlciBhbmQgLnFhaC1hY3Rpb25zLCBob3Jpem9udGFsbHlcbi8vIGNlbnRlcmVkIGxpa2UgYSBHbWFpbC9NYWduaWZpYyBzZWFyY2ggYmFyLiBHcm93cyB3aXRoIHRoZSByb3cncyBsZWZ0b3ZlclxuLy8gc3BhY2UgKGZsZXg6IDEgMSBhdXRvKSBidXQgc3RvcHMgYXQgbWF4LXdpZHRoIHNvIGl0IG5ldmVyIHNwcmF3bHMgZWRnZS10by1cbi8vIGVkZ2Ugb24gYSB3aWRlIHRhYmxldC9kZXNrdG9wIGhlYWRlciAoS2ltOiBcImhpaiBzdG9wdCBvcCBlZW4gZ2VnZXZlblxuLy8gbW9tZW50IG1ldCBncm9laWVuXCIpLiBTYW1lIGVtcHR5LWNvbGxhcHNlIGNvbnRyYWN0IGFzIC5xYWgtYWN0aW9ucy8ucWFoLVxuLy8gbm92YS8ucWFoLWF2YXRhciBiZWxvdzogYW4gdW51c2VkIHNsb3QgbGVhdmVzIG5vIGdhcCwgc28gZXZlcnkgZXhpc3Rpbmdcbi8vIFBXQSBzY3JlZW4gdGhhdCBkb2Vzbid0IHVzZSB0aGlzIHNsb3QgaXMgdW5hZmZlY3RlZC4gTWVhbnQgZm9yIHRhYmxldCBhbmRcbi8vIHdpZGVyIChzZWUgdGhlIGNvbXBvbmVudCBkb2NibG9jayk6IHRoZSBQV0EgZG9lcyBub3Qgc2xvdCBhbnl0aGluZyBpblxuLy8gaGVyZSBvbiBwaG9uZSB3aWR0aHMsIHNvIHRoZXJlIGlzIG5vIGRlZGljYXRlZCBtb2JpbGUgaGlkZS1ydWxlOyB0aGF0XG4vLyBjaG9pY2UgbGl2ZXMgb24gdGhlIGNhbGxpbmcgc2NyZWVuLCBub3QgaGVyZS4gW0tpbSAzMS4wNy4yMDI2XVxuLnFhaC1zZWFyY2gge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBtYXgtd2lkdGg6IDUyMHB4O1xuXG4gICAgLy8gWm9kcmEgZGUgcmlqIEJSRURFUiBpcyBkYW4gZGUgdGl0ZWwgcGx1cyA1MjBweCBwbHVzIGRlIGtub3BwZW4sIGlzIGVyIHJ1aW10ZSBvdmVyLFxuICAgIC8vIGVuIGRpZSBob29ydCBhYW4gQkVJREUga2FudGVuIHRlIHZhbGxlbi4gWm9uZGVyIGRlemUgdHdlZSBhdXRvLW1hcmdlcyB2YWx0IGhpalxuICAgIC8vIGhlbGVtYWFsIHJlY2h0cyB2YW4gZGUgYmFsayBlbiBzdGFhdCBkZSBiYWxrIGR1cyBsaW5rcyB2YW4gaGV0IG1pZGRlbi4gS2ltIHZyb2VnIG9tXG4gICAgLy8gZWVuIGdlY2VudHJlZXJkZSBiYWxrICgzMS4wNy4yMDI2KS5cbiAgICAvL1xuICAgIC8vIFdhdCBkaXQgQkVXVVNUIG5pZXQgZG9ldDogZGUgYmFsayBleGFjdCBpbiBoZXQgbWlkZGVuIHZhbiBoZXQgVkVOU1RFUiB6ZXR0ZW4uIERhdFxuICAgIC8vIHpvdSBiZXRla2VuZW4gZGF0IGhpaiB1aXQgZGUgZmxvdyBtb2V0ICh6b2FscyBkZSB0aXRlbCBvbmRlciBhbGlnbj1cImNlbnRlclwiIGRvZXQgbWV0XG4gICAgLy8gcG9zaXRpb246IGFic29sdXRlKSwgZW4gZGFuIGthbiBoaWogb3AgZWVuIHNtYWxsZSB0YWJsZXQgb3ZlciBkZSB0aXRlbCBvZiBvdmVyIGRlXG4gICAgLy8ga25vcHBlbiBoZWVuIHZhbGxlbi4gRGl0IGNlbnRyZWVydCBoZW0gaW4gZGUgcnVpbXRlIHR1c3NlbiBkZSB0aXRlbCBlbiBkZSBrbm9wcGVuLCBlblxuICAgIC8vIGRpZSBrYW4gcGVyIGRlZmluaXRpZSBuaWV0IG92ZXJsYXBwZW4uXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgJjplbXB0eSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuICAgIC8vIFdoYXRldmVyIGdldHMgc2xvdHRlZCBpbiAoYSBxZG5hcHJvLWlucHV0KSBmaWxscyB0aGUgc2xvdCdzIG93biBncm93blxuICAgIC8vIHdpZHRoIGluc3RlYWQgb2Ygc2l0dGluZyBhdCBpdHMgb3duIGludHJpbnNpYyBzaXplIGluc2lkZSBhIGNlbnRlcmVkXG4gICAgLy8gYm94IC0gb3RoZXJ3aXNlIFwiZmxleDogMSAxIGF1dG9cIiBvbiAucWFoLXNlYXJjaCB3b3VsZCBncm93IHRoZSBlbXB0eVxuICAgIC8vIHNwYWNlIGFyb3VuZCBhIHNtYWxsIGlucHV0IHJhdGhlciB0aGFuIHRoZSBpbnB1dCBpdHNlbGYuXG4gICAgPiAqIHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4vLyBhbGlnbj1cInN0YXJ0XCI6IC5xYWgtc2VhcmNoIGlzIGEgbm9ybWFsIGZsZXggc2libGluZyBvZiAucWFoLXRpdGxlLWNsdXN0ZXIsXG4vLyBzbyB3aXRob3V0IHRoaXMgcnVsZSBib3RoIHdvdWxkIGJlIGZsZXg6IDEgMSBhdXRvIGFuZCBzcGxpdCB0aGUgcm93J3Ncbi8vIGdyb3d0aCAxLWZvci0xIHRoZSBtb21lbnQgYSBzY3JlZW4gc2xvdHMgc29tZXRoaW5nIGludG8gLnFhaC1zZWFyY2ggLSB0aGVcbi8vIHRpdGxlIHdvdWxkIHNpbGVudGx5IGxvc2UgaGFsZiBpdHMgd2lkdGguIFRoZSB0aXRsZSdzIFBPU0lUSU9OIG5ldmVyXG4vLyBjaGFuZ2VzIGVpdGhlciB3YXkgKGl0IHN0aWxsIHNpdHMgZGlyZWN0bHkgYWZ0ZXIgdGhlIGJhY2sgYnV0dG9uLCB0aGlzIGlzXG4vLyBhIHdpZHRoIGZsZXhib3ggc3BsaXQsIG5vdCBhIHJlZmxvdyB0aGF0IG1vdmVzIGl0KSAtIGJ1dCBLaW0ncyBhc2sgd2FzXG4vLyB0aGF0IHRoZSB0aXRsZSBkb2VzIG5vdCByZWFjdCBhdCBhbGwgdG8gYSBzZWFyY2ggYmFyIGFwcGVhcmluZywgc28gZ2l2ZVxuLy8gYWxsIG9mIHRoZSByb3cncyBncm93dGggdG8gc2VhcmNoIGluc3RlYWQgb25jZSBpdCBpcyBhY3R1YWxseSBwb3B1bGF0ZWQuXG4vLyBhbGlnbj1cImNlbnRlclwiIGlzIHVudG91Y2hlZCBieSB0aGlzOiAucWFoLXRpdGxlLWNsdXN0ZXIgaXMgdGFrZW4gb3V0IG9mXG4vLyBmbG93IGVudGlyZWx5IHZpYSBwb3NpdGlvbjphYnNvbHV0ZSAoc2VlIHRoZSBhbGlnbj1cImNlbnRlclwiIHNlY3Rpb25cbi8vIGJlbG93KSwgc28gZmxleC1ncm93IHdhcyBuZXZlciBkb2luZyBhbnl0aGluZyBmb3IgaXQgdGhlcmUgdG8gYmVnaW4gd2l0aC5cbi5xYWgtcm93OmhhcygucWFoLXNlYXJjaDpub3QoOmVtcHR5KSkgLnFhaC10aXRsZS1jbHVzdGVyIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbn1cblxuLy8g4pSA4pSAIFpvZWtiYWxrIGVjaHQgZ2VjZW50cmVlcmQgb3AgZGUga29wLCB2YW5hZiAxMDI0cHgg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBLbHVzIDRhIChiZXNsdWl0IDc2LCBTQ09QRS1wd2EtaW5ib3gubWQpOiBoaWVyYm92ZW4gc3RhYXQgLnFhaC1zZWFyY2ggbm9nIGluXG4vLyBkZSBmbG93LCBtZXQgYXV0by1tYXJnZXMuIERhdCBjZW50cmVlcnQgZGUgYmFsayBpbiBkZSBSVUlNVEUgdHVzc2VuIGRlXG4vLyB0aXRlbC1jbHVzdGVyIGVuIGRlIGFjdGllcywgbmlldCBvcCBkZSBrb3AgemVsZjogem9kcmEgZGllIHR3ZWUga2FudGVuXG4vLyBvbmdlbGlqayB3ZWdlbiAoYmlqdm9vcmJlZWxkIGVlbiBsZWFkaW5nLWtub3AgbGlua3MsIGdlZW4gTm92YSByZWNodHMpXG4vLyBzdGFhdCBkZSBiYWxrIG1lZXRiYWFyIG5hYXN0IGhldCBlY2h0ZSBtaWRkZW4uIERhdCBrYW4gYWxsZWVuIGtsb3BwZW4gZG9vclxuLy8gZGUgYmFsayB1aXQgZGUgZmxvdyB0ZSBoYWxlbiBlbiBwb3NpdGllIHRlIGdldmVuIGxvcyB2YW4gemlqbiBidXJlbiwgZW4gZGF0XG4vLyBtYWcgcGFzIHZhbmFmIHRhYmxldC1icmVlZC1lbi1ncm90ZXIgKDEwMjRweCksIGRlemVsZmRlIG9uZGVyZ3JlbnMgYWxzIGRlXG4vLyByZXN0IHZhbiBkaXQgc2xvdCBhbCBnZWJydWlrdCAoemllIGRlIHNsb3QtY29tbWVudCBpbiBkZSBKUykuXG4vL1xuLy8gVGVjaG5pZWs6IC5xYWgtc2VhcmNoIGtyaWpndCBlZW4gc3ltbWV0cmlzY2hlIGxpbmtzL3JlY2h0cy1pbnpldFxuLy8gKC0tcWFoLXNlYXJjaC1ndXR0ZXIpIHJvbmQgaGV0IG1pZGRlbiB2YW4gZGUgUklKIChuaWV0IHZhbiBkZSByZXN0ZXJlbmRlXG4vLyBmbGV4LXJ1aW10ZSksIGVuIGJlaG91ZHQgemlqbiBiZXN0YWFuZGUgbWF4LXdpZHRoICsgbWFyZ2luOmF1dG8gdmFuXG4vLyBoaWVyYm92ZW4uIEJpaiBlZW4gYXV0by1icmVlZHRlIGJveCBtZXQgem93ZWwgbGVmdCBhbHMgcmlnaHQgZ2V6ZXQsIGtyaW1wdFxuLy8gZGUgYnJvd3NlciBkZSBib3ggdG90IG1heC13aWR0aCBlbiB2ZXJkZWVsdCBkZSB0d2VlIGF1dG8tbWFyZ2VzIGRlIHJlc3Rcbi8vIGdlbGlqayAtIGRlemVsZmRlIGNlbnRyZWVydHJ1YywgbnUgdG9lZ2VwYXN0IG9wIGVlbiBhYnNvbHV1dCBlbGVtZW50IGluXG4vLyBwbGFhdHMgdmFuIGVlbiBmbGV4LWl0ZW0uIEhldCBraW5kIGVyaW4gKGA+ICpgIGhpZXJib3ZlbikgYmxpamZ0IHdpZHRoOjEwMCVcbi8vIHZhbiBESUUgZ2Vrcm9tcGVuIGJveCwgZHVzIGRlIGJhbGsgemVsZiBpcyBub29pdCBicmVkZXIgZGFuIG1heC13aWR0aCBlblxuLy8gemlqbiBrbGlrYmFyZSB2bGFrIGlzIGV4YWN0IHppam4gemljaHRiYXJlIHZsYWsgLSBnZWVuIG9uemljaHRiYXJlXG4vLyBoaXQtYm94IGRpZSBlcm5hYXN0IGxpZ3QgdGUgd2FjaHRlbi5cbi8vXG4vLyBUaXRlbC1jbHVzdGVyIGtyaWpndCBoaWVyIGVlbiBtYXgtd2lkdGg6IHpvZHJhIGRlIGJhbGsgbmlldCBtZWVyIG1lZWJ1aWd0XG4vLyBtZXQgZGUgcmVzdCB2YW4gZGUgcmlqLCBncm9laXQgZGUgdGl0ZWwtY2x1c3RlciAoZmxleDogMCAxIGF1dG8gaGllcmJvdmVuKVxuLy8gb25nZXJlbWQgZG9vciB0b3QgemlqbiBlaWdlbiB0ZWtzdGJyZWVkdGUgLSBkYXQga29uIGVlcnN0IG5pZXQgb3ZlciBkZSBiYWxrXG4vLyBoZWVuIGxvcGVuIG9tZGF0IGRlIGJhbGsgbGV0dGVybGlqayBkZSBydWltdGUgZXJuYWFzdCBvcGVpc3RlLiBab25kZXIgZWVuXG4vLyBlaWdlbiBwbGFmb25kIGthbiBlZW4gbGFuZ2UgdGl0ZWwgbnUgd8OpbCBvbmRlciBkZSBnZWNlbnRyZWVyZGUgYmFsa1xuLy8gZG9vcmxvcGVuLiBEZSB3YWFyZGVuIHppam4gZWVuIHR1bmFibGUgdmVpbGlnaGVpZHNtYXJnZSwgbmV0IGFsc1xuLy8gLS1xYWgtY2VudGVyLWd1dHRlciBiaWogYWxpZ249XCJjZW50ZXJcIiBoaWVyYm92ZW4gLSBnZWVuIG1ldGluZyB2YW4gZGVcbi8vIHdlcmtlbGlqa2UgaW5ob3VkIChsZWFkaW5nLWtub3AgT0YgdGVydWcta25vcCBsaW5rcywgYWN0aWVzICsgZXZlbnR1ZWVsXG4vLyBOb3ZhIHJlY2h0cyksIG1hYXIgcnVpbSBnZW5vZWcgb20gZGF0IG5vb2l0IHRlIHJha2VuOyBlZW4gbGFuZ2UgdGl0ZWxcbi8vIGRlZ3JhZGVlcnQgZGFhcm5hIGdld29vbiB2aWEgemlqbiBiZXN0YWFuZGUgZWxsaXBzaXMuXG4vL1xuLy8gQWN0aWVzL05vdmEga3JlZ2VuIGh1biByZWNodGVyLXBsZWsgdm9vcmhlZW4gZ3JhdGlzIG1lZTogLnFhaC1zZWFyY2hcbi8vIChmbGV4OiAxIDEgYXV0bykgY29uc3VtZWVyZGUgYWxsZSByZXN0ZXJlbmRlIHJ1aW10ZSwgZHVzIGFsbGVzIHdhdCBlcm5hXG4vLyBrd2FtIHN0b25kIHZhbnplbGYgdGVnZW4gZGUgcmFuZC4gWm9kcmEgZGUgYmFsayB1aXQgZGUgZmxvdyB2ZXJkd2lqbnQgaXMgZXJcbi8vIGdlZW4gZW5rZWwgZmxleC1pdGVtIG1lZXIgZGF0IGdyb2VpdCwgZHVzIHpvbmRlciBkZXplIHJlZ2VsIHpvdSBlciBlZW5cbi8vIGthbGUgbGVlZ3RlIG9udHN0YWFuIHR1c3NlbiB0aXRlbC1jbHVzdGVyIGVuIGFjdGllcyAtIG1hcmdpbi1sZWZ0OmF1dG8gb3Bcbi8vIGRlIGVlcnN0ZSBuaWV0LWxlZ2UgdmFuIGRlIHR3ZWUgKDplbXB0eSB2YW5ndCBkZSBhbmRlcmUgYWwgYWYsIHppZSBkZVxuLy8gYmVzdGFhbmRlIHJlZ2VsIGhpZXJib3ZlbiBiaWogLnFhaC1hY3Rpb25zLy5xYWgtbm92YSkgemV0IHplIHdlZXIgdGVydWdcbi8vIHRlZ2VuIGRlIHJhbmQuXG4vL1xuLy8gQWxsZWVuIGFsaWduPVwic3RhcnRcIiAoZGVmYXVsdCk6IGFsaWduPVwiY2VudGVyXCIgaGFhbHQgZGUgdGl0ZWwtY2x1c3RlciBhbFxuLy8gb3AgemlqbiBlaWdlbiBtYW5pZXIgdWl0IGRlIGZsb3cgKHppZSBkaWUgc2VjdGllIHZlcmRlcm9wKSBlbiBkZSBjb21iaW5hdGllXG4vLyB0aXRlbCArIGJhbGsgb25kZXIgYWxpZ249XCJjZW50ZXJcIiBpcyBleHBsaWNpZXQgbmlldCBnZWJydWlrdC9nZXRlc3QgKHppZSBkZVxuLy8gc2xvdC1jb21tZW50IGluIGRlIEpTKSAtIGR1cyBkZXplIHJlZ2VscyByYWtlbiBkYXQgcGFkIGJld3VzdCBuaWV0IGFhbi5cbi8vIFtLaW0gMzEuMDcuMjAyNl1cbi5xZG5hcHJvLWFwcC1oZWFkZXIucWFoLWFsaWduLXN0YXJ0IHtcbiAgICAtLXFhaC1zZWFyY2gtZ3V0dGVyOiAzMnB4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLnFkbmFwcm8tYXBwLWhlYWRlci5xYWgtYWxpZ24tc3RhcnQgLnFhaC1yb3c6aGFzKC5xYWgtc2VhcmNoOm5vdCg6ZW1wdHkpKSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAucWFoLXNlYXJjaCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IHZhcigtLXFhaC1zZWFyY2gtZ3V0dGVyKTtcbiAgICAgICAgICAgIHJpZ2h0OiB2YXIoLS1xYWgtc2VhcmNoLWd1dHRlcik7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICAucWFoLXRpdGxlLWNsdXN0ZXIge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxNDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5xYWgtYWN0aW9ucyxcbiAgICAgICAgLnFhaC1ub3ZhIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MHB4KSB7XG4gICAgLnFkbmFwcm8tYXBwLWhlYWRlci5xYWgtYWxpZ24tc3RhcnQgLnFhaC1yb3c6aGFzKC5xYWgtc2VhcmNoOm5vdCg6ZW1wdHkpKSAucWFoLXRpdGxlLWNsdXN0ZXIge1xuICAgICAgICBtYXgtd2lkdGg6IDI2MHB4O1xuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDE0NDBweCkge1xuICAgIC5xZG5hcHJvLWFwcC1oZWFkZXIucWFoLWFsaWduLXN0YXJ0IC5xYWgtcm93OmhhcygucWFoLXNlYXJjaDpub3QoOmVtcHR5KSkgLnFhaC10aXRsZS1jbHVzdGVyIHtcbiAgICAgICAgbWF4LXdpZHRoOiAzNDBweDtcbiAgICB9XG59XG5cbi8vIEFjdGlvbnMgKyBOb3ZhIHNsb3QgY29udGFpbmVycyDigJQgY29sbGFwc2UgdG8gbm90aGluZyB3aGVuIHRoZSBjb25zdW1lclxuLy8gbGVhdmVzIHRoZW0gZW1wdHkgKG5vIHNsb3R0ZWQgY2hpbGRyZW4gbW92ZWQgaW4pLCBzbyBhbiB1bnVzZWQgc2xvdCBuZXZlclxuLy8gbGVhdmVzIGEgZ2FwLlxuLnFhaC1hY3Rpb25zLFxuLnFhaC1ub3ZhIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcblxuICAgICY6ZW1wdHkgeyBkaXNwbGF5OiBub25lOyB9XG59XG5cbi8vIENvbnRleHQgc3RyaXAg4oCUIGZ1bGwgd2lkdGgsIHVuZGVyIHRoZSBtYWluIHJvdyAoZGF5LWNhcm91c2VsLCBwcm9ncmVzcykuXG4vLyBDb2xsYXBzZXMgdG8gemVybyBoZWlnaHQgd2hlbiBlbXB0eS5cbi5xYWgtY29udGV4dCB7XG4gICAgJjplbXB0eSB7IGRpc3BsYXk6IG5vbmU7IH1cbn1cblxuLy8g4pSA4pSAIG1vZGU9XCJzZWxlY3Rpb25cIiBlbGVtZW50cyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIENhbmNlbCwgY291bnQgYW5kIHNlbGVjdC1hbGw6IGhpZGRlbiBieSBkZWZhdWx0IChtb2RlPVwiZGVmYXVsdFwiKSwgc2hvd25cbi8vIG9ubHkgdW5kZXIgLnFhaC1tb2RlLXNlbGVjdGlvbiBiZWxvdy4gQWx3YXlzIHByZXNlbnQgaW4gdGhlIERPTSDigJQgbmV2ZXJcbi8vIGNyZWF0ZWQvZGVzdHJveWVkIG9uIG1vZGUgc3dpdGNoIOKAlCBzYW1lIG5vbi1kZXN0cnVjdGl2ZSBjb250cmFjdCBhcyB0aGVcbi8vIGJhY2svdGl0bGUvYWN0aW9ucy9ub3ZhIGVsZW1lbnRzIHRoZXkgcmVwbGFjZS5cbi5xYWgtY2FuY2VsIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4ucWFoLXNlbGVjdGlvbi1jb3VudCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICBjb2xvcjogdmFyKC0tcWFoLXNlbGVjdGlvbi1mZyk7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcblxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLy8gU2VsZWN0LWFsbCBzaXRzIHdoZXJlIC5xYWgtYWN0aW9ucy8ucWFoLW5vdmEgbm9ybWFsbHkgd291bGQgKHJpZ2h0IGVkZ2UpLlxuLy8gQSBURVhUIGJ1dHRvbiAocWRuYXByby1idXR0b24pLCBub3QgYW4gaWNvbi1idXR0b24g4oCUIHNlZSB0aGUgZmlsZS1oZWFkZXJcbi8vIGp1c3RpZmljYXRpb246IG5vIGljb24gcmVhZHMgdW5hbWJpZ3VvdXNseSBhcyBcInNlbGVjdCBhbGxcIiB0aGUgd2F5IGFuXG4vLyBhcnJvdy1sZWZ0L2Nsb3NlIGljb24gZG9lcyBmb3IgYmFjay9jYW5jZWwuXG4ucWFoLXNlbGVjdGlvbi1hY3Rpb25zIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi8vIOKUgOKUgCBhbGlnbj1cImNlbnRlclwiIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gQ2VudGVycyB0aGUgdGl0bGUgY2x1c3RlciAodGl0bGUvc3VidGl0bGUgKyBvcHRpb25hbCBzbG90PVwiYXZhdGFyXCIpIGFzIG9uZVxuLy8gYmxvY2ssIG9wdGljYWxseSBjZW50ZXJlZCBvbiB0aGUgRlVMTCBiYXIgd2lkdGggLSBub3Qgb24gd2hhdGV2ZXIgc3BhY2Vcbi8vIGhhcHBlbnMgdG8gYmUgbGVmdCBvdmVyIGJldHdlZW4gdGhlIGJhY2sgYnV0dG9uIGFuZCB0aGUgYWN0aW9ucy9ub3ZhXG4vLyBncm91cC4gVGhhdCBkaXN0aW5jdGlvbiBtYXR0ZXJzOiB0aGUgXCJvYnZpb3VzXCIgZml4IChnaXZlIC5xYWgtdGl0bGUtXG4vLyBjbHVzdGVyIGZsZXg6IDEgbGlrZSBpdCBhbHJlYWR5IGhhcywgcGx1cyB0ZXh0LWFsaWduOiBjZW50ZXIpIG9ubHlcbi8vIGNlbnRlcnMgdGhlIHRpdGxlIFdJVEhJTiB0aGUgbGVmdG92ZXIgc3BhY2UgYmV0d2VlbiB0aGUgdHdvIGVkZ2VzLCB3aGljaFxuLy8gdmlzaWJseSBkcmlmdHMgb2ZmIHRoZSBiYXIncyB0cnVlIGNlbnRyZSB0aGUgbW9tZW50IHRob3NlIHR3byBlZGdlcyBhcmVcbi8vIGRpZmZlcmVudCB3aWR0aHMgKGUuZy4gYSBiYWNrIGJ1dHRvbiBvbiB0aGUgbGVmdCB3aXRoIG5vdGhpbmcgb24gdGhlXG4vLyByaWdodCAtIGV4YWN0bHkgdGhlIFBXQSBob21lLWhlYWRlciBjYXNlKS4gQWJzb2x1dGUgcG9zaXRpb25pbmcgYW5jaG9yZWRcbi8vIHdpdGggYSBzeW1tZXRyaWMgbGVmdC9yaWdodCBndXR0ZXIgaXMgaW1tdW5lIHRvIHRoYXQgYXN5bW1ldHJ5OiB0aGUgYm94XG4vLyBzcGFucyAoZ3V0dGVyKSB0byAoMTAwJSAtIGd1dHRlciksIHdoaWNoIGlzIGNlbnRlcmVkIG9uIHRoZSByb3dcbi8vIHJlZ2FyZGxlc3Mgb2Ygd2hhdCB0aGUgYmFjayBidXR0b24gb3IgYWN0aW9ucy9ub3ZhIGhhcHBlbiB0byB3ZWlnaC5cbi8vXG4vLyBUaGUgZ3V0dGVyIGlzIGEgdHVuYWJsZSBTQUZFVFkgTUFSR0lOLCBub3QgYSBtZWFzdXJlbWVudCBvZiB0aGUgYWN0dWFsXG4vLyBiYWNrL2FjdGlvbnMgY29udGVudCAtIGEgc2NyZWVuIHdpdGggbW9yZSB0aGFuIG9uZSBhY3Rpb24gaWNvbiBvbiBhbiBlZGdlXG4vLyBtYXkgbmVlZCBhIGxhcmdlciAtLXFhaC1jZW50ZXItZ3V0dGVyIChvdmVycmlkZSBvbiB0aGUgaG9zdCk7IHRoZSB0aXRsZVxuLy8gc3RpbGwgZGVncmFkZXMgZ3JhY2VmdWxseSB2aWEgaXRzIGV4aXN0aW5nIGVsbGlwc2lzIGlmIGl0IGRvZXNuJ3QuXG4ucWRuYXByby1hcHAtaGVhZGVyLnFhaC1hbGlnbi1jZW50ZXIge1xuICAgIC0tcWFoLWNlbnRlci1ndXR0ZXI6IDYwcHg7XG5cbiAgICAucWFoLXJvdyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAvLyBUYWtlbiBvdXQgb2YgdGhlIHJvdydzIGZsZXgtZmlsbCAodGhlIHRpdGxlIGNsdXN0ZXIgaXMgYWJzb2x1dGVseVxuICAgIC8vIHBvc2l0aW9uZWQgaW5zdGVhZCksIHNvIG1hcmdpbi1sZWZ0OiBhdXRvIGlzIHdoYXQgbm93IHBpbnMgdGhlXG4gICAgLy8gYWN0aW9ucy9ub3ZhIGdyb3VwIHRvIHRoZSByaWdodCBlZGdlIC0gdGhlIHNhbWUgam9iIC5xYWgtdGl0bGUtXG4gICAgLy8gY2x1c3RlcidzIGZsZXg6IDEgdXNlZCB0byBkbyBpbiBhbGlnbj1cInN0YXJ0XCIuIDplbXB0eSBhbHJlYWR5XG4gICAgLy8gY29sbGFwc2VzIGVpdGhlciBvbmUgdG8gZGlzcGxheTogbm9uZSAoc2VlIGFib3ZlKSwgc28gd2hpY2hldmVyIG9mXG4gICAgLy8gdGhlIHR3byBpcyBmaXJzdC1hbmQtdmlzaWJsZSBpcyB0aGUgb25lIHRoYXQgYWN0dWFsbHkgYWJzb3JicyB0aGVcbiAgICAvLyBzcGFjZTsgdGhlIG90aGVyJ3MgbWFyZ2luLWxlZnQ6IGF1dG8gaXMgdGhlbiBhIG5vLW9wLlxuICAgIC5xYWgtYWN0aW9ucyxcbiAgICAucWFoLW5vdmEge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAucWFoLXRpdGxlLWNsdXN0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiB2YXIoLS1xYWgtY2VudGVyLWd1dHRlcik7XG4gICAgICAgIHJpZ2h0OiB2YXIoLS1xYWgtY2VudGVyLWd1dHRlcik7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLy8gT3ZlcnJpZGVzIHRoZSBkZWZhdWx0IGZsZXg6IDEgMSBhdXRvICh3aGljaCBmaWxscyB0aGUgcm93J3MgbGVmdG92ZXJcbiAgICAvLyBzcGFjZSBpbiBhbGlnbj1cInN0YXJ0XCIpIHdpdGggZmxleDogMCAxIGF1dG8g4oCUIGNhbiBzdGlsbCBTSFJJTksgKHNvIGFcbiAgICAvLyBsb25nIHRpdGxlIHN0aWxsIGVsbGlwc2l6ZXMgYWdhaW5zdCB0aGUgZ3V0dGVyLWJvdW5kIGJveCksIGJ1dCBub1xuICAgIC8vIGxvbmdlciBHUk9XUy4gV2l0aG91dCB0aGlzLCB0aGUgdGl0bGUgd291bGQgZmlsbCB0aGUgd2hvbGUgY2x1c3RlclxuICAgIC8vIGJveCBhbmQgdGV4dC1hbGlnbjogY2VudGVyIHdvdWxkIGNlbnRlciBpdCBpbnNpZGUgdGhhdCBvdmVyc2l6ZWQgYm94XG4gICAgLy8gaW5zdGVhZCBvZiBzbnVnIGFnYWluc3QgdGhlIGF2YXRhciDigJQgdGhlIHBhaXIgbmVlZHMgdG8gc2hyaW5rLXdyYXAgc29cbiAgICAvLyAucWFoLXRpdGxlLWNsdXN0ZXIncyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciBjZW50ZXJzIHRpdGxlICsgYXZhdGFyXG4gICAgLy8gdG9nZXRoZXIgYXMgb25lIHRpZ2h0IHVuaXQsIG5vdCB0aGUgdGl0bGUgYWxvbmUgZmxvYXRpbmcgbWlkLWJveC5cbiAgICAucWFoLXRpdGxlcyB7XG4gICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLy8gVGhlIGFic29sdXRlbHkgcG9zaXRpb25lZCBjbHVzdGVyIGlzIGEgV0lERSBvdmVybGF5IChndXR0ZXIgdG8gZ3V0dGVyKSxcbiAgICAvLyBzbyBpdCBwYWludHMgb24gdG9wIG9mIHRoZSBpbi1mbG93IGJhY2svYWN0aW9ucyBzaWJsaW5ncy4gSXRzIGVtcHR5XG4gICAgLy8gc3RyZXRjaGVzIHdvdWxkIHRoZW4gc2lsZW50bHkgc3dhbGxvdyB0YXBzIG9uIGFueSBhY3Rpb24gYnV0dG9uIHRoYXRcbiAgICAvLyByZWFjaGVzIHBhc3QgLS1xYWgtY2VudGVyLWd1dHRlciAodHdvIGljb24gYnV0dG9ucyBvbiBvbmUgZWRnZSBhbHJlYWR5XG4gICAgLy8gZG8pLiBBIGRlYWQgb3ZlcmxheSBlYXRpbmcgY2xpY2tzIGlzIGEgbmFzdGllciBmYWlsdXJlIHRoYW4gYSB0aXRsZVxuICAgIC8vIGRyaWZ0aW5nIGEgZmV3IHBpeGVscywgc28gdGhlIGNsdXN0ZXIgaXRzZWxmIGlzIHRyYW5zcGFyZW50IHRvIHBvaW50ZXJzXG4gICAgLy8gYW5kIG9ubHkgdGhlIHJlYWwgY29udGVudCBpbnNpZGUgaXQgdGFrZXMgdGhlbSBiYWNrLlxuICAgIC5xYWgtdGl0bGUtY2x1c3RlciB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC5xYWgtdGl0bGVzLFxuICAgIC5xYWgtYXZhdGFyIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAucWRuYXByby1hcHAtaGVhZGVyLnFhaC1hbGlnbi1jZW50ZXIge1xuICAgICAgICAtLXFhaC1jZW50ZXItZ3V0dGVyOiA3NnB4O1xuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5xZG5hcHJvLWFwcC1oZWFkZXIucWFoLWFsaWduLWNlbnRlciB7XG4gICAgICAgIC0tcWFoLWNlbnRlci1ndXR0ZXI6IDkycHg7XG4gICAgfVxufVxuXG4vLyDilIDilIAgbW9kZT1cInNlbGVjdGlvblwiIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gUmVwbGFjZXMgdGhlIG5vcm1hbCByb3cgY29udGVudCB3aXRoIGNvdW50ICsgY2FuY2VsICsgc2VsZWN0LWFsbC4gVGhlXG4vLyBzd2FwIGlzIENTUy1vbmx5IChkaXNwbGF5Om5vbmUsIG5vdGhpbmcgcmVtb3ZlZCBmcm9tIHRoZSBET00pLCB3aGljaCBpc1xuLy8gd2hhdCBtYWtlcyBsZWF2aW5nIHNlbGVjdGlvbiBtb2RlIG5vbi1kZXN0cnVjdGl2ZSBmb3Igc2xvdHRlZCBjb250ZW50OlxuLy8gLnFhaC1hY3Rpb25zLy5xYWgtbm92YS8ucWFoLWF2YXRhciAoaW5zaWRlIC5xYWgtdGl0bGUtY2x1c3Rlcikgc3RpbGxcbi8vIGhvbGQgd2hhdGV2ZXIgdGhlIGhvc3Qgc2xvdHRlZCBpbiwganVzdCBoaWRkZW4g4oCUIHRoZXkgcmVhcHBlYXIgZXhhY3RseVxuLy8gYXMgdGhleSB3ZXJlIHRoZSBtb21lbnQgbW9kZSBnb2VzIGJhY2sgdG8gXCJkZWZhdWx0XCIuIFRoZSBjb250ZXh0IHNsb3Rcbi8vICgucWFoLWNvbnRleHQpIGlzIE5PVCB0b3VjaGVkIGhlcmUg4oCUIGl0IHN0YXlzIHZpc2libGUgaW4gc2VsZWN0aW9uIG1vZGVcbi8vIG9ubHkgaWYgaXQgYWxyZWFkeSB3YXMgKGl0cyBvd24gOmVtcHR5IHJ1bGUgYWJvdmUgaXMgdW5hZmZlY3RlZCkuXG4vL1xuLy8gUGxhY2VkIGFmdGVyIC5xYWgtdmFyaWFudC10cmFuc3BhcmVudCBhbmQgLnFhaC1hbGlnbi1jZW50ZXIgb24gcHVycG9zZTpcbi8vIHNhbWUgc2VsZWN0b3Igc3BlY2lmaWNpdHkgKHR3byBob3N0IGNsYXNzZXMpLCBzbyB0aGlzIGJsb2NrIHdpbnMgdGhlXG4vLyBjYXNjYWRlIHdoZW4gbW9kZT1cInNlbGVjdGlvblwiIGlzIGNvbWJpbmVkIHdpdGggZWl0aGVyIG9mIHRob3NlLCB3aGljaFxuLy8gbWF0Y2hlcyB0aGUgaW50ZW50IHRoYXQgXCJ5b3UgYXJlIHNlbGVjdGluZ1wiIGlzIHRoZSBoZWFkZXIncyBkb21pbmFudFxuLy8gdmlzdWFsIHN0YXRlLlxuLnFkbmFwcm8tYXBwLWhlYWRlci5xYWgtbW9kZS1zZWxlY3Rpb24ge1xuICAgIC8vIFdJVCwgbmlldCBsaWNodHBhYXJzIChLaW0gMjkuMDcuMjAyNiwgbmEgaGFhciB0b2VzdGVsdGVzdCB2YW4gZGUgUFdBLWluYm94OlxuICAgIC8vIFwiaGVhZGVyIG5pZXQgbGljaHRwYWFycyBtYWFyIHdpdCBsYXRlbiB6aWVuXCIpLiBIZXQgdmxhayB3YXMgLS1jLXB1cnBsZS01MCBlblxuICAgIC8vIGRhdCB2b2NodCBtZXQgZGUgbGljaHRwYWFyc2UgZ2VzZWxlY3RlZXJkZSByaWplbiBlcm9uZGVyOiBkYW4gaXMgbmlldCBtZWVyIHRlXG4gICAgLy8gemllbiB3YWFyIGRlIGtvcCBvcGhvdWR0IGVuIGRlIHNlbGVjdGllIGJlZ2ludC5cbiAgICAvLyBEZSBPTkRFUlJBTkQgaXMgbmlldCBsYW5nZXIgcGFhcnMgKEtpbSAzMS4wNy4yMDI2OiBcImRpZSBsZWxpamtlIGRvbmtlciBwYWFyc2VcbiAgICAvLyBib3JkZXIgd2VnaGFsZW4sIGdld29vbiBlZW4gbW9vaSBncmlqcyB0aW50amVcIikuIERlIHJhbmQgdmFsdCB0ZXJ1ZyBvcCBkZVxuICAgIC8vIHN0YW5kYWFyZHdhYXJkZSB2YW4gaGV0IGNvbXBvbmVudCAocmVnZWwgMzQgaGllcmJvdmVuKSwgZGV6ZWxmZGVcbiAgICAvLyAtLWMtYm9yZGVyLXNvZnQgZGllIC5pbmJveF92aWV3X19zZWx0b29sYmFyIGVlbiByaWogbGFnZXIgb29rIGFsIGdlYnJ1aWt0LFxuICAgIC8vIGR1cyBkZSB0d2VlIGhhYXJsaWpuZW4gbWF0Y2hlbiBudS4gSGV0IHBhYXJzZSBBQU5UQUwgZW4gZGUgcGFhcnNlIEFDVElFU1xuICAgIC8vIGJsaWp2ZW4gd2VsIHN0YWFuICgtLXFhaC1zZWxlY3Rpb24tZmcsIHZlcmRlcm9wIG9uZ2Vtb2VpZCkgZW4gZGF0IGlzIG5vZ1xuICAgIC8vIHN0ZWVkcyBnZW5vZWcgc2lnbmFhbCBkYXQgamUgaW4gZWVuIGFuZGVyZSBzdGFuZCB6aXQsIHpvbmRlciBoZXQgaGVsZSB2bGFrXG4gICAgLy8gb2YgZGUgcmFuZCB0ZSBrbGV1cmVuLlxuICAgIC8vIERpdCBpcyBoZXQgY29tcG9uZW50LWdlZHJhZywgZ2VlbiB1aXR6b25kZXJpbmcgdm9vciBkZSBpbmJveDogZGllIGlzIHZhbmRhYWdcbiAgICAvLyBkZSBlbmlnZSBnZWJydWlrZXIgdmFuIG1vZGU9XCJzZWxlY3Rpb25cIiAobmFnZWtla2VuKSwgZHVzIGRpdCBJUyBkZSBrZXV6ZS5cbiAgICAtLXFhaC1iZzogdmFyKC0tYy1iZy1jYXJkLCAjZmZmZmZmKTtcbiAgICAtLXFhaC1ib3JkZXItY29sb3I6IHZhcigtLWMtYm9yZGVyLXNvZnQsIHJnYmEoMCwgMCwgMCwgMC4wNykpO1xuXG4gICAgLy8gLnFhaC1zZWFyY2ggaGlkZXMgaGVyZSBmb3IgdGhlIHNhbWUgcmVhc29uIC5xYWgtYWN0aW9ucy8ucWFoLW5vdmEgZG86XG4gICAgLy8gc2VsZWN0aW9uIG1vZGUgcmVwbGFjZXMgdGhlIHdob2xlIHJvdydzIGNvbnRlbnQgd2l0aCBjYW5jZWwvY291bnQvXG4gICAgLy8gc2VsZWN0LWFsbCwgc28gYSBzZWFyY2ggZmllbGQgaGFzIG5vIG1vcmUgYnVzaW5lc3Mgc2hvd2luZyB0aGFuIHRoZVxuICAgIC8vIHRpdGxlIG9yIHRoZSBhY3Rpb24gYnV0dG9ucyBkby4gTm9uLWRlc3RydWN0aXZlIGxpa2UgdGhlIHJlc3Q6IHRoZVxuICAgIC8vIHNsb3R0ZWQgY29udGVudCBpcyBqdXN0IGRpc3BsYXk6bm9uZSdkLCBub3QgcmVtb3ZlZCwgc28gaXQgcmVhcHBlYXJzXG4gICAgLy8gZXhhY3RseSBhcy1pcyBvbmNlIHNlbGVjdGlvbiBtb2RlIGVuZHMuIFtLaW0gMzEuMDcuMjAyNl1cbiAgICAucWFoLWJhY2ssXG4gICAgLnFhaC10aXRsZS1jbHVzdGVyLFxuICAgIC5xYWgtbGVhZGluZyxcbiAgICAucWFoLXNlYXJjaCxcbiAgICAucWFoLWFjdGlvbnMsXG4gICAgLnFhaC1ub3ZhIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAucWFoLWNhbmNlbCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgLnFhaC1zZWxlY3Rpb24tY291bnQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAucWFoLXNlbGVjdGlvbi1hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG59XG5cbi8vIOKUgOKUgCBSZXNwb25zaXZlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gUGhvbmUtZmlyc3Q7IGEgbGl0dGxlIG1vcmUgYnJlYXRoaW5nIHJvb20gb24gdGFibGV0L2Rlc2t0b3Agd2lkdGhzIHNvIHRoZVxuLy8gaGVhZGVyIGRvZXNuJ3QgbG9vayBjcmFtcGVkIG9uIHdpZGVyIHNjcmVlbnMgdGhlIFBXQSBhbHNvIGhhcyB0byBzdXBwb3J0LlxuQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgLnFhaC1yb3cge1xuICAgICAgICBwYWRkaW5nOiA2cHggMjBweDtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgIH1cblxuICAgIC5xYWgtdGl0bGUgeyBmb250LXNpemU6IDE5cHg7IH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5xYWgtcm93IHtcbiAgICAgICAgcGFkZGluZzogOHB4IDMycHg7XG4gICAgfVxufVxuIiwiLy8gcWRuYXByby1zd2lwZS1yb3cg4oCUIHJvdy1hZ25vc3RpYyBzd2lwZSB3cmFwcGVyOiBjb250ZW50IGxheWVyIG9uIHRvcCwgdHdvXG4vLyBlZGdlLWFuY2hvcmVkIGFjdGlvbi1idXR0b24gcm93cyB1bmRlcm5lYXRoIChvbmx5IHRoZSBjdXJyZW50bHkgYWN0aXZlXG4vLyBzaWRlIGlzIGV2ZXIgZXhwb3NlZCwgYnkgbmF0dXJlIG9mIHRoZSBjb250ZW50IHNsaWRpbmcgb3ZlciBpdCDigJQgc2VlIHRoZVxuLy8gSlMgaGVhZGVyIGNvbW1lbnQgZm9yIHRoZSBmdWxsIG1vZGVsKS4gRkxBVCBDU1M7IGNvbG91cnMvcmFkaWkgZnJvbSB0aGVcbi8vIGRlc2lnbi10b2tlbiA6cm9vdCAodmFyKC0tYy0qKSkuIEVkaXQgSEVSRSwgdGhlbiBgZ3VscCBzYXNzLXYxYCArIHRoZVxuLy8gcmVzb3VyY2VfdHJpZ2dlciBidW1wIChzZWUgcWRuYS1jb21wb25lbnQtcHJldmlld3Mgc2tpbGwgLyB0YXNrIGhhbmQtb2ZmKS5cbi8vXG4vLyBESVJFQ1RJT04gUkVNSU5ERVIgKHNlZSBxZG5hLXN3aXBlLXJvdy5qcyBoZWFkZXIgZm9yIHRoZSBmdWxsIGNvbnRyYWN0KTpcbi8vIGAucXNyLXBhbmVsLWxlZnRgIGlzIHJldmVhbGVkIGJ5IGEgTEVGVCBzd2lwZSBvZiB0aGUgQ09OVEVOVCwgc28gaXQgaXNcbi8vIGFuY2hvcmVkIHRvIHRoZSBSSUdIVCBlZGdlIG9mIHRoZSByb3cuIGAucXNyLXBhbmVsLXJpZ2h0YCBpcyB0aGUgbWlycm9yIOKAlFxuLy8gcmV2ZWFsZWQgYnkgYSBSSUdIVCBzd2lwZSwgYW5jaG9yZWQgdG8gdGhlIExFRlQgZWRnZS5cbi8vXG4vLyBXSEFUU0FQUC9PVVRMT09LIFJFREVTSUdOICgyOS4wNy4yMDI2KTogdGhlIE9MRCB2ZXJzaW9uIGNlbnRlcmVkIGEgc2luZ2xlXG4vLyBpY29uK2xhYmVsIGluc2lkZSBhIGZ1bGwtcm93IHBhbmVsLCBzbyBhIHNob3J0IHN3aXBlIHJldmVhbGVkIG5vdGhpbmcg4oCUXG4vLyB0aGUgdXNlciBvbmx5IHNhdyB3aGF0IHRoZSBhY3Rpb24gd2FzIG9uY2UgdGhleSdkIGRyYWdnZWQgaGFsZndheSBhY3Jvc3Ncbi8vIHRoZSByb3cuIEVhY2ggYWN0aW9uIG5vdyBnZXRzIGl0cyBPV04gZml4ZWQtd2lkdGggYnV0dG9uLCBhbmNob3JlZCB0byB0aGVcbi8vIGVkZ2UgdGhlIGNvbnRlbnQgcmVjZWRlcyBmcm9tLCBzbyB0aGUgdmVyeSBmaXJzdCBwaXhlbHMgb2YgYSBkcmFnIGFscmVhZHlcbi8vIHNob3cgYSBnbHlwaC4gJHFzci1idXR0b24td2lkdGggYmVsb3cgTVVTVCBzdGF5IGluIHN5bmMgd2l0aFxuLy8gUUROQV9TV0lQRV9ST1dfQlVUVE9OX1dJRFRIIGluIHFkbmEtc3dpcGUtcm93LmpzLlxuJHFzci1idXR0b24td2lkdGg6IDgwcHg7XG5cbi5xZG5hcHJvLXN3aXBlLXJvdyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgLyogTGV0IHRoZSBicm93c2VyIGtlZXAgb3duaW5nIHZlcnRpY2FsIHNjcm9sbGluZyBhdCBhbGwgdGltZXMg4oCUIHRoZVxuICAgICAgIGNvbXBvbmVudCdzIG93biBheGlzLWxvY2sgZGVjaWRlcyB3aGV0aGVyIGEgZ2l2ZW4gZ2VzdHVyZSBpcyBob3Jpem9udGFsXG4gICAgICAgYmVmb3JlIGl0IGV2ZXIgY2FsbHMgcHJldmVudERlZmF1bHQuICovXG4gICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICBpc29sYXRpb246IGlzb2xhdGU7IC8qIGtlZXAgdGhlIHBhbmVsL2NvbnRlbnQgc3RhY2tpbmcgbG9jYWwgdG8gdGhpcyByb3cgKi9cbn1cblxuLyogQ29udGVudCBsYXllciDigJQgd2hhdGV2ZXIgdGhlIGhvc3Qgc2xvdHRlZCBpbiwgdW5tb2RpZmllZC4gQWx3YXlzIHBhaW50ZWRcbiAgIHdpdGggaXRzIG93biBvcGFxdWUgYmFja2dyb3VuZCAoZGVmYXVsdCB2YXIoLS1jLWJnLWNhcmQpKSBzbyBhXG4gICB0cmFuc3BhcmVudCBjaGlsZCBuZXZlciBsZXRzIGEgYnV0dG9uJ3MgYmFja2dyb3VuZCBzaG93IHRocm91Z2gsIGV2ZW4gYXRcbiAgIHJlc3QgKG5vdCBqdXN0IHdoaWxlIC5zd2lwaW5nIGlzIHByZXNlbnQpLiBBIGNvbnN1bWVyIGNhbiByZXRpbnQgdGhpcyBwZXJcbiAgIGluc3RhbmNlIHZpYSBzdHlsZT1cIi0tcXNyLWNvbnRlbnQtYmc6IC4uLlwiLiAqL1xuLnFkbmFwcm8tc3dpcGUtcm93IC5xc3ItY29udGVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcXNyLWNvbnRlbnQtYmcsIHZhcigtLWMtYmctY2FyZCkpO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG59XG5cbi8qIEFjdGlvbiBwYW5lbHMg4oCUIGFuY2hvcmVkIHRvIHRoZSBlZGdlIHRoZSBjb250ZW50IHJlY2VkZXMgRlJPTSwgc2l6ZWQgdG9cbiAgIGV4YWN0bHkgdGhlIGN1cnJlbnRseSByZXZlYWxlZCB3aWR0aCAoc2V0IGlubGluZSBieSB0aGUgSlM6IHJlc3Rpbmcgd2lkdGhcbiAgID0gc3VtIG9mIHRoYXQgc2lkZSdzIGJ1dHRvbiB3aWR0aHM7IGdyb3dzIHRvIG1hdGNoIHRoZSBsaXZlIGRyYWcgZGlzdGFuY2VcbiAgIG9uY2UgaXQgZXhjZWVkcyB0aGF0KS4gQmVjYXVzZSB0aGUgcGFuZWwgaXMgbmV2ZXIgd2lkZXIgdGhhbiB3aGF0J3NcbiAgIGFjdHVhbGx5IGV4cG9zZWQsIHRoZSBPVVRFUk1PU1QgYnV0dG9uIChmbHVzaCBhZ2FpbnN0IHRoZSB0cnVlIGVkZ2UpIGlzXG4gICB0aGUgdmVyeSBmaXJzdCB0aGluZyBhIGRyYWcgcmV2ZWFscyDigJQgbm8gZGVhZCBmdWxsLXJvdyBzcGFjZSB0byBjcm9zc1xuICAgYmVmb3JlIGFueXRoaW5nIGJlY29tZXMgdmlzaWJsZS4gKi9cbi5xZG5hcHJvLXN3aXBlLXJvdyAucXNyLXBhbmVsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICB6LWluZGV4OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5xZG5hcHJvLXN3aXBlLXJvdyAucXNyLXBhbmVsLWxlZnQge1xuICAgIHJpZ2h0OiAwO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IC8qIGdyb3VwIGZsdXNoIGFnYWluc3QgdGhlIHRydWUgcmlnaHQgZWRnZSAqL1xufVxuLnFkbmFwcm8tc3dpcGUtcm93IC5xc3ItcGFuZWwtcmlnaHQge1xuICAgIGxlZnQ6IDA7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyAvKiBncm91cCBmbHVzaCBhZ2FpbnN0IHRoZSB0cnVlIGxlZnQgZWRnZSAqL1xufVxuLnFkbmFwcm8tc3dpcGUtcm93IC5xc3ItcGFuZWwtZW1wdHkge1xuICAgIHdpZHRoOiAwICFpbXBvcnRhbnQ7XG59XG5cbi8qIEVhY2ggYnV0dG9uIGlzIGEgUkVBTCA8YnV0dG9uPiwgb3duaW5nIGl0cyBvd24gZml4ZWQtd2lkdGggYm94IOKAlCBpY29uIGFuZFxuICAgbGFiZWwgc2l0IElOU0lERSB0aGF0IGJveCwgbmV2ZXIgY2VudGVyZWQgb24gdGhlIHJvdy4gVGhpcyBpcyB0aGUgd2hvbGVcbiAgIHBvaW50IG9mIHRoZSByZWRlc2lnbi4gU3RyZXRjaGVzIHRvIHRoZSByb3cncyBmdWxsIGhlaWdodCAoY29tZm9ydGFibHlcbiAgIG92ZXIgdGhlIDQ0cHggbWluaW11bSB0YXBwYWJsZSB0YXJnZXQgb24gYW55IHJlYWwgcm93KS4gQnV0dG9ucyBhcmUgb25seVxuICAgaW4gdGhlIHRhYiBvcmRlciAvIHJlYWNoYWJsZSBieSBBVCB3aGlsZSB0aGVpciBzaWRlIGlzIG9wZW4g4oCUIHNlZSB0aGVcbiAgIHRhYmluZGV4L2FyaWEtaGlkZGVuIGhhbmRsaW5nIGluIHRoZSBKUy4gKi9cbi5xZG5hcHJvLXN3aXBlLXJvdyAucXNyLXBhbmVsLWJ0biB7XG4gICAgZmxleDogMCAwICRxc3ItYnV0dG9uLXdpZHRoO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogMnB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7IC8qIGNvbG91ciBjb21lcyBmcm9tIHRoZSAucXNyLWNvbG9yLSogbW9kaWZpZXIgYmVsb3cgKi9cbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZmLCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IGZsZXgtYmFzaXMgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLFxuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdyAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksXG4gICAgICAgICAgICAgICAgb3BhY2l0eSAwLjE1cyBlYXNlO1xufVxuLnFkbmFwcm8tc3dpcGUtcm93IC5xc3ItcGFuZWwtYnRuOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgICBvdXRsaW5lLW9mZnNldDogLTNweDtcbn1cblxuLnFkbmFwcm8tc3dpcGUtcm93IC5xc3ItcGFuZWwtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLyogSWNvbiBncm93cyBzbGlnaHRseSBvbmNlIHRoZSBkcmFnIGNyb3NzZXMgdGhlIGNvbW1pdCB0aHJlc2hvbGQsIHNvIHRoZVxuICAgdXNlciBjYW4gZmVlbCB0aGUgY29tbWl0IHBvaW50IGJlZm9yZSByZWxlYXNpbmcuICovXG4ucWRuYXByby1zd2lwZS1yb3cgLnFzci1wYW5lbC1pY29uIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZTtcbn1cbi5xZG5hcHJvLXN3aXBlLXJvdy5xc3ItY29tbWl0dGluZyAucXNyLXBhbmVsLWljb24ge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xNik7XG59XG5cbi8qIFN0YWdlIDIg4oCUIGNvbW1pdDogcGFzdCB0aGUgYHRocmVzaG9sZGAgZHJhZyBkaXN0YW5jZSwgdGhlIHNlY29uZGFyeVxuICAgYnV0dG9uKHMpIG9uIHRoZSBBQ1RJVkUgc2lkZSBjb2xsYXBzZSBhd2F5IGFuZCB0aGUgTUFJTiBidXR0b24gKHRoZVxuICAgb3V0ZXJtb3N0IC8gbGFzdC1jb25maWd1cmVkIGVudHJ5KSBleHBhbmRzIHRvIGZpbGwgdGhlIHdob2xlIHJldmVhbGVkXG4gICB3aWR0aCwgc28gcmVsZWFzaW5nIGhlcmUgZmlyZXMgaXQgaW1tZWRpYXRlbHkgd2l0aG91dCBhIHRhcC4gU2NvcGVkIHRvXG4gICB0aGUgY3VycmVudGx5IGRyYWdnaW5nIGRpcmVjdGlvbiBzbyB0aGUgaWRsZSBzaWRlIGlzIG5ldmVyIGFmZmVjdGVkLiAqL1xuLnFkbmFwcm8tc3dpcGUtcm93LnFzci1jb21taXR0aW5nLnFzci1kaXItbGVmdCAucXNyLXBhbmVsLWxlZnQgLnFzci1wYW5lbC1idG46bm90KC5xc3ItYnRuLW1haW4pIHtcbiAgICBmbGV4OiAwIDAgMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tc3dpcGUtcm93LnFzci1jb21taXR0aW5nLnFzci1kaXItcmlnaHQgLnFzci1wYW5lbC1yaWdodCAucXNyLXBhbmVsLWJ0bjpub3QoLnFzci1idG4tbWFpbikge1xuICAgIGZsZXg6IDAgMCAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby1zd2lwZS1yb3cucXNyLWNvbW1pdHRpbmcucXNyLWRpci1sZWZ0IC5xc3ItcGFuZWwtbGVmdCAucXNyLWJ0bi1tYWluLFxuLnFkbmFwcm8tc3dpcGUtcm93LnFzci1jb21taXR0aW5nLnFzci1kaXItcmlnaHQgLnFzci1wYW5lbC1yaWdodCAucXNyLWJ0bi1tYWluIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbn1cblxuLyogQ29sb3VyIHZvY2FidWxhcnkg4oCUIGEgc21hbGwgbmFtZWQgc2V0LCBtYXBwZWQgdG8gRklYRUQgcHJpbWl0aXZlcyAobm90IHRoZVxuICAgbGlmdGVkIC0tYy1icmFuZC1wdXJwbGUpIHNvIGEgYnV0dG9uIHJlYWRzIHRoZSBleGFjdCBzYW1lIGFjY2VudCBpbiBsaWdodFxuICAgYW5kIGRhcmsgbW9kZSwgc2FtZSBjb252ZW50aW9uIGFzIHFkbmFwcm8tYm90dG9tLXNoZWV0J3MgcHVycGxlIHZhcmlhbnRcbiAgICgtLWMtcHVycGxlLTUwMCwgZGVsaWJlcmF0ZWx5IG5vdCAtLWMtYnJhbmQtcHVycGxlKS4gXCJ5ZWxsb3dcIiBpcyBuZXdcbiAgICgyOS4wNy4yMDI2LCBmbGFnZ2luZykgYW5kIG1hcHMgdG8gdGhlIGV4aXN0aW5nIHdhcm4vZmxhZyByYW1wIHRva2VuXG4gICAtLWMtd2Fybi15ZWxsb3ctNTAwIOKAlCBwYWlyZWQgd2l0aCAtLWMtc2lnbmFsLXllbGxvdy10ZXh0IGZvciB0aGUgbGFiZWwsXG4gICBzaW5jZSB3aGl0ZSB0ZXh0IG9uIHRoYXQgcGFydGljdWxhciB5ZWxsb3cgZmFpbHMgY29udHJhc3QgKHNhbWUgcGFpcmluZ1xuICAgcWRuYXByby1hbnN3ZXItYnV0dG9uIGFuZCBxZG5hcHJvLXNjb3JlLXNjYWxlIGFscmVhZHkgdXNlIGZvciB3YXJuaW5nXG4gICB5ZWxsb3cpLiBOZXZlciBhIHJhdyBoZXguICovXG4ucWRuYXByby1zd2lwZS1yb3cgLnFzci1jb2xvci1wdXJwbGUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS01MDApOyB9XG4ucWRuYXByby1zd2lwZS1yb3cgLnFzci1jb2xvci1ncmV5ICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTAwKTsgfVxuLnFkbmFwcm8tc3dpcGUtcm93IC5xc3ItY29sb3ItcmVkICAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy13YXJuLXJlZC01MDApOyB9XG4ucWRuYXByby1zd2lwZS1yb3cgLnFzci1jb2xvci1ncmVlbiAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1Y2Nlc3MtYnJpZ2h0KTsgfVxuLnFkbmFwcm8tc3dpcGUtcm93IC5xc3ItY29sb3IteWVsbG93IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdhcm4teWVsbG93LTUwMCk7XG4gICAgY29sb3I6IHZhcigtLWMtc2lnbmFsLXllbGxvdy10ZXh0LCAjYmY3MjAyKTtcbn1cblxuLyogcHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogbm8gYm91bmNlL3NjYWxlL2NvbGxhcHNlLWFuaW1hdGlvbiDigJQgdGhlIEpTIGl0c2VsZlxuICAgc3dpdGNoZXMgZXZlcnkgc2V0dGxlL2Rpc21pc3MgdHJhbnNpdGlvbiB0byBpbnN0YW50ICh0cmFuc2l0aW9uOiBub25lKVxuICAgaW5saW5lOyB0aGVzZSBydWxlcyBhcmUgdGhlIENTUy1kcml2ZW4gYmFja3N0b3AgZm9yIHRoZSB0cmFuc2l0aW9ucyB0aGF0XG4gICBhcmVuJ3QgaW5saW5lICh0aGUgaWNvbidzIGNvbW1pdC1zY2FsZSwgYW5kIHRoZSBidXR0b24gY29sbGFwc2UvZXhwYW5kXG4gICBhYm92ZSksIHNvIHRoZXkganVtcCBpbnN0ZWFkIG9mIGVhc2luZy4gKi9cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLnFkbmFwcm8tc3dpcGUtcm93IC5xc3ItcGFuZWwtaWNvbixcbiAgICAucWRuYXByby1zd2lwZS1yb3cgLnFzci1wYW5lbC1idG4ge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cbn1cbiIsIi8vIF9saXN0LXJvdy5zY3NzXG4vL1xuLy8gcWRuYXByby1saXN0LXJvdyDigJQgZ2VuZXJpYyBhcHAtd2lkZSBsaXN0IHJvdyAobGVhZGluZyBpY29uLXRpbGUgKyB0aXRsZSArXG4vLyBvcHRpb25hbCBzdWJ0aXRsZSArIHRyYWlsaW5nIHNsb3QpLiBHZW5lcmFsaXNlcyB0aGUgUFdBIGRvY3VtZW50c19yb3dcbi8vIGFuYXRvbXkgKGFwcF9hcGlfcWRuYXYyL3NyYy9SRVgvUmVzb3VyY2VzL1Njc3MvX2RvY3VtZW50cy5zY3NzLCBOT1QgZWRpdGVkXG4vLyBoZXJlKSBzbyBhbnkgc2NyZWVuIGNhbiByZXVzZSBPTkUgY29tcG9uZW50IGluc3RlYWQgb2YgZm9ya2luZyByb3cgbWFya3VwLlxuLy9cbi8vIEZPTlQtV0VJR0hUIERFQ0lTSU9OIChLaW06IGRvY3VtZW50c19yb3cgZmVsdCBcInRvbyBoZWF2eVwiIGF0IDYwMCk6XG4vLyBjcm9zcy1jaGVja2VkIGV2ZXJ5IGV4aXN0aW5nIHJvdy9sYWJlbCBjb21wb25lbnQgaW4gdGhpcyBsaWJyYXJ5IOKAlFxuLy8gICBxZG5hcHJvLXVuaXQtY2FyZCAgLnZpZXctbGlzdC1jb21wYWN0X19uYW1lICAgMTRweCAvIDUwMCAgKHJvdyB0aXRsZSlcbi8vICAgcWRuYXByby11bml0LWNhcmQgIC52aWV3LWxpc3QtbGFyZ2VfX25hbWUgICAgICAxNHB4IC8gNjAwICAoQklHR0VSIHRvdWNoIHJvdywgZGVsaWJlcmF0ZSBlbXBoYXNpcylcbi8vICAgcWRuYXByby1ib3R0b20tbmF2IC5fX2xhYmVsICAgICAgICAgICAgICAgICAgICAxMHB4IC8gNTAwICAocm93L25hdiBsYWJlbClcbi8vICAgcWRuYXByby1ldmVudC1jYXJkIC5fX3RpdGxlIChzaXplPVwic21hbGxcIikgICAgIDEycHggLyA1MDAgIChLaW0sIDE2LjA3LjIwMjY6IGRpYWxsZWQgYmFjayBmcm9tIHRoZVxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdCA2MDAgZm9yIGV4YWN0bHkgdGhpcyBcInRvbyBoZWF2eSBmb3IgYSBzbWFsbFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93XCIgY29tcGxhaW50IOKAlCBkaXJlY3QgcHJlY2VkZW50IGZvciB0aGlzIGRlY2lzaW9uKVxuLy8gICBxZG5hcHJvLW1lbnUtaXRlbSAgLm1lbnUtaXRlbS1sYWJlbCAgICAgICAgICAgIDE0cHgsIE5PIHdlaWdodCBvdmVycmlkZSAoaW5oZXJpdHMgcmVndWxhci80MDApXG4vLyBOb25lIG9mIHRoZSBwbGFpbiBcIm9uZSByb3cgaW4gYSBsaXN0XCIgY29udGV4dHMgdXNlIDYwMCDigJQgb25seSBxZG5hcHJvLWV2ZW50LWNhcmQncyBvd24gZGVmYXVsdFxuLy8gKGEgY29sb3VyZWQgY2FsZW5kYXIgQ0FSRC9jaGlwLCBub3QgYSBwbGFpbiByb3cpIGFuZCB1bml0LWNhcmQncyBiaWdnZXIgXCJsaXN0LWxhcmdlXCIgcm93IGRvLiBTb1xuLy8gcWxyLXRpdGxlIGZvbGxvd3MgdGhlIHJvdyBjb252ZW50aW9uOiAxNHB4IC8gNTAwIChtZWRpdW0pLiBTdWJ0aXRsZSBmb2xsb3dzIHRoZSBtdXRlZC1tZXRhXG4vLyBjb252ZW50aW9uIHVzZWQgZXZlcnl3aGVyZSAoZXZlbnQtY2FyZCBtZXRhLXRleHQsIGRvY3VtZW50c19yb3dfX21ldGEsIHFhaC1zdWJ0aXRsZSk6IDEycHggLyA0MDAuXG5cbi5xZG5hcHJvLWxpc3Qtcm93IHtcbiAgICAtLXFsci1iZy1ob3ZlcjogdmFyKC0tYy1iZy1zdWJ0bGUtaG92ZXIsICNmNWY2ZjgpO1xuICAgIC0tcWxyLWJnLXByZXNzZWQ6IHZhcigtLWMtcHVycGxlLXNvZnQtMTIsIHJnYmEoNjQsIDczLCAxNTQsIDAuMTIpKTtcbiAgICAtLXFsci1ib3JkZXI6IHZhcigtLWMtYm9yZGVyLXNvZnQsIHJnYmEoMCwgMCwgMCwgMC4wNykpO1xuICAgIC0tcWxyLXRpdGxlLWNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZywgIzFhMWY0ZCk7XG4gICAgLS1xbHItc3VidGl0bGUtY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gICAgLS1xbHItY2hldnJvbi1jb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbiAgICAtLXFsci1mb2N1cy1yaW5nOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSk7XG4gICAgLS1xbHItZm9jdXMtZ2xvdzogdmFyKC0tYy1wdXJwbGUtc29mdC0xOCwgcmdiYSg2NCwgNzMsIDE1NCwgMC4xOCkpO1xuICAgIC8vIFNldHRpbmdzLXBhZ2UgYXR0cmlidXRlcyAoMjguMDcuMjAyNikg4oCUIGRlZmF1bHQgY29sb3VyIGZvciB0aGUgYmFyZVxuICAgIC8vIGdseXBoIHNob3duIGJ5IHRpbGU9XCJub25lXCIgKGJyYW5kIHB1cnBsZSwgcGVyIEtpbSdzIHNwZWMpLCBvdmVycmlkZGVuXG4gICAgLy8gYnkgdGhlIGB0b25lYCBtb2RpZmllcnMgYmVsb3cuIEtlcHQgYXMgaXRzIG93biBjdXN0b20gcHJvcGVydHkgKG5vdFxuICAgIC8vIHJldXNpbmcgLS1xbHItdGlsZS1mZywgd2hpY2ggc3RheXMgb3duZWQgYnkgdGhlIGB0aW50YCBwYWxldHRlKSBzb1xuICAgIC8vIHRpbGU9XCJub25lXCIgbmV2ZXIgYWNjaWRlbnRhbGx5IGluaGVyaXRzIGEgdGludCBjb2xvdXIuXG4gICAgLS1xbHItYmFyZS1pY29uLWNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSk7XG4gICAgLy8gV2FhcnNjaHV3aW5nc2tub3AgKDA1LjA4LjIwMjYpLiBaZWxmZGUgYW1iZXItcGFhciBhbHMgZGUgXCJ1bnB1Ymxpc2hlZFwiXG4gICAgLy8gd2FhcnNjaHV3aW5nIHZhbiBxZG5hcHJvLWFjdGl2aXR5LXJvdyAoLS1jLXdhcm4tYW1iZXItNTAwLzYwMCksIHpvZGF0IGVlblxuICAgIC8vIHBhZ2luYSBtZXQgYmVpZGUgc29vcnRlbiByaWplbiDDqcOpbiB3YWFyc2NodXdpbmdza2xldXIgaGVlZnQgZW4gbmlldCB0d2VlXG4gICAgLy8gbmV0LW5pZXQtZ2VsaWprZSBvcmFuamVzLiBEZSBob3Zlci12dWxsaW5nIGlzIGRlIGJlc3RhYW5kZSB6YWNodGVcbiAgICAvLyBzaWduYWFsLW9yYW5qZSB1aXQgZGUgdG9rZW5zLCBnZWVuIG5pZXV3IGhhbmRnZXByaWt0IGhleGplLlxuICAgIC0tcWxyLXdhcm5pbmctY29sb3I6IHZhcigtLWMtd2Fybi1hbWJlci01MDAsICNkOTc3MDYpO1xuICAgIC0tcWxyLXdhcm5pbmctY29sb3ItaG92ZXI6IHZhcigtLWMtd2Fybi1hbWJlci02MDAsICNiNDUzMDkpO1xuICAgIC0tcWxyLXdhcm5pbmctYmctaG92ZXI6IHZhcigtLWMtc2lnbmFsLW9yYW5nZS1iZywgI2ZkZWFkYyk7XG4gICAgLy8gU2VhcmNoLWhpZ2hsaWdodCA8bWFyaz4gKDMwLjA3LjIwMjYsIFBXQSBpbmJveCBzZWFyY2ggcmVzdWx0cykuIEFcbiAgICAvLyBTRUxGLUNPTlRBSU5FRCBwYWlyIOKAlCBkZWxpYmVyYXRlbHkgTk9UIHZhcigtLWMtdGV4dC1oZWFkaW5nKSBmb3IgdGhlXG4gICAgLy8gdGV4dCBjb2xvdXIsIGV2ZW4gdGhvdWdoIGl0cyBsaWdodC1tb2RlIHZhbHVlIGlzIHVzZWQgYmVsb3csIGJlY2F1c2VcbiAgICAvLyAtLWMtdGV4dC1oZWFkaW5nIEZMSVBTIHRvIGEgbGlnaHQgZ3JleSBpbiBbZGF0YS10aGVtZT1kYXJrXSB3aGlsZVxuICAgIC8vIC0tYy1zaWduYWwteWVsbG93LWJnIGhhcyBubyBkYXJrLW1vZGUgb3ZlcnJpZGUgYXQgYWxsIChzYW1lIGFzIGV2ZXJ5XG4gICAgLy8gLS1jLXRhZy0qLWJnLy10ZXh0IHBpbGwgcGFpciBpbiBfZGVzaWduLXRva2Vucy5zY3NzKSDigJQgcmVhZGluZyB0aGVcbiAgICAvLyByZWFjdGl2ZSB0b2tlbiBoZXJlIHdvdWxkIHNpbGVudGx5IHByb2R1Y2UgbmVhci1pbnZpc2libGUgbGlnaHQtb24tXG4gICAgLy8gbGlnaHQgdGV4dCBpbiBkYXJrIG1vZGUuIFNvIHRoaXMgbWlycm9ycyB0aGUgLS1jLXRhZy0qIGNvbnZlbnRpb25cbiAgICAvLyBpbnN0ZWFkOiBvbmUgaGFuZC1waWNrZWQsIHRoZW1lLUlOREVQRU5ERU5UIHBhaXIgdGhhdCByZWFkcyB0aGUgc2FtZVxuICAgIC8vIGluIGJvdGggdGhlbWVzLCBleGFjdGx5IGxpa2UgYSB0YWcvcGlsbC4gTWVhc3VyZWQgY29udHJhc3QgKFdDQUdcbiAgICAvLyByZWxhdGl2ZS1sdW1pbmFuY2UgZm9ybXVsYSwgY29tcHV0ZWQgd2l0aCBweXRob24zLCBub3QgZXllYmFsbGVkKTpcbiAgICAvLyAjZmVlZGI4IGJnIHZzICMxYTFmNGQgdGV4dCA9IDEzLjM4OjEg4oCUIGNsZWFycyB0aGUgV0NBRyAxLjQuMyBBQVxuICAgIC8vIG1pbmltdW0gKDQuNToxKSBmb3IgYm90aCB0aGUgMTRweC81MDAgdGl0bGUgYW5kIHRoZSAxMnB4LzQwMCBzdWJ0aXRsZVxuICAgIC8vIHdpdGggd2lkZSBtYXJnaW4gKGFsc28gY2xlYXJzIEFBQSdzIDc6MSkuIC0tYy1zaWduYWwteWVsbG93LXRleHRcbiAgICAvLyAodGhlIHRpbGUgcGFsZXR0ZSdzIG93biB5ZWxsb3cgZm9yZWdyb3VuZCkgd2FzIG1lYXN1cmVkIHRvbyBhbmRcbiAgICAvLyBSRUpFQ1RFRCDigJQgb25seSAzLjIwOjEgYWdhaW5zdCB0aGlzIHNhbWUgYmcsIGJlbG93IEFBLlxuICAgIC0tcWxyLW1hcmstYmc6IHZhcigtLWMtc2lnbmFsLXllbGxvdy1iZywgI2ZlZWRiOCk7XG4gICAgLS1xbHItbWFyay1jb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcpO1xuICAgIC8vIFRyZWUgc3VwcG9ydCAoMjEuMDcuMjAyNikg4oCUIHNlbGVjdGVkIHJldXNlcyB0aGUgU0FNRSB0b2tlbnNcbiAgICAvLyAuaXMtcHJlc3NlZCBhbHJlYWR5IHVzZXMgKG5vIGxpZ2h0ZXIgcHVycGxlLXNvZnQgdG9rZW4gZXhpc3RzIHlldDtcbiAgICAvLyByZXVzaW5nIHJhdGhlciB0aGFuIGhhbmQtcGlja2luZyBhIG5ldyBoZXgsIGNvbnNpc3RlbnQgd2l0aCBydWxlIDEuMikuXG4gICAgLS1xbHItYmctc2VsZWN0ZWQ6IHZhcigtLWMtcHVycGxlLXNvZnQtMTIsIHJnYmEoNjQsIDczLCAxNTQsIDAuMTIpKTtcbiAgICAtLXFsci1iZy1zZWxlY3RlZC1ob3ZlcjogdmFyKC0tYy1wdXJwbGUtc29mdC0xOCwgcmdiYSg2NCwgNzMsIDE1NCwgMC4xOCkpO1xuICAgIC8vIERlcHRoIGluZGVudCBzdGVwIOKAlCB0dW5hYmxlIHBlciBjb25zdW1lciAoaW5saW5lIHN0eWxlIG9yIGEgc2NvcGVkXG4gICAgLy8gcnVsZSksIGluZGVwZW5kZW50IG9mIHdoZXRoZXIgdGhlIGBkZXB0aGAgYXR0cmlidXRlIGlzIHVzZWQgYXQgYWxsLlxuICAgIC8vIC0tcWxyLWRlcHRoIGl0c2VsZiBkZWZhdWx0cyB0byAwIGhlcmUgc28gdGhlIGNhbGMoKSBiZWxvdyBpcyBhbHdheXNcbiAgICAvLyB2YWxpZCBldmVuIHdoZW4gcWRuYS1saXN0LXJvdy5qcyBuZXZlciBzZXRzIHRoZSBpbmxpbmUgY3VzdG9tXG4gICAgLy8gcHJvcGVydHkgKHNlZSB0aGUgSlMgZG9jLWNvbW1lbnQncyBcIkRPTSBzdHJ1Y3R1cmUgbm90ZVwiKS5cbiAgICAtLXFsci1kZXB0aDogMDtcbiAgICAtLXFsci1kZXB0aC1zdGVwOiAyMHB4O1xuICAgIC8vIEV4cGFuZC1jaGV2cm9uIHJvdGF0aW9uIGR1cmF0aW9uIOKAlCB6ZXJvZWQgdW5kZXIgcmVkdWNlZCBtb3Rpb24gYmVsb3csXG4gICAgLy8gc2FtZSBpZGlvbSBhcyBxZG5hcHJvLXRhYi1iYXIncyBzbGlkaW5nIHBpbGwgKC0tdGItcGlsbC1kdXJhdGlvbikuXG4gICAgLS1xbHItdG9nZ2xlLWR1cmF0aW9uOiAxODBtcztcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiA0NHB4OyAvLyBXQ0FHL0FwcGxlIEhJRyBtaW5pbXVtIHRvdWNoIHRhcmdldFxuXG4gICAgLy8gYGRpc3BsYXk6IGZsZXhgIG9uIHRoZSBjbGFzcyBzZWxlY3RvciBvdXRyYW5rcyB0aGUgVUEgcnVsZVxuICAgIC8vIGBbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmUgfWAsIHNvIGEgcm93IGhpZGRlbiB2aWEgdGhlIEhUTUwgYGhpZGRlbmBcbiAgICAvLyBhdHRyaWJ1dGUvcHJvcGVydHkgc3RheWVkIHZpc2libGUgKGZvdW5kIDI1LjA4LjIwMjY6IHRoZSBQdWxzZVxuICAgIC8vIFwibWVlcmRlcmUgYW50d29vcmRlbiBqdWlzdFwiIHRvZ2dsZS1yb3cga2VwdCBzaG93aW5nIG9uIGEgcG9sbCkuXG4gICAgLy8gUmVzdG9yZSB0aGUgcGxhdGZvcm0gY29udHJhY3QgZXhwbGljaXRseS5cbiAgICAmW2hpZGRlbl0ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICAvLyBEZXB0aCBpbmRlbnQg4oCUIGFkZGl0aXZlIG9uIHRvcCBvZiB0aGUgYmFzZSAxNnB4IGxlZnQgcGFkZGluZy4gRGVmYXVsdFxuICAgIC8vIC0tcWxyLWRlcHRoOiAwIG1ha2VzIHRoaXMgcmVzb2x2ZSB0byBleGFjdGx5IDE2cHgsIGJ5dGUtZm9yLWJ5dGUgdGhlXG4gICAgLy8gc2FtZSBhcyB0aGUgcGxhaW4gYHBhZGRpbmdgIHNob3J0aGFuZCBhYm92ZSwgc28gbm9uLXRyZWUgY29uc3VtZXJzIHNlZVxuICAgIC8vIG5vIGNoYW5nZSBhdCBhbGwuXG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKDE2cHggKyAodmFyKC0tcWxyLWRlcHRoKSAqIHZhcigtLXFsci1kZXB0aC1zdGVwKSkpO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiB2YXIoLS1xbHItdGl0bGUtY29sb3IpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGJvcmRlcjogMCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDEwMG1zIGVhc2Utb3V0O1xuXG4gICAgJjpob3Zlcjpub3QoLnFsci1kaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1xbHItYmctaG92ZXIpO1xuICAgIH1cblxuICAgICYuaXMtcHJlc3NlZDpub3QoLnFsci1kaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1xbHItYmctcHJlc3NlZCk7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpmb2N1cy12aXNpYmxlLFxuICAgICYuZm9yY2UtZm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgICAgaW5zZXQgMCAwIDAgMnB4IHZhcigtLXFsci1mb2N1cy1yaW5nKSxcbiAgICAgICAgICAgIGluc2V0IDAgMCAwIDVweCB2YXIoLS1xbHItZm9jdXMtZ2xvdyk7XG4gICAgfVxuXG4gICAgJi5xbHItZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gLS0tLSBzdGF0aWMgKDI4LjA3LjIwMjYpIC0tLS1cbiAgICAvLyBQdXJlbHkgaW5mb3JtYXRpb25hbCwgbm9uLWludGVyYWN0aXZlIHJvdyAoZS5nLiBcIlVzZXIgSUQ6ICMxMjNcIikuXG4gICAgLy8gVW5saWtlIC5xbHItZGlzYWJsZWQgYWJvdmUsIHRoaXMgZG9lcyBOT1QgZGltIHRoZSByb3cg4oCUIGZ1bGxcbiAgICAvLyBsZWdpYmlsaXR5IGlzIHRoZSB3aG9sZSBwb2ludCAoc2VlIHFkbmEtbGlzdC1yb3cuanMncyBgc3RhdGljYCBkb2NcbiAgICAvLyBub3RlIGZvciB0aGUgZnVsbCBjb250cmFzdCB3aXRoIGBkaXNhYmxlZGApLiBPbmx5IHN0cmlwcyB0aGVcbiAgICAvLyBpbnRlcmFjdGlvbiBhZmZvcmRhbmNlczogbm8gaG92ZXIvcHJlc3NlZCBiYWNrZ3JvdW5kLCBubyBmb2N1cyByaW5nLFxuICAgIC8vIGRlZmF1bHQgY3Vyc29yLiBUaGUgY29tcG9uZW50IGl0c2VsZiBhbHNvIHJlbW92ZXMgdGFiaW5kZXgvcm9sZSwgc29cbiAgICAvLyA6Zm9jdXMtdmlzaWJsZSBiZWxvdyBpcyBtb3N0bHkgYSBiZWx0LWFuZC1icmFjZXMgcmVzZXQgaW4gY2FzZSBhIGhvc3RcbiAgICAvLyBmb2N1c2VzIHRoZSByb3cgcHJvZ3JhbW1hdGljYWxseS5cbiAgICAmLnFsci1zdGF0aWMge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgICAgICAmLmlzLXByZXNzZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUHJldmlldy1vbmx5IGZvcmNlLXN0YXRlIHV0aWxpdHkgKG1pcnJvcnMgcWRuYXByby1tZW51LWl0ZW0gLyBxZG5hcHJvLWV2ZW50LWNhcmQpLlxuICAgICYuZm9yY2UtaG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1xbHItYmctaG92ZXIpO1xuICAgIH1cbiAgICAmLmZvcmNlLXByZXNzZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1xbHItYmctcHJlc3NlZCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLSBTZWxlY3RlZCAodHJlZSBzdXBwb3J0LCAyMS4wNy4yMDI2KSAtLS0tXG4gICAgLy8gUGVyc2lzdGVudCBcImFjdGl2ZSByb3dcIiBzdGF0ZSwgZGlzdGluY3QgZnJvbSB0aGUgdHJhbnNpZW50XG4gICAgLy8gaG92ZXIvcHJlc3NlZCBzdGF0ZXMgYWJvdmUuIFRpdGxlL3N1YnRpdGxlIGNvbG91cnMgYXJlIHVuY2hhbmdlZCDigJRcbiAgICAvLyAtLXFsci10aXRsZS1jb2xvciAvIC0tcWxyLXN1YnRpdGxlLWNvbG9yIGFscmVhZHkgcmVhZCBsZWdpYmx5IGFnYWluc3RcbiAgICAvLyB0aGlzIHRpbnQgaW4gYm90aCB0aGVtZXMgKHNhbWUgdG9rZW5zIC5pcy1wcmVzc2VkIGFscmVhZHkgcmVsaWVzIG9uLFxuICAgIC8vIG5vIG5ldyBkYXJrLW1vZGUgcnVsZSBuZWVkZWQgaGVyZSkuXG4gICAgJi5xbHItc2VsZWN0ZWQ6bm90KC5xbHItZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcWxyLWJnLXNlbGVjdGVkKTtcbiAgICB9XG4gICAgJi5xbHItc2VsZWN0ZWQ6aG92ZXI6bm90KC5xbHItZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcWxyLWJnLXNlbGVjdGVkLWhvdmVyKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tIFRvbmUgKDI4LjA3LjIwMjYpIC0tLS1cbiAgICAvLyBSZWNvbG91cnMgdGl0bGUvc3VidGl0bGUvdGhlIGJhcmUgZ2x5cGggKHRpbGU9XCJub25lXCIpL3RoZSBidWlsdC1pblxuICAgIC8vIHRyYWlsaW5nIGNoZXZyb24gYnkgb3ZlcnJpZGluZyB0aGUgU0FNRSBjdXN0b20gcHJvcGVydGllcyB0aG9zZVxuICAgIC8vIGVsZW1lbnRzIGFscmVhZHkgcmVhZCAoLS1xbHItdGl0bGUtY29sb3IgLyAtLXFsci1zdWJ0aXRsZS1jb2xvciAvXG4gICAgLy8gLS1xbHItY2hldnJvbi1jb2xvciAvIC0tcWxyLWJhcmUtaWNvbi1jb2xvcikg4oCUIG5vIHBlci1lbGVtZW50IHJ1bGVcbiAgICAvLyBuZWVkZWQsIHRoZSBjYXNjYWRlIGRvZXMgdGhlIHdvcmsuIERlbGliZXJhdGVseSBkb2VzIE5PVCB0b3VjaFxuICAgIC8vIC0tcWxyLXRpbGUtYmcvLS1xbHItdGlsZS1mZyDigJQgdGhlIHRpbnRlZCB0aWxlIGJhY2tncm91bmQgc3RheXMgb3duZWRcbiAgICAvLyBieSBgdGludGAgKHNlZSBxZG5hLWxpc3Qtcm93LmpzJ3MgYHRvbmVgIGRvYyBub3RlKS5cbiAgICAmLnFsci10b25lLWRhbmdlciB7XG4gICAgICAgIC8vIFJldXNlcyAtLWMtc2lnbmFsLXJlZC10ZXh0LCB0aGUgU0FNRSB0b2tlbiAucWxyLXRpbGUtY29sb3ItcmVkJ3NcbiAgICAgICAgLy8gZm9yZWdyb3VuZCBhbHJlYWR5IHVzZXMgYmVsb3csIHJhdGhlciB0aGFuIGEgbmV3IGhhbmQtcGlja2VkIGhleC5cbiAgICAgICAgLS1xbHItdGl0bGUtY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTtcbiAgICAgICAgLS1xbHItc3VidGl0bGUtY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTtcbiAgICAgICAgLS1xbHItY2hldnJvbi1jb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xuICAgICAgICAtLXFsci1iYXJlLWljb24tY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTtcbiAgICB9XG5cbiAgICAmLnFsci10b25lLW11dGVkIHtcbiAgICAgICAgLy8gUmV1c2VzIC0tYy10ZXh0LW11dGVkLCB0aGUgU0FNRSB0b2tlbiAtLXFsci1zdWJ0aXRsZS1jb2xvciBhbHJlYWR5XG4gICAgICAgIC8vIGRlZmF1bHRzIHRvIOKAlCBpdCBoYXMgYSBHTE9CQUwgZGFyay1tb2RlIG92ZXJyaWRlIGluXG4gICAgICAgIC8vIF9kZXNpZ24tdG9rZW5zLnNjc3MsIHNvIG5vIGV4dHJhIFtkYXRhLXRoZW1lPWRhcmtdIHJ1bGUgaXMgbmVlZGVkXG4gICAgICAgIC8vIGZvciB0aGlzIHRvbmUgKGNvbnRyYXN0IHdpdGggdG9uZT1cImRhbmdlclwiIGJlbG93KS4gTk9UIGFuXG4gICAgICAgIC8vIG9wYWNpdHkgcmVkdWN0aW9uIOKAlCBzdGF5cyBmdWxseSBsZWdpYmxlLCBwZXIgS2ltJ3MgcmVxdWlyZW1lbnQuXG4gICAgICAgIC0tcWxyLXRpdGxlLWNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xuICAgICAgICAtLXFsci1zdWJ0aXRsZS1jb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbiAgICAgICAgLS1xbHItY2hldnJvbi1jb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbiAgICAgICAgLS1xbHItYmFyZS1pY29uLWNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xuICAgIH1cbn1cblxuLy8gLS0tLSBTdXJmYWNlOiBvbi1wdXJwbGUgKDAzLjA4LjIwMjYsIEtpbSkgLS0tLVxuLy8gXCJJayB2aW5kIGRlemUga25vcHBlbiBlZW4gYmVldGplIHRlIHZlZWwgY29udHJhc3QgaGViYmVuLiBLdW5uZW4gd2Ugem9yZ2VuXG4vLyBkYXQgZGUgc3VyZmFjZSBrbGV1ciAod2l0KSBkZXplbGZkZSBrbGV1ciBrcmlqZ3QgYWxzIGRlIGtub3BwZW4gaW4gZGUgYm90dG9tXG4vLyBzaGVldC5cIiDigJQgdGhlIFBXQSBsb2NhdGlvbi9kZXBhcnRtZW50IGNob29zZXIgcGFpbnRzIGl0cyBvd24gLS1jLXB1cnBsZS01MDBcbi8vIHNjcmVlbiAocGhvbmUgdGFrZW92ZXIpIG9yIGRpYWxvZyBwYW5lbCwgYW5kIGEgd2hpdGUgcm93cy1jYXJkIG9uIHRvcCBvZiB0aGF0XG4vLyBzaG91dHMuIFRoaXMgcmVjb2xvdXJzIHRoZSByb3cgZm9yIGEgcHVycGxlIHN1cmZhY2UsIHVzaW5nIHRoZSBTQU1FIHRva2VuXG4vLyB2b2NhYnVsYXJ5IHRoZSBwdXJwbGUgYm90dG9tIHNoZWV0IGFscmVhZHkgZXN0YWJsaXNoZWQ6XG4vLyAgIHN1cmZhY2UgICAgICAtLWMtd2hpdGUtMTQgID0gLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi1ncm91cC5ic2JnLW9uLXB1cnBsZVxuLy8gICB0aXRsZSAgICAgICAgLS1jLXRleHQtb24tYWN0aW9uLCBzZWNvbmRhcnkgLS1jLXdoaXRlLTcwXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gLnFkbmFwcm8tZW1wdHktc3RhdGUuZW1wdHktc3RhdGUtb24tcHVycGxlXG4vLyBOYW1pbmcgZm9sbG93cyBxZG5hcHJvLWVtcHR5LXN0YXRlJ3MgYHN1cmZhY2U9XCJvbi1wdXJwbGVcImAgYXR0cmlidXRlLCB3aGljaFxuLy8gdGhlIHZlcnkgc2FtZSBjaG9vc2VyIHRlbXBsYXRlIGFscmVhZHkgdXNlcyBmb3IgaXRzIGVtcHR5IHN0YXRlLlxuLy9cbi8vIFRXTyBlbnRyeSBwb2ludHMsIE9ORSB0b2tlbiBzZXQgKGhlbmNlIHRoZSBzaGFyZWQgc2VsZWN0b3IgbGlzdCByYXRoZXIgdGhhbiBhXG4vLyBtaXhpbiDigJQgdGhpcyBmaWxlIGlzIGNvbXBpbGVkIHN0YW5kYWxvbmUgZm9yIHRoZSBQV0EgYnlcbi8vIGFwcF9hcGlfcWRuYXYyL3N5bmMtdjItY29tcG9uZW50cy5qcyk6XG4vLyAgIC0gYC5xZG5hcHJvLWxpc3Qtcm93LWdyb3VwLS1vbi1wdXJwbGVgIG9uIHRoZSBjYXJkIHdyYXBwZXIsIHdoaWNoIGlzIHdoYXQgYVxuLy8gICAgIGdyb3VwZWQgbGlzdCBuZWVkczogaXQgcGFpbnRzIHRoZSBzdXJmYWNlIEFORCByZWNvbG91cnMgdGhlIHJvd3MgaW5zaWRlLFxuLy8gICAgIHNvIHRoZSBjb25zdW1lciBzZXRzIGV4YWN0bHkgb25lIGNsYXNzICh0aGUgZ3JvdXAgaXMgYSBwbGFpbiB1dGlsaXR5XG4vLyAgICAgY2xhc3MsIG5vdCBhIGN1c3RvbSBlbGVtZW50LCBzbyBpdCBjYW5ub3QgY2FycnkgYW4gYXR0cmlidXRlKS5cbi8vICAgLSBgc3VyZmFjZT1cIm9uLXB1cnBsZVwiYCBvbiBhIHNpbmdsZSByb3cgdGhhdCBzaXRzIG9uIGEgcHVycGxlIHN1cmZhY2Vcbi8vICAgICB3aXRob3V0IGEgZ3JvdXAgY2FyZCBhcm91bmQgaXQuXG4vL1xuLy8gS05PV04gTElNSVQsIGRlbGliZXJhdGVseSBub3Qgc29sdmVkOiB0aGlzIGJsb2NrIGxhbmRzIEFGVEVSIHRoZSBgdG9uZWBcbi8vIG1vZGlmaWVycyB3aXRoIHRoZSBzYW1lIHNwZWNpZmljaXR5LCBzbyBjb21iaW5pbmcgdG9uZT1cImRhbmdlclwiIHdpdGggYW5cbi8vIG9uLXB1cnBsZSBzdXJmYWNlIG1ha2VzIHRoZSBzdXJmYWNlIHdpbiBhbmQgdGhlIHJlZCBzaWduYWwgZGlzYXBwZWFyIChhbmQgaW5cbi8vIFtkYXRhLXRoZW1lPWRhcmtdIHRoZSByZXZlcnNlLCBiZWNhdXNlIHRvbmU9XCJkYW5nZXJcIiBoYXMgaXRzIG93biAzLWNsYXNzIHJ1bGVcbi8vIGJlbG93KS4gTm8gY29uc3VtZXIgY29tYmluZXMgdGhlbSB0b2RheTsgYW4gb24tcHVycGxlIGRhbmdlciB0b2tlbiBwYWlyIGNhblxuLy8gYmUgYWRkZWQgd2hlbiBvbmUgZG9lcy5cbi5xZG5hcHJvLWxpc3Qtcm93LnFsci1zdXJmYWNlLW9uLXB1cnBsZSxcbi5xZG5hcHJvLWxpc3Qtcm93LWdyb3VwLS1vbi1wdXJwbGUgLnFkbmFwcm8tbGlzdC1yb3cge1xuICAgIC8vIElkbGUgc3RheXMgdHJhbnNwYXJlbnQgKHRoZSBncm91cCBjYXJkIGlzIHRoZSBzdXJmYWNlKSwgc28gaG92ZXIvcHJlc3NlZFxuICAgIC8vIFNUQUNLIG9uIHRvcCBvZiB0aGUgZ3JvdXAncyBvd24gMTQlIOKAlCAxMCUvMjIlIGhlcmUgcmVhZHMgYXMgfjIzJS8zMyVcbiAgICAvLyB0b3RhbCwgZGVsaWJlcmF0ZWx5IGNsb3NlIHRvIGJzYi1vbi1wdXJwbGUncyBvd24gMTQlLzIyJSBzdGVwcyBhZ2FpbnN0XG4gICAgLy8gdGhlIGZsYXQgcHVycGxlIHBhbmVsIGl0IHNpdHMgb24uXG4gICAgLS1xbHItYmctaG92ZXI6IHZhcigtLWMtd2hpdGUtMTAsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMCkpO1xuICAgIC0tcWxyLWJnLXByZXNzZWQ6IHZhcigtLWMtd2hpdGUtMjIsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yMikpO1xuICAgIC0tcWxyLWJnLXNlbGVjdGVkOiB2YXIoLS1jLXdoaXRlLTIyLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjIpKTtcbiAgICAtLXFsci1iZy1zZWxlY3RlZC1ob3ZlcjogdmFyKC0tYy13aGl0ZS0yOCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI4KSk7XG4gICAgLS1xbHItYm9yZGVyOiB2YXIoLS1jLXdoaXRlLTE0LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpKTtcbiAgICAtLXFsci10aXRsZS1jb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbiwgI2ZmZmZmZik7XG4gICAgLS1xbHItc3VidGl0bGUtY29sb3I6IHZhcigtLWMtd2hpdGUtNzAsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43MCkpO1xuICAgIC0tcWxyLWNoZXZyb24tY29sb3I6IHZhcigtLWMtd2hpdGUtNzAsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43MCkpO1xuICAgIC8vIHRpbGU9XCJub25lXCIgZ2x5cGggKHRoZSBjaG9vc2VyJ3MgbWFwLW1hcmtlciAvIGRvbWFpbiBwaW5zKTogZnVsbCB3aGl0ZSxcbiAgICAvLyBzYW1lIHdlaWdodCBhcyB0aGUgdGl0bGUgaXQgYmVsb25ncyB0by5cbiAgICAtLXFsci1iYXJlLWljb24tY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24sICNmZmZmZmYpO1xuICAgIC8vIFRoZSBkZWZhdWx0IGZvY3VzIHBhaXIgaXMgYnJhbmQtcHVycGxlIG9uIHB1cnBsZSA9IGludmlzaWJsZS5cbiAgICAtLXFsci1mb2N1cy1yaW5nOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uLCAjZmZmZmZmKTtcbiAgICAvLyBBbWJlciBvcCBwYWFycyBsZWVzdCBuaWV0IGFscyBlZW4gd2FhcnNjaHV3aW5nIG1hYXIgYWxzIHZ1aWwuIE9wIGRpdCB2bGFrXG4gICAgLy8gd29yZHQgZGUgd2FhcnNjaHV3aW5nIGR1cyB3aXQgbWV0IGVlbiBkb29yc2NoaWpuZW5kZSB3aXR0ZSB2dWxsaW5nLCB6ZWxmZGVcbiAgICAvLyB2b2NhYnVsYWlyZSBhbHMgZGUgcmVzdCB2YW4gZGV6ZSB2YXJpYW50LlxuICAgIC0tcWxyLXdhcm5pbmctY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24sICNmZmZmZmYpO1xuICAgIC0tcWxyLXdhcm5pbmctY29sb3ItaG92ZXI6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24sICNmZmZmZmYpO1xuICAgIC0tcWxyLXdhcm5pbmctYmctaG92ZXI6IHZhcigtLWMtd2hpdGUtMjIsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yMikpO1xuICAgIC0tcWxyLWZvY3VzLWdsb3c6IHZhcigtLWMtd2hpdGUtMjIsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yMikpO1xuICAgIC8vIE5PVCB0b3VjaGVkOiAtLXFsci10aWxlLWJnLy0tcWxyLXRpbGUtZmcgKHRoZSBgdGludGAgcGFsZXR0ZSdzIHRpbGVzIGFyZVxuICAgIC8vIGxpZ2h0IHBhc3RlbHMgdGhhdCBhbHJlYWR5IHJlYWQgb24gcHVycGxlKSBhbmQgLS1xbHItbWFyay1iZy8tY29sb3IgKHRoZVxuICAgIC8vIHNlYXJjaC1oaWdobGlnaHQgcGlsbCBpcyBhIHRoZW1lLWluZGVwZW5kZW50IHllbGxvdyBjaGlwIGJ5IGRlc2lnbikuXG59XG5cbi8vIC0tYy1zaWduYWwtcmVkLXRleHQgaGFzIG5vIGdsb2JhbCBkYXJrLW1vZGUgcmVwb2ludCAoc2FtZSBzaXR1YXRpb25cbi8vIC5xbHItdGlsZS1jb2xvci1yZWQgYmVsb3cgaXMgYWxyZWFkeSBpbikg4oCUIHNvIHRvbmU9XCJkYW5nZXJcIiBnZXRzIGl0cyBvd25cbi8vIGNvbXBvbmVudC1sb2NhbCBbZGF0YS10aGVtZT1kYXJrXSBvdmVycmlkZSBoZXJlLCBtaXJyb3JpbmcgdGhlIGV4YWN0XG4vLyBleGlzdGluZyBjb252ZW50aW9uIHRoaXMgZmlsZSBhbHJlYWR5IGVzdGFibGlzaGVkIGZvciB0aGUgdGlsZSBwYWxldHRlLlxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbGlzdC1yb3cucWxyLXRvbmUtZGFuZ2VyIHtcbiAgICAtLXFsci10aXRsZS1jb2xvcjogdmFyKC0tYy13YXJuLXJlZC00MDAsICNmODcxNzEpO1xuICAgIC0tcWxyLXN1YnRpdGxlLWNvbG9yOiB2YXIoLS1jLXdhcm4tcmVkLTQwMCwgI2Y4NzE3MSk7XG4gICAgLS1xbHItY2hldnJvbi1jb2xvcjogdmFyKC0tYy13YXJuLXJlZC00MDAsICNmODcxNzEpO1xuICAgIC0tcWxyLWJhcmUtaWNvbi1jb2xvcjogdmFyKC0tYy13YXJuLXJlZC00MDAsICNmODcxNzEpO1xufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5xZG5hcHJvLWxpc3Qtcm93IHtcbiAgICAgICAgLS1xbHItdG9nZ2xlLWR1cmF0aW9uOiAwbXM7XG4gICAgfVxufVxuXG4vLyAtLS0tIExlYWRpbmcgY2x1c3RlcjogZXhwYW5kLXRvZ2dsZSArIHRpbGUgKHRyZWUgc3VwcG9ydCwgMjEuMDcuMjAyNikgLS0tLVxuLy8gT25seSBldmVyIHJlbmRlcmVkIHdoZW4gYGV4cGFuZGFibGVgIGlzIHNldCAoc2VlIHFkbmEtbGlzdC1yb3cuanMncyBcIkRPTVxuLy8gc3RydWN0dXJlIG5vdGVcIikg4oCUIHRpZ2h0ZXIgaW50ZXJuYWwgZ2FwIHRoYW4gdGhlIHJvdydzIG93biAxMnB4IGdhcCBzb1xuLy8gdGhlIHRvZ2dsZSByZWFkcyBhcyBnbHVlZCB0byB0aGUgdGlsZSBpdCBwcmVjZWRlcy5cbi5xbHItbGVhZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xufVxuXG4vLyBJdHMgb3duIGZvY3VzYWJsZSBkaXNjbG9zdXJlIGNvbnRyb2wgKHJvbGU9YnV0dG9uLCBvd24gdGFiaW5kZXgpIOKAlCBzZWVcbi8vIHRoZSBKUyBkb2MtY29tbWVudCdzIFwiQVJJQSBwYXR0ZXJuXCIgbm90ZSBmb3Igd2h5IGFyaWEtZXhwYW5kZWQgbGl2ZXMgb25cbi8vIHRoZSBST1cgaW5zdGVhZCBvZiBoZXJlLiA0NHB4IGhpdCBhcmVhIChBcHBsZSBISUcgLyBXQ0FHIHRhcmdldCBzaXplKSxcbi8vIHZpc3VhbGx5IHNtYWxsZXIgMThweCBpY29uIHZpYSBjZW50ZXJpbmcg4oCUIHNocmlua3MgdW5kZXIgc2l6ZT1cImNvbXBhY3RcIlxuLy8gKHNlZSB0aGF0IGJsb2NrIGJlbG93KS5cbi5xbHItZXhwYW5kLXRvZ2dsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiA0NHB4O1xuICAgIGhlaWdodDogNDRweDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXJvdywgMTJweCk7XG4gICAgY29sb3I6IHZhcigtLXFsci1jaGV2cm9uLWNvbG9yKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDEwMG1zIGVhc2Utb3V0O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXFsci1iZy1ob3Zlcik7XG4gICAgfVxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcWxyLWJnLXByZXNzZWQpO1xuICAgIH1cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAgIGluc2V0IDAgMCAwIDJweCB2YXIoLS1xbHItZm9jdXMtcmluZyksXG4gICAgICAgICAgICBpbnNldCAwIDAgMCA0cHggdmFyKC0tcWxyLWZvY3VzLWdsb3cpO1xuICAgIH1cbn1cblxuLnFsci1leHBhbmQtY2hldnJvbiB7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIC8vIFRyYW5zZm9ybS1vbmx5LCBwZXIgdGhlIHRyZWUtc3VwcG9ydCBjb250cmFjdCAobmV2ZXIgYW5pbWF0ZSBsYXlvdXRcbiAgICAvLyBwcm9wZXJ0aWVzKS4gRHVyYXRpb24gaXMgemVyb2VkIHVuZGVyIHByZWZlcnMtcmVkdWNlZC1tb3Rpb24gYWJvdmUuXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLXFsci10b2dnbGUtZHVyYXRpb24pIGVhc2U7XG59XG5cbi8vIFJvdGF0aW9uIGxpdmVzIG9uIHRoZSBST1cncyAucWxyLWV4cGFuZGVkIGNsYXNzIChzZXQgb25seSBhbG9uZ3NpZGVcbi8vIGBleHBhbmRhYmxlYCwgc2VlIHFkbmEtbGlzdC1yb3cuanMpIHJhdGhlciB0aGFuIG9uIHRoZSB0b2dnbGUgaXRzZWxmLCBzb1xuLy8gaXQgc3RheXMgaW4gc3luYyB3aXRoIHRoZSBhcmlhLWV4cGFuZGVkIHZhbHVlIG9uIHRoZSBzYW1lIGVsZW1lbnQuXG4ucWRuYXByby1saXN0LXJvdy5xbHItZXhwYW5kZWQgLnFsci1leHBhbmQtY2hldnJvbiB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xufVxuXG4vLyAtLS0tIExlYWRpbmcgaWNvbi10aWxlIC0tLS1cbi8vIDQweDQwLCAtLXItcm93IHJhZGl1cyDigJQgbWF0Y2hlcyB0aGUgb3JpZ2luYWwgZG9jdW1lbnRzX3Jvd19faWNvbi0tZm9sZGVyXG4vLyBmb290cHJpbnQgKDQwcHggLyB+MTBweCwgaGVyZSB0aGUgc2VtYW50aWMgLS1yLXJvdyB0b2tlbiB3aGljaCByZXNvbHZlcyB0b1xuLy8gMTJweCkuIEljb24gZ2x5cGggc2l0cyBhdCAyMnB4IGluc2lkZSBpdCAocm91Z2hseSB0aGUgc2FtZSByYXRpbyBhcyB0aGVcbi8vIHNvdXJjZSdzIDI0cHgtaW4tNDBweCBmb2xkZXIgaWNvbikuXG4ucWxyLXRpbGUge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXJvdywgMTJweCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXFsci10aWxlLWJnLCB2YXIoLS1jLXB1cnBsZS1zb2Z0LTEyLCByZ2JhKDY0LCA3MywgMTU0LCAwLjEyKSkpO1xuICAgIGNvbG9yOiB2YXIoLS1xbHItdGlsZS1mZywgdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpKTtcbn1cblxuLnFsci10aWxlLWljb24ge1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMjJweDtcbn1cblxuLy8gQWN0aXZpdHktaWNvbiB2YXJpYW50IChhZGRlZCAyMi4wNy4yMDI2LCBLaW0ncyByZXF1ZXN0KTogdGhlIHRpbGUgaG9zdHMgYVxuLy8gdHdvLXRvbmUgcWRuYXByby1hY3Rpdml0eS1pY29uIGluc3RlYWQgb2YgdGhlIHNpbmdsZS1jb2xvdXIgcWRuYXByby1pY29uXG4vLyBnbHlwaCDigJQgdGhlIFNBTUUgdmlzdWFsIHRoZSB0YXNrbGlzdC1jYXJkIHRpbGUgdXNlcy4gVGhlIHRpbnQgYmFja2dyb3VuZFxuLy8gKC0tcWxyLXRpbGUtYmcsIGFsbCA4IGh1ZXMpIHN0aWxsIGdvdmVybnMgdGhlIHN1cmZhY2UgYmVoaW5kIGl0LCBleGFjdGx5XG4vLyBsaWtlIHRhc2tsaXN0LWNhcmQncyBjb2xvdXJlZCB0aWxlLiBUaGUgYWN0aXZpdHktaWNvbiBzaXplcyBJVFNFTEYgdmlhIGl0c1xuLy8gb3duIGBzaXplYCBhdHRyaWJ1dGUgKDI4cHggZGVmYXVsdCB0aWxlLCAyMHB4IGNvbXBhY3Qg4oCUIHNldCBpblxuLy8gcWRuYS1saXN0LXJvdy5qcywgbWlycm9yaW5nIGhvdyB0YXNrbGlzdC1jYXJkIHNldHMgaXQpLCBzbyB0aGVyZSBpcyBubyBzaXplXG4vLyBydWxlIGhlcmU7IC0tcWxyLXRpbGUtZmcgaXMgaXJyZWxldmFudCB0byBpdCAoaXRzIGNvbG91cnMgYXJlIGJha2VkIGludG9cbi8vIHRoZSBTVkcsIG5vdCByZWNvbG9yYWJsZSkuIE9ubHkgdGhlIGZsZXgtc2hyaW5rIGd1YXJkIGJlbG93IGlzIG5lZWRlZCBzb1xuLy8gdGhlIGljb24gbmV2ZXIgc3F1YXNoZXMgd2hlbiB0aGUgcm93IGlzIHRpZ2h0LlxuLnFsci10aWxlLWFjdGl2aXR5IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbn1cblxuLy8gVGlsZSBjb2xvdXIgcGFsZXR0ZSDigJQgU0FNRSA4IGh1ZXMgYXMgcWRuYXByby1waWNrZXItcm93J3MgLnByLXRpbGUtY29sb3ItKlxuLy8gLyBxZG5hcHJvLXRhc2tsaXN0LWNhcmQncyAudGxjLWNvbG9yLSogKGJnIHZhbHVlcyBjb3BpZWQgMToxIHNvIGEgcGFnZVxuLy8gbWl4aW5nIGxpc3Qtcm93cyB3aXRoIHRob3NlIGNvbXBvbmVudHMgcmVhZHMgYXMgb25lIGNvbnNpc3RlbnQgdGlsZVxuLy8gZmFtaWx5OyBubyBzaGFyZWQgU0NTUyBtYXAvbWl4aW4gZXhpc3RzIGZvciB0aGlzIHBhbGV0dGUgYW55d2hlcmUgaW4gdGhlXG4vLyBjb2RlYmFzZSB5ZXQsIGVhY2ggY29tcG9uZW50IG1pcnJvcnMgaXRzIG93biBjb3B5IOKAlCBmb2xsb3dpbmcgdGhhdFxuLy8gZXN0YWJsaXNoZWQgcGF0dGVybiByYXRoZXIgdGhhbiBpbnZlbnRpbmcgYSBuZXcgb25lIGZvciB0aGlzIGNvbXBvbmVudCkuXG4vLyBGb3JlZ3JvdW5kICgtLXFsci10aWxlLWZnKSBpcyBhbiBBRERJVElPTiBsaXN0LXJvdyBuZWVkcyB0aGF0IHRoZSBvdGhlcnNcbi8vIGRvbid0OiB0aGVpciB0aWxlIGljb24gaXMgZWl0aGVyIGEgdHdvLXRvbmUgcWRuYXByby1hY3Rpdml0eS1pY29uIChhbHJlYWR5XG4vLyBjb2xvdXJlZCkgb3IgdW5zZXQ7IGxpc3Qtcm93J3MgdGlsZSBob3N0cyBhIHBsYWluIHNpbmdsZS1jb2xvdXJcbi8vIHFkbmFwcm8taWNvbiwgc28gaXQgbmVlZHMgYW4gZXhwbGljaXQgbGVnaWJsZSBmb3JlZ3JvdW5kIHBlciB0aW50LiBXaGVyZSBhblxuLy8gZXhpc3Rpbmcgc2lnbmFsLSotdGV4dCB0b2tlbiBsaW5lcyB1cCB3aXRoIHRoZSBodWUgaXQgaXMgcmV1c2VkIChyZWQvXG4vLyB5ZWxsb3cvZ3JlZW4vYmx1ZS9waW5rKTsgZ3JleS9ibHVlLWJyaWdodC9wdXJwbGUgaGF2ZSBubyBtYXRjaGluZyB0b2tlbiBzb1xuLy8gYXJlIGhhbmQtcGlja2VkLCBzYW1lIGhvbmVzdHkgYXMgdGhlIGJnIHBhbGV0dGUgYWJvdmUuXG4ucWxyLXRpbGUtY29sb3ItcHVycGxlICAgICAgeyAtLXFsci10aWxlLWJnOiB2YXIoLS1jLWNoaXAtcHVycGxlLWJnKTsgLS1xbHItdGlsZS1mZzogdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpOyB9XG4ucWxyLXRpbGUtY29sb3ItZ3JleSAgICAgICAgeyAtLXFsci10aWxlLWJnOiB2YXIoLS1jLWdyZXktNTApOyAtLXFsci10aWxlLWZnOiB2YXIoLS1jLWdyZXktNjAwLCAjNTY1YjY2KTsgfVxuLnFsci10aWxlLWNvbG9yLXJlZCAgICAgICAgIHsgLS1xbHItdGlsZS1iZzogdmFyKC0tYy1zaWduYWwtcmVkLWJnKTsgLS1xbHItdGlsZS1mZzogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpOyB9XG4ucWxyLXRpbGUtY29sb3IteWVsbG93ICAgICAgeyAtLXFsci10aWxlLWJnOiB2YXIoLS1jLWNoaXAteWVsbG93LWJnKTsgLS1xbHItdGlsZS1mZzogdmFyKC0tYy1zaWduYWwteWVsbG93LXRleHQsICNiZjcyMDIpOyB9XG4ucWxyLXRpbGUtY29sb3ItZ3JlZW4gICAgICAgeyAtLXFsci10aWxlLWJnOiB2YXIoLS1jLWNoaXAtZ3JlZW4tYmcpOyAtLXFsci10aWxlLWZnOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0LCAjNDI4YjZlKTsgfVxuLnFsci10aWxlLWNvbG9yLWJsdWUgICAgICAgIHsgLS1xbHItdGlsZS1iZzogdmFyKC0tYy1zaWduYWwtYmx1ZS1iZyk7IC0tcWxyLXRpbGUtZmc6IHZhcigtLWMtc2lnbmFsLWJsdWUtdGV4dCwgIzZhOGFiNCk7IH1cbi5xbHItdGlsZS1jb2xvci1icmlnaHQtYmx1ZSB7IC0tcWxyLXRpbGUtYmc6IHZhcigtLWMtY2hpcC1icmlnaHQtYmx1ZS0yLWJnKTsgLS1xbHItdGlsZS1mZzogdmFyKC0tYy1wdXJwbGUtNDAwKTsgfVxuLnFsci10aWxlLWNvbG9yLXBpbmsgICAgICAgIHsgLS1xbHItdGlsZS1iZzogdmFyKC0tYy1zaWduYWwtcGluay1iZyk7IC0tcWxyLXRpbGUtZmc6IHZhcigtLWMtc2lnbmFsLXBpbmstdGV4dCwgI2IyNTc3Nyk7IH1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFsci10aWxlLWNvbG9yLXB1cnBsZSAgICAgIHsgLS1xbHItdGlsZS1iZzogIzNhMzU1NTsgLS1xbHItdGlsZS1mZzogdmFyKC0tYy1wdXJwbGUtMjAwLCAjYTVhY2ZmKTsgfVxuW2RhdGEtdGhlbWU9ZGFya10gLnFsci10aWxlLWNvbG9yLWdyZXkgICAgICAgIHsgLS1xbHItdGlsZS1iZzogIzQwNDQ0ZDsgLS1xbHItdGlsZS1mZzogdmFyKC0tYy1ncmV5LTMwMCwgI2M0YzdjYyk7IH1cbltkYXRhLXRoZW1lPWRhcmtdIC5xbHItdGlsZS1jb2xvci1yZWQgICAgICAgICB7IC0tcWxyLXRpbGUtYmc6ICM1YTJiMmI7IC0tcWxyLXRpbGUtZmc6IHZhcigtLWMtd2Fybi1yZWQtNDAwLCAjZjg3MTcxKTsgfVxuW2RhdGEtdGhlbWU9ZGFya10gLnFsci10aWxlLWNvbG9yLXllbGxvdyAgICAgIHsgLS1xbHItdGlsZS1iZzogIzVhNGQxZjsgLS1xbHItdGlsZS1mZzogdmFyKC0tYy13YXJuLXllbGxvdy01MDAsICNmYmJmMjQpOyB9XG5bZGF0YS10aGVtZT1kYXJrXSAucWxyLXRpbGUtY29sb3ItZ3JlZW4gICAgICAgeyAtLXFsci10aWxlLWJnOiAjMmE1NTQ0OyAtLXFsci10aWxlLWZnOiAjN2ZlMGJjOyB9XG5bZGF0YS10aGVtZT1kYXJrXSAucWxyLXRpbGUtY29sb3ItYmx1ZSAgICAgICAgeyAtLXFsci10aWxlLWJnOiAjMmUzZTU0OyAtLXFsci10aWxlLWZnOiAjOGZiNGUwOyB9XG5bZGF0YS10aGVtZT1kYXJrXSAucWxyLXRpbGUtY29sb3ItYnJpZ2h0LWJsdWUgeyAtLXFsci10aWxlLWJnOiAjM2E0YThhOyAtLXFsci10aWxlLWZnOiAjYjljOGY1OyB9XG5bZGF0YS10aGVtZT1kYXJrXSAucWxyLXRpbGUtY29sb3ItcGluayAgICAgICAgeyAtLXFsci10aWxlLWJnOiAjNGUyYTM2OyAtLXFsci10aWxlLWZnOiAjZTRhMGI4OyB9XG5cbi8vIC0tLS0gdGlsZT1cIm5vbmVcIiAoMjguMDcuMjAyNiwgS2ltJ3MgUFdBIHNldHRpbmdzLXBhZ2UgcmVxdWVzdCkgLS0tLVxuLy8gTm8gdGludGVkIHNxdWFyZSDigJQgdGhlIGBpY29uYCBnbHlwaCAod2hlbiBwcmVzZW50KSByZW5kZXJzIGJhcmUsIGRpcmVjdGx5XG4vLyBpbiB0aGUgcm93LiBSZXVzZXMgdGhlIEVYQUNUIFNBTUUgLnFsci10aWxlIHdyYXBwZXIgZWxlbWVudCBhbmRcbi8vIF9kaXN0cmlidXRlTGVhZGluZ1Nsb3QgbWV0aG9kIHFkbmEtbGlzdC1yb3cuanMgYWxyZWFkeSBidWlsZHMgZm9yXG4vLyB0aWxlPVwidGludGVkXCIgKHNlZSB0aGF0IGZpbGUncyBgdGlsZWAgZG9jIG5vdGUpIOKAlCBvbmx5IHRoaXMgQ1NTLCBrZXllZCBvZmZcbi8vIHRoZSBST09UIC5xbHItdGlsZS1ub25lIG1vZGlmaWVyIGNsYXNzIChzYW1lIGlkaW9tIGFzIC5xbHItc2l6ZS1jb21wYWN0KSxcbi8vIGRpZmZlcnM6IGl0IHN0cmlwcyB0aGUgd3JhcHBlcidzIGZpeGVkIDQweDQwIGZvb3RwcmludC9iYWNrZ3JvdW5kL3JhZGl1c1xuLy8gYW5kIHJlcG9pbnRzIGl0cyBpbmhlcml0ZWQgYGNvbG9yYCAodGhlIGljb24gcmVhZHMgaXQgdmlhIGN1cnJlbnRDb2xvcilcbi8vIGF3YXkgZnJvbSB0aGUgdGludCBwYWxldHRlICgtLXFsci10aWxlLWZnKSB0byAtLXFsci1iYXJlLWljb24tY29sb3Jcbi8vIGluc3RlYWQgKGJyYW5kLXB1cnBsZSBkZWZhdWx0LCBvdmVycmlkYWJsZSBieSBgdG9uZWAgYWJvdmUpLiBgdGludGAgaXNcbi8vIHRoZXJlYnkgZ2VudWluZWx5IGlnbm9yZWQgaW4gdGhpcyBtb2RlIOKAlCB0aGVyZSBpcyBubyBiYWNrZ3JvdW5kIGxlZnQgZm9yXG4vLyBpdCB0byBjb2xvdXIuXG4ucWRuYXByby1saXN0LXJvdy5xbHItdGlsZS1ub25lIHtcbiAgICAvLyBUaGUgY29tcG91bmQgYCYucWxyLXNpemUtY29tcGFjdCAucWxyLXRpbGVgIHNlbGVjdG9yIGJlbG93IGlzIE5PVFxuICAgIC8vIHJlZHVuZGFudDogd2l0aG91dCBpdCwgdGhpcyBydWxlIGFuZCAucWxyLXNpemUtY29tcGFjdCdzIG93blxuICAgIC8vIGAucWxyLXRpbGUgeyB3aWR0aDogMjhweDsgLi4uIH1gIChmdXJ0aGVyIGRvd24gdGhpcyBmaWxlKSBoYXZlIHRoZVxuICAgIC8vIEVYQUNUIFNBTUUgc3BlY2lmaWNpdHkgKDMgY2xhc3NlcyBlYWNoKSDigJQgd2hpY2hldmVyIHJ1bGUgaXMgbGF0ZXIgaW5cbiAgICAvLyB0aGUgY29tcGlsZWQgQ1NTIHdvdWxkIHNpbGVudGx5IHdpbiBhIGNvbXBhY3QrdGlsZT1cIm5vbmVcIiByb3cuIExpc3RpbmdcbiAgICAvLyB0aGUgY29tYmluZWQgc2VsZWN0b3IgZXhwbGljaXRseSAoNCBjbGFzc2VzKSBtYWtlcyB0aGlzIG92ZXJyaWRlXG4gICAgLy8gb3JkZXItaW5kZXBlbmRlbnQgaW5zdGVhZCBvZiByZWx5aW5nIG9uIGZpbGUgcG9zaXRpb24uXG4gICAgLnFsci10aWxlLFxuICAgICYucWxyLXNpemUtY29tcGFjdCAucWxyLXRpbGUge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tcWxyLWJhcmUtaWNvbi1jb2xvcik7XG4gICAgfVxuXG4gICAgLnFsci10aWxlLWljb24ge1xuICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgIH1cblxuICAgIC8vIEhpZ2hlciBzcGVjaWZpY2l0eSB0aGFuIHRoZSBiYXNlIC5xbHItc2l6ZS1jb21wYWN0IDE4cHggcnVsZSBiZWxvd1xuICAgIC8vICg0IGNsYXNzZXMgdnMgMyksIHNvIHRoaXMgd2lucyByZWdhcmRsZXNzIG9mIHNvdXJjZSBvcmRlci5cbiAgICAmLnFsci1zaXplLWNvbXBhY3QgLnFsci10aWxlLWljb24ge1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgIH1cbn1cblxuLy8gLS0tLSBCb2R5OiB0aXRsZSArIG9wdGlvbmFsIHN1YnRpdGxlIC0tLS1cbi5xbHItYm9keSB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDJweDtcbn1cblxuLnFsci10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7IC8vIHNlZSBmaWxlIGhlYWRlciDigJQgbWF0Y2hlcyB0aGUgcm93LXRpdGxlIGNvbnZlbnRpb24sIG5vdCB0aGUgNjAwIGRvY3VtZW50c19yb3cgdXNlZFxuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgY29sb3I6IHZhcigtLXFsci10aXRsZS1jb2xvcik7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ucWxyLXN1YnRpdGxlIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIGNvbG9yOiB2YXIoLS1xbHItc3VidGl0bGUtY29sb3IpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLy8gLS0tLSBTZWFyY2gtaGlnaGxpZ2h0IDxtYXJrPiAoMzAuMDcuMjAyNikgLS0tLVxuLy8gV3JpdHRlbiBGTEFUIG9uIHB1cnBvc2UgKG5vICQtdmFyaWFibGVzLCBubyBuZXN0ZWQgJikgc28gdGhpcyBzeW5jcyB0byB0aGVcbi8vIFBXQSB3aXRob3V0IG5lZWRpbmcgdGhlIGNvbXBpbGVTY3NzIGZsYWcg4oCUIHNlZSBxZG5hLWxpc3Qtcm93LmpzJ3Ncbi8vIFwiU2VhcmNoLWhpZ2hsaWdodCBwcm9wZXJ0eVwiIGRvYyBub3RlIGZvciB0aGUgZnVsbCBBUEkuIFNjb3BlZCB0b1xuLy8gLnFsci10aXRsZS8ucWxyLXN1YnRpdGxlIHJhdGhlciB0aGFuIGEgYmFyZSBgbWFya2Agc2VsZWN0b3Igc28gaXQgbmV2ZXJcbi8vIGxlYWtzIG9udG8gYW4gdW5yZWxhdGVkIDxtYXJrPiBhIGNvbnN1bWVyIG1pZ2h0IHNsb3QgaW4gZWxzZXdoZXJlLiBgPG1hcms+YFxuLy8gaXMgaW5saW5lIChuZXZlciBpbmxpbmUtYmxvY2spLCBzbyB0aGlzIHBhZGRpbmcvcmFkaXVzIGRvZXMgTk9UIGFkZCB0b1xuLy8gdGhlIGxpbmUgYm94IGhlaWdodCAocGFkZGluZyBvbiBhbiBpbmxpbmUgbm9uLXJlcGxhY2VkIGVsZW1lbnQgbmV2ZXJcbi8vIGNoYW5nZXMgbGluZS1oZWlnaHQpIGFuZCBkb2VzIE5PVCBpbnRlcmZlcmUgd2l0aCB0aGUgcGFyZW50J3Ncbi8vIGBvdmVyZmxvdzogaGlkZGVuYCArIGB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpc2AgKyBgd2hpdGUtc3BhY2U6IG5vd3JhcGBcbi8vIHRydW5jYXRpb24gYWJvdmUg4oCUIGEgbWFyayBjbGlwcGVkIG1pZC1oaWdobGlnaHQganVzdCBnZXRzIGN1dCBvZmYgZXhhY3RseVxuLy8gbGlrZSBwbGFpbiB0ZXh0IHdvdWxkLiBgZm9udDogaW5oZXJpdGAgZ3VhcmRzIGFnYWluc3QgYSBicm93c2VyIFVBXG4vLyBzdHlsZXNoZWV0IGdpdmluZyA8bWFyaz4gaXRzIG93biBmb250IChub25lIGRvIHRvZGF5LCBkZWZlbnNpdmUgb25seSkuXG4ucWxyLXRpdGxlIG1hcmsge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXFsci1tYXJrLWJnKTtcbiAgICBjb2xvcjogdmFyKC0tcWxyLW1hcmstY29sb3IpO1xuICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIHBhZGRpbmc6IDAgMXB4O1xufVxuXG4ucWxyLXN1YnRpdGxlIG1hcmsge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXFsci1tYXJrLWJnKTtcbiAgICBjb2xvcjogdmFyKC0tcWxyLW1hcmstY29sb3IpO1xuICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIHBhZGRpbmc6IDAgMXB4O1xufVxuXG4vLyAtLS0tIHdyYXAgKDA0LjA4LjIwMjYpIC0tLS1cbi8vIE11bHRpLWxpbmUgc3VidGl0bGUgbW9kZSwgYnVpbHQgZm9yIHRoZSB0YXNrbGlzdCBTRVRUSU5HUyBwYWdlIHdoZXJlIGVhY2hcbi8vIHJvdydzIHN1YnRpdGxlIGlzIGEgc2VudGVuY2UgZXhwbGFpbmluZyB3aGF0IHRoZSBzZXR0aW5nIGRvZXMsIG5vdCBhXG4vLyBvbmUtbGluZSBtZXRhIHN0cmluZy4gU2VlIHFkbmEtbGlzdC1yb3cuanMncyBgd3JhcGAgZG9jIG5vdGUuXG4vL1xuLy8gS2V5ZWQgb2ZmIHRoZSBST09UIG1vZGlmaWVyIGNsYXNzLCBzYW1lIGlkaW9tIGFzIC5xbHItdGlsZS1ub25lIC9cbi8vIC5xbHItc2l6ZS1jb21wYWN0LCB3aGljaCBhbHNvIHNldHRsZXMgc3BlY2lmaWNpdHkgd2l0aG91dCByZWx5aW5nIG9uXG4vLyBzb3VyY2Ugb3JkZXI6IGAucWRuYXByby1saXN0LXJvdy5xbHItd3JhcCAucWxyLXN1YnRpdGxlYCBpcyAzIGNsYXNzZXNcbi8vIGFnYWluc3QgdGhlIGJhc2UgYC5xbHItc3VidGl0bGVgJ3MgMS5cbi8vXG4vLyBUaGUgVElUTEUgZGVsaWJlcmF0ZWx5IGtlZXBzIGl0cyBzaW5nbGUtbGluZSBlbGxpcHNpcyB0cnVuY2F0aW9uIOKAlCBvbmx5IHRoZVxuLy8gc3VidGl0bGUgd3JhcHMuIEEgd3JhcHBpbmcgdGl0bGUgd291bGQgbWFrZSByb3cgaGVpZ2h0cyB1bnByZWRpY3RhYmxlIGluIGFcbi8vIGxvbmcgbGlzdCBhbmQgbm8gY29uc3VtZXIgaGFzIGFza2VkIGZvciBpdC5cbi5xZG5hcHJvLWxpc3Qtcm93LnFsci13cmFwIHtcbiAgICAvLyBNZWFzdXJlIGNhcCBmb3IgdGhlIHRleHQgY29sdW1uLCBzbyBhIHdpZGUgc2V0dGluZ3MgY2FyZCBkb2VzIG5vdFxuICAgIC8vIHByb2R1Y2UgYSAxMjAtY2hhcmFjdGVyIGxpbmUuIE92ZXJyaWRhYmxlIHBlciBjb25zdW1lciB3aXRob3V0IGEgbmV3XG4gICAgLy8gYXR0cmlidXRlIOKAlCBzYW1lIGVzY2FwZSBoYXRjaCBhcyAtLXFsci1kZXB0aC1zdGVwLlxuICAgIC0tcWxyLXdyYXAtbWF4LXdpZHRoOiA2MGNoO1xuXG4gICAgLy8gVG9wLWFsaWduIHRoZSBjb2x1bW5zOiBhIHR3by1saW5lIHRleHQgYmxvY2sgc2hvdWxkIHNpdCBsZXZlbCB3aXRoIHRoZVxuICAgIC8vIGxlYWRpbmcgdGlsZSBhbmQgdGhlIHRyYWlsaW5nIGNvbnRyb2wsIG5vdCBwdXNoIHRoZW0gdG8gaXRzIGNlbnRyZS5cbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICAgIC5xbHItYm9keSB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1xbHItd3JhcC1tYXgtd2lkdGgpO1xuICAgIH1cblxuICAgIC5xbHItc3VidGl0bGUge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogY2xpcDtcbiAgICAgICAgLy8gMS4zICh0aGUgYmFzZSB2YWx1ZSkgaXMgZmluZSBmb3Igb25lIGxpbmUsIHRvbyB0aWdodCBmb3IgcnVubmluZyB0ZXh0LlxuICAgICAgICBsaW5lLWhlaWdodDogMS40NTtcbiAgICB9XG5cbiAgICAvLyBUcmFpbGluZyBjb250ZW50IHRvIHRoZSBGQVIgUklHSFQgb2YgdGhlIHJvdyAoMDQuMDguMjAyNiwgS2ltOiBcImhpZXIgaXNcbiAgICAvLyBhbGxlbWFhbCBydWltdGUgbm9nLCBkYW4gaG9lZiBqZSBuaWV0IGRlIGRyb3Bkb3ducyB6byB0ZSBwcm9wcGVuXCIpLlxuICAgIC8vXG4gICAgLy8gVGhpcyBiZWxvbmdzIHRvIHRoZSB2YXJpYW50LCBub3QgdG8gYSBjb25zdW1lcidzIG93biBzdHlsZXNoZWV0LCBiZWNhdXNlXG4gICAgLy8gaXQgaXMgYSBkaXJlY3QgY29uc2VxdWVuY2Ugb2YgY2FwcGluZyB0aGUgYm9keSBhYm92ZTogd2l0aFxuICAgIC8vIGBtYXgtd2lkdGhgIG9uIC5xbHItYm9keSB0aGUgYm9keSBzdG9wcyBncm93aW5nIGF0IHRoZSBjYXAsIHRoZSBsZWZ0b3ZlclxuICAgIC8vIGZyZWUgc3BhY2UgY29sbGVjdHMgQUZURVIgdGhlIHRyYWlsaW5nIHNsb3QsIGFuZCB0aGUgY29udHJvbCBlbmRzIHVwXG4gICAgLy8gZmxvYXRpbmcgaW4gdGhlIG1pZGRsZSBvZiBhIHdpZGUgcm93IHdpdGggZGVhZCBzcGFjZSB0byBpdHMgcmlnaHQuXG4gICAgLy8gbWFyZ2luLWxlZnQ6IGF1dG8gY2xhaW1zIHRoYXQgZnJlZSBzcGFjZSBiZWZvcmUgdGhlIHRyYWlsaW5nIHNsb3RcbiAgICAvLyBpbnN0ZWFkLCBzbyB0aGUgY29udHJvbCBzaXRzIGFnYWluc3QgdGhlIHJvdydzIHJpZ2h0IGVkZ2UgLSB0aGUgbGF5b3V0XG4gICAgLy8gZXZlcnkgc2V0dGluZ3Mtc3R5bGUgcm93IHdhbnRzLCBhbmQgdGhlIHJlYXNvbiBhIGNvbnN1bWVyIGNhbiB0aGVuIGdpdmVcbiAgICAvLyBpdHMgY29udHJvbHMgYSBjb21mb3J0YWJsZSB3aWR0aCByYXRoZXIgdGhhbiBzcXVlZXppbmcgdGhlbS5cbiAgICAvL1xuICAgIC8vIEhhcm1sZXNzIHdoZW4gdGhlcmUgaXMgbm8gdHJhaWxpbmcgY29udGVudDogLnFsci10cmFpbGluZyBpc1xuICAgIC8vIGBkaXNwbGF5OiBub25lYCB3aGVuIGVtcHR5IChzZWUgdGhlIGJhc2UgcnVsZSksIGFuZCBgdHJhaWxpbmc9XCJub25lXCJgXG4gICAgLy8gcmVuZGVycyBubyBlbGVtZW50IGF0IGFsbC5cbiAgICAucWxyLXRyYWlsaW5nIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgfVxuXG4gICAgLy8gU3RhYXQgZGUgd2FhcnNjaHV3aW5nIGVyIG9vaywgZGFuIG1vZXQgRElFIGRlIHZyaWplIHJ1aW10ZSBvcGVpc2VuOiBoaWoga29tdFxuICAgIC8vIHbDs8OzciBkZSB0cmFpbGluZy1wbGVrLCBkdXMgem9uZGVyIGRlemUgcmVnZWwgYmxpamZ0IGhldCBpY29vbnRqZSBiaWogaGV0XG4gICAgLy8gaW5nZWtvcnRlIHRla3N0YmxvayBoYW5nZW4gZW4gc3ByaW5ndCBhbGxlZW4gZGUga25vcCBuYWFyIHJlY2h0cy5cbiAgICAucWxyLXdhcm5pbmcge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAvLyAuLi5lbiBkYW4gbWFnIGRlIHRyYWlsaW5nLXBsZWsgemlqbiBlaWdlbiBhdXRvIE5JRVQgbWVlciBvcGVpc2VuLCBhbmRlcnNcbiAgICAvLyBvbnRzdGFhdCBlciBlZW4gdHdlZWRlIGdhdCB0dXNzZW4gaGV0IGljb29udGplIGVuIGRlIGtub3AuXG4gICAgLnFsci13YXJuaW5nIH4gLnFsci10cmFpbGluZyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbn1cblxuLy8gLS0tLSBUcmFpbGluZyBzbG90IC0tLS1cbi5xbHItdHJhaWxpbmcge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcblxuICAgICY6ZW1wdHkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLy8gU3RhYmxlIHdyYXBwZXIgZm9yIENPTkRJVElPTkFMIHNsb3QgY29udGVudCAoZS5nLiBhIFJhY3RpdmUge3sjaWZ9fSBibG9ja1xuLy8gYXJvdW5kIGEgZmF2b3VyaXRlIHN0YXIpLiBCdWcgZml4ICgyMS4wNy4yMDI2LCBlcnJvciA1MzMxIOKAlCBcIkNhbm5vdCByZWFkXG4vLyBwcm9wZXJ0aWVzIG9mIG51bGwgKHJlYWRpbmcgJ2luc2VydEJlZm9yZScpXCIgZGVlcCBpbiBhIFJhY3RpdmUgbi51cGRhdGUvXG4vLyBQcC51cGRhdGUgc3RhY2ssIFBXQSBkb2N1bWVudHMgdmlldyk6IHFkbmEtbGlzdC1yb3cuanMnc1xuLy8gX2Rpc3RyaWJ1dGVUcmFpbGluZ1Nsb3QvX2Rpc3RyaWJ1dGVMZWFkaW5nU2xvdCBjYXB0dXJlIHRoaXMuY2hpbGROb2Rlc1xuLy8gT05DRSBvbiBmaXJzdCBjb25uZWN0IGFuZCBtb3ZlIHRoZSBtYXRjaGluZyBzbG90PVwiLi4uXCIgRUxFTUVOVCBpbnRvIGFuXG4vLyBpbnRlcm5hbCBjb250YWluZXIg4oCUIGJ1dCBpZiB0aGUgc2xvdD1cIi4uLlwiIGVsZW1lbnQgSVMgaXRzZWxmIHRoZSByb290IG9mXG4vLyBhIFJhY3RpdmUgY29uZGl0aW9uYWwgc2VjdGlvbiwgUmFjdGl2ZSdzIG93biBhbmNob3IgY29tbWVudCBmb3IgdGhhdFxuLy8gc2VjdGlvbiBpcyBsZWZ0IGJlaGluZCBhcyBhIGNoaWxkIG9mIHRoZSBPUklHSU5BTCBob3N0IChuZXZlciBtb3ZlZCxcbi8vIHNpbmNlIG9ubHkgZWxlbWVudCBub2RlcyBhcmUgbWF0Y2hlZCksIGFuZCB0aGF0IGhvc3Qgd2lwZXMgaXRzIG93blxuLy8gaW5uZXJIVE1MIG9uIGV2ZXJ5IF9yZW5kZXIoKSDigJQgcGVybWFuZW50bHkgb3JwaGFuaW5nIHRoZSBhbmNob3Jcbi8vIChwYXJlbnROb2RlIGJlY29tZXMgbnVsbCkuIFRoZSBzZWN0aW9uJ3MgTkVYVCB0b2dnbGUgdGhlbiBoYXMgUmFjdGl2ZSBjYWxsXG4vLyBpbnNlcnRCZWZvcmUgcmVsYXRpdmUgdG8gdGhhdCBvcnBoYW5lZCBhbmNob3IgLT4gVHlwZUVycm9yLiBGaXg6IG5ldmVyIHB1dFxuLy8gc2xvdD1cIi4uLlwiIGRpcmVjdGx5IG9uIHRoZSBjb25kaXRpb25hbCBlbGVtZW50LiBQdXQgaXQgb24gYW4gYWx3YXlzLXByZXNlbnRcbi8vIHdyYXBwZXIgaW5zdGVhZCAoYDxzcGFuIHNsb3Q9XCJ0cmFpbGluZ1wiIGNsYXNzPVwicWxyLXNsb3Qtd3JhcFwiPnt7I2lmXG4vLyB4fX0uLi57ey9pZn19PC9zcGFuPmApIOKAlCB0aGUgd3JhcHBlciAod2l0aCBSYWN0aXZlJ3MgYW5jaG9yIHNhZmVseSBpbnNpZGVcbi8vIGl0KSBpcyB3aGF0IGdldHMgbW92ZWQgYXMgYSB3aG9sZSwgc28gdGhlIGFuY2hvcidzIHBhcmVudE5vZGUgaXMgYWx3YXlzIHRoZVxuLy8gKHJlbG9jYXRlZCBidXQgaW50YWN0KSB3cmFwcGVyLCBuZXZlciBvcnBoYW5lZC4gYGRpc3BsYXk6IGNvbnRlbnRzYCBrZWVwc1xuLy8gYW4gZW1wdHkgd3JhcHBlciAoY29uZGl0aW9uIGZhbHNlKSBmcm9tIGNvdW50aW5nIGFzIGl0cyBvd24gZmxleCBpdGVtIGluXG4vLyAucWxyLXRyYWlsaW5nLy5xbHItdGlsZSBhYm92ZSwgc28gaXQgbmV2ZXIgYWRkcyBhIHN0cmF5IGdhcC5cbi5xbHItc2xvdC13cmFwIHtcbiAgICBkaXNwbGF5OiBjb250ZW50cztcbn1cblxuLnFsci1jaGV2cm9uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6IHZhcigtLXFsci1jaGV2cm9uLWNvbG9yKTtcbn1cblxuLy8gLS0tLSBXYXJuaW5nIGJ1dHRvbiAoMDUuMDguMjAyNikgLS0tLVxuLy8gU3RhYXQgVk9PUiAucWxyLXRyYWlsaW5nLCBkdXMgZGUgY2hldnJvbiBob3VkdCBkZSByZWNodGVycmFuZCBlbiBlZW5cbi8vIGdld2FhcnNjaHV3ZGUgcmlqIGJsaWpmdCBsZWVzYmFhciBhbHMgYWFudGlrYmFhci4gS2xlaW5lciBlbiBwbGF0dGVyIGRhbiBkZVxuLy8gNDBweCBnbGFzLWtub3AgdmFuIHFkbmFwcm8tYWN0aXZpdHktcm93OiBkaWUgeml0IG9wIGdyb3RlIHJpamVuIG9wIGVlblxuLy8gZ2VrbGV1cmQgY2FudmFzLCBkZXplIG9wIGVlbiA0NHB4IHdpdHRlIGxpanN0cmlqLiBaZWxmZGUgYW1iZXIsIGFuZGVyZSBtYWF0LlxuLnFsci13YXJuaW5nIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAyOHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHZhcigtLXFsci13YXJuaW5nLWNvbG9yKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNTBtcyBlYXNlLCBjb2xvciAxNTBtcyBlYXNlO1xufVxuXG4ucWxyLXdhcm5pbmc6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXFsci13YXJuaW5nLWJnLWhvdmVyKTtcbiAgICBjb2xvcjogdmFyKC0tcWxyLXdhcm5pbmctY29sb3ItaG92ZXIpO1xufVxuXG4vLyBFaWdlbiBmb2N1c3Jpbmc6IGRlIGtub3Ageml0IElOIGVlbiByaWogZGllIHplbGYgZm9jdXMga2FuIGtyaWpnZW4sIGR1cyB6b25kZXJcbi8vIGRlemUgcmluZyBpcyBtZXQgaGV0IHRvZXRzZW5ib3JkIG5pZXQgdGUgemllbiBkYXQgamUgb3AgZGUga25vcCBzdGFhdCBlbiBuaWV0XG4vLyBvcCBkZSByaWouXG4ucWxyLXdhcm5pbmc6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLXFsci1mb2N1cy1yaW5nKTtcbiAgICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG4ucWxyLXdhcm5pbmctaWNvbiB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xufVxuXG4vLyAtLS0tIFNpemU6IGNvbXBhY3QgKHRyZWUgc3VwcG9ydCwgMjEuMDcuMjAyNikgLS0tLVxuLy8gRm9yIG5hcnJvdyBjb250ZXh0cyDigJQgdGhlIH4yODAtMzIwcHggUFdBIGRvY3VtZW50cyB0YWJsZXQgc2lkZSBwYW5lbCBpc1xuLy8gdGhlIG1vdGl2YXRpbmcgY2FzZSDigJQgd2hlcmUgdGhlIGRlZmF1bHQgNDRweCBtaW4taGVpZ2h0IC8gNDBweCB0aWxlIC9cbi8vIDhweC0xNnB4IHBhZGRpbmcgaXMgdG9vIGhlYXZ5IHRvIHNob3cgMyBpbmRlbnRlZCB0cmVlIGxldmVscyBhdCBvbmNlLlxuLy8gTnVtYmVycyBwaWNrZWQgZnJvbSB0aGUgc2FtZSBcImdyaWQgb2YgNFwiIGZhbWlseSBhbHJlYWR5IHVzZWQgZWxzZXdoZXJlIGluXG4vLyB0aGUgbGlicmFyeSAocWRuYXByby11bC1pdGVtJ3Mgb3duIHNpemU9XCJjb21wYWN0XCI6IDM2cHggaGVpZ2h0LCAyNC0yOHB4XG4vLyBjb250cm9scykgcmF0aGVyIHRoYW4gaW52ZW50aW5nIGEgbmV3IHNjYWxlLlxuLnFkbmFwcm8tbGlzdC1yb3cucWxyLXNpemUtY29tcGFjdCB7XG4gICAgLS1xbHItZGVwdGgtc3RlcDogMTZweDtcblxuICAgIG1pbi1oZWlnaHQ6IDM2cHg7XG4gICAgcGFkZGluZzogNnB4IDEycHg7XG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKDEycHggKyAodmFyKC0tcWxyLWRlcHRoKSAqIHZhcigtLXFsci1kZXB0aC1zdGVwKSkpO1xuICAgIGdhcDogOHB4O1xuXG4gICAgLnFsci10aWxlIHtcbiAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci0yLCA4cHgpO1xuICAgIH1cblxuICAgIC5xbHItdGlsZS1pY29uIHtcbiAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgIGhlaWdodDogMThweDtcbiAgICB9XG5cbiAgICAucWxyLXRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgIH1cblxuICAgIC5xbHItc3VidGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgfVxuXG4gICAgLnFsci1leHBhbmQtdG9nZ2xlIHtcbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICB9XG5cbiAgICAucWxyLWV4cGFuZC1jaGV2cm9uIHtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICB9XG5cbiAgICAucWxyLWNoZXZyb24ge1xuICAgICAgICB3aWR0aDogMThweDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgIH1cblxuICAgIC5xbHItd2FybmluZyB7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgfVxuXG4gICAgLnFsci13YXJuaW5nLWljb24ge1xuICAgICAgICB3aWR0aDogMThweDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgIH1cblxuICAgIC5xbHItZ3JpcCB7XG4gICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgfVxuXG4gICAgLnFsci1ncmlwLWljb24ge1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgIH1cbn1cblxuLy8gLS0tLSBSZW9yZGVyOiBncmVlcCArIHNsZWVwc3RhbmRlbiAoMDUuMDguMjAyNikgLS0tLVxuLy8gVm9vciBkZSByZWdlbGxpanN0IHZhbiBkZSBsb2dpY2Etbm9kZSwgd2FhciBkZSBPUkRFIGdlZHJhZyBpcyAoZGUgZWVyc3RlIHJlZ2VsXG4vLyBkaWUgcGFzdCB3aW50KSBlbiBLaW0gZGFhcm9tIG1ldCBzbGVwZW4gb3JkZW50LlxuLy9cbi8vIERlIGdyZWVwIGlzIEFMVElKRCB6aWNodGJhYXIsIG5pZXQgcGFzIGJpaiBob3ZlciB6b2FscyBiaWpcbi8vIHFkbmFwcm8tYW5zd2VyLW9wdGlvbi4gV2FhciBkZSB2b2xnb3JkZSBhbGxlZW4gZWVuIHZvb3JrZXVyIGlzIG1hZyBkZSBncmVlcFxuLy8gemljaCB2ZXJzdG9wcGVuOyB3YWFyIGhpaiBoZXQgZ2VkcmFnIGJlcGFhbHQgbW9ldCBqZSB6b25kZXIgdGUgem9la2VuIHppZW4gZGF0XG4vLyBlciBpZXRzIHRlIG9yZGVuZW4gdmFsdC4gR2VkZW1wdCBpbiBydXN0LCBkb25rZXIgb3AgcmlqLWhvdmVyLCBkdXMgaGlqIHNjaHJlZXV3dFxuLy8gb29rIG5pZXQuXG4ucWxyLWdyaXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgLy8gR2VlbiBlaWdlbiBhY2h0ZXJncm9uZCBvZiByYWRpdXM6IGRlIGdyZWVwIGlzIGVlbiBoYW5kdmF0LCBnZWVuIGtub3AuIEVlblxuICAgIC8vIGtub3B2bGFramUgZXJuYWFzdCB6b3UgbmV0IHpvIHp3YWFyIHdlZ2VuIGFscyBkZSB0aWxlIGVyYWNodGVyLlxuICAgIGNvbG9yOiB2YXIoLS1xbHItY2hldnJvbi1jb2xvcik7XG4gICAgY3Vyc29yOiBncmFiO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMTAwbXMgZWFzZS1vdXQ7XG59XG5cbi5xZG5hcHJvLWxpc3Qtcm93OmhvdmVyIC5xbHItZ3JpcCB7XG4gICAgY29sb3I6IHZhcigtLXFsci10aXRsZS1jb2xvcik7XG59XG5cbi5xbHItZ3JpcC1pY29uIHtcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG59XG5cbi8vIFNsZWVwc3RhbmRlbiBoYW5nZW4gYWFuIGhldCBBVFRSSUJVVVQgZW4gbmlldCBhYW4gZWVuIGNsYXNzOiBoZXQgY29tcG9uZW50XG4vLyBoZXJzY2hyaWpmdCB6aWpuIGVpZ2VuIGNsYXNzTmFtZSBiaWogZWxrZSByZW5kZXIsIGVuIGRlemUgZHJpZSBhdHRyaWJ1dGVuIHN0YWFuXG4vLyBqdWlzdCBiZXd1c3QgTklFVCBpbiBvYnNlcnZlZEF0dHJpYnV0ZXMgKGVlbiByZS1yZW5kZXIgbWlkZGVuIGluIGVlbiBzbGVlcCB6b3Vcbi8vIGRlIERPTSBvbmRlciBoZXQgZ2ViYWFyIHVpdCB0cmVra2VuKS4gWmllIGRlIGRvY2Jsb2NrIGluIHFkbmEtbGlzdC1yb3cuanMuXG5xZG5hcHJvLWxpc3Qtcm93W2RyYWdnaW5nXSB7XG4gICAgb3BhY2l0eTogMC4zNTtcblxuICAgIC5xbHItZ3JpcCB7XG4gICAgICAgIGN1cnNvcjogZ3JhYmJpbmc7XG4gICAgfVxufVxuXG4vLyBMYW5kaW5nc3N0cmVlcC4gSU5TRVQsIGFuZGVycyBrbmlwdCBkZSBgb3ZlcmZsb3c6IGhpZGRlbmAgdmFuXG4vLyAucWRuYXByby1saXN0LXJvdy1ncm91cCBoZW0gZXIgcHJlY2llcyBib3ZlbmFhbiBhZiDigJQgaGV0IGVuaWdlIHB1bnQgd2FhciBoaWpcbi8vIG1vZXQgc3RhYW4uIEtsZXVyIGlzIGRlIGJlc3RhYW5kZSBmb2N1cy1yaW5nIChicmFuZC1wdXJwbGUpLCBnZWVuIG5pZXV3IGhleGplLlxucWRuYXByby1saXN0LXJvd1tkcm9wLWFib3ZlXSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAzcHggMCAwIHZhcigtLXFsci1mb2N1cy1yaW5nKTtcbn1cblxucWRuYXByby1saXN0LXJvd1tkcm9wLWJlbG93XSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAtM3B4IDAgMCB2YXIoLS1xbHItZm9jdXMtcmluZyk7XG59XG5cbi8vIC0tLS0gQ2FyZC1ncm91cCB1dGlsaXR5IC0tLS1cbi8vIFBsYWluIHdyYXBwZXIgKE5PVCBhIHJlZ2lzdGVyZWQgY3VzdG9tIGVsZW1lbnQpIGZvciBhIHdoaXRlIHJvdW5kZWQgY2FyZFxuLy8gaG9sZGluZyBzZXZlcmFsIHJvd3MsIGV4YWN0bHkgdGhlIC5kb2N1bWVudHNfbGlzdCBwYXR0ZXJuIHRoaXMgY29tcG9uZW50XG4vLyBnZW5lcmFsaXNlcyDigJQgYSBkaXZpZGVyIGJldHdlZW4gcm93cywgbm9uZSBhZnRlciB0aGUgbGFzdC4gUmV1c2FibGVcbi8vIGFueXdoZXJlIGEgY29uc3VtZXIgd2FudHMgdGhlIFwiZ3JvdXBlZCBjYXJkXCIgbG9vayB3aXRob3V0IHJlLWRlcml2aW5nIGl0LlxuLnFkbmFwcm8tbGlzdC1yb3ctZ3JvdXAge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1jYXJkLCAxNnB4KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLy8gUmVhZHMgdGhlIFJPVydzIG93biAtLXFsci1ib3JkZXIgdG9rZW4gKDAzLjA4LjIwMjYpIGluc3RlYWQgb2ZcbiAgICAvLyAtLWMtYm9yZGVyLXNvZnQgZGlyZWN0bHksIHNvIGEgc3VyZmFjZSB2YXJpYW50IHRoYXQgcmVwb2ludHMgdGhhdCB0b2tlblxuICAgIC8vIHRha2VzIHRoZSBkaXZpZGVyIHdpdGggaXQuIC0tcWxyLWJvcmRlciBkZWZhdWx0cyB0byBleGFjdGx5IHRoZSBzYW1lXG4gICAgLy8gLS1jLWJvcmRlci1zb2Z0LCBzbyBldmVyeSBleGlzdGluZyBncm91cCBpcyBieXRlLWZvci1ieXRlIHVuY2hhbmdlZC5cbiAgICAucWRuYXByby1saXN0LXJvdzpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXFsci1ib3JkZXIsIHZhcigtLWMtYm9yZGVyLXNvZnQsIHJnYmEoMCwgMCwgMCwgMC4wNykpKTtcbiAgICB9XG59XG5cbi8vIE9uLXB1cnBsZSBncm91cCBjYXJkICgwMy4wOC4yMDI2LCBLaW0pIOKAlCB0aGUgdHJhbnNsdWNlbnQtd2hpdGUgc3VyZmFjZSB0aGVcbi8vIHB1cnBsZSBib3R0b20gc2hlZXQncyBidXR0b24gZ3JvdXAgdXNlcywgc28gYSByb3dzLWNhcmQgb24gYSBwdXJwbGUgc2NyZWVuXG4vLyBjYXJyaWVzIHRoZSBzYW1lIHdlaWdodCBhcyB0aGUgc2hlZXQgb3B0aW9ucy4gVGhlIHJvd3MgaW5zaWRlIGFyZSByZWNvbG91cmVkXG4vLyBieSB0aGUgc2hhcmVkIHRva2VuIGJsb2NrIGFib3ZlOyB0aGlzIG9ubHkgb3ducyB0aGUgY2FyZCdzIG93biBzdXJmYWNlLlxuLnFkbmFwcm8tbGlzdC1yb3ctZ3JvdXAtLW9uLXB1cnBsZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZS0xNCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KSk7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLXNlY3Rpb24tY2FyZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgV2hpdGUgXCJzZWN0aW9uIGNhcmRcIiBmcmFtZTogdGl0bGUgKyBvcHRpb25hbCBhY2NlbnQgaWNvbiAodG9wLXJpZ2h0KVxuLy8gIGhvc3RpbmcgYSBTVEFDSyBPRiBST1dTICh0eXBpY2FsbHkgcWRuYXByby1saXN0LXJvdykgYXMgaXRzIG93biBkaXJlY3Rcbi8vICBjaGlsZHJlbiAtIHNlZSBxZG5hLXNlY3Rpb24tY2FyZC5qcydzIGhlYWRlciBkb2MtY29tbWVudCBmb3IgdGhlIGZ1bGxcbi8vICBcImNoaWxkcmVuIGFyZSBuZXZlciByZXBhcmVudGVkXCIgYXJjaGl0ZWN0dXJlIGNvbnRyYWN0IChSYWN0aXZlIG93bnMgdGhlXG4vLyAgcm93IERPTSBpbiB0aGUgUFdBKS4gVGhpcyBmaWxlIG9ubHkgZnJhbWVzIHRoZSBjYXJkLCB0aGUgaGVhZGVyIHJvdywgYW5kXG4vLyAgdGhlIGRpdmlkZXIgbGluZXMgYmV0d2VlbiByb3dzOyB0aGUgcm93cyB0aGVtc2VsdmVzIHN0eWxlIHRoZWlyIG93blxuLy8gIGNvbnRlbnQsIHRoaXMgY29tcG9uZW50IG5ldmVyIHRvdWNoZXMgdGhlbS5cbi8vXG4vLyAgVXNlcyByZWFsIFNDU1MgYCZgLW5lc3RpbmcsIHNvIHRoZSBQV0Egc3luYyBtdXN0IHVzZSBjb21waWxlU2NzczogdHJ1ZVxuLy8gIGZvciB0aGlzIGNvbXBvbmVudCAoc2FtZSBwYXRoIGFzIGxpc3Qtcm93L2dyaWQtdGlsZS9hcHAtaGVhZGVyIC0gc2VlXG4vLyAgc3luYy12Mi1jb21wb25lbnRzLmpzKSAtIGEgZmxhdCBcIi8vXCItc3RyaXAgY29weSB3b3VsZCBsZWF2ZSB0aGVcbi8vICBgOm5vdCguLi4pYCBzaWJsaW5nIHNlbGVjdG9yIGJlbG93IGFzIGxpdGVyYWwgYnJva2VuIENTUy5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBTdHlsZWQgb24gdGhlIFRBRywgbm90IG9uIC5xZG5hcHJvLXNlY3Rpb24tY2FyZCwgb24gcHVycG9zZS4gQSBSYWN0aXZlIGhvc3Rcbi8vICh0aGUgUFdBIGRvY3VtZW50cyBzY3JlZW4pIG1hbmFnZXMgYGNsYXNzPWAgb24gdGhpcyBlbGVtZW50IGZvciBpdHMgb3duIHN0YXRlXG4vLyBhbmQgcmV3cml0ZXMgdGhlIHdob2xlIGF0dHJpYnV0ZSB3aGVuIHRoYXQgc3RhdGUgY2hhbmdlcywgd2hpY2ggd291bGQgd2lwZVxuLy8gdGhlIGNvbXBvbmVudCdzIG93biBjbGFzcyBhbmQgc3RyaXAgZXZlcnkgcnVsZSBiZWxvdyB3aXRoIGl0LiBUaGUgdGFnIG5hbWVcbi8vIGNhbiBuZXZlciBiZSB3aXBlZC4gVGhlIEpTIHN0aWxsIGFkZHMgdGhlIGNsYXNzIGZvciBxdWVyeWluZy9jb25zaXN0ZW5jeS5cbi8vIFJlbGF0ZWQgaW5jaWRlbnQgZmFtaWx5OiBxZG5hcHJvLXRvb2x0aXAgLyBxZG5hcHJvLWlsbHVzdHJhdGlvbiBjbGFzc25hbWUtd2lwZS5cbnFkbmFwcm8tc2VjdGlvbi1jYXJkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLy8gTk8gcGFkZGluZyBvbiB0aGUgY2FyZCBpdHNlbGYgKEtpbSAyOC4wNy4yMDI2KTogdGhlIHJvd3MgbXVzdCBydW4gYWxsIHRoZVxuICAgIC8vIHdheSB0byB0aGUgY2FyZCdzIGVkZ2VzIHNvIGxvbmcgZmlsZW5hbWVzIGdldCB0aGUgbW9zdCB3aWR0aCBwb3NzaWJsZS5cbiAgICAvLyBUaGUgaW5zZXQgdGhlIHJvd3Mgc3RpbGwgaGF2ZSBpcyBxZG5hcHJvLWxpc3Qtcm93J3MgT1dOIDhweCAxNnB4IHBhZGRpbmcsXG4gICAgLy8gd2hpY2ggaXMgdGhhdCBjb21wb25lbnQncyBidXNpbmVzcywgbm90IHRoaXMgZnJhbWUncy4gT25seSB0aGUgaGVhZGVyXG4gICAgLy8gY2FycmllcyB0aGUgY2FyZCdzIG93biBpbnNldCAoc2VlIC5xc2MtaGVhZCBiZWxvdykuXG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmZmZmYpO1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgLy8gTmVlZGVkIG5vdyB0aGF0IHJvd3MgYXJlIGZ1bGwtYmxlZWQ6IGEgcm93J3MgaG92ZXIvcHJlc3NlZCBiYWNrZ3JvdW5kXG4gICAgLy8gKHFkbmFwcm8tbGlzdC1yb3cncyAtLXFsci1iZy1ob3ZlcikgcmVhY2hlcyB0aGUgY2FyZCdzIGVkZ2UsIHNvIHdpdGhvdXRcbiAgICAvLyB0aGlzIGl0IHdvdWxkIHNxdWFyZSBvZmYgdGhlIHJvdW5kZWQgY29ybmVycyBvbiB0aGUgZmlyc3QvbGFzdCByb3cuXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctY2FyZCwgMCAxcHggMnB4IHJnYmEoMjAsIDI1LCA4MCwgMC4wNCksIDAgNHB4IDE2cHggcmdiYSgyMCwgMjUsIDgwLCAwLjA0KSk7XG5cbiAgICAvLyBJbmplY3RlZCBET00tZmlyc3QgYnkgdGhlIEpTIChpbnNlcnRCZWZvcmUpOyBvcmRlcjotMSBpcyBhIHZhbmduZXQgaW5cbiAgICAvLyBjYXNlIGEgaG9zdCB0ZW1wbGF0ZSBldmVyIGluc2VydHMgYSByb3cgYmVmb3JlIGl0LiBDYXJyaWVzIHRoZSBjYXJkJ3NcbiAgICAvLyBpbnNldCBpdHNlbGYgc2luY2UgdGhlIGNhcmQgbm8gbG9uZ2VyIGhhcyBwYWRkaW5nLlxuICAgIC5xc2MtaGVhZCB7XG4gICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIHBhZGRpbmc6IDIwcHggMjBweCAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgICAvLyBPbmx5IGRvZXMgc29tZXRoaW5nIHdoZW4gYSBjb25zdW1lciBjYXBzIHRoZSBjYXJkJ3MgaGVpZ2h0IGFuZCBsZXRzXG4gICAgICAgIC8vIGl0IHNjcm9sbCAodGhlIFBXQSBkb2VzIHRoYXQgZm9yIGFuIGV4cGFuZGVkIHNlY3Rpb24pOiB0aGUgdGl0bGUgdGhlblxuICAgICAgICAvLyBzdGF5cyBpbiB2aWV3IGluc3RlYWQgb2Ygc2Nyb2xsaW5nIGF3YXkuIE9uIGEgY2FyZCB0aGF0IGRvZXMgbm90XG4gICAgICAgIC8vIHNjcm9sbCB0aGlzIGlzIGEgbm8tb3AuIE5lZWRzIGFuIG9wYXF1ZSBiYWNrZ3JvdW5kIHNvIHJvd3MgY2Fubm90XG4gICAgICAgIC8vIHNob3cgdGhyb3VnaCBpdCB3aGlsZSBzY3JvbGxpbmcuXG4gICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLCAjZmZmZmZmKTtcbiAgICB9XG5cbiAgICAucXNjLXRpdGxlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYTFmNGQpO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuXG4gICAgLy8gT3B0aW9uYWwgc3VidGl0bGUgdW5kZXIgdGhlIHRpdGxlICgwNC4wOC4yMDI2KS4gSXRzIG93biBkaXJlY3QgY2hpbGQgb2ZcbiAgICAvLyB0aGUgY2FyZCwgc2l0dGluZyBiZXR3ZWVuIC5xc2MtaGVhZCBhbmQgdGhlIGZpcnN0IHJvdyAtIHNlZVxuICAgIC8vIHFkbmEtc2VjdGlvbi1jYXJkLmpzJ3MgYGNhcmQtc3VidGl0bGVgIG5vdGUgZm9yIHdoeSBpdCBpcyBub3QgaW5zaWRlIHRoZVxuICAgIC8vIGhlYWQuIENhcnJpZXMgdGhlIGNhcmQncyBvd24gaW5zZXQsIGxpa2UgLnFzYy1lbXB0eSBkb2VzLCBzaW5jZSB0aGUgY2FyZFxuICAgIC8vIGl0c2VsZiBoYXMgbm8gcGFkZGluZy5cbiAgICAucXNjLXN1YnRpdGxlIHtcbiAgICAgICAgcGFkZGluZzogMCAyMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbiAgICAgICAgLy8gS2VlcHMgdGhlIHNlbnRlbmNlIHJlYWRhYmxlIG9uIGEgd2lkZSBjYXJkIGluc3RlYWQgb2YgcnVubmluZyB0aGVcbiAgICAgICAgLy8gZnVsbCBjYXJkIHdpZHRoLiBPdmVycmlkYWJsZSBwZXIgY29uc3VtZXIgd2l0aG91dCBhIG5ldyBhdHRyaWJ1dGUuXG4gICAgICAgIG1heC13aWR0aDogdmFyKC0tcXNjLXN1YnRpdGxlLW1heC13aWR0aCwgNjJjaCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLSBzaXplPVwiY29tcGFjdFwiICgwNC4wOC4yMDI2KSAtLS0tXG4gICAgLy8gS2ltOiBoZXQgMjRweC83MDAga2FhcnRrb3BqZSBpcyB0ZSBsdWlkIG9wIGVlbiBwYWdpbmEgZGllIHZpZXIga2FhcnRlblxuICAgIC8vIHN0YXBlbHQgKGRlIHRha2VubGlqc3QtaW5zdGVsbGluZ2VuKS4gWmllIHFkbmEtc2VjdGlvbi1jYXJkLmpzJ3MgYHNpemVgXG4gICAgLy8gbm90ZS4gRGUgMTdweC82MDAgaXMgR0VFTiBuaWV1dyBnZWtvemVuIGdldGFsOiBkYXQgaXMgZXhhY3Qgd2F0XG4gICAgLy8gLnFkbmFwcm8taW5mby1jYXJkX190aXRsZSBhbCBnZWJydWlrdCB2b29yIGVlbiB0aXRlbCBvcCBlZW4gd2l0dGUga2FhcnQuXG4gICAgLy8gSWNvb24gZW4gaW5zZXQgZ2FhbiBtZWUsIHdhbnQgZWVuIDI4cHggYWNjZW50LWljb29uIG5hYXN0IGVlbiAxN3B4IHRpdGVsXG4gICAgLy8gb3AgZWVuIDIwcHggaW5zZXQgbGVlc3QgYWxzIGVlbiBnZXdvbmUga2FhcnQgbWV0IGVlbiBnZWtyb21wZW4gdGl0ZWwgaW5cbiAgICAvLyBwbGFhdHMgdmFuIGFscyBlZW4ga2xlaW5lcmUga2FhcnQuXG4gICAgJi5xc2Mtc2l6ZS1jb21wYWN0IHtcbiAgICAgICAgLnFzYy1oZWFkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDE2cHggMTZweCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnFzYy10aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnFzYy1zdWJ0aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIH1cblxuICAgICAgICAucXNjLWljb24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGUgbGVnZS1zdGFhdCBob3VkdCBkZXplbGZkZSBpbnNldCBhbHMgZGUgb25kZXJ0aXRlbCBhYW4uXG4gICAgICAgIC5xc2MtZW1wdHkge1xuICAgICAgICAgICAgcGFkZGluZzogMCAxNnB4IDE2cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBXaXRoIGEgc3VidGl0bGUgcHJlc2VudCwgdGhlIGhlYWQncyBvd24gMTJweCBib3R0b20gbWFyZ2luIHdvdWxkIHN0YWNrXG4gICAgLy8gb24gdG9wIG9mIHRoZSBzdWJ0aXRsZSdzLCBsZWF2aW5nIGEgMjRweCBob2xlIGJldHdlZW4gdGl0bGUgYW5kXG4gICAgLy8gc3VidGl0bGUuIFRoZSBob3N0IGNsYXNzIGNvbWVzIGZyb20gdGhlIEpTIChjbGFzc0xpc3QudG9nZ2xlKSwgd2hpY2hcbiAgICAvLyBhdm9pZHMgbmVlZGluZyA6aGFzKCkgaGVyZSAtIHRoYXQgd291bGQgcnVsZSBvdXQgb2xkZXIgV2ViS2l0LlxuICAgICYucXNjLWhhcy1zdWJ0aXRsZSAucXNjLWhlYWQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgfVxuXG4gICAgLy8gQWNjZW50IGljb24sIHRvcC1yaWdodC4gZmxleC1zaHJpbmsgc28gYSBsb25nIHRpdGxlIG5ldmVyIHNxdWlzaGVzIGl0LlxuICAgIC8vIDI4cHggcGVyIHRoZSBkZXNpZ24uIFNldCBhcyBhIGZvbnQtc2l6ZSwgTk9UIHZpYSBxZG5hcHJvLWljb24ncyBgc2l6ZWBcbiAgICAvLyBhdHRyaWJ1dGU6IHRoYXQgY29tcG9uZW50IG9ubHkgaGFzIC5pY29uLTE2Ly5pY29uLTIwLy5pY29uLTI0IGNsYXNzZXMsXG4gICAgLy8gc28gc2l6ZT1cIjI4XCIgd291bGQgcmVzb2x2ZSB0byBub3RoaW5nLiBJdHMgYm94IGlzIHdpZHRoL2hlaWdodDogMWVtLCBzb1xuICAgIC8vIGEgZm9udC1zaXplIGhlcmUgc2l6ZXMgaXQgZXhhY3RseS5cbiAgICAucXNjLWljb24ge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgIH1cblxuICAgIC5xc2MtaWNvbi1jb2xvci1oZWFkaW5nIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMWExZjRkKTtcbiAgICB9XG5cbiAgICAucXNjLWljb24tY29sb3ItaGVhcnQge1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1mYXZvcml0ZS1oZWFydCwgI2ZmNGQ2YSk7XG4gICAgfVxuXG4gICAgLnFzYy1pY29uLWNvbG9yLXB1cnBsZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xuICAgIH1cblxuICAgIC5xc2MtaWNvbi1jb2xvci1ncmV5IHtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gICAgfVxuXG4gICAgLy8gS2VlcHMgdGhlIGNhcmQncyBvd24gaW5zZXQgKHRoZSBjYXJkIGhhcyBub25lKTogYW4gZW1wdHktc3RhdGUgU0VOVEVOQ0VcbiAgICAvLyBnbHVlZCB0byB0aGUgY2FyZCBlZGdlIHdvdWxkIHJlYWQgYXMgYnJva2VuLCB1bmxpa2UgYSByb3cgKHdoaWNoIGJyaW5nc1xuICAgIC8vIGl0cyBvd24gcGFkZGluZyBhbmQgaXMgbWVhbnQgdG8gYmUgZnVsbC1ibGVlZCkuXG4gICAgLnFzYy1lbXB0eSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMjBweCAyMHB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xuICAgIH1cblxuICAgIC8vIERpdmlkZXIgbGluZSBiZXR3ZWVuIHR3byBjb25zZWN1dGl2ZSBST1dTIG9ubHkgLSBuZXZlciBhYm92ZSB0aGVcbiAgICAvLyBmaXJzdCByb3cgKHRoZSBoZWFkIHByZWNlZGVzIGl0IGluIERPTSwgZXhwbGljaXRseSBleGNsdWRlZCBoZXJlKVxuICAgIC8vIGFuZCBuZXZlciBhcm91bmQgdGhlIGVtcHR5LXN0YXRlIG1lc3NhZ2Ugb3IgdGhlIHN1YnRpdGxlLlxuICAgIC8vXG4gICAgLy8gLnFzYy1zdWJ0aXRsZSBtdXN0IGJlIGV4Y2x1ZGVkIG9uIEJPVEggc2lkZXMgKDA0LjA4LjIwMjYpOiBhcyB0aGVcbiAgICAvLyBzZWNvbmQgZWxlbWVudCBpdCBpcyBhbHJlYWR5IHNhZmUgKHRoZSAucXNjLWhlYWQgYmVmb3JlIGl0IGZhaWxzIHRoZVxuICAgIC8vIGZpcnN0IDpub3QpLCBidXQgYXMgdGhlIEZJUlNUIGVsZW1lbnQgaXQgd291bGQgb3RoZXJ3aXNlIHB1dCBhIGJvcmRlclxuICAgIC8vIG9uIHRvcCBvZiB0aGUgZmlyc3Qgcm93IC0gdGhlIGV4YWN0IGxpbmUgdGhpcyBzZWxlY3RvciBleGlzdHMgdG8gYXZvaWQuXG4gICAgPiA6bm90KC5xc2MtaGVhZCk6bm90KC5xc2MtZW1wdHkpOm5vdCgucXNjLXN1YnRpdGxlKVxuICAgICsgOm5vdCgucXNjLWhlYWQpOm5vdCgucXNjLWVtcHR5KTpub3QoLnFzYy1zdWJ0aXRsZSkge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYyk7XG4gICAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1zZWFyY2gtb3ZlcmxheVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgSW5zdGFncmFtLXN0eWxlIGZ1bGxzY3JlZW4gc2VhcmNoIHRha2VvdmVyLiBQb3J0YWxsZWQgdG8gPGJvZHk+IG9uXG4vLyAgb3BlbigpIChzZWUgcWRuYS1zZWFyY2gtb3ZlcmxheS5qcyksIHNhbWUgcmVhc29uaW5nIGFzXG4vLyAgcWRuYXByby11bml0LWNvbnRleHQuIENvbnN1bWVzIGRlc2lnbiB0b2tlbnMgZnJvbVxuLy8gIGRlc2lnbi10b2tlbnMvX2Rlc2lnbi10b2tlbnMuc2Nzcy4gQ29tcG9zZXMgcWRuYXByby1pbnB1dCAoc2VhcmNoXG4vLyAgZmllbGQpLCBxZG5hcHJvLWxpc3Qtcm93IChyZWNlbnQgKyByZXN1bHQgcm93cyksIHFkbmFwcm8tdGV4dC1saW5rXG4vLyAgKFwiV2lzc2VuXCIgY2xlYXItYWxsIG9ubHksIHNlZSBGSVggYmVsb3cpLCBxZG5hcHJvLWljb24tYnRuIChjYW5jZWwgK1xuLy8gIHBlci10ZXJtIHJlbW92ZSkuXG4vL1xuLy8gIEZJWCAoMjEuMDcuMjAyNiwgS2ltJ3MgdG9lc3RlbC10ZXN0IC0gQ1JJVElDQUwpOiB0aGUgY2FuY2VsIGJ1dHRvbiB1c2VkIHRvXG4vLyAgYmUgYSBxZG5hcHJvLXRleHQtbGluayB0b28uIFRoYXQgY29tcG9uZW50IHNoaXBwZWQgd2l0aCBOTyB3b3JraW5nIENTU1xuLy8gIGFueXdoZXJlIChzZWUgX3RleHQtbGluay5zY3NzJ3Mgb3duIGhlYWRlciBjb21tZW50KSBzbyB0aGUgY2FuY2VsIGJ1dHRvblxuLy8gIHdhcyBpbnZpc2libGUgb24gdGhlIFBXQSAtIEtpbSBnb3Qgc3R1Y2sgaW4gdGhlIGZ1bGxzY3JlZW4gdGFrZW92ZXIgd2l0aCBub1xuLy8gIHdheSBvdXQuIFN3YXBwZWQgZm9yIGEgcWRuYXByby1pY29uLWJ0biAoaWNvbj1cImNsb3NlXCIsIDQ0cHggdGFyZ2V0KSBwZXJcbi8vICBLaW0ncyBleHBsaWNpdCBhcHByb3ZhbDsgdGV4dC1saW5rJ3MgQ1NTIGlzIGZpeGVkIHRvbywgc28gXCJXaXNzZW5cIiBzdGF5cy5cbi8vXG4vLyAgTk9URTogdGhpcyBmaWxlIGlzIGEgY2FuZGlkYXRlIGZvciB0aGUgc2FtZSBzeW5jLXYyLWNvbXBvbmVudHMuanMgUFdBXG4vLyAgc3luYyB0aGF0IHFkbmFwcm8tdW5pdC1jb250ZXh0L3FkbmFwcm8tYXBwLWhlYWRlciB1c2UgKHdoaWNoIG9ubHlcbi8vICBzdHJpcHMgLy8gY29tbWVudHMg4oCUIGl0IGRvZXMgTk9UIGNvbXBpbGUgU0NTUyBuZXN0aW5nKS4gS2VlcCBBTExcbi8vICBzZWxlY3RvcnMgRkxBVCAobm8gJiBuZXN0aW5nKSBzbyB0aGUgZmlsZSBhbHJlYWR5IHdvcmtzIGFzIHBsYWluIENTU1xuLy8gIGlmL3doZW4gaXQncyBzeW5jZWQsIHdpdGhvdXQgbmVlZGluZyBhIHJld3JpdGUgYXQgdGhhdCBwb2ludC5cbi8vXG4vLyAgbW9kZT1cImRyb3Bkb3duXCIgKDMwLjA3LjIwMjYsIGJhY2tvZmZpY2Ugc2VhcmNoLCBTRUNPTkQgZGVzaWduIGNvcnJlY3Rpb25cbi8vICDigJQgYW4gZWFybGllciBcIndlbGQgdGhlIHBhbmVsIHVuZGVyIHRoZSBmaWVsZFwiIGF0dGVtcHQgd2FzIHdyb25nIGFuZCBoYXNcbi8vICBiZWVuIGZ1bGx5IHJlbW92ZWQpOiBzZWUgLnFzby1tb2RlLWRyb3Bkb3duIGJlbG93IGZvciB0aGUgT05FIENBUkRcbi8vICB2YXJpYW50IHRoYXQgZHJvcHMgZXhhY3RseSBvbiB0b3Agb2YgYSBwYWdlIHNlYXJjaCBiYXIgKG93biBmaWVsZCByb3csXG4vLyAgZGl2aWRlciwgcmVjZW50cy9yZXN1bHRzIGJlbG93KSArIHFkbmEtc2VhcmNoLW92ZXJsYXkuanMnc1xuLy8gIF9wb3NpdGlvbkRyb3Bkb3duKCkgZm9yIHRoZSBKUyBoYWxmLiBSZXVzZXMgdGhlIHFkbmEtc2Nyb2xsYmFyIG1peGluXG4vLyAgKG1vZHVsZXMvX21peGlucy5zY3NzKSBmb3IgdGhlIHBhbmVsJ3Mgb3duIHNjcm9sbCBhcmVhIOKAlCBzY29wZWQgdG9cbi8vICBkcm9wZG93biBtb2RlIG9ubHksIHNvIHRoZSB0YWtlb3ZlciBtb2RlJ3MgbmF0aXZlIHNjcm9sbGJhciBzdGF5c1xuLy8gIGJ5dGUtaWRlbnRpY2FsIHRvIGJlZm9yZSBgbW9kZWAgZXhpc3RlZC5cbi8vXG4vLyAgc3VyZmFjZT1cImdyZXlcIiAoMzEuMDcuMjAyNiwgbW9kZT1cImRyb3Bkb3duXCIgb25seSk6IHNlZSAucXNvLXN1cmZhY2UtZ3JleVxuLy8gIG5lYXIgdGhlIGVuZCBvZiB0aGlzIGZpbGUgLSByZWNvbG91cnMgdGhlIGNhcmQgdG8gdmFyKC0tYy1ncmV5LTEwMCkgZm9yXG4vLyAgaG9zdGluZyB0aGlzIGJhciBpbnNpZGUgYSB3aGl0ZSBhcHAtaGVhZGVyLCBwbHVzIHRoZSB0d28gZXhpc3RpbmctdG9rZW5cbi8vICBjb250cmFzdCBmaXhlcyB0aGF0IGNvbG91ciBjaGFuZ2UgbmVlZGVkICh0aGUgZGl2aWRlciwgdGhlIHJvdyBob3ZlcikuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQHVzZSAnLi4vLi4vLi4vbW9kdWxlcy9taXhpbnMnIGFzICo7XG5cbi8vIC0tLS0tLS0tLS0gaG9zdCAtLS0tLS0tLS0tXG4vLyBUaGUgaG9zdCBpdHNlbGYgcmVuZGVycyBubyBib3gg4oCUIGFsbCByZWFsIGNvbnRlbnQgbGl2ZXMgaW4gLnFzby1vdmVybGF5LFxuLy8gd2hpY2ggaXMgcG9ydGFsbGVkIHRvIDxib2R5PiBvbiBvcGVuKCkgYW5kIGhpZGRlbiAobmF0aXZlIFtoaWRkZW5dLFxuLy8gZGlzcGxheTpub25lKSB3aGlsZSBjbG9zZWQuIFNhbWUgaWRpb20gYXMgcWRuYXByby1ldmVudC1zaGVldCAvXG4vLyBxZG5hcHJvLXRyYW5zbGF0aW9uLXBhbmVsIC8gcWRuYXByby10cmFuc2xhdGlvbi1tb2RhbC5cbi5xZG5hcHJvLXNlYXJjaC1vdmVybGF5IHsgZGlzcGxheTogY29udGVudHM7IH1cblxuLy8gRGVmZW5zaXZlIGd1YXJkICgyMS4wNy4yMDI2LCBLaW0ncyB0b2VzdGVsLXRlc3QpOiBpZiB0aGlzIHRhZyBpcyBldmVyXG4vLyBwcmVzZW50IGluIHRoZSBET00gYmVmb3JlIHRoZSBjdXN0b20gZWxlbWVudCBkZWZpbml0aW9uIGhhcyByZWdpc3RlcmVkXG4vLyAoZS5nLiB3cml0dGVuIGRpcmVjdGx5IGluIG1hcmt1cCByYXRoZXIgdGhhbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50J2Rcbi8vIEFGVEVSIGVuc3VyZSgpK3doZW5EZWZpbmVkIHJlc29sdmVkLCBhcyB0aGlzIGNvbXBvbmVudCdzIG93biBjb25zdW1lcnMgZG9cbi8vIHRvZGF5IC0gc2VlIHFkbmEtcG9wb3Zlci5qcydzIHNpYmxpbmcgZ3VhcmQgZm9yIHRoZSBzYW1lIHJlYXNvbmluZyksIGl0XG4vLyBtdXN0IG5ldmVyIHJlbmRlciBpdHMgcmF3IGxpZ2h0LURPTSBjaGlsZHJlbiB1bnN0eWxlZC9leHBvc2VkIC0gaGlkZSBpdFxuLy8gb3V0cmlnaHQgdW50aWwgdXBncmFkZWQuIFRBRyBzZWxlY3RvciBvbiBwdXJwb3NlOiB0aGUgLnFkbmFwcm8tc2VhcmNoLW92ZXJsYXlcbi8vIGNsYXNzIGlzIG9ubHkgYWRkZWQgYnkgY29ubmVjdGVkQ2FsbGJhY2sgQUZURVIgdXBncmFkZSwgc28gYSBjbGFzcy1iYXNlZFxuLy8gOm5vdCg6ZGVmaW5lZCkgcnVsZSBjYW4gbmV2ZXIgbWF0Y2ggYW55dGhpbmcuXG5xZG5hcHJvLXNlYXJjaC1vdmVybGF5Om5vdCg6ZGVmaW5lZCkgeyBkaXNwbGF5OiBub25lOyB9XG5cbi8vIC0tLS0tLS0tLS0gb3ZlcmxheSBzaGVsbCAtLS0tLS0tLS0tXG4ucXNvLW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBpbnNldDogMDtcbiAgICB6LWluZGV4OiAyMTQ3NDgzMDAwOyAvLyBwb3J0YWxsZWQgdG8gPGJvZHk+OiBzaXQgYWJvdmUgZXZlcnl0aGluZywgc2FtZSB2YWx1ZSBhcyBxZG5hcHJvLXVuaXQtY29udGV4dFxuICAgIGRpc3BsYXk6IGZsZXg7XG59XG4ucXNvLW92ZXJsYXlbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLnFzby1iYWNrZHJvcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmxhY2stMzApO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLS1xc28tZHVyYXRpb246IDIwMG1zO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tcXNvLWR1cmF0aW9uKSBlYXNlO1xufVxuXG4ucXNvLXBhbmVsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleDogMTtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIC8vIG1pbi13aWR0aDogMCBpcyBoaWVyIEdFRU4gbmV0dGUgdG9ldm9lZ2luZyBtYWFyIGVlbiBidWdmaXggW0tpbSAzMC4wNy4yMDI2LFxuICAgIC8vIG9wIGhhYXIgdG9lc3RlbDogZGUgem9la3Jlc3VsdGF0ZW4gbGllcGVuIGJ1aXRlbiBoZXQgc2NoZXJtXS5cbiAgICAvL1xuICAgIC8vIFdhYXJvbSBoZXQgbWlzZ2luZzogZWVuIGZsZXgtaXRlbSBoZWVmdCBzdGFuZGFhcmQgYG1pbi13aWR0aDogYXV0b2AsIGR1cyBoZXRcbiAgICAvLyBrcmltcHQgbm9vaXQgb25kZXIgZGUgbWluLWNvbnRlbnQgYnJlZWR0ZSB2YW4gemlqbiBpbmhvdWQuIERlIHRpdGVsIGVuIGRlXG4gICAgLy8gb25kZXJ0aXRlbCB2YW4gZWVuIHJlc3VsdGFhdHJpaiBzdGFhbiBvcCBgd2hpdGUtc3BhY2U6IG5vd3JhcGAsIGVuIGRhYXJtZWUgSVNcbiAgICAvLyBkZSBtaW4tY29udGVudCBicmVlZHRlIGRlIHZvbGxlZGlnZSByZWdlbC4gQmlqIGVlbiBsYW5nZSB0aXRlbCByZWt0ZSBkaXRcbiAgICAvLyBwYW5lZWwgZHVzIG1lZSB0b3Qgdm9vcmJpaiBkZSBzY2hlcm1yYW5kIGluIHBsYWF0cyB2YW4gZGUgdGVrc3QgYWYgdGUga25pcHBlbi5cbiAgICAvLyBEZSBhZmthcC1yZWdlbHMgb3AgZGUgcmlqIHplbGYga3dhbWVuIGRhYXJkb29yIG5vb2l0IGFhbiBkZSBiZXVydC5cbiAgICAvL1xuICAgIC8vIFdhYXJvbSBEb2N1bWVudGVuIGVyIG5vb2l0IHRlZ2VuYWFuIGxpZXA6IG1hcG5hbWVuIGVuIGJlc3RhbmRzbmFtZW4gemlqbiBrb3J0LlxuICAgIC8vIEhldCBwb3N0dmFrIGlzIGRlIGVlcnN0ZSBnZWJydWlrZXIgbWV0IHRpdGVscyB2YW4gZWVuIGhhbHZlIHppbiwgZHVzIGRpdCBrb210XG4gICAgLy8gbnUgcGFzIGJvdmVuIHdhdGVyLiBEZSBmaXggaG9vcnQgaW4gaGV0IGNvbXBvbmVudCBlbiBuaWV0IGluIGhldCBwb3N0dmFrLCB3YW50XG4gICAgLy8gZWxrZSB2b2xnZW5kZSBnZWJydWlrZXIgbWV0IGxhbmdlIHRla3N0IGhhZCBoZW0gb3BuaWV1dyBnZXJhYWt0LlxuICAgIG1pbi13aWR0aDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgICBwYWRkaW5nLXRvcDogZW52KHNhZmUtYXJlYS1pbnNldC10b3AsIDBweCk7XG4gICAgLy8gVGFrZW92ZXIgYW5pbWF0aW9uOiBvcGFjaXR5ICsgdHJhbnNmb3JtIE9OTFkgKG5vIGxheW91dC1hZmZlY3RpbmdcbiAgICAvLyBwcm9wZXJ0aWVzLCBwZXIgdGhlIFwia29ydCBlbiBzdHJha1wiIHJlcXVpcmVtZW50KSDigJQgYSBzb2Z0XG4gICAgLy8gZmFkZSArIHNsaWdodCBkb3dud2FyZCBzZXR0bGUsIG5vdCBhIGxheW91dCByZWZsb3cuXG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCkgc2NhbGUoMC45OCk7XG4gICAgLS1xc28tZHVyYXRpb246IDIwMG1zO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tcXNvLWR1cmF0aW9uKSBlYXNlLCB0cmFuc2Zvcm0gdmFyKC0tcXNvLWR1cmF0aW9uKSBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5LCB0cmFuc2Zvcm07XG59XG5cbi5xc28tb3ZlcmxheS5pcy1vcGVuIC5xc28tYmFja2Ryb3AgeyBvcGFjaXR5OiAxOyB9XG4ucXNvLW92ZXJsYXkuaXMtb3BlbiAucXNvLXBhbmVsIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAucXNvLWJhY2tkcm9wLFxuICAgIC5xc28tcGFuZWwge1xuICAgICAgICAtLXFzby1kdXJhdGlvbjogMG1zO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLSBoZWFkZXI6IHNlYXJjaCBmaWVsZCArIGNhbmNlbCAtLS0tLS0tLS0tXG4ucXNvLWhlYWRlciB7XG4gICAgZmxleDogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1zLTMpO1xuICAgIHBhZGRpbmc6IHZhcigtLXMtNCkgdmFyKC0tcy00KSB2YXIoLS1zLTIpO1xuICAgIC8vIGJvcmRlci1ib3ggKDMwLjA3LjIwMjYsIGRyb3Bkb3duIG1vZGUncyBPTkUgQ0FSRCBjb250cmFjdCk6IGluXG4gICAgLy8gbW9kZT1cImRyb3Bkb3duXCIsIHFkbmEtc2VhcmNoLW92ZXJsYXkuanMgc2V0cyBhbiBleHBsaWNpdCBpbmxpbmVcbiAgICAvLyBgaGVpZ2h0YCBvbiB0aGlzIHJvdyB0byBtYXRjaCB0aGUgYW5jaG9yJ3Mgb3duIGhlaWdodCBleGFjdGx5IChzZWVcbiAgICAvLyBfcG9zaXRpb25Ecm9wZG93bigpKSDigJQgd2l0aG91dCBib3JkZXItYm94IHRoYXQgaGVpZ2h0IHdvdWxkIGJlIEFEREVEXG4gICAgLy8gdG8gYnkgdGhlIHBhZGRpbmcgYWJvdmUsIG1ha2luZyB0aGUgcm93IHRhbGxlciB0aGFuIHRoZSBhbmNob3IgYW5kXG4gICAgLy8gYnJlYWtpbmcgdGhlIFwiY292ZXJzIGl0IHdpdGggbm8gdmlzdWFsIGp1bXBcIiBjb250cmFjdC4gSGFybWxlc3MgaW5cbiAgICAvLyB0YWtlb3ZlciBtb2RlLCB3aGljaCBuZXZlciBzZXRzIHRoYXQgaW5saW5lIGhlaWdodC5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ucXNvLWZpZWxkIHtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLy8gRklYICgyMS4wNy4yMDI2LCBLaW0ncyB0b2VzdGVsLXRlc3QpOiBjYW5jZWwgaXMgbm93IGEgcWRuYXByby1pY29uLWJ0blxuLy8gKGljb249XCJjbG9zZVwiLCBzaXplPVwidG91Y2hcIiAtIGFscmVhZHkgYSByZWFsIDQ0eDQ0IHRhcmdldCBvbiBpdHMgb3duKSwgbm90XG4vLyBhIHFkbmFwcm8tdGV4dC1saW5rIC0gaXQgbWFuYWdlcyBpdHMgb3duIGRpc3BsYXkvc2l6aW5nLCBzbyBvbmx5IGBmbGV4OlxuLy8gbm9uZWAgaXMgc3RpbGwgbmVlZGVkIGhlcmUgKGtlZXBzIGl0IGZyb20gc3RyZXRjaGluZyBpbiB0aGUgLnFzby1oZWFkZXIgcm93KS5cbi5xc28tY2FuY2VsIHtcbiAgICBmbGV4OiBub25lO1xufVxuXG4vLyAtLS0tLS0tLS0tIG5vdmEgc2xvdCAtLS0tLS0tLS0tXG4ucXNvLW5vdmEge1xuICAgIGZsZXg6IG5vbmU7XG4gICAgcGFkZGluZzogMCB2YXIoLS1zLTQpIHZhcigtLXMtMik7XG59XG4ucXNvLW5vdmE6ZW1wdHkgeyBkaXNwbGF5OiBub25lOyB9XG5cbi8vIC0tLS0tLS0tLS0gYm9keTogcmVjZW50cyAvIHJlc3VsdHMgLyBlbXB0eSAtLS0tLS0tLS0tXG4ucXNvLWJvZHkge1xuICAgIC8vIFplbGZkZSByZWRlbiBhbHMgYmlqIC5xc28tcGFuZWwgaGllcmJvdmVuOiB6b25kZXIgZGl0IGthbiBkZSBpbmhvdWQgZGVcbiAgICAvLyBob29ndGUtc2Nyb2xsZXIgYWxzbm9nIGluIGRlIGJyZWVkdGUgb3ByZWtrZW4uXG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGZsZXg6IDE7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICAvLyBHRUVOIGhvcml6b250YWxlIHBhZGRpbmcgKG9udHdlcnAtY29ycmVjdGllcm9uZGUgMzAuMDcuMjAyNiwgd2FzIGVlcnN0XG4gICAgLy8gb3B0LWluIHZpYSBoZXQgYHJlc3VsdHMtYmxlZWRgLWF0dHJpYnV1dCDigJQgbnUgZGUgc3RhbmRhYXJkIGluIEJFSURFXG4gICAgLy8gbW9kZXMsIGR1cyBkYXQgYXR0cmlidXV0IGlzIHZlcnZhbGxlbiwgemllIGRlIG9wbWVya2luZyBiaWpcbiAgICAvLyAucXNvLXNlY3Rpb24taGVhZGluZyBoaWVyb25kZXIpLiBEZSByaWplbiBsb3BlbiB6byB0b3QgZGUgcmFuZCB2YW4gaGV0XG4gICAgLy8gcGFuZWVsIGRvb3IsIHpvZGF0IGRlIGhvdmVyLWFjaHRlcmdyb25kIGRlIHZvbGxlIGJyZWVkdGUgcGFrdCDigJQgcHJlY2llc1xuICAgIC8vIHpvYWxzIGRlIGJlcmljaHRlbmxpanN0IGluIGhldCBwb3N0dmFrLCBkaWUgZGV6ZWxmZGUgb3ZlcmxheSBnZWJydWlrdC5cbiAgICAvLyBFbGtlIHJpaiBob3VkdCB6aWpuIEVJR0VOIGJpbm5lbnBhZGRpbmcgKHFkbmFwcm8tbGlzdC1yb3cncyBlaWdlblxuICAgIC8vIDE2cHgpLCBkdXMgZGUgdGVrc3QgYmxpamZ0IG5ldGplcyB1aXRnZWxpam5kOyBhbGxlZW4gaGV0IGFhbnJhYWt2bGFrIGVuXG4gICAgLy8gZGUgYWNodGVyZ3JvbmQgdmFuIGVlbiByaWogbG9wZW4gZG9vciB0b3QgZGUgcmFuZC5cbiAgICBwYWRkaW5nOiAwIDAgdmFyKC0tcy00KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1zLTIpO1xufVxuXG4ucXNvLXJlY2VudHNbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLnFzby1yZWNlbnRzLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IHZhcigtLXMtMik7XG4gICAgcGFkZGluZzogdmFyKC0tcy0zKSB2YXIoLS1zLTIpIHZhcigtLXMtMSk7XG59XG5cbi5xc28tcmVjZW50cy1oZWFkaW5nIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LW1lZGl1bSk7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICAgIC8vIEhvcml6b250YWxlIHBhZGRpbmcgaGllciBwZXJtYW5lbnQgKHdhcyBvcHQtaW4gdmlhIGhldCB2ZXJ2YWxsZW5cbiAgICAvLyBgcmVzdWx0cy1ibGVlZGAtYXR0cmlidXV0LCB6aWUgZGUgb3BtZXJraW5nIGJpaiAucXNvLXNlY3Rpb24taGVhZGluZ1xuICAgIC8vIGhpZXJvbmRlcikg4oCUIGFuZGVycyBwbGFrdCBkZSB0ZWtzdCB0ZWdlbiBkZSByYW5kIG51IC5xc28tYm9keSB6ZWxmXG4gICAgLy8gZ2VlbiBob3Jpem9udGFsZSBwYWRkaW5nIG1lZXIgaGVlZnQuXG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zLTQpO1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLXMtNCk7XG59XG5cbi5xc28tcmVjZW50cy1saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAycHg7XG59XG5cbi5xc28tcmVzdWx0cy1saXN0W2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4ucXNvLXJlc3VsdHMtbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMnB4O1xuICAgIC8vIEVuIGhpZXIgb29rLCB6b2RhdCBkZSByaWplbiB6ZWxmIGRlIGJyZWVkdGUgdmFuIGRlIGxpanN0IHZvbGdlbiBpbiBwbGFhdHMgdmFuXG4gICAgLy8gZGUgbGlqc3QgZGUgYnJlZWR0ZSB2YW4gZGUgbGFuZ3N0ZSByaWouXG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4vLyBmdWxsLWJsZWVkIHJlc3VsdHMgKG9udHdlcnAtY29ycmVjdGllcm9uZGUgMzAuMDcuMjAyNik6IGRpdCB3YXMgdG90IG51IHRvZVxuLy8gb3B0LWluIHZpYSBlZW4gYHJlc3VsdHMtYmxlZWRgLWF0dHJpYnV1dCAoYC5xc28tb3ZlcmxheVtkYXRhLXJlc3VsdHMtYmxlZWRdYClcbi8vIG9tZGF0IGFsbGVlbiBoZXQgcG9zdHZhayBoZXQgd2lsZGUgZW4gRG9jdW1lbnRlbiB6aWpuIHppam1hcmdlIGhpZWxkLiBIZXRcbi8vIG9udHdlcnAgd2lsIGRlIHZvbGxlIGJyZWVkdGUgbnUgb3ZlcmFsIChCRUlERSBtb2Rlcykg4oCUIHppZSAucXNvLWJvZHlcbi8vIGhpZXJib3ZlbiwgZGF0IGF0dHJpYnV1dCBpcyBkdXMgdmVydmFsbGVuIGVuIGRlIGtvcHBlbi9sZWdlLXRla3N0IGhpZXJvbmRlclxuLy8gKGVuIC5xc28tcmVjZW50cy1oZWFkaW5nIGhpZXJib3Zlbikga3JpamdlbiBodW4gZWlnZW4gaG9yaXpvbnRhbGUgcGFkZGluZ1xuLy8gcGVybWFuZW50IGluIHBsYWF0cyB2YW4gZ2F0ZWQuIERlIGtvcHBlbi9sZWdlLXRla3N0IHN0YWFuIG5pZXQgaW4gZWVuIHJpalxuLy8gKGRpZSBoZWVmdCBoYWFyIGVpZ2VuIDE2cHggYmlubmVucGFkZGluZywgemllIHFkbmFwcm8tbGlzdC1yb3cpIGVuIHpvdWRlblxuLy8gem9uZGVyIGVpZ2VuIHBhZGRpbmcgdGVnZW4gZGUgcmFuZCBwbGFra2VuIOKAlCB2YXIoLS1zLTQpID0gMTZweCwgem9kYXQgaHVuXG4vLyB0ZWtzdCB1aXRsaWpudCBtZXQgZGUgcmlqdGVrc3QuXG4ucXNvLXNlY3Rpb24taGVhZGluZyB7XG4gICAgcGFkZGluZzogdmFyKC0tcy0zKSB2YXIoLS1zLTQpIHZhcigtLXMtMSk7XG4gICAgLy8gR2V3b25lIHNjaHJpamZ3aWp6ZSwgZ2VlbiBrYXBpdGFsZW4gKG9udHdlcnAtY29ycmVjdGllcm9uZGUgMzAuMDcuMjAyNik6XG4gICAgLy8gZGUgdGVrc3Qga29tdCB2YW4gZGUgaG9zdCAoYHsgaGVhZGluZywgY291bnQgfWAsIHppZSBxZG5hLXNlYXJjaC1vdmVybGF5LmpzKVxuICAgIC8vIGVuIG1hZyBuaWV0IGRvb3IgQ1NTIG5hYXIgaG9vZmRsZXR0ZXJzIGdlZHdvbmdlbiB3b3JkZW4g4oCUIHZlcmdlbGlqayBkZVxuICAgIC8vIHJlZmVyZW50aWUgKFwiUmVjZW50IHNlYXJjaGVzXCIpLCBuaWV0IFwiQkVSSUNIVEVOICgyMylcIi5cbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LW1lZGl1bSk7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nKTtcbn1cblxuLnFzby1lbXB0eVtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLnFzby1lbXB0eSB7XG4gICAgZmxleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IHZhcigtLXMtOCkgdmFyKC0tcy00KTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8vIC0tLS0tLS0tLS0gXCJ2aWV3IGFsbFwiIHJvdyAoZ3JvdXBpbmcgY2FwLCAzMC4wNy4yMDI2KSAtLS0tLS0tLS0tXG4vLyBBIHBsYWluIHFkbmFwcm8tbGlzdC1yb3cgKHNlZSBfYXBwZW5kTW9yZVJvdygpIGluIHFkbmEtc2VhcmNoLW92ZXJsYXkuanMpIOKAlFxuLy8gcmVjb2xvdXJlZCB2aWEgaXRzIG93biAtLXFsci10aXRsZS1jb2xvciAvIC0tcWxyLWNoZXZyb24tY29sb3IgY3VzdG9tXG4vLyBwcm9wZXJ0aWVzIChuZXZlciBhIGRlZXBlciBzZWxlY3RvciBwb2tlIGludG8gaXRzIGludGVybmFscykgc28gaXQgcmVhZHNcbi8vIGFzIGFuIGFjdGlvbiByb3csIHNhbWUgYnJhbmQgY29sb3VyIGFzIHRoaXMgY29tcG9uZW50J3Mgb3duIFwiV2lzc2VuXCJcbi8vIHFkbmFwcm8tdGV4dC1saW5rIChjb2xvcj1cImhpZ2hsaWdodFwiKS5cbi5xc28tbW9yZS1yb3cge1xuICAgIC0tcWxyLXRpdGxlLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS1oaWdobGlnaHQpO1xuICAgIC0tcWxyLWNoZXZyb24tY29sb3I6IHZhcigtLWMtcHVycGxlLWhpZ2hsaWdodCk7XG59XG5cbi8vIC0tLS0tLS0tLS0gcmVzcG9uc2l2ZTogPj02NDBweCBjZW50cmVkIGZsb2F0aW5nIHNoZWV0IC0tLS0tLS0tLS1cbi8vIFNhbWUgYnJlYWtwb2ludCArIGNlbnRyaW5nIGFwcHJvYWNoIGFzIHFkbmFwcm8tdW5pdC1jb250ZXh0J3Mgb3duXG4vLyBvdmVybGF5IC0+IHNoZWV0IHRyYW5zaXRpb24sIH41MjBweCB3aWRlICh2cyB1bml0LWNvbnRleHQncyA0ODBweCDigJRcbi8vIHNlYXJjaCBuZWVkcyBhIHRvdWNoIG1vcmUgcm9vbSBmb3IgbG9uZ2VyIHJlc3VsdCB0aXRsZXMvc3VidGl0bGVzKS5cbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAgIC5xc28tb3ZlcmxheSB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1zLTYpO1xuICAgIH1cbiAgICAucXNvLXBhbmVsIHtcbiAgICAgICAgZmxleDogbm9uZTtcbiAgICAgICAgd2lkdGg6IDUyMHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDgwdmg7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwOyAvLyBubyBwaHlzaWNhbCBub3RjaCB0byBjbGVhciBvbmNlIGl0J3MgYSBmbG9hdGluZyBzaGVldFxuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLWNhcmQpO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctY2FyZCk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tIG1vZGU9XCJkcm9wZG93blwiOiBPTkUgQ0FSRCBvbiB0b3Agb2YgdGhlIGFuY2hvciAtLS0tLS0tLS0tXG4vLyBTRUNPTkQgZGVzaWduIGNvcnJlY3Rpb24gKDMwLjA3LjIwMjYpIOKAlCB0aGUgZWFybGllciBcIndlbGQgYSBmbG9hdGluZyBwYW5lbFxuLy8gdW5kZXIgdGhlIGZpZWxkLCBzcXVhcmUgaXRzIGNvcm5lcnMgb24gdGhhdCBzaWRlXCIgYXBwcm9hY2ggd2FzIHdyb25nIGFuZFxuLy8gaGFzIGJlZW4gZnVsbHkgcmVtb3ZlZCAobm8gbW9yZSB3ZWxkZWQgY29ybmVycywgbm8gbW9yZSBtYXJrZXIgYXR0cmlidXRlLFxuLy8gc2VlIF9pbnB1dC5zY3NzIOKAlCB0aGF0IGZpbGUgaGFzIG5vdGhpbmcgZHJvcGRvd24tcmVsYXRlZCBsZWZ0IGF0IGFsbCkuXG4vL1xuLy8gVGhlIEpTIGhhbGYgb2YgdGhpcyBjb250cmFjdCBsaXZlcyBpbiBxZG5hLXNlYXJjaC1vdmVybGF5LmpzJ3Mgb3BlbigpIC9cbi8vIF9wb3NpdGlvbkRyb3Bkb3duKCk6IGl0IHJlYWRzIE9OTFkgZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgb2ZmIHRoZSBhbmNob3Jcbi8vIChWSVJUVUFMIEFOQ0hPUlMg4oCUIHNhbWUgY29udHJhY3QgYXMgcWRuYXByby1wb3BvdmVyLCBzZWUgcWRuYS1wb3BvdmVyLmpzKVxuLy8gYW5kIHdyaXRlcyBsZWZ0L3RvcC93aWR0aCBhcyBpbmxpbmUgc3R5bGVzIGRpcmVjdGx5IG9uIFRISVMgZWxlbWVudCDigJRcbi8vIC5xc28tb3ZlcmxheSBJUyB0aGUgcG9zaXRpb25lZCBib3ggaW4gZHJvcGRvd24gbW9kZSwgdGhlcmUgaXMgbm8gc2VwYXJhdGVcbi8vIGJhY2tkcm9wIHRvIHNpemUgKGRyb3Bkb3duIG1vZGUgbmV2ZXIgcmVuZGVycyBvbmUpLiBUaGUgY2FyZCdzIG93biBmaWVsZFxuLy8gcm93ICgucXNvLWhlYWRlcikgZ2V0cyBhbiBleHBsaWNpdCBpbmxpbmUgYGhlaWdodGAgdG9vLCBtYXRjaGVkIHRvIHRoZVxuLy8gYW5jaG9yJ3Mgb3duIGhlaWdodCwgc28gdGhlIGNhcmQgY292ZXJzIHRoZSBhbmNob3IgZXhhY3RseSwgbm8gdmlzdWFsIGp1bXAuXG4vL1xuLy8gYCFpbXBvcnRhbnRgLWZyZWUgb3ZlcnJpZGU6IGV2ZXJ5IHByb3BlcnR5IHRoZSA+PTY0MHB4IG1lZGlhIHF1ZXJ5IGFib3ZlXG4vLyBzZXRzIG9uIC5xc28tb3ZlcmxheS8ucXNvLXBhbmVsIGlzIHJlLWRlY2xhcmVkIGhlcmUgYXQgaGlnaGVyIHNlbGVjdG9yXG4vLyBzcGVjaWZpY2l0eSAoMi00IGNsYXNzZXMgdnMuIGl0cyAxKSwgc28gdGhlIGNhc2NhZGUgYWx3YXlzIHByZWZlcnMgdGhpc1xuLy8gYmxvY2sgcmVnYXJkbGVzcyBvZiB2aWV3cG9ydCB3aWR0aCBvciBzb3VyY2Ugb3JkZXIuIFRoZSBvbmUgcHJvcGVydHkgTk9UXG4vLyBvdGhlcndpc2UgcmUtZGVjbGFyZWQgYmVsb3cgaXMgLnFzby1vdmVybGF5J3Mgb3duIGBwYWRkaW5nYCDigJQgcmVzZXRcbi8vIGV4cGxpY2l0bHksIG9yIHRoZSA+PTY0MHB4IHJ1bGUncyB2YXIoLS1zLTYpIHBhZGRpbmcgd291bGQgc3RpbGwgYXBwbHkuXG4ucXNvLW92ZXJsYXkucXNvLW1vZGUtZHJvcGRvd24ge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBpbnNldDogYXV0bztcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vLyBgLnFzby1vdmVybGF5W2hpZGRlbl1gIChkaXNwbGF5Om5vbmUsIGRlY2xhcmVkIG5lYXIgdGhlIHRvcCBvZiB0aGlzIGZpbGUpXG4vLyBoYXMgdGhlIFNBTUUgc3BlY2lmaWNpdHkgYXMgYC5xc28tb3ZlcmxheS5xc28tbW9kZS1kcm9wZG93bmAgKGNsYXNzICtcbi8vIGF0dHJpYnV0ZSB2cy4gdHdvIGNsYXNzZXMpIOKAlCB3aXRob3V0IHRoaXMgZXhwbGljaXQgdGllLWJyZWFrZXIgYXQgaGlnaGVyXG4vLyBzcGVjaWZpY2l0eSwgc291cmNlIG9yZGVyIGFsb25lIHdvdWxkIGRlY2lkZSwgYW5kIHRoaXMgZmlsZSdzIG93biBsYXRlclxuLy8gZGVjbGFyYXRpb24gd291bGQgd2luLCBsZWF2aW5nIGEgQ0xPU0VEIGRyb3Bkb3duIHBhbmVsIHZpc2libGUuXG4ucXNvLW92ZXJsYXkucXNvLW1vZGUtZHJvcGRvd25baGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8gT05FIENBUkQ6IGZ1bGwgcmFkaXVzLCBmdWxsIHNoYWRvdywgYWxsIHRoZSB3YXkgcm91bmQg4oCUIHRoaXMgY2FyZCBzaXRzXG4vLyBleGFjdGx5IG9uIHRvcCBvZiB0aGUgYW5jaG9yJ3Mgb3duIGJhciAod2hpY2ggaXMgbGVmdCBmdWxseSBpbnZpc2libGVcbi8vIHVuZGVybmVhdGggaXQsIHNlZSB0aGUgSlMpLCBzbyB0aGVyZSBpcyBub3RoaW5nIHRvIHdlbGQgYW5kIG5vdGhpbmcgdG9cbi8vIHNxdWFyZSBvZmYuXG4vL1xuLy8gVGhlIGNhcmQgTUlSUk9SUyB0aGUgaWRsZSBxZG5hcHJvLWlucHV0IGl0IGNvdmVycyAoS2ltIDMwLjA3LjIwMjY6IFwiZ2VlZlxuLy8gaGV0IG92ZXJsYXkgcGFuZWwgZGV6ZWxmZGUgYm9yZGVyIGFscyBoZXQgaW5wdXRmaWVsZCBhbHMgaGlqIGlkbGUgaXNcIiArXG4vLyBcImRlemVsZmRlIGNvcm5lciByYWRpdXNcIikuIEhlbmNlIHRoZSBzYW1lIDFweCBncmV5IGJvcmRlciBhbmQgdGhlIHNhbWVcbi8vIHZhcigtLXItMikgOHB4IHJhZGl1cyBhcyBgLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkYCwgTk9UIHRoZSAxNnB4XG4vLyB2YXIoLS1yLWNhcmQpIGEgZmxvYXRpbmcgY2FyZCB3b3VsZCBub3JtYWxseSB0YWtlOiBvcGVuaW5nIHRoZSBwYW5lbCBtdXN0XG4vLyBsb29rIGxpa2UgdGhlIHNhbWUgY29udHJvbCBncm93aW5nIHRhbGxlciwgbm90IGxpa2UgYSBkaWZmZXJlbnQgc3VyZmFjZVxuLy8gYXBwZWFyaW5nLiBfaW5wdXQuc2NzcyB3cml0ZXMgdGhhdCBib3JkZXIgYXMgdGhlIGxpdGVyYWwgI2M0YzdjYzsgdGhlXG4vLyB0b2tlbiBiZWhpbmQgaXQgaXMgLS1jLWdyZXktMzAwLCB1c2VkIGhlcmUgc28gdGhlIHR3byBjYW5ub3QgZHJpZnQgYXBhcnRcbi8vIHNpbGVudGx5LiBLZWVwIHRoZXNlIHRocmVlIHZhbHVlcyBpbiBzdGVwIHdpdGggYC5pbnB1dC1maWVsZGAuXG4ucXNvLW92ZXJsYXkucXNvLW1vZGUtZHJvcGRvd24gLnFzby1wYW5lbCB7XG4gICAgZmxleDogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiA2MHZoO1xuICAgIHBhZGRpbmctdG9wOiAwOyAvLyBubyBwaHlzaWNhbCBub3RjaCB0byBjbGVhciDigJQgdGhpcyBpcyBhIHBsYWluIGZsb2F0aW5nIGNhcmRcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWdyZXktMzAwKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTIpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1jYXJkKTtcbiAgICAvLyBib3JkZXItYm94LCBvciB0aGUgMXB4IGJvcmRlciBhYm92ZSBpcyBBRERFRCB0byB0aGUgYW5jaG9yIHdpZHRoIHRoZSBKU1xuICAgIC8vIHdyaXRlcyBvbiB0aGUgb3ZlcmxheSwgbWFraW5nIHRoZSBjYXJkIDJweCB3aWRlciB0aGFuIHRoZSBiYXIgaXQgY292ZXJzLlxuICAgIC8vIE1lYXN1cmVkIGJlZm9yZS9hZnRlciB3aXRoIHRoZSBwaWxsLCBtYWduaWZpZXIsIG1pYyBhbmQgTm92YSBidXR0b25cbiAgICAvLyBwb3NpdGlvbnM6IHdpdGhvdXQgdGhpcyB0aGUgdHdvIHJpZ2h0LWhhbmQgYnV0dG9ucyBsYW5kZWQgMnB4IGZ1cnRoZXJcbiAgICAvLyByaWdodCB0aGUgbW9tZW50IHRoZSBwYW5lbCBvcGVuZWQuIENsb3NlZCBhbmQgb3BlbiBub3cgbWF0Y2ggZXhhY3RseS5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgLy8gRmFkZSArIHNsaWdodCB2ZXJ0aWNhbCBzZXR0bGUgb25seSAob3BhY2l0eS90cmFuc2Zvcm0sIG5vIGxheW91dFxuICAgIC8vIHByb3BlcnRpZXMpIOKAlCByZXVzZXMgLS1xc28tZHVyYXRpb24sIHNvIHByZWZlcnMtcmVkdWNlZC1tb3Rpb24gYWJvdmVcbiAgICAvLyB6ZXJvZXMgdGhpcyB0b28sIG5vIHNlcGFyYXRlIG1lZGlhIHF1ZXJ5IG5lZWRlZCBoZXJlLlxuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpO1xufVxuXG4vLyBPcGVucyBBQk9WRSB0aGUgYW5jaG9yIChub3QgZW5vdWdoIHJvb20gYmVsb3csIHNlZSBfcG9zaXRpb25Ecm9wZG93bigpJ3Ncbi8vIGZsaXAgbG9naWMpOiB0aGUgY2FyZCdzIGZpZWxkIHJvdyBtdXN0IHN0aWxsIGxhbmQgZXhhY3RseSBvbiB0aGUgYW5jaG9yXG4vLyAoc2FtZSByZWN0IGl0IGFsd2F5cyBjb3ZlcnMpLCBzbyB0aGUgQk9EWSAocmVjZW50cy9yZXN1bHRzKSBoYXMgdG8gcmVuZGVyXG4vLyBBQk9WRSB0aGUgZmllbGQgaW5zdGVhZCBvZiBiZWxvdyBpdCDigJQgY29sdW1uLXJldmVyc2UgZmxpcHMgdGhlIHZpc3VhbFxuLy8gb3JkZXIgKGhlYWRlciBsYXN0IGluIERPTSwgaGVhZGVyIGxhc3QgaW4gcmV2ZXJzZS1mbGV4IG9yZGVyID0gaGVhZGVyIGF0XG4vLyB0aGUgQk9UVE9NIG9mIHRoZSBib3gpIHdpdGhvdXQgdG91Y2hpbmcgdGhlIERPTSBpdHNlbGYuIF9wb3NpdGlvbkRyb3Bkb3duKClcbi8vIHRoZW4gcG9zaXRpb25zIHRoZSBib3ggc28gaXRzIEJPVFRPTSBlZGdlIGxhbmRzIG9uIHRoZSBhbmNob3IncyBib3R0b20sXG4vLyB3aGljaCBjb21iaW5lZCB3aXRoIHRoaXMgcmV2ZXJzZWQgb3JkZXIgcHV0cyB0aGUgaGVhZGVyIGV4YWN0bHkgb3ZlciB0aGVcbi8vIGFuY2hvcidzIG93biByZWN0IGVpdGhlciB3YXkuXG4ucXNvLW92ZXJsYXkucXNvLW1vZGUtZHJvcGRvd24ucXNvLWRyb3Bkb3duLWFib3ZlIC5xc28tcGFuZWwge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbn1cblxuLnFzby1vdmVybGF5LnFzby1tb2RlLWRyb3Bkb3duLmlzLW9wZW4gLnFzby1wYW5lbCB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG59XG5cbi8vIE93biBzY3JvbGwgYXJlYSB3aXRoIHRoZSBzaGFyZWQgbWluaW1hbCBob3Zlci1yZXZlYWwgc2Nyb2xsYmFyIChzZWVcbi8vIG1vZHVsZXMvX21peGlucy5zY3NzKSDigJQgc2NvcGVkIHRvIGRyb3Bkb3duIG1vZGUgb25seSwgc28gdGhlIHRha2VvdmVyXG4vLyBtb2RlJ3MgbmF0aXZlIHNjcm9sbGJhciBzdGF5cyBieXRlLWlkZW50aWNhbCB0byBiZWZvcmUgYG1vZGVgIGV4aXN0ZWQuXG4ucXNvLW92ZXJsYXkucXNvLW1vZGUtZHJvcGRvd24gLnFzby1ib2R5IHtcbiAgICBAaW5jbHVkZSBxZG5hLXNjcm9sbGJhcjtcbn1cblxuLy8gLS0tLS0tLS0tLSBtb2RlPVwiZHJvcGRvd25cIjogY2hyb21lbGVzcyBmaWVsZCAtLS0tLS0tLS0tXG4vLyBUSElSRCBkZXNpZ24gY29ycmVjdGlvbiAoMzAuMDcuMjAyNiksIEdtYWlsL0ZyZWVwaWsgcmVmZXJlbmNlOiB0aGUgZmllbGRcbi8vIHJvdyBpbnNpZGUgdGhlIGNhcmQgY2FycmllcyBOTyBjaHJvbWUgb2YgaXRzIG93biDigJQgbm8gYm9yZGVyLCBubyBvd25cbi8vIGJhY2tncm91bmQsIG5vIG93biBib3JkZXItcmFkaXVzLCBubyBmb2N1cyByaW5nLiBJdCBpcyBhIHBsYWluIFJPVywgbm90IGFcbi8vIGxpdHRsZSBib3g7IHRoZSBDQVJEICgucXNvLXBhbmVsIGFib3ZlKSBpcyB0aGUgb25seSBib3JkZXIvc2hhZG93L3JhZGl1cy5cbi8vIFRoZSBcInNjaGVpZGluZ3NsaWpuXCIgdW5kZXIgdGhlIHJvdyBpcyB0aGUgRVhJU1RJTkcgPHFkbmFwcm8tZGl2aWRlcj5cbi8vIGNvbXBvbmVudCAoc2VlIHRoZSBgZGl2aWRlcmAgbG9jYWwgdmFyIGluIHFkbmEtc2VhcmNoLW92ZXJsYXkuanMnc1xuLy8gX2J1aWxkKCkpIOKAlCBub3QgYSBoYW5kLXJvbGxlZCBib3JkZXItYm90dG9tIG9uIC5xc28taGVhZGVyLlxuLy9cbi8vIEZMQUcgKG5vdCBhIHJlYWwgcWRuYXByby1pbnB1dCB2YXJpYW50LCBzZWUgdGhlIGBtb2RlYCBhdHRyaWJ1dGUgZG9jJ3Mgb3duXG4vLyBDSFJPTUVMRVNTIEZJRUxEIG5vdGUpOiB0aGlzIHJlYWNoZXMgaW50byBxZG5hLWlucHV0LmpzJ3MgaW50ZXJuYWxcbi8vIGAuaW5wdXQtZmllbGRgIC8gYC5pbnB1dC1maWVsZC1pbm5lcmAgY2xhc3MgbmFtZXMgZnJvbSBhIEZPUkVJR05cbi8vIHN0eWxlc2hlZXQg4oCUIGFuIG92ZXJyaWRlIGZyb20gdGhlIG91dHNpZGUuIEl0IHdvcmtzIGFuZCBpcyBzY29wZWQgdGlnaHRseVxuLy8gKGRyb3Bkb3duIG1vZGUgb25seSwgdGFrZW92ZXIncyBmaWVsZCBrZWVwcyBpdHMgbm9ybWFsIGJvcmRlcmVkIGxvb2tcbi8vIHVudG91Y2hlZCksIGJ1dCBhIHByb3BlciBgY2hyb21lbGVzc2AvYGJhcmVgIGF0dHJpYnV0ZSBvbiBxZG5hcHJvLWlucHV0XG4vLyBpdHNlbGYgKHNhbWUgaWRpb20gYXMgcWRuYXByby1wb3BvdmVyJ3Mgb3duIGBiYXJlYCkgd291bGQgYmUgdGhlIGNvcnJlY3Rcbi8vIGxvbmctdGVybSBmaXgg4oCUIHJlcG9ydGVkIGluIHRoZSBoYW5kLW9mZiwgbm90IHNpbGVudGx5IGxlZnQgYXMgdGhlXG4vLyBwZXJtYW5lbnQgc2hhcGUgb2YgdGhpcy5cbi8vIE5PIHBhZGRpbmcgYW5kIE5PIGdhcCBvZiBpdHMgb3duIGluIGRyb3Bkb3duIG1vZGUuIFRoZSByb3cgdXNlZCB0byBhZGRcbi8vIHZhcigtLXMtNCkgKDE2cHgpIG9uIHRvcCBvZiB0aGUgaW5uZXIgZmllbGQncyBvd24gYHBhZGRpbmc6IDAgMTJweGAsIHNvXG4vLyB0aGUgcGlsbCwgdGhlIHNlYXJjaCBpY29uIGFuZCB0aGUgbWljL05vdmEgYnV0dG9ucyBhbGwgc2hpZnRlZCBzaWRld2F5c1xuLy8gdGhlIG1vbWVudCB0aGUgcGFuZWwgb3BlbmVkIChLaW0gMzAuMDcuMjAyNjogXCJhbHMgamUgaGV0IG92ZXJsYXkgcGFuZWxcbi8vIG9wZW50IGRhbiB2ZXJzcHJpbmdlbiBkZSBrbm9wcGVuIC4uLiBoZXQgaW5wdXR2ZWxkIGlzIGRlIGJhc2lzXCIpLiBXaXRoXG4vLyBib3RoIHplcm9lZCwgdGhlIE9OTFkgaG9yaXpvbnRhbCBtZXRyaWNzIGluIHBsYXkgYXJlIHRoZSBvbmVzIHRoZSBjb3ZlcmVkXG4vLyBxZG5hcHJvLWlucHV0IGFscmVhZHkgdXNlcywgc28gY2xvc2VkIGFuZCBvcGVuIGxpbmUgdXAgcGl4ZWwgZm9yIHBpeGVsLlxuLy8gVGhlIGlubGluZSBgaGVpZ2h0YCB0aGUgSlMgc2V0cyAobWF0Y2hpbmcgdGhlIGFuY2hvciByZWN0KSBoYW5kbGVzIHRoZVxuLy8gdmVydGljYWwgc2lkZS4gRG8gbm90IHJlaW50cm9kdWNlIHBhZGRpbmcgaGVyZS5cbi5xc28tb3ZlcmxheS5xc28tbW9kZS1kcm9wZG93biAucXNvLWhlYWRlciB7XG4gICAgcGFkZGluZzogMDtcbiAgICBnYXA6IDA7XG59XG5cbi5xc28tb3ZlcmxheS5xc28tbW9kZS1kcm9wZG93biAucXNvLWhlYWRlciAuaW5wdXQtZmllbGQge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xufVxuLnFzby1vdmVybGF5LnFzby1tb2RlLWRyb3Bkb3duIC5xc28taGVhZGVyIC5pbnB1dC1maWVsZDpob3Zlcixcbi5xc28tb3ZlcmxheS5xc28tbW9kZS1kcm9wZG93biAucXNvLWhlYWRlciAuaW5wdXQtZmllbGQ6Zm9jdXMtd2l0aGluIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5xc28tb3ZlcmxheS5xc28tbW9kZS1kcm9wZG93biAucXNvLWhlYWRlciAuaW5wdXQtZmllbGQgLmlucHV0LWZpZWxkLWlubmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLy8gLS0tLS0tLS0tLSBzdXJmYWNlPVwiZ3JleVwiICgzMS4wNy4yMDI2KSAtLS0tLS0tLS0tXG4vLyBDYXJkIGJhY2tncm91bmQgY29sb3VyIE9OTFksIG1vZGU9XCJkcm9wZG93blwiIG9ubHkgLSBzZWUgdGhlIGBzdXJmYWNlYFxuLy8gYXR0cmlidXRlIGRvYyBpbiBxZG5hLXNlYXJjaC1vdmVybGF5LmpzIGZvciB0aGUgd2h5IChLaW06IGRyb3BwaW5nIHRoaXNcbi8vIHNlYXJjaCBiYXIgaW50byB0aGUgUFdBIGluYm94J3Mgd2hpdGUgYXBwLWhlYWRlcikuIE9taXR0aW5nIGBzdXJmYWNlYCwgb3Jcbi8vIGBzdXJmYWNlPVwid2hpdGVcImAsIGFwcGxpZXMgbm9uZSBvZiB0aGlzIC0gYnl0ZS1pZGVudGljYWwgdG8gYmVmb3JlXG4vLyBgc3VyZmFjZWAgZXhpc3RlZCAoRG9jdW1lbnRlbidzIGV4aXN0aW5nIHRha2VvdmVyIGNvbnN1bWVyIGlzIHVuYWZmZWN0ZWRcbi8vIGVpdGhlciB3YXksIHNpbmNlIG5vbmUgb2YgdGhpcyBpcyBzY29wZWQgdW5kZXIgLnFzby1tb2RlLWRyb3Bkb3duKS5cbi8vXG4vLyBUaGUgY2hyb21lbGVzcyBmaWVsZCByb3cgKHNlZSB0aGUgXCJjaHJvbWVsZXNzIGZpZWxkXCIgYmxvY2sgYWJvdmUpIGFscmVhZHlcbi8vIHNldHMgaXRzIG93biBiYWNrZ3JvdW5kIHRvIGB0cmFuc3BhcmVudGAsIG5vdCB0byB2YXIoLS1jLWJnLWNhcmQpIC0gc28gaXRcbi8vIGF1dG9tYXRpY2FsbHkgZm9sbG93cyB0aGlzIGNhcmQgY29sb3VyIHRvbywgbm8gZXh0cmEgcnVsZSBuZWVkZWQgaGVyZS5cbi8vIENoZWNrZWQgZGlyZWN0bHkgaW4gdGhpcyBmaWxlOiBjb25maXJtZWQsIG5vdGhpbmcgZWxzZSB0byBhZGQuXG4ucXNvLW92ZXJsYXkucXNvLW1vZGUtZHJvcGRvd24ucXNvLXN1cmZhY2UtZ3JleSAucXNvLXBhbmVsIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMTAwKTtcbn1cblxuLy8gRGl2aWRlciBjb250cmFzdCAoMzEuMDcuMjAyNik6IHRoZSBkaXZpZGVyJ3MgZGVmYXVsdCBcIm5ldXRyYWxcIiBjb2xvdXJcbi8vICgjZDlkYmViLCBzZWUgX2RpdmlkZXIuc2NzcykgbWVhc3VyZXMgfjEuMTM6MSBjb250cmFzdCBhZ2FpbnN0XG4vLyB2YXIoLS1jLWdyZXktMTAwKSAoI2U3ZTllYykgLSBkb3duIGZyb20gfjEuMzc6MSBhZ2FpbnN0IHRoZSB3aGl0ZSBjYXJkXG4vLyAodmFyKC0tYy1iZy1jYXJkKSkuIE1lYXN1cmVkIHdpdGggdGhlIFdDQUcgcmVsYXRpdmUtbHVtaW5hbmNlIGZvcm11bGFcbi8vIChweXRob24zLCBub3QgZXllYmFsbGVkKSAtIHRoZSBuZWFyLXdoaXRlIGxhdmVuZGVyIGRpdmlkZXIgYW5kIHRoZVxuLy8gbmVhci13aGl0ZSBncmV5IGNhcmQgc2l0IHRvbyBjbG9zZSBpbiBsaWdodG5lc3MgdG8gcmVhZCBhcyBhIGxpbmUgYXQgYWxsLlxuLy8gUmUtcG9pbnRlZCB0byB2YXIoLS1jLWdyZXktMzAwKSAtIHRoZSBTQU1FIHRva2VuIHRoaXMgZmlsZSBhbHJlYWR5IHVzZXMgYVxuLy8gZmV3IGxpbmVzIHVwIGZvciB0aGUgY2FyZCdzIG93biBpZGxlIGJvcmRlciwgbm90IGEgbmV3IGhleCAtIHdoaWNoXG4vLyBtZWFzdXJlcyB+MS4zOToxIGFnYWluc3QgZ3JleS0xMDAsIGJhY2sgaW4gbGluZSB3aXRoIChtYXJnaW5hbGx5IGJldHRlclxuLy8gdGhhbikgdGhlIG9yaWdpbmFsIHdoaXRlLWNhcmQgY29udHJhc3QuXG4ucXNvLW92ZXJsYXkucXNvLW1vZGUtZHJvcGRvd24ucXNvLXN1cmZhY2UtZ3JleSBxZG5hcHJvLWRpdmlkZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0zMDApO1xufVxuXG4vLyBSZXN1bHQtcm93IGhvdmVyIGNvbnRyYXN0ICgzMS4wNy4yMDI2KTogcWRuYXByby1saXN0LXJvdydzIGRlZmF1bHQgaG92ZXJcbi8vIGJhY2tncm91bmQgKC0tcWxyLWJnLWhvdmVyLCAtLWMtYmctc3VidGxlLWhvdmVyIC0+IC0tYy1ncmV5LTUwLCAjZjBmMWYyKVxuLy8gaXMgTElHSFRFUiB0aGFuIHZhcigtLWMtZ3JleS0xMDApICgjZTdlOWVjKSwgc28gb24gdGhpcyBzdXJmYWNlIHRoZSBob3ZlclxuLy8gc3RvcHMgcmVhZGluZyBhcyBhIGRhcmtlbmluZyBoaWdobGlnaHQgYW5kIGluc3RlYWQgYmVjb21lcyBhIGJhcmVseS10aGVyZVxuLy8gbGlnaHRlbmluZyBvbmUgLSBtZWFzdXJlZCBhdCB+MS4wODoxIGNvbnRyYXN0IGFnYWluc3QgdGhlIGdyZXkgY2FyZFxuLy8gKFdDQUcgcmVsYXRpdmUtbHVtaW5hbmNlIGZvcm11bGEsIHB5dGhvbjMpLCBub3RpY2VhYmx5IGxvd2VyIHRoYW4gdGhlXG4vLyB+MS4xMzoxIGl0IGhhcyBhZ2FpbnN0IHRoZSB3aGl0ZSBjYXJkIHRvZGF5LCBpLmUuIGl0IGdldHMgaGFyZGVyIHRvIHNlZSxcbi8vIG5vdCBlYXNpZXIgLSBleGFjdGx5IHRoZSBcImthbiBvbnppY2h0YmFhciB3b3JkZW5cIiByaXNrIHRoaXMgdmFyaWFudCB3YXNcbi8vIGNoZWNrZWQgZm9yLiBSZS1wb2ludGVkIHRvIHRoZSBleGlzdGluZyB2YXIoLS1jLWdyZXktMjAwKSB0b2tlbiAoYWxyZWFkeVxuLy8gdXNlZCBlbHNld2hlcmUgaW4gdGhpcyBsaWJyYXJ5J3MgdGlsZSBwYWxldHRlcywgbm8gbmV3IGhleCkgZm9yIH4xLjIxOjFcbi8vIGFnYWluc3QgZ3JleS0xMDAgLSBiZXR0ZXIgdGhhbiBib3RoIHRoZSBicm9rZW4gZ3JleS1vbi1ncmV5IHZhbHVlIGFib3ZlXG4vLyBBTkQgdGhlIG9yaWdpbmFsIHdoaXRlLWNhcmQgYmFzZWxpbmUuIFRhcmdldHMgZXZlcnkgcWRuYXByby1saXN0LXJvd1xuLy8gdW5kZXIgdGhpcyBzdXJmYWNlIChyZXN1bHRzLCBhbmQgdGhlIFwidmlldyBhbGxcIiByb3cpIC0gZHJvcGRvd24gbW9kZVxuLy8gbmV2ZXIgcmVuZGVycyByZWNlbnQgcm93cyAoc2VlIHRoZSBgbW9kZWAgZG9jKSwgc28gdGhlcmUgaXMgbm90aGluZyBlbHNlXG4vLyB0byBjb3Zlci5cbi5xc28tb3ZlcmxheS5xc28tbW9kZS1kcm9wZG93bi5xc28tc3VyZmFjZS1ncmV5IHFkbmFwcm8tbGlzdC1yb3cge1xuICAgIC0tcWxyLWJnLWhvdmVyOiB2YXIoLS1jLWdyZXktMjAwKTtcbn1cblxuLy8g4pSA4pSAIFJFQ0VOVEUtUklKRU46IHJ1c3RpZ2VyICgzMS4wNy4yMDI2LCBLaW0pIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gRHJpZSBrbGFjaHRlbiwgZHJpZSByZWdlbHMuIEhhYXIgd29vcmRlbjogXCJkZSBpY29ucyB2YW4gZ2VzY2hpZWRlbmlzIHppam4gZ3JpanMsIGVuIGRlXG4vLyBob3ZlciBvb2suIERpZSBpY29ucyBob2V2ZW4gZ2VlbiBncmlqemUgc3VyZmFjZSB2b29yIGdlc2NoaWVkZW5pcywgYWxsZWVuIGVlbiBpY29uIGlzXG4vLyBwcmltYS4gRGllIHgga25vcHBlbiB6aWpuIG9vayB6byBpbiB5b3VyIGZhY2UuXCJcbi8vXG4vLyBEZSBncmlqemUgVEVHRUwgb25kZXIgaGV0IGljb29uIGlzIHdlZyBpbiBkZSBKUyAodGlsZT1cIm5vbmVcIiksIGVuIGRhdCBsb3N0IHR3ZWUgZGluZ2VuXG4vLyB0ZWdlbGlqayBvcDogZGUgdGVnZWwgYm90c3RlIG1ldCBkZSBncmlqemUgaG92ZXIsIGVuIGhpaiB3YXMgNDBweCwgd2FhcmRvb3IgZGUgcmlqIG9wXG4vLyA2MHB4IHVpdGt3YW0uIFpvbmRlciB0ZWdlbCB2YWx0IGRlIHJpaiB0ZXJ1ZyBvcCBkZSA0NHB4IHZhbiBoZXQgY29tcG9uZW50LlxuLy9cbi8vIFdhdCBoaWVyIG92ZXJibGlqZnQgaXMgS0xFVVIgZW4gTUFBVCwgZW4gZGF0IGthbiBuaWV0IGluIGRlIEpTOlxuLnFzby1yZWNlbnRzLWxpc3QgcWRuYXByby1saXN0LXJvdyB7XG4gICAgLy8gWm9uZGVyIHRlZ2VsIGtsZXVydCBxZG5hcHJvLWxpc3Qtcm93IGhldCBrYWxlIGljb29uIG1lcmstcGFhcnMuIFZvb3IgZWVuXG4gICAgLy8gZ2VzY2hpZWRlbmlzLW1hcmtlciBpcyBkYXQgdGUgdmVlbCBuYWRydWs6IGhldCBpcyBlZW4gYWFuZHVpZGluZywgZ2VlbiBhY3RpZSwgZW5cbiAgICAvLyBvdmVyYWwgZWxkZXJzIChDaHJvbWUsIEdtYWlsKSBpcyBkYXQgaWNvb24gZ3JpanMuIEFsbGVlbiBkZSBrbGV1ciB2YW4gaGV0IElDT09OXG4gICAgLy8gd29yZHQgaGllciBnZXpldCwgdmlhIGRlIGN1c3RvbSBwcm9wZXJ0eSBkaWUgaGV0IGNvbXBvbmVudCBkYWFydm9vciBoZWVmdC4gQmV3dXN0XG4gICAgLy8gTklFVCB0b25lPVwibXV0ZWRcIjogZGF0IG1hYWt0IG9vayBkZSB0aXRlbCBncmlqcywgZW4gZGUgZ2V6b2NodGUgdGVybSBtb2V0IGp1aXN0XG4gICAgLy8gZ2V3b29uIGxlZXNiYWFyIGJsaWp2ZW4uXG4gICAgLS1xbHItYmFyZS1pY29uLWNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xufVxuXG4vLyBIZXQga3J1aXNqZSBvbSBlZW4gdGVybSB0ZSB2ZXJnZXRlbjogZ3JpanMgaW4gcGxhYXRzIHZhbiBiaWpuYSB6d2FydC4gRGUgTUFBVCB6aXQgaW4gZGVcbi8vIEpTIChzaXplPVwic21hbGxcIiksIHppZSBkZSB1aXRsZWcgZGFhci5cbi8vXG4vLyBTcGVjaWZpY2l0ZWl0IG5hZ2VyZWtlbmQgZW4gbmlldCBhYW5nZW5vbWVuOiBxZG5hcHJvLWljb24tYnRuIHpldCB6ZWxmXG4vLyBgLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tc3VidGxlIHsgY29sb3I6ICMwYjBiMGQgfWAsIGVuIGRhdCBpcyAoMCwyLDApLiBFZW4gc2VsZWN0b3Jcbi8vIG1ldCBlZW4ga2xhc3NlIGVuIHR3ZWUgZWxlbWVudG5hbWVuIGlzICgwLDEsMikgZW4gdmVybGllc3QgZHVzLCBvb2sgYWwgc3RhYXQgaGlqIGxhdGVyIGluXG4vLyBoZXQgYmVzdGFuZC4gVmFuZGFhciBkZSBrbGFzc2UgdmFuIGhldCBjb21wb25lbnQgZXJiaWo6ICgwLDMsMSkgd2ludCB3ZWwuIERpdCBpcyBwcmVjaWVzXG4vLyBkZSB2YWwgd2FhciBkZSBlZXJzdGUgcG9naW5nIGluIGxpZXAgKGhldCBrcnVpc2plIGJsZWVmIHp3YXJ0LCBpbiBlZW4gaGVhZGxlc3MgQ2hyb21lXG4vLyBnZW1ldGVuIG9wIHJnYigxMSwxMSwxMykpLlxuLnFzby1yZWNlbnRzLWxpc3QgLnFkbmFwcm8tbGlzdC1yb3cgcWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1zdWJ0bGUge1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1zZWFyY2gtZmlsdGVyLXBhbmVsXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBUaGUgXCJab2VrZW4gJiBGaWx0ZXJcIiBzbGlkZS1pbiBwYW5lbC4gUmVwbGFjZXMgdGhlIH4yNDAgbGluZXMgb2Zcbi8vICBpbmxpbmUgQ1NTIGluIFZpZXcvdjEvY29tcG9uZW50cy90YWJsZXMvYWR2YW5jZV9zZWFyY2hfdG9vbGJhci5odG1sLFxuLy8gIHdoaWNoIGV4aXN0ZWQgYWxtb3N0IGVudGlyZWx5IHRvIGNvcnJlY3QgQm9vdHN0cmFwJ3MgbW9kYWwsIGpRdWVyeVxuLy8gIG11bHRpcGxlU2VsZWN0IGFuZCBkYXRlcmFuZ2VwaWNrZXIuIE5vbmUgb2YgdGhvc2UgYXJlIGludm9sdmVkIGFueVxuLy8gIG1vcmU6IHRoZSBmaWVsZHMgYXJlIHFkbmFwcm8taW5wdXQgLyBxZG5hcHJvLXNlbGVjdCBhbmQgYnJpbmcgdGhlaXJcbi8vICBvd24gc3R5bGluZywgc28gd2hhdCBpcyBsZWZ0IGhlcmUgaXMgdGhlIHBhbmVsIHNoZWxsIGl0c2VsZi5cbi8vXG4vLyAgRnJvc3RlZCBnbGFzcyByZWNpcGUgKyBzbGlkZS1pbiB0aW1pbmcgYXJlIGRlbGliZXJhdGVseSB0aGUgU0FNRSBhc1xuLy8gIHFkbmFwcm8tdHJhbnNsYXRpb24tcGFuZWwg4oCUIGl0IGlzIHRoZSBwbGF0Zm9ybSdzIG90aGVyIHJpZ2h0LWhhbmRcbi8vICBzbGlkZS1pbiBwYW5lbCBhbmQgdGhlIHR3byBzaG91bGQgbm90IGRyaWZ0IGFwYXJ0LlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnFkbmFwcm8tc2VhcmNoLWZpbHRlci1wYW5lbCB7XG4gICAgZGlzcGxheTogY29udGVudHM7IC8vIHRoZSBob3N0IGFkZHMgbm8gbGF5b3V0IGJveDsgLnNmcCBpcyBmaXhlZC1wb3NpdGlvbmVkXG59XG5cbi5zZnAtcm9vdFtoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vLyDilIDilIAgQmFja2Ryb3Ag4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBBIHNjcmltLCBub3QgYSB3YWxsOiAzOCUgb2YgdGhlIGRhcmtlc3QgZ3JleSB0b2tlbi4gU2FtZSB2YWx1ZSBpbiBib3RoXG4vLyB0aGVtZXMgb24gcHVycG9zZSDigJQgYSBzY3JpbSdzIGpvYiBpcyB0byBwdXNoIHRoZSBwYWdlIGJhY2ssIGFuZCB0aGUgcGFnZVxuLy8gYmVoaW5kIGl0IGlzIGFscmVhZHkgZGFyayBpbiBkYXJrIG1vZGUuXG4uc2ZwLWJhY2tkcm9wIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgaW5zZXQ6IDA7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWMtZ3JleS05NTApIDM4JSwgdHJhbnNwYXJlbnQpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyNDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAgIHotaW5kZXg6IDEwNDk7XG5cbiAgICAmLS12aXNpYmxlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbi8vIOKUgOKUgCBQYW5lbCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5zZnAge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAzODBweDtcbiAgICBtYXgtd2lkdGg6IDkydnc7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHotaW5kZXg6IDEwNTA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgLy8gV0hJVEUgZnJvc3RlZCBnbGFzcyBpbnN0ZWFkIG9mIHRoZSBsYXZlbmRlciB0aW50IHRoZSBUd2lnIHBhcnRpYWwgaGFkXG4gICAgLy8gKEtpbSAxMC4wOC4yMDI2KS4gQnVpbHQgb24gLS1jLWJnLWNhcmQgc28gZGFyayBtb2RlIGZvbGxvd3Mgd2l0aG91dCBhXG4gICAgLy8gc2Vjb25kIHJ1bGU6IHRoYXQgdG9rZW4gaXMgI2ZmZiBpbiBsaWdodCBhbmQgLS1jLWdyZXktODAwIGluIGRhcmssIGFuZFxuICAgIC8vIGNvbG9yLW1peCBrZWVwcyB0aGUgdHJhbnNwYXJlbmN5IHRoZSBibHVyIG5lZWRzIHRvIHJlYWQgYXMgZ2xhc3MuXG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWMtYmctY2FyZCkgNzQlLCB0cmFuc3BhcmVudCk7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpIHNhdHVyYXRlKDE2MCUpO1xuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpIHNhdHVyYXRlKDE2MCUpO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gICAgYm94LXNoYWRvdzogLThweCAwIDMycHggdmFyKC0tYy1wdXJwbGUtc29mdC0xOCk7XG5cbiAgICAvLyBTbGlkZS1pbjogc3RhcnRzIG9mZi1zY3JlZW4sIEpTIGFkZHMgLnNmcC0tdmlzaWJsZSBvbiB0aGUgbmV4dCBmcmFtZS5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDI0MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG5cbiAgICAmLS12aXNpYmxlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIH1cblxuICAgICogeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG59XG5cbi8vIOKUgOKUgCBIZWFkZXIg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4uc2ZwLWhlYWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmc6IDE0cHggMTZweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICAvLyBUaGUgaGVhZGVyIGtlZXBzIGl0cyBicmFuZCBwdXJwbGUgb24gdG9wIG9mIHRoZSB3aGl0ZSBib2R5IOKAlCB3aGl0ZSB0ZXh0XG4gICAgLy8gb24gcHVycGxlIGNhcnJpZXMgYm90aCB0aGVtZXMsIHNvIHRoaXMgbmVlZHMgbm8gZGFyayB2YXJpYW50LlxuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jLXB1cnBsZS01MDApIDg4JSwgdHJhbnNwYXJlbnQpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxNHB4KTtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxNHB4KTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy13aGl0ZS0xMik7XG59XG5cbi5zZnAtaGVhZC1pY29uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDM0cHg7XG4gICAgaGVpZ2h0OiAzNHB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIC8vIEFsd2F5cyB3aGl0ZS1vbi1wdXJwbGU6IHRoaXMgY2hpcCBzaXRzIG9uIHRoZSBicmFuZCBoZWFkZXIgaW4gYm90aCB0aGVtZXMuXG4gICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU1KTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTIpO1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG4uc2ZwLWhlYWQtdGV4dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMnB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmbGV4OiAxO1xufVxuXG4uc2ZwLWhlYWQtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG4uc2ZwLWhlYWQtZGVzYyB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODApO1xuXG4gICAgJltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxufVxuXG4uc2ZwLWhlYWQtY2xvc2Uge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgJltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxufVxuXG4vLyDilIDilIAgQWN0aXZlIGZpbHRlciBjaGlwcyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5zZnAtY2hpcHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogNXB4O1xuICAgIHBhZGRpbmc6IDEwcHggMTZweCAwO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgLy8gTm8gY2hpcHMgPSBubyBzdHJpcC4gV2l0aG91dCB0aGlzIHRoZSBlbXB0eSBiYXIgc3RpbGwgZWF0cyBwYWRkaW5nXG4gICAgLy8gYW5kIHRoZSBmaXJzdCBmaWVsZCBzaXRzIHRvbyBsb3cuXG4gICAgJjplbXB0eSB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICAmW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG59XG5cbi8vIOKUgOKUgCBCb2R5IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLnNmcC1ib2R5IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTRweDtcblxuICAgIC8vIFRodW1iIG9mZiB0aGUgbXV0ZWQtdGV4dCB0b2tlbiwgc28gaXQgc3RheXMgdmlzaWJsZSBvbiBhIGRhcmsgc3VyZmFjZVxuICAgIC8vIHRvbyAoYSBmaXhlZCBwdXJwbGUgdGludCBkaXNhcHBlYXJzIGFnYWluc3QgLS1jLWdyZXktODAwKS5cbiAgICAtLXNmcC10aHVtYjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWMtdGV4dC1tdXRlZCkgNDUlLCB0cmFuc3BhcmVudCk7XG4gICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xuICAgIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tc2ZwLXRodW1iKSB0cmFuc3BhcmVudDtcblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgd2lkdGg6IDVweDsgfVxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNmcC10aHVtYik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB9XG59XG5cbi5zZnAtc2VjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTRweDtcbn1cblxuLnNmcC1zZWN0aW9uLWhlYWQge1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLWNhcmQpO1xufVxuXG4uc2ZwLXNlY3Rpb24tdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAvLyAtLWMtYnJhbmQtcHVycGxlLCBub3QgLS1jLXB1cnBsZS01MDA6IHRoZSBicmFuZCB0b2tlbiBpcyBsaWZ0ZWQgdG9cbiAgICAvLyBwdXJwbGUtMjAwIGluIGRhcmsgbW9kZSwgd2hlcmUgdGhlIDUwMCB3b3VsZCBiZSB1bnJlYWRhYmxlLlxuICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG59XG5cbi5zZnAtZmllbGQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDRweDtcbn1cblxuLy8gQSBmcm9tL3RvIHBhaXIgc2l0cyBzaWRlIGJ5IHNpZGU7IGJlbG93IH40MjBweCB0aGUgcGFuZWwgaXMgdG9vIG5hcnJvd1xuLy8gZm9yIHR3byBkYXRlIGZpZWxkcyBhbmQgdGhleSBzdGFjay5cbi5zZnAtZmllbGQtLXJhbmdlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGdhcDogOHB4O1xuXG4gICAgPiAqIHsgZmxleDogMSAxIDA7IG1pbi13aWR0aDogMDsgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDIwcHgpIHtcbiAgICAuc2ZwLWZpZWxkLS1yYW5nZSB7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbn1cblxuLy8g4pSA4pSAIEZvb3RlciDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5zZnAtZm9vdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCk7XG59XG5cbi5zZnAtZm9vdC1zZWFyY2gge1xuICAgIGZsZXg6IDE7XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlLlxuLy8gUHVsbGVkIGluIHZpYSBzY3NzL2NvbXBvbmVudHMvY29tcG9uZW50cy5zY3NzIGFuZCBjb21waWxlZCBpbnRvXG4vLyB3ZWIvY3NzL3YxL3N0eWxlLXYxLmNzcywgd2hpY2ggaXMgYWxzbyB0aGUgc3R5bGVzaGVldCB0aGUgbGlicmFyeSBwcmV2aWV3c1xuLy8gbG9hZC4gRWRpdCBIRVJFLCB0aGVuIHJ1biBCT1RIIGBucHggZ3VscCBzYXNzYCBhbmQgYG5weCBndWxwIHNhc3MtdjFgLlxuXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYyk7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3V0bGluZTogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZS1vdXQsIGJvcmRlci1jb2xvciAxMjBtcyBlYXNlLW91dDtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQgKixcbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkICo6OmJlZm9yZSxcbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkICo6OmFmdGVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQ6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZDpub3QoLnRyYy1kaXNhYmxlZCk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0xMDAsICNlN2U5ZWMpO1xuICB9XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkLmZvcmNlLWhvdmVyOm5vdCgudHJjLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0xMDAsICNlN2U5ZWMpO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZDpub3QoLnRyYy1kaXNhYmxlZCk6YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTIwMCwgI2QxZDVkYik7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkOm5vdCgudHJjLWRpc2FibGVkKS5pcy1wcmVzc2VkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTIwMCwgI2QxZDVkYik7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkLmZvcmNlLXByZXNzZWQ6bm90KC50cmMtZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTIwMCwgI2QxZDVkYik7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkOm5vdCgudHJjLWRpc2FibGVkKTpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSg3MCwgODIsIDI0MywgMC4yNSk7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkLmZvcmNlLWZvY3VzOm5vdCgudHJjLWRpc2FibGVkKSB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jLXB1cnBsZS01MDApO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjUpO1xufVxuXG4vKiA9PT0gTWFpbiByb3cgKGRpbXMgdG8gb3BhY2l0eSAuNSB3aGVuIHRoZSBydW4gaXMgY29tcGxldGVkKSA9PT0gKi9cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkIC50cmMtbWFpbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDEycHg7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xufVxuXG4vKiBBRkdFUk9ORCBESU1UIE5JRVQgTUVFUiAoS2ltIDA2LjA4LjIwMjYpLiBIaWVyIHN0b25kIGBvcGFjaXR5OiAwLjVgIG9wIGRlIGhvb2ZkcmlqIHZhblxuICAgZWVuIGFmZ2Vyb25kZSBrYWFydC4gRGllIGRpbW1pbmcgaGFkIMOpw6luIGRvZWw6IGluIGVlbiBsaWpzdCB3YWFyaW4gYWZnZXJvbmRlIGVuIG5vZ1xuICAgb3BlbnN0YWFuZGUgdGFrZW5saWpzdGVuIERPT1IgRUxLQUFSIHN0b25kZW4gbW9lc3QgaGV0IGFmZ2Vyb25kZSB3ZXJrIG5hYXIgYWNodGVyZW5cbiAgIHpha2tlbi4gRGllIGxpanN0IGJlc3RhYXQgbmlldCBtZWVyIC0gZGUgb3VkZSBkYWctbGlqc3QgdmFuIGRlIFBXQSBpcyBvcCAwNi4wOC4yMDI2XG4gICB2ZXJ3aWpkZXJkLCBlbiBlbGsgc2NoZXJtIGRhdCBudSBlZW4gYWZnZXJvbmRlIGthYXJ0IHRvb250IGJldmF0IGFsbGVlbiBub2cga2FhcnRlbiB2YW5cbiAgIMOpw6luIHNvb3J0OiBkZSBcIk5pZXQgdmVyc3R1dXJkXCItYnVja2V0LCBoZXQgcmVjaHRlcnBhbmVlbCBvcCB0YWJsZXQgZW4gZGUgbmlldXdlXG4gICBnZXNjaGllZGVuaXMuIFpvbmRlciBkaWUgdmVybWVuZ2luZyBpcyBlZW4gaGFsZiBkb29yemljaHRpZ2Uga2FhcnQgZ2VlbiBzaWduYWFsIG1lZXIgbWFhclxuICAgZ2V3b29uIHNsZWNodGVyIGxlZXNiYWFyLiBEZSBjaGVjay1iYWRnZSwgaGV0IHdvb3JkIFwiQWZnZXJvbmRcIiBlbiBkZSBhZnJvbmR0aWpkIHplZ2dlbiBhbFxuICAgd2F0IGVyIHRlIHplZ2dlbiB2YWx0LlxuICAgRGUgLnRyYy1kaXNhYmxlZC1zdGFuZCB2ZXJkZXJvcCBibGlqZnQgd8OpbCBkaW1tZW46IGRhdCBpcyBlZW4gZWNodGUgXCJrYW4gbnUgbmlldFwiLXN0YW5kLFxuICAgZWVuIGFuZGVyZSBib29kc2NoYXAgZGFuIFwiZGl0IGlzIGtsYWFyXCIuXG4gICBEZSBjbGFzcyBgdHJjLW1haW4tY29tcGxldGVkYCBibGlqZnQgZGUgY29tcG9uZW50IHfDqWwgemV0dGVuOiBicnVpa2JhYXIgaGFha2plIHZvb3IgZWVuXG4gICBjb25zdW1lciBkaWUgZGUgYWZnZXJvbmQtc3RhbmQgdG9jaCBhbmRlcnMgd2lsIHRla2VuZW4sIGFsbGVlbiB6b25kZXIgZWlnZW4gb3BtYWFrIGhpZXIuXG4gICBDb21tZW50YWFyIG1ldCBzbGFzaGVzLXN0ZXJyZXRqZSBlbiBuaWV0IG1ldCBkdWJiZWxlIHNsYXNoZXM6IGRpdCBiZXN0YW5kIHdvcmR0IGFscyBQTEFUVEVcbiAgIENTUyBuYWFyIGRlIFBXQSBnZWtvcGllZXJkICh6aWUgc3luYy12Mi1jb21wb25lbnRzLmpzKSwgZHVzIFNDU1MtY29tbWVudGFhciBob29ydCBoaWVyXG4gICBuaWV0LiAqL1xuXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZCAudHJjLWljb24ge1xuICBmbGV4OiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMnB4O1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZCAudHJjLXRpbGUge1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBmbGV4OiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tdHJjLWJnLCAjZWVmMGYyKTtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQgLnRyYy1ib2R5IHtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZCAudHJjLW5hbWUge1xuICBmb250LXNpemU6IDE3cHg7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZCAudHJjLXByb2plY3Qge1xuICBmb250LXNpemU6IDE1cHg7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktOTAwLCAjMGIwYjBkKTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQgLnRyYy1tZXRhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogNHB4IDA7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkIC50cmMtbWV0YSA+IHFkbmFwcm8taWNvbiB7XG4gIGZsZXg6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQgLnRyYy10aW1lIHtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS0zMDApO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZCAudHJjLXN0YXR1cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgbWFyZ2luLWxlZnQ6IDI0cHg7XG4gIGNvbG9yOiB2YXIoLS1jLWZhdm9yaXRlLWhlYXJ0KTtcbn1cblxuLyogPT09IEZvb3RlcnMgPT09ICovXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZCAudHJjLWZvb3RlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbiAgcGFkZGluZzogOHB4IDE2cHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLWdyZXktNTApO1xufVxuXG4vKiBSb3VuZCBzbG90IGluIGZyb250IG9mIHRoZSBsb2NhdGlvbiBob2xkcyB0aGUgT1JHQU5JU0FUSU9OIGxvZ28gKEtpbVxuICAgMjguMDcuMjAyNikuIEl0IGlzIG9ubHkgaW4gdGhlIERPTSB3aGVuIHRoZXJlIElTIGEgbG9nbyAoS2ltIDI0LjA4LjIwMjYpOlxuICAgdGhlIGVtcHR5IHBsYWNlaG9sZGVyIGNpcmNsZSBjYXJyaWVkIG5vIGluZm9ybWF0aW9uLiBXaGl0ZSBkaXNjLCBiZWNhdXNlIGFuXG4gICBvcmdhbmlzYXRpb24gbG9nbyBpcyB1c3VhbGx5IGRyYXduIG9uIHdoaXRlIGFuZCBhIGdyZXkgZGlzYyBiZWhpbmQgaXQgcmVhZHNcbiAgIGFzIGEgZGlydHkgZWRnZS4gKi9cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkIC50cmMtb3JnLWxvZ28ge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBmbGV4OiBub25lO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4vKiBjb250YWluLCBub3QgY292ZXI6IGEgbG9nbyBpcyByYXJlbHkgc3F1YXJlLCBhbmQgY292ZXIgd291bGQgY3JvcCB0aGVcbiAgIHNpZGVzIG9mZiBhIHdpZGUgd29yZG1hcmsuIExldHRlcmJveGluZyBpbnNpZGUgdGhlIGNpcmNsZSBrZWVwcyBpdCB3aG9sZS4gKi9cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkIC50cmMtb3JnLWxvZ28gaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkIC50cmMtbG9jLXRleHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkIC50cmMtbG9jLW5hbWUge1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQgLnRyYy1sb2MtYWRkcmVzcyB7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktMzAwKTtcbn1cblxuLyogQWZkZWxpbmcgdmFuIGRlIGNoZWNrLWluOiBkZXJkZSByZWdlbCBJTiBkZSB0ZWtzdGtvbG9tLCBtZXQgZWVuIGtsZWluXG4gICBnZWJvdXctaWNvb250amUgZXJ2b29yLiBaZWxmZGUgb3Bib3V3IGFscyAuYW8taGVhZGVyLXBsYWNlLWRlcHQgaW4gZGVcbiAgIHRha2VubGlqc3QtaGVhZGVyIChfcHdhLWN1cnJlbnQuc2NzcyksIHpvZGF0IGRlIGthYXJ0IGVuIGRlIGhlYWRlciBkZXplbGZkZVxuICAgcGxhYXRzICsgYWZkZWxpbmcgb3AgZGV6ZWxmZGUgbWFuaWVyIGxhdGVuIHppZW4uIEtsZXVyIGlzIGhpZXIgd2VsIGhldCBuYXZ5XG4gICB2YW4gZGV6ZSBrYWFydCAodmFyKC0tYy1wdXJwbGUtNTAwKSwgZ2VsaWprIGFhbiAudHJjLWxvYy1uYW1lKSBpbiBwbGFhdHMgdmFuIGhldFxuICAgaGVhZGVyLW5hdnk6IGRlIGhlYWRlciBzdGFhdCBvcCBlZW4gcGFzdGVsIHZsYWssIGRlemUgZm9vdGVyIG9wIHdpdC4gKi9cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkIC50cmMtbG9jLWRlcHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgbWluLXdpZHRoOiAwO1xuICBtYXJnaW4tdG9wOiAzcHg7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkIC50cmMtbG9jLWRlcHQgPiBxZG5hcHJvLWljb24ge1xuICBmbGV4OiBub25lO1xuICBjb2xvcjogcmdiYSg2NCwgNzMsIDE1NCwgMC43NSk7XG59XG5cbi8qIE5pZXQgendhYXJkZXIgZGFuIGRlIGxvY2F0aWVuYWFtIGVyYm92ZW46IGRlIGFmZGVsaW5nIGlzIGVlbiBkZXRhaWwgdmFuIGRlXG4gICBsb2NhdGllLCBnZWVuIHR3ZWVkZSB0aXRlbC4gKi9cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkIC50cmMtbG9jLWRlcHQtbmFtZSB7XG4gIG1pbi13aWR0aDogMDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkIC50cmMtY2hlY2sge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBmbGV4OiBub25lO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkIC50cmMtY29tcGxldGVkLWxhYmVsIHtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZCAudHJjLWNvbXBsZXRlZC10aW1lIHtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIG9wYWNpdHk6IDAuNTtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZCAudHJjLWhpZGUge1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQgLnRyYy1mb290ZXItdW5zeW5jZWQge1xuICBjb2xvcjogdmFyKC0tYy13YXJuLXllbGxvdy02MDApO1xuICBmb250LXNpemU6IDE1cHg7XG59XG5cbi8qID09PSBEaXNhYmxlZCBzdGF0ZSA9PT1cbiAgIEJhY2tncm91bmQgc3RheXMgd2hpdGUgYW5kIGJvcmRlciBzdGF5cyBncmV5LTEwMCAoYm90aCBkZWxpYmVyYXRlLCBLaW1cbiAgIDI4LjA3LjIwMjYgLSBhIGdyZXkgZmlsbCB3b3VsZCB2YW5pc2ggYWdhaW5zdCB0aGUgbGlnaHQgZ3JleSBwYWdlKS4gVGV4dFxuICAgZ29lcyB0byB0aGUgYnV0dG9uIGNvbXBvbmVudCdzIGRpc2FibGVkIHRleHQgY29sb3VyIGFuZCB0aGUgYWN0aXZpdHlcbiAgIGljb24gZmFkZXM7IGhvdmVyIC8gcHJlc3NlZCAvIGZvY3VzIGFyZSBzdXBwcmVzc2VkIHZpYSB0aGUgOm5vdCgudHJjLWRpc2FibGVkKVxuICAgZ3VhcmRzIGFib3ZlLiAqL1xuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQudHJjLWRpc2FibGVkIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkLnRyYy1kaXNhYmxlZCAudHJjLXRpbGUgcWRuYXByby1hY3Rpdml0eS1pY29uIHtcbiAgb3BhY2l0eTogMC4zO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZC50cmMtZGlzYWJsZWQgLnRyYy1uYW1lLFxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQudHJjLWRpc2FibGVkIC50cmMtcHJvamVjdCxcbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkLnRyYy1kaXNhYmxlZCAudHJjLXRpbWUsXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZC50cmMtZGlzYWJsZWQgLnRyYy1zdGF0dXMsXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZC50cmMtZGlzYWJsZWQgLnRyYy1sb2MtbmFtZSxcbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkLnRyYy1kaXNhYmxlZCAudHJjLWxvYy1hZGRyZXNzLFxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQudHJjLWRpc2FibGVkIC50cmMtbG9jLWRlcHQtbmFtZSxcbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkLnRyYy1kaXNhYmxlZCAudHJjLWNvbXBsZXRlZC1sYWJlbCxcbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkLnRyYy1kaXNhYmxlZCAudHJjLWNvbXBsZXRlZC10aW1lLFxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQudHJjLWRpc2FibGVkIC50cmMtaGlkZSxcbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkLnRyYy1kaXNhYmxlZCAudHJjLWZvb3Rlci11bnN5bmNlZCB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZC50cmMtZGlzYWJsZWQgLnRyYy1tZXRhID4gcWRuYXByby1pY29uLFxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQudHJjLWRpc2FibGVkIC50cmMtbG9jLWRlcHQgPiBxZG5hcHJvLWljb24ge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkKTtcbn1cblxuLyogPT09IENvbG91ciBwYWxldHRlIChxZG5hcHJvLXRhZyBsaWdodCBwYXN0ZWxzLCBzYW1lIHRva2VucyBhcyBxZG5hcHJvLXRhc2tsaXN0LWNhcmQpID09PSAqL1xuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQudHJjLWNvbG9yLWdyZXkge1xuICAtLXRyYy1iZzogdmFyKC0tYy1ncmV5LTUwKTtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQudHJjLWNvbG9yLXJlZCB7XG4gIC0tdHJjLWJnOiB2YXIoLS1jLXNpZ25hbC1yZWQtYmcpO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZC50cmMtY29sb3IteWVsbG93IHtcbiAgLS10cmMtYmc6IHZhcigtLWMtY2hpcC15ZWxsb3ctYmcpO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZC50cmMtY29sb3ItZ3JlZW4ge1xuICAtLXRyYy1iZzogdmFyKC0tYy1jaGlwLWdyZWVuLWJnKTtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQudHJjLWNvbG9yLWJsdWUge1xuICAtLXRyYy1iZzogdmFyKC0tYy1zaWduYWwtYmx1ZS1iZyk7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkLnRyYy1jb2xvci1icmlnaHQtYmx1ZSB7XG4gIC0tdHJjLWJnOiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtMi1iZyk7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkLnRyYy1jb2xvci1waW5rIHtcbiAgLS10cmMtYmc6IHZhcigtLWMtc2lnbmFsLXBpbmstYmcpO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZC50cmMtY29sb3ItcHVycGxlIHtcbiAgLS10cmMtYmc6IHZhcigtLWMtY2hpcC1wdXJwbGUtYmcpO1xufVxuXG4vKiA9PT0gRGFyayBtb2RlIC0gYmFzZSBjYXJkIGNocm9tZSA9PT1cbiAgIEV4cGxpY2l0IGRhcmsgb3ZlcnJpZGVzIChzdGFuZGFsb25lIGxpYnJhcnkgcHJldmlldyBoYXMgbm8gLS1jLSogdG9rZW5zXG4gICBzZXQsIHNvIGxpZ2h0IGZhbGxiYWNrcyB3b3VsZCBvdGhlcndpc2Ugd2luKS4gVmFsdWVzIGZvbGxvdyB0aGUgc2FtZVxuICAgZGFyayBwYWxldHRlIHVzZWQgYWNyb3NzIHRoZSBvdGhlciB2MiBjb21wb25lbnRzOiBzdXJmYWNlIHZhcigtLWMtZ3JleS04MDApLFxuICAgaG92ZXIgdmFyKC0tYy1ncmV5LTcwMCksIHByZXNzZWQgdmFyKC0tYy1ncmV5LTYwMCksIHByaW1hcnkgdGV4dCB2YXIoLS1jLWdyZXktNTApLCBtdXRlZCB2YXIoLS1jLWdyZXktNDAwKSxcbiAgIHN1YnRsZSBib3JkZXIgcmdiYSgyNTUsMjU1LDI1NSwwLjEwKS4gKi9cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkIHtcbiAgYmFja2dyb3VuZDogIzJlMzAzNjtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkIC50cmMtbmFtZSB7XG4gIGNvbG9yOiAjYzdjY2U4O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZCAudHJjLXByb2plY3Qge1xuICBjb2xvcjogI2YwZjFmMjtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQgLnRyYy10aW1lIHtcbiAgY29sb3I6ICNhMGE0Yjg7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkIC50cmMtZm9vdGVyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuXG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBbZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZDpub3QoLnRyYy1kaXNhYmxlZCk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICM0MDQ0NGQ7XG4gIH1cbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQuZm9yY2UtaG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjNDA0NDRkO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZDpub3QoLnRyYy1kaXNhYmxlZCk6YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogIzU2NWI2Njtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQ6bm90KC50cmMtZGlzYWJsZWQpLmlzLXByZXNzZWQge1xuICBiYWNrZ3JvdW5kOiAjNTY1YjY2O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZC5mb3JjZS1wcmVzc2VkIHtcbiAgYmFja2dyb3VuZDogIzU2NWI2Njtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQudHJjLWNvbG9yLWdyZXkge1xuICAtLXRyYy1iZzogIzQwNDQ0ZDtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQudHJjLWNvbG9yLXJlZCB7XG4gIC0tdHJjLWJnOiAjNWEyYjJiO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZC50cmMtY29sb3IteWVsbG93IHtcbiAgLS10cmMtYmc6ICM1YTRkMWY7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkLnRyYy1jb2xvci1ncmVlbiB7XG4gIC0tdHJjLWJnOiAjMmE1NTQ0O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZC50cmMtY29sb3ItYmx1ZSB7XG4gIC0tdHJjLWJnOiAjMmUzZTU0O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZC50cmMtY29sb3ItYnJpZ2h0LWJsdWUge1xuICAtLXRyYy1iZzogIzNhNGE4YTtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQudHJjLWNvbG9yLXBpbmsge1xuICAtLXRyYy1iZzogIzRlMmEzNjtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQudHJjLWNvbG9yLXB1cnBsZSB7XG4gIC0tdHJjLWJnOiAjM2EzNTU1O1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1zZWxlY3Rpb24tYmFyICsgcWRuYXByby1zZWxlY3Rpb24tYmFyLWJ0blxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgRml4ZWQgYmFyIGF0IHRoZSBib3R0b20gb2YgdGhlIHNjcmVlbiwgc2hvd24gd2hpbGUgdGhlIHVzZXIgaXMgaW5cbi8vICBzZWxlY3Rpb24gbW9kZS4gT25lIGJ1dHRvbiBwZXIgYWN0aW9uOiBNREkgZ2x5cGggd2l0aCBpdHMgd29yZFxuLy8gIGRpcmVjdGx5IHVuZGVybmVhdGguXG4vL1xuLy8gIEJvdHRvbS1vZi1zY3JlZW4gY291bnRlcnBhcnQgb2YgcWRuYXByby1hcHAtaGVhZGVyIG1vZGU9XCJzZWxlY3Rpb25cIi5cbi8vICBUaGUgY291bnQgKFwiMyBzZWxlY3RlZFwiKSBsaXZlcyBpbiB0aGF0IGhlYWRlciwgbmV2ZXIgaGVyZS5cbi8vXG4vLyAgREVMSUJFUkFURUxZIFBMQUlOIENTUy4gVGhpcyBmaWxlIGNvbnRhaW5zIE5PIFNDU1MgdmFyaWFibGVzICgkbmFtZTopXG4vLyAgYW5kIE5PIG5lc3RlZCAmIHNlbGVjdG9ycywgb24gcHVycG9zZTogYSBjb21wb25lbnQgd2hvc2Ugc3R5bGVzaGVldFxuLy8gIG5lZWRzIHJlYWwgU0NTUyBjb21waWxhdGlvbiBtdXN0IGJlIGZsYWdnZWQgYXMgY29tcGlsZVNjc3Mgd2hlbiBpdCBpc1xuLy8gIHN5bmNlZCB0byB0aGUgUFdBLCBhbmQgYSBtaXNzZWQgZmxhZyBsZWFrcyB0aGUgdmFyaWFibGUgbmFtZSBzdHJhaWdodFxuLy8gIGludG8gdGhlIENTUywgd2hpY2ggaW52YWxpZGF0ZXMgdGhlIHJ1bGUgQU5EIHRocm93cyBhd2F5IHRoZSBydWxlXG4vLyAgYWZ0ZXIgaXQuIEV2ZXJ5dGhpbmcgaGVyZSBpcyB0aGVyZWZvcmUgY3VzdG9tIHByb3BlcnRpZXMgKyBmbGF0XG4vLyAgc2VsZWN0b3JzLCB3aGljaCBpcyBieXRlLWZvci1ieXRlIHZhbGlkIENTUyBlaXRoZXIgd2F5LlxuLy9cbi8vICBUb2tlbnMgY29uc3VtZWQgKGZyb20gZGVzaWduLXRva2Vucy9fZGVzaWduLXRva2Vucy5zY3NzKTpcbi8vICAgIC0tYy1iZy1jYXJkICAgICAgICAgICAgICAgYmFyIGJhY2tncm91bmQgKGF1dG8tZmxpcHMgaW4gZGFyayBtb2RlKVxuLy8gICAgLS1jLWJvcmRlci1zb2Z0LTIgICAgICAgICBoYWlybGluZSBvbiB0b3AgLyBjYXJkIGJvcmRlclxuLy8gICAgLS1jLXRleHQtYm9keSAgICAgICAgICAgICBhY3RpdmUvaG92ZXIgZ2x5cGggKyBsYWJlbCBjb2xvdXJcbi8vICAgIC0tYy10ZXh0LW11dGVkICAgICAgICAgICAgaWRsZSBnbHlwaCArIGxhYmVsIGNvbG91clxuLy8gICAgLS1jLXRleHQtZGlzYWJsZWQgICAgICAgICBkaXNhYmxlZCBidXR0b25cbi8vICAgIC0tYy1zaWduYWwtcmVkLXRleHQgICAgICAgZGFuZ2VyIHRvbmUgKGxpZ2h0KVxuLy8gICAgLS1jLXdhcm4tcmVkLTQwMCAgICAgICAgICBkYW5nZXIgdG9uZSAoZGFyaylcbi8vICAgIC0tYy1iZy1zdWJ0bGUtaG92ZXIgICAgICAgaG92ZXIgYmFja2dyb3VuZFxuLy8gICAgLS1jLWJnLXN1YnRsZS1wcmVzcyAgICAgICBwcmVzc2VkIGJhY2tncm91bmQgKHdhcyBsaWNodHBhYXJzIHRvdCAyOS4wNy4yMDI2KVxuLy8gICAgLS1mb2N1cy1yaW5nICAgICAgICAgICAgICBrZXlib2FyZCBmb2N1cyBvdXRsaW5lXG4vLyAgICAtLXItMiAvIC0tci00ICAgICAgICAgICAgIHJhZGlpXG4vLyAgICAtLWZmIC8gLS1mdy1tZWRpdW0gICAgICAgIHR5cG9ncmFwaHlcbi8vICAgIC0tZnctc2VtaSAvIC0tZnctcmVndWxhciAgbW9kZT1cIm1lc3NhZ2VcIiB0aXRsZSBhbmQgc3VidGl0bGVcbi8vXG4vLyAgVGFwIHRhcmdldCA6IGV2ZXJ5IGJ1dHRvbiBpcyBtaW4taGVpZ2h0IDQ0cHggKEFwcGxlIEhJRyBtaW5pbXVtKS5cbi8vICBTYWZlIGFyZWEgIDogZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pIGlzIHJlc2VydmVkIElOU0lERSB0aGUgYmFyLFxuLy8gICAgICAgICAgICAgICBleGFjdGx5IGxpa2UgcWRuYXByby1ib3R0b20tbmF2IGRvZXMgaXQsIGJ1dCByZWR1Y2VkIGJ5XG4vLyAgICAgICAgICAgICAgIHdoYXRldmVyIC0tcXNiLWJvdHRvbS1vZmZzZXQgKCsgdGhlIGZsb2F0aW5nIGxpZnQpXG4vLyAgICAgICAgICAgICAgIGFscmVhZHkgcmFpc2VzIHRoZSBiYXIuIFNpdHRpbmcgb24gdG9wIG9mIHRoZSBib3R0b20tbmF2XG4vLyAgICAgICAgICAgICAgIHRoZXJlZm9yZSBkb2VzIG5vdCByZXNlcnZlIHRoZSBob21lLWluZGljYXRvciBzdHJpcCB0d2ljZS5cbi8vXG4vLyAgTm8gbWVkaWEgcXVlcmllcyBvbiBwdXJwb3NlOiB0aGUgYmFyIG11c3Qgc3Vydml2ZSBhIDM2MHB4IHBob25lLCBhbmRcbi8vICBhIHZpZXdwb3J0LWJhc2VkIGJyZWFrcG9pbnQgd291bGQgc2lsZW50bHkgY2hhbmdlIHRoZSB0eXBlIHNpemUgaW4gYVxuLy8gIG5hcnJvdyBjb250YWluZXIgaW5zaWRlIGEgd2lkZSB3aW5kb3cgKHdoaWNoIGlzIGV4YWN0bHkgdGhlIHNpdHVhdGlvblxuLy8gIGluIHRoZSBsaWJyYXJ5IHByZXZpZXcpLiBPbmUgc2l6ZSBldmVyeXdoZXJlLCBob25lc3QgZXZlcnl3aGVyZS5cbi8vICBXaWRlIHNjcmVlbnMgYXJlIGhhbmRsZWQgYnkgY2FwcGluZyBlYWNoIGJ1dHRvbiBhdCAtLXFzYi1idG4tbWF4IGFuZFxuLy8gIGNlbnRyaW5nIHRoZSByb3csIHNvIHRoZSBidXR0b25zIG5ldmVyIHN0cmV0Y2ggYWNyb3NzIGEgbGFwdG9wLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5xZG5hcHJvLXNlbGVjdGlvbi1iYXIge1xuICAgIC0tcXNiLWJnOiAgICAgICAgICAgIHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG4gICAgLS1xc2ItYm9yZGVyOiAgICAgICAgdmFyKC0tYy1ib3JkZXItc29mdC0yLCAjZTZlOWVmKTtcbiAgICAtLXFzYi1mZzogICAgICAgICAgICB2YXIoLS1jLXRleHQtYm9keSwgIzBiMGIwZCk7XG4gICAgLS1xc2ItZmctaWRsZTogICAgICAgdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbiAgICAtLXFzYi1mZy1kaXNhYmxlZDogICB2YXIoLS1jLXRleHQtZGlzYWJsZWQsICM4OThlOTkpO1xuICAgIC0tcXNiLWZnLWRhbmdlcjogICAgIHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTtcbiAgICAtLXFzYi1ob3Zlci1iZzogICAgICB2YXIoLS1jLWJnLXN1YnRsZS1ob3ZlciwgI2YwZjFmMik7XG4gICAgLy8gS2ltIDI5LjA3LjIwMjYsIG5hIGRlIGVlcnN0ZSB0b2VzdGVsdGVzdDogZGUgaW5nZWRydWt0LWtsZXVyIHdhc1xuICAgIC8vIGxpY2h0cGFhcnMgZW4gZGF0IHdpbCB6ZSBuaWV0IG9wIGRlemUgYmFsay4gTnUgZWVuIG5ldXRyYWFsIGdyaWpzLCBoZXR6ZWxmZGVcbiAgICAvLyBncmlqcyBhbHMgZGUgendlZWYtc3RhYXQsIHpvZGF0IGRlIGJhbGsgaW4gZWxrZSB0b2VzdGFuZCB3aXQgbWV0IGdyaWpzIGlzIGVuXG4gICAgLy8gbm9vaXQgcGFhcnMgb3BsaWNodC4gRGUgZ2V2YWFyLXRvb24gaG91ZHQgemlqbiBlaWdlbiByb2RlIGluZ2VkcnVrdC1rbGV1ci5cbiAgICAtLXFzYi1wcmVzcy1iZzogICAgICB2YXIoLS1jLWJnLXN1YnRsZS1wcmVzcywgI2U3ZTllYyk7XG5cbiAgICAvLyBweCBkaXN0YW5jZSB0byB0aGUgYm90dG9tIGVkZ2Ugb2YgdGhlIHZpZXdwb3J0LiBSYWlzZWQgYnkgdGhlIGhvc3RcbiAgICAvLyB3aGVuIGEgcGVybWFuZW50IGJvdHRvbSBiYXIgKHFkbmFwcm8tYm90dG9tLW5hdiwgNjBweCkgc2l0cyBiZWxvdy5cbiAgICAtLXFzYi1ib3R0b20tb2Zmc2V0OiAwcHg7XG4gICAgLy8gRXh0cmEgYWlyIHVuZGVyIHRoZSBiYXIuIDAgZm9yIGZsYXQsIDEycHggZm9yIHRoZSBmbG9hdGluZyBjYXJkLlxuICAgIC0tcXNiLWxpZnQ6ICAgICAgICAgIDBweDtcblxuICAgIC0tcXNiLXBhZC15OiAgICAgICAgIDZweDtcbiAgICAtLXFzYi1wYWQteDogICAgICAgICA0cHg7XG4gICAgLS1xc2ItYnRuLW1heDogICAgICAgMTQwcHg7XG4gICAgLS1xc2ItbGFiZWwtc2l6ZTogICAgMTFweDtcbiAgICAtLXFzYi1nYXA6ICAgICAgICAgICAycHg7XG5cbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IGNhbGModmFyKC0tcXNiLWJvdHRvbS1vZmZzZXQpICsgdmFyKC0tcXNiLWxpZnQpKTtcbiAgICAvLyBPbmUgYmVsb3cgcWRuYXByby1ib3R0b20tbmF2ICgxMDApIG9uIHB1cnBvc2U6IGlmIHRoZSB0d28gZXZlciBkb1xuICAgIC8vIG92ZXJsYXAsIHRoZSBwZXJtYW5lbnQgbmF2aWdhdGlvbiBtdXN0IHN0YXkgcmVhZGFibGUuXG4gICAgei1pbmRleDogOTk7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgcGFkZGluZzogdmFyKC0tcXNiLXBhZC15KSB2YXIoLS1xc2ItcGFkLXgpO1xuICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKFxuICAgICAgICB2YXIoLS1xc2ItcGFkLXkpICtcbiAgICAgICAgbWF4KDBweCwgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sIDBweCkgLSB2YXIoLS1xc2ItYm90dG9tLW9mZnNldCkgLSB2YXIoLS1xc2ItbGlmdCkpXG4gICAgKTtcblxuICAgIGJhY2tncm91bmQ6IHZhcigtLXFzYi1iZyk7XG4gICAgY29sb3I6IHZhcigtLXFzYi1mZyk7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZmLCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5xZG5hcHJvLXNlbGVjdGlvbi1iYXIgKixcbi5xZG5hcHJvLXNlbGVjdGlvbi1iYXIgKjo6YmVmb3JlLFxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhciAqOjphZnRlciB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLy8gVGhlIGNvbXBvbmVudCdzIG93biBkaXNwbGF5OmZsZXggaXMgbW9yZSBzcGVjaWZpYyB0aGFuIHRoZSBicm93c2VyJ3Ncbi8vIGRlZmF1bHQgW2hpZGRlbl0gcnVsZSwgc28gd2l0aG91dCB0aGlzIHRoZSBob3N0J3MgYGhpZGRlbmAgd291bGQgZG9cbi8vIG5vdGhpbmcgYXQgYWxsLiBUaGlzIGlzIGhvdyBhIGhvc3Qgc2hvd3MgYW5kIGhpZGVzIHRoZSBiYXIuXG4ucWRuYXByby1zZWxlY3Rpb24tYmFyW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIHZhcmlhbnQ9XCJmbGF0XCIgKERFRkFVTFQpIC0gZnVsbCB3aWR0aCwgYWdhaW5zdCB0aGUgYm90dG9tIGVkZ2Vcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhcltkYXRhLXZhcmlhbnQ9XCJmbGF0XCJdIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tcXNiLWJvcmRlcik7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBib3gtc2hhZG93OiAwIC0ycHggMTZweCByZ2JhKDIwLCAyNSwgODAsIDAuMTApO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICB2YXJpYW50PVwiZmxvYXRpbmdcIiAtIGNhcmQgd2l0aCBhaXIgYXJvdW5kIGl0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5xZG5hcHJvLXNlbGVjdGlvbi1iYXJbZGF0YS12YXJpYW50PVwiZmxvYXRpbmdcIl0ge1xuICAgIC0tcXNiLWxpZnQ6IDEycHg7XG4gICAgLS1xc2ItcGFkLXg6IDZweDtcblxuICAgIGxlZnQ6IDEycHg7XG4gICAgcmlnaHQ6IDEycHg7XG4gICAgbWF4LXdpZHRoOiA1NjBweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1xc2ItYm9yZGVyKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTQsIDE2cHgpO1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDI0cHggcmdiYSgyMCwgMjUsIDgwLCAwLjE4KTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgbW9kZT1cIm1lc3NhZ2VcIiAtIHRla3N0YmxvayBsaW5rcywgYWN0aWVzIHJlY2h0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgS2ltIDE0LjA4LjIwMjYuIFplbGZkZSBiYWxrLCBhbmRlcmUgaW5kZWxpbmc6IGhpaiBtZWxkdCBlZW4gTU9EVVNcbi8vICAoXCJKZSBwbGFudCBudTogQWxsZSBub2Rlc1wiIC8gXCJUaWsgb3AgamUgYWdlbmRhIG9tIHRlIHBsYW5uZW5cIikgaW5cbi8vICBwbGFhdHMgdmFuIGVlbiByaWogZ2VsaWprZSBhY3RpZWtub3BwZW4uXG4vL1xuLy8gIFR3ZWUgZGluZ2VuIGRpZSBoaWVyIG1vZXRlbiB3b3JkZW4gVEVSVUdHRURSQUFJRCB0ZW4gb3B6aWNodGUgdmFuIGRlXG4vLyAgc3RhbmRhYXJkYmFsaywgZW4gemUgaG9yZW4gYmlqIGVsa2Fhcjpcbi8vICAgIDEuIGp1c3RpZnktY29udGVudDogY2VudGVyIC0+IHNwYWNlLWJldHdlZW4sIHdhbnQgZGUgdGVrc3QgaG9vcnRcbi8vICAgICAgIGxpbmtzIGVuIGRlIGFjdGllcyByZWNodHMuXG4vLyAgICAyLiBkZSBrbm9wcGVuIHZlcmxpZXplbiBodW4gZmxleDogMSAxIDAuIEluIGRlIHN0YW5kYWFyZGJhbGsgZGVsZW5cbi8vICAgICAgIHplIGRlIHJpaiBlZXJsaWprOyBoaWVyIHpvdSBkZSB0ZWtzdCBkYW4gd2VnZ2VkcnVrdCB3b3JkZW4gZG9vclxuLy8gICAgICAgZWVuIGtub3AgZGllIGdyb2VpdCB6b25kZXIgZGF0IGhpaiBydWltdGUgbm9kaWcgaGVlZnQuXG4vL1xuLy8gIEdlcmVrZW5kIG9wIGRlIHNtYWxzdGUgdGVsZWZvb24gZGllIHdlIG1vZXRlbiBoYWxlbiAoMzYwcHgpOiAzMjhweFxuLy8gIGJpbm5lbiBkZSBwYWRkaW5nLCBlZW4ga25vcCB2YW4gNjRweCBlcmFmLCAxMnB4IGdhdCA9IDI1MnB4IHZvb3IgZGVcbi8vICB0ZWtzdC4gXCJKZSBwbGFudCBudTogQWxsZSBub2Rlc1wiIGlzIGJpaiAxNXB4IEludGVyIFNlbWlib2xkIG9uZ2V2ZWVyXG4vLyAgMTg1cHgsIGR1cyBkYXQgcGFzdC4gRGUgdGl0ZWwgbWFnIG92ZXIgTUFYSU1BQUwgVFdFRSByZWdlbHMgKGdla2xlbWQsXG4vLyAgemllIGRlIHJlZ2VsIHplbGYgdm9vciBkZSBtZXRpbmcpOyBkZSBvbmRlcnJlZ2VsIGthcHQgYWYgbWV0IGVlblxuLy8gIHB1bnQtcHVudC1wdW50LCB3YW50IGRpZSBpcyB1aXRsZWcgZW4gZ2VlbiBpbmZvcm1hdGllIGRpZSBqZSBwZXIgd29vcmRcbi8vICBub2RpZyBoZWJ0LlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgT1ZFUiBERSBPTkRFUkJBTEsgRU4gRE9PUiBUT1QgREUgT05ERVJSQU5EIChLaW0gMTQuMDguMjAyNjogXCJhbGxlZW4gZGFuXG4vLyAgT1ZFUiBkZSBuYXZpZ2F0aWViYWxrIGVuIGhlbGVtYWFsIGRvb3Jsb3BlbmQgdG90IG9uZGVyYWFuLCBuaWV0IHpvIGhhbGZcbi8vICB6d2V2ZW5kXCIpLiBEaXQgaXMgZGUgb21nZWtlZXJkZSBrZXV6ZSB2YW4gZGUgYWN0aWUtYmFsaywgZW4gZGF0IGlzIG1ldFxuLy8gIG9wemV0OlxuLy9cbi8vICAgIC0gRGUgQUNUSUUtYmFsayB6aXQgb3Agei1pbmRleCA5OSwgw6nDqW4gT05ERVIgcWRuYXByby1ib3R0b20tbmF2ICgxMDApLFxuLy8gICAgICBtZXQgZGUgcmVnZWwgXCJhbHMgZGllIHR3ZWUgb29pdCBvdmVybGFwcGVuIG1vZXQgZGUgdmFzdGUgbmF2aWdhdGllXG4vLyAgICAgIGxlZXNiYWFyIGJsaWp2ZW5cIi4gRGFhciBrbG9wdCBkYXQ6IGplIGJlbnQgaWV0cyBhYW4gaGV0IHNlbGVjdGVyZW4gZW5cbi8vICAgICAgbWFnIG9uZGVydHVzc2VuIGdld29vbiB3ZWduYXZpZ2VyZW4uXG4vLyAgICAtIERlIE1FTERJTkctYmFsayBpcyBlZW4gTU9EVVMuIFpvbGFuZyBqZSBlZW4gcGxlayBhYW53aWpzdCBpcyBkZVxuLy8gICAgICBuYXZpZ2F0aWUgbmlldCB3YXQgamUgbW9ldCBhYW50aWtrZW4sIGR1cyBtYWcgaGlqIGVyb3ZlcmhlZW4sIGVuIGRhblxuLy8gICAgICBtb2V0IGhpaiBoZW0gb29rIGhlbGVtYWFsIGJlZGVra2VuLiBIYWxmIG92ZXIgZWVuIHp3ZXZlbmRlIHBpbCBoZWVuXG4vLyAgICAgIGlzIHByZWNpZXMgZGUgdm9ybSBkaWUgS2ltIGFma2V1cmRlLlxuLy9cbi8vICBEZSBib2RlbWFmc3RhbmQgd29yZHQgaGllciB2aWEgZGUgdHdlZSBWQVJJQUJFTEVOIG9wIG51bCBnZXpldCBlbiBuaWV0XG4vLyAgbWV0IGVlbiBlaWdlbiBgYm90dG9tYC4gRGF0IGlzIGdlZW4gc3Rpamxrd2VzdGllOiBkZSB2ZWlsaWdlLXpvbmUtcmVrZW5pbmdcbi8vICBpbiBkZSBiYXNpc3JlZ2VsIHRyZWt0IC0tcXNiLWJvdHRvbS1vZmZzZXQgZW4gLS1xc2ItbGlmdCB2YW4gZGVcbi8vICBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkgYWYsIGR1cyBtZXQgZGUgdmFyaWFiZWxlbiBvcCBudWwgcmVzZXJ2ZWVydCBkZVxuLy8gIGJhbGsgZGUgVk9MTEUgdmVpbGlnZSB6b25lIGJpbm5lbiB6aWNoemVsZiBlbiBsb29wdCB6aWpuIHZsYWsgZG9vciB0b3QgZGVcbi8vICBvbmRlcnJhbmQgdmFuIGhldCBzY2hlcm0uIE1ldCBlZW4gbG9zc2UgYGJvdHRvbTogMGAgem91IGRpZSBhZnRyZWsgYmxpanZlblxuLy8gIHN0YWFuIGVuIGhpZWxkIGplIGVlbiBzdHJlZXBqZSBvbmJlc2NoaWxkZXJkLlxuLy9cbi8vICBib3R0b20tb2Zmc2V0IHZhbiBkZSBob3N0IHdvcmR0IGluIGRlemUgbW9kdXMgZHVzIEdFTkVHRUVSRCwgZW4gZGVcbi8vICB6d2V2ZW5kZSB2YXJpYW50IG9vayAoemllIGhldCBibG9rIGVyb25kZXIpLiBCZXd1c3QgZGljaHQ6IGFuZGVycyBrYW4gZWVuXG4vLyAgdm9sZ2VuZGUgZ2VicnVpa2VyIGRlIGFmZ2VrZXVyZGUgaGFsZi16d2V2ZW5kZSB2b3JtIHRlcnVnYm91d2VuLlxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhcltkYXRhLW1vZGU9XCJtZXNzYWdlXCJdIHtcbiAgICAtLXFzYi1wYWQteDogMTZweDtcbiAgICAtLXFzYi1wYWQteTogMTBweDtcbiAgICAtLXFzYi1ib3R0b20tb2Zmc2V0OiAwcHg7XG4gICAgLS1xc2ItbGlmdDogMHB4O1xuXG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICB6LWluZGV4OiAxMDE7XG5cbiAgICAvLyBEZSBiYWxrIHplbGYgaXMgaW4gZGV6ZSBtb2R1cyBlZW4gS09MT00gdmFuIG1heGltYWFsIHR3ZWUgcmlqZW4uIEdlZW5cbiAgICAvLyBmbGV4LXdyYXAgb3AgZGUgYmFsazogZGF0IGlzIHVpdGdlcHJvYmVlcmQgZW4gYWFudG9vbmJhYXIgZm91dCwgd2FudCBkYW5cbiAgICAvLyBkdXd0IGRlIGJyb3dzZXIgZGUgQUNUSUVTIG5hYXIgZWVuIHR3ZWVkZSByZWdlbCBpbiBwbGFhdHMgdmFuIGhldFxuICAgIC8vIHRla3N0YmxvayB0ZSBsYXRlbiBrcmltcGVuLCBlbiBiaWogZWVuIGxhbmdlIGl0ZW1uYWFtIHZpZWwgZGUgYmFsa1xuICAgIC8vIHVpdGVlbiB0b3QgMjI1cHggaG9vZyBtZXQgaGV0IGljb29uIGFsbGVlbiBvcCByZWdlbCDDqcOpbi5cbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBnYXA6IDhweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4vLyBEZSBlZXJzdGUgcmlqOiBpY29vbiwgdGVrc3RibG9rLCBhY3RpZXMuIE5PV1JBUCwgem9kYXQgaGV0IHRla3N0YmxvayBrcmltcHRcbi8vIChoZXQgaGVlZnQgbWluLXdpZHRoOiAwKSBpbiBwbGFhdHMgdmFuIGRhdCBlciBpZXRzIG5hYXIgYmVuZWRlbiB2YWx0LlxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhcltkYXRhLW1vZGU9XCJtZXNzYWdlXCJdIC5xc2Itcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGdhcDogMTJweDtcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi8vIERlIHR3ZWVkZSByZWdlbDogdm9vciBrZXV6ZXMgZGllIGVyIG5hYXN0IGRlIHRla3N0IG5pZXQgYmlqIHBhc3NlbiAoZGUgdHdlZVxuLy8gdGlqZC1jaGlwcyB2YW4gZGUgYWdlbmRhKS4gV3JhcHMgaW50ZXJuIHfDqWwsIHdhbnQgdHdlZSBsYW5nZSBjaGlwcyBoYWxlbiBvcFxuLy8gMzYwcHggc2FtZW4gZGUgYnJlZWR0ZSBuaWV0LlxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhcltkYXRhLW1vZGU9XCJtZXNzYWdlXCJdIC5xc2ItYmVsb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi8vIERlIHp3ZXZlbmRlIHZhcmlhbnQgaGVlZnQgaW4gZGV6ZSBtb2R1cyBnZWVuIGJldGVrZW5pcyBtZWVyOiBlZW4ga2FhcnQgbWV0XG4vLyBsdWNodCBlcm9taGVlbiBrYW4gcGVyIGRlZmluaXRpZSBuaWV0IGRvb3Jsb3BlbiB0b3QgZGUgb25kZXJyYW5kLiBIb2dlcmVcbi8vIHNwZWNpZmljaXRlaXQgKGRyaWUgc2VsZWN0b3JkZWxlbikgem9kYXQgZGl0IG5vb2l0IHZhbiBkZSB2b2xnb3JkZSBpbiBkaXRcbi8vIGJlc3RhbmQgYWZoYW5ndC5cbi5xZG5hcHJvLXNlbGVjdGlvbi1iYXJbZGF0YS1tb2RlPVwibWVzc2FnZVwiXVtkYXRhLXZhcmlhbnQ9XCJmbG9hdGluZ1wiXSB7XG4gICAgLS1xc2ItcGFkLXg6IDE2cHg7XG5cbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXFzYi1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYm94LXNoYWRvdzogMCAtMnB4IDE2cHggcmdiYSgyMCwgMjUsIDgwLCAwLjEwKTtcbn1cblxuLy8gSGV0IGxlYWRpbmctdmFrLiA0MHB4IG9tZGF0IGRhdCBkZSBtYWF0IGlzIGRpZSAucWRuYS10bC10aWxlIGluIGRlIFBXQSBhbFxuLy8gaGVlZnQgaW4gZGUgbGlqc3Qgd2FhciBoZXQgaXRlbSB1aXQga29tdDogaGV0emVsZmRlIGl0ZW0gemlldCBlciBpbiBkZSBiYWxrXG4vLyBkdXMgbmV0IHpvIHVpdCBhbHMgaW4gZGUgcmlqIGRpZSBqZSBhYW50aWt0ZS4gS3JpbXB0IG5vb2l0IG1lZSAoZmxleCAwIDBcbi8vIGF1dG8pLCB3YW50IGVlbiBoYWxmIHdlZ2dlZHJ1a3QgaWNvb24gaXMgZXJnZXIgZGFuIGdlZW4gaWNvb24uXG4ucWRuYXByby1zZWxlY3Rpb24tYmFyW2RhdGEtbW9kZT1cIm1lc3NhZ2VcIl0gLnFzYi1sZWFkIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4vLyBXYXQgZGUgaG9zdCBlcmluIGhhbmd0IHNjaGFhbHQgbmFhciBoZXQgdmFrIGluIHBsYWF0cyB2YW4gZXJ1aXQgdGUgbG9wZW4uXG4vLyBUd2VlIGdldmFsbGVuIGRpZSB3ZSBlY2h0IGdlYnJ1aWtlbjogZGUgdGFrZW5saWpzdC10ZWdlbCAoZWVuIGRpdiBtZXQgZWVuXG4vLyBpbWcgZXJpbikgZW4gZWVuIGxvc3NlIHFkbmFwcm8taWNvbiBtZXQgZWVuIGJyb24tZ2x5cGguXG4ucWRuYXByby1zZWxlY3Rpb24tYmFyW2RhdGEtbW9kZT1cIm1lc3NhZ2VcIl0gLnFzYi1sZWFkID4gKiB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG59XG5cbi5xZG5hcHJvLXNlbGVjdGlvbi1iYXJbZGF0YS1tb2RlPVwibWVzc2FnZVwiXSAucXNiLWxlYWQgPiBxZG5hcHJvLWljb24sXG4ucWRuYXByby1zZWxlY3Rpb24tYmFyW2RhdGEtbW9kZT1cIm1lc3NhZ2VcIl0gLnFzYi1sZWFkID4gcWRuYXByby1pY29uIHN2ZyB7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbn1cblxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhcltkYXRhLW1vZGU9XCJtZXNzYWdlXCJdIC5xc2ItbWVzc2FnZSB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbn1cblxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhcltkYXRhLW1vZGU9XCJtZXNzYWdlXCJdIC5xc2ItbWVzc2FnZV9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaSwgNjAwKTtcbiAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICBjb2xvcjogdmFyKC0tcXNiLWZnKTtcblxuICAgIC8vIE1heGltYWFsIFRXRUUgcmVnZWxzLiBHRU1FVEVOIGVuIG5pZXQgYWFuZ2Vub21lbjogem9uZGVyIGRlemUga2xlbVxuICAgIC8vIGxpZXAgXCJKZSBwbGFudCBudTogRG9zc2llcmNvbnRyb2xlIHZhc3RsZWdnaW5nIHZlcnRlZ2Vud29vcmRpZ2VyIGVuXG4gICAgLy8gb3BuYW1lZ3JvbmRcIiBvcCAzNjBweCB1aXQgdG90IGRyaWUgcmVnZWxzICg1NnB4IGhvZ2UgdGl0ZWwpLCBlbiBkYW5cbiAgICAvLyBlZXQgZGUgYmFsayBlZW4gZGVyZGUgdmFuIGhldCByb29zdGVyIG9wIGRhdCBqZSBqdWlzdCBtb2V0IGt1bm5lblxuICAgIC8vIGFhbndpanplbi4gVHdlZSByZWdlbHMgaXMgZ2Vub2VnIG9tIGRlIG5hYW0gdGUgaGVya2VubmVuOyB3YXQgZXJcbiAgICAvLyBkYWFybmEgbm9nIGFjaHRlciBrb210IHdlZXQgamUgYWwsIHdhbnQgamUgaGVidCBoZXQgaXRlbSBuZXQgemVsZlxuICAgIC8vIGFhbmdldGlrdC5cbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ucWRuYXByby1zZWxlY3Rpb24tYmFyW2RhdGEtbW9kZT1cIm1lc3NhZ2VcIl0gLnFzYi1tZXNzYWdlX19zdWIge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZnctcmVndWxhciwgNDAwKTtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIGNvbG9yOiB2YXIoLS1xc2ItZmctaWRsZSk7XG5cbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi8vIEhldCBhY3RpZS12YWsgcmVjaHRzLiBFw6luIHJpaiwgZW4gZGUgYWN0aWVzIGJlcGFsZW4gemVsZiBodW4gbWFhdDogaGllclxuLy8gaG9yZW4gZGUgZ2V3b25lIHFkbmFwcm8tYnV0dG9uJ3MgdmFuIGhldCBodWlzIChlZW4gdGVrc3QtYWN0aWUgcGx1cyBlZW5cbi8vIHByaW1haXJlIHBpbCksIG5pZXQgYWxsZWVuIGRlIHRvb2xiYXIta25vcHBlbiB2YW4gZGV6ZSBiYWxrLiBLcmltcHQgbm9vaXRcbi8vIChmbGV4IDAgMCBhdXRvKSwgd2FudCBlZW4gaGFsZiBhZmdla2FwdGUga25vcCBpcyBnZWVuIGtub3AuXG4ucWRuYXByby1zZWxlY3Rpb24tYmFyW2RhdGEtbW9kZT1cIm1lc3NhZ2VcIl0gLnFzYi1hY3Rpb25zIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG59XG5cbi8vIERlIHRvb2xiYXIta25vcHBlbiBibGlqdmVuIGJydWlrYmFhciAoaGV0IHBvc3R2YWsgZ2VicnVpa3QgemUpLCBtYWFyIGRlbGVuXG4vLyBoaWVyIG5pZXQgbWVlciBkZSByaWo6IHplIHN0YWFuIG5hYXN0IGVlbiB0ZWtzdGJsb2sgZGF0IGRlIHJ1aW10ZSBub2RpZyBoZWVmdC5cbi5xZG5hcHJvLXNlbGVjdGlvbi1iYXJbZGF0YS1tb2RlPVwibWVzc2FnZVwiXSAucWRuYXByby1zZWxlY3Rpb24tYmFyLWJ0biB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWF4LXdpZHRoOiA5NnB4O1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgQnV0dG9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5xZG5hcHJvLXNlbGVjdGlvbi1iYXItYnRuIHtcbiAgICAvLyBFcXVhbCBzaGFyZSBvZiB0aGUgcm93OiAzIGJ1dHRvbnMgZmlsbCB0aGUgYmFyIGp1c3QgYXMgZXZlbmx5IGFzIDQsXG4gICAgLy8gc28gYSBob3N0IHRoYXQgb21pdHMgYSBidXR0b24gbGVhdmVzIG5vIGdhcCBiZWhpbmQuXG4gICAgZmxleDogMSAxIDA7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1heC13aWR0aDogdmFyKC0tcXNiLWJ0bi1tYXgpO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tcXNiLWdhcCk7XG5cbiAgICBtaW4taGVpZ2h0OiA0NHB4O1xuICAgIHBhZGRpbmc6IDRweCAycHg7XG5cbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci0yLCA4cHgpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuXG4gICAgY29sb3I6IHZhcigtLXFzYi1mZy1pZGxlKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2Utb3V0LCBjb2xvciAxMjBtcyBlYXNlLW91dDtcbn1cblxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhci1idG4gLnFzYi1idG5fX2ljb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgZmxleDogMCAwIGF1dG87XG59XG5cbi5xZG5hcHJvLXNlbGVjdGlvbi1iYXItYnRuIC5xc2ItYnRuX19pY29uIHFkbmFwcm8taWNvbixcbi5xZG5hcHJvLXNlbGVjdGlvbi1iYXItYnRuIC5xc2ItYnRuX19pY29uIHN2ZyB7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhci1idG4gLnFzYi1idG5fX2xhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zaXplOiB2YXIoLS1xc2ItbGFiZWwtc2l6ZSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LW1lZGl1bSwgNTAwKTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAvLyBFbGxpcHNpcyBpcyB0aGUgbGFzdC1yZXNvcnQgc2FmZXR5IG5ldCBvbmx5LiBWZXJpZmllZCB0byBiZVxuICAgIC8vIHVubmVjZXNzYXJ5IGF0IHRoZSBjYXNlIHdlIG11c3Qgc3VwcG9ydDogNCBidXR0b25zIG9uIDM2MHB4IGdpdmVzXG4gICAgLy8gZWFjaCBidXR0b24gOTBweCwgYW5kIHRoZSBsb25nZXN0IER1dGNoIHdvcmQgaW4gdGhlIGluYm94IHNldFxuICAgIC8vIChcIlZlcndpamRlcmVuXCIpIGlzIGFib3V0IDY2cHggYXQgMTFweCBJbnRlciBNZWRpdW0uIEl0IERPRVMga2ljayBpblxuICAgIC8vIGF0IDUgYnV0dG9ucyBvbiAzNjBweCwgd2hlcmUgZWFjaCBidXR0b24gb25seSBnZXRzIDcycHguXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBTdGF0ZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAucWRuYXByby1zZWxlY3Rpb24tYmFyLWJ0bjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXFzYi1ob3Zlci1iZyk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1xc2ItZmcpO1xuICAgIH1cbn1cblxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhci1idG5bZGF0YS1wcmVzc2luZz1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXFzYi1wcmVzcy1iZyk7XG4gICAgY29sb3I6IHZhcigtLXFzYi1mZyk7XG59XG5cbi5xZG5hcHJvLXNlbGVjdGlvbi1iYXItYnRuOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1mb2N1cy1yaW5nLCAjNDA0OTlhKTtcbiAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cblxuLy8gdG9uZT1cImRhbmdlclwiIC0gZGVzdHJ1Y3RpdmUgYWN0aW9uIChkZWxldGUpLiBUb2tlbiBvbmx5LCBuZXZlciBhIGhleC5cbi5xZG5hcHJvLXNlbGVjdGlvbi1iYXItYnRuW2RhdGEtdG9uZT1cImRhbmdlclwiXSB7XG4gICAgY29sb3I6IHZhcigtLXFzYi1mZy1kYW5nZXIpO1xufVxuXG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgIC5xZG5hcHJvLXNlbGVjdGlvbi1iYXItYnRuW2RhdGEtdG9uZT1cImRhbmdlclwiXTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLXJlZC1zb2Z0LCAjZmZmMGYwKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXFzYi1mZy1kYW5nZXIpO1xuICAgIH1cbn1cblxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhci1idG5bZGF0YS10b25lPVwiZGFuZ2VyXCJdW2RhdGEtcHJlc3Npbmc9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1yZWQtYmcsICNmZWUzZTMpO1xuICAgIGNvbG9yOiB2YXIoLS1xc2ItZmctZGFuZ2VyKTtcbn1cblxuLy8gZGlzYWJsZWQgLSB2aXNpYmxlLCBkaW1tZWQsIG5vdCB0YXBwYWJsZS4gQW5ub3VuY2VkIHZpYSBhcmlhLWRpc2FibGVkXG4vLyBmcm9tIHRoZSBKUzsgcG9pbnRlci1ldmVudHMga2VlcHMgYSBzdHJheSB0YXAgZnJvbSByZWFjaGluZyBpdC5cbi5xZG5hcHJvLXNlbGVjdGlvbi1iYXItYnRuW2RhdGEtZGlzYWJsZWQ9XCJ0cnVlXCJdIHtcbiAgICBjb2xvcjogdmFyKC0tcXNiLWZnLWRpc2FibGVkKTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5xZG5hcHJvLXNlbGVjdGlvbi1iYXItYnRuW2RhdGEtZGlzYWJsZWQ9XCJ0cnVlXCJdW2RhdGEtdG9uZT1cImRhbmdlclwiXSB7XG4gICAgY29sb3I6IHZhcigtLXFzYi1mZy1kaXNhYmxlZCk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIERhcmsgbW9kZSAtIHRoZSAtLWMtKiB0b2tlbnMgZmxpcCB0aGVtc2VsdmVzOyBvbmx5IHRoZSB0d29cbi8vICBoYW5kLXBpY2tlZCB2YWx1ZXMgbmVlZCBhIGRhcmsgY291bnRlcnBhcnQuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbltkYXRhLXRoZW1lLWRhcmtdIC5xZG5hcHJvLXNlbGVjdGlvbi1iYXIsXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tc2VsZWN0aW9uLWJhcixcbmJvZHlbZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tc2VsZWN0aW9uLWJhciB7XG4gICAgLS1xc2ItZmctZGFuZ2VyOiB2YXIoLS1jLXdhcm4tcmVkLTQwMCwgI2Y4NzE3MSk7XG59XG5cbltkYXRhLXRoZW1lLWRhcmtdIC5xZG5hcHJvLXNlbGVjdGlvbi1iYXJbZGF0YS12YXJpYW50PVwiZmxhdFwiXSxcbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1zZWxlY3Rpb24tYmFyW2RhdGEtdmFyaWFudD1cImZsYXRcIl0sXG5ib2R5W2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXNlbGVjdGlvbi1iYXJbZGF0YS12YXJpYW50PVwiZmxhdFwiXSB7XG4gICAgYm94LXNoYWRvdzogMCAtMnB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjQ1KTtcbn1cblxuW2RhdGEtdGhlbWUtZGFya10gLnFkbmFwcm8tc2VsZWN0aW9uLWJhcltkYXRhLXZhcmlhbnQ9XCJmbG9hdGluZ1wiXSxcbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1zZWxlY3Rpb24tYmFyW2RhdGEtdmFyaWFudD1cImZsb2F0aW5nXCJdLFxuYm9keVtkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1zZWxlY3Rpb24tYmFyW2RhdGEtdmFyaWFudD1cImZsb2F0aW5nXCJdIHtcbiAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMCwgMCwgMCwgMC41MCk7XG59XG5cbltkYXRhLXRoZW1lLWRhcmtdIC5xZG5hcHJvLXNlbGVjdGlvbi1iYXItYnRuW2RhdGEtdG9uZT1cImRhbmdlclwiXVtkYXRhLXByZXNzaW5nPVwidHJ1ZVwiXSxcbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1zZWxlY3Rpb24tYmFyLWJ0bltkYXRhLXRvbmU9XCJkYW5nZXJcIl1bZGF0YS1wcmVzc2luZz1cInRydWVcIl0sXG5ib2R5W2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXNlbGVjdGlvbi1iYXItYnRuW2RhdGEtdG9uZT1cImRhbmdlclwiXVtkYXRhLXByZXNzaW5nPVwidHJ1ZVwiXSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNDgsIDExMywgMTEzLCAwLjE2KTtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAucWRuYXByby1zZWxlY3Rpb24tYmFyLWJ0biB7IHRyYW5zaXRpb246IG5vbmU7IH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgU0xJREUgSU4gRlJPTSBCRUxPVyBUSEUgU0NSRUVOXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBLaW0gMjkuMDcuMjAyNjogXCJrdW5uZW4gd2UgaGVtIHZhbiBvbmRlcmluIG5hYXIgYm92ZW4gbGF0ZW4gaW5zbGlkZW4sIHZhbm9uZGVyXG4vLyAgaGV0IHNjaGVybSwgem9kYXQgamUgZWNodCBtZXQgamUgb29nIHppZXQgZGF0IGhpaiBpbiBrb210IGFuaW1lcmVuIGluIHBsYWF0cyB2YW5cbi8vICBkYXQgaGlqIGVyIGluZWVucyBzdGFhdFwiLlxuLy9cbi8vICBUaGUgSlMgcGFya3MgYSBmcmVzaGx5IGNyZWF0ZWQgYmFyIHdpdGggZGF0YS1lbnRlcmluZyBhbmQgZHJvcHMgdGhhdCBmbGFnIG9uIHRoZVxuLy8gIG5leHQgZnJhbWUgKHNlZSBxZG5hLXNlbGVjdGlvbi1iYXIuanMgZm9yIHdoeSBvbmUgZnJhbWUgaXMgcmVxdWlyZWQpLiAxMjAlIHJhdGhlclxuLy8gIHRoYW4gMTAwJSBzbyB0aGUgc2hhZG93IGNsZWFycyB0aGUgc2NyZWVuIGVkZ2UgdG9vIGFuZCB5b3UgbmV2ZXIgc2VlIGEgZ3JleSBiYW5kXG4vLyAgaGFuZ2luZyBiZWxvdyB0aGUgYmFyIGF0IHRoZSBzdGFydC5cbi8vXG4vLyAgT25seSB0aGUgdHJhbnNmb3JtIGlzIGFuaW1hdGVkLCBuZXZlciBgYm90dG9tYCBvciBgaGVpZ2h0YDogdHJhbnNmb3JtIGlzIGNvbXBvc2l0ZWRcbi8vICBhbmQgZG9lcyBub3QgZm9yY2UgbGF5b3V0IG9uIGV2ZXJ5IGZyYW1lLCB3aGljaCBtYXR0ZXJzIG9uIHRoZSBwaG9uZSB0aGlzIGJhciBpc1xuLy8gIGRlc2lnbmVkIGZvci5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhciB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDI2MG1zIGN1YmljLWJlemllcigwLjIyLCAwLjYxLCAwLjM2LCAxKTtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xufVxuXG4ucWRuYXByby1zZWxlY3Rpb24tYmFyW2RhdGEtZW50ZXJpbmc9XCJ0cnVlXCJdIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTIwJSk7XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLy8gTm8gbW92ZW1lbnQgYXQgYWxsIGZvciBhbnlvbmUgd2hvIGFza2VkIG5vdCB0byBoYXZlIGl0LiBUaGUgYmFyIHN0aWxsXG4gICAgLy8gYXBwZWFycywgaXQganVzdCBhcHBlYXJzIGluIHBsYWNlOyB0aGUgSlMgcGF0aCBpcyBpZGVudGljYWwuXG4gICAgLnFkbmFwcm8tc2VsZWN0aW9uLWJhciB7IHRyYW5zaXRpb246IG5vbmU7IH1cbiAgICAucWRuYXByby1zZWxlY3Rpb24tYmFyW2RhdGEtZW50ZXJpbmc9XCJ0cnVlXCJdIHsgdHJhbnNmb3JtOiBub25lOyB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIGNvbG9yPVwicHVycGxlXCIgLSBsaWdodC1wdXJwbGUgc3VyZmFjZSB3aXRoIHB1cnBsZSBnbHlwaHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIEtpbSdzIHRva2VucywgMjkuMDcuMjAyNiwgbGV0dGVybGlqayB6b2FscyBvcGdlZ2V2ZW46XG4vLyAgICAgU3VyZmFjZTogdmFyKC0tYy1iZy1zZWNvbmRhcnktcHVycGxlKVxuLy8gICAgIEJvcmRlciA6IHZhcigtLWMtc2lkZWJhci1pY29uKVxuLy8gICAgIGljb25zICA6IHZhcigtLWMtcHVycGxlLTUwMClcbi8vXG4vLyAgTGl2ZXMgSEVSRSBhbmQgbm90IGluIGEgY29uc3VtZXIncyBwYWdlIENTUywgYmVjYXVzZSBLaW0gYXNrZWQgZm9yIGV4YWN0bHkgdGhhdDpcbi8vICBcImt1bm5lbiB3ZSBkaXQgbWVudSBhbHMgY29tcG9uZW50IG9wc2xhYW4sIGRhbiBrdW5uZW4gd2UgZGllIHdlbGxpY2h0IG9wIGFuZGVyZVxuLy8gIHBsZWtrZW4gb29rIGdlYnJ1aWtlbiwgem9hbHMgZG9jdW1lbnQgbWFuYWdlbWVudFwiLiBBIHNlY29uZCBjb25zdW1lciBub3cgZ2V0cyB0aGlzXG4vLyAgbG9vayB3aXRoIGNvbG9yPVwicHVycGxlXCIgaW5zdGVhZCBvZiBjb3B5aW5nIGNvbG91ciBydWxlcyBpbnRvIGl0cyBvd24gc2NyZWVuLlxuLy9cbi8vICBDb250cmFzdCBpcyBNRUFTVVJFRCwgbm90IGd1ZXNzZWQgKFdDQUcgMS40LjMgd2FudHMgNCw1OjEgZm9yIG5vcm1hbCB0ZXh0IGFuZFxuLy8gIHRoZXNlIGxhYmVscyBhcmUgMTFweCwgc28gdGhleSBjb3VudCBhcyBub3JtYWwpOlxuLy8gICAgIHB1cnBsZS01MDAgIzQwNDk5YSBvbiB0aGUgc3VyZmFjZSAjZTZlOWZmICA9IDYsNjI6MSAgb2tcbi8vICAgICBwdXJwbGUtNjAwICMzMzNhN2Igb24gdGhlIGhvdmVyICAgI2MwYzVmZiAgPSA2LDI0OjEgIG9rXG4vLyAgICAgZ3JleSB0ZXh0LW11dGVkICAgIG9uIHRoZSBzdXJmYWNlICAgICAgICAgID0gMyw5OToxICBUT08gTE9XLCB0aGlzIGlzIHdoYXQgdGhlXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV1dHJhbCBiYXIgdXNlcyBhbmQgd2h5IHRoZVxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1cnBsZSB2YXJpYW50IGNhbm5vdCBpbmhlcml0IGl0XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi5xZG5hcHJvLXNlbGVjdGlvbi1iYXJbZGF0YS1jb2xvcj1cInB1cnBsZVwiXSB7XG4gICAgLS1xc2ItYmc6ICAgICAgIHZhcigtLWMtYmctc2Vjb25kYXJ5LXB1cnBsZSwgI2U2ZTlmZik7XG4gICAgLS1xc2ItYm9yZGVyOiAgIHZhcigtLWMtc2lkZWJhci1pY29uLCAjYzVjOWViKTtcbiAgICAtLXFzYi1mZy1pZGxlOiAgdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKTtcbiAgICAtLXFzYi1mZzogICAgICAgdmFyKC0tYy1wdXJwbGUtNjAwLCAjMzMzYTdiKTtcblxuICAgIC8vIEhvdmVyIGFuZCBwcmVzcyBzdGF5IElOIHRoZSBwdXJwbGUgZmFtaWx5LiBLaW0gMjkuMDcuMjAyNjogXCJkZSBob3ZlcnMgbW9ldGVuXG4gICAgLy8gb29rIGFhbmdlcGFzdCB3b3JkZW4sIGdyaWp6ZSBob3ZlcnMgaXMgbmlldCB0b2ZcIiAtIHRoZSBuZXV0cmFsIGJhcidzIGdyZXlcbiAgICAvLyAoLS1jLWJnLXN1YnRsZS1ob3ZlcikgcmVhZCBhcyBhIGRpcnR5IHNtdWRnZSBvbiBhIHB1cnBsZSBwaWxsLCBhbmQgd2hpdGUgcmVhZFxuICAgIC8vIGFzIGEgaG9sZSBwdW5jaGVkIHRocm91Z2ggaXQuIEEgdGludCBkZWVwZXIgdGhhbiB0aGUgc3VyZmFjZSByZWFkcyBhcyBcInlvdSBhcmVcbiAgICAvLyB0b3VjaGluZyB0aGlzXCIsIHdoaWNoIGlzIHdoYXQgYSBwcmVzcyBzaG91bGQgc2F5LlxuICAgIC0tcXNiLWhvdmVyLWJnOiB2YXIoLS1jLXB1cnBsZS0xMDAsICNjMGM1ZmYpO1xuICAgIC0tcXNiLXByZXNzLWJnOiB2YXIoLS1jLXB1cnBsZS0xMDAsICNjMGM1ZmYpO1xuXG4gICAgLy8gVGhlIGRhcmtlc3QgcmVkIHdlIGhhdmUgYXMgYSB0b2tlbi4gT24gdGhlIHB1cnBsZSBzdXJmYWNlIGl0IG9ubHkgcmVhY2hlc1xuICAgIC8vIDQsMDI6MSwgaGVuY2UgdGhlIHdoaXRlIHBsYXRlIHVuZGVyIHRoZSBkYW5nZXIgYnV0dG9uIGJlbG93LlxuICAgIC0tcXNiLWZnLWRhbmdlcjogdmFyKC0tYy13YXJuLXJlZC01MDAsICNkYzI2MjYpO1xufVxuXG4vLyBUaGUgZGVzdHJ1Y3RpdmUgYWN0aW9uIGdldHMgYSBXSElURSBwbGF0ZSBpbnNpZGUgdGhlIHB1cnBsZSBwaWxsLiBOb3QgZGVjb3JhdGlvbjpcbi8vIG5vIHJlZCB0b2tlbiByZWFjaGVzIDQsNToxIG9uIHRoZSBwdXJwbGUgc3VyZmFjZSwgYW5kIG9uIHdoaXRlIHRoaXMgc2FtZSByZWRcbi8vIHJlYWNoZXMgNCw4MzoxLiBCb251cyB0aGF0IGZlbGwgb3V0IG9mIGl0OiB0aGUgb25lIGlycmV2ZXJzaWJsZSBhY3Rpb24gaW4gdGhlIGJhclxuLy8gaXMgbm93IGFsc28gdmlzdWFsbHkgc2VwYXJhdGVkIGZyb20gdGhlIG90aGVyIHRocmVlLCBhbmQgaXQgY2FuIG5ldmVyIGJlIGNvbmZ1c2VkXG4vLyB3aXRoIHRoZSBwdXJwbGUgaG92ZXIgc3RhdGUuXG4ucWRuYXByby1zZWxlY3Rpb24tYmFyW2RhdGEtY29sb3I9XCJwdXJwbGVcIl0gLnFkbmFwcm8tc2VsZWN0aW9uLWJhci1idG5bZGF0YS10b25lPVwiZGFuZ2VyXCJdIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmZmZmYpO1xufVxuXG4vLyBEYXJrIG1vZGUuIEtpbSdzIHN1cmZhY2UvYm9yZGVyIHRva2VucyBmbGlwIG9uIHRoZWlyIG93biAoLS1jLWJnLXNlY29uZGFyeS1wdXJwbGVcbi8vIGJlY29tZXMgZ3JleS05NTAsIC0tYy1zaWRlYmFyLWljb24gYmVjb21lcyBncmV5LTMwMCksIGJ1dCAtLWMtcHVycGxlLTUwMCBkb2VzIE5PVCxcbi8vIGFuZCAjNDA0OTlhIG9uICMwYjBiMGQgaXMgMiw0NzoxIC0gdW5yZWFkYWJsZS4gU28gdGhlIGdseXBoIGNvbG91ciBmbGlwcyBoZXJlIHRvbzpcbi8vIHB1cnBsZS0yMDAgb24gZ3JleS05NTAgaXMgOSwzMToxLiBXaXRob3V0IHRoaXMgYmxvY2sgdGhlIHB1cnBsZSB2YXJpYW50IHdvdWxkIGhhdmVcbi8vIHNoaXBwZWQgYW4gdW51c2FibGUgZGFyayBtb2RlLlxuW2RhdGEtdGhlbWUtZGFya10gLnFkbmFwcm8tc2VsZWN0aW9uLWJhcltkYXRhLWNvbG9yPVwicHVycGxlXCJdLFxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXNlbGVjdGlvbi1iYXJbZGF0YS1jb2xvcj1cInB1cnBsZVwiXSxcbmJvZHlbZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tc2VsZWN0aW9uLWJhcltkYXRhLWNvbG9yPVwicHVycGxlXCJdIHtcbiAgICAtLXFzYi1mZy1pZGxlOiAgdmFyKC0tYy1wdXJwbGUtMjAwLCAjYTVhY2ZmKTtcbiAgICAtLXFzYi1mZzogICAgICAgdmFyKC0tYy1wdXJwbGUtMTAwLCAjYzBjNWZmKTtcbiAgICAtLXFzYi1ob3Zlci1iZzogcmdiYSgxNjUsIDE3MiwgMjU1LCAwLjE2KTtcbiAgICAtLXFzYi1wcmVzcy1iZzogcmdiYSgxNjUsIDE3MiwgMjU1LCAwLjI0KTtcbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8tbWVzc2FnZS1oZWFkZXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIExpdGVyYWwgcmVjcmVhdGlvbiBvZiB0aGUgYmFja29mZmljZSBpbmJveCBkZXRhaWwgaGVhZGVyXG4vLyAgKGJhY2tvZmZpY2UyL3NyYy9SRVgvQmFja29mZmljZS9WaWV3L3YxL25vdGlmaWNhdGlvbmNlbnRlci9pbmJveC5odG1sLFxuLy8gIG5vdGlmaWNhdGlvbl9kZXRhaWwtdGVtcGxhdGUsIH5saW5lIDM3NS01MTMpIGFuZCBpdHMgc3R5bGluZ1xuLy8gIChiYWNrb2ZmaWNlMi9zY3NzL3BhcnRpYWxzL19pbmJveC5zY3NzLCB+bGluZSA0NzItNjg5KS4gU0NPUEUtcHdhLVxuLy8gIGluYm94Lm1kIGJlc2x1aXQgNzA6IHB1bGxlZCBvdXQgc28gdGhlIGJhY2tvZmZpY2UgaW5ib3ggQU5EIHRoZSBQV0Fcbi8vICBpbmJveCBzaGFyZSBPTkUgY29tcG9uZW50IGluc3RlYWQgb2YgdHdvIGhhbmQtd3JpdHRlbiBjb3BpZXMuXG4vL1xuLy8gIENvbG91cnMgYXJlIG1hcHBlZCBmcm9tIHRoZSBsZWdhY3kgX2luYm94LnNjc3MgdmFyaWFibGVzIG9udG8gdGhlXG4vLyAgY3VycmVudCBjZW50cmFsIGRlc2lnbiB0b2tlbnMgKGRlc2lnbi10b2tlbnMvX2Rlc2lnbi10b2tlbnMuc2NzcyksXG4vLyAgc2FtZSBpZGlvbSBhcyBxZG5hcHJvLWFwcC1oZWFkZXIncyAtLXFhaC0qIGN1c3RvbSBwcm9wZXJ0aWVzOlxuLy8gICAgX2luYm94LnNjc3MgJGNvbG9yICAgICAgICM0MDQ5OWEgIC0+IC0tYy1wdXJwbGUtNTAwICh0aXRsZSArIGxhYmVscylcbi8vICAgIF9pbmJveC5zY3NzICRjb2xvcl82ICAgICAjMzIzMTMwICAtPiAtLWMtdGV4dC1ib2R5ICAgKHNlbmRlciBuYW1lKVxuLy8gICAgX2luYm94LnNjc3MgJGNvbG9yXzEgICAgICM2Yzc1N2QgIC0+IC0tYy10ZXh0LW11dGVkICAoZW1haWwvdG8vY2MvZGF0ZSlcbi8vICAgIF9pbmJveC5zY3NzICRiYWNrZ3JvdW5kX2NvbG9yXzEwICAtPiAtLWMtYmctY2FyZCAgICAgKGhvc3QgYmFja2dyb3VuZClcbi8vXG4vLyAgRmxhdCAubWgtKiBlbGVtZW50IGNsYXNzZXMgKG5vdCBCRU0gJl9fIG5lc3RpbmcpIC0gc2FtZSBpZGlvbSBhc1xuLy8gIHFkbmFwcm8tcmVjaXBpZW50LXBpY2tlcidzIC5ycC0qIC8gcWRuYXByby1hcHAtaGVhZGVyJ3MgLnFhaC0qLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIGBoaWRkZW5gIE1PRVQgd2lubmVuIHZhbiBvbnplIGVpZ2VuIGRpc3BsYXktcmVnZWxzICh6ZWxmZGUgdmFsIGFsc1xuLy8gX3JlY2lwaWVudC1waWNrZXIuc2NzcyBhbCBiZXNjaHJpamZ0KS4gRGl0IGNvbXBvbmVudCB6ZXQgZHJpZSBibG9ra2VuIGFhblxuLy8gZW4gdWl0IG1ldCBoZXQgYGhpZGRlbmAtYXR0cmlidXV0OiBkZSBDQy1yZWdlbCwgZGUgdGFncy1yaWogZW4gZGUgbG9zc2Vcbi8vIG5hYW0vZS1tYWlsLXNwYW5zIHZhbiBkZSBhZnplbmRlci4gRcOpbiByZWdlbCBvcCBkZSBob3N0IGluIHBsYWF0cyB2YW5cbi8vIGAmW2hpZGRlbl1gIGJpaiBlbGsgYmxvayBhcGFydC5cbi5xZG5hcHJvLW1lc3NhZ2UtaGVhZGVyIFtoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4ucWRuYXByby1tZXNzYWdlLWhlYWRlciB7XG4gICAgLS1taC1oZWFkaW5nOiB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xuICAgIC0tbWgtZmc6IHZhcigtLWMtdGV4dC1ib2R5LCAjMGIwYjBkKTtcbiAgICAtLW1oLW11dGVkOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xuICAgIC0tbWgtYm9yZGVyOiB2YXIoLS1jLWJvcmRlci1zb2Z0LCByZ2JhKDAsIDAsIDAsIDAuMDcpKTtcbiAgICAtLW1oLWJnOiB2YXIoLS1jLWJnLWNhcmQsICNmZmZmZmYpO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW1oLWJnKTtcblxuICAgIC8vIEVudHJhbmNlIHdoZW4gYSBtZXNzYWdlIG9wZW5zIChSYWN0aXZlIHJlY3JlYXRlcyB0aGlzIGVsZW1lbnQgb24gZWFjaFxuICAgIC8vIG9wZW4pIC0tIHNhbWUgcGFnZS1nbG9iYWwga2V5ZnJhbWUgdGhlIG9sZCAuaW5ib3gtYm9keS1oZWFkZXIgdXNlZFxuICAgIC8vIChiYWNrb2ZmaWNlMi9zY3NzL3BhcnRpYWxzL19pbmJveC5zY3NzLCBAa2V5ZnJhbWVzIGluYm94LWRldGFpbC1pbiksXG4gICAgLy8gcmVmZXJlbmNlZCBieSBuYW1lIHJhdGhlciB0aGFuIHJlZGVmaW5lZCBoZXJlOiBpdCBpcyBub3QgdGhpc1xuICAgIC8vIGNvbXBvbmVudCdzIGZpbGUgdG8gb3duLCBidXQgaXQgaXMgYWxyZWFkeSBsb2FkZWQgb24gZXZlcnkgcGFnZSB0aGF0XG4gICAgLy8gdXNlcyB0aGlzIGNvbXBvbmVudCdzIG9yaWdpbmFsIGhvc3QgKHRoZSBiYWNrb2ZmaWNlIGluYm94KS4gSGFybWxlc3NcbiAgICAvLyBuby1vcCB3aGVyZXZlciB0aGF0IGtleWZyYW1lIGRvZXNuJ3QgZXhpc3QgKGUuZy4gYSBmdXR1cmUgUFdBIHVzZSkgLS1cbiAgICAvLyBhbiB1bmtub3duIGFuaW1hdGlvbiBuYW1lIGlzIHNpbXBseSBpZ25vcmVkLCBub3QgYW4gZXJyb3IuXG4gICAgYW5pbWF0aW9uOiBpbmJveC1kZXRhaWwtaW4gMjAwbXMgZWFzZS1vdXQ7XG5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICosICo6OmJlZm9yZSwgKjo6YWZ0ZXIgeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG59XG5cbi8vIC0tLS0gVGl0bGUgYmFyOiB0aXRsZSBsZWZ0LCBzbG90PVwiYWN0aW9uc1wiIGljb24gcm93IHJpZ2h0IC0tLS1cbi5taC10aXRsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDhweDtcbiAgICBoZWlnaHQ6IDU2cHg7XG4gICAgLy8gUkVDSFRTIFNNQUxMRVIgKEtpbSwgMzEuMDcuMjAyNjogXCJtaW5kZXIgcGFkZGluZ1wiKS4gTGlua3MgYmxpamZ0IDIwcHgsIHdhbnQgZGVcbiAgICAvLyB0aXRlbCBzdGFhdCBkYWFybWVlIHJlY2h0IGJvdmVuIGRlIGF2YXRhciBlcm9uZGVyLiBSZWNodHMgc3RvbmQgb29rIDIwcHgsIGVuXG4gICAgLy8gb21kYXQgZGUgaWNvb25rbm9wcGVuIHplbGYgYWwgNDRweCBicmVlZCB6aWpuIG1ldCBodW4gZWlnZW4gbHVjaHQgZXJvbWhlZW5cbiAgICAvLyBsZXZlcmRlIGRhdCBlZW4gbGVlZyB2YWsgb3AgbmFhc3QgZGUgbGFhdHN0ZSBrbm9wLlxuICAgIHBhZGRpbmc6IDAgOHB4IDAgMjBweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbWgtYm9yZGVyKTtcbn1cblxuLm1oLXRpdGxlLWxhYmVsIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGNvbG9yOiB2YXIoLS1taC1oZWFkaW5nKTtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLy8gQ29sbGFwc2VzIHRvIG5vdGhpbmcgd2hlbiB0aGUgaG9zdCBzbG90cyBpbiBubyBhY3Rpb25zIC0gc2FtZSBjb250cmFjdFxuLy8gYXMgcWRuYXByby1hcHAtaGVhZGVyJ3MgLnFhaC1hY3Rpb25zLlxuLm1oLXRpdGxlLWFjdGlvbnMge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcblxuICAgICY6ZW1wdHkgeyBkaXNwbGF5OiBub25lOyB9XG59XG5cbi8vIFZlcnRpY2FsZSBzY2hlaWRpbmcgVFVTU0VOIHR3ZWUgaWNvb25rbm9wcGVuIChLaW0sIDMxLjA3LjIwMjYpLiBFZW4gZWNodCBlbGVtZW50XG4vLyBlbiBuaWV0IGVlbiBib3JkZXIgb3AgZGUga25vcCB6ZWxmOiBkaWUga25vcHBlbiB6aWpuIDQ0cHggdmllcmthbnQgbWV0IGVlbiBlaWdlblxuLy8gYWZnZXJvbmRlIGhvdmVyLXZsYWssIGVuIGVlbiBsaWpuIG9wIGRpZSByYW5kIHpvdSBtZWViZXdlZ2VuIG1ldCBkYXQgdmxhay4gSGV0XG4vLyBjb21wb25lbnQgemV0IHplIHplbGYgdHVzc2VuIGRlIGdlc2xvdGVuIGFjdGllcyAoemllIF9yZWxheW91dEFjdGlvbnMpLCBkdXMgZGVcbi8vIHBhZ2luYSBob2VmdCBlciBuaWV0cyB2b29yIHRlIGRvZW4uXG4ubWgtYWN0aW9uLXNlcCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW1oLWJvcmRlcik7XG59XG5cbi8vIC0tLS0gU2VuZGVyIGJsb2NrOiBhdmF0YXIgKyAobmFtZS9lbWFpbC9kYXRlIHJvdywgVG8gbGluZSwgQ0MgbGluZSwgdGFncykgLS0tLVxuLm1oLXNlbmRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDE2cHg7XG4gICAgcGFkZGluZzogMTZweCAyMHB4IDEycHg7XG4gICAgLy8gS2ltLCAzMS4wNy4yMDI2OiBcIm9vayBvbmRlciBkZSBhZnplbmRlciBlZW4ga2V5bGluZSB0b2V2b2VnZW4uXCIgRGUgdGl0ZWxiYWxrIGhhZFxuICAgIC8vIGVyIGFsIGVlbiwgZW4gem9uZGVyIGRlemUgdHdlZWRlIGxpZXBlbiBkZSBhZnplbmRlciwgZGUgb250dmFuZ2VycyBlbiBkZSB0YWdzXG4gICAgLy8gem9uZGVyIHNjaGVpZGluZyBvdmVyIGluIGRlIGluaG91ZCB2YW4gaGV0IGJlcmljaHQuXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLW1oLWJvcmRlcik7XG59XG5cbi5taC1zZW5kZXItYXZhdGFyIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbn1cblxuLm1oLXNlbmRlci1ib2R5IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNHB4O1xufVxuXG4ubWgtc2VuZGVyLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xufVxuXG4ubWgtc2VuZGVyLW5hbWUge1xuICAgIGNvbG9yOiB2YXIoLS1taC1mZyk7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5taC1zZW5kZXItZW1haWwge1xuICAgIGNvbG9yOiB2YXIoLS1taC1tdXRlZCk7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5taC1zZW5kZXItZGF0ZSB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgY29sb3I6IHZhcigtLW1oLW11dGVkKTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vLyAtLS0tIFRvIC8gQ0MgbGluZXMgLS0tLVxuLy8gU2FtZSBzaGFwZSBmb3IgYm90aCAtIGEgbGVhZGluZyBmaWVsZCBsYWJlbCwgdGhlbiBvbmUgd3JhcHBlZCBzcGFuIHBlclxuLy8gcGVyc29uIChib2xkIG5hbWUgKyBtdXRlZCBcIjxlbWFpbD47XCIpLiBIaWRkZW4gZW50aXJlbHkgKHZpYSBbaGlkZGVuXSxcbi8vIHNlZSB0aGUgZml4IGF0IHRoZSB0b3Agb2YgdGhpcyBmaWxlKSB3aGVuIHRoZSB1bmRlcmx5aW5nIGxpc3QgaXMgZW1wdHkuXG4ubWgtdG8sXG4ubWgtY2Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICBnYXA6IDAgNHB4O1xuICAgIGNvbG9yOiB2YXIoLS1taC1tdXRlZCk7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5taC1maWVsZC1sYWJlbCB7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5taC1wZXJzb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICBnYXA6IDA7XG59XG5cbi5taC1wZXJzb24tbmFtZSB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG59XG5cbi8vIC0tLS0gVGFncyByb3cgLS0tLVxuLm1oLXRhZ3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1hbnN3ZXItcm93XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBMaXRlcmFsIHJlY3JlYXRpb24gb2YgdGhlIGJhY2tvZmZpY2UgYC5pbmJveC1ib2R5LWdyb3VwYCBibG9ja1xuLy8gIChiYWNrb2ZmaWNlMi9zcmMvUkVYL0JhY2tvZmZpY2UvVmlldy92MS9ub3RpZmljYXRpb25jZW50ZXIvcGx1Z2lucy9cbi8vICBoYW5kb3Zlci5odG1sLCB+bGluZSAyODcpIGFuZCBpdHMgc3R5bGluZyAoYmFja29mZmljZTIvc2Nzcy9wYXJ0aWFscy9cbi8vICBfaW5ib3guc2NzcywgfmxpbmUgNjk1LTc0MikuIFNDT1BFLXB3YS1pbmJveC5tZCBiZXNsdWl0IDcwOiBwdWxsZWQgb3V0XG4vLyAgc28gdGhlIGJhY2tvZmZpY2UgaW5ib3ggQU5EIHRoZSBQV0EgKHdoaWNoIGhhbmQtcm9sbHMgdGhlIHNhbWUgcm93IGFzXG4vLyAgYC5pbmJveF92aWV3X19hbnN3ZXJgIGluIGFwcF9hcGlfcWRuYXYyLy4uLi9HLWluYm94Lmh0bWwpIHNoYXJlIE9ORVxuLy8gIGNvbXBvbmVudCBpbnN0ZWFkIG9mIHR3by5cbi8vXG4vLyAgQ29sb3VycyBtYXBwZWQgZnJvbSBfaW5ib3guc2NzcyBvbnRvIHRoZSBjZW50cmFsIGRlc2lnbiB0b2tlbnMgKHNhbWVcbi8vICBpZGlvbSBhcyBxZG5hcHJvLW1lc3NhZ2UtaGVhZGVyLCBzZWUgdGhhdCBmaWxlJ3MgaGVhZGVyIGNvbW1lbnQpOlxuLy8gICAgJGNvbG9yICAgIzQwNDk5YSAtPiAtLWMtcHVycGxlLTUwMCAocXVlc3Rpb24gbGFiZWwpXG4vLyAgICAkY29sb3JfNCAjMjAyMTI0IC0+IC0tYy10ZXh0LWJvZHkgICAoYW5zd2VyIHRleHQpXG4vLyAgVGhlIG5vZGUtdHlwZSBpY29uIGNvbG91ciAoI2MyYzJjMikgaGFzIG5vIG1hdGNoaW5nIGNlbnRyYWwgdG9rZW4gLSBpdFxuLy8gIGlzIGEgb25lLW9mZiBtdXRlZCBncmV5IGxpZnRlZCBzdHJhaWdodCBmcm9tIHRoZSBzb3VyY2UsIGtlcHQgbGl0ZXJhbFxuLy8gIGFuZCBuYW1lZCBoZXJlIHJhdGhlciB0aGFuIGludmVudGVkLlxuLy9cbi8vICBUaGUgZHJhZnQtcGlsbCAoLmFyLWRyYWZ0KSBoYXMgbm8gYmFja29mZmljZSBlcXVpdmFsZW50IC0gaXQgaXMgYSBQV0EtXG4vLyAgb25seSBhZGRpdGlvbiAoYXBwX2FwaV9xZG5hdjIgYC5pbmJveF92aWV3X19hbnN3ZXItZHJhZnRgLCAwMy1zdHlsZS5jc3MpXG4vLyAgcmVjcmVhdGVkIGhlcmUgc28gYm90aCBzY3JlZW5zIGdldCB0aGUgc2FtZSBwaWxsIG9uY2UgdGhpcyBjb21wb25lbnRcbi8vICByZXBsYWNlcyB0aGUgUFdBJ3MgaGFuZC13cml0dGVuIG1hcmt1cC5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4ucWRuYXByby1hbnN3ZXItcm93IFtoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4ucWRuYXByby1hbnN3ZXItcm93IHtcbiAgICAtLWFyLWhlYWRpbmc6IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG4gICAgLS1hci1mZzogdmFyKC0tYy10ZXh0LWJvZHksICMwYjBiMGQpO1xuICAgIC0tYXItbXV0ZWQ6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gICAgLS1hci1pY29uLWNvbG9yOiB2YXIoLS1jLWdyZXktMzAwKTsgLy8gX2luYm94LnNjc3MgLmluYm94LXEtdHlwZS1pY29uLCBubyBjZW50cmFsIHRva2VuIG1hdGNoXG4gICAgLS1hci1waWxsLWJnOiB2YXIoLS1jLWJnLWNhcmQtaG92ZXIsICNmN2Y4ZmEpO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBhZGRpbmc6IDRweCA4cHg7XG5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICosICo6OmJlZm9yZSwgKjo6YWZ0ZXIgeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG59XG5cbi5hci1xdWVzdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIG1pbi1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6IHZhcigtLWFyLWhlYWRpbmcpO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4uYXItaWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgY29sb3I6IHZhcigtLWFyLWljb24tY29sb3IpO1xufVxuXG4uYXItcXVlc3Rpb24tbGFiZWwge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLy8gU21hbGwgcmVmZXJlbmNlIG51bWJlciBhZnRlciB0aGUgcXVlc3Rpb24gdGV4dCAtLSBfaW5ib3guc2NzcydzIG93blxuLy8gLmluYm94LXEtbm9kZS1pZCAofmxpbmUgNzE4KTogc21hbGwsIGxpZ2h0IGdyZXksIG5vcm1hbCB3ZWlnaHQgYWdhaW5zdCB0aGVcbi8vIGJvbGQgcXVlc3Rpb24gbGFiZWwsIHZlcnRpY2FsbHkgY2VudGVyZWQgKHRoZSBsYWJlbCByb3cgaXMgYWxyZWFkeVxuLy8gZGlzcGxheTpmbGV4L2FsaWduLWl0ZW1zOmNlbnRlcikuXG4uYXItbm9kZS1pZCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogdmFyKC0tYXItaWNvbi1jb2xvcik7IC8vIHNhbWUgI2MyYzJjMiBhcyB0aGUgbm9kZS10eXBlIGljb24sIG5vIHNlcGFyYXRlIHRva2VuXG59XG5cbi8vIFNtYWxsIHJvdW5kZWQgcGlsbCAtIFwiQ29uY2VwdFwiIC8gXCJEcmFmdFwiIC8gd2hhdGV2ZXIgdHJhbnNsYXRlZCBsYWJlbCB0aGVcbi8vIGhvc3QgcGFzc2VzLiBSZWNpcGUgbGlmdGVkIGZyb20gdGhlIFBXQSdzIG93biAuaW5ib3hfdmlld19fYW5zd2VyLWRyYWZ0XG4vLyAoMDMtc3R5bGUuY3NzKSwgdGhlIG9ubHkgcHJpb3IgYXJ0IGZvciB0aGlzIHBpZWNlLlxuLmFyLWRyYWZ0IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBwYWRkaW5nOiAxcHggNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWFyLXBpbGwtYmcpO1xuICAgIGNvbG9yOiB2YXIoLS1hci1tdXRlZCk7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5hci1hbnN3ZXIge1xuICAgIC8vIEFsaWducyB1bmRlciB0aGUgUVVFU1RJT04gVEVYVCwgbm90IHVuZGVyIHRoZSBpY29uIChzYW1lIHJlYXNvbmluZyBhc1xuICAgIC8vIHRoZSBiYWNrb2ZmaWNlIHNvdXJjZSk6IHRoZSBpY29uIGlzIDE4cHggd2lkZSArIDZweCBnYXAgPSAyNHB4LCBzbyBhXG4gICAgLy8gcm93IHdpdGhvdXQgYW4gaWNvbiBzdGlsbCBpbmRlbnRzIGJ5IHRoZSBzYW1lIGFtb3VudCBhbmQgdGhlIHdob2xlXG4gICAgLy8gbGlzdCBrZWVwcyBvbmUgc3RyYWlnaHQgbGVmdCBlZGdlLlxuICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICBjb2xvcjogdmFyKC0tYXItZmcpO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIC8vIExvbmcsIHVuYnJva2VuIGFuc3dlcnMgc3RpbGwgd3JhcCBpbnNpZGUgdGhlIHJvdyBpbnN0ZWFkIG9mXG4gICAgLy8gb3ZlcmZsb3dpbmcgaXQgLSB0aGlzIGlzIHRoZSBQV0EncyBvd24gcnVsZSAoMDMtc3R5bGUuY3NzXG4gICAgLy8gLmluYm94X3ZpZXdfX2Fuc3dlci1hKSwgdGhlIGJhY2tvZmZpY2Ugc291cmNlIG5ldmVyIG5lZWRlZCBpdCBiZWNhdXNlXG4gICAgLy8gaXRzIGFuc3dlcnMgYXJlIHNob3J0IHNpbmdsZS1saW5lIHZhbHVlcyBpbiBwcmFjdGljZS5cbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8tbWVzc2FnZS1hY3Rpb25iYXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIExpdGVyYWwgcmVjcmVhdGlvbiBvZiB0aGUgYmFja29mZmljZSBgLmlucHV0LWZvb3RlcmAgYmxvY2tcbi8vICAoYmFja29mZmljZTIvc3JjL1JFWC9CYWNrb2ZmaWNlL1ZpZXcvdjEvbm90aWZpY2F0aW9uY2VudGVyL3BsdWdpbnMvXG4vLyAgaGFuZG92ZXIuaHRtbCwgfmxpbmUgMzM1KSBhbmQgaXRzIHN0eWxpbmcgKGJhY2tvZmZpY2UyL3Njc3MvcGFydGlhbHMvXG4vLyAgX2luYm94LnNjc3MsIH5saW5lIDgxMy04NDkpLiBTQ09QRS1wd2EtaW5ib3gubWQgYmVzbHVpdCA3MDogcHVsbGVkIG91dFxuLy8gIHNvIHRoZSBiYWNrb2ZmaWNlIGluYm94IEFORCB0aGUgUFdBIHNoYXJlIE9ORSBjb21wb25lbnQgaW5zdGVhZCBvZiB0d28uXG4vL1xuLy8gIENvbG91ciBtYXBwZWQgZnJvbSBfaW5ib3guc2NzcyBvbnRvIHRoZSBjZW50cmFsIGRlc2lnbiB0b2tlbnM6XG4vLyAgICAkY29sb3IgICAgICAgICAgICAjNDA0OTlhIC0+IC0tYy1wdXJwbGUtNTAwIChub3RlIHRleHQgKyBpbmZvIGljb24gLS1cbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbnB1dC1mb290ZXIgc2V0cyBgY29sb3I6ICRjb2xvcmAgb25cbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSB3aG9sZSBibG9jaywgc28gYm90aCBpbmhlcml0IGl0KVxuLy8gICAgJGJhY2tncm91bmRfY29sb3JfMSAjZWVlZmZhIC0+IGtlcHQgbGl0ZXJhbCBiZWxvdywgbm8gY2VudHJhbCB0b2tlblxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlcyB0aGlzIGV4YWN0IGxhdmVuZGVyIGZpbGw7IGl0IGlzXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgc2FtZSBcInN1YnRsZS1wdXJwbGUtYmdcIiBzdXJmYWNlIHRoZVxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2VuZCBidXR0b25zIGluIHRoaXMgYmFyIGFscmVhZHkgdXNlLlxuLy9cbi8vICBwbGFjZW1lbnQ9XCJmbG93XCIgaXMgdGhlIE9OTFkgaW1wbGVtZW50ZWQgdmFsdWUgKGJlc2x1aXQgNjgsIHNlZSB0aGVcbi8vICBjb21wb25lbnQncyBKUyBkb2MpOiB0aGlzIGJhciBuZXZlciBiZWNvbWVzIHBvc2l0aW9uOnN0aWNreS9maXhlZC4gVGhlXG4vLyAgYmFja2VuZCdzIG93biBtYXJnaW4tdG9wOiAycmVtIChjbGVhcmluZyBhIHByZWNlZGluZyB0aW1lbGluZSBwaWxsKSBpc1xuLy8gIE5PVCBjb3BpZWQgaGVyZSBvbiBwdXJwb3NlIC0gdGhhdCBudW1iZXIgaXMgdGllZCB0byBhIHNwZWNpZmljIHNpYmxpbmdcbi8vICBlbGVtZW50IGluIHRoZSBwYWdlJ3MgdGltZWxpbmUsIG5vdCBhIHByb3BlcnR5IG9mIHRoaXMgY29tcG9uZW50OyB0aGVcbi8vICBob3N0IGFkZHMgd2hhdGV2ZXIgc3BhY2luZyBpdHMgb3duIGxheW91dCBuZWVkcyBiZWZvcmUgdGhpcyBiYXIuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnFkbmFwcm8tbWVzc2FnZS1hY3Rpb25iYXIgW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5xZG5hcHJvLW1lc3NhZ2UtYWN0aW9uYmFyIHtcbiAgICAtLW1hYi1mZzogdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKTtcbiAgICAtLW1hYi1tdXRlZDogdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKTtcbiAgICAtLW1hYi1iZzogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKTsgLy8gX2luYm94LnNjc3MgJGJhY2tncm91bmQtY29sb3JfMSwgLmlucHV0LWZvb3RlciBiZ1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbWFiLWJnKTtcbiAgICBjb2xvcjogdmFyKC0tbWFiLWZnKTtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbn1cblxuLm1hYi1pbmZvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xufVxuXG4ubWFiLWluZm8taWNvbiB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgY29sb3I6IHZhcigtLW1hYi1mZyk7XG59XG5cbi5tYWItbm90ZSB7XG4gICAgY29sb3I6IHZhcigtLW1hYi1mZyk7XG59XG5cbi8vIFNsb3QgdGFyZ2V0IGZvciB1cCB0byB0aHJlZSBidXR0b25zLiBDb2xsYXBzZXMgdG8gbm90aGluZyBpZiB0aGUgaG9zdFxuLy8gc2xvdHMgaW4gbm9uZSAoZGVmZW5zaXZlIC0gaW4gcHJhY3RpY2UgdGhpcyBiYXIgaXMgb25seSBldmVyIHJlbmRlcmVkXG4vLyB3aGVuIGF0IGxlYXN0IG9uZSBhY3Rpb24gYXBwbGllcykuXG4ubWFiLWFjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICAmOmVtcHR5IHsgZGlzcGxheTogbm9uZTsgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby10aW1lbGluZS1tYXJrZXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIExpdGVyYWwgcmVjcmVhdGlvbiBvZiB0aGUgYmFja29mZmljZSBgLnRhc2stc3RhdHVzYCAvXG4vLyAgYC50YXNrLXN0YXR1cy1ibG9ja2AgcGlsbCAoYmFja29mZmljZTIvc3JjL1JFWC9CYWNrb2ZmaWNlL1ZpZXcvdjEvXG4vLyAgbm90aWZpY2F0aW9uY2VudGVyL3BsdWdpbnMvaGFuZG92ZXIuaHRtbCB+bGluZSAyNjggYW5kIH5saW5lIDI5OCkgYW5kIGl0c1xuLy8gIHN0eWxpbmcgKGJhY2tvZmZpY2UyL3Njc3MvcGFydGlhbHMvX2luYm94LnNjc3MgfmxpbmUgNzgzKS4gS2ltIDMxLjA3LjIwMjY6XG4vLyAgdGhlIFBXQSBoYXMgdG8gc2hvdyB0aGlzIG1vbWVudCBpbiB0aGUgc2FtZSBwbGFjZSBhbmQgdGhlIHNhbWUgc2hhcGUgYXNcbi8vICB0aGUgYmFja29mZmljZSwgYW5kIHRoYXQgc2hvdWxkIG5vdCBiZWNvbWUgYSBmb3VydGggY29weSBvZiB0aGlzIENTUy5cbi8vXG4vLyAgQ29sb3VycyBsaWZ0ZWQgZnJvbSB0aGUgc291cmNlJ3Mgb3duIGxvY2FsIHZhcmlhYmxlcyBpbiBfaW5ib3guc2Nzczpcbi8vICAgICRjb2xvcl85ICAgICAgICAgICAgIzhDOTJDMiAtPiB0aGUgbXV0ZWQgbGFiZWwgKyB0aW1lIHRleHRcbi8vICAgICRiYWNrZ3JvdW5kLWNvbG9yXzUgI0Q5REJFQiAtPiB0aGUgYm9yZGVyXG4vLyAgICAkYmFja2dyb3VuZC1jb2xvcl80ICNmZmYgICAgLT4gdGhlIGZpbGxcbi8vICBPbmx5IHRoZSBmaWxsIG1hcHMgY2xlYW5seSBvbnRvIGEgY2VudHJhbCB0b2tlbiAoLS1jLWJnLWNhcmQpLiBUaGUgb3RoZXJcbi8vICB0d28gaGF2ZSBubyBleGFjdCB0b2tlbjogIzhjOTJjMiBkb2VzIGV4aXN0IGNlbnRyYWxseSwgYnV0IGFzXG4vLyAgLS1jLXRleHQtZGlzYWJsZWQtcHAsIGFuZCB0aGlzIHRleHQgaXMgbm90IGRpc2FibGVkIC0tIGJvcnJvd2luZyBhIHRva2VuXG4vLyAgZm9yIGl0cyB2YWx1ZSBpbnN0ZWFkIG9mIGl0cyBtZWFuaW5nIGlzIGhvdyBhIGxhdGVyIHRva2VuIGNoYW5nZSBicmVha3MgYW5cbi8vICB1bnJlbGF0ZWQgc2NyZWVuLiBTbyB0aGV5IHN0YXkgbGl0ZXJhbCBhbmQgbmFtZWQgaGVyZSwgc2FtZSBpZGlvbVxuLy8gIHFkbmFwcm8tYWN0aW9uLWJhciBhbHJlYWR5IHVzZXMgZm9yIHRoaXMgZXhhY3QgYm9yZGVyIGNvbG91ciwgd2l0aCBhIGRhcmtcbi8vICB0aGVtZSBvdmVycmlkZSB0aGF0IERPRVMgZ28gdGhyb3VnaCB0b2tlbnMuXG4vL1xuLy8gIE5PVCBjb3BpZWQgZnJvbSB0aGUgc291cmNlOiBgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAxYC4gSW4gdGhlXG4vLyAgYmFja29mZmljZSB0aGF0IGV4aXN0cyBvbmx5IHNvIHRoZSBvcGFxdWUgZmlsbCBicmVha3MgdGhlIGA8aHI+YCB0aGF0XG4vLyAgZm9sbG93cyBpbiB0aGUgRE9NIGFuZCBpcyBwdWxsZWQgdXAgb3ZlciBpdCAoLmluYm94LWJvZHktY29udGVudCBociBoYXNcbi8vICBtYXJnaW4tdG9wOiAtMnJlbSkuIFRoYXQgaXMgYSBmYWN0IGFib3V0IHRoZSBiYWNrb2ZmaWNlJ3Mgb3duIGRpdmlkZXIsIG5vdFxuLy8gIGFib3V0IHRoaXMgcGlsbCwgc28gaXQgYmVsb25ncyBpbiBfaW5ib3guc2NzcyB3aGVuIHRoYXQgcGFnZSBhZG9wdHMgdGhpc1xuLy8gIGNvbXBvbmVudCAtLSBub3QgaW4gZXZlcnkgc2NyZWVuIHRoYXQgdXNlcyBpdC5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4ucWRuYXByby10aW1lbGluZS1tYXJrZXIgW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5xZG5hcHJvLXRpbWVsaW5lLW1hcmtlciB7XG4gICAgLS10bS1mZzogdmFyKC0tYy10ZXh0LWRpc2FibGVkLXBwKTsgICAgICAvLyBfaW5ib3guc2NzcyAkY29sb3JfOSwgc2VlIGhlYWRlciBub3RlXG4gICAgLS10bS1ib3JkZXI6IHZhcigtLWMtYm9yZGVyLXRyZWUpOyAgLy8gX2luYm94LnNjc3MgJGJhY2tncm91bmQtY29sb3JfNSwgc2VlIGhlYWRlciBub3RlXG4gICAgLS10bS1iZzogdmFyKC0tYy1iZy1jYXJkLCAjZmZmKTtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogOHB4IDA7XG4gICAgY29sb3I6IHZhcigtLXRtLWZnKTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbn1cblxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXRpbWVsaW5lLW1hcmtlciB7XG4gICAgLS10bS1mZzogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbiAgICAtLXRtLWJvcmRlcjogdmFyKC0tYy1ib3JkZXItY2FyZCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpKTtcbn1cblxuLnRtLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgLy8gV3JhcHMgaW5zdGVhZCBvZiBvdmVyZmxvd2luZzogb24gYSBwaG9uZSB0aGUgbGFiZWwgaXMgYSBmdWxsIHNlbnRlbmNlXG4gICAgLy8gd2l0aCBhIG5hbWUgaW4gaXQsIGFuZCB0aGUgYmFja29mZmljZSBuZXZlciBoYWQgdG8gc3Vydml2ZSBhIDM2MHB4XG4gICAgLy8gY29sdW1uLiBDZW50ZXJlZCBzbyBhIHdyYXBwZWQgc2Vjb25kIGxpbmUgZG9lcyBub3QgcmVhZCBhcyBhIGhhbmdpbmdcbiAgICAvLyBpbmRlbnQgdW5kZXIgdGhlIGljb24uXG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiA2cHggMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10bS1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdG0tYmcpO1xufVxuXG4vLyBJY29uICsgbGFiZWwgYXMgT05FIGZsZXggaXRlbSwgc28gdGhleSBuZXZlciBlbmQgdXAgb24gc2VwYXJhdGUgbGluZXMuIEZsZXhcbi8vIGJyZWFrcyBsaW5lcyBiZWZvcmUgaXQgc2hyaW5rcyBhbnl0aGluZywgc28gYXMgdHdvIGl0ZW1zIGEgbG9uZyBuYW1lICh3aGljaFxuLy8gZG9lcyBub3QgZml0IG5leHQgdG8gdGhlIGljb24gYXQgaXRzIG5hdHVyYWwgd2lkdGgpIHB1c2hlZCB0aGUgaWNvbiBvbnRvIGFcbi8vIGxpbmUgb2YgaXRzIG93biAtLSBsb29rcyBsaWtlIGEgZmF1bHQsIGNoZWNrZWQgaW4gYSAzMDBweCBjb2x1bW4uIEdyb3VwZWQgdGhleVxuLy8gc2hyaW5rIHRvZ2V0aGVyIGFuZCB0aGUgaWNvbiBzdGF5cyBwdXQuXG4udG0taGVhZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLnRtLWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xufVxuXG4udG0tbGFiZWwge1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xufVxuXG4udG0tc2VwIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbn1cblxuLy8gVGFyZ2V0ZWQgb24gdGhlIFRBRywgbm90IG9uIGEgY2xhc3M6IHFkbmFwcm8tYXZhdGFyJ3MgcmVuZGVyKCkgZG9lc1xuLy8gYHRoaXMuY2xhc3NOYW1lID0gY2xzLmpvaW4oXCIgXCIpYCBhbmQgdGhyb3dzIGF3YXkgd2hhdGV2ZXIgY2xhc3MgdGhlIGhvc3QgcHV0XG4vLyBvbiBpdCAocWRuYXByby1pY29uIHNuYXBzaG90cyBob3N0IGNsYXNzZXMgZmlyc3QsIGF2YXRhciBkb2VzIG5vdCksIHNvIGFcbi8vIGAudG0tYXZhdGFyYCBjbGFzcyB3b3VsZCBiZSBnb25lIGJlZm9yZSB0aGlzIHJ1bGUgY291bGQgZXZlciBtYXRjaC5cbi50bS1ibG9jayA+IHFkbmFwcm8tYXZhdGFyIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAvLyBUaGUgYXZhdGFyIGlzIGEgY2lyY2xlIHdpdGggaXRzIG93biBmaXhlZCBzaXplOyBrZWVwIGl0IG91dCBvZiB0aGVcbiAgICAvLyAxNHB4L25vcm1hbCB0ZXh0IGZsb3cgc28gaXQgY2Fubm90IHBpY2sgdXAgYSBzdHJheSBsaW5lLWhlaWdodC5cbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBsaW5lLWhlaWdodDogMDtcbn1cblxuLnRtLXRpbWUge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLWxvdHRpZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgU3BlZWx0IGVlbiBMb3R0aWUtYW5pbWF0aWUgKEpTT04gdWl0IEFmdGVyIEVmZmVjdHMpIGFmIGFscyBpbmxpbmUgU1ZHLlxuLy8gIFppZSBkZSBkb2NibG9jayBpbiB3ZWIvanMvY29tcG9uZW50cy92Mi9sb3R0aWUvcWRuYS1sb3R0aWUuanMgdm9vciB3YWFyb21cbi8vICBkaXQgY29tcG9uZW50IGJlc3RhYXQsIHdhYXJvbSBkZSBzcGVsZXIgcGFzIG9wIGFhbnZyYWFnIGdlbGFkZW4gd29yZHQgZW5cbi8vICB3YWFyb20gd2UgZGUgbGljaHRlIGJ1aWxkIGdlYnJ1aWtlbi5cbi8vXG4vLyAgRGl0IGJlc3RhbmQgd2VldCBuaWV0cyB2YW4ga2xldXIuIEVlbiBMb3R0aWUtYW5pbWF0aWUgYnJlbmd0IHppam4gZWlnZW5cbi8vICBrbGV1cmVuIG1lZSBpbiBoZXQgSlNPTi1iZXN0YW5kLCBkdXMgZXIgdmFsdCBoaWVyIG5pZXRzIHRlIHRva2VuaXNlcmVuXG4vLyAgYmVoYWx2ZSBkZSBmb2N1c3JpbmcuIERhYXJkb29yIGtsb3B0IGRlIGRvbmtlcmUgbW9kdXMgdmFuemVsZiB2b29yIGRlXG4vLyAgb21saWpzdGluZzsgb2YgZGUgYW5pbWF0aWUgemVsZiBnb2VkIHN0YWF0IG9wIGVlbiBkb25rZXJlIGFjaHRlcmdyb25kIGlzXG4vLyAgZWVuIGtldXplIHZhbiBkZSBpbGx1c3RyYXRpZSwgbmlldCB2YW4gZGl0IGNvbXBvbmVudC5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4ucWRuYXByby1sb3R0aWUge1xuICAgIC8vIFN0YW5kYWFyZG1hYXQsIHpvZGF0IGVlbiBhbmltYXRpZSB6b25kZXIgYWZtZXRpbmdlbiBuaWV0IGFscyBlZW5cbiAgICAvLyBvbnppY2h0YmFhciBibG9ramUgdmFuIDAgcGl4ZWxzIGluIGRlIHBhZ2luYSBzdGFhdC4gQ29uc3VtZW50ZW4gemV0dGVuXG4gICAgLy8gZ2V3b29uIHdpZHRoL2hlaWdodCAob2YgLS1xbC1zaXplKSBlbiBvdmVyc2NocmlqdmVuIGRpdC5cbiAgICAtLXFsLXNpemU6IDQ4cHg7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiB2YXIoLS1xbC1zaXplKTtcbiAgICBoZWlnaHQ6IHZhcigtLXFsLXNpemUpO1xuICAgIC8vIEVlbiBpbmxpbmUtYmxvY2sgbWV0IGFsbGVlbiBlZW4gU1ZHIGVyaW4ga3Jpamd0IGFuZGVycyB3aXRydWltdGUgb25kZXJcbiAgICAvLyBkZSBiYXNlbGluZSBtZWUsIHdhYXJkb29yIGhldCBpY29vbiBuZXQgbmlldCB1aXRsaWpudCBpbiBlZW4gcmlqLlxuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5xZG5hcHJvLWxvdHRpZV9fc3RhZ2UsXG4ucWRuYXByby1sb3R0aWVfX3Bvc3RlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4vLyBEZSBzcGVsZXIgemV0IHppam4gZWlnZW4gU1ZHIGluIGRlIHN0YWdlLiBab25kZXIgZGV6ZSByZWdlbCBob3VkdCBkaWUgemlqblxuLy8gZWlnZW4gYnJlZWR0ZSBhYW4gdWl0IGhldCBKU09OLWJlc3RhbmQgZW4gbmVnZWVydCBoaWogZGUgbWFhdCB2YW4gZGUgaG9zdC5cbi5xZG5hcHJvLWxvdHRpZV9fc3RhZ2Ugc3ZnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4vLyBEZSBwb3N0ZXIgbGlndCBPTkRFUiBkZSBhbmltYXRpZSBpbiBkZXplbGZkZSBydWltdGUsIG5pZXQgZXJuYWFzdDogem9cbi8vIHZlcnNwcmluZ3QgZGUgbGF5b3V0IG5pZXQgb3AgaGV0IG1vbWVudCBkYXQgZGUgZWNodGUgZnJhbWVzIHZlcnNjaGlqbmVuLlxuLnFkbmFwcm8tbG90dGllX19wb3N0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4ucWRuYXByby1sb3R0aWVfX3Bvc3RlcltoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vLyBBbGxlZW4gZGUga2xpay12YXJpYW50IGlzIGVlbiBiZWRpZW5pbmdzZWxlbWVudDsgZGUgcmVzdCBpcyBkZWNvcmF0aWUgZW4gbWFnXG4vLyBnZWVuIGhhbmRqZSB0b25lbiBkYXQgZWVuIGludGVyYWN0aWUgYmVsb29mdCBkaWUgZXIgbmlldCBpcy5cbi5xZG5hcHJvLWxvdHRpZVtkYXRhLXRyaWdnZXI9XCJjbGlja1wiXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ucWRuYXByby1sb3R0aWU6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWZvY3VzLXJpbmcsICM1YjRkZDEpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuXG4vLyBNaXNsdWt0ZSBhbmltYXRpZTogZGUgcG9zdGVyIGJsaWpmdCBzdGFhbi4gWm9uZGVyIHBvc3RlciBsYXRlbiB3ZSBiZXd1c3QgZWVuXG4vLyBsZWVnIHZsYWsgemllbiBpbiBwbGFhdHMgdmFuIGVlbiBmb3V0bWVsZGluZywgd2FudCBlZW4ga2Fwb3R0ZSB2ZXJzaWVyaW5nXG4vLyBob29ydCBnZWVuIGFhbmRhY2h0IHRlIHRyZWtrZW4uXG4ucWRuYXByby1sb3R0aWVbZGF0YS1zdGF0ZT1cImVycm9yXCJdIC5xZG5hcHJvLWxvdHRpZV9fc3RhZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4iLCJAdXNlIFwiLi4vLi4vbW9kdWxlcy92MS9jb2xvcnNcIjtcbkB1c2UgXCIuLi8uLi9tb2R1bGVzL3YxL3R5cG9ncmFwaHkuc2Nzc1wiO1xuXG4vKiBDcm9zcy1kb2N1bWVudCBWaWV3IFRyYW5zaXRpb25zIChPcHRpZSBCLCBKYW4gMjAyNi0wNi0xNyk6IHNtb290aCB0aGVcbiAgIGZ1bGwtcGFnZSBuYXZpZ2F0aW9ucyBzbyB0aGUgY29udGVudCBjcm9zcy1mYWRlcyBpbnN0ZWFkIG9mIGhhcmQtY3V0dGluZyxcbiAgIHdoaWxlIHRoZSBuYXYtcmFpbCAoaXRzIG93biBgdmlldy10cmFuc2l0aW9uLW5hbWVgIGJlbG93KSBzdGF5cyBwdXQgYW5kIGl0c1xuICAgYWN0aXZlLWl0ZW0gaGlnaGxpZ2h0IGdsaWRlcyBhY3Jvc3MuIENocm9tZSBob25vdXJzIHRoaXMgZm9yIHNhbWUtb3JpZ2luIE1QQVxuICAgbmF2aWdhdGlvbjsgYnJvd3NlcnMvcGFnZXMgdGhhdCBkb24ndCBvcHQgaW4gZmFsbCBiYWNrIHRvIGEgbm9ybWFsIGluc3RhbnRcbiAgIG5hdmlnYXRpb24g4oCUIG5vIGFuaW1hdGlvbiwgbm8gcmVncmVzc2lvbi4gKi9cbkB2aWV3LXRyYW5zaXRpb24ge1xuICAgIG5hdmlnYXRpb246IGF1dG87XG59XG5cbi8qIE5vLWRpcCB0cmFuc2l0aW9uOiB0aGUgZGVmYXVsdCBjcm9zcy1mYWRlIGZhZGVzIHRoZSBvbGQgb3V0ICgx4oaSMCkgQU5EIHRoZSBuZXdcbiAgIGluICgw4oaSMSkgc2ltdWx0YW5lb3VzbHksIHNvIGF0IHRoZSBjcm9zc292ZXIgYm90aCBsYXllcnMgYXJlIHRyYW5zbHVjZW50IGFuZFxuICAgdGhlIGxpZ2h0IHBhZ2UgYmFja2dyb3VuZCBibGVlZHMgdGhyb3VnaCDigJQgdGhlIFwiZmxhc2ggdG8gbGlnaHRcIi4gSW5zdGVhZCwga2VlcFxuICAgdGhlIE9MRCBwYWdlIGZ1bGx5IG9wYXF1ZSB1bmRlcm5lYXRoIGFuZCBmYWRlIHRoZSBORVcgaW4gb24gdG9wIG9mIGl0LCBzbyB0aGVyZVxuICAgaXMgbmV2ZXIgYSBzZWUtdGhyb3VnaCBtb21lbnQuIFRoZSBuYXYtcmFpbCAoaWRlbnRpY2FsIGFjcm9zcyBwYWdlcykgaG9sZHNcbiAgIHBlcmZlY3RseSBzdGF0aWMg4oCUIG5vIGZhZGUsIG5vIGZsaWNrZXIuICovXG46OnZpZXctdHJhbnNpdGlvbi1vbGQocm9vdCkgeyBhbmltYXRpb246IG5vbmU7IH1cbjo6dmlldy10cmFuc2l0aW9uLW5ldyhyb290KSB7IGFuaW1hdGlvbjogcWRuYS12dC1mYWRlLWluIDIwMG1zIGVhc2UgYm90aDsgfVxuQGtleWZyYW1lcyBxZG5hLXZ0LWZhZGUtaW4geyBmcm9tIHsgb3BhY2l0eTogMDsgfSB0byB7IG9wYWNpdHk6IDE7IH0gfVxuXG46OnZpZXctdHJhbnNpdGlvbi1vbGQocWRuYS1uYXYtcmFpbCksXG46OnZpZXctdHJhbnNpdGlvbi1uZXcocWRuYS1uYXYtcmFpbCkgeyBhbmltYXRpb246IG5vbmU7IH1cblxuaHRtbCwgYm9keSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4vKiDilIDilIAgaW5saW5lIGNvZGUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gICBCb290c3RyYXAgZ2VlZnQgw4lMSyBgPGNvZGU+YCB6aWpuIGVpZ2VuIHJvemUgKGAjZTgzZThjYCkg4oCUIGVlbiBrbGV1ciBkaWUgdmVyZGVyIG5lcmdlbnMgaW5cbiAgIFFETkEgUHJvIHZvb3Jrb210IGVuIGRpZSBuaWV0IHVpdCBkZSB0b2tlbmJpYmxpb3RoZWVrIGtvbXQuIFppY2h0YmFhciBvcCBvbmRlciBtZWVyIGRlXG4gICBwYXJhbWV0ZXItIGVuIG1lZXR3YWFyZGUtbGFiZWxzIGluIGRlIHJhcHBvcnQtZWRpdG9yIGVuIG9wIGRlIHRlY2huaXNjaGUgd2FhcmRlbiBpbiBkZVxuICAgb250d2lra2VsYWFyc3BhZ2luYSdzIChKYW4sIDIwMjYtMDgtMDM6IFwicm96ZSBpcyBlZW4ga2xldXIgZGllIHZlcmRlciBuZXJnZW5zIHZvb3Jrb210XCIpLlxuXG4gICBWZXJ2YW5nZW4gZG9vciBgLS1jLWJyYW5kLXB1cnBsZWA6IGhldHplbGZkZSBtZXJrcGFhcnMgd2Fhcm1lZSBkZSBhcHAgYWwgaGFhciBrbGVpbmVcbiAgIHRlY2huaXNjaGUgY2hpcHMgemV0IChoZXQgY29uZGl0aWUtY2hpcGplIGluIGRlIGRvY3VtZW50ZWRpdG9yLCBkZSBzZWxlY3RpZS1jaGlwIGluIGRlXG4gICBibG9ra2VubGlqc3QpLCBlbiDigJQgYW5kZXJzIGRhbiBlZW4ga2FsZSBgLS1jLXB1cnBsZS01MDBgIOKAlCBlZW4gU0VNQU5USVNDSEUgdG9rZW4gZGllIGluIGhldFxuICAgZG9ua2VyZSB0aGVtYSBtZWVrYW50ZWx0IG5hYXIgZWVuIGxpY2h0IHBhYXJzLlxuXG4gICDimqDvuI8gRGl0IHdlcmt0IG9wIGdlbGlqa2Ugc3BlY2lmaWNpdGVpdCAoMCwwLDEpIGVuIHdpbnQgZHVzIHB1dXIgb3AgVk9MR09SREU6IGBzdHlsZS12MS5jc3NgXG4gICAgICBzdGFhdCBuw6EgYGJvb3RzdHJhcC5taW4uY3NzYC4gVmVyaHVpc3QgZGUgc3R5bGVzaGVldC12b2xnb3JkZSBvb2l0LCBkYW4gaXMgZGl0IGRlIGVlcnN0ZVxuICAgICAgcmVnZWwgZGllIHN0aWwgdGVydWd2YWx0IG9wIHJvemUuICovXG5jb2RlIHtcbiAgICBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xufVxuXG4vLyBMb2NrIHRoZSBiYWNrZ3JvdW5kICh3aW5kb3cpIHNjcm9sbCB3aGlsZSBhIGZ1bGwtc2NyZWVuIGRldmljZSBvdmVybGF5IGlzIG9wZW5cbi8vIChhcHAtbGF1bmNoIG92ZXJsYXkgKyBmbG93LWVkaXRvciBwcmV2aWV3KS4gV2l0aG91dCB0aGlzIHRoZSBzY3JvbGwgd2hlZWwgb3ZlclxuLy8gdGhlIG92ZXJsYXkvaWZyYW1lIGNoYWlucyB0byB0aGUgcGFnZSBiZWhpbmQgaXQuIFRvZ2dsZWQgZnJvbSBhcHAtbGF1bmNoLmpzIGFuZFxuLy8gUHJldmlld01vZGFsLnZ1ZS4gVGhlIHBhZ2Ugc2Nyb2xsIGxpdmVzIG9uIHRoZSB3aW5kb3cgKC5xZG5hLXBhZ2UtY29udGVudCBpc1xuLy8gb3ZlcmZsb3cteDpjbGlwIG9ubHkpLCBzbyBsb2NraW5nIDxodG1sPiBpcyBlbm91Z2guXG5odG1sLmFwcC1zY3JvbGwtbG9ja2VkLCBodG1sLmFwcC1zY3JvbGwtbG9ja2VkIGJvZHkge1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLyogU2FtZSBwYWludCBzdXJmYWNlIG9uIDxodG1sPiBhcyBvbiA8Ym9keT4uIFdpdGhvdXQgdGhpcywgZXZlcnlcbiAgIG5hdmlnYXRpb24gYmV0d2VlbiBwYWdlcyBicmllZmx5IHBhaW50cyB0aGUgYnJvd3NlcidzIGRlZmF1bHQgd2hpdGVcbiAgIGJhY2tncm91bmQgYmV0d2VlbiB1bmxvYWQgYW5kIHRoZSBuZXcgcGFnZSdzIGZpcnN0IHBhaW50IOKAlCB2aXNpYmxlXG4gICBhcyBhIHdoaXRlIGZsYXNoIHdoZW4gY2xpY2tpbmcgYXJvdW5kIHRoZSBuYXYtcmFpbC4gKEtpbSAyMDI2LTA2LTA3KSAqL1xuLyogUGFnZSBzdXJmYWNlIGNvbWVzIGZyb20gdGhlIFNFTUFOVElDIHRva2VuLCBub3QgZnJvbSBhIFNDU1MgdmFyaWFibGUuXG4gICBBIFNDU1MgdmFyaWFibGUgaXMgcmVzb2x2ZWQgYXQgY29tcGlsZSB0aW1lIChgY29sb3JzLiRsaWdodC1wdXJwbGUtMTAwYFxuICAgc2hpcHBlZCBhcyBhIGxpdGVyYWwgYCNlNmU5ZmZgKSwgc28gdGhlcmUgd2FzIG5vdGhpbmcgbGVmdCBmb3IgYSB0aGVtZSB0b1xuICAgcmVkZWZpbmUgYXQgcnVudGltZSDigJQgdGhlIHBhZ2UgYmFja2dyb3VuZCBjb3VsZCBuZXZlciBmb2xsb3cgZGFyayBtb2RlLlxuICAgYC0tYy1iZy1wYWdlYCBpcyBkZWNsYXJlZCBmb3IgYm90aCB0aGVtZXMgaW5cbiAgIGNvbXBvbmVudHMvdjIvZGVzaWduLXRva2Vucy9fZGVzaWduLXRva2Vucy5zY3NzLCBzbyB0aGlzIGlzIG5vdyB0aGUgT05FXG4gICBwbGFjZSB0aGUgcGFnZSBzdXJmYWNlIGlzIHNldCBhbmQgaXQgZmxpcHMgYnkgaXRzZWxmLiBTYW1lIGZvciB0aGUgYm9keVxuICAgdGV4dCBjb2xvdXI6IGEgZGFyayBzdXJmYWNlIHdpdGggYCR0ZXh0LWJvZHktY29sb3JgIG9uIGl0IGlzIHVucmVhZGFibGUuXG4gICBEbyBOT1QgcmVpbnRyb2R1Y2UgYSBwZXItcGFnZSBib2R5IGJhY2tncm91bmQ7IHBvaW50IGl0IGhlcmUgaW5zdGVhZC5cbiAgIFtLaW0gMjAyNi0wOC0wN10gKi9cbmh0bWwge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctcGFnZSk7XG59XG5cbmJvZHkge1xuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1vcHRpY2FsLXNpemluZzogYXV0bztcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHkpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctcGFnZSk7XG59XG5cbi5tcy1kcm9wIHtcbiAgICB6LWluZGV4OiAxMDUwO1xuICAgIHdpZHRoOiA0MCUgIWltcG9ydGFudDtcblxuICAgIHVsPmxpLm11bHRpcGxlIHtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5tcy1jaG9pY2U+ZGl2IHtcbiAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICAmLm9wZW4ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4ucWRuYS1wYWdlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgLy8gRG9uJ3Qgc3RyZXRjaCA8bWFpbj4gdG8gdGhlIGZsZXggcm93IGhlaWdodC4gV2l0aCB0aGUgZGVmYXVsdFxuICAgIC8vIGFsaWduLWl0ZW1zOiBzdHJldGNoLCBhIHRhbGwgcGFnZSBwcm9kdWNlZCBhIH41NnB4IHBoYW50b20gb3ZlcmZsb3dcbiAgICAvLyAoYm9keSBzY3JvbGxIZWlnaHQgPiAucWRuYS1wYWdlKSwgd2hpY2ggcHVzaGVkIHRoZSBzdGlja3kgbmF2LXJhaWwgdXBcbiAgICAvLyBhdCB0aGUgZW5kIG9mIHRoZSBzY3JvbGwuIGZsZXgtc3RhcnQgbGV0cyBtYWluIHRha2UgaXRzIG5hdHVyYWwgaGVpZ2h0XG4gICAgLy8gc28gdGhlIHJhaWwncyBgcG9zaXRpb246IHN0aWNreWAgc3RheXMgcGlubmVkIGZvciB0aGUgZnVsbCBzY3JvbGwuXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICBxZG5hcHJvLW5hdi1yYWlsIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICAgICAgLy8gVHJlYXQgdGhlIHJhaWwgYXMgdGhlIFNBTUUgZWxlbWVudCBhY3Jvc3MgbmF2aWdhdGlvbnM6IGluc3RlYWQgb2ZcbiAgICAgICAgLy8gY3Jvc3MtZmFkaW5nIHdpdGggdGhlIHJlc3Qgb2YgdGhlIHBhZ2UgaXQgc3RheXMgcHV0IGFuZCBpdHMgYWN0aXZlXG4gICAgICAgIC8vIGhpZ2hsaWdodCBnbGlkZXMgdG8gdGhlIG5ldyBpdGVtLiAoT3B0aWUgQilcbiAgICAgICAgdmlldy10cmFuc2l0aW9uLW5hbWU6IHFkbmEtbmF2LXJhaWw7XG4gICAgfVxuXG4gICAgLyogY29tcG9uZW50cy5qcyBpcyBhIGRlZmVycmVkIG1vZHVsZSwgc28gb24gZXZlcnkgKGZ1bGwtcGFnZSkgbmF2aWdhdGlvbiB0aGVcbiAgICAgICByYXcgPHFkbmFwcm8tbmF2LXJhaWw+IGV4aXN0cyBmb3IgYSBiZWF0IGJlZm9yZSBpdCB1cGdyYWRlcyDigJQgd2l0aCBubyB3aWR0aFxuICAgICAgIG9yIGJhY2tncm91bmQgaXQgY29sbGFwc2VzIHRoZSBtZW51IHN0cmlwIGFuZCB0aGUgbGF2ZW5kZXIgcGFnZSBiZyBmbGFzaGVzXG4gICAgICAgdGhyb3VnaCwgdGhlbiB0aGUgcmFpbCBwb3BzIHRvIDIwOHB4IGRhcmsgcHVycGxlIGFuZCB0aGUgY29udGVudCByZWZsb3dzLlxuICAgICAgIFJlc2VydmUgdGhlIGV4cGFuZGVkIHdpZHRoICsgbmF2IHN1cmZhY2UgdXAgZnJvbnQgKHJlbmRlci1ibG9ja2luZyBDU1MpIHNvXG4gICAgICAgdGhlIHJhaWwgbG9va3MgaWRlbnRpY2FsIGJlZm9yZS9hZnRlciB1cGdyYWRlIOKGkiBubyByZWZsb3csIG5vIGZsYXNoLlxuICAgICAgIDIwOHB4ID0gdGhlIGV4cGFuZGVkIHdpZHRoOyB2YXIgZmFsbGJhY2sgPSB0aGUgcmVzb2x2ZWQgLS1jLW5hdi1iZy4gKi9cbiAgICBxZG5hcHJvLW5hdi1yYWlsOm5vdCg6ZGVmaW5lZCkge1xuICAgICAgICB3aWR0aDogMjA4cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtbmF2LWJnLCAjM2E0MjkwKTtcbiAgICB9XG5cbiAgICAucWRuYS1wYWdlLWNvbnRlbnQge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgLy8gb3ZlcmZsb3cteDogY2xpcCBrZWVwcyB3aWRlIHRhYmxlcyAvIG92ZXJmbG93aW5nIGNvbnRlbnQgY29udGFpbmVkXG4gICAgICAgIC8vIG9uIHRoZSBob3Jpem9udGFsIGF4aXMgV0lUSE9VVCBlc3RhYmxpc2hpbmcgYSBzY3JvbGwgY29udGV4dCBvbiB0aGVcbiAgICAgICAgLy8gdmVydGljYWwgYXhpcyDigJQgdGhhdCBsZXRzIGBwb3NpdGlvbjogc3RpY2t5YCBvbiAucWRuYS1uYXZiYXJcbiAgICAgICAgLy8gKGRlY2xhcmVkIGluc2lkZSB0aGlzIG1haW4pIGFjdHVhbGx5IHN0aWNrIHRvIHRoZSB2aWV3cG9ydCB0b3AuXG4gICAgICAgIC8vIG92ZXJmbG93OiBoaWRkZW4gd291bGQgY2xpcCBib3RoIGF4ZXMgQU5EIGtpbGwgc3RpY2t5LlxuICAgICAgICBvdmVyZmxvdy14OiBjbGlwO1xuICAgIH1cbn1cblxuLyogRml4LUEgY29tcGFuaW9uIGZvciBjb2xsYXBzZWQtcmFpbCB1c2Vyczogd2hlbiA8aHRtbD4gaXMgZmxhZ2dlZFxuICAgYHJhaWwtY29sbGFwc2VkYCAoc2V0IHByZS1wYWludCBieSB0aGUgaW5saW5lIHNjcmlwdCBpbiBoZWFkZXIuaHRtbCwgcmVhZGluZ1xuICAgdGhlIHNhdmVkIGxvY2FsU3RvcmFnZSBwcmVmZXJlbmNlKSwgcmVzZXJ2ZSB0aGUgQ09MTEFQU0VEIHJhaWwgd2lkdGggZm9yIHRoZVxuICAgbm90LXlldC11cGdyYWRlZCByYWlsIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgMjA4cHguIFdpdGhvdXQgdGhpcyBhIHVzZXIgd2hvXG4gICBwcmVmZXJzIHRoZSByYWlsIGNvbGxhcHNlZCB3b3VsZCBzZWUgYSAyMDjihpJjb2xsYXBzZWQgcmVmbG93IG9uIGV2ZXJ5XG4gICBuYXZpZ2F0aW9uIChhbmQgYSB2aWV3LXRyYW5zaXRpb24gc2l6ZSBtaXNtYXRjaCkuIDg0cHggbXVzdCBtYXRjaCB0aGVcbiAgIGNvbGxhcHNlZCB3aWR0aCBpbiBfbmF2LXJhaWwuc2Nzcy4gKi9cbmh0bWwucmFpbC1jb2xsYXBzZWQgLnFkbmEtcGFnZSBxZG5hcHJvLW5hdi1yYWlsOm5vdCg6ZGVmaW5lZCkgeyB3aWR0aDogODRweDsgfVxuXG4udHMtc2VjdGlvbiwgLnFkbmEtc2VjdGlvbiB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIC8vIG1hcmdpbi10b3A6IDEwMHB4O1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xufVxuXG4vLyBPTkUgc291cmNlIGZvciB0aGUgdG9wIGJhcidzIGhlaWdodC4gSXQgd2FzIGhhcmRjb2RlZCBhcyA1NnB4IGhlcmUgQU5EIGluIGZpdmVcbi8vIGBjYWxjKDEwMHZoIC0gNTZweClgIC8gYHRvcDogNTZweGAgcnVsZXMgb24gb3RoZXIgcGFnZXMsIHNvIGNoYW5naW5nIGl0IGluIG9uZVxuLy8gcGxhY2UgdXNlZCB0byBsZWF2ZSB0aG9zZSBwYWdlcyBhIGZldyBwaXhlbHMgb2ZmLiBFdmVyeXRoaW5nIHJlYWRzIHRoaXMgbm93LlxuLy8gS2ltIDA5LjA4LjIwMjY6IDU2IC0+IDQ0LCBiZWNhdXNlIHRoZSBiYXIgY2FycmllcyBhIGJyZWFkY3J1bWIgYW5kIHNvbWUgaWNvbnNcbi8vIGFuZCBub3RoaW5nIGVsc2U7IHRoZSByb29tIGJlbG9uZ3MgdG8gdGhlIHBhZ2UgdW5kZXJuZWF0aC5cbjpyb290IHtcbiAgICAtLXFkbmEtdG9wYmFyLWg6IDQ0cHg7XG59XG5cbi5xZG5hLW5hdmJhciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiB2YXIoLS1xZG5hLXRvcGJhci1oKTtcbiAgICAvLyBUaGUgU0VNQU5USUMgcm9sZSwgbm90IHRoZSBwcmltaXRpdmUuIFRoaXMgd2FzIHZhcigtLWMtcHVycGxlLTUwKSwgd2hpY2hcbiAgICAvLyBsb29rcyBsaWtlIGEgdG9rZW4gYnV0IGlzIGEgcmF3IEZpZ21hIHZhbHVlOiBpdCBpcyAjZTZlOWZmIGluIEJPVEggdGhlbWVzXG4gICAgLy8gYnkgZGVmaW5pdGlvbiwgc28gdGhlIGhlYWRlciBzdGF5ZWQgbGlnaHQgd2hpbGUgdGhlIHBhZ2Ugd2VudCBkYXJrLiBUaGVcbiAgICAvLyBoZWFkZXIgaXMgbWVhbnQgdG8gcmVhZCBhcyBvbmUgc3VyZmFjZSB3aXRoIHRoZSBwYWdlLCBzbyBpdCB0YWtlcyB0aGVcbiAgICAvLyBzYW1lIHJvbGUgdGhlIHBhZ2UgZG9lcy4gW0tpbSAyMDI2LTA4LTA3XVxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYmctcGFnZSk7XG4gICAgLy8gU3RpY2t5IG92ZXIgZml4ZWQ6IHN0YXlzIGluIGZsb3cgc28gdGhlIGNvbnRlbnQgYmVsb3cgcmVzZXJ2ZXMgaXRzXG4gICAgLy8gb3duIHNwYWNlIChubyBwYWRkaW5nLXRvcCBoYWNrKSwgc3RpbGwgcGlubmVkIHRvIHRoZSB0b3Agd2hpbGUgeW91XG4gICAgLy8gc2Nyb2xsLiB6LWluZGV4IGhpZ2ggZW5vdWdoIHRvIGNsZWFyIHBhZ2UgY29udGVudCArIHRvb2x0aXBzLCBsb3dcbiAgICAvLyBlbm91Z2ggdG8gc3RheSB1bmRlciBtb2RhbHMgKHdoaWNoIHVzZSA5MDAwKykuIFVzZWQgaW4gQkFTRSBzbyBldmVyeVxuICAgIC8vIHBhZ2UgaW4gdGhlIGJhY2tlbmQgaW5oZXJpdHMgdGhlIHNhbWUgZml4ZWQtaGVhZGVyIGJlaGF2aW91ci5cbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogMDtcbiAgICB6LWluZGV4OiA1MDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7ICAgICAgICAgIC8vIHZlcnRpY2FsbHkgY2VudGVyIGJyZWFkY3J1bWIgKyBhdmF0YXJcbiAgICBwYWRkaW5nOiAwIDE2cHg7ICAgICAgICAgICAgICAvLyB2ZXJ0aWNhbCBwYWRkaW5nIGhhbmRsZWQgYnkgZml4ZWQgaGVpZ2h0XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgLnFkbmEtYnJlYWRjcnVtYnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICBhLnFkbmEtYnJlYWRjcnVtYiB7XG4gICAgICAgICAgICBjb2xvcjogdHlwb2dyYXBoeS4kdGV4dC1ib2R5LWNvbG9yO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGdhcDogNHB4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgOHB4O1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubmF2YmFyLWl0ZW1zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbn1cblxuLy8gSGVhZGVyIG5vdGlmaWNhdGlvbiBiZWxsICsgTm92YSBzdXBwb3J0IHRyaWdnZXI6IGJyYW5kLXB1cnBsZSBpY29uICsgdGhlIFNBTUVcbi8vIGxpZ2h0LXB1cnBsZSBob3ZlciBhcyB0aGUgcHJvZmlsZSBidXR0b24gbmV4dCB0byB0aGVtLiBPdmVycmlkZXMgdGhlIG5ldXRyYWxcbi8vIGBzdWJ0bGVgIGljb24tYnRuIGRlZmF1bHRzIChuZWFyLWJsYWNrIGljb24gKyBncmV5IGhvdmVyKS4gVGhlIGlkIGJlYXRzIHRoZVxuLy8gY29tcG9uZW50J3MgY2xhc3Mgc2VsZWN0b3JzLlxuI25hdmJhci1iZWxsLWJ0bi5xZG5hcHJvLWljb24tYnRuLFxuI25hdmJhci1ub3ZhLWJ0bi5xZG5hcHJvLWljb24tYnRuLFxuI25hdmJhci1hcHAtYnRuLnFkbmFwcm8taWNvbi1idG4ge1xuICAgIGNvbG9yOiBjb2xvcnMuJHB1cnBsZS01MDA7XG5cbiAgICAmOmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3JzLiRsaWdodC1wdXJwbGUtMTUwO1xuICAgIH1cbn1cblxuLy8gXCJPcGVuIHRoZSBhcHBcIiBsYXVuY2hlciDigJQgdGhlIFBXQSBlbWJlZGRlZCBpbiBhIGRldmljZSBmcmFtZSB3aXRoIGEgZGV2aWNlXG4vLyBzd2l0Y2hlciAocGhvbmUgLyB0YWJsZXQtcG9ydHJhaXQgLyB0YWJsZXQtbGFuZHNjYXBlKS4gVGhpcyByZXByb2R1Y2VzIHRoZVxuLy8gZmxvdy1lZGl0b3IgcHJldmlldyBjaHJvbWUgKC5mZS1wbS0qIGluIF9mbG93ZWRpdG9yLnNjc3MpIGFzIGEgc2VsZi1jb250YWluZWRcbi8vIG92ZXJsYXkgc28gaXQgaXMgYXZhaWxhYmxlIG9uIGV2ZXJ5IGJhY2tvZmZpY2UgcGFnZS4gQmVoYXZpb3VyIGRpZmZlcnMgZnJvbVxuLy8gdGhlIHByZXZpZXcgaW4gT05FIHdheTogYmFja2Ryb3AtY2xpY2sgLyBFc2NhcGUgZG8gTk9UIGNsb3NlIChvbmx5IHRoZSBYKSDigJRcbi8vIGFwcC1sYXVuY2guanMgYmluZHMgb25seSB0aGUgWCwgYW5kIHRoZXJlIGlzIG5vIGJhY2tkcm9wIGNsb3NlIGhhbmRsZXIuIFRoZVxuLy8gZGV2aWNlIHNpemVzICsgZml0LXRvLXZpZXdwb3J0IHpvb20gbWlycm9yIHRoZSBwcmV2aWV3LiBbMjAyNi0wNy0xNl1cbi5hbC1iYWNrZHJvcCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGluc2V0OiAwO1xuICAgIHotaW5kZXg6IDEwMTAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTAsIDEyLCA0MCwgMC43Mik7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgLy8gS2VlcCB0aGUgYmFja2Ryb3AncyBvd24gc2Nyb2xsIGZyb20gY2hhaW5pbmcgdG8gdGhlIHBhZ2UgYmVoaW5kIGl0LlxuICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG5cbiAgICAvLyBbaGlkZGVuXSBtdXN0IGJlYXQgdGhlIGRpc3BsYXk6ZmxleCBhYm92ZSAoYXV0aG9yIHJ1bGUsIGhpZ2hlciBzcGVjaWZpY2l0eSkuXG4gICAgJltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxufVxuXG4uYWwtc2hlbGwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTZweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzJweDtcbn1cblxuLy8gRGV2aWNlIHN3aXRjaGVyICsgY2xvc2UgYmFyXG4uYWwtY2hyb21lIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xufVxuXG4uYWwtZGV2aWNlcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgcGFkZGluZzogM3B4O1xufVxuXG4uYWwtZGV2aWNlLWJ0biB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzNHB4O1xuICAgIGhlaWdodDogMzRweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjUpO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNDBtcywgY29sb3IgMTQwbXM7XG5cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTsgY29sb3I6ICNmZmY7IH1cblxuICAgICYtLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yMCk7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICB9XG59XG5cbi5hbC1jbG9zZS1idG4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzRweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTQwbXMsIGNvbG9yIDE0MG1zO1xuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpOyBjb2xvcjogI2ZmZjsgfVxufVxuXG4vLyBEZXZpY2UgZnJhbWVzIOKAlCBmaXhlZCBweCBzaXplczsgYXBwLWxhdW5jaC5qcyBhcHBsaWVzIGEgZml0LXRvLXZpZXdwb3J0IGB6b29tYFxuLy8gKG1pcnJvcnMgdGhlIHByZXZpZXcncyBGUkFNRV9IRUlHSFRTICsgQ0hST01FX09WRVJIRUFEIG1hdGgpLlxuLmFsLWZyYW1lIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogIzFhMWIyZTtcbiAgICBib3JkZXI6IDNweCBzb2xpZCAjM2EzYjU1O1xuICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNiksXG4gICAgICAgIDAgMjRweCA4MHB4IHJnYmEoMCwgMCwgMCwgMC43KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAyODBtcyBjdWJpYy1iZXppZXIoLjQsIDAsIC4yLCAxKSxcbiAgICAgICAgICAgICAgICBoZWlnaHQgMjgwbXMgY3ViaWMtYmV6aWVyKC40LCAwLCAuMiwgMSksXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1cyAyODBtcztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJi0tcGhvbmUge1xuICAgICAgICB3aWR0aDogMzc1cHg7XG4gICAgICAgIGhlaWdodDogODEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDQ0cHg7XG4gICAgfVxuXG4gICAgJi0tdGFibGV0LXBvcnRyYWl0IHtcbiAgICAgICAgd2lkdGg6IDc2OHB4O1xuICAgICAgICBoZWlnaHQ6IDEwMjRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICB9XG5cbiAgICAmLS10YWJsZXQtbGFuZHNjYXBlIHtcbiAgICAgICAgd2lkdGg6IDEwMjRweDtcbiAgICAgICAgaGVpZ2h0OiA3NjhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICB9XG5cbiAgICAmLS1waG9uZS1sYW5kc2NhcGUge1xuICAgICAgICB3aWR0aDogODEycHg7XG4gICAgICAgIGhlaWdodDogMzc1cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDMycHg7XG4gICAgfVxuXG4gICAgLy8gRGVza3RvcCDigJQgbmVhcmx5IHZpZXdwb3J0LWZpbGxpbmcgKG5vIGZpeGVkIGFzcGVjdCwgbm8gem9vbTsgQ1NTIHNpemVzIGl0KS5cbiAgICAmLS1kZXNrdG9wIHtcbiAgICAgICAgd2lkdGg6IG1pbigxNjgwcHgsIDk2dncpO1xuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAxNDBweCk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDExMDBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICB9XG59XG5cbi5hbC1ub3RjaCB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgd2lkdGg6IDEyMHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBtYXJnaW4tdG9wOiA2cHg7XG4gICAgYmFja2dyb3VuZDogIzFhMWIyZTtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMThweCAxOHB4O1xuICAgIHotaW5kZXg6IDI7XG5cbiAgICAuYWwtZnJhbWUtLXRhYmxldC1wb3J0cmFpdCAmLFxuICAgIC5hbC1mcmFtZS0tdGFibGV0LWxhbmRzY2FwZSAmLFxuICAgIC5hbC1mcmFtZS0tcGhvbmUtbGFuZHNjYXBlICYsXG4gICAgLmFsLWZyYW1lLS1kZXNrdG9wICYgeyBkaXNwbGF5OiBub25lOyB9XG59XG5cbi5hbC1zY3JlZW4ge1xuICAgIGZsZXg6IDE7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLy8gVGhlIG5vbi1waG9uZS1wb3J0cmFpdCBmcmFtZXMgaGlkZSB0aGUgbm90Y2gvaG9tZS1iYXIsIHNvIHRoZSBQV0Egc2l0cyBmbHVzaFxuLy8gYWdhaW5zdCB0aGUgZnJhbWUgZWRnZSAoYW5kIHRoZSByb3VuZGVkIGNvcm5lciBjbGlwcyBjb250ZW50LCBlLmcuIFwiVmFuZGFhZ1wiXG4vLyBpbiBsYW5kc2NhcGUpLiBJbnNldCB0aGUgKHdoaXRlKSBzY3JlZW4gYSBsaXR0bGUgZm9yIGJyZWF0aGluZyByb29tIOKAlCB0aGVcbi8vIHBob25lLXBvcnRyYWl0IGtlZXBzIGl0cyBub3RjaC9ob21lLWJhciBiZXplbCBpbnN0ZWFkLiBib3gtc2l6aW5nIHNvIHRoZVxuLy8gcGFkZGluZyBkb2Vzbid0IHB1c2ggdGhlIDEwMCUtd2lkZSBzY3JlZW4gcGFzdCB0aGUgZnJhbWUuXG4uYWwtZnJhbWUtLXRhYmxldC1wb3J0cmFpdCA+IC5hbC1zY3JlZW4sXG4uYWwtZnJhbWUtLXRhYmxldC1sYW5kc2NhcGUgPiAuYWwtc2NyZWVuLFxuLmFsLWZyYW1lLS1kZXNrdG9wID4gLmFsLXNjcmVlbiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiAyMnB4O1xufVxuLmFsLWZyYW1lLS1waG9uZS1sYW5kc2NhcGUgPiAuYWwtc2NyZWVuIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IDE2cHg7XG59XG5cbi5hbC1pZnJhbWUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5hbC1ob21lLWJhciB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgd2lkdGg6IDEyMHB4O1xuICAgIGhlaWdodDogNXB4O1xuICAgIG1hcmdpbjogOHB4IGF1dG87XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG5cbiAgICAuYWwtZnJhbWUtLXRhYmxldC1wb3J0cmFpdCAmLFxuICAgIC5hbC1mcmFtZS0tdGFibGV0LWxhbmRzY2FwZSAmLFxuICAgIC5hbC1mcmFtZS0tcGhvbmUtbGFuZHNjYXBlICYsXG4gICAgLmFsLWZyYW1lLS1kZXNrdG9wICYgeyBkaXNwbGF5OiBub25lOyB9XG59XG5cbi8vIExpdmUtbW9kZSB3YXJuaW5nIOKAlCBhIGJhY2tvZmZpY2UgZWxlbWVudCBwb3NpdGlvbmVkIE9WRVIgdGhlIGRldmljZSBzY3JlZW5cbi8vIChub3QgaW5zaWRlIHRoZSBQV0EpLiBTb2xpZCBtdXRlZCByZWQsIHdhcm5pbmcgaWNvbiwgT0sgKyB+NHMgYXV0by1kaXNtaXNzLlxuLy8gU2hvd24vaGlkZGVuIGJ5IGFwcC1sYXVuY2guanMgdmlhIHRoZSAtLXNob3cgY2xhc3M7IHNpdHMganVzdCBiZWxvdyB0aGUgbm90Y2hcbi8vIGFuZCBjbGlwcyB0byB0aGUgZnJhbWUncyByb3VuZGVkIGNvcm5lcnMgKC5hbC1mcmFtZSBpcyBvdmVyZmxvdzpoaWRkZW4pLlxuLmFsLWxpdmUtbm90aWNlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA0NnB4O1xuICAgIGxlZnQ6IDEycHg7XG4gICAgcmlnaHQ6IDEycHg7XG4gICAgei1pbmRleDogMztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMTBweDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBiYWNrZ3JvdW5kOiAjYjA0YTQyO1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjI4KTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMjBtcyBlYXNlLCB0cmFuc2Zvcm0gMjIwbXMgZWFzZTtcblxuICAgICYtLXNob3cge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIH1cblxuICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7IHRyYW5zaXRpb246IG5vbmU7IH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgbWFyZ2luLXRvcDogMXB4O1xuICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG5cbiAgICAmX19ib2R5IHsgZmxleDogMSAxIGF1dG87IG1pbi13aWR0aDogMDsgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBtYXJnaW46IDAgMCAzcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDEwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDU7XG4gICAgICAgIGNvbG9yOiAjZmJlNmU0O1xuICAgIH1cblxuICAgICZfX29rIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiA1cHggMThweDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU1KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTQwbXMgZWFzZTtcblxuICAgICAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI4KTsgfVxuICAgICAgICAmOmFjdGl2ZSB7IHRyYW5zZm9ybTogc2NhbGUoMC45OCk7IH1cbiAgICB9XG5cbiAgICAvLyBUYWJsZXRzOiBrZWVwIHRoZSBub3RpY2UgYSBjb21mb3J0YWJsZSByZWFkaW5nIHdpZHRoIGluc3RlYWQgb2YgZnVsbC1ibGVlZC5cbiAgICAuYWwtZnJhbWUtLXRhYmxldC1wb3J0cmFpdCAmLFxuICAgIC5hbC1mcmFtZS0tdGFibGV0LWxhbmRzY2FwZSAmIHtcbiAgICAgICAgbGVmdDogMTZweDtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIG1heC13aWR0aDogNDIwcHg7XG4gICAgICAgIHRvcDogMTZweDtcbiAgICB9XG59XG5cbi8vIFRoZSBOb3ZhIHN1cHBvcnQgdHJpZ2dlciBwdWxzZXMgZ2VudGx5IHNvIGl0IHJlYWRzIGFzIFwiYXNrIG1lXCIuIFBhdXNlcyBvblxuLy8gaG92ZXIgKHNvIHRoZSBob3ZlciBzdGF0ZSB0YWtlcyBvdmVyIGNsZWFubHkpIGFuZCByZXNwZWN0cyByZWR1Y2VkLW1vdGlvbi5cbkBrZXlmcmFtZXMgbm92YS1zb2Z0LXB1bHNlIHtcbiAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgICA1MCUgICAgICB7IHRyYW5zZm9ybTogc2NhbGUoMS4xMik7IH1cbn1cblxuI25hdmJhci1ub3ZhLWJ0bi5xZG5hcHJvLWljb24tYnRuIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgYW5pbWF0aW9uOiBub3ZhLXNvZnQtcHVsc2UgMi42cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcblxuICAgICY6aG92ZXIgeyBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkOyB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgI25hdmJhci1ub3ZhLWJ0bi5xZG5hcHJvLWljb24tYnRuIHsgYW5pbWF0aW9uOiBub25lOyB9XG59XG5cbi8vIE5vdGlmaWNhdGlvbiBkcm9wZG93bjogZnJvc3RlZCBnbGFzcyDigJQgbW9yZSB0cmFuc2x1Y2VudCAobGVzcyBzb2xpZCkgKyBzdHJvbmdlclxuLy8gYmx1ciwgbm8gd2hpdGUgYm9yZGVyLCBubyBpbnNldCBwYWRkaW5nIHNvIHRoZSBoZWFkZXIgZmlsbHMgdG8gdGhlIHRvcC9zaWRlcy5cbiNuYXZiYXItbm90aWZpY2F0aW9uLW1lbnUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjQ3LCAyNDgsIDI1MywgMC41KSAhaW1wb3J0YW50O1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyOHB4KSBzYXR1cmF0ZSgxLjUpO1xuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDI4cHgpIHNhdHVyYXRlKDEuNSk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYm94LXNoYWRvdzogMCAxMnB4IDQwcHggcmdiYSg0MCwgNDYsIDEwMCwgMC4xOCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7ICAgLy8gcmVtb3ZlIHRoZSBxZG5hcHJvLW1lbnUgOHB4IGluc2V0IOKGkiBoZWFkZXIgZmlsbHMgZmx1c2hcblxuICAgIC8vIFN1YnRsZSBzY3JvbGxiYXIgd2l0aCBhIHRyYW5zcGFyZW50IHRyYWNrIChub3QgdGhlIHByb21pbmVudCBkZWZhdWx0KS5cbiAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47XG4gICAgc2Nyb2xsYmFyLWNvbG9yOiByZ2JhKDQwLCA0NiwgMTAwLCAwLjI1KSB0cmFuc3BhcmVudDtcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiA4cHg7IH1cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgeyBiYWNrZ3JvdW5kOiByZ2JhKDQwLCA0NiwgMTAwLCAwLjI1KTsgYm9yZGVyLXJhZGl1czogNHB4OyB9XG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDQwLCA0NiwgMTAwLCAwLjQpOyB9XG59XG5cbi51c2VyLXByb2ZpbGUtZHJvcGRvd24ge1xuICAgIC51c2VyLXByb2ZpbGUtYnRuIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICBwYWRkaW5nOiA0cHggOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgY29sb3JzLiRwdXJwbGUtNTAwO1xuICAgICAgICBjb2xvcjogY29sb3JzLiRwdXJwbGUtNTAwO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgIGltZy5wcm9maWxlLXBpY3R1cmUge1xuICAgICAgICAgICAgd2lkdGg6IDI5cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDI5cHg7XG4gICAgICAgICAgICBhc3BlY3QtcmF0aW86IDEvMTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IGNhbGMoaW5maW5pdHkgKiAxcHgpO1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZmlsZS1jb250ZW50IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGNvbG9ycy4kbGlnaHQtcHVycGxlLTE1MDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC51c2VyLXByb2ZpbGUtZGV0YWlscyB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICAudXNlci1jYXJkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgICAgICB3aWR0aDogMzAxcHg7XG5cbiAgICAgICAgICAgIC51c2VyLWltYWdlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuXG4gICAgICAgICAgICAgICAgaW1nLmltYWdlIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEyNHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEyNHB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5zZXR0aW5ncy1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0YwRjFGMjtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAtOHB4O1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC04cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAudXNlci1pbmZvIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAgICAgICAgIC5pbmZvLW5hbWUge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzIwMjEyNDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuaW5mby1lbWFpbCB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjNkI3MjgwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnRzLWxvYWQtbGFyZ2UsIC50cy1sb2FkLXN0YXR1c2JhciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMHB4O1xuICAgIGxlZnQ6IDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgei1pbmRleDogOTk5OTtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgJi0taW4ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjUpO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cbi50cy1sb2FkZXIsIC50cy1sb2FkZXI6YWZ0ZXIge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB3aWR0aDogMTBlbTtcbiAgICBoZWlnaHQ6IDEwZW07XG59XG4udHMtbG9hZGVyIHtcbiAgICAvLyBtYXJnaW46IDYwcHggYXV0bztcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtaW5kZW50OiAtOTk5OWVtO1xuICAgIGJvcmRlci10b3A6IDEuMWVtIHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICBib3JkZXItcmlnaHQ6IDEuMWVtIHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICBib3JkZXItYm90dG9tOiAxLjFlbSBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gICAgYm9yZGVyLWxlZnQ6IDEuMWVtIHNvbGlkICNmZmZmZmY7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb246IGxvYWQ4IDEuMXMgaW5maW5pdGUgbGluZWFyO1xuICAgIGFuaW1hdGlvbjogbG9hZDggMS4xcyBpbmZpbml0ZSBsaW5lYXI7XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgbG9hZDgge1xuICAgIDAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxufVxuQGtleWZyYW1lcyBsb2FkOCB7XG4gICAgMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG59XG5cbi5mbGFzaC1tZXNzYWdlIHtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0b3A6IDI0cHg7XG5cbiAgICAuYWxlcnQge1xuICAgICAgICBwYWRkaW5nOiA4cHggMjRweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgIH1cbn1cblxuLy8gS3dhbGl0ZWl0c2xhbmRzY2hhcMKuLW5hdi1pdGVtOiBoZXQgbGFuZ2Ugd29vcmQgKyDCriBwYXN0IG7DqXQgbmlldCBiaW5uZW4gS2ltc1xuLy8gMjA4cHgtcmFpbCBvcCBkZSBzdGFuZGFhcmQgMTRweCAobGFiZWwgZWxsaXBzdCDihpIgZGUgwq4gdmVyZHdlZW4pLiBBbGzDqcOpbiBkaXRcbi8vIGl0ZW0gZWVuIGZyYWN0aWUga2xlaW5lciArIHN0cmFra2VyIGdlc3BhdGllZXJkIHpvZGF0IFwiS3dhbGl0ZWl0c2xhbmRzY2hhcMKuXCJcbi8vIHZvbGxlZGlnIHppY2h0YmFhciBpczsgRE9NLWdlbWV0ZW4gcGFzc2VuZCBvcCAxMi41cHgvLTAuMDE1ZW0uIFtKYW4gMjAyNi0wNy0xN11cbnFkbmFwcm8tbmF2LWl0ZW1baHJlZj1cIi92MS9rd2FsaXRlaXRzbGFuZHNjaGFwXCJdIC5uYXYtaXRlbS1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMi41cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxNWVtO1xufVxuXG4vLyBUaW55TUNFIChxZG5hcHJvLXd5c2l3eWcpIHJlbmRlcnMgaXRzIG1lbnUvZHJvcGRvd24gcG9wdXBzIGludG8gYW4gYXV4IHNpbmtcbi8vIGFwcGVuZGVkIHRvIDxib2R5PiBhdCBhIGxvdyBkZWZhdWx0IHotaW5kZXggKH4xMzAwKS4gV2hlbiB0aGUgZWRpdG9yIHNpdHNcbi8vIGluc2lkZSBhIHFkbmFwcm8tbW9kYWwgKGJhY2tkcm9wIHotaW5kZXggOTAwMCwgaW5uZXIgdXAgdG8gOTMwMCkgdGhvc2UgbWVudXNcbi8vIChGb3JtYXQg4oaSIFRleHQgY29sb3IsIFRhYmxlLCBldGMuKSBmYWxsIEJFSElORCB0aGUgbW9kYWwuIExpZnQgdGhlIHNpbmsgYWJvdmVcbi8vIGV2ZXJ5IG1vZGFsLiBHbG9iYWwg4oCUIGFwcGxpZXMgdG8gZXZlcnkgd3lzaXd5Zy1pbi1tb2RhbCAoYnJpZWZpbmcvaW5zdHJ1Y3RpZXMpLlxuLy8gW0phbiAyMDI2LTA3LTE3XVxuLnRveC50b3gtc2lsdmVyLXNpbmssXG4udG94LXRpbnltY2UtYXV4IHtcbiAgICB6LWluZGV4OiAxMDAwMDAgIWltcG9ydGFudDtcbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGlueU1DRS1ibGF1dyBlcnVpdCwgb3ZlcmFsLiBbS2ltIDAzLjA5LjIwMjY6IFwiaW4gdGlueW1jZSB6aXQgb3ZlcmFsIGRlemVcbi8vIGxlbGlqa2UgYmxhdXdlIGtsZXVyLCBrYW4gamUgZGl0IG92ZXJhbCBmaXhlbj9cIl1cbi8vXG4vLyBEZSBveGlkZS1za2luIGhlZWZ0IMOJw4lOIGFjY2VudGtsZXVyLCAjMDA2Y2U3LCBlbiBnZWJydWlrdCBkaWUgb3AgNDUgcGxla2tlbjpcbi8vIGhldCBnZW1hcmtlZXJkZSBtZW51LWl0ZW0gKEtpbXMgc2NoZXJtYWZkcnVrKSwgZGUgcmFuZCBvbSBoZXQgc2NocmlqZnZsYWssXG4vLyBkaWFsb29na25vcHBlbiwgdmlua2plcywgdmVsZGZvY3VzLCBzY2h1aWZqZXMsIGZvY3VzcmluZ2VuIG9wIGVsa2Uga25vcC5cbi8vIEdlZW4gZW5rZWxlIGRhYXJ2YW4gaXMgZWVuIFFETkEta2xldXIuIEhpZXJvbmRlciBzdGFhdCBlbGsgdmFuIGRpZSBwbGVra2VuLFxuLy8gZ2V0ZWxkIHVpdCBgbm9kZV9tb2R1bGVzL3RpbnltY2Uvc2tpbnMvdWkvb3hpZGUvc2tpbi5taW4uY3NzYCAoNy45LjMpLCBpbiBkZVxuLy8gaHVpc2tsZXVyLiBBbGxlZW4gZGUgS0xFVVIgd2lqemlndDsgdm9ybSwgbWFhdCBlbiBnZWRyYWcgYmxpanZlbiB2YW4gZGUgc2tpbi5cbi8vXG4vLyBUd2VlIGRpbmdlbiBkaWUgamUgbW9ldCB3ZXRlbiB2b29yIGplIGhpZXJhYW4gd2Vya3Q6XG4vL1xuLy8gMS4gRWxrZSBzZWxlY3RvciBzdGFhdCBvbmRlciBlZW4gd29ydGVsIChgLnRveC50b3gtdGlueW1jZWAgaW4gZGUgcGFnaW5hLFxuLy8gICAgYC50b3gudG94LXNpbHZlci1zaW5rYCAvIGAudG94LnRveC10aW55bWNlLWF1eGAgdm9vciBtZW51J3MgZW4gZGlhbG9nZW4sXG4vLyAgICBkaWUgVGlueU1DRSBsb3MgYWFuIGRlIDxib2R5PiBoYW5ndCkuIERhdCBpcyBnZWVuIHNpZXIgbWFhciBub29kemFhazogZGVcbi8vICAgIHNraW4gcHJpa3QgemlqbiBzdHlsZXNoZWV0IHBhcyBiaWogaW5pdCBpbiBkZSA8aGVhZD4sIGR1cyBOQSBzdHlsZS12MS5jc3MsXG4vLyAgICBlbiB3aW50IGJpaiBnZWxpamtlIHNwZWNpZmljaXRlaXQgb3Agdm9sZ29yZGUuIE1ldCBkZSB3b3J0ZWwgZXJiaWogaXMgZWxrZVxuLy8gICAgcmVnZWwgaGllciDDqcOpbiBrbGFzc2UgendhYXJkZXIgZGFuIHppam4gb3JpZ2luZWVsLlxuLy9cbi8vIDIuIERpdCBob29ydCBpbiBgY29tcG9uZW50cy92Mi93eXNpd3lnL193eXNpd3lnLnNjc3NgLCBtYWFyIGRhdCBiZXN0YW5kIHdvcmR0XG4vLyAgICBkb29yIEdFRU4gRU5LRUxFIGJ1bmRlbCBnZcOvbXBvcnRlZXJkIChoZXQgb250YnJlZWt0IGluXG4vLyAgICBjb21wb25lbnRzL2NvbXBvbmVudHMuc2NzcyBzaW5kcyBkZSBtYXBwZW52ZXJodWl6aW5nLCBjb21taXQgMDNhN2U1NWMyO1xuLy8gICAgZ2VtZXRlbjogMCB0cmVmZmVycyBvcCBgLnRveC10YnRuLS1zZWxlY3RgIGluIHN0eWxlLXYxLmNzcykuIFpvbGFuZyBkYXQgem9cbi8vICAgIGlzIGRyYWFpdCBkZSBlZGl0b3Igb3ZlcmFsIG9wIGRlIGthbGUgc2tpbiBlbiBpcyBESVQgZGUgcGxlayBkaWUgbGFhZHQuXG4vLyAgICBMZXQgb3A6IG9vayBtw6l0IGRhdCBiZXN0YW5kIGFhbiB6b3UgaGV0IG1lbnUtaXRlbSBibGF1dyBCTElKVkVOIOKAlCBoZXRcbi8vICAgIGNvbXBvbmVudCBzY2hyaWpmdCBgLnRveCAudG94LWNvbGxlY3Rpb25fX2l0ZW0tLWFjdGl2ZWAgKDAtMi0wKSBlbiBkZSBza2luXG4vLyAgICBgLnRveCAudG94LWNvbGxlY3Rpb24tLWxpc3QgLnRveC1jb2xsZWN0aW9uX19pdGVtLS1hY3RpdmU6bm90KC4uLilgXG4vLyAgICAoMC00LTApLiBEaXQgYmxvayBibGlqZnQgZHVzIGhvZSBkYW4gb29rIG5vZGlnLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4udG94LnRveC10aW55bWNlLFxuLnRveC50b3gtc2lsdmVyLXNpbmssXG4udG94LnRveC10aW55bWNlLWF1eCB7XG5cbiAgICAvLyAtLS0gTWVudSdzOiBoZXQgZ2VtYXJrZWVyZGUgaXRlbSB3YXMgZWVuIHZvbCBibGF1dyB2bGFrIG1ldCB3aXR0ZSB0ZWtzdC5cbiAgICAvLyBMYXZlbmRlbCBtZXQgcGFhcnNlIHRla3N0LCB6b2FscyBlbGsgYW5kZXIgUUROQS1tZW51LiBIZXQgdmlua2plIHZvbGd0XG4gICAgLy8gY3VycmVudENvbG9yIGVuIHdvcmR0IGR1cyB2YW56ZWxmIHBhYXJzLlxuICAgIC50b3gtY29sbGVjdGlvbi0tbGlzdCAudG94LWNvbGxlY3Rpb25fX2l0ZW0tLWFjdGl2ZTpub3QoLnRveC1jb2xsZWN0aW9uX19pdGVtLS1zdGF0ZS1kaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWJnLXNlY29uZGFyeS1wdXJwbGUpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICAgIH1cbiAgICAudG94LWNvbGxlY3Rpb24tLWdyaWQgLnRveC1jb2xsZWN0aW9uX19pdGVtLS1hY3RpdmU6bm90KC50b3gtY29sbGVjdGlvbl9faXRlbS0tc3RhdGUtZGlzYWJsZWQpOmZvY3VzOjphZnRlciB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1jLWJyYW5kLXB1cnBsZSkgaW5zZXQ7XG4gICAgfVxuICAgIC50b3gtY29sbGVjdGlvbi0tdG9vbGJhciAudG94LWNvbGxlY3Rpb25fX2l0ZW0tLWFjdGl2ZTpub3QoLnRveC1jb2xsZWN0aW9uX19pdGVtLS1zdGF0ZS1kaXNhYmxlZCk6Zm9jdXM6OmFmdGVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICB9XG4gICAgLnRveC1pbWFnZS1zZWxlY3Rvci1tZW51IC50b3gtY29sbGVjdGlvbl9faXRlbS1jaGVja21hcmsgc3ZnIHBhdGgge1xuICAgICAgICBmaWxsOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgICAgIHN0cm9rZTogdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICAgIH1cblxuICAgIC8vIC0tLSBSYW5kIG9tIGhldCBzY2hyaWpmdmxhay4gQmxpamZ0IHN0YWFuIChoZXQgaXMgaGV0IGVuaWdlIGZvY3Vzc2lnbmFhbFxuICAgIC8vIGRhdCBoZXQgc2NocmlqZnZsYWsgemVsZiBoZWVmdCksIG1hYXIgZHVubmVyIGVuIGluIGRlIGh1aXNrbGV1ci5cbiAgICAudG94LWVkaXQtYXJlYTo6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAzcHggdmFyKC0tYy1hY3Rpb24tMjUpO1xuICAgIH1cblxuICAgIC8vIC0tLSBLbm9wcGVuIGluIGRpYWxvZ2VuIChPcHNsYWFuLCBJbnZvZWdlbikuXG4gICAgLnRveC1idXR0b24sXG4gICAgLnRveC1idXR0b25bZGlzYWJsZWRdIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICB9XG4gICAgLnRveC1idXR0b246OmJlZm9yZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCAjZmZmLCAwIDAgMCAycHggdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICAgIH1cbiAgICAudG94LW5ha2VkLWJ0biB7IGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7IH1cblxuICAgIC8vIC0tLSBBYW5rcnVpc3Zha2plcy5cbiAgICAudG94LWNoZWNrYm94X19pY29ucyAudG94LWNoZWNrYm94LWljb25fX2NoZWNrZWQgc3ZnLFxuICAgIC50b3gtY2hlY2tib3hfX2ljb25zIC50b3gtY2hlY2tib3gtaWNvbl9faW5kZXRlcm1pbmF0ZSBzdmcge1xuICAgICAgICBmaWxsOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgfVxuICAgIGlucHV0LnRveC1jaGVja2JveF9faW5wdXQ6Zm9jdXMgKyAudG94LWNoZWNrYm94X19pY29ucyB7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgfVxuXG4gICAgLy8gLS0tIEludm9lcnZlbGRlbiBpbiBkaWFsb2dlbjogMXB4IGJsYXV3ZSBnbG9lZCB3b3JkdCBkZSBxZG5hcHJvLWlucHV0LVxuICAgIC8vIGdsb2VkIChwYWFyc2UgcmFuZCArIDNweCBhY3Rpb24tMjUgcmluZykuXG4gICAgLnRveC1jdXN0b20tZWRpdG9yOmZvY3VzLXdpdGhpbixcbiAgICAudG94LWZvY3VzYWJsZS13cmFwcGVyOmZvY3VzLFxuICAgIC50b3gtbGlzdGJveGZpZWxkIC50b3gtbGlzdGJveC0tc2VsZWN0OmZvY3VzLFxuICAgIC50b3gtdGV4dGFyZWEtd3JhcDpmb2N1cy13aXRoaW4sXG4gICAgLnRveC10ZXh0YXJlYTpmb2N1cyxcbiAgICAudG94LXRleHRmaWVsZDpmb2N1cyxcbiAgICAudG94LXRvb2xiYXItdGV4dGZpZWxkOmZvY3VzLFxuICAgIC50b3gtc2VsZWN0ZmllbGQgc2VsZWN0OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCB2YXIoLS1jLWFjdGlvbi0yNSk7XG4gICAgfVxuICAgIC50b3gtY29sb3ItaW5wdXQgc3Bhbjpmb2N1czpub3QoW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdKSxcbiAgICAudG94LWNvbG9yLWlucHV0IHNwYW46aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSkge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICB9XG4gICAgLnRveC1kaWFsb2dfX2JvZHktbmF2LWl0ZW06Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDY0LCA3MywgMTU0LCAwLjA4KTtcbiAgICB9XG5cbiAgICAvLyAtLS0gRm9jdXNyaW5nZW4gb3Aga25vcHBlbiwgbWVudWJhbGssIHN0YXR1c2JhbGsgZW4gZ2V0YWx2ZWxkZW4uXG4gICAgLnRveC10YnRuOmZvY3VzOjphZnRlcixcbiAgICAudG94LXRidG4tLWVuYWJsZWQ6Zm9jdXM6OmFmdGVyLFxuICAgIC50b3gtbWJ0bjpmb2N1czpub3QoOmRpc2FibGVkKTo6YWZ0ZXIsXG4gICAgLnRveC1zcGxpdC1idXR0b246Zm9jdXM6OmFmdGVyLFxuICAgIC50b3gtbnVtYmVyLWlucHV0OmZvY3VzOjphZnRlcixcbiAgICAudG94LW51bWJlci1pbnB1dCAudG94LWlucHV0LXdyYXBwZXI6Zm9jdXM6OmFmdGVyLFxuICAgIC50b3gtbnVtYmVyLWlucHV0IC50b3gtaW5wdXQtd3JhcHBlcjpoYXMoaW5wdXQ6Zm9jdXMpOjphZnRlcixcbiAgICAudG94LW51bWJlci1pbnB1dCBidXR0b246Zm9jdXM6OmFmdGVyLFxuICAgIC50b3gtc3RhdHVzYmFyIGE6Zm9jdXMtdmlzaWJsZTo6YWZ0ZXIsXG4gICAgLnRveC1zdGF0dXNiYXJfX3BhdGgtaXRlbTpmb2N1cy12aXNpYmxlOjphZnRlcixcbiAgICAudG94LXN0YXR1c2Jhcl9fd29yZGNvdW50OmZvY3VzLXZpc2libGU6OmFmdGVyLFxuICAgIC50b3gtc3RhdHVzYmFyX19yZXNpemUtaGFuZGxlOmZvY3VzLXZpc2libGU6OmFmdGVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICB9XG4gICAgLnRveC1uYXZvYmotYm9yZGVyZWQtZm9jdXMudG94LW5hdm9iai1ib3JkZXJlZDo6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgfVxuICAgIC50b3gtbm90aWZpY2F0aW9uOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgfVxuXG4gICAgLy8gLS0tIFRhYmVsa2llemVyLCBzY2h1aWZqZXMgZW4gZGUgbGFhZHNwaW5uZXIuXG4gICAgLnRveC1pbnNlcnQtdGFibGUtcGlja2VyIC50b3gtaW5zZXJ0LXRhYmxlLXBpY2tlcl9fc2VsZWN0ZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgfVxuICAgIC50b3gtc2xpZGVyX19oYW5kbGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUtcHJlc3MpO1xuICAgIH1cbiAgICAudG94LXRvb2xiYXItc2xpZGVyX19pbnB1dDo6LXdlYmtpdC1zbGlkZXItdGh1bWIgeyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7IH1cbiAgICAudG94LXRvb2xiYXItc2xpZGVyX19pbnB1dDo6LW1vei1yYW5nZS10aHVtYiB7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTsgfVxuICAgIC50b3gtdG9vbGJhci1zbGlkZXJfX2lucHV0OmZvY3VzOjotd2Via2l0LXNsaWRlci10aHVtYixcbiAgICAudG94LXRvb2xiYXItc2xpZGVyX19pbnB1dDpmb2N1czo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCAjZmZmLCAwIDAgMCAycHggdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICAgIH1cbiAgICAudG94LWltYWdlLXNlbGVjdG9yLWxvYWRpbmctc3Bpbm5lciB7IGJvcmRlci1jb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUpOyBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4gICAgLy8gLS0tIFplbGRlbiBpbiBiZWVsZCwgbWFhciBkZXplbGZkZSBrbGV1cjogaGV0IHRvZWdhbmtlbGlqa2hlaWRzcGFuZWVsLFxuICAgIC8vIG9wbWVya2luZ2VuIGVuIGhldCBwcm9tb3RpZWJsb2sgdmFuIFRpbnlNQ0UgemVsZi5cbiAgICAudG94LWRpYWxvZ19fYm9keS1jb250ZW50IC5hY2Nlc3NpYmlsaXR5LWlzc3VlLS1pbmZvIC50b3gtZm9ybV9fZ3JvdXAgaDIgeyBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUpOyB9XG4gICAgLnRveC1kaWFsb2dfX2JvZHktY29udGVudCAuYWNjZXNzaWJpbGl0eS1pc3N1ZS0taW5mbyAudG94LWljb24uYWNjZXNzaWJpbGl0eS1pc3N1ZV9faWNvbiBzdmcgeyBmaWxsOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7IH1cbiAgICAudG94LWRpYWxvZ19fYm9keS1jb250ZW50IC5hY2Nlc3NpYmlsaXR5LWlzc3VlLS1pbmZvIGEudG94LWJ1dHRvbi0tbmFrZWQudG94LWJ1dHRvbi0taWNvbiB7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTsgfVxuICAgIC50b3gtY29tbWVudC50b3gtY29tbWVudC0tc2VsZWN0ZWQ6Zm9jdXMgeyBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTsgfVxuICAgIC50b3gtY29tbWVudC50b3gtY29tbWVudC0tc2VsZWN0ZWQgLnRveC1jb21tZW50X19zaW5nbGU6Zm9jdXM6OmFmdGVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7IH1cbiAgICAudG94LXByb21vdGlvbi1kaWFsb2cgLnRveC1wcm9tb3Rpb24tZGlhbG9nLXBsdWdpbi0taWNvbiB7IGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7IH1cbiAgICAudG94LXByb21vdGlvbi1kaWFsb2ctLWV4cGxvcmUgYSB7IGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7IH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBBYm91dCBRRE5BIFBybyDigJQgY29udGVudCBvZiAjYWJvdXQtcWRuYS1tb2RhbCAoYmFzZS5odG1sKSwgb3BlbmVkIGZyb20gdGhlXG4vLyB2ZXJzaW9uIGJsb2NrIGF0IHRoZSBib3R0b20gb2YgdGhlIG5hdiByYWlsLiBbSmFuIDIwMjYtMDctMjRdXG4vL1xuLy8gT25seSB0aGUgbW9kYWwncyBDT05URU5UIGlzIHN0eWxlZCBoZXJlIOKAlCB0aGUgc2hlbGwgKGJhY2tkcm9wLCBoZWFkZXIgd2l0aFxuLy8gdGl0bGUgKyBjbG9zZS1YLCBzaXppbmcsIGRpc21pc3MpIGlzIHRoZSBxZG5hcHJvLW1vZGFsIGNvbXBvbmVudCdzIG93bi5cbi8vIENvbG91cnMgYXJlIHRoZSBob3VzZSB0b2tlbnMgdGhlIHJlc3Qgb2YgdGhlIGFwcCBhbHJlYWR5IHVzZXMgKGJyYW5kICM0MDQ5OWEsXG4vLyBsYXZlbmRlciAjZWRlZWZiLCBoYWlybGluZSAjZTJlMmYwLCBpbmsgIzIzMjUzYSwgbXV0ZWQgIzZiNjg4NCkuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5hYm91dC1xZG5hIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDE4cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uYWJvdXQtcWRuYV9fY3Jvd24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbn1cbi5hYm91dC1xZG5hX19sb2NrdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIGdhcDogOXB4O1xuICAgIGNvbG9yOiAjNDA0OTlhO1xufVxuLy8gVGhlIGNvbXBvbmVudCBsaWJyYXJ5IGhhcyBhIFFETkEgd29yZG1hcmsgYnV0IG5vIFwiUUROQSBQcm9cIiBsb2NrdXAsIHNvIFwiUHJvXCJcbi8vIGlzIHR5cGVzZXQgYWxvbmdzaWRlIGl0LiBTd2FwIGJvdGggZm9yIHRoZSByZWFsIGxvY2t1cCBpZiBvbmUgZXZlciBzaGlwcy5cbi5hYm91dC1xZG5hX19wcm8ge1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAjNDA0OTlhO1xufVxuLmFib3V0LXFkbmFfX3RhZ2xpbmUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBjb2xvcjogIzZiNjg4NDtcbn1cblxuLy8gVmVyc2lvbiBpcyB0aGUgaGVybzogdGhlIG9uZSB0aGluZyBhbnlvbmUgYWN0dWFsbHkgb3BlbnMgdGhpcyBkaWFsb2cgZm9yLlxuLmFib3V0LXFkbmFfX3ZlcnNpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIGdhcDogMTBweDtcbn1cbi5hYm91dC1xZG5hX19udW0ge1xuICAgIGZvbnQtc2l6ZTogMzhweDtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAjMjMyNTNhO1xuICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG59XG4uYWJvdXQtcWRuYV9fY2hhbm5lbCB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNjQsIDczLCAxNTQsIDAuMTApO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIHBhZGRpbmc6IDRweCA5cHg7XG59XG5cbi5hYm91dC1xZG5hX19ncmlkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgIGJhY2tncm91bmQ6ICNmN2Y3ZmI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZTJmMDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICA+IGRpdiB7XG4gICAgICAgIHBhZGRpbmc6IDExcHggOHB4IDEycHg7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2UyZTJmMDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cbiAgICA+IGRpdjpmaXJzdC1jaGlsZCB7IGJvcmRlci1sZWZ0OiAwOyB9XG5cbiAgICBkdCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDRweDtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wN2VtO1xuICAgICAgICBjb2xvcjogIzhhOGZiNTtcbiAgICB9XG4gICAgZGQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgY29sb3I6ICMyMzI1M2E7XG4gICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIH1cbn1cblxuLmFib3V0LXFkbmFfX2FjdGlvbnMgcWRuYXByby1pY29uIHsgbWFyZ2luLXJpZ2h0OiA2cHg7IH1cblxuLmFib3V0LXFkbmFfX2NvbnRhY3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgICAgICAmOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgICB9XG59XG4uYWJvdXQtcWRuYV9fZG90IHsgY29sb3I6ICNjM2MzZDY7IH1cblxuLmFib3V0LXFkbmFfX2Zvb3RlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZy10b3A6IDE2cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMmUyZjA7XG59XG4uYWJvdXQtcWRuYV9fYnkgICAgeyBtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTIuNXB4OyBjb2xvcjogIzZiNjg4NDsgfVxuLmFib3V0LXFkbmFfX2NvcHkgIHsgbWFyZ2luOiAwIDAgNnB4OyBmb250LXNpemU6IDEycHg7IGNvbG9yOiAjOGE4ZmI1OyB9XG4uYWJvdXQtcWRuYV9fZXllYnJvdyB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOWVtO1xuICAgIGNvbG9yOiAjOGE4ZmI1O1xufVxuXG4vLyBDZXJ0aWZpY2F0aW9uIGFydHdvcmsgaXMgdHJhZGVtYXJrLWNvbnRyb2xsZWQg4oCUIG5ldmVyIHJlY29sb3VyZWQsIG5ldmVyXG4vLyB0aGVtZWQg4oCUIHNvIGl0IGFsd2F5cyBzaXRzIG9uIGl0cyBvd24gbGlnaHQgcGxhdGUuIEFsbCBmb3VyIFBOR3MgYXJlIGNyb3BwZWRcbi8vIHRvIGFuIGlkZW50aWNhbCBoZWlnaHQvcmF0aW8gKHdlYi9pbWcvY2VydGlmaWNhdGlvbnMvKSwgc28gT05FIGNzcyBoZWlnaHRcbi8vIHJlbmRlcnMgZm91ciBvcHRpY2FsbHkgZXF1YWwgbWFya3MuXG4uYWJvdXQtcWRuYV9fcGxhdGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDE4cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTZlN2YyO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgcGFkZGluZzogMTJweCAxOHB4O1xuXG4gICAgaW1nIHsgaGVpZ2h0OiA1OHB4OyB3aWR0aDogYXV0bzsgZGlzcGxheTogYmxvY2s7IH1cbn1cbi5hYm91dC1xZG5hX19zdGFuZGFyZHMge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBjb2xvcjogIzhhOGZiNTtcbiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTIwcHgpIHtcbiAgICAuYWJvdXQtcWRuYV9fcGxhdGUge1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDtcblxuICAgICAgICBpbWcgeyBoZWlnaHQ6IDQ0cHg7IH1cbiAgICB9XG59XG4iLCIuZGVmYXVsdC1vdmVydmlldyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbjtcbiAgICAvLyBXYXMgYGNhbGMoMTAwdmggKyAxMDBweClgIOKAlCBhIGxlZ2FjeSBoYWNrIHRoYXQgcmVzZXJ2ZWQgMTAwcHggQUJPVkVcbiAgICAvLyB2aWV3cG9ydCwgd2hpY2ggY29tYmluZWQgd2l0aCB0aGUgNTZweCBzdGlja3kgbmF2YmFyIGdhdmUgZXZlcnlcbiAgICAvLyAuZGVmYXVsdC1vdmVydmlldyBwYWdlIGEgMTU2cHggYm9keSBvdmVyc2hvb3QgKHZpc2libGUgc2Nyb2xsIGJhcixcbiAgICAvLyBuYXZiYXIgd291bGQgYXBwZWFyIHRvIHNjcm9sbCBvZmYtc2NyZWVuIGFzIHRoZSB1c2VyIHJlYWNoZWQgdGhlXG4gICAgLy8gYm90dG9tIG9mIGJvZHkpLiBDb25zdHJhaW5lZCB0byBcInZpZXdwb3J0IG1pbnVzIG5hdmJhclwiIHNvIHRoZVxuICAgIC8vIG92ZXJ2aWV3IGZpdHMgZXhhY3RseSBvbmUgc2NyZWVuIGFuZCBzY3JvbGxzIGludGVybmFsbHkgdmlhXG4gICAgLy8gb3ZlcmZsb3cteTogYXV0by4gKEtpbSAyMDI2LTA2LTA3LilcbiAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSB2YXIoLS1xZG5hLXRvcGJhci1oKSk7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuXG4gICAgLm92ZXJ2aWV3LXBhbmVsLWxlZnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbjtcbiAgICAgICAgZmxleDogMTtcblxuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgbWFyZ2luOiAwcHggOHB4IDBweCAwcHg7XG4gICAgfVxuXG4gICAgLm92ZXJ2aWV3LXBhbmVsLWNlbnRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uO1xuICAgICAgICBmbGV4OiAzO1xuXG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgIH1cblxuICAgID4gLm92ZXJ2aWV3LWhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogcm93O1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG5cbiAgICAgICAgLy8gVGhlIHRpbGUgc2VhcmNoIG9uIGEgY2FyZC1vbmx5IGh1YiAoU3RhbWRhdGEpLiBJdCBpcyB0aGUgb25seSB0aGluZyBpblxuICAgICAgICAvLyB0aGlzIGhlYWRlciB0aGVyZSwgc28gaXQgaXMgcHVzaGVkIHRvIHRoZSByaWdodCBlZGdlIHdpdGggYXV0byBtYXJnaW5cbiAgICAgICAgLy8gcmF0aGVyIHRoYW4gYnkgYSBqdXN0aWZ5LWNvbnRlbnQgb24gdGhlIGhlYWRlciBpdHNlbGYsIHdoaWNoIHdvdWxkIG1vdmVcbiAgICAgICAgLy8gdGhlIGxlZnQvY2VudGVyIHBhbmVscyBvbiBldmVyeSBvdGhlciBvdmVydmlldy4gU2FtZSAzNDBweCBhcyB0aGVcbiAgICAgICAgLy8gSW5zdGVsbGluZ2VuIGh1YiBhbmQgUHJvamVjdGVuOiBhIHNlYXJjaCB0aGF0IGdyb3dzIHdpdGggdGhlIHZpZXdwb3J0XG4gICAgICAgIC8vIHJlYWRzIGFzIGEgZm9ybSBmaWVsZCBieSB0aGUgdGltZSB5b3UgYXJlIG9uIGEgMjcgaW5jaCBzY3JlZW4uXG4gICAgICAgIC8vIFtLaW0gMzEuMDguMjAyNl1cbiAgICAgICAgPiAjaGVhZGVyLXBjLWNhcmQtc2VhcmNoIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG5cbiAgICAgICAgICAgID4gLm92ZXJ2aWV3LWNhcmQtc2VhcmNoX19pbnB1dCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDM0MHB4O1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gI2hlYWRlci1wYW5lbC1sZWZ0IHtcbiAgICAgICAgICAgIGdhcDogMTZweDtcblxuICAgICAgICAgICAgPiAqIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDRweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDo0cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gI2hlYWRlci1wbC1vcHRpb25zIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZmxvdzogcm93O1xuXG4gICAgICAgICAgICAgICAgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPiAjaGVhZGVyLXBhbmVsLWxlZnQuaGlkZGVuLWNvbnRlbnQge1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPiAqIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA+ICNoZWFkZXItcGFuZWwtY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogOHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuXG4gICAgICAgICAgICA+ICNoZWFkZXItcGMtZnVuY3Rpb25zIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXg6IDAgMDtcbiAgICAgICAgICAgICAgICBmbGV4LWZsb3c6IHJvdztcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyAvLyB2ZXJ0aWNhbGx5IGNlbnRlciB0aGUgb3B0aW9uIGJ1dHRvbnMgd2l0aCB0aGUgc2VhcmNoIGJveFxuICAgICAgICAgICAgICAgIGdhcDogNHB4OyAgICAgICAgICAgICAvLyBzaXQgYSB0b3VjaCBjbG9zZXIgdG8gdGhlIHNlYXJjaCBib3hcblxuICAgICAgICAgICAgICAgID4gI2hlYWRlci1wYy1zZWFyY2gge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWZsb3c6IHJvdztcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA+ICNoZWFkZXItcGMtb3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZmxvdzogcm93O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcblxuICAgICAgICAgICAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBBZHZhbmNlZC1zZWFyY2ggdG9nZ2xlOiBzbGlnaHRseSBsYXJnZXIgaWNvbiAoSmFuKS5cbiAgICAgICAgICAgICAgICAgICAgPiAjaGVhZGVyLXBjLWJ0bi1hZHZhbmNlZC1zZWFyY2ggLmJ0bi1pY29uLXByZWZpeCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDIxcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gI2hlYWRlci1wYy1maWx0ZXJzIHtcbiAgICAgICAgICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgID4gLm92ZXJ2aWV3LWJvZHkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWZsb3c6IHJvdztcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG5cbiAgICAgICAgLy8gTGVmdFxuICAgICAgICA+ICNib2R5LXBhbmVsLWxlZnQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTlweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogOHB4O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDhweDtcblxuICAgICAgICAgICAgPiAjYm9keS1wbC1zZWFyY2gge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1mbG93OiByb3c7XG4gICAgICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgICAgICAgICAgcGFkZGluZzogOHB4O1xuXG4gICAgICAgICAgICAgICAgPiAqIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgICAgICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gI2JvZHktcGwtbm9uZSB7XG4gICAgICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiA4cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gaHIge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3Atd2lkdGg6IDJweDtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAjRDlEQkVCO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMnB4IGF1dG8gMHB4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiA5NCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gI2JvZHktcGwtZGF0YSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICAgICAuYm9keS1wbC1kYXRhLXJlY29yZCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZmxvdzogcm93O1xuICAgICAgICAgICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNnB4IDEycHggNnB4IDBweDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICAgICAgICAgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgID4gKjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuYm9keS1wbC1kYXRhLXJlY29yZDpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGMEYxRjI7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmJvZHktcGwtZGF0YS1yZWNvcmQuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0YwRjFGMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDZW50ZXJcbiAgICAgICAgPiAjYm9keS1wYW5lbC1jZW50ZXIge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gICAgICAgICAgICA+ICNib2R5LXBjLWhlYWRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA4cHg7XG5cbiAgICAgICAgICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZmxvdzogcm93O1xuICAgICAgICAgICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNHB4O1xuXG4gICAgICAgICAgICAgICAgICAgIC5ib2R5LXBjLWhlYWRlci1vcHRpb24tZ3JvdXAge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZmxvdzogcm93O1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XG5cbiAgICAgICAgICAgICAgICAgICAgICAgID4gI2J0bi1wYy1oZWFkZXItb3B0aW9ucy1hZGQtZXhpc3Rpbmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLmJvZHktcGMtaGVhZGVyLWNoZWNrZWQtb3B0aW9uLWdyb3VwIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWZsb3c6IHJvdztcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICA+IHFkbmEtbGFiZWwjbGJsLWNoZWNrZWQtb3B0aW9ucy1jb3VudCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgI2JvZHktcGMtaGVhZGVyLW9wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICA+IC5ib2R5LXBjLWhlYWRlci1vcHRpb24tZ3JvdXA6bm90KDpvbmx5LWNoaWxkKTpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAjYm9keS1wYy1oZWFkZXItY2hlY2tlZC1vcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+ICNib2R5LXBjLWRhdGEge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1mbG93OiBjb2x1bW47XG4gICAgICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgICAgID4gdGFibGUge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItc3BhY2luZzogMCAxcHg7XG5cbiAgICAgICAgICAgICAgICAgICAgPiB0aGVhZCA+IHRyID4gdGgge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNEQURBREE7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZmxvdzogcm93O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gKjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgPiB0Ym9keSA+IHRyID4gdGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICA+IHRib2R5ID4gdHI6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0YwRjFGMjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgPiB0ZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0YwRjFGMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgID4gLmxvYWRlciB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMTZweCBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgYmxhY2s7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uOiByb3RhdGlvbiAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGtleWZyYW1lcyByb3RhdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgIDAlICAgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAgICAgICAgICAgICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVGFibGUgdmlldyDigJQgd2hpdGUgYmFja2dyb3VuZCBvbiBoZWFkZXIgYW5kIGRhdGEgYXJlYVxuICAgICAgICAgICAgJi50YWJsZS12aWV3IHtcbiAgICAgICAgICAgICAgICA+ICNib2R5LXBjLWhlYWRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHggOHB4IDAgMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA+ICNib2R5LXBjLWRhdGEge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDhweCA4cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBDYXJkIHZpZXcgKHRvZ2dsZWQgb3Igb25seSkg4oCUIHRyYW5zcGFyZW50LCBjYXJkcyBoYW5kbGUgdGhlaXIgb3duIGJnXG4gICAgICAgICAgICAmOm5vdCgudGFibGUtdmlldykge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgICAgICAgICAgICAgPiAjYm9keS1wYy1oZWFkZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgID4gLm92ZXJ2aWV3LWZvb3RlciB7XG4gICAgICAgIC8vIFBvc2l0aW9uIG9ubHkg4oCUIGxldCBxZG5hcHJvLWFjdGlvbi1iYXIgaGFuZGxlIGl0cyBvd25cbiAgICAgICAgLy8gYmFja2dyb3VuZCwgcGFkZGluZywgYm9yZGVyLCBnYXAsIGFuZCBzaGFkb3cuXG4gICAgICAgICNmb290ZXItbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDQ4cHg7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgICB6LWluZGV4OiA1MDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnRvdGFsLWRhdGEge1xuICAgIHBhZGRpbmctYm90dG9tOiA3MHB4O1xufVxuXG4uaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbnRoLmNoZWNrYm94IHtcbiAgICB3aWR0aDogNDhweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcblxuICAgIHFkbmEtaW5wdXQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4ucGMtZGF0YS10YWJsZS1jZWxsIHtcbiAgICAmLmJpZ2dlciB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMHB4IDE2cHggMHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgcWRuYS1sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICA+IGRpdiB7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbn1cblxudGFibGUjYm9keS1wYy1kYXRhLXRhYmxlIHtcbiAgICB0aGVhZCB0ciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICB0Ym9keSB0cltkYXRhLWlkXSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG59XG5cbi5jcmVhdGlvbi1yb3cge1xuICAgIHBhZGRpbmc6IDhweDtcbn1cblxuLmNyZWF0aW9uLXJvdzpsYXN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDhweDtcbn1cblxuLmlkLWNvbHVtbiB7XG4gICAgd2lkdGg6IDgycHg7XG59XG5cbi8vIEEgdGlsZSBmaWx0ZXJlZCBvdXQgYnkgdGhlIHNlYXJjaC4gU3BlbGxlZCBvdXQgcmF0aGVyIHRoYW4gbGVhbmluZyBvbiB0aGVcbi8vIHVzZXItYWdlbnQncyBvd24gW2hpZGRlbl0geyBkaXNwbGF5OiBub25lIH06IHRoYXQgaXMgYSBVQSBydWxlIGFuZCBsb3NlcyB0b1xuLy8gcWRuYXByby1odWItdGlsZSdzIG93biBgZGlzcGxheTogYmxvY2tgLCBzbyB0aGUgdGlsZSB3b3VsZCBzdGF5IG9uIHNjcmVlbiB3aXRoXG4vLyB0aGUgYXR0cmlidXRlIHNldC4gU2FtZSBpbnN1cmFuY2UgdGhlIEluc3RlbGxpbmdlbiBodWIgdGFrZXMgb24gaXRzIGNlbGxzLlxuI2JvZHktcGMtZGF0YS1jYXJkcyBxZG5hcHJvLWh1Yi10aWxlW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIFRoZSBcIm5vdGhpbmcgbWF0Y2hlZFwiIG1lc3NhZ2UgdW5kZXIgdGhlIGdyaWQsIHNhbWUgdHdvIGxpbmVzIGFuZCB0aGUgc2FtZSBsb29rXG4vLyBhcyAuc2V0dGluZ3MtaHViX19lbXB0eS5cbi5vdmVydmlldy1jYXJkLXNlYXJjaC1lbXB0eSB7XG4gICAgcGFkZGluZzogNDBweCAxNnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5vdmVydmlldy1jYXJkLXNlYXJjaC1lbXB0eVtoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4ub3ZlcnZpZXctY2FyZC1zZWFyY2gtZW1wdHlfX3RpdGxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMWExZjRkKTtcbn1cblxuI2JvZHktcGMtZGF0YS1jYXJkcyxcbiNkZWZhdWx0LW92ZXJ2aWV3LW9wdGlvbnNib3gge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjgwcHgsIDFmcikpO1xuICAgIGdhcDogMTZweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG59XG5cbi8vIEEgaHViIG9mIENPTVBBQ1QgdGlsZXMgKGNhcmRfc2l6ZSAncycsIHRvZGF5IG9ubHkgU3RhbWRhdGEpIHBhY2tzIHRpZ2h0ZXIuXG4vLyBLaW0gMzEuMDguMjAyNjogXCJtaW5zdGVucyA0IHBlciByaWpcIi4gVGhlcmUgaXMgbm8gd2F5IHRvIHByb21pc2UgYSBudW1iZXIgd2l0aFxuLy8gYXV0by1maWxsIOKAlCB0aGUgY291bnQgZm9sbG93cyB0aGUgd2lkdGgg4oCUIHNvIHRoZSB0cmFjayBtaW5pbXVtIGlzIHRoZSBrbm9iOlxuLy8gYXQgMjQwcHggZm91ciBjb2x1bW5zIG5lZWQgMjQwKjQgKyAxNiozID0gMTAwOHB4IG9mIGdyaWQsIHdoaWNoIGlzIGFib3V0IGFcbi8vIDEzMDBweCB3aW5kb3cgd2l0aCB0aGUgc2lkZWJhciBvcGVuLCBhbmQgZml2ZSBhcHBlYXIgZnJvbSAxMjY0cHguIFRoZSBvbGRcbi8vIDI4MHB4IGFza2VkIGZvciAxMTY4cHggYmVmb3JlIGl0IGdhdmUgZm91ci5cbi8vXG4vLyBOb3QgbG93ZXIgdGhhbiB0aGlzOiBoYWxmIGEgdGlsZSBpcyBvbmUgY291bnQsIGFuZCBcIjYgTG9jYXRpZWxpanN0ZW5cIiBhdCAxMXB4XG4vLyBuZWVkcyByb3VnaGx5IDk1cHguIEJlbG93IGEgMjQwcHggdHJhY2sgdGhhdCBzdGFydHMgcnVubmluZyBpbnRvIHRoZSBlbGxpcHNpcy5cbiNib2R5LXBjLWRhdGEtY2FyZHMuY2FyZHMtY29tcGFjdCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjQwcHgsIDFmcikpO1xufVxuLyogPT09PT09PT09PSAgU2lkZS1wYW5lbCBzaG93L2hpZGUgYW5pbWF0aW9uIChKYW4gMjAyNi0wNi0xNykgID09PT09PT09PT1cbiAgIFRoZSBsZWZ0L3JpZ2h0IG92ZXJ2aWV3IHNpZGUgcGFuZWxzIChUZWFtcy9Mb2NhdGllcy9Vbml0cyBsaXN0KSBhcmUgdG9nZ2xlZFxuICAgdmlhIHRoZSBgLmhpZGRlbmAgY2xhc3MgKGdsb2JhbGx5IGBkaXNwbGF5Om5vbmUgIWltcG9ydGFudGApLiBUbyBtYWtlIHRoZVxuICAgV0hPTEUgcm93IGZlZWwgZmx1aWQg4oCUIHBhbmVsIEFORCB0aGUgbmVpZ2hib3VyaW5nIGxpc3QgbW92aW5nIHRvZ2V0aGVyIOKAlFxuICAgd2UgZG9uJ3QgcG9wIHRoZSBwYW5lbCBpbi9vdXQgd2l0aCBkaXNwbGF5LiBJbnN0ZWFkLCB1bmRlciBuby1wcmVmZXJlbmNlIHdlXG4gICBvdmVycmlkZSBgLmhpZGRlbmAgdG8ga2VlcCB0aGUgcGFuZWwgaW4gZmxvdyBhdCB6ZXJvIHdpZHRoIGFuZCBhbmltYXRlIGl0c1xuICAgYGZsZXgtZ3Jvd2AgKDDihpQxKSArIG9wYWNpdHkuIEJlY2F1c2UgdGhlIHBhbmVsIGFuZCB0aGUgY2VudGVyIGxpc3Qgc2hhcmUgb25lXG4gICBmbGV4IHJvdywgdGhlIGJyb3dzZXIgcmVkaXN0cmlidXRlcyB0aGUgZnJlZWQvY2xhaW1lZCBzcGFjZSBmcmFtZS1ieS1mcmFtZSxcbiAgIHNvIHRoZSBsaXN0IGdsaWRlcyB0byBpdHMgbmV3IHdpZHRoIGluc3RlYWQgb2Ygc25hcHBpbmcuIGBvdmVyZmxvdzpoaWRkZW5gXG4gICBjbGlwcyB0aGUgY29udGVudCB3aGlsZSB0aGUgYm94IGlzIG5hcnJvd2VyIHRoYW4gaXRzIGNvbnRlbnQ7IGBtaW4td2lkdGg6MGBcbiAgIChhbHJlYWR5IG9uIHRoZSBwYW5lbCkgbGV0cyBpdCBjb2xsYXBzZSBmdWxseS4gVGhlIFwiaGlkZGVuXCIgcGFuZWwgc3RheXMgYXRcbiAgIDAgd2lkdGggLyBvcGFjaXR5IDAgLyBwb2ludGVyLWV2ZW50czpub25lIOKAlCB2aXN1YWxseSBnb25lLCBubyBsYXlvdXQgY29zdC5cbiAgIFVuZGVyIGBwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2VgIHRoaXMgd2hvbGUgYmxvY2sgaXMgc2tpcHBlZCwgc28gdGhlXG4gICBnbG9iYWwgYC5oaWRkZW4geyBkaXNwbGF5Om5vbmUgfWAgYXBwbGllcyBhbmQgdGhlIHRvZ2dsZSBpcyBpbnN0YW50LiAqL1xuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBuby1wcmVmZXJlbmNlKSB7XG4gICAgLmRlZmF1bHQtb3ZlcnZpZXcge1xuICAgICAgICAub3ZlcnZpZXctcGFuZWwtbGVmdCxcbiAgICAgICAgLm92ZXJ2aWV3LXBhbmVsLXJpZ2h0IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBmbGV4LWdyb3cgMjYwbXMgZWFzZSwgb3BhY2l0eSAyMDBtcyBlYXNlLCBtYXJnaW4gMjYwbXMgZWFzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5vdmVydmlldy1wYW5lbC1sZWZ0LmhpZGRlbixcbiAgICAgICAgLm92ZXJ2aWV3LXBhbmVsLXJpZ2h0LmhpZGRlbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7IC8qIGJlYXQgZ2xvYmFsIC5oaWRkZW4geyBkaXNwbGF5Om5vbmUgIWltcG9ydGFudCB9ICovXG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkB1c2UgJy4uLy4uL21vZHVsZXMvY29sb3JzLnNjc3MnO1xuQHVzZSBcInNhc3M6Y29sb3JcIjtcblxuJGNvcm5mbG93ZXJCbHVlOiAgICM0MDQ5OWE7XG4kbXV0ZWQtdGV4dDogICAgICAgIzc5Nzk3OTtcbiRzaWRlYmFyLWhlYWRlcjogICAkY29ybmZsb3dlckJsdWU7XG4kY29sb3ItcHJpbWFyeTogICAgJGNvcm5mbG93ZXJCbHVlO1xuJGNvbG9yLWRhbmdlcjogICAgICRjb3JuZmxvd2VyQmx1ZTtcbiRiZy1kYXNoYm9hcmRJdGVtOiAjZTFlMWUxO1xuJGJnLWljb246ICAgICAgICAgICM0NjQ2NDY7XG4kdG9vbGJhci1iZzogICAgICAgIzU1NTtcbiR0b29sYmFyLWJvcmRlcjogICBjb2xvci5hZGp1c3QoJHRvb2xiYXItYmcsICRsaWdodG5lc3M6IDIwJSk7XG5cbiVzbGljay1hcnJvdyB7XG4gICAgZm9udC1zaXplOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB6LWluZGV4OiAxMDtcblxuICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgICAmLnNsaWNrLWRpc2FibGVkOmJlZm9yZSB7XG4gICAgICAgIG9wYWNpdHk6IC4yNTtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMjRweC8xIFwiTWF0ZXJpYWwgRGVzaWduIEljb25zXCI7XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgdGV4dC1yZW5kZXJpbmc6IGF1dG87XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBjb2xvcjogY29sb3JzLiR3aGl0ZTtcbiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgfVxufVxuXG4laGVhZGVyLWVsZW1lbnQge1xuICAgIGJhY2tncm91bmQ6ICRiZy1kYXNoYm9hcmRJdGVtO1xuICAgIGJvcmRlcjogMXB4IGRhc2hlZCByZ2JhKGNvbG9ycy4kYmxhY2ssIC4yKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ldHNhLWRhc2hib2FyZC1pdGVtIHtcbiAgICBtaW4taGVpZ2h0OiAyMDBweDtcbiAgICBib3JkZXItcmFkaXVzOiAuMjVyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGNvbG9yOiAkbXV0ZWQtdGV4dDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAuNXM7XG59XG5cbi50cy1hdXRvbWV0cmljcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTAwcHgpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAudHNhLXNpZGViYXIge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAuMjVyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIGZsZXg6IDAgMCAxNTBweDtcbiAgICAgICAgbWF4LXdpZHRoOiAxNTBweDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3JzLiR3aGl0ZTtcblxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgICAgICAgICBmbGV4OiAwIDAgMjAwcHg7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnRzYS1tYWluIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogLjI1cmVtO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9ycy4kd2hpdGU7XG5cbiAgICAgICAgLnRzYS10b29sYmFyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0b29sYmFyLWJnO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgICAgICAgICAgY29sb3I6IGNvbG9ycy4kd2hpdGU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcblxuICAgICAgICAgICAgLnNsaWNrLXNsaWRlciB7IGRpc3BsYXk6IGZsZXg7IH1cblxuICAgICAgICAgICAgJi1ncm91cCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDAuNjI1cmVtO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHsgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkdG9vbGJhci1ib3JkZXI7IH1cblxuICAgICAgICAgICAgICAgICYtaW5uZXIge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBnYXA6IDZweDtcblxuICAgICAgICAgICAgICAgICAgICAuY2xlYXJmaXgge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdhcDogNHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5zbGljay1maXgge1xuICAgICAgICAgICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtaXRlbTpub3QoOmZpcnN0LWNoaWxkKSB7IG1hcmdpbi1sZWZ0OiA4cHg7IH1cblxuICAgICAgICAgICAgJi1idG4ge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLmFkanVzdCgkdG9vbGJhci1iZywgJGxpZ2h0bmVzczogLTE0JSk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogY29sb3IuYWRqdXN0KCR0b29sYmFyLWJnLCAkbGlnaHRuZXNzOiAtNiUpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvcnMuJHdoaXRlO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IC4yNXJlbTtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogLjNzO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IGNvbG9yLmFkanVzdCgkdG9vbGJhci1iZywgJGxpZ2h0bmVzczogLTE0JSk7IH1cblxuICAgICAgICAgICAgICAgICYtcHJpbWFyeSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1wcmltYXJ5ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLXByaW1hcnkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkaG92OiBjb2xvci5hZGp1c3QoJGNvbG9yLXByaW1hcnksICRsaWdodG5lc3M6IC00JSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRob3YgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtbW9kYWwge1xuXHRcdCYubW9kYWwge1xuXHRcdFx0Lm1vZGFsLWNvbnRlbnQge1xuXHRcdFx0XHRwYWRkaW5nOiAxcmVtO1xuXHRcdFx0fVxuXHRcdFx0Lm1vZGFsLWhlYWRlciB7XG5cdFx0XHRcdGdhcDogOHB4O1xuXHRcdFx0XHRwYWRkaW5nOiAwIDAgMC41cmVtICFpbXBvcnRhbnQ7XG5cdFx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRcdC5tb2RhbC10aXRsZSB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxcmVtO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpbWcudHMtcm91bmRlZCB7IFxuXHRcdFx0XHR3aWR0aDogMzZweDtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogOHB4O1xuXHRcdFx0fVxuXHRcdFx0Lm1vZGFsLWJvZHkge1xuXHRcdFx0XHQudGFibGUgdGQsIC50YWJsZSB0aCB7XG5cdFx0XHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdHBhZGRpbmc6IC41cmVtO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0LmZvcm0tc2V0dGluZy1maWVsZCB7XG5cdFx0XHRcdFx0cGFkZGluZzogMC41cmVtIDByZW07XG5cdFx0XHRcdFx0Z2FwOiAwLjc1cmVtO1xuXHRcdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdFx0XHR3aWR0aDogNzUlO1xuXHRcdFx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRcdFx0XHRpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG5cdFx0XHRcdFx0XHR3aWR0aDogMXJlbTtcblx0XHRcdFx0XHRcdGhlaWdodDogMXJlbTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC5tb2RhbC1mb290ZXIge1xuXHRcdFx0XHRwYWRkaW5nOiAwLjVyZW0gMCAwICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cblx0XHRcdFxuXHRcdFx0Lm1vZGFsLWljb24ge1xuXHRcdFx0XHRwYWRkaW5nOiA4cHggMTZweDtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogOHB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4udHNhLXR5cGUtc2VsZWN0ZWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBhIHsgbWFyZ2luLWxlZnQ6IDhweDsgfVxuXG4gICAgJi1pdGVtIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgd2lkdGg6IDc1cHg7XG4gICAgICAgIGhlaWdodDogNzVweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGJvcmRlcjogMXB4IGRhc2hlZCBjb2xvcnMuJGJvcmRlci1jb2xvcjtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gICAgICAgIGltZyAgIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjgpOyB9XG4gICAgICAgIHNwYW4gIHsgZm9udC1zaXplOiAxMXB4OyB9XG4gICAgfVxufVxuXG4udHNhLXR5cGUtc2VsZWN0b3Ige1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYm9yZGVyOiAxcHggZGFzaGVkIGNvbG9ycy4kYm9yZGVyLWNvbG9yO1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLmFkanVzdChjb2xvcnMuJHdoaXRlLCAkbGlnaHRuZXNzOiAtNCUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiAxMHB4O1xuXG4gICAgJi1pdGVtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmLWNhdCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvcnMuJHdoaXRlO1xuXG4gICAgICAgICAgICAmLWhlYWRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNpZGViYXItaGVhZGVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvcnMuJHdoaXRlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAuMjVyZW07XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLWxpc3Qge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBmbGV4OiAwIDAgMzAlO1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDMwJTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuM3M7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNXB4IDEwcHg7XG5cbiAgICAgICAgICAgICAgICAgICAgLnRzYS1jaGFydHR5cGUtaWNvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMThweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgICAgICYuYWN0aXZlIHsgYmFja2dyb3VuZDogY29sb3IuYWRqdXN0KGNvbG9ycy4kd2hpdGUsICRsaWdodG5lc3M6IC00JSk7IH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi50c2EtZGFzaGJvYXJkIHtcbiAgICBwYWRkaW5nOiAxNXB4IDE1cHggMDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLnRzYS1kYXNoYm9hcmQtdGhlbWVzIHtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIHdpZHRoOiA1MCU7XG5cbiAgICAmLWNvbG9yIHtcbiAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IC4yNXJlbTsgfVxuICAgICAgICAmOmxhc3QtY2hpbGQgIHsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IC4yNXJlbTsgfVxuICAgIH1cblxuICAgIC5jYXJkIHtcbiAgICAgICAgbWF4LXdpZHRoOiAyMy42OTklO1xuICAgICAgICB3aWR0aDogMjMuNjk5JTtcbiAgICAgICAgbWFyZ2luOiA1cHg7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAxcztcblxuICAgICAgICAmOmxhc3QtY2hpbGQgIHsgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgICAgICYuc2VsZWN0ZWQgICAgeyBib3gtc2hhZG93OiAwIDAgMTBweCBjb2xvcnMuJGxpZ2h0LWdyZXk7IH1cbiAgICAgICAgJjpob3ZlciAgICAgICB7IGJveC1zaGFkb3c6IDAgMCAxMHB4IGNvbG9ycy4kc2hhZG93LWNvbG9yOyB9XG4gICAgICAgICYtYm9keSAgICAgICAgeyBwYWRkaW5nOiAwOyB9XG4gICAgICAgICYtZm9vdGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiNkYXNoX2NvbG9ycyB7XG4gICAgLmNoaWxkX2NvbG9ycyxcbiAgICAudWktc29ydGFibGUtcGxhY2Vob2xkZXIge1xuICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgfVxuICAgIC51aS1zb3J0YWJsZS1wbGFjZWhvbGRlciB7IGZsb2F0OiBsZWZ0OyB9XG4gICAgLnVpLXN0YXRlLWhpZ2hsaWdodCB7XG4gICAgICAgIGJvcmRlci1zdHlsZTogZGFzaGVkO1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoY29sb3JzLiR3aGl0ZSwgLjUpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGNvbG9ycy4kd2hpdGUsIC4xKTtcbiAgICB9XG59XG5cbi50c2EtZGFzaGJvYXJkLWNvbG9yIHtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmb250LXNpemU6IDAuNjI1cmVtO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjVzO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgID4gYSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtMnB4O1xuICAgICAgICByaWdodDogLTJweDtcbiAgICAgICAgYmFja2dyb3VuZDogY29sb3JzLiR3aGl0ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICB3aWR0aDogMTJweDtcbiAgICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTJweDtcbiAgICB9XG59XG5cbi50c2EtZGFzaGJvYXJkLXVzZXIge1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXJnaW46IDAgYXV0bztcblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxNTIwcHgpIHtcbiAgICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICAgIGhlaWdodDogNDhweDtcbiAgICB9XG59XG5cbi50c2EtZGFzaGJvYXJkLWhlYWRlciB7XG4gICAgcGFkZGluZzogOHB4IDE2cHg7XG4gICAgY29sb3I6IGNvbG9ycy4kd2hpdGU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXNocmluazogMDtcblxuICAgICYtbG9nbyB7XG4gICAgICAgIEBleHRlbmQgJWhlYWRlci1lbGVtZW50O1xuICAgICAgICBoZWlnaHQ6IDYwcHg7XG5cdFx0bWluLXdpZHRoOiAxMDBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogLjI1cmVtO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICY6aG92ZXIgLmJ0bi10ciwgJjpob3ZlciAuYnRuLWJyIHsgb3BhY2l0eTogMTsgfVxuICAgIH1cblxuICAgICYtY29sb3Ige1xuICAgICAgICBAZXh0ZW5kICVoZWFkZXItZWxlbWVudDtcbiAgICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIH1cblxuICAgICYtdGl0bGUge1xuICAgICAgICBAZXh0ZW5kICVoZWFkZXItZWxlbWVudDtcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAuMjVyZW07XG4gICAgICAgIHBhZGRpbmc6IDMycHggMTZweDtcblxuICAgICAgICAmLWJvbGQsICYtaXRhbGljIHtcbiAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogI0ZGRjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDA0OTlhO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzNTBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgJjpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtYnRuIHtcbiAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogLjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcnMuJHdoaXRlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgY29sb3I6ICRtdXRlZC10ZXh0O1xuICAgICAgICB0cmFuc2l0aW9uOiAuM3M7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcblxuXHRcdCYuYnRuLXRyLCAmLmJ0bi1iciB7XG5cdFx0XHRvcGFjaXR5OiAwO1xuXHRcdH1cblx0XHRcblx0XHQmOmhvdmVyIHtcblx0XHRcdGNvbG9yOiAkbXV0ZWQtdGV4dDtcblx0XHRcdGJhY2tncm91bmQ6IGNvbG9yLmFkanVzdCgkYmctZGFzaGJvYXJkSXRlbSwgJGxpZ2h0bmVzczogLTE1JSk7XG5cdFx0fVxuICAgIH1cbn1cblxuLnRzYS1kYXNoYm9hcmQtdGFicyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9ycy4kd2hpdGU7XG4gICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAudHMtdGFicyB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAuYWN0aXZlIGEgeyBiYWNrZ3JvdW5kOiAjZjVmNWY1OyB9XG4gICAgfVxufVxuXG4udHNhLWRhc2hib2FyZC1pdGVtIHtcbiAgICBAZXh0ZW5kICV0c2EtZGFzaGJvYXJkLWl0ZW07XG4gICAgYmFja2dyb3VuZDogY29sb3JzLiR3aGl0ZTtcbiAgICBwYWRkaW5nOiAwIDE2cHggMTZweDtcblxuICAgIC50c2EtZ3JvdXAtaWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA4cHg7XG4gICAgICAgIHJpZ2h0OiA4cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgJi1wbGFjZWhvbGRlciB7IGJvcmRlcjogMnB4IGRhc2hlZCBjb2xvcnMuJGdyZXk7IH1cblxuICAgICYtcXVlc3Rpb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuXG4gICAgICAgIC50cy1pY29uIHsgbWFyZ2luLXJpZ2h0OiA4cHg7IH1cblxuICAgICAgICAudHMtcm91bmRlZC1ib3JkZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ViZWJlYjtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogI2ViZWJlYjtcbiAgICAgICAgICAgIGNvbG9yOiBjb2xvci5hZGp1c3QoY29sb3JzLiRibGFjaywgJGxpZ2h0bmVzczogNDAlKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtdHlwZSB7XG4gICAgICAgIGJvcmRlcjogMXB4IGRhc2hlZCBjb2xvcnMuJGJvcmRlci1jb2xvcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogLjI1cmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDRweCAxNnB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG5cbiAgICAgICAgLm1kaSAgeyBtYXJnaW4tcmlnaHQ6IDE2cHg7IGZvbnQtc2l6ZTogMjRweDsgfVxuICAgICAgICBzcGFuICB7IGZsZXgtZ3JvdzogMTsgfVxuICAgIH1cblxuICAgICYtZW1wdHkge1xuICAgICAgICBAZXh0ZW5kICV0c2EtZGFzaGJvYXJkLWl0ZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRiZy1kYXNoYm9hcmRJdGVtO1xuICAgICAgICBwYWRkaW5nOiAxNXB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICA+IC5tZGkgeyBmb250LXNpemU6IDM2cHg7IH1cblxuICAgICAgICAudHNhLWl0ZW0taWNvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnRzYS1idG4ge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBjb2xvcjogY29sb3JzLiR3aGl0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgY29sb3IuYWRqdXN0KCRiZy1pY29uLCAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgICBiYWNrZ3JvdW5kOiAkYmctaWNvbjtcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgdHJhbnNpdGlvbjogLjNzO1xuXG4gICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7IG1hcmdpbi1sZWZ0OiA4cHg7IH1cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IGNvbG9ycy4kd2hpdGU7XG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9yLmFkanVzdCgkYmctaWNvbiwgJGxpZ2h0bmVzczogLTQlKTtcbiAgICB9XG5cbiAgICAmLWdycCB7IGRpc3BsYXk6IGZsZXg7IH1cblxuICAgICYtcHJpbWFyeSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1wcmltYXJ5ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLXByaW1hcnkgIWltcG9ydGFudDtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAkaG92OiBjb2xvci5hZGp1c3QoJGNvbG9yLXByaW1hcnksICRsaWdodG5lc3M6IC00JSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRob3YgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtZGFuZ2VyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWRhbmdlciAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvci1wcmltYXJ5ICFpbXBvcnRhbnQ7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgJGhvdjogY29sb3IuYWRqdXN0KCRjb2xvci1kYW5nZXIsICRsaWdodG5lc3M6IC00JSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRob3YgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnRzYS1pdGVtLWljb24ge1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIHRyYW5zaXRpb246IC4ycztcblxuICAgICYtZGFuZ2VyIHtcbiAgICAgICAgY29sb3I6IGNvbG9ycy4kY29sb3ItZGFuZ2VyO1xuICAgICAgICAmOmhvdmVyIHsgY29sb3I6IGNvbG9yLmFkanVzdChjb2xvcnMuJGNvbG9yLWRhbmdlciwgJGxpZ2h0bmVzczogLTQlKSAhaW1wb3J0YW50OyB9XG4gICAgfVxufVxuXG4udHNhLWRyYWctaGFuZGxlLCAuZWxlbWVudC1kcmFnLWhhbmRsZSB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbiNkYXNoYm9hcmQtY29sb3JzLCAjZGFzaGJvYXJkLXVzZXJzIHtcbiAgICAuc2xpY2stbGlzdCB7IGZsZXgtZ3JvdzogMTsgfVxuXG4gICAgLnNsaWNrLXByZXYge1xuICAgICAgICBAZXh0ZW5kICVzbGljay1hcnJvdztcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcRjE0MVwiOyB9XG4gICAgfVxuICAgIC5zbGljay1uZXh0IHtcbiAgICAgICAgQGV4dGVuZCAlc2xpY2stYXJyb3c7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxGMTQyXCI7IH1cbiAgICB9XG59XG5cbi50c2EtdG9vbGJhci1jb2xvcnMsXG4udHNhLXRvb2xiYXItdXNlcnMge1xuICAgIC5zbGljay1wcmV2IHtcbiAgICAgICAgQGV4dGVuZCAlc2xpY2stYXJyb3c7XG4gICAgICAgICY6YmVmb3JlIHsgY29udGVudDogXCJcXEYxNDFcIjsgfVxuICAgIH1cbiAgICAuc2xpY2stbmV4dCB7XG4gICAgICAgIEBleHRlbmQgJXNsaWNrLWFycm93O1xuICAgICAgICAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxGMTQyXCI7IH1cbiAgICB9XG59XG5cbi50c2Etc2xpZGVyLWdycCB7IGRpc3BsYXk6IGZsZXg7IH1cblxuLnRzYS1jaGFydC1jb2xvcnMsIC50c2EtZGFzaGJvYXJkLXVzZXJzIHtcbiAgICAudHNhLXRvb2xiYXItYnRuLWFkZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IDFweCBkYXNoZWQgY29sb3JzLiR3aGl0ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBjb2xvcjogY29sb3JzLiR3aGl0ZTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuM3M7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcblxuICAgICAgICAmOmhvdmVyICB7IGJhY2tncm91bmQ6IHJnYmEoY29sb3JzLiR3aGl0ZSwgLjEpOyB9XG4gICAgICAgICY6Zm9jdXMgIHsgb3V0bGluZTogbm9uZTsgfVxuICAgIH1cbn1cblxuLnRzYS1kYXNoYm9hcmQtdXNlcnMgLnRzYS10b29sYmFyLWJ0bi1hZGQge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxNTIwcHgpIHtcbiAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICB9XG59XG5cbi50c2EtY2hhcnR0eXBlLXByZXZpZXcge1xuICAgIHBhZGRpbmc6IDEycHggMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBpbWcgeyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBtYXJnaW4tYm90dG9tOiA0cHg7IH1cbiAgICBwICAgeyBtYXJnaW4tYm90dG9tOiAwOyBmb250LXNpemU6IDE0cHg7IH1cbn1cblxuLmNoYXJ0X2NvbnRhaW5lciB7XG4gICAgLnVpLXNvcnRhYmxlLXBsYWNlaG9sZGVyIHsgbWluLWhlaWdodDogMzAwcHg7IH1cblxuICAgIC51aS1zdGF0ZS1oaWdobGlnaHQge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBkYXNoZWQgcmdiYSgwLDAsMCwwLjIpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwuMSk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAuNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC51aS1zb3J0YWJsZS1oZWxwZXIgLnRzYS1kYXNoYm9hcmQtaXRlbSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCA1cHggcmdiYSgwLDAsMCwwLjI1KTtcbiAgICB9XG59XG5cbiN0YWJzLnVpLXdpZGdldCB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgJi51aS13aWRnZXQtY29udGVudCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxufVxuXG4udHNhLXRhYnMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiZy1kYXNoYm9hcmRJdGVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiA0cHggOHB4IDBweCA4cHg7XG5cbiAgICAudGFiLWFjdGlvbnMge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNHB4O1xuICAgICAgICByaWdodDogNHB4O1xuICAgICAgICBvcGFjaXR5OiAwO1xuXG4gICAgICAgIHNwYW4ubWRpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYnRuLWNpcmNsZTpob3ZlciB7IGJhY2tncm91bmQ6ICRiZy1kYXNoYm9hcmRJdGVtOyB9XG5cbiAgICAudWktd2lkZ2V0LWhlYWRlciB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHBhZGRpbmc6IDBweCA0cHggMHB4IDBweDtcblxuICAgICAgICAudWktc3RhdGUtZGVmYXVsdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgLjNzO1xuICAgICAgICB9XG4gICAgICAgIC51aS1zdGF0ZS1ob3ZlciAgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LC41KTsgfVxuICAgICAgICAudWktdGFicy1hbmNob3IgIHsgXG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggMjRweCA4cHggMTZweDsgXG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIH1cblxuICAgICAgICAudWktdGFicy1hY3RpdmUsXG4gICAgICAgIC51aS1zdGF0ZS1hY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbiAgICAgICAgICAgID4gYSB7IGNvbG9yOiAjMzMzICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC51aS10YWJzLW5hdiB7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgJjpob3ZlciAudGFiLWFjdGlvbnMgeyBvcGFjaXR5OiAxOyB0cmFuc2l0aW9uOiBvcGFjaXR5IC4xcyAuMnM7ICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudWktY29ybmVyLXRvcCxcbiAgICAudWktY29ybmVyLWFsbCB7XG4gICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IC41cmVtO1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogLjVyZW07XG4gICAgfVxuXG4gICAgLmJ0bi1jaXJjbGUgICAgICAgICAgeyBtYXJnaW4tdG9wOiAuMzc1cmVtOyB9XG4gICAgLnRzYS1kYXNoYm9hcmQtaGVhZGVyLWJ0biB7IGNvbG9yOiAkbXV0ZWQtdGV4dDsgfVxuXG4gICAgLnVpLXN0YXRlLWhpZ2hsaWdodCB7XG4gICAgICAgIGJvcmRlcjogMXB4IGRhc2hlZCByZ2JhKDAsMCwwLC4zKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsLjUpO1xuICAgIH1cbn1cblxuLmVsZW1lbnQtbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXItcmFkaXVzOiAuMjVyZW07XG5cbiAgICAmLWhlYWRlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzaWRlYmFyLWhlYWRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogLjI1cmVtO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGNvbG9yOiBjb2xvcnMuJHdoaXRlO1xuICAgICAgICBwYWRkaW5nOiA2cHggMTZweDtcbiAgICAgICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHsgbWFyZ2luLXRvcDogMTBweDsgfVxuXG4gICAgICAgICYubm90LWRyYWdnYWJsZSB7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAmOmhvdmVyIHsgY29sb3I6IGNvbG9ycy4kd2hpdGU7IH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtaXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAuMjVyZW07XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICBwYWRkaW5nOiA0cHggMTJweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuM3M7XG5cbiAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IGNvbG9yLmFkanVzdChjb2xvcnMuJHdoaXRlLCAkbGlnaHRuZXNzOiAtNCUpOyB9XG5cbiAgICAgICAgLmNoYXJ0dHlwZS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udHNhLWxpc3QtaXRlbSB7IHBhZGRpbmctYm90dG9tOiAxMnB4OyB9XG5cbi50cy1hdXRvbWV0cmljcy1wb3BvdmVyIHtcblx0LnBvcG92ZXItYm9keSBzZWxlY3Qge1xuXHRcdGhlaWdodDogY2FsYygxLjVlbSArIC43NXJlbSArIDJweCk7XG5cdFx0cGFkZGluZzogLjM3NXJlbSAuNzVyZW07XG5cdFx0Zm9udC1zaXplOiAxcmVtO1xuXHR9XG59IiwiQHVzZSBcInNhc3M6Y29sb3JcIjtcblxuLy8gJGdyZWVuOiAjNkJCNkFCO1xuLy8gJGRhcmstZ3JlZW46ICM2QTk4OTk7IC8vIGFwcHJvdmVkXG5cbi8vICRyZWQ6ICNERTUwNjY7XG4vLyAkeWVsbG93OiAjRjdDOTM5O1xuXG4vLyAkb3JhbmdlOiAjRUY4RTAxOyAvLyBNZWRpdW0gd2FybmluZ1xuLy8gJGRhcmstb3JhbmdlOiAjRDk3NjJDO1xuXG4vLyAkbGlnaHQtcHVycGxlOiAjRUVFRkZBO1xuLy8gJHB1cnBsZTogIzQwNDk5QTtcbi8vICRkYXJrX3B1cnBsZTogIzFFMjA1QztcblxuLy8gJHdoaXRlOiAjRjFGMUYxO1xuLy8gJGxpZ2h0LWdyZXk6ICNFRUVERUQ7XG4vLyAkZ3JleTogI0I1QjVCNTtcbi8vICRkYXJrLWdyZXk6ICM2RjZGNkQ7XG5cblxuXG4vLyBEZXNjcmlwdGl2ZSBjb2xvciB2YXJpYWJsZXMgaHR0cDovL2NoaXIuYWcvcHJvamVjdHMvbmFtZS10aGF0LWNvbG9yLyBzXG4kd2hpdGU6ICNmZmY7XG4kYmxhY2s6ICMwMDA7XG4kZ3JleTogIzg3ODc4NztcbiRkYXJrLWdyZXk6ICM1OTU5NTk7XG4kbGlnaHQtZ3JleTogY29sb3Iuc2NhbGUoIzg3ODc4NywgJGxpZ2h0bmVzczogMjAlKTtcbiR1bHRyYS1saWdodC1ncmV5OiBjb2xvci5zY2FsZSgjODc4Nzg3LCAkbGlnaHRuZXNzOiAzNSUpO1xuJG1vcmUtdWx0cmEtbGlnaHQtZ3JleTogY29sb3Iuc2NhbGUoIzg3ODc4NywgJGxpZ2h0bmVzczogNDQlKTtcbiRlbGVjdHJpYy12aW9sZXQ6ICM2MjAwZWU7XG4kcHVycGxlOiAjNDA0OTlBO1xuJHJlZDogI2Y4NjA1OTsgXG4kYmx1ZS1vdXRsaW5lOiAjM2RhMmY5OyBcblxuLy8gRnVuY3Rpb25hbCBjb2xvciB2YXJpYWJsZXNcbiRib2R5LWNvbG9yOiAjNjY2OyBcbiRoZWFkaW5nLWNvbG9yOiBjb2xvci5zY2FsZSgkYmxhY2ssICRsaWdodG5lc3M6IDEwJSk7XG4kYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiRiZy1jb2xvcjogI2YwZjBmMDtcblxuJGJvcmRlci1jb2xvcjogY29sb3Iuc2NhbGUoJGdyZXksICRsaWdodG5lc3M6IDMwJSk7XG4kbGluay1jb2xvcjogY29sb3IuYWRqdXN0KCRncmV5LCAkbGlnaHRuZXNzOiAtMTUlKTtcblxuJHNoYWRvdy1jb2xvcjogcmdiYSgkYmxhY2ssIC4zKTtcbiRkYXJrLXNoYWRvdy1jb2xvcjogcmdiYSgkYmxhY2ssIC45KTtcbiRsaWdodC1zaGFkb3ctY29sb3I6IHJnYmEoJGJsYWNrLCAuMSk7XG4kZm9udC1jb2xvci1saW5rOiAjNGQ0ZDRkO1xuXG4vLyBDb2xvcnMgKFBsYW5uaW5nKVxuJGNvbG9yMTogI2Y5M2Q2MTsgLy8gcm9vZFxuJGNvbG9yMjogIzllNTNiMjsgLy8gcGFhcnNcbiRjb2xvcjM6ICM0NWI5YWI7IC8vIGdyb2VuXG4kY29sb3I0OiAjZjhhNzRiOyAvLyBvcmFuamVcblxuJGNvbG9yLWZpbmlzaGVkOiAjM2ZjMzUzO1xuJGNvbG9yLWlucHJvZ3Jlc3M6ICNmNzc4NGI7XG4kY29sb3ItY2FuY2VsZWQ6ICNGRjU5NjQ7XG5cbiRjb2xvci1jb21wbGV0ZWQ6ICM0OUI4QUQ7XG4kY29sb3ItY3VycmVudDogIzVBN0ZGMTtcbiRjb2xvci1uZXh0OiAjN0Q3RDdEO1xuJGNvbG9yLWZhZGVkLW91dDogIzQ1NDU0NTtcblxuJHRzLWNvbG9yMTogIzI5YmI5YztcbiR0cy1jb2xvcjI6ICMyMjlmODU7XG4kdHMtY29sb3IzOiAjMzljYTc1O1xuJHRzLWNvbG9yNDogIzMwYWQ2MztcbiR0cy1jb2xvcjU6ICMzYTk5ZDg7XG4kdHMtY29sb3I2OiAjMmU4MWI3O1xuJHRzLWNvbG9yNzogIzM1NDk1ZDtcbiR0cy1jb2xvcjg6ICMyYzNlNGY7XG4kdHMtY29sb3I5OiAjZTg0Zjg4O1xuJHRzLWNvbG9yMTA6ICNjODMwNjk7XG4kdHMtY29sb3IxMTogIzlhNWNiNDtcbiR0cy1jb2xvcjEyOiAjOGQ0OGFiO1xuJHRzLWNvbG9yMTM6ICNmMGMzMzA7XG4kdHMtY29sb3IxNDogI2YxOWIyYztcbiR0cy1jb2xvcjE1OiAjZTQ0ZDQyO1xuJHRzLWNvbG9yMTY6ICNiZTNhMzA7XG5cbiRjb2xvci1kYW5nZXI6ICR0cy1jb2xvcjE1O1xuJGNvbG9yLXdhcm5pbmc6ICR0cy1jb2xvcjEzO1xuJGNvbG9yLWluZm86ICR0cy1jb2xvcjU7XG4kY29sb3Itc3VjY2VzczogJHRzLWNvbG9yNDtcblxuLy8gQXBwIHN0eWxpbmcgZm9yIHByZXZpZXcgbW9kYWxzXG4kYXBwLWJnLWNvbG9yOiAjRjdGOEY5O1xuJGFwcC1wcmltYXJ5LWNvbG9yOiAjMGVhNTdmO1xuJGFwcC13aGl0ZS1jb2xvcjogI2ZmZjtcblxuLy8gQnV0dG9uIGNvbG9yc1xuJGJ0bi1wcmltYXJ5OiAjMDA3YmZmOyAvLyBub3QgdXNlZCB5ZXRcbiRidG4tZGFyazogIzU2NTY1NjtcbiRidG4taW5mbzI6ICM0NTQ3ODQ7IiwiLy8gSW50ZXJhY3RpdmUgZG9jdW1lbnRzIOKAlCBTSEFSRUQgYmxvY2sgcmVuZGVyaW5nIENTUyAoZmFzZSAxLCAyMDI2LTA3LTIxO1xuLy8gZmFzZSAyIFwiY29uZGl0aW9uYWxpdHlcIiBhZGRlbmR1bSwgc2FtZSBkYXRlIOKAlCBjaG9pY2UgYmxvY2tzLCBoaWRkZW4gc3RhdGUsXG4vLyB0aGUgdGFibGUtb2YtY29udGVudHMgcGFuZWwpLlxuLy9cbi8vIEdsb2JhbCAodW5zY29wZWQg4oCUIG5vICNkbXMtdmlld2VyIHByZWZpeCksIHNvIEJPVEggdGhlIERNUyBmdWxsc2NyZWVuIHZpZXdlclxuLy8gKFZpZXcvdjEvZG9jdW1lbnRzL3ZpZXdlci5odG1sKSBhbmQgdGhlIGZhc2UtMSBWdWUgZWRpdG9yJ3MgbGl2ZSBwcmV2aWV3XG4vLyBwYW5lIGdldCBpZGVudGljYWwgc3R5bGluZyBmcm9tIE9ORSBjb21waWxlZCBzdHlsZXNoZWV0XG4vLyAod2ViL2Nzcy92MS9zdHlsZS12MS5jc3MpLiBQb3J0ZWQgdmVyYmF0aW0gKHZhbHVlcyB1bmNoYW5nZWQsIGFscmVhZHlcbi8vIGxpdmUtdmVyaWZpZWQgaW4gdmlld2VyLmh0bWwncyBmYXNlLTAgc2NvcGVkIGNvcHkpIOKAlCBvbmx5IHRoZSAjZG1zLXZpZXdlclxuLy8gcHJlZml4IHdhcyBkcm9wcGVkLlxuLy9cbi8vIGRvY3MvSU5URVJBQ1RJVkUtRE9DVU1FTlRTLUJVSUxELVBMQU4ubWQgwqczIChibG9jayBKU09OIHYxKSBkb2N1bWVudHMgdGhlXG4vLyBibG9jayB0eXBlcyB0aGVzZSBydWxlcyBkcmVzczogdGV4dCAvIGltYWdlIC8gdmlkZW8gLyB0YWJsZSAvIGNob2ljZSArIHRoZVxuLy8gZW1wdHkgc3RhdGUuIFNhbWUgY29sb3VyIGZhbWlseSB0aHJvdWdob3V0OiBicmFuZCBwdXJwbGUgIzQwNDk5YSwgbGlnaHRcbi8vIGxhdmVuZGVyICNlZGVlZmIgKGFscmVhZHkgdXNlZCBmb3IgdGhlIHZpZGVvLWxpbmsgaG92ZXIpLCAjZTJlMmYwIGJvcmRlcnMsXG4vLyAjMjMyNTNhIGRhcmsgdGV4dCDigJQgbm8gbmV3IGNvbG91cnMgaW50cm9kdWNlZCBmb3IgZmFzZSAyLlxuXG4uZG1zLWlkb2MtcGFnZSB7XG4gICAgLy8gcG9zaXRpb246IHJlbGF0aXZlICgxNC4wOC4yMDI2KSBpcyB0aGUgb2Zmc2V0IHBhcmVudCBmb3IgdGhlIHRyYW5zaWVudFxuICAgIC8vIGludGVybmFsLXJlZmVyZW5jZSBub3RpY2UgKC5kbXMtaWRvYy1yZWYtbm90aWNlIGJlbG93KSwgd2hpY2ggaXNcbiAgICAvLyBwb3NpdGlvbmVkIGFnYWluc3QgVEhJUyBlbGVtZW50IHJhdGhlciB0aGFuIGFnYWluc3QgdGhlIGF1dGhvciBodG1sIHRoZVxuICAgIC8vIGNsaWNrZWQgbGluayBoYXBwZW5zIHRvIHNpdCBpbi4gVGhlIG5vdGljZSBpcyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQsIHNvXG4gICAgLy8gaXQgc3RheXMgb3V0IG9mIHRoaXMgZmxleCBjb2x1bW4ncyBmbG93IGFuZCBjaGFuZ2VzIG5vIGV4aXN0aW5nIGxheW91dC5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWF4LXdpZHRoOiA4ODBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGNvbG9yOiAjMjMyNTNhO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3gtc2hhZG93OiAwIDRweCAyNHB4IHJnYmEoMCwgMCwgMCwgLjQpO1xuICAgIHBhZGRpbmc6IDQwcHggNDhweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDI0cHg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgIC5kbXMtaWRvYy1wYWdlIHtcbiAgICAgICAgcGFkZGluZzogMjRweCAxOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBnYXA6IDE4cHg7XG4gICAgfVxufVxuXG4uZG1zLWlkb2MtYmxvY2sgeyBtaW4td2lkdGg6IDA7IH1cblxuLmRtcy1pZG9jLWhlYWRpbmcge1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiAwIDAgOHB4O1xuICAgIGNvbG9yOiAjMjMyNTNhO1xufVxuXG4uZG1zLWlkb2MtdGV4dC1ib2R5IHtcbiAgICBmb250LXNpemU6IC45NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIGNvbG9yOiAjMzMzNDRhO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG5cbiAgICBwIHsgbWFyZ2luOiAwIDAgLjhlbTsgfVxuICAgIHA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cblxuICAgIHVsLFxuICAgIG9sIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjRlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAgLjhlbTtcbiAgICB9XG59XG5cbi5kbXMtaWRvYy1ibG9jay1pbWFnZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xufVxuXG4vLyBmYXNlIDQ6IHRoZSBvZmZzZXQgcGFyZW50IGZvciBhYnNvbHV0ZWx5LXBvc2l0aW9uZWQgaG90c3BvdCBtYXJrZXJzL1xuLy8gcG9wb3ZlcnMuIEl0cyBvd24gcmVuZGVyZWQgYm94IGlzIG1hZGUgdG8gbWF0Y2ggdGhlIDxpbWc+J3MgcmVuZGVyZWQgYm94XG4vLyBFWEFDVExZIChzZWUgdGhlIHR3byBydWxlcyBiZWxvdykg4oCUIHRoYXQgZXF1YWxpdHkgaXMgd2hhdCBsZXRzIGEgaG90c3BvdCdzXG4vLyB4L3kgZnJhY3Rpb24gKDAuLjEpIGxhbmQgb24gdGhlIHJpZ2h0IHBpeGVsIG9mIHRoZSBhY3R1YWwgaW1hZ2UsIGZvciBldmVyeVxuLy8gc2l6ZSBjbGFzcywgaW5jbHVkaW5nIGEgZ2VudWluZWx5IHNtYWxsIHNvdXJjZSBpbWFnZSAodGhlIGRvY3VtZW50ZWQgWmVueWFcbi8vIGJ1ZyB0aGlzIGRlbGliZXJhdGVseSBhdm9pZHM6IG1hcmtlcnMgbWlzcG9zaXRpb25pbmcgYmVjYXVzZSB0aGVpclxuLy8gcG9zaXRpb25lZCBhbmNlc3RvciBkaWRuJ3QgbWF0Y2ggdGhlIHNocnVuayBpbWFnZSdzIHJlYWwgYm94KS5cbi5kbXMtaWRvYy1pbWctd3JhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vLyBUaGUgJSBTSVpFIG5vdyBsaXZlcyBvbiB0aGUgV1JBUCAoYmVsb3cpLCBub3Qgb24gPGltZz4gaXRzZWxmIOKAlCA8aW1nPlxuLy8gYWx3YXlzIGZpbGxzIGl0cyB3cmFwIGF0IHdpZHRoOjEwMCUuIFRoaXMgc2lkZXN0ZXBzIHRoZSBjbGFzc2ljXG4vLyBcInBlcmNlbnRhZ2Ugd2lkdGggaW5zaWRlIGEgc2hyaW5rLXRvLWZpdCBib3hcIiBjaXJjdWxhci1zaXppbmcgcHJvYmxlbSBhXG4vLyB3cmFwLXNocmlua3MtdG8taXRzLWltYWdlIGRlc2lnbiB3b3VsZCBoaXQsIHdoaWxlIHN0aWxsIGd1YXJhbnRlZWluZ1xuLy8gd3JhcCdzIGJveCA9PSBpbWFnZSdzIHJlbmRlcmVkIGJveCAod2FzIGBtYXgtd2lkdGg6MTAwJWAgd2l0aCBubyB3aWR0aCDigJRcbi8vIGhhcm1sZXNzIGJlZm9yZSBob3RzcG90cyBleGlzdGVkLCBidXQgbGV0IGEgc21hbGwgc291cmNlIGltYWdlIHJlbmRlclxuLy8gc21hbGxlciB0aGFuIGl0cyB3b3VsZC1iZSB3cmFwLCB3aGljaCBpcyBleGFjdGx5IHdoYXQgbXVzdCBOT1QgaGFwcGVuIG5vdykuXG4uZG1zLWlkb2MtaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vLyBQV0EgZmFzZSAxICgwNS4wOC4yMDI2KSDigJQgYW4gaW1hZ2Ugd2hvc2UgYnl0ZXMgYXJlIG5vdCB0aGVyZSAoeWV0KS5cbi8vXG4vLyBUaGUgYXBwIHJlc29sdmVzIGVhY2ggaW1hZ2UgaXRzZWxmIChvcHRzLmFzc2V0UmVzb2x2ZXIpIGluc3RlYWQgb2YgbGV0dGluZyB0aGVcbi8vIGJyb3dzZXIgbG9hZCBhIFVSTCwgc28gYmV0d2VlbiByZW5kZXIgYW5kIHJlc29sdmUgdGhlcmUgaXMgbm90aGluZyB0byBzaG93LlxuLy8gV2l0aG91dCBhIHJlc2VydmVkIGJveCB0aGUgZWxlbWVudCBpcyAwcHggaGlnaCBhbmQgdGhlIHdob2xlIGRvY3VtZW50IGp1bXBzXG4vLyBkb3duIHRoZSBtb21lbnQgZWFjaCBpbWFnZSBsYW5kcyDigJQgdGhlIHdvcnN0IGtpbmQgb2YgcmVhZGluZyBleHBlcmllbmNlIG9uIGFcbi8vIHBob25lLCB3aGVyZSB0aGUgcmVhZGVyIGlzIHVzdWFsbHkgbWlkLXNjcm9sbC4gVGhpcyBkYXNoZWQgYm94IGhvbGRzIHRoZSBzcGFjZVxuLy8gYW5kIHJlYWRzIGFzIFwic29tZXRoaW5nIGJlbG9uZ3MgaGVyZVwiLlxuLy9cbi8vIGAtYXdhaXRgIGlzIHNldCBieSB0aGUgcmVuZGVyZXIgYW5kIGNsZWFyZWQgYnkgdGhlIGhvc3Qgb25jZSB0aGUgcmVhbCBzcmMgaXMgaW47XG4vLyBgLWZhaWxlZGAgaXMgdGhlIGVuZCBzdGF0ZSwgZ2V6ZXQgZG9vciBkZSBob3N0IE9GIGRvb3IgZGUgcmVuZGVyZXIgemVsZiAoZGVcbi8vIGBlcnJvcmAtbGlzdGVuZXIgaW4gcmVzb2x2ZUltYWdlU3JjKS4gT25lIHVucmVhY2hhYmxlIGltYWdlIG11c3QgbmV2ZXIgdGFrZSB0aGVcbi8vIHByb3RvY29sIGRvd24gd2l0aCBpdCwgc28gdGhlIGJsb2NrIGtlZXBzIGl0cyBib3ggYW5kIGl0cyBjYXB0aW9uLiBTaW5kc1xuLy8gMDYuMDguMjAyNiBrcmlqZ2VuIFVSTC1ob3N0cyAoYmFja29mZmljZSB2aWV3ZXIsIGVkaXRvciBwcmV2aWV3LCBnZWRlZWxkZSBwYWdpbmEpXG4vLyBgLWZhaWxlZGAgw7PDs2s6IGVlbiA0MDQgb3AgZGUgVVJMIGlzIHZvb3IgZGUgbGV6ZXIgaGV0emVsZmRlIHByb2JsZWVtIGFscyBlZW5cbi8vIG1pc2x1a3RlIGZldGNoIGluIGRlIGFwcCwgZW4gaGV0IHVpdGxlZy12YWsgaG9vcnQgZGFuIG5ldCB6byBnb2VkIHRlIHZlcnNjaGlqbmVuLlxuLy8gQSBGSVhFRCBoZWlnaHQsIG5vdCBtaW4taGVpZ2h0OiB0aGUgcGxhY2Vob2xkZXIgaXMgYSAxeDEgcGl4ZWwsIHNvIGBoZWlnaHQ6YXV0b2Bcbi8vIG9uIGEgMTAwJS13aWRlIDxpbWc+IG1ha2VzIHRoZSBib3ggZXhhY3RseSBhcyB0YWxsIGFzIGl0IGlzIHdpZGUg4oCUIGEgMjEycHggZW1wdHlcbi8vIHNxdWFyZSBvbiBhIHBob25lIChtZWFzdXJlZCkuIDE2MHB4IGlzIGEgcHJlZGljdGFibGUsIHBob3RvLXNoYXBlZCByZXNlcnZhdGlvbi5cbi8vXG4vLyBUaGUganVtcCB3aGVuIHRoZSByZWFsIGltYWdlIGxhbmRzIGlzIG5vdCBmdWxseSBhdm9pZGFibGUgdG9kYXk6IHRoZSBibG9ja3MgSlNPTlxuLy8gY2FycmllcyBubyB3aWR0aC9oZWlnaHQgZm9yIGFuIGFzc2V0LCBzbyBub3RoaW5nIGNhbiByZXNlcnZlIHRoZSBSSUdIVCBoZWlnaHQgaW5cbi8vIGFkdmFuY2UuIFN0b3JpbmcgdGhlIGRpbWVuc2lvbnMgYXQgdXBsb2FkIHRpbWUgd291bGQgZml4IHRoYXQgcHJvcGVybHkuXG4vLyBXQUNIVEVOIEVOIFNUVUsgWkFHRU4gRVIgVE9UIDA2LjA4LjIwMjYgSEVUWkVMRkRFIFVJVDogYWxsZWJlaSBkaXQgZ3JpanplIHZha1xuLy8gbWV0IHN0cmVlcGplc3JhbmQsIHpvbmRlciBpY29vbiBlbiB6b25kZXIgdGVrc3QuIEVlbiBsZXplciBrb24gZHVzIG5pZXQgemllbiBvZlxuLy8gaGlqIG1vZXN0IHdhY2h0ZW4gb2YgZGF0IGVyIGlldHMgbWlzIHdhcy4gTnUgZHJhYWd0IGAtYXdhaXRgIGVlbiBydXN0aWdlXG4vLyBnbGFucy1hbmltYXRpZSAoZXIga29tdCBub2cgaWV0cykgZW4gdmVyZHdpam50IGAtZmFpbGVkYCBoZWxlbWFhbCB0ZW4gZ3Vuc3RlIHZhblxuLy8gaGV0IHVpdGxlZy12YWsgaGllcm9uZGVyLiBbS2ltcyBiZXNsdWl0IDA2LjA4LjIwMjZdXG4uZG1zLWlkb2MtaW1nLWF3YWl0IHtcbiAgICBoZWlnaHQ6IDE2MHB4O1xuICAgIGJhY2tncm91bmQ6ICNmNGY0ZmE7XG4gICAgYm9yZGVyOiAxcHggZGFzaGVkICNkN2Q4ZWM7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAvLyBEZSBnbGFucyBsb29wdCBvdmVyIGhldCB2YWsgaGVlbjogZGl0IGlzIGRlIGVuaWdlIGJld2VnaW5nIG9wIGRlIHBhZ2luYSwgZHVzXG4gICAgLy8gaGlqIGxlZXN0IGFscyBcImhpZXIgd29yZHQgYWFuIGdld2Vya3RcIiB6b25kZXIgZGUgYWFuZGFjaHQgb3AgdGUgZWlzZW4uXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDI1NSwyNTUsMjU1LDApIDAlLCByZ2JhKDI1NSwyNTUsMjU1LC44NSkgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LDApIDEwMCUpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiA0MCUgMTAwJTtcbiAgICBhbmltYXRpb246IGRtcy1pZG9jLWltZy1zaGltbWVyIDEuNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgZG1zLWlkb2MtaW1nLXNoaW1tZXIge1xuICAgIGZyb20geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjAlIDA7IH1cbiAgICB0byAgIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTYwJSAwOyB9XG59XG5cbi8vIFdpZSBiZXdlZ2luZyBsaWV2ZXIgbmlldCB6aWV0LCBrcmlqZ3QgaGVtIG5pZXQuIEhldCB2YWsgemVsZiBibGlqZnQgc3RhYW4sIGR1cyBkZVxuLy8gcnVpbXRlIHdvcmR0IG5vZyBzdGVlZHMgZ2VyZXNlcnZlZXJkIChXQ0FHIDIuMy4zIC8gcHJlZmVycy1yZWR1Y2VkLW1vdGlvbikuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5kbXMtaWRvYy1pbWctYXdhaXQgeyBhbmltYXRpb246IG5vbmU7IH1cbn1cblxuLy8gRGUgPGltZz4gemVsZiBnYWF0IFdFRyBhbHMgaGlqIG1pc2x1a3QgaXM6IGFuZGVycyB6aWUgamUgaGV0IGthcG90dGUtcGxhYXRqZS1pY29vblxuLy8gdmFuIGRlIGJyb3dzZXIgcGx1cyBkZSBhbHQtdGVrc3QsIGVuIGRpZSBhbHQgaXMgYmlqIG9ucyBoZXQgYmlqc2NocmlmdCDigJQgZGF0IHN0b25kXG4vLyBlciBkYW4gdHdlZSBrZWVyIChwcmVjaWVzIHdhdCBlciBvcCAwNi4wOC4yMDI2IGluIGRlIGFwcCB0ZSB6aWVuIHdhcykuXG4uZG1zLWlkb2MtaW1nLWZhaWxlZCB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLmRtcy1pZG9jLWltZy1mYWxsYmFjayB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLy8gQWxsZWVuIHppY2h0YmFhciBkaXJlY3QgYWNodGVyIGVlbiBtaXNsdWt0ZSBhZmJlZWxkaW5nLiBaZWxmZGUgYWZtZXRpbmcgYWxzIGhldFxuLy8gd2FjaHQtdmFrLCB6b2RhdCBkZSBwYWdpbmEgbmlldCB2ZXJzcHJpbmd0IHR1c3NlbiBkZSB0d2VlIHN0YW5kZW4uXG4uZG1zLWlkb2MtaW1nLWZhaWxlZCArIC5kbXMtaWRvYy1pbWctZmFsbGJhY2sge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGhlaWdodDogMTYwcHg7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjRmNGZhO1xuICAgIGJvcmRlcjogMXB4IGRhc2hlZCAjZDdkOGVjO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGNvbG9yOiAjNmI2ODg0O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmRtcy1pZG9jLWltZy1mYWxsYmFjay10ZXh0IHtcbiAgICBmb250LXNpemU6IC44NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIG1heC13aWR0aDogMjRlbTtcbn1cblxuLmRtcy1pZG9jLWltZy1mYWxsYmFjay1yZXRyeSB7XG4gICAgZm9udDogaW5oZXJpdDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogLjg1cmVtO1xuICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q3ZDhlYztcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBwYWRkaW5nOiA2cHggMTRweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogI2YwZjBmODsgfVxuICAgICY6YWN0aXZlIHsgdHJhbnNmb3JtOiBzY2FsZSguOTcpOyB9XG59XG5cbi8vIFpvbGFuZyBlciBnZWVuIGFmYmVlbGRpbmcgSVMsIHdpanplbiBkZSBib2xsZXRqZXMgbmVyZ2VucyBuYWFyOiB6ZSBzdGFhbiBkYW4gb3Bcbi8vIHBlcmNlbnRhZ2VzIHZhbiBlZW4gbGVlZyB2YWsgZW4ga2xpdHRlbiBzYW1lbiBpbiBlZW4gaG9layAodGUgemllbiBvcCBLaW1zXG4vLyBzY3JlZW5zaG90IHZhbiAwNi4wOC4yMDI2KS4gVmVyYmVyZ2VuIHRvdCBoZXQgcGxhYXRqZSBlciBpcy4gV2Vya3QgbWV0IH4gb21kYXQgZGVcbi8vIG1hcmtlcnMgbmEgZGUgPGltZz4gaW4gZGV6ZWxmZGUgd3JhcCBoYW5nZW4uXG4uZG1zLWlkb2MtaW1nLWF3YWl0IH4gLmRtcy1pZG9jLWhvdHNwb3QsXG4uZG1zLWlkb2MtaW1nLWZhaWxlZCB+IC5kbXMtaWRvYy1ob3RzcG90LFxuLmRtcy1pZG9jLWltZy1hd2FpdCB+IC5kbXMtaWRvYy1ob3RzcG90LXBvcCxcbi5kbXMtaWRvYy1pbWctZmFpbGVkIH4gLmRtcy1pZG9jLWhvdHNwb3QtcG9wIHsgZGlzcGxheTogbm9uZTsgfVxuXG4uZG1zLWlkb2MtaW1nLWxhcmdlIC5kbXMtaWRvYy1pbWctd3JhcCB7IHdpZHRoOiAxMDAlOyB9XG4uZG1zLWlkb2MtaW1nLW1lZGl1bSAuZG1zLWlkb2MtaW1nLXdyYXAgeyB3aWR0aDogNjAlOyB9XG4uZG1zLWlkb2MtaW1nLXNtYWxsIC5kbXMtaWRvYy1pbWctd3JhcCB7IHdpZHRoOiAzMyU7IG1pbi13aWR0aDogMTYwcHg7IH1cblxuLmRtcy1pZG9jLWNhcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogLjgycmVtO1xuICAgIGNvbG9yOiAjNmI2ODg0O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmRtcy1pZG9jLWJsb2NrLXZpZGVvIHsgZGlzcGxheTogZmxleDsgfVxuXG4vLyBDU1AgZnJhbWUtc3JjIGRvZXMgbm90IGFsbG93IHlvdXR1YmUuY29tLCBzbyBhbiA8aWZyYW1lPiBlbWJlZCBpcyBibG9ja2VkXG4vLyBvdXRyaWdodCDigJQgYSBsaW5rLW91dCBjYXJkIGlzIHJlbmRlcmVkIGluc3RlYWQgKHNlZSBkbXMtaWRvYy1yZW5kZXIuanMnc1xuLy8gJ3ZpZGVvJyBicmFuY2gpLlxuLmRtcy1pZG9jLXZpZGVvLWxpbmsge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIHBhZGRpbmc6IDEycHggMThweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlMmYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjdmN2ZiO1xuICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogLjlyZW07XG5cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogI2VkZWVmYjsgfVxuXG4gICAgcWRuYXByby1pY29uIHsgY29sb3I6ICNmZjAwMDA7IGZsZXg6IDAgMCBhdXRvOyB9XG59XG5cbi8vIFRoZSB0YWJsZSBzY3JvbGxzIElOU0lERSB0aGlzIHdyYXBwZXIg4oCUIHRoZSBwYWdlIGFyb3VuZCBpdCBuZXZlciBtb3Zlc1xuLy8gc2lkZXdheXMuIGBwb3NpdGlvbjogcmVsYXRpdmVgIGlzIHdoYXQgdGhlIGZhc2UtMS1QV0EgZWRnZSBoaW50IGJlbG93IGFuY2hvcnNcbi8vIHRvOyBgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmdgIGdpdmVzIGlPUyBpdHMgbW9tZW50dW0gc2Nyb2xsIChhIHByb3RvY29sXG4vLyB0YWJsZSBvbiBhIHBob25lIGlzIGRyYWdnZWQgYSBsb3QpLlxuLmRtcy1pZG9jLXRhYmxlLXdyYXAge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuLy8gYGJvcmRlci1jb2xsYXBzZTogU0VQQVJBVEVgIHdpdGggemVybyBzcGFjaW5nLCBub3QgYGNvbGxhcHNlYCDigJQgYW5kIHRoaXMgaXMgYVxuLy8gY29ycmVjdG5lc3MgcmVxdWlyZW1lbnQsIG5vdCBhIHN0eWxlIHByZWZlcmVuY2UuXG4vL1xuLy8gV2l0aCBgY29sbGFwc2VgLCBhIHRhYmxlJ3MgYmFja2dyb3VuZHMgYXJlIHBhaW50ZWQgaW4gb25lIGZpeGVkIG9yZGVyICh0YWJsZSDihpJcbi8vIGNvbHVtbiDihpIgcm93LWdyb3VwIOKGkiByb3cg4oaSIGNlbGwpIGFuZCBhIGNlbGwncyBgei1pbmRleGAgZG9lcyBOT1QgbGlmdCBpdCBvdXQgb2Zcbi8vIHRoYXQgb3JkZXIuIFNvIGEgYHBvc2l0aW9uOiBzdGlja3lgIGZpcnN0IGNvbHVtbiBwYWludHMgaXRzIGJhY2tncm91bmQgYXQgY2VsbFxuLy8gbGV2ZWwsIGFuZCB0aGVuIHRoZSBURVhUIG9mIGV2ZXJ5IGxhdGVyIGNlbGwgaW4gdGhlIHNhbWUgcm93IHBhaW50cyBvbiB0b3Agb2Zcbi8vIGl0LiBNZWFzdXJlZCBvbiBhIDM5MHB4IHBob25lICgwNS4wOC4yMDI2KTogZHJhZ2dpbmcgdGhlIHRhYmxlIHNpZGV3YXlzIHNtZWFyZWRcbi8vIHRoZSB3YW5kZXJpbmcgY29sdW1ucycgbGV0dGVycyBzdHJhaWdodCBhY3Jvc3MgdGhlIHBpbm5lZCBjb2x1bW4g4oCUIHRoZSBwaW5uZWRcbi8vIGNvbHVtbiBsb29rZWQgY29ycnVwdGVkLCBleGFjdGx5IHdoZXJlIHRoZSByZWFkZXIgbmVlZHMgaXQgdG8gYmUgdHJ1c3R3b3J0aHkuXG4vLyBgc2VwYXJhdGVgIHJlc3RvcmVzIG5vcm1hbCBzdGFja2luZywgc28gYHotaW5kZXg6IDFgIG9uIHRoZSBzdGlja3kgY2VsbCBtZWFuc1xuLy8gd2hhdCBpdCBzYXlzLlxuLy9cbi8vIFRoZSBjb3N0IG9mIGBzZXBhcmF0ZWAgaXMgdGhlIGNsYXNzaWMgZG91YmxlIGJvcmRlciwgd2hpY2ggaXMgd2h5IHRoZSBncmlkIGlzXG4vLyBidWlsdCBmcm9tIE9ORSBlZGdlIHBlciBjZWxsIChyaWdodCArIGJvdHRvbSkgcGx1cyB0aGUgdGFibGUncyBvd24gbGVmdCArIHRvcC5cbi8vIFRoYXQgeWllbGRzIGV4YWN0bHkgMXB4IGV2ZXJ5d2hlcmUsIHZpc3VhbGx5IGlkZW50aWNhbCB0byB0aGUgb2xkIGNvbGxhcHNlZFxuLy8gZ3JpZCwgd2l0aCBubyBkb3VibGVkIGxpbmVzIOKAlCB2ZXJpZmllZCBpbiB0aGUgYnJvd3Nlciwgbm90IGFzc3VtZWQuXG4uZG1zLWlkb2MtdGFibGUge1xuICAgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTJlMmYwO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTJlMmYwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogLjg4cmVtO1xuXG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlMmUyZjA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTJlMmYwO1xuICAgICAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICB9XG5cbiAgICB0aCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmNGY0ZmE7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGNvbG9yOiAjMjMyNTNhO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBQV0EgZmFzZSAxLCBLaW1zIGJlc2x1aXQgMiB2YW4gMDUuMDguMjAyNiDigJQgYSB0b28td2lkZSB0YWJsZSBTQ1JPTExTIHdpdGggaXRzXG4vLyBGSVJTVCBDT0xVTU4gUElOTkVELCBhbmQgaXMgbmV2ZXIgcmVmbG93ZWQgaW50byBsYWJlbC92YWx1ZSBjYXJkcy4gUmVhc29uXG4vLyAoU0NPUEUtcHdhLWludGVyYWN0aWV2ZS1kb2N1bWVudGVuLm1kIMKnNS4zKTogaW4gYSBjYXJlIHByb3RvY29sIHRoZSBjb2x1bW5cbi8vIHN0cnVjdHVyZSBJUyB0aGUgbWVhbmluZyAoXCJhdCB0aGlzIHZhbHVlLCBkbyB0aGlzXCIpLCBhbmQgY2FyZHMgZGVzdHJveSB0aGVcbi8vIHJlbGF0aW9uc2hpcCBCRVRXRUVOIHJvd3Mg4oCUIHlvdSBjYW4gbm8gbG9uZ2VyIGNvbXBhcmUgdHdvIHJvd3MgYXQgYSBnbGFuY2UuXG4vLyBQaW5uaW5nIHRoZSBmaXJzdCBjb2x1bW4gaXMgd2hhdCBrZWVwcyBcIndoaWNoIHJvdyBhbSBJIHJlYWRpbmdcIiBhbnN3ZXJhYmxlXG4vLyB3aGlsZSB0aGUgcmVhZGVyIGRyYWdzIHRoZSByZXN0IG9mIHRoZSB0YWJsZSBwYXN0IGl0LlxuLy9cbi8vIERlbGliZXJhdGVseSBHTE9CQUwsIG5vdCBhcHAtb25seTogdGhpcyBzYW1lIHN0eWxlc2hlZXQgZHJlc3NlcyB0aGUgYmFja29mZmljZVxuLy8gdmlld2VyIGFuZCB0aGUgZWRpdG9yJ3MgbGl2ZSBwcmV2aWV3LCBzbyBhIG5hcnJvdyB3aW5kb3cgdGhlcmUgbm93IGJlaGF2ZXNcbi8vIGV4YWN0bHkgbGlrZSBhIHBob25lLiBUaGF0IGlzIHRoZSBwb2ludCDigJQgdGhlIGF1dGhvciBzZWVzIHdoYXQgdGhlIHJlYWRlciBnZXRzXG4vLyAoc2FtZSBvbmUtYmVoYXZpb3VyLWV2ZXJ5d2hlcmUgbGluZSBLaW1zIGJlc2x1aXQgMSBkcmF3cyBmb3IgdmlkZW8pLlxuLy9cbi8vIFRoZSBwaW5uZWQgY29sdW1uIGtlZXBzIGl0cyBvd24gcmVhbCBgYm9yZGVyLXJpZ2h0YCAoc2VlIHRoZSBgc2VwYXJhdGVgIG5vdGUgb25cbi8vIC5kbXMtaWRvYy10YWJsZSBhYm92ZSDigJQgdGhhdCBpcyB3aGF0IG1ha2VzIGJvdGggdGhlIGJvcmRlciBBTkQgdGhlIHotaW5kZXhcbi8vIGJlaGF2ZSBoZXJlKSwgc28gbm8gYm94LXNoYWRvdyBzdWJzdGl0dXRlIGlzIG5lZWRlZC5cbi5kbXMtaWRvYy10YWJsZS13cmFwIHtcbiAgICB0aDpmaXJzdC1jaGlsZCxcbiAgICB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIC8vIE11c3QgYmUgT1BBUVVFIOKAlCB0aGUgc2Nyb2xsaW5nIGNlbGxzIHBhc3MgdW5kZXJuZWF0aCB0aGlzIG9uZS5cbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICB9XG5cbiAgICAvLyBBIGhlYWRlciBjZWxsIGtlZXBzIGl0cyBvd24gZGFya2VyIGZpbGw7IGl0IHdvdWxkIG90aGVyd2lzZSBpbmhlcml0IHRoZVxuICAgIC8vIHdoaXRlIGFib3ZlIGFuZCByZWFkIGFzIGEgYm9keSBjZWxsLlxuICAgIHRoOmZpcnN0LWNoaWxkIHsgYmFja2dyb3VuZDogI2Y0ZjRmYTsgfVxufVxuXG4vLyBcIlRoZXJlIGlzIG1vcmUgdG8gdGhlIHJpZ2h0XCIg4oCUIHRoZSB0YWJsZSdzIHJpZ2h0IGVkZ2UgZmFkZXMgb3V0IHdoaWxlIHRoZXJlIGlzXG4vLyBzdGlsbCB0YWJsZSB0byBkcmFnIGludG8gdmlldy4gU2hvd24gT05MWSB3aGVuIHRoZSB0YWJsZSByZWFsbHkgZG9lcyBvdmVyZmxvdyxcbi8vIGFuZCBvbmx5IHVudGlsIHRoZSByZWFkZXIgaGFzIHJlYWNoZWQgdGhlIGVuZDsgdGhlIGNsYXNzZXMgY29tZSBmcm9tXG4vLyBkbXMtaWRvYy1yZW5kZXIuanMgKHdpcmVUYWJsZU92ZXJmbG93SGludHMpLCBiZWNhdXNlIENTUyBjYW5ub3Qga25vdyB3aGV0aGVyIGFcbi8vIGdpdmVuIHRhYmxlIGlzIHdpZGVyIHRoYW4gaXRzIHdyYXBwZXIuXG4vL1xuLy8gQSBNQVNLLCBkZWxpYmVyYXRlbHksIGFuZCBOT1QgYW4gYWJzb2x1dGVseS1wb3NpdGlvbmVkIDo6YWZ0ZXIgb3ZlcmxheS4gVGhhdCB3YXNcbi8vIHRoZSBmaXJzdCBhdHRlbXB0IGFuZCBpdCBpcyBhIHRyYXA6IGFuIGFic29sdXRlbHktcG9zaXRpb25lZCBjaGlsZCBvZiBhIFNDUk9MTFxuLy8gQ09OVEFJTkVSIGlzIHBvc2l0aW9uZWQgYWdhaW5zdCB0aGF0IGNvbnRhaW5lcidzIHBhZGRpbmcgYm94LCB3aGljaCBtZWFucyBpdFxuLy8gU0NST0xMUyBBV0FZIFdJVEggVEhFIENPTlRFTlQg4oCUIG1lYXN1cmVkIG9uIGEgMzkwcHggcGhvbmUgKDA1LjA4LjIwMjYpLCB0aGUgZmFkZVxuLy8gc2F0IGF0IHRoZSBmYXIgZW5kIG9mIHRoZSB0YWJsZSB3aGVyZSBub2JvZHkgY291bGQgc2VlIGl0LCB3aGljaCBpcyB0aGUgZXhhY3Rcbi8vIG9wcG9zaXRlIG9mIHRoZSBpbnRlbnQuIEEgbWFzayBpcyBhcHBsaWVkIHRvIHRoZSBlbGVtZW50IGFzIHBhaW50ZWQsIHNvIGl0IHN0YXlzXG4vLyBwdXQgYXQgdGhlIHZpc2libGUgZWRnZSBubyBtYXR0ZXIgaG93IGZhciB0aGUgdGFibGUgaXMgZHJhZ2dlZC4gSXQgYWxzbyBjYW5ub3Rcbi8vIHN3YWxsb3cgYSB0b3VjaCBkcmFnLCB3aGljaCBhbiBvdmVybGF5IHdvdWxkIG5lZWQgcG9pbnRlci1ldmVudHM6bm9uZSB0byBhdm9pZC5cbi8vXG4vLyBUaGUgZmFkZSBnb2VzIHRvIFRSQU5TUEFSRU5UIHJhdGhlciB0aGFuIHdoaXRlLCBzbyBpdCB3b3JrcyBvbiBhbnkgcGFnZVxuLy8gYmFja2dyb3VuZCBpbnN0ZWFkIG9mIG9ubHkgdGhlIHdoaXRlIGRvY3VtZW50IHBhZ2UuXG4uZG1zLWlkb2MtdGFibGUtd3JhcC1vdmVyZmxvdzpub3QoLmRtcy1pZG9jLXRhYmxlLXdyYXAtYXRlbmQpIHtcbiAgICAtd2Via2l0LW1hc2staW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzAwMCBjYWxjKDEwMCUgLSAyOHB4KSwgdHJhbnNwYXJlbnQgMTAwJSk7XG4gICAgbWFzay1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMDAwIGNhbGMoMTAwJSAtIDI4cHgpLCB0cmFuc3BhcmVudCAxMDAlKTtcbn1cblxuLmRtcy1pZG9jLWVtcHR5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgY29sb3I6ICM4YThmYjU7XG4gICAgcGFkZGluZzogNDBweCAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBGYXNlIDIg4oCUIGNvbmRpdGlvbmFsaXR5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gQSBjb25kaXRpb25hbGx5LWhpZGRlbiBibG9jay4gYCFpbXBvcnRhbnRgIG1hdGNoZXMgdGhlIGhvdXNlIGNvbnZlbnRpb24gZm9yXG4vLyB0aGlzIGV4YWN0IGtpbmQgb2YgSlMtdG9nZ2xlZCB2aXNpYmlsaXR5IGNsYXNzIChzZWUgZS5nLiAjZG1zLXZpZXdlcltoaWRkZW5dXG4vLyBpbiB2aWV3ZXIuaHRtbCkg4oCUIG5vdGhpbmcgZWxzZSBzaG91bGQgZXZlciBuZWVkIHRvIG91dC1zcGVjaWZpY2l0eSB0aGlzLlxuLmRtcy1pZG9jLWhpZGRlbiB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uZG1zLWlkb2MtYmxvY2stY2hvaWNlIHsgbWluLXdpZHRoOiAwOyB9XG5cbi5kbXMtaWRvYy1jaG9pY2UtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS4wNXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbjogMCAwIDEycHg7XG4gICAgY29sb3I6ICMyMzI1M2E7XG59XG5cbi5kbXMtaWRvYy1jaG9pY2Utb3B0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IC8vICdhdXRvJyBBTkQgJ2hvcml6b250YWwnIGJvdGggd3JhcCAobmV2ZXIgaG9yaXpvbnRhbC1zY3JvbGwpXG4gICAgZ2FwOiAxMHB4O1xufVxuXG4uZG1zLWlkb2MtY2hvaWNlLW9wdGlvbnMtdmVydGljYWwge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi5kbXMtaWRvYy1jaG9pY2UtYnRuIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkN2Q4ZWM7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICNlZGVlZmI7IC8vIHVuc2VsZWN0ZWQg4oCUIGxpZ2h0IGxhdmVuZGVyLCBkYXJrIHRleHRcbiAgICBjb2xvcjogIzIzMjUzYTtcbiAgICBmb250LXNpemU6IC44OHJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHBhZGRpbmc6IDEwcHggMThweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4xNXMgZWFzZSwgYm9yZGVyLWNvbG9yIC4xNXMgZWFzZSwgY29sb3IgLjE1cyBlYXNlO1xuXG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6ICNkZmUwZjc7IH1cblxuICAgICYuZG1zLWlkb2MtY2hvaWNlLWJ0bi1zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICM0MDQ5OWE7IC8vIHNlbGVjdGVkIOKAlCBmaWxsZWQgYnJhbmQgcHVycGxlLCB3aGl0ZSB0ZXh0XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzQwNDk5YTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG5cbiAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6ICMzMzNhODA7IH1cbiAgICB9XG59XG5cbi8vIC0tLS0gdGFibGUgb2YgY29udGVudHMgKG9wdHMudG9jKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEEgLmRtcy1pZG9jLXNoZWxsIHdyYXBzIFsuZG1zLWlkb2MtdG9jLCAuZG1zLWlkb2MtbWFpbiA+IC5kbXMtaWRvYy1wYWdlXSB3aGVuXG4vLyB0aGUgaG9zdCBhc2tzIGZvciBhIFRPQzsgd2l0aG91dCBpdCwgLmRtcy1pZG9jLXBhZ2UgaXMgYXBwZW5kZWQgZGlyZWN0bHlcbi8vIChmYXNlIDAvMSBiZWhhdmlvdXIsIHVudG91Y2hlZCkgYW5kIG5vbmUgb2YgdGhlc2UgcnVsZXMgYXBwbHkuXG5cbi5kbXMtaWRvYy1zaGVsbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7ICAgIC8vIGxldHMgdGhlIFRPQyArIHBhZ2Ugd3JhcCBvbnRvIHNlcGFyYXRlIGxpbmVzIChzdGFjaylcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gdGhlIENPTlRBSU5FUiBpcyBuYXJyb3cg4oCUIHNlZSB0aGUgQGNvbnRhaW5lciBiZWxvdy5cbiAgICBnYXA6IDIwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMTIwcHg7IC8vIDg4MCAocGFnZSkgKyB0aGUgdG9jIGNvbHVtbiArIGdhcCDigJQga2VlcHMgdGhlIHBhaXJcbiAgICBtYXJnaW46IDAgYXV0bzsgICAgIC8vIGNlbnRlcmVkIHRoZSBzYW1lIHdheSB0aGUgbG9uZSBwYWdlIHVzZWQgdG8gYmVcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC8vIFF1ZXJ5IFRISVMgc2hlbGwncyBvd24gd2lkdGggKG5vdCB0aGUgdmlld3BvcnQpOiB0aGUgbW9iaWxlLXByZXZpZXcgZGV2aWNlXG4gICAgLy8gZnJhbWUgKyB0aGUgZ2VudWluZSBuYXJyb3cgdmlld2VyIGFyZSBib3RoIG5hcnJvdyBDT05UQUlORVJTIGluc2lkZSBhIHdpZGVcbiAgICAvLyB3aW5kb3csIHNvIGEgdmlld3BvcnQgQG1lZGlhIG5ldmVyIGZpcmVkIGZvciB0aGVtICh0aGUgVE9DIG92ZXJsYXBwZWQgdGhlXG4gICAgLy8gcGFnZSBvbiBtb2JpbGUg4oCUIEphbiAyMDI2LTA3LTIxKS4gY29udGFpbmVyLXR5cGUgbWFrZXMgdGhlIGNoaWxkcmVuIGJlbG93XG4gICAgLy8gcmVmbG93IG9uIHRoZSBzaGVsbCdzIHJlYWwgd2lkdGggaW5zdGVhZC5cbiAgICBjb250YWluZXItdHlwZTogaW5saW5lLXNpemU7XG4gICAgLy8gVW5jb25kaXRpb25hbCAoTk9UIGluc2lkZSB0aGUgQGNvbnRhaW5lciBibG9jayBiZWxvdykg4oCUIGEgY29udGFpbmVyXG4gICAgLy8gcXVlcnkgcnVsZSBjYW4gbmV2ZXIgc3R5bGUgdGhlIENPTlRBSU5FUiBlbGVtZW50IGl0c2VsZiBiYXNlZCBvbiBpdHNcbiAgICAvLyBvd24gcXVlcnkgKHRoYXQgd291bGQgYmUgY2lyY3VsYXIpLCBzbyBgcG9zaXRpb25gIEhBUyB0byBsaXZlIGhlcmUgdG9cbiAgICAvLyBhY3R1YWxseSB0YWtlIGVmZmVjdCBmb3IgdGhlIG5hcnJvdy1kcmF3ZXIgcmVkZXNpZ24gKGZvdW5kIGVtcGlyaWNhbGx5XG4gICAgLy8gMjAyNi0wNy0yMjogcHV0dGluZyBpdCBpbnNpZGUgQGNvbnRhaW5lciBzaWxlbnRseSBuby1vcCdkIG9uXG4gICAgLy8gLmRtcy1pZG9jLXNoZWxsLCBldmVuIHRob3VnaCB0aGUgU0FNRSBibG9jayBjb3JyZWN0bHkgc3R5bGVkXG4gICAgLy8gLmRtcy1pZG9jLXRvYywgYSBkZXNjZW5kYW50KS5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLy8g4pqg77iPIGBvdmVyZmxvdzogY2xpcGAgb24gQk9USCBheGVzLCBOT1QgYG92ZXJmbG93LXg6IGhpZGRlbmAgYWxvbmUuXG4gICAgLy8gU2V0dGluZyBvbmx5IG92ZXJmbG93LXggZm9yY2VzIHRoZSBPVEhFUiBheGlzJ3MgY29tcHV0ZWQgdmFsdWUgZnJvbVxuICAgIC8vIGB2aXNpYmxlYCB0byBgYXV0b2AgKGEgcmVhbCBDU1MgcnVsZSDigJQgdmVyaWZpZWQsIG5vdCBhc3N1bWVkKSDigJQgdGhhdFxuICAgIC8vIHNpbGVudGx5IHR1cm5lZCAuZG1zLWlkb2Mtc2hlbGwgaW50byBhbiAoaW52aXNpYmxlLCBub3RoaW5nLWFjdHVhbGx5LVxuICAgIC8vIG92ZXJmbG93cykgU0NST0xMIENPTlRBSU5FUiwgd2hpY2ggYnJva2UgYC5kbXMtaWRvYy10b2NgJ3NcbiAgICAvLyBgcG9zaXRpb246c3RpY2t5YCBpbiB3aWRlIG1vZGU6IHN0aWNreSBzdGFydGVkIHRyYWNraW5nIFRISVNcbiAgICAvLyBub24tc2Nyb2xsaW5nIHNoZWxsIGFzIGl0cyBcIm5lYXJlc3Qgc2Nyb2xsaW5nIGFuY2VzdG9yXCIgaW5zdGVhZCBvZiB0aGVcbiAgICAvLyByZWFsIG9uZSBmdXJ0aGVyIHVwICh0aGUgdmlld2VyL3ByZXZpZXcncyBvd24gc2Nyb2xsIHdyYXBwZXIsIG9yIHRoZVxuICAgIC8vIHBhZ2UgaXRzZWxmKSwgc28gaXQgbmV2ZXIgc3R1Y2sgd2hpbGUgYWN0dWFsbHkgc2Nyb2xsaW5nIChKYW4sXG4gICAgLy8gMjAyNi0wNy0yMiDigJQgXCJUT0Mgc2Nyb2xsdCB3ZWVyIG1lZVwiLCBhIHJlYWwgcmVncmVzc2lvbiB0aGlzIGNhdXNlZCkuXG4gICAgLy8gYGNsaXBgIG9uIGJvdGggYXhlcyBzdGlsbCBjbGlwcyB0aGUgZHJhd2VyJ3Mgb2ZmLXNjcmVlbiB0cmFuc2xhdGVYIGluXG4gICAgLy8gbmFycm93IG1vZGUsIGJ1dCDigJQgdW5saWtlIGhpZGRlbi9hdXRvL3Njcm9sbCDigJQgbmV2ZXIgZXN0YWJsaXNoZXMgYVxuICAgIC8vIHNjcm9sbCBjb250YWluZXIsIHNvIHN0aWNreSBjb3JyZWN0bHkgc2VlcyBzdHJhaWdodCB0aHJvdWdoIHNoZWxsIHRvXG4gICAgLy8gdGhlIHJlYWwgc2Nyb2xsaW5nIGFuY2VzdG9yLlxuICAgIG92ZXJmbG93OiBjbGlwO1xufVxuXG4uZG1zLWlkb2MtbWFpbiB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8vIENlbnRlcmluZyBub3cgY29tZXMgZnJvbSAuZG1zLWlkb2MtbWFpbidzIGZsZXhib3gsIG5vdCB0aGUgcGFnZSdzIG93blxuLy8gYXV0by1tYXJnaW5zICh3aGljaCBzdGF5IGluIGVmZmVjdCDigJQgYW5kIGNvcnJlY3Qg4oCUIGZvciB0aGUgbm8tdG9jIGNhc2UpLlxuLmRtcy1pZG9jLW1haW4gLmRtcy1pZG9jLXBhZ2UgeyBtYXJnaW46IDA7IH1cblxuLmRtcy1pZG9jLXRvYyB7XG4gICAgZmxleDogMCAwIDIyMHB4O1xuICAgIHdpZHRoOiAyMjBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgLy8gYHRvcGAgb24gYSBzdGlja3kgZWxlbWVudCBpcyBOT1QgXCJvbmx5IGFwcGxpZWQgb25jZSB5b3Ugc2Nyb2xsIHBhc3RcbiAgICAvLyBpdFwiIOKAlCBpdCdzIEFMV0FZUyBhcHBsaWVkIHRvIHRoZSBlbGVtZW50J3Mgb3duIHN0YXRpYyBwb3NpdGlvbiAoc2FtZVxuICAgIC8vIGFzIHBvc2l0aW9uOnJlbGF0aXZlIHdvdWxkKSwgc28gYHRvcDoxNnB4YCBoZXJlIG1hZGUgdGhlIFRPQyByZW5kZXJcbiAgICAvLyAxNnB4IEJFTE9XIHRoZSBkb2N1bWVudCBjYXJkIG5leHQgdG8gaXQgZXZlbiBhdCByZXN0LCB1bnNjcm9sbGVkXG4gICAgLy8gKEphbiwgMjAyNi0wNy0yMiDigJQgY29uZmlybWVkIGJ5IG1lYXN1cmluZywgbm90IGFzc3VtZWQ6IDY0cHggdnMgdGhlXG4gICAgLy8gZG9jdW1lbnQncyA0OHB4KS4gYHRvcDowYCBtYWtlcyBpdCByZW5kZXIgZmx1c2ggd2l0aCBpdHMgbmF0dXJhbCBmbG93XG4gICAgLy8gcG9zaXRpb24g4oCUIGkuZS4gbGV2ZWwgd2l0aCAuZG1zLWlkb2MtbWFpbiDigJQgYW5kIGl0IHN0aWxsIHN0aWNrcyB0byB0aGVcbiAgICAvLyBzY3JvbGxpbmcgYW5jZXN0b3IncyB2ZXJ5IHRvcCBlZGdlIG9uY2Ugc2Nyb2xsZWQgdGhhdCBmYXIuXG4gICAgdG9wOiAwO1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlMmYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAzMnB4KTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDI0cHggcmdiYSgwLCAwLCAwLCAuMTgpO1xufVxuLmRtcy1pZG9jLXRvY1toaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfSAvLyBmdWxseSBlbXB0eSBUT0Mg4oCUIG5vIHBhbmVsIGF0IGFsbFxuXG4uZG1zLWlkb2MtdG9jLWhlYWRlciB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cblxuLmRtcy1pZG9jLXRvYy10b2dnbGUge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiA0cHggMnB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogIzQwNDk5YTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogLjgycmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wM2VtO1xuXG4gICAgcWRuYXByby1pY29uIHsgZmxleDogMCAwIGF1dG87IH1cbn1cblxuLmRtcy1pZG9jLXRvYy1saXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogOHB4IDAgMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbn1cblxuLmRtcy1pZG9jLXRvYy1pdGVtIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDZweCA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGZvbnQtc2l6ZTogLjg1cmVtO1xuICAgIGNvbG9yOiAjMzMzNDRhO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjZWRlZWZiOyBjb2xvcjogIzQwNDk5YTsgfVxufVxuXG4vLyBOYXJyb3ctZHJhd2VyLW9ubHkgY29udHJvbHMgKHRoZSBmbG9hdGluZyBvcGVuIGJ1dHRvbiArIHRoZSBkcmF3ZXIncyBvd25cbi8vIGNsb3NlL1gpIOKAlCBgZGlzcGxheTpub25lYCBieSBkZWZhdWx0IHNvIHRoZXkgbmV2ZXIgc2hvdyBvbiBhIHdpZGVcbi8vIGNvbnRhaW5lcjsgdGhlIEBjb250YWluZXIgYmxvY2sgYmVsb3cgdHVybnMgdGhlbSBvbi4gS2VwdCBhcyB0aGVpciBvd25cbi8vIHJ1bGVzIChub3QgbmVzdGVkIGluc2lkZSB0aGUgQGNvbnRhaW5lcikgb25seSBzbyB0aGUgXCJoaWRkZW4gZXZlcnl3aGVyZVxuLy8gZWxzZVwiIGRlZmF1bHQgaXMgdmlzaWJsZS9vYnZpb3VzIGF0IGEgZ2xhbmNlLlxuLmRtcy1pZG9jLXRvYy1mYWIgeyBkaXNwbGF5OiBub25lOyB9XG4uZG1zLWlkb2MtdG9jLWNsb3NlIHsgZGlzcGxheTogbm9uZTsgfVxuXG4vLyBOYXJyb3cgQ09OVEFJTkVSICh0aGUgc2hlbGwgaXRzZWxmIOKJpCA3NjBweCDigJQgbW9iaWxlLXByZXZpZXcgZnJhbWUgT1IgYSByZWFsXG4vLyBwaG9uZS13aWR0aCB2aWV3ZXIpLiBSRURFU0lHTkVEIDIwMjYtMDctMjIgKEphbjogXCJ1c2VyIGNvbnN0YW50bHkgaGFzIHRvXG4vLyBzY3JvbGwgYWxsIHRoZSB3YXkgdXAgdG8gcmVhY2ggdGhlIFRPQ1wiKSDigJQgdGhlIG9sZCBiZWhhdmlvdXIgc3RhY2tlZCBhXG4vLyBjb2xsYXBzaWJsZSBiYXIgQUJPVkUgdGhlIHBhZ2UsIHdoaWNoIHNjcm9sbGVkIGF3YXkgd2l0aCB0aGUgcmVzdCBvZiB0aGVcbi8vIGRvY3VtZW50LiBOb3cgdGhlIFRPQyBpcyBhIHNsaWRlLWluIERSQVdFUjogYSByb3VuZCBmbG9hdGluZyBidXR0b25cbi8vICh0b3AtbGVmdCwgYSBcInBzZXVkbyBoYW1idXJnZXIgbWVudVwiKSBvcGVucyBpdDsgdGhlIGRyYXdlciBzbGlkZXMgaW4gZnJvbVxuLy8gdGhlIGxlZnQgd2hpbGUgdGhlIGRvY3VtZW50IGlzIHB1c2hlZCB0byB0aGUgcmlnaHQgYnkgdGhlIHNhbWUgZGlzdGFuY2U7XG4vLyBhbiBYIGluc2lkZSB0aGUgZHJhd2VyIGNsb3NlcyBpdC4gQSBAY29udGFpbmVyIChub3QgQG1lZGlhKSBzbyBpdCBmaXJlcyBvblxuLy8gdGhlIHNoZWxsJ3MgcmVhbCB3aWR0aCByZWdhcmRsZXNzIG9mIHRoZSBzdXJyb3VuZGluZyB3aW5kb3cgKHRoZVxuLy8gZGV2aWNlLWZyYW1lLWluLWEtd2lkZS13aW5kb3cgY2FzZSwgZS5nLiB0aGUgZWRpdG9yJ3Mgb3duIE1vYmllbCBwcmV2aWV3KS5cbkBjb250YWluZXIgKG1heC13aWR0aDogNzYwcHgpIHtcbiAgICAvLyAuZG1zLWlkb2Mtc2hlbGwncyBvd24gcG9zaXRpb246cmVsYXRpdmUvb3ZlcmZsb3cteDpoaWRkZW4gbm93IGxpdmUgb24gaXRzXG4gICAgLy8gVU5DT05ESVRJT05BTCBiYXNlIHJ1bGUgYWJvdmUg4oCUIHNlZSB0aGF0IHJ1bGUncyBjb21tZW50IGZvciB3aHkuXG5cbiAgICAvLyBUaGUgZHJhd2VyLiBgcG9zaXRpb246Zml4ZWRgLCBOT1QgYWJzb2x1dGUg4oCUIEphbiAoMjAyNi0wNy0yMiwgY29uZmlybWVkXG4gICAgLy8gYnkgaGlzIG93biB0ZXN0aW5nKTogd2l0aCBgYWJzb2x1dGVgIChyZWxhdGl2ZSB0byAuZG1zLWlkb2Mtc2hlbGwsXG4gICAgLy8gd2hpY2ggc2l0cyBJTlNJREUgdGhlIHNhbWUgZGl2IHRoYXQgYWN0dWFsbHkgc2Nyb2xscyBpbiBldmVyeSBob3N0IOKAlFxuICAgIC8vIHRoZSBlZGl0b3IncyBgLmlkb2MtcHJldmlldy1zY3JvbGxgLCB0aGUgdmlld2VyJ3MgYC5kbXMtaWRvYy1zY3JvbGxgKSxcbiAgICAvLyB0aGUgb3BlbiBkcmF3ZXIgdmlzaWJseSBzY3JvbGxlZCBhd2F5IHRvZ2V0aGVyIHdpdGggdGhlIGRvY3VtZW50IOKAlFxuICAgIC8vIGV4YWN0bHkgdGhlIFwiaGF2ZSB0byBjaGFzZSBpdFwiIHByb2JsZW0gdGhpcyB3aG9sZSByZWRlc2lnbiBleGlzdHMgdG9cbiAgICAvLyBmaXgsIGp1c3QgbW92ZWQgZnJvbSB0aGUgY2xvc2VkLUZBQiBjYXNlIHRvIHRoZSBvcGVuLWRyYXdlciBjYXNlLlxuICAgIC8vIGBwb3NpdGlvbjpmaXhlZGAgaGVyZSB1c2VzIHRoZSBTQU1FIGVzY2FwZSBtZWNoYW5pc20gdGhlIGZsb2F0aW5nXG4gICAgLy8gb3Blbi1idXR0b24gKC5kbXMtaWRvYy10b2MtZmFiKSBhbHJlYWR5IHJlbGllcyBvbjogaW4gdGhlIGVkaXRvcidzIG93blxuICAgIC8vIE1vYmllbCBwcmV2aWV3IGl0IGdldHMgdHJhcHBlZCBieSBgLmlkb2MtcHJldmlldy1jb250YWluZXJgJ3NcbiAgICAvLyBgdHJhbnNmb3JtYCAoaW50ZXJhY3RpdmUtZWRpdG9yLmh0bWwpIHNvIGl0IHN0YXlzIHBpbm5lZCB0byB0aGF0XG4gICAgLy8gZGV2aWNlLWZyYW1lOyBpbiB0aGUgcmVhbCBETVMgdmlld2VyL3B1YmxpYyBzaGFyZSBwYWdlIHRoZXJlIGlzIG5vIHN1Y2hcbiAgICAvLyB0cmFwcGluZyBhbmNlc3Rvciwgc28gaXQgYW5jaG9ycyBzdHJhaWdodCB0byB0aGUgdHJ1ZSBicm93c2VyIHZpZXdwb3J0XG4gICAgLy8g4oCUIGltbXVuZSB0byBgLmRtcy1pZG9jLXNjcm9sbGAncyAob3IgdGhlIHBhZ2UncyBvd24pIHNjcm9sbGluZyBieVxuICAgIC8vIGRlZmluaXRpb24sIHdoaWNoIGlzIGV4YWN0bHkgXCJzdGF5cyBwdXRcIiBmb3IgdGhvc2UgdHdvIGhvc3RzLlxuICAgIC8vIFdpZHRoIGlzIGR1cGxpY2F0ZWQgKGlkZW50aWNhbCBleHByZXNzaW9uKSBvbiAuZG1zLWlkb2MtbWFpbidzXG4gICAgLy8gcHVzaC10cmFuc2Zvcm0gYmVsb3cg4oCUIGtlZXAgdGhlIHR3byBleHByZXNzaW9ucyBpbiBzeW5jIGlmIHRoaXMgZXZlclxuICAgIC8vIGNoYW5nZXMuXG4gICAgLmRtcy1pZG9jLXRvYyB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogbWluKDMwMHB4LCA4MiUpO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMjVzIGVhc2U7XG4gICAgICAgIHotaW5kZXg6IDU7IC8vIGFib3ZlIHRoZSAocHVzaGVkKSBkb2N1bWVudFxuICAgICAgICBib3gtc2hhZG93OiAwIDhweCAzMHB4IHJnYmEoMCwgMCwgMCwgLjI1KTsgLy8gZHJhd2VyIHNoYWRvdyBpbnN0ZWFkIG9mIHRoZSBvbGQgZmxvYXRpbmctcGFuZWwgc2hhZG93XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87IC8vIHRoZSBkcmF3ZXIgc2Nyb2xscyBpdHMgT1dOIChwb3NzaWJseSBsb25nKSBsaXN0IGluZGVwZW5kZW50bHkgb2YgdGhlIGRvY3VtZW50XG4gICAgfVxuICAgIC5kbXMtaWRvYy10b2MuZG1zLWlkb2MtdG9jLW9wZW4geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cblxuICAgIC5kbXMtaWRvYy10b2MtaGVhZGVyIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyAvLyB0aXRsZS90b2dnbGUgb24gdGhlIGxlZnQsIHRoZSBYIG9uIHRoZSByaWdodFxuICAgIH1cbiAgICAvLyBTaG93biBvbmx5IHdoaWxlIHRoZSBkcmF3ZXIgaXMgYWN0dWFsbHkgb3BlbiAoYSBwbGFpbiBkZXNjZW5kYW50IHNlbGVjdG9yIOKAlFxuICAgIC8vIC5kbXMtaWRvYy10b2MtY2xvc2UgbGl2ZXMgSU5TSURFIG5hdiwgdW5saWtlIHRoZSBGQUIgYmVsb3cpLlxuICAgIC5kbXMtaWRvYy10b2MuZG1zLWlkb2MtdG9jLW9wZW4gLmRtcy1pZG9jLXRvYy1jbG9zZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogIzZiNjg4NDtcbiAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG5cbiAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6ICNlZGVlZmI7IGNvbG9yOiAjNDA0OTlhOyB9XG4gICAgfVxuXG4gICAgLmRtcy1pZG9jLW1haW4ge1xuICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4yNXMgZWFzZTtcbiAgICB9XG4gICAgLy8gUHVzaGVzIHRoZSBkb2N1bWVudCByaWdodCBieSB0aGUgZHJhd2VyJ3Mgb3duIHdpZHRoIFdISUxFIGl0J3Mgb3BlbiDigJQgdGhlXG4gICAgLy8gYH5gIGdlbmVyYWwtc2libGluZyBjb21iaW5hdG9yIG1hdGNoZXMgLmRtcy1pZG9jLW1haW4gYmVjYXVzZSBpdCBjb21lc1xuICAgIC8vIEFGVEVSIC5kbXMtaWRvYy10b2MgaW4gRE9NIG9yZGVyIChzZWUgZG1zLWlkb2MtcmVuZGVyLmpzJ3MgcmVuZGVyKCkpLlxuICAgIC5kbXMtaWRvYy10b2MuZG1zLWlkb2MtdG9jLW9wZW4gfiAuZG1zLWlkb2MtbWFpbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChtaW4oMzAwcHgsIDgyJSkpO1xuICAgIH1cblxuICAgIC8vIFRoZSBmbG9hdGluZyBcIm9wZW5cIiBidXR0b24g4oCUIGEgU0lCTElORyBvZiAuZG1zLWlkb2MtdG9jIChub3QgYVxuICAgIC8vIGRlc2NlbmRhbnQpLCBzbyBpdCBzdGF5cyB2aXNpYmxlIHdoaWxlIHRoZSBkcmF3ZXIgaXRzZWxmIHNpdHNcbiAgICAvLyBvZmYtc2NyZWVuLiBgcG9zaXRpb246Zml4ZWRgIGhlcmUgaXMgcmVsYXRpdmUgdG8gdGhlIG5lYXJlc3QgYW5jZXN0b3JcbiAgICAvLyB0aGF0IGVzdGFibGlzaGVzIGEgY29udGFpbmluZyBibG9jayBmb3IgZml4ZWQtcG9zaXRpb24gZWxlbWVudHMgKHRoZVxuICAgIC8vIHJlYWwgYnJvd3NlciB2aWV3cG9ydCBmb3IgdGhlIERNUyB2aWV3ZXIvcHVibGljIHNoYXJlIHBhZ2U7IHRoZVxuICAgIC8vIGVkaXRvcidzIG93biBNb2JpZWwtcHJldmlldyBkZXZpY2UtZnJhbWUgZ2V0cyBpdHMgb3duIGNvbnRhaW5pbmctYmxvY2tcbiAgICAvLyBvdmVycmlkZSBpbiBpbnRlcmFjdGl2ZS1lZGl0b3IuaHRtbCwgc28gdGhlIGJ1dHRvbiBzdGF5cyBwaW5uZWQgdG9cbiAgICAvLyB0aGF0IGZyYW1lIGluc3RlYWQgb2YgZXNjYXBpbmcgdG8gdGhlIHJlYWwgZGVza3RvcCB3aW5kb3cpLlxuICAgIC5kbXMtaWRvYy10b2MtZmFiIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAxNnB4O1xuICAgICAgICBsZWZ0OiAxNnB4O1xuICAgICAgICB6LWluZGV4OiA2O1xuICAgICAgICB3aWR0aDogNDRweDtcbiAgICAgICAgaGVpZ2h0OiA0NHB4O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYmFja2dyb3VuZDogIzQwNDk5YTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsIDAsIDAsIC4yOCk7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgLjEycyBlYXNlO1xuXG4gICAgICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjMzMzYTgwOyB9XG4gICAgfVxuICAgIC8vIEhpZGRlbiB3aGlsZSB0aGUgZHJhd2VyIGlzIG9wZW4gKHRoZSBYIGluc2lkZSB0aGUgZHJhd2VyIGlzIHRoZSBjbG9zZVxuICAgIC8vIGFmZm9yZGFuY2UgdGhlbikg4oCUIHNhbWUgc2libGluZy1jb21iaW5hdG9yIHJlYXNvbmluZyBhcyAuZG1zLWlkb2MtbWFpbi5cbiAgICAuZG1zLWlkb2MtdG9jLmRtcy1pZG9jLXRvYy1vcGVuIH4gLmRtcy1pZG9jLXRvYy1mYWIgeyBkaXNwbGF5OiBub25lOyB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRmFzZSAzIOKAlCBwYW5lbHMgKGFjY29yZGlvbiArIFwibW9yZSBpbmZvXCIpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIE5lc3RlZCBibG9ja3MgcmV1c2UgdGhlIHBsYWluIGZhc2UtMCBsZWFmIHJ1bGVzIGFib3ZlIHZlcmJhdGltIHZpYVxuLy8gZG1zLWlkb2MtcmVuZGVyLmpzJ3Mgb3duIGJsb2NrTm9kZSgpIHJlY3Vyc2lvbiAoYXBwZW5kTmVzdGVkQmxvY2tzKSDigJQgbm8gbmV3XG4vLyBsZWFmLWxldmVsIHJ1bGVzIGFyZSBuZWVkZWQgaGVyZSwgb25seSB0aGUgcGFuZWwgY2hyb21lIGl0c2VsZi5cblxuLmRtcy1pZG9jLWJsb2NrLXBhbmVsIHsgbWluLXdpZHRoOiAwOyB9XG5cbi5kbXMtaWRvYy1wYW5lbGdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMHB4O1xufVxuXG4uZG1zLWlkb2MtcGFuZWwge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmUyZjA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG59XG5cbi5kbXMtaWRvYy1wYW5lbC1oZWFkIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTJweDtcbiAgICBwYWRkaW5nOiAxNHB4IDE4cHg7XG4gICAgYmFja2dyb3VuZDogI2Y0ZjRmYTsgLy8gc29saWQg4oCUIG5lZWRzIHRvIHNpdCB2aXN1YWxseSBBQk9WRSB0aGUgYm9keSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2Nyb2xsaW5nIGJlbmVhdGggaXQgb25jZSBzdGlja3kgKHNlZSBiZWxvdylcbiAgICBjb2xvcjogIzIzMjUzYTtcbiAgICBmb250LXNpemU6IC45NXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDsgLy8gbWF0Y2hlcyAuZG1zLWlkb2MtcGFuZWwncyBvd24gcmFkaXVzIHdoaWxlIGNsb3NlZFxuXG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6ICNlZGVlZmI7IH1cbn1cblxuLy8gU3RpY2t5IE9OTFkgd2hpbGUgT1BFTiAoWmVueWEgcGFyaXR5LCBzZWUgdGhlIGZpbGUtaGVhZGVyIGNvbW1lbnQgaW5cbi8vIGRtcy1pZG9jLXJlbmRlci5qcykg4oCUIGEgY2xvc2VkIHBhbmVsIGhhcyBubyBib2R5IGhlaWdodCB0byBzY3JvbGwgcGFzdCwgc29cbi8vIGl0cyBoZWFkZXIganVzdCBzdGF5cyBpbiBub3JtYWwgZmxvdy4gR2F0aW5nIHRoaXMgb24gdGhlIGAtb3BlbmAgYW5jZXN0b3Jcbi8vIGNsYXNzIGFsc28gYXZvaWRzIHNldmVyYWwgc2ltdWx0YW5lb3VzbHktc3RpY2t5IENMT1NFRCBoZWFkZXJzIHN0YWNraW5nIHVwXG4vLyBhcyB0aGUgcmVhZGVyIHNjcm9sbHMgcXVpY2tseSBwYXN0IGEgcnVuIG9mIGNvbGxhcHNlZCBwYW5lbHMuXG4uZG1zLWlkb2MtcGFuZWwtb3BlbiA+IC5kbXMtaWRvYy1wYW5lbC1oZWFkIHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogMDtcbiAgICB6LWluZGV4OiAyOyAvLyBhYm92ZSB0aGUgcGFuZWwgYm9keSBjb250ZW50IHNjcm9sbGluZyB1bmRlcm5lYXRoIGl0XG4gICAgYm9yZGVyLXJhZGl1czogOHB4IDhweCAwIDA7IC8vIHNxdWFyZXMgb2ZmIHRoZSBib3R0b20gY29ybmVycyB3aGlsZSBvcGVuXG59XG5cbi5kbXMtaWRvYy1wYW5lbC1jaGV2cm9uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjE1cyBlYXNlO1xufVxuXG4uZG1zLWlkb2MtcGFuZWwtb3BlbiAuZG1zLWlkb2MtcGFuZWwtY2hldnJvbiB7IHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAuZG1zLWlkb2MtcGFuZWwtY2hldnJvbiB7IHRyYW5zaXRpb246IG5vbmU7IH1cbn1cblxuLmRtcy1pZG9jLXBhbmVsLWJvZHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDE2cHg7IC8vIHNhbWUgcmh5dGhtIGFzIC5kbXMtaWRvYy1wYWdlJ3Mgb3duIHRvcC1sZXZlbCBibG9jayBnYXBcbiAgICBwYWRkaW5nOiAxNnB4IDE4cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMmUyZjA7XG59XG5cbi5kbXMtaWRvYy1wYW5lbC1vcGVuID4gLmRtcy1pZG9jLXBhbmVsLWJvZHkgeyBkaXNwbGF5OiBmbGV4OyB9XG5cbi8vIC0tLS0gXCJtb3JlIGluZm9cIiB0ZWFzZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmRtcy1pZG9jLW1vcmVpbmZvIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlMmYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjdmN2ZiO1xufVxuXG4uZG1zLWlkb2MtbW9yZWluZm8tdG9nZ2xlIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogIzQwNDk5YTtcbiAgICBmb250LXNpemU6IC44OHJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcblxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjZWRlZWZiOyB9XG5cbiAgICBzcGFuIHsgZmxleDogMSAxIGF1dG87IH1cblxuICAgIC5kbXMtaWRvYy1wYW5lbC1jaGV2cm9uIHsgY29sb3I6ICM0MDQ5OWE7IH1cbn1cblxuLmRtcy1pZG9jLW1vcmVpbmZvLW9wZW4gLmRtcy1pZG9jLW1vcmVpbmZvLXRvZ2dsZSB7IGJvcmRlci1yYWRpdXM6IDhweCA4cHggMCAwOyB9XG5cbi5kbXMtaWRvYy1tb3JlaW5mby1ib2R5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNnB4O1xuICAgIHBhZGRpbmc6IDAgMTZweCAxNnB4O1xufVxuXG4uZG1zLWlkb2MtbW9yZWluZm8tb3BlbiAuZG1zLWlkb2MtbW9yZWluZm8tYm9keSB7IGRpc3BsYXk6IGZsZXg7IH1cblxuLy8gLS0tLSBUT0M6IGFjY29yZGlvbiBwYW5lbCB0aXRsZXMgZ2V0IGEgbmVzdGVkL2luZGVudGVkIGVudHJ5IC0tLS0tLS0tLS0tLS0tLVxuXG4uZG1zLWlkb2MtdG9jLWl0ZW0taW5kZW50IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gICAgZm9udC1zaXplOiAuOHJlbTtcbiAgICBjb2xvcjogIzZiNjg4NDtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBGYXNlIDQg4oCUIGltYWdlIGhvdHNwb3RzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIE1hcmtlcnMvcG9wb3ZlcnMgYXJlIHBvc2l0aW9uZWQgaW5zaWRlIC5kbXMtaWRvYy1pbWctd3JhcCAoc2VlIGFib3ZlIOKAlCBpdHNcbi8vIGJveCA9PSB0aGUgPGltZz4ncyByZW5kZXJlZCBib3ggZm9yIGV2ZXJ5IHNpemUgY2xhc3MpLCB2aWEgaW5saW5lXG4vLyBsZWZ0L3RvcCBzZXQgZnJvbSB0aGUgaG90c3BvdCdzIHgveSBmcmFjdGlvbiAoZG1zLWlkb2MtcmVuZGVyLmpzKS4gQ29sb3VyXG4vLyBpdHNlbGYgaXMgQUxTTyBpbmxpbmUgKG9uZSBvZiB0aGUgOCBob3VzZSBoZXggdmFsdWVzKSDigJQgbmV2ZXIgZ2VuZXJhdGVkIGFzXG4vLyA4IENTUyBjbGFzc2VzLlxuXG4uZG1zLWlkb2MtaG90c3BvdCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyAvLyBjZW50ZXJzIHRoZSBtYXJrZXIgT04gdGhlIHgveSBwb2ludFxuICAgIHotaW5kZXg6IDE7IC8vIHNpdHMgYWJvdmUgdGhlIDxpbWc+IGl0c2VsZiAoc2FtZSB3cmFwLCBsYXRlciBpbiBET00gb3JkZXJcbiAgICAgICAgICAgICAgICAvLyBhbHJlYWR5IHdvdWxkOyB6LWluZGV4IG1ha2VzIGl0IGV4cGxpY2l0L3JvYnVzdClcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAuMzUpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7IC8vIG5vbi1pbnRlcmFjdGl2ZSAobmVpdGhlciB0ZXh0IG5vciBocmVmKSDigJQgdGhlIGRlZmF1bHQgc3RhdGVcbn1cblxuLy8gSW50ZXJhY3RpdmUgc2hhcGVzIG9ubHkgKHRleHQgYW5kL29yIGhyZWYgcHJlc2VudCkg4oCUIHNlZSBidWlsZEhvdHNwb3ROb2RlLlxuLmRtcy1pZG9jLWhvdHNwb3QtY2xpY2thYmxlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4xMnMgZWFzZTtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgLy8ga2VlcCBCT1RIIHRoZSBjZW50ZXJpbmcgdHJhbnNsYXRlIGFuZCB0aGUgaG92ZXIgc2NhbGUg4oCUIHJlcGxhY2luZ1xuICAgICAgICAvLyB0cmFuc2Zvcm0gb3V0cmlnaHQgaGVyZSAoZHJvcHBpbmcgdGhlIHRyYW5zbGF0ZSkgd291bGQgdmlzaWJseVxuICAgICAgICAvLyBzaGlmdCB0aGUgbWFya2VyIG9mZiBpdHMgcG9pbnQuXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDEuMTUpO1xuICAgIH1cbn1cblxuLmRtcy1pZG9jLWhvdHNwb3Q6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkICM0MDQ5OWE7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAuZG1zLWlkb2MtaG90c3BvdC1jbGlja2FibGUge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzLXZpc2libGUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgfVxuICAgIH1cbn1cblxuLmRtcy1pZG9jLWhvdHNwb3QtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogLjY4cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8vIHRoZSBtYXJrZXIgZWxlbWVudCBpdHNlbGYgaXMgdGhlIGNsaWNrIHRhcmdldFxufVxuXG4vLyBBIGN1cnJlbnRseS1vcGVuIG1hcmtlciBnZXRzIGEgc29mdCBvdXRlciByaW5nIGluIHRoZSBob3VzZSBicmFuZCBjb2xvdXIg4oCUXG4vLyBwdXJlbHkgYSB2aXN1YWwgXCJ0aGlzIG9uZSBpcyBleHBhbmRlZFwiIGN1ZSAobWlycm9ycyB0aGUgYWNjb3JkaW9uIHBhbmVsJ3Ncbi8vIG93biBvcGVuLXN0YXRlIGNoZXZyb24gcm90YXRpb24gZWxzZXdoZXJlIGluIHRoaXMgZmlsZSkuXG4uZG1zLWlkb2MtaG90c3BvdC1vcGVuIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSg2NCwgNzMsIDE1NCwgLjM1KSwgMCAxcHggNHB4IHJnYmEoMCwgMCwgMCwgLjM1KTtcbn1cblxuLmRtcy1pZG9jLWhvdHNwb3QtcG9wIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLy8gbGVmdC90b3Agc2V0IGlubGluZSAoc2FtZSB4L3kgcG9pbnQgYXMgaXRzIG93biBtYXJrZXIpOyB0aGlzIHRyYW5zZm9ybVxuICAgIC8vIGNlbnRlcnMgaXQgaG9yaXpvbnRhbGx5IHVuZGVyIHRoYXQgcG9pbnQgYW5kIGRyb3BzIGl0IGJlbG93IHRoZVxuICAgIC8vIG1hcmtlciDigJQgdmVydGljYWwgb3ZlcmZsb3cgaXMgZGVsaWJlcmF0ZWx5IHNpbXBsZSAocGVyIHNwZWMsIFwibWF5XG4gICAgLy8gZXh0ZW5kIGJlbG93IHRoZSBtYXJrZXIgaXMgZmluZSBmb3IgdjFcIiksIGJ1dCBhIG1hcmtlciBuZWFyIHRoZSBMRUZUL1xuICAgIC8vIFJJR0hUIGVkZ2Ugb2YgYSBuYXJyb3cgKG1vYmlsZSkgdmlld3BvcnQgdXNlZCB0byBjZW50ZXIgdGhlIHBvcG92ZXJcbiAgICAvLyBoYWxmIG9mZi1zY3JlZW4gd2l0aCBubyB3YXkgdG8gcmVhY2ggdGhlIGNsaXBwZWQgY29udGVudC4gZG1zLWlkb2MtXG4gICAgLy8gcmVuZGVyLmpzJ3MgY2xhbXBIb3RzcG90UG9wb3ZlclRvVmlld3BvcnQoKSBub3cgbWVhc3VyZXMgdGhlIG9wZW5lZFxuICAgIC8vIHBvcG92ZXIgYW5kIHNldHMgYC0tZG1zLWlkb2MtaHMtc2hpZnRgIHRvIGp1c3QgZW5vdWdoIGhvcml6b250YWxcbiAgICAvLyBjb3JyZWN0aW9uIHRvIGtlZXAgaXQgZnVsbHkgb24tc2NyZWVuOyBpdCBkZWZhdWx0cyB0byAwcHggKG5vIHZpc3VhbFxuICAgIC8vIGNoYW5nZSBhdCBhbGwpIHdoZW5ldmVyIHRoZSBwb3BvdmVyIGFscmVhZHkgZml0cy5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShjYWxjKC01MCUgKyB2YXIoLS1kbXMtaWRvYy1ocy1zaGlmdCwgMHB4KSksIDE0cHgpO1xuICAgIHotaW5kZXg6IDI7IC8vIGFib3ZlIGV2ZXJ5IG1hcmtlciwgaW5jbC4gdGhpcyBwb3BvdmVyJ3Mgb3duIG1hcmtlclxuICAgIG1heC13aWR0aDogMjYwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGNvbG9yOiAjMjMyNTNhO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmUyZjA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLCAwLCAwLCAuMjIpO1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBmb250LXNpemU6IC44NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cbi5kbXMtaWRvYy1ob3RzcG90LXBvcFtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfSAvLyBzYW1lIGBoaWRkZW5gLXByb3BlcnR5IGNvbnZlbnRpb24gYXMgLmRtcy1pZG9jLXRvY1toaWRkZW5dIGFib3ZlXG5cbi5kbXMtaWRvYy1ob3RzcG90LXBvcC10ZXh0IHtcbiAgICBtYXJnaW46IDAgMCA4cHg7XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOyAvLyBhIHNob3J0IHJlZmVyZW5jZSBzdHJpbmcgbWF5IHN0aWxsIGNhcnJ5IGxpbmUgYnJlYWtzXG59XG4uZG1zLWlkb2MtaG90c3BvdC1wb3AtdGV4dDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uZG1zLWlkb2MtaG90c3BvdC1saW5rIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogLjgycmVtO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsgLy8gYSBsb25nIGhvc3RuYW1lL21haWx0byBhZGRyZXNzIG11c3QgbmV2ZXIgb3ZlcmZsb3cgdGhlIDI2MHB4IHBvcG92ZXJcblxuICAgICY6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4gICAgcWRuYXByby1pY29uIHsgZmxleDogMCAwIGF1dG87IH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBGYXNlIDUg4oCUIGRlZXAtbGluay9yZXZlYWwgKC5kbXMtaWRvYy1mbGFzaCksIGluLWRvY3VtZW50IHNlYXJjaFxuLy8gKC5kbXMtaWRvYy1zZWFyY2gqLCAuZG1zLWlkb2MtbWFyayopLCBhbmQgcHJpbnQgKC5kbXMtaWRvYy1wcmludCopXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gLS0tLSByZXZlYWxCbG9jaydzIGJyaWVmIFwibG9vayBoZXJlXCIgcHVsc2UgKGRtcy1pZG9jLXJlbmRlci5qcydzXG4vLyBmbGFzaEJsb2NrIOKAlCBhZGRlZC9yZW1vdmVkIHZpYSBhIH4xLjZzIHNldFRpbWVvdXQsIG1hdGNoZWQgaGVyZSB0byB0aGVcbi8vIFNBTUUgZHVyYXRpb24gc28gdGhlIGNsYXNzIGlzIGFsd2F5cyBnb25lIGJ5IHRoZSB0aW1lIHRoZSBKUyByZW1vdmVzIGl0KS5cbi8vIFdvcmtzIG9uIGFueSBibG9jay13cmFwcGVyIGVsZW1lbnQgcmVnYXJkbGVzcyBvZiBpdHMgb3duIGJhY2tncm91bmQg4oCUXG4vLyB0aGUgYm94LXNoYWRvdyByaW5nIG5ldmVyIGRlcGVuZHMgb24gb25lLCBhbmQgdGhlIGZhZGluZyBiYWNrZ3JvdW5kLWNvbG9yXG4vLyB0aW50IGlzIGFkZGl0aXZlIG9uIHRvcCBvZiB3aGF0ZXZlciB0aGUgZWxlbWVudCBhbHJlYWR5IGhhcy5cbkBrZXlmcmFtZXMgZG1zLWlkb2MtZmxhc2gtcHVsc2Uge1xuICAgIDAlIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoNjQsIDczLCAxNTQsIC41NSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNjQsIDczLCAxNTQsIC4xKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDY0LCA3MywgMTU0LCAwKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuLmRtcy1pZG9jLWZsYXNoIHtcbiAgICBhbmltYXRpb246IGRtcy1pZG9jLWZsYXNoLXB1bHNlIDEuNnMgZWFzZS1vdXQ7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAuZG1zLWlkb2MtZmxhc2ggeyBhbmltYXRpb246IG5vbmU7IH1cbn1cblxuLy8gLS0tLSBpbi1kb2N1bWVudCBzZWFyY2gg4oCUIGdlbmVyaWMgYmFyL2lucHV0IGNsYXNzZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBOT1RFOiB0aGUgRE1TIHZpZXdlciAoVmlldy92MS9kb2N1bWVudHMvdmlld2VyLmh0bWwpIGJ1aWx0IGl0cyBPV05cbi8vIHBhZ2Utc2NvcGVkIHNlYXJjaCBiYXIgKC5kbXMtdi1zZWFyY2gqLCBzdHlsZWQgaW5saW5lIHRoZXJlIHRvIG1hdGNoIGl0c1xuLy8gZGFyayB2aWV3ZXIgY2hyb21lKSByYXRoZXIgdGhhbiB1c2luZyB0aGVzZSDigJQgdGhlc2UgY2xhc3NlcyBzdGF5IGhlcmUsIGluXG4vLyB0aGUgc2hhcmVkIHN0eWxlc2hlZXQsIGZvciBhbnkgT1RIRVIgaG9zdCB0aGF0IHdhbnRzIGFuIGluLWRvY3VtZW50IHNlYXJjaFxuLy8gYmFyIGluIHRoZSBzaGFyZWQgcmVuZGVyZXIncyBvd24gdmlzdWFsIGxhbmd1YWdlIChlLmcuIHRoZSBmYXNlLTEgVnVlXG4vLyBlZGl0b3IncyBwcmV2aWV3IHBhbmUpIHdpdGhvdXQgaGFuZC1yb2xsaW5nIG9uZSBmcm9tIHNjcmF0Y2guXG4uZG1zLWlkb2Mtc2VhcmNoIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgYmFja2dyb3VuZDogI2Y3ZjdmYjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlMmYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG5cbiAgICBxZG5hcHJvLWljb24geyBjb2xvcjogIzZiNjg4NDsgZmxleDogMCAwIGF1dG87IH1cbn1cblxuLmRtcy1pZG9jLXNlYXJjaC1pbnB1dCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1heC13aWR0aDogMzIwcHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBjb2xvcjogIzIzMjUzYTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDdkOGVjO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBwYWRkaW5nOiA2cHggMTBweDtcbiAgICBmb250LXNpemU6IC44NXJlbTtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgJjpmb2N1cyB7IGJvcmRlci1jb2xvcjogIzQwNDk5YTsgfVxuICAgICY6OnBsYWNlaG9sZGVyIHsgY29sb3I6ICM4YThmYjU7IH1cbiAgICAvLyBBIGhvc3QgcmVuZGVycyBpdHMgb3duIGNsZWFyICjinJUpIGJ1dHRvbiDigJQgaGlkZSB0aGUgbmF0aXZlIFdlYktpdCBvbmVcbiAgICAvLyBzbyB0aGVyZSBpcyBvbmx5IGV2ZXIgb25lLCBzYW1lIGNvbnZlbnRpb24gYXMgdmlld2VyLmh0bWwncyBvd24gYmFyLlxuICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24geyAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cbn1cblxuLmRtcy1pZG9jLXNlYXJjaC1jb3VudCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZm9udC1zaXplOiAuOHJlbTtcbiAgICBjb2xvcjogIzZiNjg4NDtcbiAgICBtaW4td2lkdGg6IDQ0cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmRtcy1pZG9jLXNlYXJjaC1jb3VudFtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLmRtcy1pZG9jLXNlYXJjaC1jb3VudC1ub21hdGNoIHsgY29sb3I6ICNjMDM5MmI7IH1cblxuLmRtcy1pZG9jLXNlYXJjaC1uYXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDJweDtcbn1cblxuLy8gLS0tLSBzZWFyY2ggcmVzdWx0IGhpZ2hsaWdodGluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFdyYXBwZWQgPG1hcms+IGVsZW1lbnRzIOKAlCBzZWUgZG1zLWlkb2MtcmVuZGVyLmpzJ3MgaGlnaGxpZ2h0VGV4dEluRWxlbWVudC9cbi8vIHdyYXBNYXRjaGVzSW5UZXh0Tm9kZS91bm1hcmtFbGVtZW50LiBgLmRtcy1pZG9jLW1hcmstY3VycmVudGAgaXMgYSBwbGFpblxuLy8gRVhUUkEgY2xhc3Mgb24gdGhlIHNhbWUgPG1hcms+IGVsZW1lbnQgKG5ldmVyIGEgc2Vjb25kIHdyYXBwZXIpIG1hcmtpbmdcbi8vIHRoZSBjdXJyZW50bHktbmF2aWdhdGVkLXRvIGhpdCdzIG9jY3VycmVuY2VzIHdpdGhpbiBpdHMgb3duIGJsb2NrL3BhbmVsXG4vLyBlbnRyeSDigJQgc2VlIHNldEN1cnJlbnRNYXJrU2NvcGUuXG4uZG1zLWlkb2MtbWFyayB7XG4gICAgYmFja2dyb3VuZDogI2ZmZTA4YTtcbiAgICBjb2xvcjogIzIzMjUzYTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgcGFkZGluZzogMCAxcHg7XG59XG4uZG1zLWlkb2MtbWFyay1jdXJyZW50IHtcbiAgICBiYWNrZ3JvdW5kOiAjZTg5MTJkO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDIzMiwgMTQ1LCA0NSwgLjM1KTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBGYXNlIDUg4oCUIHByaW50IChyZW5kZXJGb3JQcmludClcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVuZGVyRm9yUHJpbnQoKSAoZG1zLWlkb2MtcmVuZGVyLmpzKSBidWlsZHMgYSBmdWxseS1leHBhbmRlZCwgc3RhdGljIERPTVxuLy8gdHJlZSBpbnRvIGEgY2FsbGVyLXN1cHBsaWVkIGNvbnRhaW5lci4gVGhlIEtOT1dOIGNhbGxlciAodmlld2VyLmh0bWwnc1xuLy8gZG9QcmludCgpKSB3cmFwcyB0aGF0IGNvbnRhaW5lcidzIEVOVElSRSBpbm5lckhUTUwgaW4gaXRzIE9XTlxuLy8gYDxkaXYgY2xhc3M9XCJkbXMtaWRvYy1wcmludFwiPmAgYmVmb3JlIHdyaXRpbmcgaXQgaW50byBhIGZyZXNoIHBvcHVwIHByaW50XG4vLyB3aW5kb3cgdGhhdCBhbHNvIGxvYWRzIFRISVMgU0FNRSBzdHlsZXNoZWV0IOKAlCBkbXMtaWRvYy1yZW5kZXIuanMgbmV2ZXJcbi8vIGNyZWF0ZXMgdGhhdCBlbGVtZW50IGl0c2VsZiAoaXRzIG93biByb290IGlzIHRoZSBuZXN0ZWRcbi8vIGAuZG1zLWlkb2MtcHJpbnQtZG9jYCwgcHVyZWx5IGZvciBpdHMgb3duIGRvY3VtZW50LWxldmVsIHR5cG9ncmFwaHkvXG4vLyBtYXgtd2lkdGgsIG5ldmVyIHJlbmRlci9wcmludC1jaHJvbWUpLiBTbyBgLmRtcy1pZG9jLXByaW50YCBpcyB0aGUgb25lXG4vLyB3cmFwcGVyIGNsYXNzIGV2ZXJ5IHJ1bGUgYmVsb3cgaXMgd3JpdHRlbiB0byB3b3JrIGNvcnJlY3RseSB1bmRlcm5lYXRoLFxuLy8gZXZlbiB0aG91Z2ggaXQgbmV2ZXIgYXBwZWFycyBpbiB0aGlzIGZpbGUncyBvd24gY2xhc3MgbGlzdC5cbi5kbXMtaWRvYy1wcmludCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBjb2xvcjogIzIzMjUzYTtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbn1cblxuLmRtcy1pZG9jLXByaW50LWRvYyB7XG4gICAgbWF4LXdpZHRoOiA3NjBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiAyNHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMThweDtcbiAgICBmb250LXNpemU6IC45MnJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41NTtcbn1cblxuLmRtcy1pZG9jLXByaW50LWJsb2NrIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyAvLyBsZWdhY3kgYWxpYXMsIHN0aWxsIG1lYW5pbmdmdWwgaW4gc2V2ZXJhbCBwcmludCBlbmdpbmVzXG4gICAgYnJlYWstaW5zaWRlOiBhdm9pZDtcbn1cblxuLy8gQSBjb25kaXRpb25lZCBibG9jaydzIGluZm9ybWF0aW9uYWwgXCLCq2xhYmVscy52aXNpYmxlV2hlbsK7IOKAplwiIGxpbmUgKG5vIGkxOG5cbi8vIGFjY2VzcyBpbnNpZGUgZG1zLWlkb2MtcmVuZGVyLmpzIGl0c2VsZiDigJQgdGhlIHByZWZpeCBzdHJpbmcgaXNcbi8vIGhvc3Qtc3VwcGxpZWQsIHNlZSBwcmludENvbmRpdGlvbnNMaW5lJ3Mgb3duIGRvYyBjb21tZW50KS4gUHVyZWx5XG4vLyBkZXNjcmlwdGl2ZSDigJQgcHJpbnQgbmV2ZXIgaGlkZXMvc2hvd3MgYW55dGhpbmcgYmFzZWQgb24gaXQuXG4uZG1zLWlkb2MtcHJpbnQtY29uZGl0aW9uIHtcbiAgICBmb250LXNpemU6IC43OHJlbTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgY29sb3I6ICM2YjY4ODQ7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xufVxuXG4uZG1zLWlkb2MtcHJpbnQtY2hvaWNlIHsgbWluLXdpZHRoOiAwOyB9XG4uZG1zLWlkb2MtcHJpbnQtY2hvaWNlLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMDJyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW46IDAgMCA2cHg7XG4gICAgY29sb3I6ICMyMzI1M2E7XG59XG4uZG1zLWlkb2MtcHJpbnQtY2hvaWNlLW9wdGlvbnMge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuM2VtO1xufVxuXG4uZG1zLWlkb2MtcHJpbnQtaW1hZ2Uge1xuICAgIG1hcmdpbjogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgYnJlYWstaW5zaWRlOiBhdm9pZDtcbn1cbi5kbXMtaWRvYy1wcmludC1pbWctd3JhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvLyBvZmZzZXQgcGFyZW50IGZvciB0aGUgbnVtYmVyZWQgbWFya2VyIHNwYW5zIGJlbG93XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA0ODBweDtcbn1cbi5kbXMtaWRvYy1wcmludC1pbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4uZG1zLWlkb2MtcHJpbnQtY2FwdGlvbiB7XG4gICAgZm9udC1zaXplOiAuOHJlbTtcbiAgICBjb2xvcjogIzZiNjg4NDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8vIE51bWJlcmVkIGhvdHNwb3QgbWFya2VycyDigJQgcGxhaW4gc21hbGwgY2lyY2xlcyBjYXJyeWluZyB0aGVpciBvd24gbnVtYmVyXG4vLyAobm8gcG9wb3Zlciwgbm8gaW50ZXJhY3Rpdml0eTogdGhlIG51bWJlcmVkIGxlZ2VuZCBsaXN0IGJlbG93IHRoZSBpbWFnZVxuLy8gc3BlbGxzIG91dCBsYWJlbC90ZXh0L2hyZWYgYXMgcGxhaW4gdGV4dCBpbnN0ZWFkIOKAlCBwcmludCBoYXMgbm9cbi8vIGludGVyYWN0aXZlIHBvcG92ZXJzLCBwZXIgc3BlYykuXG4uZG1zLWlkb2MtcHJpbnQtaG90c3BvdCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyAvLyBzYW1lIGNlbnRlcmluZy1vbi10aGUtcG9pbnQgY29udmVudGlvbiBhcyAuZG1zLWlkb2MtaG90c3BvdFxuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IC42NXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLy8gcHVyZWx5IGRlY29yYXRpdmUsIGV2ZW4gaW4gYW4gb24tc2NyZWVuIHByaW50IHByZXZpZXdcbn1cbi5kbXMtaWRvYy1wcmludC1ob3RzcG90LWxlZ2VuZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA0ODBweDtcbiAgICBtYXJnaW46IDRweCAwIDA7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjRlbTtcbiAgICBmb250LXNpemU6IC44cmVtO1xuICAgIGNvbG9yOiAjMzMzNDRhO1xufVxuXG4uZG1zLWlkb2MtcHJpbnQtcGFuZWxncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbn1cbi5kbXMtaWRvYy1wcmludC1wYW5lbCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZTJmMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgcGFkZGluZzogMTBweCAxNHB4O1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICBicmVhay1pbnNpZGU6IGF2b2lkO1xufVxuLmRtcy1pZG9jLXByaW50LXBhbmVsLXRpdGxlIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjMjMyNTNhO1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbn1cbi5kbXMtaWRvYy1wcmludC1wYW5lbC1ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xufVxuXG5AbWVkaWEgcHJpbnQge1xuICAgIC5kbXMtaWRvYy1wcmludCB7IGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAuZG1zLWlkb2MtcHJpbnQtZG9jIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgICAvLyBBIGJsb2NrL3BhbmVsL2ltYWdlIHNob3VsZCBuZXZlciBzdHJhZGRsZSBhIHBhZ2UgYnJlYWsgaWYgaXQgY2FuIGhlbHBcbiAgICAvLyBpdCDigJQgYmVzdC1lZmZvcnQgb25seSAoYSB2ZXJ5IGxvbmcgdGFibGUvdGFsbCBpbWFnZSBjYW4gc3RpbGwgc3BsaXQ7XG4gICAgLy8gYnJvd3NlciBwcmludCBlbmdpbmVzIHZhcnkgaW4gaG93IHN0cmljdGx5IHRoZXkgaG9ub3VyIHRoaXMpLlxuICAgIC5kbXMtaWRvYy1wcmludC1ibG9jayxcbiAgICAuZG1zLWlkb2MtcHJpbnQtcGFuZWwsXG4gICAgLmRtcy1pZG9jLXByaW50LWltYWdlIHtcbiAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgICBicmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cbiAgICAvLyBMaW5rcyBwcmludCBhcyBwbGFpbiB1bmRlcmxpbmVkIHRleHQgKG5vIGhvdmVyL3BvaW50ZXIgYWZmb3JkYW5jZVxuICAgIC8vIG5lZWRlZCBvbiBwYXBlcikg4oCUIG5vdGhpbmcgZWxzZSB0byBoaWRlOiByZW5kZXJGb3JQcmludCgpIG5ldmVyIGJ1aWxkc1xuICAgIC8vIGEgVE9DL3NlYXJjaCBiYXIvZGFyayBjaHJvbWUgaW4gdGhlIGZpcnN0IHBsYWNlLCBzbyB0aGVyZSBpcyBub1xuICAgIC8vIHJlc2lkdWFsIG9uLXNjcmVlbi1vbmx5IGNocm9tZSB0byBzdXBwcmVzcyBoZXJlLlxuICAgIC5kbXMtaWRvYy1wcmludCBhIHsgY29sb3I6IGluaGVyaXQ7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRmFzZSA3YSDigJQgYWN0aW9uIGJsb2NrIChhIGJ1dHRvbiB0aGF0IHN0YXJ0cyBhIGZsb3cpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNhbWUgY29sb3VyIGZhbWlseSBhcyBldmVyeSBvdGhlciBibG9jayBhYm92ZTogYnJhbmQgcHVycGxlICM0MDQ5OWEsIGxpZ2h0XG4vLyBsYXZlbmRlciAjZWRlZWZiLCAjZTJlMmYwIGJvcmRlcnMsICMyMzI1M2EgZGFyayB0ZXh0LCAjNmI2ODg0IG11dGVkIHRleHQg4oCUXG4vLyBubyBuZXcgY29sb3VycyBpbnRyb2R1Y2VkLiBTZWUgZG1zLWlkb2MtcmVuZGVyLmpzJ3Mgb3duIGZhc2UtN2EgY29tbWVudFxuLy8gKGJ1aWxkQWN0aW9uTm9kZS9kZXJpdmVBY3Rpb25TdGF0ZSkgZm9yIHRoZSBmdWxsIGxpdmUvdW5hdmFpbGFibGUvcHJldmlld1xuLy8gc3RhdGUgY29udHJhY3QgdGhpcyBkcmVzc2VzLlxuXG4uZG1zLWlkb2MtYmxvY2stYWN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IC8vIHRoZSBidXR0b24gc2l6ZXMgdG8gaXRzIG93biBjb250ZW50LCBuZXZlciBzdHJldGNoZXMgZnVsbC13aWR0aFxuICAgIGdhcDogNnB4O1xufVxuXG4uZG1zLWlkb2MtYWN0aW9uIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHBhZGRpbmc6IDEycHggMjJweDtcbiAgICBmb250LXNpemU6IC45MnJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMTVzIGVhc2UsIGJvcmRlci1jb2xvciAuMTVzIGVhc2UsIHRyYW5zZm9ybSAuMXMgZWFzZTtcblxuICAgIHFkbmFwcm8taWNvbiB7IGZsZXg6IDAgMCBhdXRvOyB9XG5cbiAgICAmOmFjdGl2ZSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpOyB9XG5cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvdXRsaW5lOiAycHggc29saWQgIzQwNDk5YTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgICB9XG59XG5cbi5kbXMtaWRvYy1hY3Rpb24tcHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogIzQwNDk5YTtcbiAgICBjb2xvcjogI2ZmZjtcblxuICAgIHFkbmFwcm8taWNvbiB7IGNvbG9yOiAjZmZmOyB9XG5cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogIzMzM2E4MDsgfVxufVxuXG4uZG1zLWlkb2MtYWN0aW9uLXNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZDogI2VkZWVmYjtcbiAgICBjb2xvcjogIzIzMjUzYTtcbiAgICBib3JkZXItY29sb3I6ICNkN2Q4ZWM7XG5cbiAgICBxZG5hcHJvLWljb24geyBjb2xvcjogIzQwNDk5YTsgfVxuXG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6ICNkZmUwZjc7IH1cbn1cblxuLy8gJ3VuYXZhaWxhYmxlJyAoZmFzZSA3YSBzdGF0ZSAyKTogYSByZWFsIHNlcnZlciBzaWduYWwgdGhhdCB0aGUgbGluayBpc1xuLy8gZGVhZCDigJQgZGltbWVkLCBub3QgY2xpY2thYmxlLWxvb2tpbmcsIG5vIGhvdmVyIGZlZWRiYWNrIGF0IGFsbCAodGhlcmUgaXNcbi8vIG5vdGhpbmcgYmVoaW5kIGl0IHRvIGhvdmVyIFRPV0FSRFMpLlxuLmRtcy1pZG9jLWFjdGlvbi1kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogLjU7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IGluaGVyaXQ7IH0gLy8gY2FuY2VsIHRoZSBiYXNlIGNsYXNzJ3Mgb3duIGhvdmVyIGZpbGxcbiAgICAmOmFjdGl2ZSB7IHRyYW5zZm9ybTogbm9uZTsgfVxufVxuLmRtcy1pZG9jLWFjdGlvbi1wcmltYXJ5LmRtcy1pZG9jLWFjdGlvbi1kaXNhYmxlZDpob3ZlciB7IGJhY2tncm91bmQ6ICM0MDQ5OWE7IH1cbi5kbXMtaWRvYy1hY3Rpb24tc2Vjb25kYXJ5LmRtcy1pZG9jLWFjdGlvbi1kaXNhYmxlZDpob3ZlciB7IGJhY2tncm91bmQ6ICNlZGVlZmI7IH1cblxuLy8gJ3ByZXZpZXcnIChmYXNlIDdhIHN0YXRlIDMpOiB0aGUgZWRpdG9yJ3Mgb3duIGxpdmUtcHJldmlldyByZW5kZXIg4oCUIHN0eWxlZFxuLy8gc28gdGhlIGF1dGhvciBjYW4gc2VlIHJvdWdobHkgd2hhdCBpdCB3aWxsIGxvb2sgbGlrZSwgYnV0IHZpc3VhbGx5IG1hcmtlZFxuLy8gYXMgXCJub3QgcmVhbGx5IGxpdmVcIiB2aWEgYSBkYXNoZWQgb3V0bGluZSAobmV2ZXIgdGhlIHNvbGlkIGRpc2FibGVkIGxvb2tcbi8vIGFib3ZlIOKAlCBub3RoaW5nIGlzIHdyb25nIGhlcmUsIGl0IGp1c3QgaXNuJ3Qgd2lyZWQgdXAgdG8gYSByZWFsIGxpbmsgeWV0KS5cbi5kbXMtaWRvYy1hY3Rpb24tcHJldmlldyB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIGJvcmRlcjogMXB4IGRhc2hlZCByZ2JhKDI1NSwgMjU1LCAyNTUsIC42KTtcblxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiBpbmhlcml0OyB9XG4gICAgJjphY3RpdmUgeyB0cmFuc2Zvcm06IG5vbmU7IH1cbn1cbi5kbXMtaWRvYy1hY3Rpb24tcHJpbWFyeS5kbXMtaWRvYy1hY3Rpb24tcHJldmlldzpob3ZlciB7IGJhY2tncm91bmQ6ICM0MDQ5OWE7IH1cbi5kbXMtaWRvYy1hY3Rpb24tc2Vjb25kYXJ5LmRtcy1pZG9jLWFjdGlvbi1wcmV2aWV3OmhvdmVyIHsgYmFja2dyb3VuZDogI2VkZWVmYjsgfVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5kbXMtaWRvYy1hY3Rpb24geyB0cmFuc2l0aW9uOiBub25lOyB9XG59XG5cbi5kbXMtaWRvYy1hY3Rpb24tbm90ZSB7XG4gICAgZm9udC1zaXplOiAuNzhyZW07XG4gICAgY29sb3I6ICM2YjY4ODQ7XG59XG4uZG1zLWlkb2MtYWN0aW9uLW5vdGUtcHJldmlldyB7IGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4vLyAtLS0tIHByaW50IChyZW5kZXJGb3JQcmludC9wcmludEFjdGlvbk5vZGUpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBBIHByaW50ZWQgcHJvdG9jb2wgY2FuIG5ldmVyIHN0YXJ0IGEgZmxvdyDigJQgdGhlIGxhYmVsIGFsb25lLCBpbiBhIHBsYWluXG4vLyBib3JkZXJlZCBib3ggdGhhdCByZWFkcyBhcyBcInRoaXMgd2FzIGEgYnV0dG9uXCIgd2l0aG91dCBsb29raW5nIGNsaWNrYWJsZVxuLy8gb24gcGFwZXIgKG5vIGNvbG91ciBmaWxsLCBtYXRjaGluZyB0aGUgcmVzdCBvZiB0aGlzIGZpbGUncyBwcmludCBzZWN0aW9uJ3Ncbi8vIGluay1jb25zY2lvdXMsIGNvbG91ci1mcmVlIHN0eWxpbmcpLlxuLmRtcy1pZG9jLXByaW50LWFjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cbi5kbXMtaWRvYy1wcmludC1hY3Rpb24tbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjNmI2ODg0O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjMjMyNTNhO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEludGVybmFsIHJlZmVyZW5jZXMgKDE0LjA4LjIwMjYpIOKAlCB0aGUgXCJub3QgYXZhaWxhYmxlIGhlcmVcIiBub3RpY2Vcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2hvd24gd2hlbiBhbiBpbnRlcm5hbCByZWZlcmVuY2UgY2Fubm90IGJlIGZvbGxvd2VkIGZyb20gd2hlcmUgdGhlIHJlYWRlclxuLy8gaXMgc3RhbmRpbmc6IHRoZSBwdWJsaWMgc2hhcmVkIHBhZ2UgKGl0cyB0b2tlbiBhdXRob3Jpc2VzIG9uZSBmaWxlLCBzbyBhXG4vLyByZWZlcmVuY2UgdG8gYSBzZWNvbmQgZG9jdW1lbnQgaXMgdW5yZXNvbHZhYmxlIHRoZXJlKSwgdGhlIGVkaXRvciBwcmV2aWV3LFxuLy8gb3IgYSByZWZlcmVuY2Ugd2hvc2UgdGFyZ2V0IGJsb2NrIG5vIGxvbmdlciBleGlzdHMgaW4gdGhpcyB2ZXJzaW9uLiBBYnNvbHV0ZVxuLy8gaW5zaWRlIC5kbXMtaWRvYy1wYWdlIChpdHMgb2Zmc2V0IHBhcmVudCwgc2VlIHRoZSBwb3NpdGlvbjpyZWxhdGl2ZSBhYm92ZSksXG4vLyBzbyBpdCBuZXZlciByZWZsb3dzIHRoZSBkb2N1bWVudDsgcmVtb3ZlZCBhZ2FpbiBieSB0aGUgcmVuZGVyZXIgYWZ0ZXIgMi41cy5cbi5kbXMtaWRvYy1yZWYtbm90aWNlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogNTtcbiAgICBtYXgtd2lkdGg6IDI4MHB4O1xuICAgIHBhZGRpbmc6IDdweCAxMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiAjMjMyNTNhO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE0cHggcmdiYSgwLCAwLCAwLCAuMjgpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvLyBwdXJlbHkgaW5mb3JtYXRpb25hbCDigJQgbmV2ZXIgZWF0cyB0aGUgbmV4dCBjbGlja1xuICAgIGFuaW1hdGlvbjogZG1zLWlkb2MtcmVmLW5vdGljZS1pbiAuMTRzIGVhc2Utb3V0O1xufVxuXG5Aa2V5ZnJhbWVzIGRtcy1pZG9jLXJlZi1ub3RpY2UtaW4ge1xuICAgIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCk7IH1cbiAgICB0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG59XG5cbi8vIFByaW50ICgxNC4wOC4yMDI2KTogYW4gaW50ZXJuYWwgcmVmZXJlbmNlIGlzIHVud3JhcHBlZCBmcm9tIGl0cyBhbmNob3IgaW50b1xuLy8gdGhpcyBzcGFuIGJ5IG5ldXRyYWxpc2VJbnRlcm5hbFJlZnNGb3JQcmludCwgc28gdGhlIGF1dGhvcidzIHNlbnRlbmNlIHN0aWxsXG4vLyByZWFkcyBub3JtYWxseSBvbiBwYXBlciB3aXRob3V0IGEgZGVhZCBibHVlIGxpbmsgaW4gaXQuXG4uZG1zLWlkb2MtcHJpbnQtcmVmIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4iLCIvKiA9PT0gQnJpZWZpbmcgbW9kYWwgKHFkbmFwcm8td3lzaXd5ZykgPT09XG4gICBWZXJodWlzZCB1aXQgc2Nzcy92MS90YXNrbGlzdC1hY3Rpdml0aWVzLnNjc3Mgb3AgMDMuMDguMjAyNi4gSGV0IG1vZGFsIHdvcmR0IG51XG4gICBkb29yIFRXRUUgcGFnaW5hJ3MgZ2VicnVpa3QgKGRlIGFjdGl2aXRlaXRlbnBhZ2luYSBlbiBkZSBmbG93IGVkaXRvciwgdm9vciBlZW5cbiAgIGJyaWVmaW5nIG9wIGVlbiB2cmFhZyksIGVuIHRhc2tsaXN0LWFjdGl2aXRpZXMuY3NzIHdvcmR0IGFsbGVlbiBkb29yIGRlXG4gICBhY3Rpdml0ZWl0ZW5wYWdpbmEgZ2VsYWRlbi4gQmVpZGUgcGFnaW5hJ3MgbGFkZW4gc3R5bGUtdjEuY3NzLCBkdXMgZGFhciBob29ydCBkaXQuICovXG5cbi8qIFRoZSBicmllZmluZyBlZGl0b3IgaXMgYSBmdWxsLWRvY3VtZW50IHdyaXRpbmcgc3VyZmFjZSwgc28gZ2l2ZSB0aGUgbW9kYWxcbiAgIG5lYXJseSB0aGUgd2hvbGUgdmlld3BvcnQgYW5kIGxldCB0aGUgZWRpdG9yIEZJTEwgaXQgdmlhIGEgZmxleCBjaGFpblxuICAgKG1vZGFsLWJvZHkgLT4gYnJpZWZpbmctbW9kYWwtYm9keSAtPiBlZGl0b3ItY29sIC0+IHd5c2l3eWcgLT4gLnRveC10aW55bWNlKSxcbiAgIGVhY2ggbGluayBtaW4taGVpZ2h0OjAgc28gdGhlIGVkaXQgYXJlYSBnZXRzIGEgZGVmaW5pdGUgaGVpZ2h0IGFuZCBzY3JvbGxzXG4gICBJTlRFUk5BTExZLiBJRCBzcGVjaWZpY2l0eSAoMCwxLDEpIGJlYXRzIHRoZSBjb21wb25lbnQncyAubW9kYWwtc2l6ZS1sYXJnZVxuICAgKDAsMywwKSBtYXgtaGVpZ2h0OjgwMCBjYXAuIFtLaW0gMjAyNi0wNi0xMV0gKi9cbiNtb2RhbC1icmllZmluZyAubW9kYWwtZGlhbG9nIHtcbiAgICBoZWlnaHQ6IG1pbig5NjBweCwgY2FsYygxMDB2aCAtIDMycHgpKTtcbiAgICBtYXgtd2lkdGg6IG1pbigxNDAwcHgsIGNhbGMoMTAwdncgLSA1NnB4KSk7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuI21vZGFsLWJyaWVmaW5nIC5tb2RhbC1ib2R5IHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgbWluLWhlaWdodDogMDsgfVxuLmJyaWVmaW5nLW1vZGFsLWJvZHkgeyBkaXNwbGF5OiBmbGV4OyBmbGV4OiAxIDEgYXV0bzsgbWluLWhlaWdodDogMDsgfVxuLmJyaWVmaW5nLWVkaXRvci1jb2wge1xuICAgIGZsZXg6IDEgMSBhdXRvOyBtaW4td2lkdGg6IDA7IG1pbi1oZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbiNtb2RhbC1icmllZmluZyBxZG5hcHJvLXd5c2l3eWcsXG4jbW9kYWwtYnJpZWZpbmcgLnFkbmFwcm8td3lzaXd5ZyB7XG4gICAgZmxleDogMSAxIGF1dG87IG1pbi1oZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbiNtb2RhbC1icmllZmluZyAudG94LXRpbnltY2UgeyBmbGV4OiAxIDEgYXV0bzsgbWluLWhlaWdodDogMDsgfVxuXG4vKiA9PT0gTGl2ZSBkZXZpY2UtcHJldmlldyAocmlnaHQgY29sdW1uIG9mIHRoZSBicmllZmluZyBzcGxpdCkgPT09ICovXG4uYnJpZWZpbmctcHJldmlldy1jb2wge1xuICAgIGZsZXg6IDAgMCBjbGFtcCgzMjBweCwgMzYlLCA1MjBweCk7XG4gICAgbWluLXdpZHRoOiAwOyBtaW4taGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZWNlZWY1O1xuICAgIGJhY2tncm91bmQ6ICNmNmY3ZmI7XG4gICAgYm9yZGVyLXJhZGl1czogMCA4cHggOHB4IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5icmllZmluZy1wcmV2aWV3LWJhciB7XG4gICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4O1xuICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWNlZWY1O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuLmJwLWJhci10aXRsZSB7IGZvbnQtc2l6ZTogMTNweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6ICMzYjQyNTI7IH1cbi5icC1kZXZpY2UtdG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBmbGV4OyBnYXA6IDJweDsgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgYmFja2dyb3VuZDogI2VjZWVmNTsgYm9yZGVyLXJhZGl1czogOHB4OyBwYWRkaW5nOiAycHg7XG59XG4uYnAtZGV2aWNlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDMwcHg7IGhlaWdodDogMjZweDtcbiAgICBib3JkZXI6IDA7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgY29sb3I6ICM2YjcyODA7IGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEyMG1zLCBjb2xvciAxMjBtcztcbn1cbi5icC1kZXZpY2U6aG92ZXIgeyBjb2xvcjogIzNiNDI1MjsgfVxuLmJwLWRldmljZS5pcy1hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7IGNvbG9yOiAjNDY1MmYzO1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDE3LCAyMCwgNDUsIDAuMTApO1xufVxuLmJwLWRldmljZS1kaW1zIHtcbiAgICBmb250LXNpemU6IDExcHg7IGNvbG9yOiAjOWFhMGFkO1xuICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gICAgbWluLXdpZHRoOiA2MnB4OyB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi5icmllZmluZy1wcmV2aWV3LXN0YWdlIHtcbiAgICBmbGV4OiAxIDEgYXV0bzsgbWluLWhlaWdodDogMDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogZmxleC1zdGFydDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogMjRweDtcbn1cbi5icC1zaXplciB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgZmxleC1zaHJpbms6IDA7IH1cbi5icmllZmluZy1wcmV2aWV3LWZyYW1lIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UxZTNlNjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJveC1zaGFkb3c6IDAgNnB4IDI0cHggcmdiYSgxNywgMjAsIDQ1LCAwLjE2KTtcbn1cbi5icmllZmluZy1wcmV2aWV3LWZyYW1lW2RhdGEtZGV2aWNlPVwicGhvbmVcIl0gICB7IGJvcmRlci1yYWRpdXM6IDIycHg7IH1cbi5icmllZmluZy1wcmV2aWV3LWZyYW1lW2RhdGEtZGV2aWNlPVwidGFibGV0XCJdICB7IGJvcmRlci1yYWRpdXM6IDE2cHg7IH1cbi5icmllZmluZy1wcmV2aWV3LWZyYW1lW2RhdGEtZGV2aWNlPVwiZGVza3RvcFwiXSB7IGJvcmRlci1yYWRpdXM6IDhweDsgfVxuLmJyaWVmaW5nLXByZXZpZXctaWZyYW1lIHtcbiAgICB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlcjogMDsgZGlzcGxheTogYmxvY2s7IGJhY2tncm91bmQ6ICNmZmY7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLmJyaWVmaW5nLXByZXZpZXctY29sIHsgYmFja2dyb3VuZDogIzFiMWQyNzsgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7IH1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAuYnJpZWZpbmctcHJldmlldy1iYXIgeyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLmJwLWJhci10aXRsZSB7IGNvbG9yOiAjZDRkN2UwOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLmJwLWRldmljZS10b2dnbGUgeyBiYWNrZ3JvdW5kOiAjMmEyZDNhOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLmJwLWRldmljZS5pcy1hY3RpdmUgeyBiYWNrZ3JvdW5kOiAjM2EzZjUyOyBjb2xvcjogI2FlYjRmZjsgfVxuXG4uYnJpZWZpbmctbW9kYWwtZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZy10b3A6IDE2cHg7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWNlZWY1O1xufVxuLyogXCJFbGtlIGtlZXIgb3BuaWV1dyB0b25lblwiIHRvZ2dsZS4gU2l0cyBhdCB0aGUgZmFyIGxlZnQgb2YgdGhlIGZvb3RlciwgYmVmb3JlXG4gICB0aGUgc3RhdHVzIHRleHQsIHNvIGl0IHJlYWRzIGFzIGEgcHJvcGVydHkgb2YgdGhlIGJyaWVmaW5nIHlvdSBhcmUgYWJvdXQgdG9cbiAgIHNhdmUgcmF0aGVyIHRoYW4gYXMgYW5vdGhlciBhY3Rpb24gYnV0dG9uLiBbS2ltIDAzLjA4LjIwMjZdXG4gICBEZSB2cmFhZy1icmllZmluZyBoYW5ndCBcImtub3AgdG9uZW4gYmlqIGRlIHZyYWFnXCIgb3AgZXhhY3QgZGV6ZWxmZGUgdm9ybSwgZHVzXG4gICBkZSBrbGFzc2UgaXMgZ2VuZXJpZWs6IMOpw6luIHRvZ2dsZS1ibG9rLCBwZXIgY29uc3VtZXIgZWVuIGFuZGVyZSB0ZWtzdC4gKi9cbi5icmllZmluZy1yZXBlYXQtdG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIG1hcmdpbi1yaWdodDogMTZweDtcbn1cbi5icmllZmluZy1yZXBlYXQtdGV4dCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGxpbmUtaGVpZ2h0OiAxLjI1OyB9XG4uYnJpZWZpbmctcmVwZWF0LWxhYmVsIHsgZm9udC1zaXplOiAxM3B4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogIzFmMjQzMDsgfVxuLmJyaWVmaW5nLXJlcGVhdC1zdWIgICB7IGZvbnQtc2l6ZTogMTEuNXB4OyBjb2xvcjogIzZiNzI4MDsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5icmllZmluZy1yZXBlYXQtbGFiZWwgeyBjb2xvcjogI2YzZjRmNjsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5icmllZmluZy1yZXBlYXQtc3ViICAgeyBjb2xvcjogI2E2YWFiMzsgfVxuLyogRWVuIHRvZ2dsZS1ibG9rIGRhdCBuaWV0IGJpaiBkZXplIGNvbnN1bWVyIGhvb3J0LCBzdGFhdCBvcCBoaWRkZW4uIFpvbmRlciBkZXplXG4gICByZWdlbCB6b3UgZGlzcGxheTpmbGV4IGhldCBgaGlkZGVuYC1hdHRyaWJ1dXQgb3ZlcnJ1bGVuIGVuIHN0b25kIGhpaiBlciBhbHNub2cuICovXG4uYnJpZWZpbmctcmVwZWF0LXRvZ2dsZVtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBTdGF0dXMgdGV4dCAoZS5nLiBcIkNvbmNlcHQgb3BnZXNsYWdlblwiKSBzaXRzIGZhci1sZWZ0LCBidXR0b25zIHJpZ2h0LiAqL1xuLmJyaWVmaW5nLXN0YXR1cyB7IG1hcmdpbi1yaWdodDogYXV0bzsgZm9udC1zaXplOiAxM3B4OyBjb2xvcjogIzZiNzI4MDsgfVxuLmJyaWVmaW5nLXN0YXR1c1tkYXRhLWtpbmQ9XCJjb25jZXB0XCJdIHsgY29sb3I6ICM4YTZkMWY7IH1cbi5icmllZmluZy1zdGF0dXNbZGF0YS1raW5kPVwibGl2ZVwiXSAgICB7IGNvbG9yOiAjMmY4YTViOyBmb250LXdlaWdodDogNjAwOyB9XG4uYnJpZWZpbmctc3RhdHVzW2RhdGEta2luZD1cImVycm9yXCJdICAgeyBjb2xvcjogI2MzM2EzMDsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5icmllZmluZy1tb2RhbC1mb290ZXIgeyBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLmJyaWVmaW5nLXN0YXR1cyB7IGNvbG9yOiAjYTZhYWIzOyB9XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCbG9ja1N0cmlwIOKAlCBkZSBHRURFRUxERSBibG9ra2VubGlqc3QgKGNsaWVudC9zaGFyZWQvQmxvY2tTdHJpcC52dWUpLlxuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgR2VicnVpa3QgZG9vciBkZSBpbnRlcmFjdGlldmUtZG9jdW1lbnRlZGl0b3Igw6luIGRlIHJhcHBvcnQtZWRpdG9yLiBTdG9uZCBlZXJkZXJcbiAgIGFscyBgLmlkb2MtZnMtKmAgLyBgLmlkb2MtYWRkLSpgIGluIGRlIDxzdHlsZT4gdmFuIGBkb2N1bWVudHMvaW50ZXJhY3RpdmUtZWRpdG9yLmh0bWxgXG4gICBlbiBpcyBiaWogaGV0IGdlbGlqa3RyZWtrZW4gdmFuIGRlIHR3ZWUgZWRpdG9ycyAoSmFuLCAyMDI2LTA4LTAzKSBoaWVyaGVlbiB2ZXJodWlzZFxuICAgZW4gaGVybm9lbWQgbmFhciBgYnN0cmlwLSpgLlxuXG4gICDimqDvuI8gRGV6ZSBzdGlqbGVuIHppdHRlbiBpbiBgc3R5bGUtdjEuY3NzYCwgZHVzIEVMS0UgcGFnaW5hIGRpZSBkZSBibG9ra2VubGlqc3QgbW91bnRcbiAgICAgIGhlZWZ0IHplIGFsIOKAlCBub29pdCBlZW4gbG9zIENTUy1iZXN0YW5kIG5hYXN0IGRlIGVkaXRvciBoYW5nZW4gKGh1aXNyZWdlbCkuXG4gICDimqDvuI8gQmV3ZXJrIGplIGhpZXIgaWV0cywgZGFuIHZlcmFuZGVydCBoZXQgaW4gQkVJREUgZWRpdG9ycy4gRGF0IGlzIGRlIGJlZG9lbGluZzpcbiAgICAgIHByZWNpZXMgZGFhcm9tIHN0YWF0IGhldCBoaWVyIGVuIG5pZXQgdHdlZSBrZWVyLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiDilIDilIAgZGUgXCIrXCItYmFsayB0dXNzZW4gZW4gcm9uZCBkZSBrYWFydGVuIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLmJzdHJpcC1hZGQtYmFyIHsgcG9zaXRpb246IHJlbGF0aXZlOyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgaGVpZ2h0OiAxNHB4OyB9XG4uYnN0cmlwLWFkZC1iYXItYnRuIHtcbiAgICB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyOiAxcHggZGFzaGVkICNkM2QzZTY7IGJhY2tncm91bmQ6ICNmZmY7IGNvbG9yOiAjOGE4ZmI1O1xuICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjsgb3BhY2l0eTogMDsgdHJhbnNpdGlvbjogb3BhY2l0eSAuMTJzLCBib3JkZXItY29sb3IgLjEycywgY29sb3IgLjEycztcbiAgICBwYWRkaW5nOiAwO1xufVxuLmJzdHJpcC1hZGQtYmFyOmhvdmVyIC5ic3RyaXAtYWRkLWJhci1idG4sXG4uYnN0cmlwLWFkZC1iYXItb3BlbiAuYnN0cmlwLWFkZC1iYXItYnRuIHsgb3BhY2l0eTogMTsgYm9yZGVyLWNvbG9yOiAjNDA0OTlhOyBjb2xvcjogIzQwNDk5YTsgfVxuXG4vKiBMZWdlIGxpanN0OiB6b25kZXIgZGl0IHN0b25kIGVyIG5pZXRzIGRhbiDDqcOpbiBcIitcIiBkaWUgamUgbW9lc3QgcmFrZW4gb20gdGUgemllbiDigJRcbiAgIFwiZWVuIHJhYWRzZWxzcGVsXCIgKEphbiwgMjAyNi0wNy0yMikuIFpvbGFuZyBlciBnZWVuIGJsb2trZW4gemlqbiBzdGFhdCBkZSBcIitcIiBlclxuICAgYmxpanZlbmQsIG1ldCBlZW4gaGludCBlcmJvdmVuLiBBbGxlYmVpIHdlZyB6b2RyYSBoZXQgZWVyc3RlIGJsb2sgZ2VwbGFhdHN0IGlzLiAqL1xuLmJzdHJpcC1lbXB0eS1oaW50IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiAjYjNiM2M2OyBmb250LXNpemU6IDEyLjVweDtcbiAgICBwYWRkaW5nOiAyNHB4IDEycHggNHB4O1xufVxuLmJzdHJpcC1hZGQtYmFyLWVtcHR5IHsgaGVpZ2h0OiBhdXRvOyBwYWRkaW5nOiA0cHggMCAyMHB4OyB9XG4uYnN0cmlwLWFkZC1iYXItZW1wdHkgLmJzdHJpcC1hZGQtYmFyLWJ0biB7IG9wYWNpdHk6IDE7IH1cblxuLmJzdHJpcC1hZGQtcGlja2VyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6IDIwOyB0b3A6IDIycHg7IGxlZnQ6IDUwJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDEwcHg7IGJveC1zaGFkb3c6IDAgNnB4IDI0cHggcmdiYSgzNCwgMzIsIDU4LCAuMTgpO1xuICAgIHBhZGRpbmc6IDZweDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgbWluLXdpZHRoOiAxNzBweDtcbn1cbi5ic3RyaXAtYWRkLXBpY2tlci11cCB7IHRvcDogYXV0bzsgYm90dG9tOiAyMnB4OyB9XG4uYnN0cmlwLWFkZC1waWNrZXItaXRlbSB7XG4gICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogN3B4IDEwcHg7IGJvcmRlcjogbm9uZTsgYmFja2dyb3VuZDogbm9uZTsgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDsgY29sb3I6ICMyMzI1M2E7IHRleHQtYWxpZ246IGxlZnQ7IGN1cnNvcjogcG9pbnRlcjtcbn1cbi5ic3RyaXAtYWRkLXBpY2tlci1pdGVtOmhvdmVyIHsgYmFja2dyb3VuZDogI2YzZjVmZjsgY29sb3I6ICM0MDQ5OWE7IH1cblxuLyog4pSA4pSAIGRlIGthYXJ0IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLmJzdHJpcC1jYXJkIHtcbiAgICBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogc3RyZXRjaDsgZ2FwOiA3cHg7XG4gICAgcGFkZGluZzogOXB4IDhweDsgYm9yZGVyLXJhZGl1czogOHB4OyBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q2ZDhkZDsgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5ic3RyaXAtY2FyZC1oZWFkIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7IG1pbi13aWR0aDogMDsgfVxuLmJzdHJpcC1jYXJkOmhvdmVyIHsgYmFja2dyb3VuZDogI2Y3ZjdmYjsgfVxuLmJzdHJpcC1jYXJkLXNlbGVjdGVkIHsgYmFja2dyb3VuZDogI2YzZjVmZjsgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7IH1cbi5ic3RyaXAtY2FyZC1pbmNvbXBsZXRlIC5ic3RyaXAtc25pcHBldCB7IG9wYWNpdHk6IC42NTsgZm9udC1zdHlsZTogaXRhbGljOyB9XG4uYnN0cmlwLWNhcmQtY2hlY2tlZCB7IGJhY2tncm91bmQ6ICNmM2Y1ZmY7IH1cbi5ic3RyaXAtZHJhZy1oYW5kbGUgeyBjb2xvcjogI2MzYzNkNjsgY3Vyc29yOiBncmFiOyBmbGV4OiAwIDAgYXV0bzsgfVxuXG4vKiDilIDilIAgc2xlcGVuOiBkZSBsaWpzdCBoZXJzY2hpa3QgTElWRSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgIFRpamRlbnMgaGV0IHNsZXBlbiBzY2h1aWZ0IGVsa2Uga2FhcnQgbWV0IGVlbiBgdHJhbnNmb3JtYCBuYWFyIGRlIHBsZWsgZGllIGhpaiBiaWpcbiAgIGxvc3NlbiB6b3Uga3JpamdlbjsgZGUgdm9sZ29yZGUgaW4gZGUgZGF0YSB2ZXJhbmRlcnQgcGFzIGJpaiBoZXQgbG9zc2VuLiBaaWUgZGUgbGFuZ2VcbiAgIHRvZWxpY2h0aW5nIGJpaiBgb25EcmFnU3RhcnRgIGluIEJsb2NrU3RyaXAudnVlIOKAlCB2b29yYWwgd8Ohw6Fyb20gZXIgaGllciBhbGxlZW5cbiAgIGB0cmFuc2Zvcm1gIHN0YWF0IGVuIGRlIGthYXJ0ZW4gbm9vaXQgbWV0IGRlIGhhbmQgdmVycGxhYXRzdCBtb2dlbiB3b3JkZW4uXG5cbiAgIOKaoO+4jyBEZSBvdmVyZ2FuZyBoYW5ndCBhYW4gYC5ic3RyaXAtZHJhZ2dpbmdgIGVuIG5pZXQgYWFuIGAuYnN0cmlwLWNhcmRgIHplbGYuIERpZSBrbGFzc2VcbiAgICAgIHZlcmR3aWpudCBpbiBkZXplbGZkZSByZW5kZXIgYWxzIGRlIGVjaHRlIGhlcm9yZGVuaW5nLCB6b2RhdCBlZW4ga2FhcnQgZGllIGRvb3IgVnVlXG4gICAgICBuYWFyIHppam4gbmlldXdlIHBsZWsgd29yZHQgZ2V6ZXQgZGFhciBOSUVUIG5hYXJ0b2UgYW5pbWVlcnQgKGhpaiBzdGFhdCBlciBhbCkg4oCUIGVuXG4gICAgICBlZW4gZ2V3b25lIGhlci1yZW5kZXIgYnVpdGVuIGVlbiBzbGVlcCBvbSBub29pdCBnYWF0IHNjaHVpdmVuLlxuICAg4pqg77iPIER1dXIgYmV3dXN0IGtvcnQgKH4xNjVtcyk6IGRpdCBsb29wdCB0ZXJ3aWpsIGplIG5vZyBzbGVlcHQsIGR1cyBlZW4ga2FhcnQgbW9ldCB6aWpuXG4gICAgICBiZXdlZ2luZyBhZiBoZWJiZW4gdsOzw7NyIGplIGRlIHZvbGdlbmRlIGdyZW5zIG92ZXJnYWF0LiBUcmFnZXIgdm9lbHQgc3Ryb3BlcmlnIGVuIGxhYXRcbiAgICAgIGRlIGxpanN0IGFjaHRlcmxvcGVuIG9wIGplIGN1cnNvci4gKi9cbi5ic3RyaXAtZHJhZ2dpbmcgLmJzdHJpcC1jYXJkIHsgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE2NW1zIGN1YmljLWJlemllciguMiwgLjgsIC4yLCAxKTsgfVxuLyogRGUgb3BnZXBha3RlIGthYXJ0IGJsaWpmdCB6aWNodGJhYXIgb3AgemlqbiBsYW5kaW5nc3BsZWssIG1hYXIgZ2VkaW1kOiBoaWogaXMgXCJpblxuICAgYmV3ZWdpbmdcIiwgZW4gZGUgdm9sbGUga2FhcnQgaGFuZ3Qgb3AgZGF0IG1vbWVudCBhbHMgc2xlZXAtc2NoYWR1dyBvbmRlciBqZSBjdXJzb3IuICovXG4uYnN0cmlwLWNhcmQtZHJhZ3NvdXJjZSB7IG9wYWNpdHk6IC41OyB9XG4uYnN0cmlwLXR5cGUtaWNvbiB7IGNvbG9yOiAjNmI2ODg0OyBmbGV4OiAwIDAgYXV0bzsgfVxuLmJzdHJpcC1zbmlwcGV0IHtcbiAgICBmbGV4OiAxIDEgYXV0bzsgbWluLXdpZHRoOiAwOyBmb250LXNpemU6IDEzcHg7IGNvbG9yOiAjMzMzNDRhO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLyogSGV0IFwiWmVrZXI/XCItbGFiZWwgdmFuIGhldCB0d2VlLXN0YXBzIHZlcndpamRlcmVuLiBTdGFhdCBoaWVyIOKAlCBiaWogZGUgYmxva2tlbmxpanN0IOKAlCBvbWRhdCBkaXRcbiAgIGdlYmFhciDDqcOpbiBwbGVrIGhvb3J0IHRlIGhlYmJlbjogYHNoYXJlZC9hcm0tZGVsZXRlLmpzYCBiZXdhYWt0IGRlIFRFUk1JSk4sIGRlemUgcmVnZWwgaGV0IEJFRUxELlxuICAgYC5pZG9jLWFybS1sYWJlbGAgaXMgZGV6ZWxmZGUgc3RhcCBpbiBkZSBibG9rRk9STVVMSUVSRU4gdmFuIGRlIGRvY3VtZW50ZWRpdG9yIChvcHRpZXJlZ2VscyxcbiAgIHBhbmVlbHJlZ2VscywgaG90c3BvdC1yZWdlbHMpLiBUd2VlIG5hbWVuLCDDqcOpbiByZWdlbCDigJQgYW5kZXJzIGxvcGVuIHplIHVpdCBlbGthYXIgb3Aga2xldXIuXG4gICDimqDvuI8gYHdoaXRlLXNwYWNlOiBub3dyYXBgIGlzIGZ1bmN0aW9uZWVsOiBlZW4gbGFiZWwgZGF0IGFmYnJlZWt0IG1hYWt0IGRlIHJpaiBob2dlciBlbiBkYW5cbiAgIHZlcnNjaHVpZnQgZGUgcHJ1bGxlbmJhayBhbHNub2csIHByZWNpZXMgd2F0IGRlIHR3ZWVkZSBrbGlrIG1vZXQga3VubmVuIHZlcnRyb3V3ZW4uICovXG4vKiBgLnFmci1hcm1gIGlzIGRlemVsZmRlIHN0YXAgaW4gYHFkbmFwcm8tZm9ybWF0LXJ1bGVzYCAoZGUgdm9vcndhYXJkZWxpamtlIG9wbWFhayB2YW4gZWVuXG4gICByYXBwb3J0a29sb20pLiBEYXQgaXMgZWVuIENPTVBPTkVOVCBlbiBnZWVuIHBhZ2luYSwgbWFhciBkZSByZWdlbCBzdGFhdCBoaWVyIGJpaiBkZSBhbmRlcmUgZHJpZVxuICAgb21kYXQgZGUgY29tbWVudCBoaWVyYm92ZW4gcHJlY2llcyBkYXQgdnJhYWd0OiB2aWVyIG5hbWVuLCDDqcOpbiByZWdlbCDigJQgYW5kZXJzIGxvcGVuIHplIHVpdCBlbGthYXJcbiAgIG9wIGtsZXVyLCBlbiBkYW4gaGVldCBoZXR6ZWxmZGUgZ2ViYWFyIG9wIHZpZXIgcGxla2tlbiBpZXRzIGFuZGVycy4gKi9cbi5ic3RyaXAtYXJtLWxhYmVsLFxuLmlkb2MtYXJtLWxhYmVsLFxuLnFmci1hcm0sXG4ucnBlLWFybSB7IGZvbnQtc2l6ZTogMTEuNXB4OyBjb2xvcjogI2MzM2EzMDsgZm9udC13ZWlnaHQ6IDYwMDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgZmxleDogMCAwIGF1dG87IH1cbi8qIERlIGFjdGllaG9layB2YW4gZWVuIGthYXJ0LiBCZXN0YWF0IGFscyBlaWdlbiBlbGVtZW50IG9tZGF0IGRlIG5hdGlldmUga2xpayBoaWVyIG1vZXQgU1RPUFBFTiDigJRcbiAgIHppZSBkZSDimqDvuI8gaW4gQmxvY2tTdHJpcC52dWU6IHpvbmRlciBkaWUgc3RvcHBlciBzZWxlY3RlZXJ0IGVlbiBrbGlrIG9wIGRlIHBydWxsZW5iYWsgw7PDs2sgbm9nIGRlXG4gICBrYWFydCBkaWUgZGFhcm1lZSBuZXQgdmVyZHdlZW4uICovXG4uYnN0cmlwLWNhcmQtYWN0aWVzIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAycHg7IGZsZXg6IDAgMCBhdXRvOyB9XG5cbi8qIE1pbmlhdHV1ciB2YW4gaGV0IGVjaHRlIGJsb2ssIGJvdmVuYWFuIGFmZ2VzbmVkZW4uIERlIGJpbm5lbmthbnQgdGVrZW50IG9wIHZvbGxlXG4gICBicmVlZHRlIGVuIHdvcmR0IGRhYXJuYSB2ZXJrbGVpbmQ7IGBwb2ludGVyLWV2ZW50czpub25lYCBob3VkdCBoZW0gaW5lcnQgem9kYXQgZWVuXG4gICBrbGlrIGRvb3J2YWx0IG5hYXIgZGUga2FhcnQgemVsZi4gKi9cbi5ic3RyaXAtcHJldmlldyB7XG4gICAgaGVpZ2h0OiA4OHB4OyBvdmVyZmxvdzogaGlkZGVuOyBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jLWJyYW5kLXB1cnBsZSkgNDUlLCB0cmFuc3BhcmVudCk7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuLmJzdHJpcC1wcmV2aWV3LWlubmVyIHtcbiAgICB3aWR0aDogNzYwcHg7IHRyYW5zZm9ybTogc2NhbGUoLjMzKTsgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IHBhZGRpbmc6IDE0cHggMTZweDsgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBjb2xvcjogIzIzMjUzYTtcbn1cblxuLyog4pSA4pSAIG1lZXJ2b3VkaWdlIHNlbGVjdGllIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLmJzdHJpcC1jaGVja2JveC13cmFwIHtcbiAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bzsgd2lkdGg6IDE4cHg7IG9wYWNpdHk6IDA7IHRyYW5zaXRpb246IG9wYWNpdHkgLjEycztcbn1cbi5ic3RyaXAtY2FyZDpob3ZlciAuYnN0cmlwLWNoZWNrYm94LXdyYXAsXG4uYnN0cmlwLW1vZGUtc2VsZWN0IC5ic3RyaXAtY2hlY2tib3gtd3JhcCB7IG9wYWNpdHk6IDE7IH1cblxuLmJzdHJpcC1zZWxlY3RiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgZmxleC13cmFwOiB3cmFwO1xuICAgIHBhZGRpbmc6IDhweCAxMHB4OyBtYXJnaW4tYm90dG9tOiAxMHB4OyBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjMyLCAyMzUsIDI1MiwgLjU1KTsgYm9yZGVyOiAxcHggc29saWQgcmdiYSg2NCwgNzMsIDE1NCwgLjEwKTtcbn1cbi5ic3RyaXAtc2VsY2hpcCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNnB4OyBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7IGJvcmRlcjogbm9uZTsgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogI2UyZTZmYzsgY29sb3I6ICM0MDQ5OWE7IGZvbnQ6IDYwMCAxMnB4ICdJbnRlcicsIHNhbnMtc2VyaWY7XG59XG4uYnN0cmlwLXNlbGNoaXA6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjZDVkYmZhOyB9XG4uYnN0cmlwLXNlbGVjdGJhci1hY3Rpb25zIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAycHg7IGZsZXgtd3JhcDogd3JhcDsgfVxuLyogRWVuIFVJVEdFWkVUVEUgYWN0aWVrbm9wIG1vZXQgYWFud2lqc2JhYXIgYmxpanZlbiwgYW5kZXJzIGlzIHppam4gdG9vbHRpcCDigJQgZGllXG4gICB1aXRsZWd0IHdhYXLDs20gaGlqIGdyaWpzIGlzIOKAlCBvbmJlcmVpa2JhYXIuIERlIGtub3AgemVsZiBkb2V0IGJpaiBgZGlzYWJsZWRgIHRvY2hcbiAgIGFsIG5pZXRzLCBkdXMgcG9pbnRlci1ldmVudHMgdGVydWd6ZXR0ZW4gYmxpamZ0IGtsaWstdmVpbGlnLiAqL1xuLmJzdHJpcC1zZWxlY3RiYXItYWN0aW9ucyAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1kaXNhYmxlZCB7IHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBUYWtlbmxpanN0LWluc3RlbGxpbmdlbiAgKC92MS9wcm9qZWN0cy86cHJvamVjdC86dGFza2xpc3QvZWRpdC1zdXJ2ZXktc2V0dGluZ3MpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBQYWdpbmFzdHlsaW5nIHZvb3IgVmlldy92MS9wcm9qZWN0L2VkaXRfc3VydmV5X3NldHRpbmdzLmh0bWwuXG4vL1xuLy8gIERpdCBiZXN0YW5kIGJlc3RhYXQgb21kYXQgZGUgT1VERSB2ZXJzaWUgdmFuIGRpZSBwYWdpbmEgemV2ZW50aWcgcmVnZWxzXG4vLyAgZWlnZW4gQ1NTIGluIGVlbiA8c3R5bGU+LWJsb2sgaW4gZGUgdmlldyBoYWQgc3RhYW4sIGluY2x1c2llZiBlZW4gY29tcGxlZXRcbi8vICBuYWdlbWFha3RlIGFhbi91aXQtc2NoYWtlbGFhciAoLnN3aXRjaC8uc2xpZGVyKS4gRGllIHNjaGFrZWxhYXIgaXMgbnVcbi8vICBxZG5hcHJvLXRvZ2dsZSwgZGUgcmlqZW4gemlqbiBxZG5hcHJvLWxpc3Qtcm93IGVuIGRlIGthYXJ0ZW4gemlqblxuLy8gIHFkbmFwcm8tc2VjdGlvbi1jYXJkLCBkdXMgaGllciBzdGFhdCBhbGxlZW4gbm9nIHdhdCBkaWUgY29tcG9uZW50ZW4gTklFVFxuLy8gIGRvZW46IGRlIHBhZ2luYWluZGVsaW5nLCBkZSBsaW5rZXJrb2xvbSBlbiBoZXQgdWl0bGVncGFuZWVsLlxuLy9cbi8vICBCZXd1c3QgR0VFTiBlaWdlbiBrbGV1cmVuOiBhbGxlcyBrb210IHVpdCBkZSBkZXNpZ24tdG9rZW5zLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEtvcCBib3ZlbiBkZSBrYWFydGVuIChidWl0ZW4gZGUgd2l0dGUgc2NoaWwsIG9wIGRlIHBhYXJzZSBwYWdpbmEtYWNodGVyZ3JvbmQpLlxuLnRscy1pbnRybyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMnB4O1xuICAgIHBhZGRpbmc6IDRweCA4cHggMjBweDtcblxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZywgIzFhMWY0ZCk7XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gICAgICAgIC8vIExlZXNiYXJlIHJlZ2VsbGVuZ3RlOyBkZSBwYWdpbmEgemVsZiBpcyBicmVlZC5cbiAgICAgICAgbWF4LXdpZHRoOiA2MmNoO1xuICAgIH1cbn1cblxuLy8gVHdlZSBrb2xvbW1lbjogbmF2aWdhdGllIGxpbmtzLCBwYW5lbGVuIHJlY2h0cy4gT25kZXIgOTAwcHgga2xhcHQgZGVcbi8vIG5hdmlnYXRpZSBib3ZlbiBkZSBwYW5lbGVuIChncmlkLXRlbXBsYXRlLWNvbHVtbnMgbmFhciDDqcOpbiBrb2xvbSksIHpvZGF0IGRlXG4vLyBwYWdpbmEgb3AgZWVuIHRhYmxldCBpbiBwb3J0cmV0IG5pZXQgaW4gdHdlZSB0ZSBzbWFsbGUga29sb21tZW4gYnJlZWt0LlxuLnRscy1sYXlvdXQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyMzZweCBtaW5tYXgoMCwgMWZyKTtcbiAgICBnYXA6IDIwcHg7XG4gICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuXG4gICAgLy8gUnVpbXRlIG9uZGVyYWFuIHZvb3IgZGUgendldmVuZGUgYWN0aWViYWxrIChLaW0gMDQuMDguMjAyNjogXCJkZSB0YXNrYmFyXG4gICAgLy8gb25kZXJpbiB2YWx0IGFsdGlqZCBvdmVyIGRlIHNldHRpbmdzIGhlZW5cIikuIERpZSBiYWxrIGlzXG4gICAgLy8gYHBvc2l0aW9uOiBmaXhlZGAsIGR1cyBoaWogbmVlbXQgZ2VlbiBydWltdGUgaW4gZGUgcGFnaW5hIGluIGVuIGxlZ3QgemljaFxuICAgIC8vIG92ZXIgZGUgbGFhdHN0ZSByaWogaGVlbjsgamUga3VudCBlciBvb2sgbmlldCB2b29yYmlqIHNjcm9sbGVuIG9tZGF0IGVyXG4gICAgLy8gbmlldHMgbWVlciBvbmRlciBzdGFhdC5cbiAgICAvL1xuICAgIC8vIFNZTkMtUFVOVCwgbWV0IG9wemV0IGVlbiB2YXN0IGdldGFsLiBJayB3aWxkZSBkaXQgdWl0IGRlIGJhbGsgemVsZiBsZXplbixcbiAgICAvLyBtYWFyIGRhdCBrYW4gbmlldDogX2FjdGlvbi1iYXIuc2NzcyB6ZXQgYGhlaWdodDogNTZweGAgaGFyZCAoZXIgaXMgZ2VlblxuICAgIC8vIC0tYWN0aW9uLWJhci1oZWlnaHQpIGVuIC0tYWN0aW9uLWJhci1vZmZzZXQgc3RhYXQgb3AgLnFkbmFwcm8tYWN0aW9uLWJhclxuICAgIC8vIHplbGYsIGR1cyBkaWUgaXMgaGllciBuaWV0IGVyZmJhYXIgZW4gZWVuIHZhcigpIHpvdSBzdGlsIGFsdGlqZCBvcCBkZVxuICAgIC8vIGZhbGxiYWNrIGxhbmRlbi4gRGF0IGxlZXN0IGFscyBhZmdlbGVpZCB0ZXJ3aWpsIGhldCBkYXQgbmlldCBpcy5cbiAgICAvL1xuICAgIC8vIDk2cHggPSA1NiAoaG9vZ3RlIHZhbiBkZSBiYWxrKSArIDE2ICgtLWFjdGlvbi1iYXItb2Zmc2V0KSArIDI0IGx1Y2h0LlxuICAgIC8vIFdvcmR0IGRlIGJhbGsgaG9nZXIgb2Yga29tdCBoaWogdmVyZGVyIHZhbiBkZSByYW5kLCBkYW4gbW9ldCBkaXQgbWVlLlxuICAgIHBhZGRpbmctYm90dG9tOiA5NnB4O1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcik7XG4gICAgfVxufVxuXG4vLyAtLS0tIExpbmtlcmtvbG9tIC0tLS1cbi8vIFZvcm0gdmFuIHFkbmFwcm8tc2lkZWJhciwgbWFhciB6b25kZXIgZGF0IGNvbXBvbmVudDogZGllIGJyZW5ndCBlZW4gZWlnZW5cbi8vIGtvcCBtZXQgem9la3ZlbGQgZW4gaW5rbGFwa25vcCBtZWUgZGllIGRlemUgcGFnaW5hIG5pZXQgbm9kaWcgaGVlZnQuIERpdCBpc1xuLy8gYWxsZWVuIGRlIHdpdHRlIHNjaGlsIGVyb21oZWVuOyBkZSBpdGVtcyB6ZWxmIFpJSk4gcWRuYXByby10cmVlLWl0ZW0uXG4udGxzLW5hdiB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLCAjZmZmZmZmKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIsICNlNmU5ZWYpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItY2FyZCwgMTZweCk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWNhcmQsIDAgMXB4IDJweCByZ2JhKDIwLCAyNSwgODAsIDAuMDQpLCAwIDRweCAxNnB4IHJnYmEoMjAsIDI1LCA4MCwgMC4wNCkpO1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAycHg7XG4gICAgLy8gQmxpamZ0IG1lZWxvcGVuIGJpaiBzY3JvbGxlbiBvcCBlZW4gbGFuZyBwYW5lZWwuIHBvc2l0aW9uOiBzdGlja3kgd2Vya3RcbiAgICAvLyBoaWVyIG9tZGF0IC50bHMtbGF5b3V0IGVlbiBncmlkIGlzIG1ldCBhbGlnbi1pdGVtczogc3RhcnQgKGhldCBpdGVtIGlzXG4gICAgLy8gZHVzIG5pZXQgdWl0Z2VyZWt0IHRvdCB2b2xsZWRpZ2UgaG9vZ3RlKS5cbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogMTZweDtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgcGFkZGluZzogMTJweCAxMnB4IDhweDtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbiAgICB9XG59XG5cbi8vIEFsbGVzIHJlY2h0cyB2YW4gZGUgbmF2aWdhdGllLiBab25kZXIgZGV6ZSB3cmFwcGVyIHpvdWRlbiBoZXQgem9la3ZlbGQsIGRlXG4vLyBsZWdlIHN0YWF0IGVuIGRlIGRyaWUgcGFuZWxlbiBlbGsgZWVuIGVpZ2VuIGdyaWRjZWwgcGFra2VuLlxuLnRscy1tYWluIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNnB4O1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLy8gLS0tLSBab2VrZW4gLS0tLVxuLnRscy1zZWFyY2gge1xuICAgIC8vIEhldCB2ZWxkIHplbGYgaXMgd2lkdGg6IDEwMCUsIGR1cyBkZSBicmVlZHRlIGhvb3J0IGhpZXIuIFJ1aW0gZ2Vub2VnIG9tXG4gICAgLy8gdGUgdHlwZW4sIG5pZXQgem8gYnJlZWQgZGF0IGhldCBkZSBoZWxlIGtvbG9tIG9wZWlzdC5cbiAgICBtYXgtd2lkdGg6IDQyMHB4O1xufVxuXG4vLyBUaWpkZW5zIGhldCB6b2VrZW4gc3RhYW4gQUxMRSBwYW5lbGVuIG9wZW46IGRlIHRyZWZmZXJzIGt1bm5lbiBpbiBlbGtcbi8vIG9uZGVyZGVlbCB6aXR0ZW4sIGVuIGRhdCBpcyBqdWlzdCB3YWFyb20gamUgem9la3QuXG4udGxzLWxheW91dC5pcy1zZWFyY2hpbmcgLnRscy1wYW5lbCB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLy8gVkFMS1VJTDogaGV0IGBoaWRkZW5gLWF0dHJpYnV1dCB3ZXJrdCBuaWV0IHpvbmRlciBkZXplIHJlZ2Vscy4gRGV6ZVxuLy8gY29tcG9uZW50ZW4gemV0dGVuIHplbGYgYGRpc3BsYXk6IGZsZXhgIChsaXN0LXJvdywgc2VjdGlvbi1jYXJkKSBvZlxuLy8gYGRpc3BsYXk6IGJsb2NrYCAoZW1wdHktc3RhdGUpIG9wIGRlIGhvc3QsIGVuIHpvJ24gYXV0aG9yLXJlZ2VsIHdpbnQgdmFuIGRlXG4vLyBgW2hpZGRlbl0geyBkaXNwbGF5OiBub25lIH1gIHVpdCBkZSBicm93c2VyLXN0eWxlc2hlZXQuIFpvbmRlciBkaXQgYmxpanZlblxuLy8gd2VnZ2VmaWx0ZXJkZSByaWplbiBkdXMgZ2V3b29uIHN0YWFuLiBOYWdlbWV0ZW4gaW4gZGUgZ2Vjb21waWxlZXJkZVxuLy8gc3R5bGUtdjEuY3NzIG9wIDA0LjA4LjIwMjY6IGVyIGlzIG5lcmdlbnMgaW4gZGUgbGlicmFyeSBhbCBlZW4gW2hpZGRlbl0tcmVnZWxcbi8vIHZvb3IgZGV6ZSB0YWdzLCBkdXMgZGllIG1vZXQgaGllci5cbi50bHMtbGF5b3V0IHFkbmFwcm8tbGlzdC1yb3dbaGlkZGVuXSxcbi50bHMtbGF5b3V0IHFkbmFwcm8tc2VjdGlvbi1jYXJkW2hpZGRlbl0sXG4udGxzLW1haW4gcWRuYXByby1lbXB0eS1zdGF0ZVtoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vLyAtLS0tIFBhbmVsZW4gLS0tLVxuLnRscy1wYW5lbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTZweDtcbiAgICBtaW4td2lkdGg6IDA7XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxufVxuXG4vLyAtLS0tIERlIGJlZGllbmluZyByZWNodHMgaW4gZWVuIGluc3RlbGxpbmdzcmlqIC0tLS1cbi8vIFppdCBpbiBxZG5hcHJvLWxpc3Qtcm93J3Mgc2xvdD1cInRyYWlsaW5nXCIuIERlIHJpaiBzdGFhdCBpbiB3cmFwLXN0YW5kIGVuXG4vLyBsaWpudCBkdXMgYWFuIGRlIGJvdmVua2FudCB1aXQ7IGRlemUgd3JhcHBlciBob3VkdCBkZSB1aXRsZWdrbm9wIGVuIGRlXG4vLyBiZWRpZW5pbmcgYmlqIGVsa2Fhci5cbi50bHMtY29udHJvbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICAvLyBOaWV0IG1lZWtyaW1wZW4uIFpvbmRlciBkaXQga25panB0IGRlIGZsZXhib3ggaGV0IGtldXpldmVsZCBwbGF0OiBkYW5cbiAgICAvLyBzdG9uZCBlciBcIkllXCIgaW4gcGxhYXRzIHZhbiBcIkllZGVyZWVuXCIgKEtpbSAwNC4wOC4yMDI2KS5cbiAgICBmbGV4OiAwIDAgYXV0bztcblxuICAgIC8vIHFkbmFwcm8tc2VsZWN0IGVuIHFkbmFwcm8taW5wdXQgemlqbiB6ZWxmIHdpZHRoOiAxMDAlIGVuIGhlYmJlbiBkdXMgZ2VlblxuICAgIC8vIGVpZ2VuIGJyZWVkdGU7IGluIGVlbiBmbGV4cmlqIHpvbmRlciBydWltdGUgd29yZGVuIHplIGRhYXJvbSBvbmxlZXNiYWFyXG4gICAgLy8gc21hbC4gRGUgYnJlZWR0ZSBpcyBlZW4ga2V1emUgdmFuIERFWkUgcGFnaW5hLCBuaWV0IHZhbiBoZXQgY29tcG9uZW50LFxuICAgIC8vIGR1cyBkaWUgc3RhYXQgaGllciBlbiBuaWV0IGluIGRlIGNvbXBvbmVudC1TQ1NTLlxuICAgIC8vXG4gICAgLy8gUnVpbSBnZW5vbWVuIChLaW0gMDQuMDguMjAyNiwgdHdlZSBrZWVyOiBcImRhbiBob2VmIGplIG5pZXQgZGUgZHJvcGRvd25zIHpvXG4gICAgLy8gdGUgcHJvcHBlblwiIGVuIFwid2Fhcm9tIG1hYWsgamUgZGUgaW5wdXRmaWVsZCBvb2sgbmlldCBnZXdvb24gZ3Jvb3RcIikuIERhdFxuICAgIC8vIGthbiBzaW5kcyBkZSB3cmFwLXZhcmlhbnQgZGUgdHJhaWxpbmctc2xvdCB0ZWdlbiBkZSByZWNodGVycmFuZCB2YW4gZGUgcmlqXG4gICAgLy8gemV0OiBkZSBydWltdGUgZGllIGRhYXJ2b29yIHJlY2h0cyBvbmdlYnJ1aWt0IGJsZWVmIGlzIG51IGJlc2NoaWtiYWFyIHZvb3JcbiAgICAvLyBkZSBiZWRpZW5pbmcgemVsZi5cbiAgICAvL1xuICAgIC8vIGNsYW1wIGluIHBsYWF0cyB2YW4gZWVuIHZhc3RlIG1hYXQgb2YgbWVkaWEgcXVlcmllczogaGV0IHZlbGQgZ3JvZWl0IG1lZSBtZXRcbiAgICAvLyBoZXQgdmVuc3RlciBlbiBob3VkdCB6aWNoIGFhbiBlZW4gYm92ZW4tIGVuIG9uZGVyZ3JlbnMuIEJpaiAxNDQwcHgga29tdCBkaXRcbiAgICAvLyB1aXQgb3Agb25nZXZlZXIgMzQ1cHgsIGJpaiAxMDI0cHggb3Agb25nZXZlZXIgMjQ1cHgsIGVuIGhldCB6YWt0IG5vb2l0IG9uZGVyXG4gICAgLy8gMjIwcHguIFpvbmRlciBkaWUgYm92ZW5ncmVucyB6b3UgaGV0IHZlbGQgb3AgZWVuIGJyZWVkIHNjaGVybSBkZSB1aXRsZWdcbiAgICAvLyBlcm5hYXN0IHdlZ2RydWtrZW47IHpvbmRlciBvbmRlcmdyZW5zIHpvdSBoZXQgb3AgZWVuIHRhYmxldCB3ZWVyIGdhYW5cbiAgICAvLyBwcm9wcGVuLlxuICAgIC8vXG4gICAgLy8gV2Fhcm9tIGRpdCBvb2sgaGV0IHVpdGtsYXBwYW5lZWwgbmV0dGVyIG1hYWt0OiBxZG5hcHJvLW1lbnUgc2NoYWFsdCB6aWNoIG9wXG4gICAgLy8gemlqbiBMQU5HU1RFIG9wdGllIGVuIG5pZXQgb3AgZGUgdHJpZ2dlciAoc3RhYXQgem8gaW4gcWRuYS1tZW51LmpzOlxuICAgIC8vIFwiY29udGVudC1maXQgd2l0aCBtaW4gMTYwcHhcIikuIEJpaiBlZW4gc21hbGxlIHRyaWdnZXIgd2VyZCBoZXQgcGFuZWVsIGR1c1xuICAgIC8vIGJyZWRlciBkYW4gaGV0IHZlbGQgZXJib3Zlbi4gXCJBbGxlZW4gcHJvamVjdG1hbmFnZXJzXCIgcGFzdCBudSBpbiBoZXQgdmVsZFxuICAgIC8vIHplbGYsIGR1cyBkaWUgdHdlZSBsb3BlbiB3ZWVyIGdlbGlqay5cbiAgICBxZG5hcHJvLXNlbGVjdCB7XG4gICAgICAgIHdpZHRoOiBjbGFtcCgyMjBweCwgMjR2dywgMzYwcHgpO1xuICAgIH1cblxuICAgIC8vIFRla3N0dmVsZGVuIChuYWFtLCBkb2VsKSBrcmlqZ2VuIGRlemVsZmRlIG1hYXQgYWxzIGVlbiBrZXV6ZWxpanN0LCB6b2RhdCBkZVxuICAgIC8vIGhlbGUgcmVjaHRlcmtvbG9tIMOpw6luIGthbnRsaWpuIGhvdWR0LlxuICAgIC8vXG4gICAgLy8gTEVUIE9QOiBkZXplIHJlZ2VsIGlzIG1ldCBvcHpldCBOSUVUIGBxZG5hcHJvLWlucHV0YCBpbiBoZXQgYWxnZW1lZW4uIERhdCB3YXNcbiAgICAvLyBoaWogZWVyc3QsIHRvZW4gaGV0IGdldGFsdmVsZCB2b29yIGRlIGR1dXIgaGV0IGVuaWdlIGlucHV0LXZlbGQgb3AgZGV6ZVxuICAgIC8vIHBhZ2luYSB3YXM7IHNpbmRzIG5hYW0gZW4gZG9lbCBlcmJpaiBzdGFhbiB6b3Ugem8nbiBhbGdlbWVuZSByZWdlbCBkaWUgdHdlZVxuICAgIC8vIG9wIDEyOHB4IHBsYXRkcnVra2VuLlxuICAgICN0bHMtbmFtZSxcbiAgICAjdGxzLXB1cnBvc2Uge1xuICAgICAgICB3aWR0aDogY2xhbXAoMjIwcHgsIDI2dncsIDM4MHB4KTtcbiAgICB9XG5cbiAgICAvLyBHZXNjaGF0dGUgZHV1ci4gU21hbGxlciBkYW4gZGUgYW5kZXJlIGtldXplbGlqc3Rlbiwgd2FudCBkZSBsYW5nc3RlIG9wdGllXG4gICAgLy8gaXMgXCIxIHV1ciAzMCBtaW5cIiBlbiBuaWV0IGVlbiB6aW4uXG4gICAgLy9cbiAgICAvLyBPcCBoZXQgYXR0cmlidXV0IGVuIG5pZXQgb3AgZWVuIGlkOiBkZSBtYXJrdXAgeml0IHNpbmRzIDA0LjA4LjIwMjYgaW4gZGVcbiAgICAvLyBnZWRlZWxkZSBwYXJ0aWFsIHYxL3Byb2plY3QvX3Rsc19wbGFubmluZy5odG1sIGVuIHN0YWF0IGR1cyBvcCB0d2VlXG4gICAgLy8gc2NoZXJtZW4gKGRlIGluc3RlbGxpbmdlbnBhZ2luYSBlbiBoZXQgcGFuZWVsIG9wIGRlIHBsYW5uZXIpLiBFZW4gaWQgbWFnXG4gICAgLy8gbWFhciDDqcOpbiBrZWVyIHBlciBwYWdpbmEgYmVzdGFhbiBlbiB6b3UgaGllciBib3ZlbmRpZW4gbWFhciBvcCDDqcOpbiB2YW4gZGVcbiAgICAvLyB0d2VlIHNjaGVybWVuIHJha2VuLlxuICAgIC8vXG4gICAgLy8gV2ludCB2YW4gZGUgYWxnZW1lbmUgcWRuYXByby1zZWxlY3QtcmVnZWwgaGllcmJvdmVuOiBlZW4gYXR0cmlidXV0c2VsZWN0b3JcbiAgICAvLyB0ZWx0IGFscyBlZW4gY2xhc3MgZW4gaXMgZHVzIHNwZWNpZmlla2VyIGRhbiBlZW4gZWxlbWVudG5hYW0uXG4gICAgW2RhdGEtdGxzLWR1cmF0aW9uXSB7XG4gICAgICAgIHdpZHRoOiAxODBweDtcbiAgICB9XG59XG5cbi8vIEJldmVzdGlnaW5nIG5hIGhldCBvcHNsYWFuLiBEaXQgaXMgbWV0IG9wemV0IEdFRU4gcWRuYXByby10b2FzdDogZWVuIHRvYXN0XG4vLyBsYW5kdCBpbiBlZW4gaG9layB2YW4gaGV0IHNjaGVybSwgZW4gYmlqIHRpZW4gc2NoYWtlbGFhcnMgb25kZXIgZWxrYWFyIG1vZXRcbi8vIGplIGt1bm5lbiB6aWVuIFdFTEtFIGVyIGlzIG9wZ2VzbGFnZW4uIFZhbmRhYXIgZWVuIHBpbGxldGplIGluIGRlIHJpaiB6ZWxmLlxuLnRscy1zYXZlZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgcGFkZGluZzogMCA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1waWxsLCA5OTlweCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtZ3JlZW4tYmcsICNjNWY1ZTIpO1xuICAgIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0LCAjNDI4YjZlKTtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZSwgdHJhbnNmb3JtIDIwMG1zIGVhc2U7XG4gICAgLy8gTm9vaXQgZWVuIHRpa2RvZWw6IGhldCBpcyBlZW4gbWVkZWRlbGluZy5cbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICYuaXMtb24ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxuXG4gICAgJi50bHMtc2F2ZWQtLWVycm9yIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtcmVkLWJnLCAjZmVlM2UzKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTtcbiAgICB9XG5cbiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cbn1cblxuLy8gRm91dHJlZ2VsIG9uZGVyIGhldCBnZXRhbHZlbGQgKGdlc2NoYXR0ZSBkdXVyKS4gRGUgNS4uMTQ0MC1jb250cm9sZSB6aXQgb3Bcbi8vIGRlIHNlcnZlciwgZHVzIGRlemUgcmVnZWwgd29yZHQgZ2V2dWxkIG1ldCB3YXQgZGUgc2VydmVyIHRlcnVnc3R1dXJ0LlxuLnRscy1maWVsZC1lcnJvciB7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xuXG4gICAgJjplbXB0eSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4vLyAtLS0tIEdlc2NoYXR0ZSBkdXVyIC0tLS1cbi8vIEhpZXIgc3RvbmQgZWVuIGdldGFsdmVsZCBtZXQgZGUgZWVuaGVpZCBcIm1pblwiIGVybmFhc3QuIFNpbmRzIDA0LjA4LjIwMjYgaXMgaGV0XG4vLyBlZW4ga2V1emVsaWpzdCBtZXQgdmFzdGUgc3RhcHBlbiBpbiBtZW5zZW50YWFsIChcIjQ1IG1pblwiLCBcIjEgdXVyXCIsIFwiMSB1dXIgMzBcbi8vIG1pblwiKSwgZHVzIGRlIGxvc3NlIGVlbmhlaWQgaXMgd2VnOiBkaWUgc3RhYXQgbnUgaW4gZGUgb3B0aWUgemVsZi4gRGUgd3JhcHBlclxuLy8gYmxpamZ0LCB3YW50IGRlIHJpaiB2ZXJ3YWNodCDDqcOpbiBlbGVtZW50IGluIGRlIGJlZGllbmluZy5cbi50bHMtZHVyYXRpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbn1cblxuLy8gLS0tLSBVaXRsZWdwYW5lZWwgLS0tLVxuLy8gSW5ob3VkIHZhbiBkZSBlbmUgcWRuYXByby1wb3BvdmVyIG9wIGRlIHBhZ2luYTsgZGllIHdvcmR0IHBlciB1aXRsZWdrbm9wXG4vLyBvcG5pZXV3IGdldnVsZCBlbiBvcG5pZXV3IGdlcG9zaXRpb25lZXJkIChvcGVuKCkgbWFnIGhlcmdlYnJ1aWt0IHdvcmRlbiB2b29yXG4vLyBtZWVyZGVyZSB0cmlnZ2VycywgemllIHFkbmEtcG9wb3Zlci5qcykuXG4vLyBFciBzdGFhdCBoaWVyIGJld3VzdCBiaWpuYSBuaWV0cyBtZWVyLiBEZSBpbmhvdWQgdmFuIGhldCBwYW5lZWwgYmVzdGFhdCB1aXRcbi8vIGNvbXBvbmVudGVuOiBlbGtlIHVpdGxlZ3JlZ2VsIGlzIGVlbiBxZG5hcHJvLWxpc3Qtcm93IChgd3JhcCBzdGF0aWNgLCBkdXNcbi8vIHRlcm0tYWxzLXRpdGVsIG1ldCBkb29ybG9wZW5kZSB1aXRsZWcpIGluIGVlbiAucWRuYXByby1saXN0LXJvdy1ncm91cCwgZW4gaGV0XG4vLyBcImxldCBvcFwiLWJsb2sgaXMgZWVuIHFkbmFwcm8tYWxlcnQgdHlwZT1cIndhcm5pbmdcIiBjb21wYWN0LiBXYXQgb3ZlcmJsaWpmdCBpc1xuLy8gZGUgYnJlZWR0ZSB2YW4gaGV0IHBhbmVlbCBlbiBkZSBrb3AgZXJib3ZlbiwgZW4gZGF0IGlzIHBhZ2luYWtldXplLlxuLy8gSGllcnZvb3Igc3RvbmQgaGllciBlZW4gZWlnZW4gZGwgbWV0IGVlbiB6ZWxmYmVkYWNodGUgdGVybS9kZWZpbml0aWUtc3Rpamw7XG4vLyBkaWUgaXMgdmVyd2lqZGVyZCAoS2ltIDA0LjA4LjIwMjY6IFwid2VlciBlZW4gaGFuZHJvbGxlZCBkaW5nXCIpLlxuLnRscy1pbmZvIHtcbiAgICAvLyBHRUVOIGVpZ2VuIGJyZWVkdGUuIHFkbmFwcm8tcG9wb3ZlciB2YXJpYW50PVwid2hpdGVcIiBpcyBoYXJkIDI4MHB4IG1ldFxuICAgIC8vIGJveC1zaXppbmc6IGJvcmRlci1ib3ggKHppZSBfcG9wb3Zlci5zY3NzLCBkZSBiYXNpc3JlZ2VsKS4gSGllciBzdG9uZFxuICAgIC8vIGVlcmRlciBtaW4oMzgwcHgsIC4uLiksIGVuIGRhdCBsaWVwIGR1cyAxMDBweCBidWl0ZW4gaGV0IHBhbmVlbDogcHJlY2llcyBkZVxuICAgIC8vIHVpdGJyZWtlbmRlIGluaG91ZCBkaWUgS2ltIG9wIDA0LjA4LjIwMjYgemFnLiBEZSBtYWF0IGlzIHZhbiBoZXQgY29tcG9uZW50LFxuICAgIC8vIG5pZXQgdmFuIGRlemUgcGFnaW5hLlxuICAgIG1pbi13aWR0aDogMDtcblxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgOHB4O1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZywgIzFhMWY0ZCk7XG4gICAgICAgIC8vIFJ1aW10ZSB2b29yIGRlIHNsdWl0a25vcCB2YW4gZGUgcG9wb3Zlci5cbiAgICAgICAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgICB9XG5cbiAgICAvLyBEZSBhbGVydCBhbGxlZW4gbG9zbWFrZW4gdmFuIGRlIHJpamVuc3RhcGVsIGVyYm92ZW4uIE9wIGhldCBhdHRyaWJ1dXQsIG9tXG4gICAgLy8gZGV6ZWxmZGUgcmVkZW4gYWxzIGJpaiBbZGF0YS10bHMtZHVyYXRpb25dIGhpZXJib3ZlbjogaGV0IHVpdGxlZ3BhbmVlbFxuICAgIC8vIHN0YWF0IG9vayBvcCBkZSBwbGFubmVycGFnaW5hLlxuICAgIFtkYXRhLXRscy1pbmZvLW5vdGVdOm5vdCg6ZW1wdHkpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBXZXJrdm9vcnJhYWQg4oCUIHp1c3RlcnBhZ2luYSAgKC92MS93ZXJrdm9vcnJhYWQvdjIpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBQYWdpbmFzdHlsaW5nIHZvb3IgVmlldy92MS93ZXJrdm9vcnJhYWQvdjIuaHRtbC5cbi8vXG4vLyAgRGV6ZSBwYWdpbmEgZHJhYWl0IE5BQVNUIC92MS93ZXJrdm9vcnJhYWQvIGVuIHZlcnZhbmd0IGhlbSBuaWV0LiBEZSBvdWRlXG4vLyAgcGFnaW5hIGhlZWZ0IHpldmVudGlnIHJlZ2VscyBDU1MgaW4gZWVuIDxzdHlsZT4tYmxvayBpbiBkZSB2aWV3IHN0YWFuLCBtZXRcbi8vICBoYXJkY29kZWQgaGV4ICgjMzk0MjkwLCAjNmI2ODg0LCAjZmZmKS4gRGF0IGlzIGRlIHJlZGVuIGRhdCBkaWUgcGFnaW5hIGdlZW5cbi8vICBkb25rZXJlIG1vZHVzIGthbjogZXIgdmFsdCBuaWV0cyBvbSB0ZSBzY2hha2VsZW4uIEhpZXIgc3RhYXQgZ2VlbiBlbmtlbGVcbi8vICBrbGV1ciBoYXJkY29kZWQsIGFsbGVzIGxvb3B0IHZpYSBkZSBkZXNpZ24tdG9rZW5zLlxuLy9cbi8vICBEZSBsaWpzdCB6ZWxmIHN0YWF0IGhpZXIgYmlqbmEgbmlldCBpbi4gRGUgZ3JvZXBzcmVnZWxzIGVuIGRlIGxvY2F0aWVyZWdlbHNcbi8vICB6aWpuIHFkbmFwcm8tbGlzdC1yb3cgKGV4cGFuZGFibGUgKyBkZXB0aCksIGRlIHN0YXR1c2xhYmVscyB6aWpuXG4vLyAgcWRuYXByby10YWcsIGRlIHRlbGxlcnMgemlqbiBxZG5hcHJvLXN0YXQtY2FyZCwgZGUgbGVnZSBzdGF0ZW4gemlqblxuLy8gIHFkbmFwcm8tZW1wdHktc3RhdGUuIFdhdCBoaWVyb25kZXIgc3RhYXQgaXMgYWxsZWVuIGRlIFBBR0lOQS1pbmRlbGluZyBlblxuLy8gIGRlIHBhYXIgZGluZ2VuIGRpZSBkaWUgY29tcG9uZW50ZW4gbmlldCBkb2VuLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi53djIge1xuICAgIC8vIFZvbGxlIGJyZWVkdGUsIHpvYWxzIGRlIGFuZGVyZSB3ZXJrbGlqc3RlbiAoRG9jdW1lbnRlbiwgcG9zdHZhaykuIEVlblxuICAgIC8vIGxlZXNjYXAgaG9vcnQgYmlqIGVlbiBkYXNoYm9hcmQsIG5pZXQgYmlqIGVlbiBsaWpzdCB3YWFyIGplIGRvb3JoZWVuIHdlcmt0LlxuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICBtYXJnaW46IDI0cHggMjhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNnB4O1xuXG4gICAgJl9faW50cm8ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgICAgcGFkZGluZzogMCA0cHg7XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYTFmNGQpO1xuICAgIH1cblxuICAgICZfX3N1YiB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbiAgICAgICAgbWF4LXdpZHRoOiA2OGNoO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gbWVsZGluZ2VuXG4gICAgJl9fYWxlcnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgcGFkZGluZzogMTBweCAxNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtd2FybmluZy1icmlnaHQtYmcpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LWJvcmRlcik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LXRleHQpO1xuICAgIH1cblxuICAgICZfX2Vycm9yIHtcbiAgICAgICAgcGFkZGluZzogMTBweCAxNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLXJlZC1iZyk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCk7XG4gICAgfVxuXG4gICAgLy8gV2F0IGVyIGlzIGdlYmV1cmQgdGVyd2lqbCBqZSB3ZWcgd2FzLiBHcm9lbiwgd2FudCBkaXQgaXMgaGV0IGVuaWdlXG4gICAgLy8gYmVyaWNodCBvcCBkZXplIHBhZ2luYSBkYXQgZ29lZCBuaWV1d3MgYnJlbmd0LlxuICAgICZfX3NpbmNlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHggMTBweCAxNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLWdyZWVuLWJnKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtc2lnbmFsLWdyZWVuLXRleHQpO1xuICAgICAgICBhbmltYXRpb246IHd2Mi1yb3ctZW50ZXIgMjIwbXMgY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpIGJvdGg7XG4gICAgfVxuXG4gICAgJl9fc2luY2UtYnRuIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgcGFkZGluZzogNHB4IDEycHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi0xMDAsIHJnYmEoNjYsIDEzOSwgMTEwLCAuMTIpKTsgfVxuICAgICAgICAmOmZvY3VzLXZpc2libGUgeyBvdXRsaW5lOiAycHggc29saWQgY3VycmVudENvbG9yOyBvdXRsaW5lLW9mZnNldDogMnB4OyB9XG4gICAgfVxuXG4gICAgJl9fc2luY2UtY2xvc2Uge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgcGFkZGluZzogMCAycHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3BhY2l0eTogLjY7XG5cbiAgICAgICAgJjpob3ZlciB7IG9wYWNpdHk6IDE7IH1cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHsgb3V0bGluZTogMnB4IHNvbGlkIGN1cnJlbnRDb2xvcjsgb3V0bGluZS1vZmZzZXQ6IDJweDsgfVxuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB0ZWxsZXJiYWxrXG4gICAgLy8gVHdlZSBnZWxhYmVsZGUgZ3JvZXBlbiBuYWFzdCBlbGthYXIgaW4gcGxhYXRzIHZhbiB2aWVyIGxvc3NlIGthYXJ0ZW4gb3BcbiAgICAvLyDDqcOpbiByaWouIERlIHYxLXBhZ2luYSB6ZXQgdG9ld2lqemluZyBlbiB0aWpkIGRvb3IgZWxrYWFyLCB3YWFyZG9vciBkZVxuICAgIC8vIGdldGFsbGVuIG5pZXQgb3B0ZWxsZW4gdG90IGVlbiBnZWhlZWwgZW4gZGUgbGV6ZXIgZWVuIHZlcmRlbGluZyBwcm9iZWVydFxuICAgIC8vIHRlIHppZW4gZGllIGVyIG5pZXQgaXMuXG4gICAgJl9fYmFuZCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG5cbiAgICAgICAgLy8gT25kZXIgMTMwMHB4IGtyaWpndCBlbGtlIGFzIGVlbiBlaWdlbiB2b2xsZSByZWdlbCBpbiBwbGFhdHMgdmFuIGVlblxuICAgICAgICAvLyBoYWx2ZS4gWm9uZGVyIGRpdCBwZXJzZW4gdmlqZiBrYWFydGVuIHppY2ggaW4gZGUgaGVsZnQgdmFuIGRlXG4gICAgICAgIC8vIGJlc2NoaWtiYXJlIGJyZWVkdGUgZW4ga2FwdCBkZSBrYWFydCB6aWpuIGVpZ2VuIGxhYmVsIGFmLlxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogMTMwMHB4KSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLWNhcmQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgICZfX2JhbmQtZ3JvdXAge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDE0cHggMThweDtcbiAgICAgICAgZmxleDogMSAxIDI2MHB4O1xuICAgICAgICBtaW4td2lkdGg6IDA7XG5cbiAgICAgICAgKyAud3YyX19iYW5kLWdyb3VwIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBWaWpmIHRlbGxlcmthYXJ0ZW4gb3Agw6nDqW4gcmVnZWwgcGFzc2VuIHBhcyB2YW5hZiBvbmdldmVlciAxMzAwcHgsXG4gICAgICAgIC8vIG1ldCBkZSBuYXZpZ2F0aWViYWxrIGVyYmlqLiBEYWFyb25kZXIga2xhcHQgZGUgc2NoZWlkaW5nIHZhbiBsaW5rc1xuICAgICAgICAvLyBuYWFyIGJvdmVuIGVuIGtyaWpnZW4gYmVpZGUgYXNzZW4gaHVuIGVpZ2VuIHJlZ2VsLiBPcCA5MDBweCwgd2FhciBkaXRcbiAgICAgICAgLy8gZWVyc3Qgc3RvbmQsIHdhcmVuIGRlIGxhYmVscyBhbCBsYW5nIGFmZ2VrYXB0IHRvdCBcIlNsdWl0IGQuLi5cIiBlbiBcIk5cIlxuICAgICAgICAvLyAoZ2V6aWVuIG9wIDEyMDBweCwgMDguMDguMjAyNikuXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMzAwcHgpIHtcbiAgICAgICAgICAgIC8vIEluIGtvbG9tc3RhbmQgYmV0ZWtlbnQgZmxleC1ncm93IFZFUlRJQ0FBTCByZWtrZW4sIGVuIGRhbiBzdGFhdFxuICAgICAgICAgICAgLy8gZXIgZWVuIGhhbGYgc2NoZXJtIGxlZWd0ZSBvbmRlciB0d2VlIGthYXJ0ZW4uXG4gICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcblxuICAgICAgICAgICAgKyAud3YyX19iYW5kLWdyb3VwIHtcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYW5kLWxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICB9XG5cbiAgICAmX19iYW5kLXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gZGUgbGlqc3RzY2hpbFxuICAgICZfX3BhbmVsIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgICAgIHBhZGRpbmc6IDE0cHggMTZweCAxNnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgfVxuXG4gICAgJl9fdG9vbGJhciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgIH1cblxuICAgICZfX3Rvb2xiYXItc3BhY2VyIHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgfVxuXG4gICAgJl9fc2VhcmNoIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMTJweDtcbiAgICAgICAgaGVpZ2h0OiAzNHB4O1xuICAgICAgICBtaW4td2lkdGg6IDIwMHB4O1xuICAgICAgICBmbGV4OiAwIDEgMjgwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0KTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1wYWdlKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gICAgfVxuXG4gICAgJl9fc2VhcmNoLWlucHV0IHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHkpO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEhldCBuYXRpdmUga3J1aXNqZSB2YW4gdHlwZT1zZWFyY2ggdmVyc2NoaWx0IHBlciBicm93c2VyIGVuIGJvdHN0IG1ldFxuICAgICAgICAvLyBkZSBwaWx2b3JtOyB3aXNzZW4gZ2FhdCB2aWEgRXNjYXBlIGVuIHZpYSBkZSBmaWx0ZXJjaGlwcy5cbiAgICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiB7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY2hpcHMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogN3B4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgICZfX2xpc3RoZWFkIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IDE0cHg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgcGFkZGluZzogMCAycHg7XG4gICAgfVxuXG4gICAgLy8gR3JvZXBlcmVuIG9wIG9wZHJhY2h0IG9mIG9wIGxvY2F0aWUuIEXDqW4ga25vcCBkaWUgZGUgcGFnaW5hIHZvb3IgdHdlZVxuICAgIC8vIGhlZWwgdmVyc2NoaWxsZW5kZSByb2xsZW4gbGFhdCB3ZXJrZW46IGVlbiBjb8O2cmRpbmF0b3IgZGVua3QgaW5cbiAgICAvLyBvcGRyYWNodGVuLCBlZW4gbG9jYXRpZW1hbmFnZXIgaW4gemlqbiBlaWdlbiBodWlzLlxuICAgICZfX2dyb3VwYnkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA3cHg7XG4gICAgICAgIHBhZGRpbmc6IDZweCAxMXB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgZm9udC1zaXplOiAxMi41cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2dyb3VwYnktbGFiZWwge1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICB9XG5cbiAgICAmX19jb3VudCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgICB9XG5cbiAgICAmX19lbXB0eSxcbiAgICAmX19ub3Jlc3VsdCB7XG4gICAgICAgIHBhZGRpbmc6IDIycHggOHB4O1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gcmlqZW4ga29tZW4gZW4gZ2FhblxuICAgIC8vIERlIHJlbmRlciB3ZXJrdCBiaWogaW4gcGxhYXRzIHZhbiB3ZWcgdGUgZ29vaWVuLCBkdXMgZGV6ZSBhbmltYXRpZXMgZ2FhblxuICAgIC8vIGFsbGVlbiBhZiBvcCByaWplbiBkaWUgRUNIVCBuaWV1dyBvZiBFQ0hUIHdlZyB6aWpuLiBCaWogZGUgb3VkZSByZW5kZXJcbiAgICAvLyAoaW5uZXJIVE1MIGxlZWdtYWtlbikgem91IGRlIGhlbGUgbGlqc3Qgb3BuaWV1dyBhbmltZXJlbiBiaWogZWxrZVxuICAgIC8vIHRvZXRzYWFuc2xhZyBpbiBoZXQgem9la3ZlbGQuXG4gICAgLy9cbiAgICAvLyBDdXJ2ZSBnZWxlZW5kIHZhbiBoZXQgaGFydGplIChfZmF2b3JpdGUtYnV0dG9uLnNjc3MpLCBkdXVyIG5pZXQ6IDUyMG1zIGlzXG4gICAgLy8gdm9vciDDqcOpbiBlbGVtZW50IGRhdCBqZSBiZXd1c3QgYWFudGlrdCwgaGllciBzdGFhbiBlciA2NiBvcCBoZXQgc2NoZXJtLlxuICAgICYtcm93LWVudGVyIHtcbiAgICAgICAgYW5pbWF0aW9uOiB3djItcm93LWVudGVyIDIwMG1zIGN1YmljLWJlemllcigwLjIyLCAxLCAwLjM2LCAxKSBib3RoO1xuICAgIH1cblxuICAgIC8vIERvb3JzdHJlcGVuLCBkYW4gZGUgaG9vZ3RlIGRpY2h0a2xhcHBlbiB6b2RhdCBkZSByaWplbiBlcm9uZGVyIG9wc2NodWl2ZW4uXG4gICAgLy8gRGF0IG9wc2NodWl2ZW4gaXMgaGV0IGJldnJlZGlnZW5kc3RlIG1pY3JvLW1vbWVudCBpbiBlZW4gbGlqc3QgZGllIGplXG4gICAgLy8gd2Vnd2Vya3QsIGVuIGhldCBpcyBwcmVjaWVzIHdhdCBkZSBvdWRlIHBhZ2luYSBuaWV0IGRlZWQ6IGRhYXIgYmxlZWZcbiAgICAvLyBhbGxlcyBzdGFhbiBlbiB2ZXJhbmRlcmRlIGFsbGVlbiBlZW4gZ2V0YWwuXG4gICAgJi1yb3ctbGVhdmUge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgYW5pbWF0aW9uOiB3djItcm93LWxlYXZlIDI2MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpIGJvdGg7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHd2Mi1yb3ctZW50ZXIge1xuICAgIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7IH1cbiAgICB0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBub25lOyB9XG59XG5cbkBrZXlmcmFtZXMgd3YyLXJvdy1sZWF2ZSB7XG4gICAgMCUgICB7IG9wYWNpdHk6IDE7IH1cbiAgICAzNSUgIHsgb3BhY2l0eTogMC4zNTsgfVxuICAgIDEwMCUgeyBvcGFjaXR5OiAwOyBoZWlnaHQ6IDA7IG1hcmdpbi10b3A6IDA7IG1hcmdpbi1ib3R0b206IDA7IHBhZGRpbmctdG9wOiAwOyBwYWRkaW5nLWJvdHRvbTogMDsgfVxufVxuXG4ud3YyIHtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBsYWFkc3RhYXRcbiAgICAmX19sb2FkaW5nIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDZweCAwO1xuICAgIH1cblxuICAgICZfX3NrLXJvdyB7XG4gICAgICAgIGhlaWdodDogNTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIEZvcm11bGllcmVuIGluIGRlIHNjaHJpamYtbW9kYWxzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBOYXRpdmUgPHNlbGVjdD4sIDxpbnB1dD4gZW4gPHRleHRhcmVhPiwgbmV0IGFscyBvcCBkZSB2MS1wYWdpbmEuIEJld3VzdGVcbi8vICBrZXV6ZTogcWRuYXByby1tb2RhbCBLTE9PTlQgemlqbiBsaWdodCBET00sIGVuIGVlbiBjb21wb25lbnQgbWV0IGVpZ2VuXG4vLyAgaW50ZXJuZSBzdGFhdCBvdmVybGVlZnQgZGF0IG5pZXQgYmV0cm91d2JhYXIuIFpvZHJhIGRhdCB1aXRnZXpvY2h0IGlzLFxuLy8gIGt1bm5lbiBkZXplIHZlbGRlbiBhbHNub2cgb3AgcWRuYXByby1pbnB1dCBlbiBxZG5hcHJvLXNlbGVjdC5cbi8vICBLbGV1cmVuIHfDqWwgdmlhIHRva2VucywgZHVzIGRvbmtlcmUgbW9kdXMga2xvcHQgaGllciBhbCB3ZWwuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi53djItZm9ybSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTZweDtcblxuICAgICZfX2NvbnRleHQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nKTtcbiAgICB9XG5cbiAgICAmX19maWVsZCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogNnB4O1xuICAgICAgICBmbGV4OiAxIDEgMDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgc2VsZWN0LFxuICAgICAgICBpbnB1dCxcbiAgICAgICAgdGV4dGFyZWEge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgICAgICBmb250LXNpemU6IDEzLjVweDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXBhZ2UpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0ZXh0YXJlYSB7IHJlc2l6ZTogdmVydGljYWw7IH1cbiAgICB9XG5cbiAgICAmX19yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgfVxuXG4gICAgJl9faGludCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICB9XG5cbiAgICAmX19zdGF0dXMge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgICAgICBtaW4taGVpZ2h0OiAxZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCk7XG4gICAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBEZXRhaWx3ZWVyZ2F2ZSAoaW4gcWRuYXByby1tb2RhbClcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIEJlYW50d29vcmR0IFwid2FhciBrb210IGRpdCB2YW5kYWFuIGVuIHdhYXIgaGFuZ3QgaGV0IGFhblwiIHRlciBwbGVra2UuIERlXG4vLyAgdjEtcGFnaW5hIHRvb250IGluIHBsYWF0cyBoaWVydmFuIGVlbiBncmlqemUgb25kZXJzdHJlZXB0ZSBrcnVpbWVscmVnZWwgZGllXG4vLyAgamUgem9uZGVyIHdhYXJzY2h1d2luZyBlZW4gYW5kZXJlIG1vZHVsZSBpbiBnb29pdC5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLnd2Mi1kZXRhaWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDE4cHg7XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcpO1xuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTMuNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS41NTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5KTtcbiAgICAgICAgbWF4LXdpZHRoOiA2OGNoO1xuICAgIH1cblxuICAgICZfX3NlY3Rpb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcbiAgICB9XG5cbiAgICAmX19oZWFkIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICAgIH1cblxuICAgIGRsIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAvLyBMYWJlbGtvbG9tIG1lZWdyb2VpZW5kIG1hYXIgYmVncmVuc2QsIHpvZGF0IGVlbiBsYW5nZSB3YWFyZGUgbmlldCBkZVxuICAgICAgICAvLyBoZWxlIGRlZmluaXRpZWxpanN0IHVpdCBiYWxhbnMgdHJla3QuXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDEyMHB4LCBtYXgtY29udGVudCkgbWlubWF4KDAsIDFmcik7XG4gICAgICAgIGdhcDogN3B4IDE4cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICB9XG5cbiAgICBkdCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICAgIH1cblxuICAgIGRkIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHkpO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICAgIH1cblxuICAgIC8vIERvb3JzdGFwIG5hYXIgZGUgYnJvbi4gT3BlbnQgaW4gZWVuIG5pZXV3IHZlbnN0ZXI6IGplIGluc3BlY3RlZXJ0IHdhYXIgZWVuXG4gICAgLy8gdGFhayB2YW5kYWFuIGtvbXQsIGplIHZlcmxhYXQgamUgd2Vya2xpanN0IG5pZXQuXG4gICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDJweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIERldGFpbHBhZ2luYSAoLnVkcC0qKSDigJQgR0VERUVMREUgT1BNQUFLXG4vL1xuLy8gIERlemUgcmVnZWxzIHN0b25kZW4gaW4gZWVuIDxzdHlsZT4tYmxvayBpbiBFTEYgdGVtcGxhdGVzIHRlZ2VsaWprXG4vLyAgKGdlYnJ1aWtlcnMsIGVlbmhlZGVuLCBlZW5oZWlkc3R5cGVuLCBjbGnDq250ZW4sIGtldGVucywgbG9jYXRpZXMsIG5pZXV3cyxcbi8vICBkYXRhcHVudGVuLCBkYXRhcHVudHR5cGVuLCBjYXRlZ29yaWXDq24sIEtQSSdzIGVuIGRlIGdlbmVyaWVrZSBkZXRhaWxwYWdpbmEpLlxuLy8gIEVsa2Ugb3BtYWFrd2lqemlnaW5nIHdhcyBkYWFyZG9vciBlbGYga2VlciB3ZXJrLiBaZSBzdGFhbiBudSDDqcOpbiBrZWVyIGhpZXIuXG4vL1xuLy8gIFdBVCBISUVSIE5JRVQgSU4gSE9PUlQ6XG4vLyAg4oCiIERlIHZpZXIgZG96ZW4gZGllIGRlIEhPT0dURSBiZXBhbGVuIOKAlCAudWRwLWJvZHksIC51ZHAtbWFpbiwgLnVkcC1hdWRpdCBlblxuLy8gICAgLnVkcC1hdWRpdC1ib2R5LiBEaWUgdmVyc2NoaWxsZW4gcGVyIHBhZ2luYSBpbiBtaW4taGVpZ2h0L2hlaWdodCwgZW4gZGF0IGlzXG4vLyAgICBnZWVuIHNsb3JkaWdoZWlkOiBlZW4gYm94IG1ldCBvdmVyZmxvdzpoaWRkZW4ga3Jpamd0IGVlbiBtaW5pbXVtaG9vZ3RlIHZhblxuLy8gICAgbnVsIGVuIHdvcmR0IGRhbiBTVElMIHBsYXRnZWRydWt0LiBEaWUgYmxpanZlbiBwZXIgcGFnaW5hIHN0YWFuLlxuLy8gIOKAoiBBbGxlcyB3YXQgbWFhciBvcCDDqcOpbiBwYWdpbmEgYmVzdGFhdCAoaGV0IGJlZWxkYmxvayBiaWogZWVuaGVkZW4sIGRlXG4vLyAgICB0YWFscmlqZW4gYmlqIGRhdGFwdW50ZW4sIGRlIHRhZ3MgYmlqIG5pZXV3cykuXG4vL1xuLy8gIFdpamt0IGVlbiBwYWdpbmEgYmV3dXN0IGFmLCBsYWF0IGRlIHJlZ2VsIGRhbiBpbiBkYXQgZW5lIHRlbXBsYXRlIHN0YWFuOiBoZXRcbi8vICBzdHlsZS1ibG9rIHZhbiBkZSBwYWdpbmEga29tdCBOQSBzdHlsZS12MS5jc3MgZW4gd2ludCBkdXMgdmFuemVsZi5cbi8vXG4vLyAgRGUgd2FhcmRlbiBoaWVyb25kZXIgemlqbiBvdmVyZ2Vub21lbiB6b2FscyB6ZSB3YXJlbiwgem9kYXQgaGV0IG92ZXJoZXZlbGVuXG4vLyAgemVsZiBuaWV0cyBhYW4gaGV0IHVpdGVybGlqayB2ZXJhbmRlcnQuIFtLaW0gMTEuMDguMjAyNl1cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIOKUgOKUgCBQYW5lZWwg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4udWRwLXBhbmVsIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLWNhcmQpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItY2FyZCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctY2FyZCk7XG59XG4udWRwLXBoIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHBhZGRpbmc6IDhweCAxNHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIpO1xufVxuLnVkcC1wdCB7XG4gICAgZm9udC1zaXplOiAxMC41cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG4gICAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbn1cbi51ZHAtcGIge1xuICAgIHBhZGRpbmc6IDExcHggMTRweDtcbn1cblxuLy8g4pSA4pSAIEtvcCB2YW4gZGUgcGFnaW5hIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLnVkcC1oZXJvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLnVkcC1oZXJvLWxlZnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXMtNCk7XG59XG4udWRwLW5hbWUge1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nKTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcbn1cbi51ZHAtbWV0YSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICBtYXJnaW4tdG9wOiAzcHg7XG59XG4udWRwLWRvdCB7XG4gICAgY29sb3I6IHZhcigtLWMtYm9yZGVyLWNhcmQpO1xufVxuLnVkcC1sb2NrIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG59XG4udWRwLWxvY2stbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbn1cblxuLy8g4pSA4pSAIFZlbGRlbiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi51ZHAtZmcge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiAxMHB4IDE2cHg7XG59XG4udWRwLWZnLTIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbn1cbi51ZHAtZmctMyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbn1cbi51ZHAtZmwge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG59XG4udWRwLWZ2IHtcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHkpO1xufVxuLnVkcC1mZSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLy8g4pSA4pSAIEJld2Vya3Zvcm0g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4udWRwLWlucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiA1cHggOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLWNhcmQpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItYnRuKTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5KTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXBhZ2UpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiAyOHB4O1xufVxuLnVkcC1pbnB1dDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSg2NCw3MywxNTQsMC4xMik7XG59XG4udWRwLXRleHRhcmVhIHtcbiAgICBoZWlnaHQ6IDcycHg7XG4gICAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xufVxuLnVkcC1lZi1mb290ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogOHB4IDE0cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMik7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXBhZ2UpO1xufVxuLnVkcC1zYXZlLWJ0biB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1idG4pO1xuICAgIHBhZGRpbmc6IDVweCAxNHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbn1cbi51ZHAtc2F2ZS1idG46aG92ZXIge1xuICAgIG9wYWNpdHk6IDAuODg7XG59XG4udWRwLWNhbmNlbC1idG4ge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1idG4pO1xuICAgIHBhZGRpbmc6IDVweCAxNHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG4udWRwLWNhbmNlbC1idG46aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG59XG4udWRwLWVkaXQtYnRuIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMik7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwYWRkaW5nOiAycHggOHB4O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzLCBiYWNrZ3JvdW5kIDAuMTJzO1xufVxuLnVkcC1lZGl0LWJ0bjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1wYWdlKTtcbn1cbi51ZHAuZWRpdGluZyAudWRwLWVkaXQtYnRuIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4vLyDilIDilIAgQmFkZ2VzIGVuIGJlZWxkIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLnVkcC1iYWRnZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDNweDtcbiAgICBwYWRkaW5nOiAycHggN3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4udWRwLWJhZGdlLWdyYXkge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctcGFnZSk7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG59XG4udWRwLWJhZGdlLWdyZWVuIHtcbiAgICBiYWNrZ3JvdW5kOiAjRENGQ0U3O1xuICAgIGNvbG9yOiAjMTU4MDNEO1xufVxuLnVkcC1iYWRnZS1ibHVlIHtcbiAgICBiYWNrZ3JvdW5kOiAjREJFQUZFO1xuICAgIGNvbG9yOiAjMUQ0RUQ4O1xufVxuLnVkcC1iYWRnZS1wdXJwbGUge1xuICAgIGJhY2tncm91bmQ6ICNFREU5RkU7XG4gICAgY29sb3I6ICM2RDI4RDk7XG59XG4udWRwLWJhZGdlLXR5cGUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtbGlnaHQtcHVycGxlLTEwMCwgI0VFRjBGQik7XG4gICAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbn1cbi51ZHAtaW1nIHtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1jYXJkKTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXBhZ2UpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMik7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG4udWRwLWltZy13cmFwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLy8gSGVybyB2aXN1YWwgZm9yIGEgcmVjb3JkLnZpc3VhbCBvZiBraW5kIFwiaWNvblwiIChzZWUgZGV0YWlsLmh0bWwudHdpZydzXG4vLyBkZXRhaWxfaGVyb19tZWRpYSBibG9jayk6IHFkbmFwcm8tYWN0aXZpdHktaWNvbiBjYXJyaWVzIGZpeGVkIHR3by10b25lXG4vLyBhcnR3b3JrIGFuZCBpcyBub3QgdGludGFibGUsIHNvIHRoZSByZWNvcmQncyBjb2xvdXIgbGl2ZXMgb24gdGhpcyB0aWxlIOKAlFxuLy8gdGhlIHNhbWUgaWRlYSBhbmQgdGhlIHNhbWUgZWlnaHQgaG91c2UgYmFja2dyb3VuZCB0b2tlbnMgYXMgcWRuYS10YWJsZSdzXG4vLyAuY3Z0LXRpbGUgKHRhYmxlLnNjc3MpIGFuZCBxZG5hcHJvLWdyaWQtdGlsZSdzIHRpbnRzLCBhdCB0aGUgaGVybydzIG93blxuLy8gNDBweCBmb290cHJpbnQgKG1hdGNoZXMgLnVkcC1pbWcpLlxuLnVkcC12aXN1YWwtdGlsZSB7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItY2FyZCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0xMDApO1xufVxuLnVkcC12aXN1YWwtdGlsZS0tZ3JleSAgICAgICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApOyB9XG4udWRwLXZpc3VhbC10aWxlLS1yZWQgICAgICAgICB7IGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLXJlZC1iZyk7IH1cbi51ZHAtdmlzdWFsLXRpbGUtLXllbGxvdyAgICAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLXllbGxvdy1iZyk7IH1cbi51ZHAtdmlzdWFsLXRpbGUtLWdyZWVuICAgICAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLWdyZWVuLWJnKTsgfVxuLnVkcC12aXN1YWwtdGlsZS0tYmx1ZSAgICAgICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1ibHVlLWJnKTsgfVxuLnVkcC12aXN1YWwtdGlsZS0tYnJpZ2h0LWJsdWUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtMi1iZyk7IH1cbi51ZHAtdmlzdWFsLXRpbGUtLXBpbmsgICAgICAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtcGluay1iZyk7IH1cbi51ZHAtdmlzdWFsLXRpbGUtLXB1cnBsZSAgICAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLXB1cnBsZS1iZyk7IH1cbi51ZHAtdmlzdWFsLWF2YXRhciB7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG4udWRwLWltZy1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1jYXJkKTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNDIpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXM7XG59XG4udWRwLWltZy1vdmVybGF5LWljb24ge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLy8g4pSA4pSAIEF1ZGl0IHRyYWlsIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLnVkcC1hdWRpdC1ib2R5Ojotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6IDRweDtcbn1cbi51ZHAtYXVkaXQtYm9keTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYm9yZGVyLWNhcmQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cbi51ZHAtYXVkaXQtYm9keTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG59XG4udWRwLWF1ZGl0LWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi51ZHAtYXVkaXQtZmVlZCAudWRwLXRhIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xufVxuLnVkcC1hdWRpdC1oZHIge1xuICAgIHBhZGRpbmc6IDhweCAxNHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG4udWRwLWF1ZGl0LXBoIHtcbiAgICBmbGV4OiAxO1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICBwYWRkaW5nOiAxMnB4IDhweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItcm93KTtcbiAgICBib3JkZXI6IDEuNXB4IGRhc2hlZCB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWluLWhlaWdodDogNjBweDtcbn1cbi51ZHAtYXVkaXQtcGgtc3ViIHtcbiAgICBmb250LXNpemU6IDEwLjVweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cbi51ZHAtYXVkaXQtcGgtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xufVxuLnVkcC1hdWRpdC12IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1yb3cpO1xuICAgIHBhZGRpbmc6IDAgNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5KTtcbn1cbi51ZHAtbWdtdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMik7XG59XG4udWRwLW1nbXQtbGJsIHtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbn1cbi51ZHAtbWdtdC1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xufVxuLnVkcC1tZ210LXJvdzpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLnVkcC1tZ210LXNlY3Rpb24tbGJsIHtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xufVxuLnVkcC1tZ210LXZhbCB7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5KTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbn1cbi51ZHAtdGEge1xuICAgIGZvbnQtc2l6ZTogMTEuNXB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSk7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi51ZHAtdGQge1xuICAgIHdpZHRoOiA3cHg7XG4gICAgaGVpZ2h0OiA3cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG59XG4udWRwLXRkLmRpbSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1ib3JkZXItY2FyZCk7XG59XG4udWRwLXRlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDZweCAwO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIpO1xufVxuLnVkcC10ZTpsYXN0LW9mLXR5cGUge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4udWRwLXRsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4udWRwLXRtIHtcbiAgICBmb250LXNpemU6IDEwLjVweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICBtYXJnaW4tdG9wOiAxcHg7XG59XG5cbi8vIOKUgOKUgCBPdmVyaWcg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4udWRwLW1haW46Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogNHB4O1xufVxuLnVkcC1tYWluOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuLnVkcC1tYWluOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4udWRwLmVkaXRpbmcgLnVkcC1pbWctd3JhcCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnVkcC5lZGl0aW5nIC51ZHAtaW1nLXdyYXA6aG92ZXIgLnVkcC1pbWctb3ZlcmxheSB7XG4gICAgb3BhY2l0eTogMTtcbn1cbltpZF49XCJ1ZHAtZWYtXCJdLnVkcC1lZi1vcGVuIHtcbiAgICBtYXgtaGVpZ2h0OiAyMDAwcHg7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgYW5pbWF0aW9uOiB1ZHBSb2xsRG93biAwLjI2cyBjdWJpYy1iZXppZXIoMC40LDAsMC4yLDEpIGJvdGg7XG59XG5baWRePVwidWRwLXJvLVwiXS51ZHAtcm8taGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUHVsc2Ug4oCUIHBhZ2luYXN0aWpsZW4gKFc5LCBmYXNlIDQ6IDEwLjA4LjIwMjYpXG4vL1xuLy8gU3RvbmQgdG90IDEwLjA4LjIwMjYgYWxzIHR3ZWUgPHN0eWxlPi1ibG9ra2VuIElOIGRlIHZpZXdzOiA5MDggcmVnZWxzIGluXG4vLyBkZXRhaWwuaHRtbCBlbiA0OTIgaW4gaW5kZXguaHRtbCwgb3AgZWVuIGJlc3RhbmQgdmFuIDM4ODggcmVzcC4gMjQ3MiByZWdlbHMuXG4vLyBEYWFybWVlIHdhcyB0d2Vlw6tuaGFsZmR1aXplbmQgcmVnZWxzIG9wbWFhayBhbGxlZW4gdGUgdmluZGVuIGRvb3IgaW4gZWVuXG4vLyBUd2lnLXRlbXBsYXRlIHRlIHNjcm9sbGVuLCBlbiB3ZXJkIGVsa2Uga2xlaW5lIHdpanppZ2luZyBlZW4gem9la3RvY2h0LlxuLy9cbi8vIOKaoO+4jyBDQVNDQURFLU9SREUuIEluIGVlbiA8c3R5bGU+LWJsb2sgaW4gZGUgdmlldyBsYW5kZGUgZGV6ZSBvcG1hYWsgQUNIVEVSXG4vLyBzdHlsZS12MS5jc3MgZW4gd29uIGhpaiBkdXMgb3AgVk9MR09SREUsIG5pZXQgb3Agc3BlY2lmaWNpdGVpdC4gRGFhcm9tIGhvb3J0XG4vLyBkZSBAdXNlIHZhbiBkaXQgYmVzdGFuZCBpbiBzdHlsZS12MS5zY3NzIE7DgSBgY29tcG9uZW50cy9jb21wb25lbnRzYCB0ZSBzdGFhblxuLy8gKGRhdCBpcyB3YWFyIGRlIHFkbmFwcm8tKi1jb21wb25lbnRlbiB2YW5kYWFuIGtvbWVuKSBlbiB2w7PDs3IgaGV0IHZlbmRvci1ibG9rLlxuLy8gWmV0IGplIGhlbSBob2dlcm9wLCBkYW4ga2FuIGVlbiBjb21wb25lbnQgZGV6ZSBwYWdpbmEtb3ZlcnJpZGVzIGdhYW4gd2lubmVuIOKAlFxuLy8gZW4gZGF0IHZhbHQgcGFzIG9wIGFscyBpZXRzIGVyIHN1YnRpZWwgYW5kZXJzIHVpdHppZXQsIG5pZXQgYWxzIGVlbiBmb3V0LlxuLy9cbi8vIOKaoO+4jyBOaWV0cyB1aXQgZGV6ZSBiZXN0YW5kZW4gaXMgV0VHR0VMQVRFTiBvZiBcIm9wZ2VzY2hvb25kXCIgdGlqZGVucyBkZVxuLy8gdmVyaHVpemluZy4gV2F0IGVyIGRvb2QgdWl0emlldCBpcyBkYXQgdmFhayBuaWV0OiBlciB6aXR0ZW5cbi8vIGJld2Vya3N0YW5kLXBvb3J0ZW4gZW4gZGlzcGxheS1yZWdlbHMgdHVzc2VuIGRlIG9wc211ayAoemllIGRlIHByb2plY3Rlbi1cbi8vIHBhZ2luYSdzLCB3YWFyIHByZWNpZXMgZGF0IGVlbiBrZWVyIG1pc2dpbmcpLiBPcHJ1aW1lbiBpcyBlZW4gYXBhcnRlXG4vLyBiZXNsaXNzaW5nIG1ldCBlZW4gZWlnZW4gdmVyaWZpY2F0aWUuXG4vL1xuLy8gRGUgdHdlZSBwYWdpbmEncyBzdGFhbiBoaWVyb25kZXIgaW4gaHVuIGVpZ2VuIHNlY3RpZSwgaW4gZGUgb29yc3Byb25rZWxpamtlXG4vLyB2b2xnb3JkZSBlbiBtZXQgaHVuIGVpZ2VuIGNvbW1lbnRhYXIuIEdlZW4gZW5rZWxlIHJlZ2VsIGlzIGhlcnNjaHJldmVuLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIDEuIERFVEFJTFBBR0lOQSAodjEvcHVsc2UvZGV0YWlsLmh0bWwpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8qIFB1bHNlLWNhbXBhZ25lcGFnaW5hIOKAlCBwYWdpbmEtZ2VzY29vcHQgKHB1bHNlLSopLlxuICAgTGV0IG9wOiBnZWVuIFR3aWctY29tbWVudGFhciBpbiBkaXQgYmxvayAoZGF0IGJyZWVrdCBkZSBoZWxlIHBhZ2luYSkuICovXG5cbi8qIC0tLSBLb3A6IMOpw6luIHdpdHRlIGxhYWcgZGllIGRvb3Jsb29wdCB2YW5hZiBkZSBicmVhZGNydW1iLWJhbGsgLS0tLS0tLS0tLSAqL1xuLyogWmVsZmRlIFwiZ2VvcGVuZGUga2FhcnRcIi1pZGlvb20gYWxzIGRlIHRha2VubGlqc3RwYWdpbmE6IGVlbiBkb29yc2NoaWpuZW5kZVxuICAgd2l0dGUgbGFhZyBtZXQgZWVuIHZlcmxvb3AtbWFza2VyLCB6b2RhdCBkZSBwYWFyc2UgcGFnaW5hIGVyb25kZXIgYmVnaW50LiAqL1xuLnB1bHNlLWRldGFpbC1oZWFkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHBhZGRpbmc6IDE4cHggMjhweCAyMnB4O1xufVxuLnB1bHNlLWRldGFpbC1oZWFkZXI6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgei1pbmRleDogLTE7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KSBzYXR1cmF0ZSgxLjYpO1xuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpIHNhdHVyYXRlKDEuNik7XG4gICAgLXdlYmtpdC1tYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMDAwIDQwJSwgcmdiYSgwLCAwLCAwLCAwKSAxMDAlKTtcbiAgICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMDAwIDQwJSwgcmdiYSgwLCAwLCAwLCAwKSAxMDAlKTtcbn1cbi8qIC0tLSBDYW1wYWduZWtvcDogaGVyby1rb3BpZSB2YW4gZGUgcHJvamVjdGVucGFnaW5hIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogMS1vcC0xIGdla29waWVlcmQgdmFuIC5wdjItaGVybyBjLnMuIGluIHByb2plY3RzLXYyLmh0bWwgKHJlZ2VscyAyMjktMzA3KTpcbiAgIGZvdG8gbWV0IHZlcmxvb3Atb3ZlcmxheSwgcm9uZGUgZ2xhemVuIHRlcnVna25vcCwgd2l0dGUgdGl0ZWwsIG9tc2NocmlqdmluZ1xuICAgZW4gbWV0YSwgYXZhdGFyLXN0YWNrIG1ldCBwbHVza25vcCwgZW4gaGV0IGFjdGllY2x1c3RlciAoZmF2b3JpZXQgK1xuICAgbWVlci1tZW51KSByZWNodHNib3Zlbi4gUHJlZml4IGlzIC5wdWxzZS1oZXJvIGkucC52LiAucHYyLWhlcm87IGRlIG5pZXV3ZVxuICAga29wLW1hcmt1cCBkaWUgZGV6ZSBrbGFzc2VuIGdlYnJ1aWt0IGtvbXQgaW4gZWVuIHZvbGdlbmRlIGthYXJ0LlxuXG4gICBBQU5OQU1FLCBub2cgdGUgY2hlY2tlbiBiaWogZGllIG1hcmt1cC1rYWFydDogLnB1bHNlLWhlcm8geml0IHJlY2h0c3RyZWVrc1xuICAgSU4gLnB1bHNlLWRldGFpbC1oZWFkZXIgKGhpZXJib3ZlbiksIHdhYXJ2YW4gZGUgcGFkZGluZyAoMThweCAyOHB4IDIycHgpXG4gICBoaWVyIG1ldCBuZWdhdGlldmUgbWFyZ2VzIHdvcmR0IG9wZ2VoZXZlbiB6b2RhdCBkZSBmb3RvIOKAlCBuZXQgYWxzXG4gICAucHYyLWhlcm8gb3AgZGUgcHJvamVjdGVucGFnaW5hIOKAlCB0b3QgZGUgcmFuZCB2YW4gZGUga29wIGxvb3B0LiBOZXN0IGRlXG4gICBtYXJrdXAgYW5kZXJzLCBkYW4gbW9ldCBkZXplIG5lZ2F0aWV2ZSBtYXJnZSBtZWUgdmVyaHVpemVuLiAqL1xuLnB1bHNlLWhlcm8ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAvKiBPbmUgc291cmNlIGZvciB0aGUgaGVybyBoZWlnaHQ7IHRoZSBicmVha3BvaW50cyBiZWxvdyBhbmQgdGhlXG4gICAgICAgZ2xhc3MtbmF2YmFyIHB1bGwtdXAgYm90aCByZWFkIHRoaXMgdG9rZW4gaW5zdGVhZCBvZiByZS1zdGF0aW5nIHB4LiAqL1xuICAgIC0tcHVsc2UtaGVyby1oOiAyODBweDtcbiAgICBoZWlnaHQ6IHZhcigtLXB1bHNlLWhlcm8taCk7XG4gICAgbWFyZ2luOiAtMThweCAtMjhweCAtMjJweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBwYWRkaW5nOiAyNHB4IDI4cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS0yMDApO1xuICAgIC8qIE5hYW0gdm9vciBkZSBjcm9zcy1kb2N1bWVudCB2aWV3LXRyYW5zaXRpb24gaGllcm9uZGVyLiAqL1xuICAgIHZpZXctdHJhbnNpdGlvbi1uYW1lOiBwdWxzZS1oZXJvLXBob3RvO1xufVxuLnB1bHNlLWhlcm8tb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIC8qIFJlYWRhYmlsaXR5IHNjcmltICgxOS4wOC4yMDI2LCBLaW0pOiBQdWxzZSBjb3ZlcnMgYXJlIG9mdGVuIGxpZ2h0LFxuICAgICAgIHBhc3RlbCBpbGx1c3RyYXRpb25zIHdoZXJlIHRoZSBwdjIgZ3JhZGllbnQgaXMgdG9vIHRoaW4gYXJvdW5kIHRoZVxuICAgICAgIHRpdGxlIHpvbmUuIFR3byBzdGFja2VkIGdyYWRpZW50czogYSBzdHJvbmdlciBib3R0b20gc2NyaW0gdGhhdFxuICAgICAgIHN0YXJ0cyBoaWdoZXIsIHBsdXMgYSBsZWZ0LXNpZGUgc2NyaW0gb3ZlciB0aGUgdGV4dCBjb2x1bW4gc28gdGhlXG4gICAgICAgcmlnaHQgc2lkZSBvZiB0aGUgaWxsdXN0cmF0aW9uIHN0YXlzIHZpc2libGUuIFdvcmtzIHRvZ2V0aGVyIHdpdGhcbiAgICAgICB0aGUgdGV4dC1zaGFkb3cgb24gLnB1bHNlLWhlcm8taW5mbyBiZWxvdy4gKi9cbiAgICBiYWNrZ3JvdW5kOlxuICAgICAgICBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICB0byByaWdodCxcbiAgICAgICAgICAgIHJnYmEoMCwgMCwgMCwgMC4zOCkgMCUsXG4gICAgICAgICAgICByZ2JhKDAsIDAsIDAsIDApIDYwJVxuICAgICAgICApLFxuICAgICAgICBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICB0byB0b3AsXG4gICAgICAgICAgICByZ2JhKDAsIDAsIDAsIDAuNzgpIDAlLFxuICAgICAgICAgICAgcmdiYSgwLCAwLCAwLCAwLjM4KSA1MCUsXG4gICAgICAgICAgICByZ2JhKDAsIDAsIDAsIDApIDEwMCVcbiAgICAgICAgKTtcbn1cbi5wdWxzZS1oZXJvLWJhY2sge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDIwcHg7XG4gICAgbGVmdDogMjBweDtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMwKTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIwKTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHotaW5kZXg6IDI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTUwbXMgZWFzZTtcbn1cbi5wdWxzZS1oZXJvLWJhY2s6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzQpOyB9XG4ucHVsc2UtaGVyby1iYWNrIHFkbmFwcm8taWNvbiB7IGNvbG9yOiAjZmZmOyB9XG5cbi5wdWxzZS1oZXJvLWluZm8ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIC8qIEluaGVyaXRlZCBieSB0aXRsZSwgZGVzY3JpcHRpb24gYW5kIG1ldGE6IGNhcnJpZXMgdGhlIGxpZ2h0ZXN0IHNwb3RzXG4gICAgICAgb2YgYSBuZWFyLXdoaXRlIGlsbHVzdHJhdGlvbiB3aXRob3V0IHJlYWRpbmcgYXMgYSBkcm9wIHNoYWRvdy4gKi9cbiAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC40MCk7XG59XG5cbi8qIFRpdGVsICsgc3RhdHVzY2hpcCBvcCDDqcOpbiByaWouIC5wdjItaGVybyBoZWVmdCBnZWVuIGNoaXAgbmFhc3QgZGUgdGl0ZWwg4oCUXG4gICBkYXQgaXMgZWlnZW4gYWFuIGRlIGNhbXBhZ25la29wIOKAlCBkdXMgZGV6ZSByaWotd3JhcHBlciBpcyBuaWV1dy4gRGUgY2hpcCB6ZWxmXG4gICBpcyBlZW4gcWRuYXByby10YWcgaW4gZWVuIHBhc3RlbGtsZXVyIChfY2FtcGFpZ24taGVhZC5odG1sKSwgZW4gTklFVCBkZXplbGZkZVxuICAgdm9ybSBhbHMgZGUgcGlsIG9wIGRlIHRlZ2VsOiBkaWUgbGlndCBvcCBlZW4gb21zbGFnZm90byBlbiBnZWJydWlrdCBkYWFyb21cbiAgIHZhcmlhbnQ9XCJnbGFzc1wiLiBUd2VlIHBsZWtrZW4sIHR3ZWUgYWNodGVyZ3JvbmRlbiwgaGV0emVsZmRlIFdPT1JELiAqL1xuLnB1bHNlLWhlcm8tdGl0bGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuLnB1bHNlLWhlcm8tbmFtZSB7XG4gICAgZm9udC1zaXplOiAyNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG4ucHVsc2UtaGVyby1zdGF0dXMge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG4gICAgcGFkZGluZzogNHB4IDlweCA0cHggN3B4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNjQsIDczLCAxNTQsIDAuNzgpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yMik7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCkgc2F0dXJhdGUoMS4yKTtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpIHNhdHVyYXRlKDEuMik7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMnB4O1xufVxuLnB1bHNlLWhlcm8tc3RhdHVzIHFkbmFwcm8taWNvbiB7IGNvbG9yOiAjZmZmOyBmbGV4LXNocmluazogMDsgfVxuXG4vKiBPbXNjaHJpanZpbmc6IHdpdHRlIHRla3N0IG9wIGRlIGZvdG8sIDMgcmVnZWxzIGFmZ2VrYXB0LiBHZWVuIGVxdWl2YWxlbnQgaW5cbiAgIC5wdjItaGVybyAoZGllIHRvb250IGdlZW4gb21zY2hyaWp2aW5nKSDigJQgdm9ybSBlbiB0b29uIHZvbGdlbiB3ZWwgZGV6ZWxmZGVcbiAgIFwid2l0LW9wLWZvdG9cIi10YWFsIGFscyAucHYyLW9yZyAocmdiYSgyNTUsMjU1LDI1NSwwLjcyKSArIHRleHQtc2hhZG93KS4gKi9cbi5wdWxzZS1oZXJvLWRlc2NyIHtcbiAgICBtYXJnaW46IDZweCAwIDA7XG4gICAgbWF4LXdpZHRoOiA2NDBweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nik7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIC13ZWJraXQtbGluZS1jbGFtcDogMztcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5wdWxzZS1oZXJvLW1ldGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG59XG4ucHVsc2UtaGVyby1tZXRhLWl0ZW0ge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYyKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA1cHg7XG59XG4ucHVsc2UtaGVyby1tZXRhLWl0ZW0gcWRuYXByby1pY29uIHsgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42Mik7IH1cblxuLyogQXZhdGFyLXN0YWNrICsgcGx1c2tub3A6IGtvcGllIHZhbiAucHYyLW1lbWJlcnMgLyAucHYyLW1lbWJlcnMtYWRkLiBEZVxuICAgb3ZlcmxhcHBlbmRlIHJvbmRlIGF2YXRhcnMgemVsZiBrb21lbiB1aXQgaGV0IGdlZGVlbGRlIHFkbmFwcm8tYXZhdGFyLXN0YWNrXG4gICBjb21wb25lbnQgKHNjc3MvY29tcG9uZW50cy92Mi9hdmF0YXItc3RhY2svX2F2YXRhci1zdGFjay5zY3NzKSDigJQgaGllclxuICAgYWxsZWVuIGRlIGtsaWtiYXJlIG9taHVsbGVuZGUgcGlsIGVuIGRlIHJvbmRlIGdsYXplbiBwbHVza25vcC4gKi9cbi5wdWxzZS1oZXJvLW1lbWJlcnMge1xuICAgIGFsbDogdW5zZXQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDRweCA4cHggNHB4IDRweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNTBtcyBlYXNlO1xufVxuLnB1bHNlLWhlcm8tbWVtYmVyczpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7IH1cbi5wdWxzZS1oZXJvLW1lbWJlcnMtYWRkIHtcbiAgICB3aWR0aDogMzRweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMwKTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjb2xvcjogI2ZmZjtcbn1cbi5wdWxzZS1oZXJvLW1lbWJlcnMtYWRkIHFkbmFwcm8taWNvbiB7IGNvbG9yOiAjZmZmOyB9XG5cbi8qIEFjdGllY2x1c3RlciAoZmF2b3JpZXQgKyBtZWVyLW1lbnUpLCBrb3BpZSB2YW4gLnB2Mi1oZXJvLWFjdGlvbnMgaW5jbC4gZGVcbiAgIGZhdm9yaXRlLWJ1dHRvbiBob3Zlci1yZWdlbC4gKi9cbi5wdWxzZS1oZXJvLWFjdGlvbnMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDI2cHg7XG4gICAgcmlnaHQ6IDI4cHg7XG4gICAgei1pbmRleDogMztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xufVxuLnB1bHNlLWhlcm8tYWN0aW9ucyBxZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzApO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbn1cbi5wdWxzZS1oZXJvLWFjdGlvbnMgcWRuYXByby1mYXZvcml0ZS1idXR0b246aG92ZXI6bm90KC5mYXZvcml0ZS1idXR0b24tZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzApO1xufVxuLnB1bHNlLWhlcm8tbW9yZSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuLnB1bHNlLWhlcm8tbWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogY2FsYygxMDAlICsgOHB4KTtcbiAgICByaWdodDogMDtcbiAgICB6LWluZGV4OiAxMDtcbn1cbi5wdWxzZS1oZXJvLW1lbnVbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLyogLS0tIENyb3NzLWRvY3VtZW50IHZpZXctdHJhbnNpdGlvbiArIGZhbGxiYWNrIGVudHJhbmNlIC0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyog4pqg77iPIEdFRU4gbmlldXcgYEB2aWV3LXRyYW5zaXRpb24geyBuYXZpZ2F0aW9uOiBhdXRvOyB9YC1ibG9rIGhpZXI6IGRhdCBzdGFhdFxuICAgYWwgZ2xvYmFhbCBpbiBiYXNlLnNjc3MgKHJlZ2VsIDEwKSwgZW4gZGF0IGJlc3RhbmQgY29tcGlsZWVydCBtZWUgaW5cbiAgIGRlemVsZmRlIHN0eWxlLXYxLmNzcy4gRWVuIHR3ZWVkZSBgQHZpZXctdHJhbnNpdGlvbmAtYXQtcnVsZSB6b3UgcHV1clxuICAgb3ZlcmJvZGlnIHppam4g4oCUIGRlIHNjb3BlIGhpZXJvbmRlciBwYWt0IGFsbGVlbiBoZXQgbW9ycGgtZ2VkcmFnIHZhbiBoZXRcbiAgIG1ldCBuYWFtIGdlbWVya3RlIGhlcm8tZWxlbWVudC4gKi9cbjo6dmlldy10cmFuc2l0aW9uLW9sZChwdWxzZS1oZXJvLXBob3RvKSxcbjo6dmlldy10cmFuc2l0aW9uLW5ldyhwdWxzZS1oZXJvLXBob3RvKSB7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgICAvKiBaZWxmZGUgYmV3b2dlbiBcImdyb2VpXCItZWFzaW5nIGFscyBkZSBrYWFydC1lbnRyZWUgb3AgZGUgcHJvamVjdGVuLSBlblxuICAgICAgIGNhbXBhZ25lZ3JpZCAocHYyLWNhcmQtZW50ZXIgLyBwdWxzZS1jYXJkLWVudGVyKTogZWVuIGxpY2h0ZSBvdmVyc2hvb3RcbiAgICAgICBwYXN0IGJpaiBoZXQgZ2V2b2VsIHZhbiBlZW4gdGVnZWwgZGllIHVpdGdyb2VpdCB0b3Qgdm9sbGVkaWcgc2NoZXJtLiAqL1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjY0LCAxKTtcbn1cblxuLyogRmFsbGJhY2sgdm9vciBicm93c2VycyB6b25kZXIgY3Jvc3MtZG9jdW1lbnQgdmlldy10cmFuc2l0aW9uczogZGV6ZWxmZGVcbiAgIGdyb2VpLXZhbnVpdC1rbGVpbi1tZXQtYWZnZXJvbmRlLWhvZWtlbiBvcCBkZSBrb3AgemVsZiwgbWV0IGRlemVsZmRlXG4gICBlYXNpbmcgYWxzIGhpZXJib3Zlbi4gS2xhc3NlIHdvcmR0IGRvb3IgZGUgcGFnaW5hLUpTIGdlemV0L3ZlcndpamRlcmQgb3BcbiAgIGRlIGtvcCAoa2FhcnQgMyk7IHpvbmRlciBkaWUga2xhc3NlIHZlcmFuZGVydCBlciBuaWV0cy4gKi9cbkBrZXlmcmFtZXMgcHVsc2UtaGVyby1lbnRlciB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cbn1cbi5wdWxzZS1oZXJvLS1lbnRlciB7XG4gICAgYW5pbWF0aW9uOiBwdWxzZS1oZXJvLWVudGVyIDUwMG1zIGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjY0LCAxKSBib3RoO1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAucHVsc2UtaGVyby0tZW50ZXIgeyBhbmltYXRpb246IG5vbmU7IH1cbn1cblxuLyogLS0tIFB1YmxpY2Vlci1rbm9wOiBib3JkZXItYmVhbSAoMTkuMDguMjAyNiwgS2ltKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIERlIHdpdHRlIFB1YmxpY2Vlci1rbm9wIChzZWNvbmRhcnktd2hpdGUsIHppZSBfY2FtcGFpZ24taGVhZC5odG1sKSBrcmlqZ3RcbiAgIGVlbiBsaWNodHN0cmVlcCBkaWUgbGFuZ3MgZGUgcmFuZCBsb29wdC4gVGVjaG5pZWs6IGVlbiA6OmFmdGVyLXJpbmcgbmV0XG4gICBidWl0ZW4gZGUga25vcCAoaW5zZXQgLTNweCwgMnB4IGRpaykgbWV0IGVlbiBjb25pYy1ncmFkaWVudCB3YWFydmFuIGRlXG4gICBzdGFydGhvZWsgZ2VhbmltZWVyZCB3b3JkdCB2aWEgZWVuIGdlcmVnaXN0cmVlcmRlIGN1c3RvbSBwcm9wZXJ0eTsgZGVcbiAgIGR1YmJlbGUgbWFzayBtZXQgZXhjbHVkZSBob3VkdCBhbGxlZW4gZGUgcmluZyBvdmVyLiBCcm93c2VycyB6b25kZXJcbiAgIEBwcm9wZXJ0eS1pbnRlcnBvbGF0aWUgdG9uZW4gZWVuIHN0aWxzdGFhbmRlLCBzdWJ0aWVsZSByaW5nOiBuZXR0ZVxuICAgdGVydWd2YWwsIGdlZW4ga2Fwb3R0ZSBhbmltYXRpZS4gQWxsZWVuIG9wIGRlemUgZW5lIGtub3AsIGR1c1xuICAgcGFnaW5hLWdlc2Nvb3B0IGVuIG5pZXQgaW4gZGUgYnV0dG9uLWNvbXBvbmVudC4gKi9cbkBwcm9wZXJ0eSAtLXB1bHNlLWJlYW0tYW5nbGUge1xuICAgIHN5bnRheDogXCI8YW5nbGU+XCI7XG4gICAgaW5oZXJpdHM6IGZhbHNlO1xuICAgIGluaXRpYWwtdmFsdWU6IDBkZWc7XG59XG4ucHVsc2UtaGVyby1hY3Rpb25zICNwdWxzZS1wdWJsaXNoLWJ0biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnB1bHNlLWhlcm8tYWN0aW9ucyAjcHVsc2UtcHVibGlzaC1idG46OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogLTNweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMXB4OyAvKiBrbm9wLXJhZGl1cyA4cHggKyAzcHggb2Zmc2V0ICovXG4gICAgcGFkZGluZzogMnB4OyAgICAgICAgLyogcmluZ2Rpa3RlICovXG4gICAgYmFja2dyb3VuZDogY29uaWMtZ3JhZGllbnQoXG4gICAgICAgIGZyb20gdmFyKC0tcHVsc2UtYmVhbS1hbmdsZSksXG4gICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNikgMHR1cm4gMC43MnR1cm4sXG4gICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45OCkgMC44NnR1cm4sXG4gICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNikgMXR1cm5cbiAgICApO1xuICAgIC13ZWJraXQtbWFzazogbGluZWFyLWdyYWRpZW50KCMwMDAgMCAwKSBjb250ZW50LWJveCwgbGluZWFyLWdyYWRpZW50KCMwMDAgMCAwKTtcbiAgICAtd2Via2l0LW1hc2stY29tcG9zaXRlOiB4b3I7XG4gICAgbWFzazogbGluZWFyLWdyYWRpZW50KCMwMDAgMCAwKSBjb250ZW50LWJveCwgbGluZWFyLWdyYWRpZW50KCMwMDAgMCAwKTtcbiAgICBtYXNrLWNvbXBvc2l0ZTogZXhjbHVkZTtcbiAgICBhbmltYXRpb246IHB1bHNlLWJlYW0tc3BpbiAzLjJzIGxpbmVhciBpbmZpbml0ZTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbkBrZXlmcmFtZXMgcHVsc2UtYmVhbS1zcGluIHtcbiAgICB0byB7IC0tcHVsc2UtYmVhbS1hbmdsZTogMXR1cm47IH1cbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLnB1bHNlLWhlcm8tYWN0aW9ucyAjcHVsc2UtcHVibGlzaC1idG46OmFmdGVyIHsgYW5pbWF0aW9uOiBub25lOyB9XG59XG5cbi8qIC0tLSBHbGFzcyBuYXZiYXIgYm92ZW4gZGUgaGVybyAoMTkuMDguMjAyNiwgS2ltKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBaZWxmZGUgZ2VkcmFnIGFscyBkZSBwcm9qZWN0ZW5wYWdpbmEgKC5wdjItaGFzLW9wZW4tcHJvamVjdCBpblxuICAgcHJvamVjdHMtdjIuaHRtbCwgcmVnZWxzIDg3My04OTIpOiBvcCBkZSBkcmllIENBTVBBR05FcGFnaW5hJ3Mgd29yZHQgZGVcbiAgIG5hdmJhciBnbGFzIGVuIGxvb3B0IGRlIGhlcm9mb3RvIGVyb25kZXJkb29yLiBEZSB2aWV3cyB6ZXR0ZW4gZGFhcnZvb3JcbiAgIGJvZHlDbGFzcyBcInB1bHNlLWNhbXBhaWduLXBhZ2VcIjsgaGV0IFB1bHNlLW92ZXJ6aWNodCBob3VkdCBkZSBnZXdvbmVcbiAgIG5hdmJhciwgcHJlY2llcyB6b2FscyBoZXQgcHJvamVjdGVub3ZlcnppY2h0LiBEZSBuYXZiYXIgaXMgc3RpY2t5IGVuXG4gICByZXNlcnZlZXJ0IHppam4gZWlnZW4gaG9vZ3RlIGluIGRlIGZsb3csIGR1cyBhbGxlZW4gZGUgbmVnYXRpZXZlIG1hcmdlXG4gICB0cmVrdCBkZSBmb3RvIGVyb25kZXI7IGRlIGhlcm8gd29yZHQgZXZlbnZlZWwgaG9nZXIgem9kYXQgaGV0IHppY2h0YmFyZVxuICAgZGVlbCBvbmRlciBkZSBmcm9zdCBnZWxpamsgYmxpamZ0LiBEZSB0ZXJ1Z2tub3AgemFrdCBtZWUgb25kZXIgZGUgbmF2YmFyXG4gICB1aXQgKGVlbiAoMCwyLDEpLXNlbGVjdG9yLCB3aW50IGR1cyBvb2sgdmFuIGRlIDc2MHB4LXJlZ2VsIGhpZXJvbmRlcikuICovXG5ib2R5LnB1bHNlLWNhbXBhaWduLXBhZ2UgLnFkbmEtbmF2YmFyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpIHNhdHVyYXRlKDEuNik7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCkgc2F0dXJhdGUoMS42KTtcbn1cbmJvZHkucHVsc2UtY2FtcGFpZ24tcGFnZSAucHVsc2UtaGVybyB7XG4gICAgbWFyZ2luLXRvcDogY2FsYygtMThweCAtIHZhcigtLXFkbmEtdG9wYmFyLWgpKTtcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tcHVsc2UtaGVyby1oKSArIHZhcigtLXFkbmEtdG9wYmFyLWgpKTtcbn1cbmJvZHkucHVsc2UtY2FtcGFpZ24tcGFnZSAucHVsc2UtaGVyby1iYWNrIHtcbiAgICB0b3A6IGNhbGModmFyKC0tcWRuYS10b3BiYXItaCkgKyAxNHB4KTtcbn1cblxuLyogLS0tIFJlc3BvbnNpdmU6IHRhYmxldCBlbiB0ZWxlZm9vbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC5wdjItaGVybyB6ZWxmIGhlZWZ0IGluIHByb2plY3RzLXYyLmh0bWwgR0VFTiBlaWdlbiBtZWRpYS1xdWVyaWVzIChoZXRcbiAgIGVuaWdlIEBtZWRpYS1ibG9rIGluIGRhdCBiZXN0YW5kLCByZWdlbCAxMDYsIGdhYXQgb3ZlciAucHYyLWJnLWlsbHVzdHJhdGlvblxuICAgZW4gaGVlZnQgbmlldHMgbWV0IGRlIGhlcm8gdGUgbWFrZW4pIOKAlCBlciB2YWx0IGR1cyBuaWV0cyAxLW9wLTEgdGVcbiAgIHNwaWVnZWxlbi4gT25kZXJzdGFhbmRlIHR3ZWUgYnJlYWtwb2ludHMgemlqbiBlaWdlbiwgYmVob3VkZW5kZSBrZXV6ZXMsXG4gICBvcCBkZXplbGZkZSBhZC1ob2MgbWFuaWVyIGFscyBkZSByZXN0IHZhbiBkaXQgYmVzdGFuZCBhbCBkb2V0XG4gICAoLnB1bHNlLWRldGFpbC1ib2R5IG9wIDExMDBweCwgLnB1bHNlLXVuaXRzLXJvdyBvcCA3NjBweCkuIE5vZyB0ZVxuICAgdmVyaWZpw6tyZW4gem9kcmEgZGUgZWNodGUgbWFya3VwIChrYWFydCAzKSBlciBpcy4gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTAwcHgpIHtcbiAgICAucHVsc2UtaGVybyB7IC0tcHVsc2UtaGVyby1oOiAyNDBweDsgcGFkZGluZzogMjBweCAyNHB4OyB9XG4gICAgLnB1bHNlLWhlcm8tbmFtZSB7IGZvbnQtc2l6ZTogMjJweDsgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2MHB4KSB7XG4gICAgLnB1bHNlLWhlcm8geyAtLXB1bHNlLWhlcm8taDogMjAwcHg7IHBhZGRpbmc6IDE2cHggMThweDsgfVxuICAgIC5wdWxzZS1oZXJvLW5hbWUgeyBmb250LXNpemU6IDE5cHg7IH1cbiAgICAucHVsc2UtaGVyby1kZXNjciB7IGZvbnQtc2l6ZTogMTNweDsgLXdlYmtpdC1saW5lLWNsYW1wOiAyOyB9XG4gICAgLnB1bHNlLWhlcm8tYWN0aW9ucyB7IGJvdHRvbTogMTZweDsgcmlnaHQ6IDE2cHg7IGdhcDogOHB4OyB9XG4gICAgLnB1bHNlLWhlcm8tYmFjayB7IHRvcDogMTRweDsgbGVmdDogMTRweDsgd2lkdGg6IDM2cHg7IGhlaWdodDogMzZweDsgfVxufVxuXG4vKiBQdWJsaWNhdGllbWVsZGluZ2VuOiBkZSBzZXJ2ZXIgZ2VlZnQgYWxsZSBwcm9ibGVtZW4gdGVnZWxpamsgdGVydWcsIGR1cyB6ZVxuICAga29tZW4gYWxzIGxpanN0amUgb25kZXIgZGUga29wIHRlIHN0YWFuIGluIHBsYWF0cyB2YW4gw6nDqW4gcGVyIHBvZ2luZy5cblxuICAg4pqg77iPIG1hcmdpbi10b3AgMzZweCwgbmlldCAxNHB4ICgyOC4wOC4yMDI2LCBLaW0pOiAucHVsc2UtaGVybyBoZWVmdFxuICAgYG1hcmdpbjogLTE4cHggLTI4cHggLTIycHg7YCAocmVnZWwgNjkpIG9tIGRlIGhlYWRlci1wYWRkaW5nIHRlIG5lZ2VyZW5cbiAgIHpvZGF0IGRlIGZvdG8gdG90IGRlIHJhbmQgbG9vcHQuIERpZSBtYXJnaW4tYm90dG9tIHZhbiAtMjJweCBjb2xsYXB0IG1ldFxuICAgZGUgbWFyZ2luLXRvcCB2YW4gZGV6ZSBiYWxrIChibG9jay1zaWJsaW5ncywgZ2VlbiBCRkMgZXJ0dXNzZW4pLCBkdXMgaGV0XG4gICB3ZXJrZWxpamtlIGdhdCBpcyBtYXgoMCwgbWFyZ2luLXRvcCkgKyBtaW4oMCwgLTIycHgpLiBNZXQgMTRweCBnYWYgZGF0XG4gICAxNCAtIDIyID0gLThweDogZGUgYmFsayBzY2hvb2wgOHB4IE9OREVSIGRlIGhlcm8uIDM2cHggZ2VlZnRcbiAgIDM2IC0gMjIgPSAxNHB4LCBoZXQgb29yc3Byb25rZWxpamsgYmVkb2VsZGUgZ2F0LiBCZXZlc3RpZ2QgbWV0IGVlblxuICAgaGVhZGxlc3MtQ2hyb21lIG1ldGluZyAoZ2V0Qm91bmRpbmdDbGllbnRSZWN0KSBvcCBlZW4gbG9zc2UgaGFybmVzcy4gKi9cbi5wdWxzZS1wcm9ibGVtcyB7XG4gICAgbWFyZ2luOiAzNnB4IDAgMDtcbiAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjhlMTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZjVkNjhhO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgY29sb3I6ICM1YzQxMDA7XG4gICAgZm9udC1zaXplOiAxMy41cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDEwcHg7XG59XG4ucHVsc2UtcHJvYmxlbXNbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5wdWxzZS1wcm9ibGVtcyBxZG5hcHJvLWljb24geyBjb2xvcjogI2I3ODEwMDsgZmxleC1zaHJpbms6IDA7IG1hcmdpbi10b3A6IDFweDsgfVxuLnB1bHNlLXByb2JsZW1zIHVsIHsgbWFyZ2luOiA0cHggMCAwOyBwYWRkaW5nLWxlZnQ6IDE4cHg7IH1cbi5wdWxzZS1wcm9ibGVtcyBsaSB7IG1hcmdpbjogMnB4IDA7IH1cblxuLyogLS0tIERlIHZpZXIgY2lqZmVycyBib3ZlbmFhbiBkZSBjYW1wYWduZXBhZ2luYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBaZWxmZGUgdm9ybSBhbHMgZGUgc3RhdHNiYWxrIG9wIGRlIHRha2VubGlqc3QgKHYxL3Rhc2tsaXN0LWFjdGl2aXRpZXMuc2Nzcyk6XG4gICBlZW4gcmlqIGthYXJ0ZW4sIGdlZW4gZ3JpZC4gQmV3dXN0IEdFRU4gdmllciBnZWxpamtlIGtvbG9tbWVuIOKAlCBkYW4gem91IGVsa2VcbiAgIGthYXJ0IHVpdHJla2tlbiB0b3QgZGUgdm9sbGUgcGFnaW5hYnJlZWR0ZSBlbiB6b3VkZW4gdmllciBrb3J0ZSBnZXRhbGxlbiBpblxuICAgdmllciBoYWxmbGVnZSB2bGFra2VuIHN0YWFuLiBEZSBrYWFydGVuIGhvdWRlbiBodW4gZWlnZW4gYnJlZWR0ZSBlbiBkZSByaWpcbiAgIGxvb3B0IHZhbiBsaW5rcyBvcCwgcHJlY2llcyB6b2FscyBvcCBkZSB0YWtlbmxpanN0LlxuXG4gICBMaW5rcyB1aXRnZWxpam5kIG1ldCAucHVsc2UtZGV0YWlsLWJvZHkgZXJvbmRlciAoZGV6ZWxmZGUgMjhweCBtYXJnZSksIHpvZGF0XG4gICBkZSBiYWxrIGVuIGRlIHN0YXBwZW5rYWFydCBvcCDDqcOpbiBsaWpuIGJlZ2lubmVuLiBbS2ltIDEyLjA4LjIwMjZdICovXG4ucHVsc2Utc3RhdHMtYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDEwcHg7XG4gICAgbWFyZ2luOiAyMHB4IDI4cHggMDtcbn1cbi8qIERlIGJhbGsgbmVlbXQgZGUgYm92ZW5tYXJnZSBvdmVyIHZhbiBkZSBpbmhvdWQgZXJvbmRlciwgYW5kZXJzIHN0YWF0IGVyIHR3ZWVcbiAgIGtlZXIgbHVjaHQgdHVzc2VuIGRlIGthYXJ0ZW4gZW4gZGUgc3RhcHBlbi4gKi9cbi5wdWxzZS1zdGF0cy1iYXIgKyAucHVsc2UtZGV0YWlsLWJvZHkge1xuICAgIG1hcmdpbi10b3A6IDE0cHg7XG59XG5cbi8qIC0tLSBQYWdpbmEtaW5ob3VkOiBzdGFwcGVuIGxpbmtzLCBkb2VsZ3JvZXAgcmVjaHRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnB1bHNlLWRldGFpbC1ib2R5IHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgLyogT25kZXJydWltdGUgNDhweCDihpIgOTZweCAoMTEuMDguMjAyNik6IHNpbmRzIGRlIHNwbGl0c2luZyBzdGFhdCBlciBlZW5cbiAgICAgICBaV0VWRU5ERSBhY3RpZWJhbGsgb25kZXJpbi4gRGllIGlzIGBwb3NpdGlvbjogZml4ZWRgLCBuZWVtdCBkdXMgZ2VlblxuICAgICAgIHJ1aW10ZSBpbiBkZSBwYWdpbmEgaW4gZW4gbGVndCB6aWNoIG92ZXIgZGUgbGFhdHN0ZSByaWogaGVlbjsgamUga3VudCBlclxuICAgICAgIG9vayBuaWV0IHZvb3JiaWogc2Nyb2xsZW4gb21kYXQgZXIgbmlldHMgbWVlciBvbmRlciBzdGFhdC5cblxuICAgICAgIFNZTkMtUFVOVCwgbWV0IG9wemV0IGVlbiB2YXN0IGdldGFsIOKAlCBoZXR6ZWxmZGUgYWxzIGluXG4gICAgICAgX3Rhc2tsaXN0LXNldHRpbmdzLnNjc3MsIG9tIGRlemVsZmRlIHJlZGVuOiBfYWN0aW9uLWJhci5zY3NzIHpldFxuICAgICAgIGBoZWlnaHQ6IDU2cHhgIGhhcmQgKGVyIGlzIGdlZW4gLS1hY3Rpb24tYmFyLWhlaWdodCkgZW5cbiAgICAgICAtLWFjdGlvbi1iYXItb2Zmc2V0IHN0YWF0IG9wIC5xZG5hcHJvLWFjdGlvbi1iYXIgemVsZiwgZHVzIGRpZSBpcyBoaWVyXG4gICAgICAgbmlldCBlcmZiYWFyIGVuIGVlbiB2YXIoKSB6b3Ugc3RpbCBhbHRpamQgb3AgZGUgZmFsbGJhY2sgbGFuZGVuLlxuICAgICAgIDk2cHggPSA1NiAoaG9vZ3RlKSArIDE2IChvZmZzZXQpICsgMjQgbHVjaHQuIFdvcmR0IGRlIGJhbGsgaG9nZXIgb2Yga29tdFxuICAgICAgIGhpaiB2ZXJkZXIgdmFuIGRlIHJhbmQsIGRhbiBtb2V0IGRpdCBtZWUuICovXG4gICAgbWFyZ2luOiAyMHB4IDI4cHggOTZweDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgMzQwcHg7XG4gICAgZ2FwOiAyMnB4O1xuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTAwcHgpIHtcbiAgICAucHVsc2UtZGV0YWlsLWJvZHkgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpOyB9XG59XG5cbi8qIERlIHR3ZWUgWlVTVEVSUEFHSU5BJ1MgKGdlc3ByZWtrZW4sIHN0YXRpc3RpZWtlbikgZHJhZ2VuIGVsayDDqcOpbiBwYW5lZWwsIGR1c1xuICAgZGFhciB2YWx0IG5pZXRzIHRlIHZlcmRlbGVuOiBkZSBzbWFsbGUgcmVjaHRlcmtvbG9tIHZhbiBkZSBjYW1wYWduZXBhZ2luYSB6b3VcbiAgIGVyIGFsbGVlbiBlZW4gbGVnZSBzdHJvb2sgdmFuIG1ha2VuLiBbS2ltIDExLjA4LjIwMjZdICovXG4ucHVsc2UtZGV0YWlsLWJvZHktLXNpbmdsZSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTtcbn1cblxuLnB1bHNlLXBhbmVsIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMjAsIDI1LCA4MCwgMC4wOCksIDAgOHB4IDI0cHggcmdiYSgyMCwgMjUsIDgwLCAwLjA2KTtcbiAgICBwYWRkaW5nOiAyMHB4IDIycHggMjJweDtcbn1cbi5wdWxzZS1wYW5lbC1oZWFkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG59XG4ucHVsc2UtcGFuZWwtaGVhZCBoMiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUsICMzOTQyOTApO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xufVxuLnB1bHNlLXBhbmVsLXN1YiB7XG4gICAgbWFyZ2luOiAwIDAgMThweDtcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7XG59XG5cbi8qIC0tLSBTdGFwcGVuLXdlcmtiYWxrIChXOUYxLCBrYWFydCA0KTogYWxsZWVuIGhldCB6b2VrdmVsZCAtLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC5wdWxzZS10b29sYmFyIGJlc3RhYXQgYWwgaGllcmJvdmVuIChPVkVSWklDSFRTUEFHSU5BIC8gYW5hbHl0aWNzLCByZWdlbFxuICAgfjE3MjkpIG1ldCBlZW4gZWlnZW4gaW5kZWxpbmcgdm9vciBkZSBjYW1wYWduZWxpanN0IChsaW5rcyBcIm1hYWtcIi1rbm9wcGVuLFxuICAgcmVjaHRzIHpvZWtlbitzb3J0ZXJlbikuIERlIHZpZXcgKGthYXJ0IDMpIGdlYnJ1aWt0IGRhYXJvbSBkZSBtb2RpZmllclxuICAgLnB1bHNlLXRvb2xiYXItLXN0ZXBzIG9wIGRlIGJhbGsgYm92ZW4gZGUgc3RhcHBlbmxpanN0LCBtZXQgaGV0IHpvZWt2ZWxkXG4gICBpbiBkZSBiZXN0YWFuZGUgLnB1bHNlLXRvb2xiYXItcmlnaHQg4oCUIGRpZSBoZWVmdCBhbCBtYXJnaW4tbGVmdDogYXV0byxcbiAgIGR1cyBkaWUgZHV3dCBoZXQgdmVsZCB2YW56ZWxmIG5hYXIgcmVjaHRzLiBIaWVyIGR1cyBhbGxlZW4gZGUgYnJlZWR0ZSB2YW5cbiAgIGhldCB2ZWxkIGVuIGVlbiBvcCBkZSBwYW5lZWxjb250ZXh0IGFmZ2VzdGVtZGUgbWFyZ2UuICovXG4vKiBUd2VlIGtsYXNzZW4sIG1ldCBvcHpldDogZGUgYmFzaXNyZWdlbCBgLnB1bHNlLXRvb2xiYXIgeyBtYXJnaW4tYm90dG9tOiAyMHB4IH1gXG4gICBzdGFhdCB2ZXJkZXJvcCBpbiBkaXQgYmVzdGFuZCBlbiB6b3UgZWVuIGVua2VsZS1rbGFzc2UtbW9kaWZpZXIgaW4gZGUgY2FzY2FkZVxuICAgc3RpbGxldGplcyBvdmVycnVsZW4gKGdlbGlqa2Ugc3BlY2lmaWNpdGVpdCwgbGF0ZXJlIHJlZ2VsIHdpbnQpLiAqL1xuLnB1bHNlLXRvb2xiYXIucHVsc2UtdG9vbGJhci0tc3RlcHMge1xuICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG59XG4ucHVsc2UtdG9vbGJhci0tc3RlcHMgLnB1bHNlLXRvb2xiYXItcmlnaHQgcWRuYXByby1pbnB1dCB7XG4gICAgd2lkdGg6IDIyMHB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vKiBEZSBrb3AgXCJTdGFwcGVuXCIgc3RhYXQgc2luZHMgMjAuMDguMjAyNiBJTiBkZSB3ZXJrYmFsayAoS2ltKTogaGV0IHdpdHRlXG4gICBwYW5lZWwgZXJvbWhlZW4gaXMgd2VnLCBkdXMgZGUga29wIHppdCBvcCBkZXplbGZkZSByZWdlbCBhbHMgaGV0IHpvZWt2ZWxkLlxuICAgWmVsZmRlIG1hYXQgZW4ga2xldXIgYWxzIGRlIG91ZGUgYC5wdWxzZS1wYW5lbC1oZWFkIGgyYCBoYWQsIHpvZGF0IGhldFxuICAgZGV6ZWxmZGUga29wIGJsaWpmdCBlbiBuaWV0IGluZWVucyBlZW4gYW5kZXJlIGhpw6tyYXJjaGllIGxlZXN0LiAqL1xuLnB1bHNlLXN0ZXBzLXRpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzM5NDI5MCk7XG59XG5cbi8qIERlIHdlcmtiYWxrIHN0b25kIG1ldCBgYWxpZ24taXRlbXM6IGNlbnRlcmAsIG1hYXIgZGUga29wIGVuIGVlbiBrbGVpblxuICAgaW52b2VydmVsZCB6aWpuIG5pZXQgZXZlbiBob29nOyBjZW50ZXIgaXMgaGllciBwcmVjaWVzIGdvZWQgZW4gc3RhYXQgYWwgb3BcbiAgIGAucHVsc2UtdG9vbGJhcmAuIFdhdCBXRUwgbm9kaWcgaXM6IGRlIGtvcCBtYWcgbmlldCBtZWVrcmltcGVuIHdhbm5lZXIgZGVcbiAgIGJhbGsgb3AgZWVuIHNtYWwgc2NoZXJtIGdhYXQgd2lra2VsZW4uICovXG4ucHVsc2UtdG9vbGJhci0tc3RlcHMgLnB1bHNlLXRvb2xiYXItbGVmdCB7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGZsZXg6IDAgMSBhdXRvO1xufVxuXG4vKiBIZXQgdWl0bGVncGFuZWVsIGFjaHRlciBoZXQgaS1rbm9wamUuIHFkbmFwcm8tcG9wb3ZlciBpcyBzdGFuZGFhcmQgMjgwcHhcbiAgIGJyZWVkIG1ldCA2cHggcGFkZGluZyDigJQgZGF0IGlzIGRlIE1FTlUtbWFhdCAoemllIGRlIHFkbmEtcG9wb3ZlcnMgc2tpbGwsXG4gICBwdW50IDEpOyBkcmllIHppbm5lbiBsb3BlbiBkYWFyIHppY2h0YmFhciB1aXQgaGV0IGthYXJ0amUuIERlIHBhZ2luYSB6ZXQgZGVcbiAgIG1hYXQgZHVzIHplbGYuIEhhYWsgb3AgaGV0IGRhdGEtYXR0cmlidXV0IGVuIG5pZXQgb3AgZWVuIGtsYXNzZTogaGV0XG4gICBjb21wb25lbnQgaGVyc2NocmlqZnQgemlqbiBjbGFzc05hbWUgYmlqIGVsa2UgcmVuZGVyLiAqL1xucWRuYXByby1wb3BvdmVyW2RhdGEtcHVsc2UtaW5mb10ge1xuICAgIHdpZHRoOiBtaW4oOTJ2dywgMzgwcHgpO1xuICAgIHBhZGRpbmc6IDE0cHggMTZweDtcbn1cbi5wdWxzZS1pbmZvLXRleHQge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTYwMCwgIzRiNDg2OSk7XG59XG5cbi8qIC0tLSBEZSBzdGFwcGVuLXRpamRsaWpuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnB1bHNlLXN0ZXBzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vKiBLYWFydCAxMiAoMjAuMDguMjAyNik6IGhldCBzdGlwcGVuLXZsYWsgKC5xZG5hcHJvLWVkaXQtZnJhbWUsIHppZVxuICAgc2Nzcy9jb21wb25lbnRzL3YyL2VkaXQtZnJhbWUvX2VkaXQtZnJhbWUuc2NzcykgbGV2ZXJ0IGJld3VzdCBHRUVOXG4gICBwYWRkaW5nIOKAlCBkaWUgaG9vcnQgYmlqIGRlIHBhZ2luYSBkaWUgaGV0IGludnVsdC4gYC5wdWxzZS1zdGVwcy1mcmFtZWBcbiAgIGlzIGRlIGhhYWsgaW4gZGUgdmlldyAodjEvcHVsc2UvZGV0YWlsLmh0bWwpIHdhYXJvcCBoaWogbGFuZHQ6IHdlcmtiYWxrLFxuICAgbGlqc3QgZW4gdG9ldm9lZy1yaWogc3RhYW4gZXIgc2FtZW4gaW4sIGR1cyBkZSBiaW5uZW5tYXJnZSBrb210IG9wIGRlXG4gICBmcmFtZSB6ZWxmIGkucC52LiBvcCBlbGsga2luZCBhcGFydC4gfjE2LTIwcHgsIHpvYWxzIGRlIHRha2VubGlqc3QgemlqblxuICAgLmVkaXQtZnJhbWUtaW5ob3VkICgudG9vbGJhci8uYWN0aXZpdHktbGlzdCkgdnVsdC4gKi9cbi5wdWxzZS1zdGVwcy1mcmFtZSB7XG4gICAgcGFkZGluZzogMThweDtcbn1cblxuLyogS2FhcnQgMTI6IGRlIHJpaiBpcyBzaW5kcyBrYWFydCAxMSBoZXQgZ2VkZWVsZGVcbiAgIHFkbmFwcm8tYWN0aXZpdHktcm93W3ZhcmlhbnQ9XCJwdWxzZVwiXSAoc3R5bGluZyBpblxuICAgc2Nzcy9jb21wb25lbnRzL3YyL2FjdGl2aXR5LXJvdy9fYWN0aXZpdHktcm93LnNjc3MpLiBEYXQgY29tcG9uZW50IHJlZ2VsdFxuICAgemVsZiBhbCBkZSBob3Zlci1vcG1hYWsgZW4gaGV0IGRpbW1lbiB0aWpkZW5zIGhldCBzbGVwZW4gKGhldFxuICAgW2RyYWdnaW5nXS1hdHRyaWJ1dXQpIOKAlCBkZSBvdWRlIGAucHVsc2Utc3RlcHMuaXMtbWFuYWdlIC5wdWxzZS1zdGVwLXJvd2BcbiAgIGhvdmVyL2N1cnNvci1yZWdlbCBlbiBgLnB1bHNlLXN0ZXAtcm93LmlzLWRyYWdnaW5nIHsgb3BhY2l0eSB9YCB6aWpuXG4gICBkYWFybWVlIG92ZXJib2RpZyBlbiB6aWpuIHdlZy4gKEtpamtlci1yaWplbiByZWdlbGVuIGh1biBjdXJzb3Igc2luZHNcbiAgIGthYXJ0IDEzLzE0IHZvbGxlZGlnIGluIGhldCBjb21wb25lbnQgemVsZiwgdmlhIGhldCByZWFkb25seS1hdHRyaWJ1dXQg4oCUXG4gICBkZSB0aWpkZWxpamtlIC5wdWxzZS1yb3ctcmVhZG9ubHktcmVnZWwgZGllIGhpZXIgc3RvbmQgaXMgZGFhcm1lZSBkb29kIGVuXG4gICB2ZXJ3aWpkZXJkLikgRcOpbiBkaW5nIHVpdCBkaWUgb3VkZSByZWdlbHMgYmxlZWYgd8OpbCB6aW52b2wsIGhlcnJpY2h0IG9wIGRlXG4gICBuaWV1d2UgcmlqOiB0aWpkZW5zIGhldCBzbGVwZW4gZ2VlZnQgZGUgMTUwbXMtdHJhbnNpdGllIG9wXG4gICBib3JkZXIvc2hhZG93L3RyYW5zZm9ybSB2YW4gZGUgYmFzaXNyaWogKF9hY3Rpdml0eS1yb3cuc2NzcykgbWVya2JhcmVcbiAgIHZlcnRyYWdpbmcgYWxzIG1lZXJkZXJlIHJpamVuIHNuZWwgdmFuIGhvdmVyLS9kcm9wLWluZGljYXRvciB3aXNzZWxlbiDigJRcbiAgIGhpZXIgdWl0Z2V6ZXQgem9sYW5nIC5wdWxzZS1zdGVwcy5pcy1kcmFnZ2luZyBhYW4gc3RhYXQsIGV4YWN0IHpvYWxzIGRlXG4gICBvdWRlIC5wdWxzZS1zdGVwcy5pcy1kcmFnZ2luZyAucHVsc2Utc3RlcC1yb3cgZGVlZC4gKi9cbi5wdWxzZS1zdGVwcy5pcy1kcmFnZ2luZyBxZG5hcHJvLWFjdGl2aXR5LXJvdyAuYWN0aXZpdHktcm93LWlubmVyIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xufVxuXG4vKiBLYWFydCAxOCAoQk9BUkQtcHVsc2UtYW50d29vcmRvcHRpZXMtcmljaHRpbmctYy5tZCwgS2ltcyBkZXNpZ24tZmVlZGJhY2tcbiAgIDI1LjA4LjIwMjYpOiBkZSBkYWctcGlsbCBvcCBlbGtlIHN0YXBwZW5yaWogKFwiRGFnIE5cIiAvIGVlbiBkYXR1bSkgb3BlbnQgYWxcbiAgIGRlIGRhZy1wb3BvdmVyICh6aWUgc3RlcHNFbC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgLi4uKSBoaWVyb25kZXIgaW5cbiAgIGRlemUgdmlldyksIG1hYXIgb29nZGUgYWxzIGVlbiBkb29kIGxhYmVsLiBLbm9wLWFmZm9yZGFuY2UgZXJib3Zlbm9wLFxuICAgaGV0emVsZmRlIHJlY2VwdCBhbHMgLmJ1dHRvbi1zZWNvbmRhcnktcHVycGxlIChjb21wb25lbnRzL3YyL2J1dHRvbi9cbiAgIF9idXR0b24uc2Nzcykg4oCUIHByZWNpZXMgd2F0IC5wdWxzZS13aXotY2FyZC8ucHVsc2UtdHlwZS1jYXJkIGhpZXJib3ZlbiBpblxuICAgZGl0IGJlc3RhbmQgb29rIGFsIDEtb3AtMSBzcGllZ2VsZW46IGhvdmVyID0gbGljaHRlIGFjaHRlcmdyb25kdGludCxcbiAgIGFjdGl2ZSA9IGVlbiBpZXRzIGRpZXBlcmUgdGludCB2YW4gZGV6ZWxmZGUga2xldXJmYW1pbGllLCBnZWVuIHRyYW5zZm9ybS5cbiAgIEJhc2lzLWFjaHRlcmdyb25kIHZhbiBkZSBwaWxsICh2YXIoLS1jLXB1cnBsZS01MCkpIGlzIGRlemVsZmRlIHRva2VuIGFsc1xuICAgZGUgcnVzdGtsZXVyIHZhbiAuYnV0dG9uLXNlY29uZGFyeS1wdXJwbGUsIGR1cyBkZSBob3Zlci9hY3RpdmUtdGludGVuIHZhblxuICAgZGllIGtub3AgcGFzc2VuIGhpZXIgem9uZGVyIGlldHMgbmlldXdzIHRlIHZlcnppbm5lbi5cbiAgIEJlbGFuZ3Jpams6IC5yb3ctcHVsc2UtZGF5IHdvcmR0IGdlYm91d2QgaW4gcWRuYS1hY3Rpdml0eS1yb3cuanNcbiAgIChfcmVuZGVyUHVsc2UoKSwgYWxzIDxkaXYgY2xhc3M9XCJyb3ctcHVsc2UtZGF5XCI+KSDigJQgZGF0IGJlc3RhbmQgdmFsdFxuICAgYnVpdGVuIGRlIHNjb3BlIHZhbiBkZXplIGthYXJ0IChhbGxlZW4gZGV0YWlsLmh0bWwgZW4gX3B1bHNlLnNjc3MpLCBkdXNcbiAgIGRpdCBibG9rIHJhYWt0IGFsbGVlbiBoZXQgVUlURVJMSUpLIHZpYSBkZSBjbGFzcy1zZWxlY3Rvci4gRGUgcGlsbCBoZWVmdFxuICAgb3AgZGl0IG1vbWVudCBnZWVuIHRhYmluZGV4L3JvbGU9XCJidXR0b25cIjogZGUgOmZvY3VzLXZpc2libGUtcmluZ1xuICAgaGllcm9uZGVyIGxpZ3QgZGFhcmRvb3Iga2xhYXIgbWFhciBpcyBtZXQgaGV0IHRvZXRzZW5ib3JkIG5vZyBuaWV0IHRlXG4gICBiZXJlaWtlbiB0b3RkYXQgZGUgcGlsbCBpbiBoZXQgY29tcG9uZW50IHplbGYgZWVuIGVjaHQgPGJ1dHRvbj4gKG9mXG4gICByb2xlPVwiYnV0dG9uXCIrdGFiaW5kZXgsIHpvYWxzIC5wdWxzZS1hZGQtYmFyIGhpZXJib3ZlbiBhbCBkb2V0KSB3b3JkdC4gKi9cbi5wdWxzZS1zdGVwcyBxZG5hcHJvLWFjdGl2aXR5LXJvdyAucm93LXB1bHNlLWRheSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZTtcbn1cblxuLyogVUlUTElKTklORyBWQU4gREUgU1RBUFRZUEUtSUNPTkVOIChLaW0gMDIuMDkuMjAyNjogXCJpayB3aWwgZGF0IGRlIGljb25lbiB2YW5cbiAgIGFsbGUgc3RhcHBlbiBoZXR6ZWxmZGUgemlqbiB1aXRnZWxpam5kLiBEZSBmaW5pc2ggdmxhZyBicmVla3QgZGF0IG51LlwiKVxuXG4gICBHZW1ldGVuIG9wIC92MS9wdWxzZS80NyB2w7PDs3IgZGV6ZSByZWdlbHM6IGhldCBpY29vbiB2YW4gZWVuIGtlbm5pc3ZyYWFnIGJlZ29uXG4gICBvcCB4PTM1MCwgZGF0IHZhbiBoZXQgZWluZHNjaGVybSBvcCB4PTM5NyAtIDQ3cHggdmVyc2NoaWwsIHVpdCB0d2VlIGJyb25uZW46XG4gICAgIC0gMjhweCB2YW4gaGV0IGthbGVuZGVyc2xvdGplICgxOHB4IGtvbG9tICsgMTBweCB0dXNzZW5ydWltdGUpIGRhdCBhbGxlZW5cbiAgICAgICBkaWUgcmlqIGhhZC4gV2VnOiBkZXRhaWwuaHRtbCB6ZXQgbnUgYG5vLWhhbmRsZWAgb3AgRUxLRSByaWouXG4gICAgIC0gMTlweCB2YW4gZGUgZGFncGlsIHplbGY6IFwiRGFnIDBcIiBrb210IG9wIGRlIG9uZGVyZ3JlbnMgdmFuIDc2cHggdWl0LFxuICAgICAgIFwiMTUtMDktMjAyNlwiIG9wIDk1cHguXG5cbiAgIERpZSBsYWF0c3RlIDE5cHggbG9zdCBkZXplIHJlZ2VsIG9wLiBgd2lkdGhgIGluIHBsYWF0cyB2YW4gYG1pbi13aWR0aGAsIHpvZGF0XG4gICBlZW4gbGFuZ2VyZSB0ZWtzdCBkZSBwaWwgbm9vaXQgbWVlciBrYW4gb3ByZWtrZW4gLSBkZSB1aXRsaWpuaW5nIGlzIGRhbiBlZW5cbiAgIGdhcmFudGllIGVuIGdlZW4gdG9ldmFsbGlnaGVpZC4gRGUgZGF0dW0gd29yZHQga2xlaW5lciBnZXpldCBvbSBpbiBkaWV6ZWxmZGVcbiAgIDc2cHggdGUgcGFzc2VuIChLaW1zIGVpZ2VuIHZvb3JzdGVsKS4gR2VtZXRlbiBicmVlZHRlIHZhbiBcIjE1LTA5LTIwMjZcIiBpbiBkaXRcbiAgIGZvbnQ6IDEzcHggLT4gNzUuMiwgMTJweCAtPiA2OS40LCAxMXB4IC0+IDYzLjYuIE1ldCA1cHggbHVjaHQgbGlua3MgZW4gcmVjaHRzXG4gICBwYXN0IDExcHggbWV0IDIuNHB4IG92ZXI7IDEycHggem91IGVyIDMuNHB4IG92ZXJoZWVuIHN0ZWtlbi5cbiAgIERlIHN1YnJlZ2VsIChcInZhc3RlIGRhdHVtXCIpIGJsaWpmdCBvcCAxMC41cHg6IGhldCBsYWJlbCBpcyB2ZXQgZW4gZGUgc3VicmVnZWxcbiAgIG5pZXQsIGR1cyBkZSByYW5nb3JkZSBibGlqZnQgbGVlc2JhYXIgb29rIGFsIHNjaGVsZW4gemUgbm9nIG1hYXIgZWVuIGhhbHZlXG4gICBwdW50LiAqL1xuLnB1bHNlLXN0ZXBzIHFkbmFwcm8tYWN0aXZpdHktcm93IC5yb3ctcHVsc2UtZGF5IHtcbiAgICB3aWR0aDogNzZweDtcbiAgICBtaW4td2lkdGg6IDA7XG59XG4ucHVsc2Utc3RlcHMgcWRuYXByby1hY3Rpdml0eS1yb3cucHVsc2Utcm93LWZpeGVkLWRhdGUgLnJvdy1wdWxzZS1kYXkge1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcbn1cbi5wdWxzZS1zdGVwcyBxZG5hcHJvLWFjdGl2aXR5LXJvdy5wdWxzZS1yb3ctZml4ZWQtZGF0ZSAucm93LXB1bHNlLWRheS1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNXB4O1xufVxuLnB1bHNlLXN0ZXBzIHFkbmFwcm8tYWN0aXZpdHktcm93IC5yb3ctcHVsc2UtZGF5OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCwgI2Q0ZDhlZSk7XG59XG4ucHVsc2Utc3RlcHMgcWRuYXByby1hY3Rpdml0eS1yb3cgLnJvdy1wdWxzZS1kYXk6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZGViYXItaWNvbiwgI2M1YzllYik7XG59XG4vKiBaZWxmZGUgYm9vdHN0cmFwLXZhbGt1aWwgYWxzIGJpaiAucHVsc2Utd2l6LWNhcmQvLnB1bHNlLXR5cGUtY2FyZFxuICAgaGllcmJvdmVuIGluIGRpdCBiZXN0YW5kOiBkZSB2MS1oZWFkZXIgbGFhZHQgYm9vdHN0cmFwLm1pbi5jc3MsIGVuIGRpZVxuICAgemV0IGBidXR0b246Zm9jdXMgeyBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3IgfWAgb3AgRUxLRVxuICAga25vcCAoZWVuIG11aXNrbGlrIGdlZWZ0IHdlbCA6Zm9jdXMgbWFhciBnZWVuIDpmb2N1cy12aXNpYmxlKS4gb3V0bGluZVxuICAgdWl0emV0dGVuLCBkZSB6aWNodGJhcmUgbWFya2VyaW5nIGlzIGVlbiBlaWdlbiBib3gtc2hhZG93LXJpbmcg4oCUIGdlZW5cbiAgIG91dGxpbmUsIHdhbnQgLmFjdGl2aXR5LXJvdy1pbm5lciBzdGFhdCBvcCBvdmVyZmxvdzpoaWRkZW4gKHppZSBkZVxuICAgb3BtZXJraW5nIGRhYXJvdmVyIGluIF9hY3Rpdml0eS1yb3cuc2NzcywgXCJib3gtc2hhZG93IChmb2N1cyByaW5nKSBpc1xuICAgdW5hZmZlY3RlZFwiKTogZWVuIG91dGxpbmUgem91IGFhbiBkZSByYW5kIHZhbiBkZSByaWogYWZnZWtuaXB0IHdvcmRlbi4gKi9cbi5wdWxzZS1zdGVwcyBxZG5hcHJvLWFjdGl2aXR5LXJvdyAucm93LXB1bHNlLWRheTpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IH1cbi5wdWxzZS1zdGVwcyBxZG5hcHJvLWFjdGl2aXR5LXJvdyAucm93LXB1bHNlLWRheTpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1yaW5nLCAjNTM0YWI3KTtcbn1cbi8qIERhcmsgbW9kZTogZGUgcGlsbCBoZWVmdCBoaWVyIGdlZW4gbG9zIHRva2VuICgjMmEyZDU1LCB6aWUgX2FjdGl2aXR5LXJvdy5cbiAgIHNjc3MpLCBkdXMgZ2VlbiBiZXN0YWFuZGUgaG92ZXIvYWN0aXZlLWtsZXVyIG9tIHRlIGhlcmdlYnJ1aWtlbi4gWmVsZmRlXG4gICB2ZXJob3VkaW5nIGFscyAucWRuYXByby1uYXYtcmFpbCBoYW50ZWVydCB2b29yIGhvdmVyL2FjdGl2ZSBvcCBlZW4gZG9ua2VyXG4gICB2bGFrIChyZ2JhKDI1NSwyNTUsMjU1LC4wOCkgLyAuMTYsIHppZSBfbmF2LXJhaWwuc2Nzcykg4oCUIGhpZXIgdmlhXG4gICBjb2xvci1taXgoKSBvbWRhdCBkZSBwaWxsIGFsIGVlbiBlaWdlbiBlZmZlbiBhY2h0ZXJncm9uZCBoZWVmdCBpbiBwbGFhdHNcbiAgIHZhbiB0cmFuc3BhcmFudCBvcCBkZSBwYWdpbmFrbGV1ci4gKi9cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucHVsc2Utc3RlcHMgcWRuYXByby1hY3Rpdml0eS1yb3cgLnJvdy1wdWxzZS1kYXk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCAjMmEyZDU1IDkyJSwgI2ZmZik7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnB1bHNlLXN0ZXBzIHFkbmFwcm8tYWN0aXZpdHktcm93IC5yb3ctcHVsc2UtZGF5OmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsICMyYTJkNTUgODQlLCAjZmZmKTtcbn1cblxuLnB1bHNlLXN0ZXAtdHlwZSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgLyogMzQgLT4gNDBweCAoVzlGMSwga2FhcnQgNCk6IHRha2VubGlqc3QtbWFhdC4gR3JvZWl0IGFsbGVlbiBkaXQgdGVnZWx0amU7XG4gICAgICAgZGUga29sb21tZW4gZXJ2b29yIChncmVlcC9zbG90amUsIGRhZ3BpbCkgc3RhYW4gbGlua3MgZXJ2YW4gaW4gZGUgZmxleC1cbiAgICAgICB2b2xnb3JkZSBlbiB2ZXJzY2h1aXZlbiBuaWV0LCBkdXMgLnB1bHNlLXN0ZXAtcm93OjpiZWZvcmUgKGRlXG4gICAgICAgdmVyYmluZGluZ3NsaWpuIGhpZXJvbmRlciwgbGlua3M6IDI3cHgpIGhvZWZ0IG5pZXQgbWVlIOKAlCBkaWUgaGFuZ3QgYWxcbiAgICAgICBvcCBkZSBicmVlZHRlIHZhbiBkZSBrb2xvbW1lbiBWT09SIGhldCB0ZWdlbHRqZSwgbmlldCBlcm9wLiBSaWotcGFkZGluZ1xuICAgICAgICgxMnB4IDEycHggMTJweCAxMHB4KSBibGlqZnQgb29rIG9uZ2V3aWp6aWdkOiBtZXQgZGl0IHRlZ2VsdGplIGVyaW5cbiAgICAgICBrb210IGRlIHJpaiB2YW56ZWxmIG9wIDEyKzQwKzEyID0gNjRweCwgZGV6ZWxmZGUgaG9vZ3RlIGFscyBlZW5cbiAgICAgICB0YWtlbmxpanN0cmlqIChxZG5hcHJvLWFjdGl2aXR5LXJvdywgbWluLWhlaWdodDogNjRweCkuICovXG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi8qIFB1bHNlLWtsZXVyZW5wYWxldCBwZXIgc3RhcHR5cGU6IE9OR0VXSUpaSUdEIChrYWFydCA0LW9wZHJhY2h0LCBleHBsaWNpZXRcbiAgIGJldnJvcmVuKSDigJQgYWxsZWVuIGRlIHRlZ2VsbWFhdCBoaWVyYm92ZW4gaXMgYWFuZ2VwYXN0LiAqL1xuLyogS2ltIDI0LjA4OiBkZSB0ZWdlbHMgZ2VicnVpa2VuIG51IGRlIEtMRVVSRU4gVkFOIFRBS0VOTElKU1RFTiAoZGV6ZWxmZGVcbiAgIHRva2VucyBhbHMgLnFkbmFwcm8tdGFza2xpc3QtY2FyZC50bGMtY29sb3ItKiksIHpvZGF0IGRlIGtpZXplciBkZXplbGZkZVxuICAgdGFhbCBzcHJlZWt0IGFscyBkZSByZXN0LiBEaXQgdmVydmFuZ3QgYmV3dXN0IGhldCBlZXJkZXIgYmV2cm9yZW5cbiAgIFB1bHNlLWVpZ2VuIHBhbGV0OiBkZSBvcGRyYWNodCBvbSBkaWUga2xldXJlbiB0ZSBiZXZyaWV6ZW4gaXMgaGllcm1lZVxuICAgaW5nZWhhYWxkLiBQZXIgdHlwZSBkZXplbGZkZSBrbGV1cmZhbWlsaWUgYWxzIHZvb3JoZWVuLCBhbGxlZW4gbnUgdWl0IGhldFxuICAgZ2VkZWVsZGUgcGFsZXQ7IHZpZGVvIGVuIHZlcmJldGVyYWN0aWUga3JpamdlbiBlciBodW4gZWlnZW4ga2xldXIgYmlqLiAqL1xuLnB1bHNlLXN0ZXAtdHlwZS0tZmxhc2ggICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAteWVsbG93LWJnLCAjZmZmMmQ2KTsgfVxuLnB1bHNlLXN0ZXAtdHlwZS0tcXVlc3Rpb24geyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1ibHVlLWJnLCAjZTZlZmZmKTsgfVxuLnB1bHNlLXN0ZXAtdHlwZS0tcG9sbCAgICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAtcHVycGxlLWJnLCAjZWFlNGZmKTsgfVxuLyogS2ltIDI1LjA4OiBkZSBsYWF0c3RlIGRyaWUgemlqbiBvbmRlcmxpbmcgR0VEUkFBSUQuIFZpZGVvIGtyZWVnIGhldCByb29kIHZhblxuICAgdmVyYmV0ZXJhY3RpZSAoaGFhciBrZXV6ZSwgb29rIG5hZGF0IGlrIGhhZCBnZW1lbGQgZGF0IGhldCByb3plIHZpZGVvc3BlbGVydGplXG4gICBkYWFyZG9vciB3ZWluaWcgY29udHJhc3QgbWV0IHppam4gZWlnZW4gdmxha2plIGhvdWR0KSwgdmVyYmV0ZXJhY3RpZSBoZXQgZ3JvZW5cbiAgIHZhbiBkb2N1bWVudCwgZW4gZG9jdW1lbnQgaGV0IGJyaWdodC1ibHVlIHZhbiB2aWRlby4gRGV6ZWxmZGUgcm90YXRpZSBzdGFhdCBpblxuICAgYHRpbGVDb2xvcmAgaW4gcHVsc2UvZGV0YWlsLmh0bWwgLSBkYXQgaXMgZGUgdGVnZWwgb3AgZGUgU1RBUFBFTlJJSiBlbiBkaXQgZGVcbiAgIHRlZ2VsIGluIGRlIFRZUEVLSUVaRVIsIGVuIGRpZSB0d2VlIGhvcmVuIGRlemVsZmRlIGtsZXVyIHRlIGRyYWdlbi4gVmVyYW5kZXIgZXJcbiAgIG5vb2l0IGVlbiB6b25kZXIgZGUgYW5kZXIuICovXG4ucHVsc2Utc3RlcC10eXBlLS1kb2N1bWVudCB7IGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1icmlnaHQtYmx1ZS0yLWJnLCAjZTNmMGZiKTsgfVxuLnB1bHNlLXN0ZXAtdHlwZS0tdmlkZW8gICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1yZWQtYmcsICNmZGU4ZTgpOyB9XG4ucHVsc2Utc3RlcC10eXBlLS1hY3Rpb24gICB7IGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1ncmVlbi1iZywgI2UzZjNlZSk7IH1cbi8qIENhcmQgOCBmb2xsb3ctdXAgKEtpbSAwMS4wOSk6IHRoZSB0d28gZnJhbWUgdHlwZXMgd2VyZSBzaGlwcGVkIHdpdGhvdXQgYVxuICAgdGludGVkIHRpbGUuIFNhbWUgY29sb3VycyBhcyBgdGlsZUNvbG9yYCBpbiBwdWxzZS9kZXRhaWwuaHRtbCAocGluay9ncmV5KTtcbiAgIHRoZSBwYWlyaW5nIHJ1bGUgYWJvdmUgYXBwbGllcyBoZXJlIHRvbzogbmV2ZXIgY2hhbmdlIG9uZSB3aXRob3V0IHRoZVxuICAgb3RoZXIuICovXG4ucHVsc2Utc3RlcC10eXBlLS1zdGFydCAgICB7IGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1waW5rLWJnLCAjZmRlN2YxKTsgfVxuLnB1bHNlLXN0ZXAtdHlwZS0tZmluaXNoICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAtZ3JleS1iZywgI2VkZWRmMik7IH1cbi8qIEhldCBnZWFuaW1lZXJkZSBpY29vbiB2dWx0IGRlIHRlZ2VsIG1ldCB3YXQgbHVjaHQgZXJvbWhlZW4uICovXG4ucHVsc2UtdHlwZS1hbmltIHsgd2lkdGg6IDMwcHg7IGhlaWdodDogMzBweDsgZGlzcGxheTogYmxvY2s7IH1cblxuLyogT1BUSVNDSEUgTUFBVENPUlJFQ1RJRSB2b29yIGBlZHVjYXRpb24tNWAgKFwiQnVsXCIsIGhldCBrZW5uaXN2cmFhZy1pY29vbikuXG4gICBLaW0gMDIuMDkuMjAyNjogXCJoZXQgaG9lZGplIGxpamt0IGtsZWluZXIgZGFuIGRlIGFuZGVyZSBpY29ucy5cIiBLbG9wdCwgZW4gaGV0XG4gICBpcyB0ZSBtZXRlbi4gRWxrIGljb29uIHVpdCBkZSBzZXQgc3RhYXQgb3AgaGV0emVsZmRlIGNhbnZhcyB2YW4gNTAweDUwMCwgbWFhclxuICAgdnVsdCBkYWFyIGVlbiBhbmRlciBkZWVsIHZhbi4gR2VyYXN0ZXJkIG9wIDIwMHB4IGVuIGRlIG5pZXQtdHJhbnNwYXJhbnRlXG4gICBwaXhlbHMgb3BnZW1ldGVuOlxuXG4gICAgIGVkdWNhdGlvbiAoaGV0IG91ZGUpICA4NSUgICAgdmlkZW8tY2FtZXJhICA3NSVcbiAgICAgdGh1bmRlciAgICAgICAgICAgICAgIDgwJSAgICB0ZXh0LWZpbGUgICAgIDc2JVxuICAgICByYXRlLTIgICAgICAgICAgICAgICAgNzklICAgIHByb2dyZXNzICAgICAgNzIlXG4gICAgIGVkdWNhdGlvbi01ICAgICAgICAgICA3MiUgIDwtIGRlIGJhcmV0XG5cbiAgIERlIGJhcmV0IGlzIGJvdmVuZGllbiBicmVlZCBlbiBsYWFnICgxNDR4MTIyIHZhbiBkZSAyMDApLCB3YWFyIGRlIGJ1cmVuIGp1aXN0XG4gICBob29nIHppam4sIGR1cyBoaWogb29ndCBub2cga2xlaW5lciBkYW4gZGllIDcyJSBhbCB6ZWd0LiAxLjEgdGlsdCBoZW0gbmFhclxuICAgfjc5JSwgcHJlY2llcyBpbiBkZSBiYW5kYnJlZWR0ZSB2YW4gdGh1bmRlciBlbiByYXRlLTIgLSBnZWxpamt0cmVra2VuIG1ldCBkZVxuICAgZ3JvZXAsIG5pZXQgbWV0IGhldCBvdWRlIGljb29uLlxuXG4gICBHZWtvemVuIG9wIGRlIGBzcmNgIGVuIG5pZXQgb3AgaGV0IFNUQVBUWVBFOiBkaXQgaXMgZWVuIGVpZ2Vuc2NoYXAgdmFuIGRpdFxuICAgQkVTVEFORCwgbmlldCB2YW4gZGUga2VubmlzdnJhYWcuIEtpZXN0IEtpbSBtb3JnZW4gZWVuIGFuZGVyIGljb29uLCBkYW4gdmFsdFxuICAgZGV6ZSByZWdlbCB2YW56ZWxmIHdlZyBpbiBwbGFhdHMgdmFuIHN0aWxsZXRqZXMgaGV0IHZlcmtlZXJkZSBwbGFhdGplIG9wIHRlXG4gICBibGF6ZW4uIEVuIGB0cmFuc2Zvcm1gIGluIHBsYWF0cyB2YW4gYnJlZWR0ZS9ob29ndGUsIG9tZGF0IGRlemVsZmRlIGFuaW1hdGllXG4gICBvcCBkcmllIHBsZWtrZW4gc3RhYXQgbWV0IGRyaWUgdmVyc2NoaWxsZW5kZSBtYXRlbiAodHlwZWtpZXplciAzMHB4LFxuICAgc3RhcHBlbnJpaiAyOHB4LCBnZXNwcmVra2VucGFnaW5hIHppam4gZWlnZW4gdGVnZWwpIC0gZWVuIHNjaGFhbCB3ZXJrdCBvcFxuICAgYWxsZSBkcmllLCBlZW4gdmFzdGUgbWFhdCB6b3UgZXIgdHdlZSBzdHVrbWFrZW4uIEFsbGUgZHJpZSBkZSBjb250YWluZXJzXG4gICBjZW50cmVyZW4gbWV0IGZsZXgsIGR1cyBoZXQgaWNvb24gYmxpamZ0IHN0YWFuIHdhYXIgaGV0IHN0b25kLiAqL1xucWRuYXByby1sb3R0aWVbc3JjKj1cIi9lZHVjYXRpb24tNS5qc29uXCJdIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG59XG5cbi8qIERlIGtvcHBlbGluZ3NjaGlwIG9wIGVlbiBzdWl0ZS1zdGFwIChGMy1XMyk6IGRlemVsZmRlIGluZ2V0b2dlbiB2b3JtIGFscyBkZVxuICAgZGFnLWJhZGdlIGxpbmtzLCB6b2RhdCBkZSB0aWpkbGlqbiDDqcOpbiB0YWFsIGJsaWpmdCBzcHJla2VuLiBIaWogc3RhYXQgT05ERVJcbiAgIGRlIG1ldGEtcmVnZWwgb21kYXQgZWVuIGJlc3RhbmRzbmFhbSBsYW5nIGlzIGVuIGRlIG1ldGEtcmVnZWwgYWwgYWZrYXB0LiAqL1xuLnB1bHNlLXN0ZXAtcmVmIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNXB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgcGFkZGluZzogMnB4IDlweDtcbiAgICBib3JkZXItcmFkaXVzOiA5cHg7XG4gICAgYmFja2dyb3VuZDogI2VlZjBmYjtcbiAgICBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUsICMzOTQyOTApO1xuICAgIGZvbnQtc2l6ZTogMTEuNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xufVxuLnB1bHNlLXN0ZXAtcmVmIHFkbmFwcm8taWNvbiB7IGZsZXgtc2hyaW5rOiAwOyB9XG4ucHVsc2Utc3RlcC1yZWYgc3BhbiB7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5wdWxzZS1zdGVwLXJlZi5pcy1taXNzaW5nIHsgYmFja2dyb3VuZDogI2ZmZjJkNjsgY29sb3I6ICM3YTUzMDA7IH1cblxuXG4ucHVsc2Utc3RlcHMtZm9vdCB7IG1hcmdpbi10b3A6IDE0cHg7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTJweDsgZmxleC13cmFwOiB3cmFwOyB9XG4ucHVsc2Utc3RlcHMtaGludCB7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpOyB9XG5cbi8qIGBlbC5oaWRkZW4gPSB0cnVlYCB3ZXJrdCBOSUVUIHZhbnplbGYgb3AgZGV6ZSBlbGVtZW50ZW46IGRlIFVBLXJlZ2VsXG4gICBbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmUgfSB2ZXJsaWVzdCB2YW4gZGUga2xhc3NlLXJlZ2VscyBkaWUgZGUgY29tcG9uZW50ZW5cbiAgIHplbGYgbWVlYnJlbmdlbiAoLnFkbmFwcm8tYnV0dG9uLy5xZG5hcHJvLWljb24tYnRuIHpldHRlbiBkaXNwbGF5OmlubGluZS1mbGV4KVxuICAgZW4gdmFuIGRlIGRpc3BsYXk6ZmxleCBoaWVyYm92ZW4uIFBhZ2luYS1nZXNjb29wdCB0ZXJ1Z3pldHRlbiwgem9kYXQgdmVyYmVyZ2VuXG4gICBpbiBKUyBnZXdvb24gZWVuIGt3ZXN0aWUgdmFuIC5oaWRkZW4gYmxpamZ0LiAqL1xuLnB1bHNlLXN0ZXBzLWZvb3RbaGlkZGVuXSxcbi5wdWxzZS1kZXRhaWwtYm9keSBxZG5hcHJvLWJ1dHRvbltoaWRkZW5dLFxuLnB1bHNlLWRldGFpbC1ib2R5IHFkbmFwcm8taWNvbi1idG5baGlkZGVuXSxcbiNwdWxzZS1zdGVwLW1vZGFsIHFkbmFwcm8tYnV0dG9uW2hpZGRlbl0sXG4jcHVsc2Utc3RlcC1tb2RhbCBxZG5hcHJvLWljb24tYnRuW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG5cbi8qIERlIGxlZ2Ugc3RhYXQgaXMgc2luZHMgMTIuMDguMjAyNiBoZXQgZ2VkZWVsZGUgcWRuYXByby1lbXB0eS1zdGF0ZSBtZXRcbiAgIHN1cmZhY2U9XCJwYWdlXCIg4oCUIGVpZ2VuIG1hcmt1cCAoLnB1bHNlLXN0ZXBzLWVtcHR5KSBpcyBkYWFybWVlIHdlZy4gQWxsZWVuIHdhdFxuICAgbHVjaHQgZXJvbWhlZW4gYmxpamZ0IGhpZXIgc3RhYW47IGRlIHJlc3Qga29tdCB1aXQgaGV0IGNvbXBvbmVudC4gKi9cbi5wdWxzZS1zdGVwcyBxZG5hcHJvLWVtcHR5LXN0YXRlIHsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmc6IDE4cHggMCA2cHg7IH1cblxuLyogLS0tIFRvZXZvZWctcmlqOiBicmVkZSwgZ2VzdGlwcGVsZGUgQ1RBIGkucC52LiBkZSBrbm9wIGluIGRlIHZvZXQgLS0tLS0tLSAqL1xuLyogWmVsZmRlIHZvcm0gYWxzIGRlIHRha2VubGlqc3QgKC5hZGQtYmFyLy5hZGQtYmFyLWNpcmNsZS8uYWRkLWJhci1sYWJlbCxcbiAgIHRhc2tsaXN0LWFjdGl2aXRpZXMuc2NzcyA5MTPigJM5NjIpOiBnZXN0aXBwZWxkZSByYW5kLCBnZWNlbnRyZWVyZFxuICAgcGx1c2NpcmtlbHRqZSwgc3VidGllbGUgaG92ZXIsIFwiUHVsc2UtbWFhdFwiIOKAlCBkLncuei4gem9uZGVyIGRlXG4gICBtYXJnaW4tcmlnaHQ6IDQ2cHgtaGFjayB2YW4gZGUgdGFrZW5saWpzdCAoZGllIGNvbXBlbnNlZXJkZSBkYWFyIHZvb3IgZGVcbiAgIGxvc3NlIHdhcm5pbmctc2xvdCByZWNodHMgdmFuIGVsa2UgcmlqOyBkZSBQdWxzZS1zdGFwcGVucmlqIGhlZWZ0IGRpZVxuICAgbmlldCkuIGB3aWR0aDogMTAwJWAgc3RhYXQgZXIgZXhwbGljaWV0IGJpaiBpbiBwbGFhdHMgdmFuIHRlIHZlcnRyb3V3ZW4gb3BcbiAgIGZsZXgtc3RyZXRjaCB2YW4gZGUgb3VkZXI6IGRlIGV4YWN0ZSBwbGVrIGluIGRlIHZvZXQgKC5wdWxzZS1zdGVwcy1mb290KVxuICAgd29yZHQgcGFyYWxsZWwgZ2Vib3V3ZCAoa2FhcnQgMykgZW4gd2lkdGg6MTAwJSB3ZXJrdCBvbmdlYWNodCBvZiBkaWUgb3VkZXJcbiAgIGVlbiBmbGV4LXJpaiBvZiAta29sb20gaXMuICovXG4ucHVsc2UtYWRkLWJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgcGFkZGluZzogOHB4IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBib3JkZXI6IDEuNXB4IGRhc2hlZCByZ2JhKDcwLCA4MiwgMjQzLCAwLjMwKTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjgpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig2cHgpO1xuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDZweCk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTUwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDE1MG1zIGVhc2U7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgY29sb3I6IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG4ucHVsc2UtYWRkLWJhcjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ1KTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoNzAsIDgyLCAyNDMsIDAuNTApO1xufVxuLyogVG9ldHNlbmJvcmQtdG9lZ2Fua2VsaWpraGVpZDoga2FhcnQgMyBvcGVudCBkZSB0eXBla2llemVyIG9vayBvcCBFbnRlci9cbiAgIFNwYWNlLCBkdXMgZGV6ZSBDVEEgaXMgbWV0IGhldCB0b2V0c2VuYm9yZCB0ZSBiZXJlaWtlbiDigJQgZGFuIGhvb3J0IGVyIG9va1xuICAgZWVuIHppY2h0YmFyZSBmb2N1c3JpbmcgdGUgemlqbi4gWmVsZmRlIHBhdHJvb24gYWxzIGVsZGVycyBpbiBkaXQgYmVzdGFuZFxuICAgKGJ2LiAucHVsc2UtdHlwZS1jYXJkOmZvY3VzLXZpc2libGUpLiAqL1xuLnB1bHNlLWFkZC1iYXI6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbn1cbi5wdWxzZS1hZGQtYmFyLWNpcmNsZSB7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjEyKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgY29sb3I6IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNTBtcyBlYXNlLCBjb2xvciAxNTBtcyBlYXNlO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xufVxuLnB1bHNlLWFkZC1iYXI6aG92ZXIgLnB1bHNlLWFkZC1iYXItY2lyY2xlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xuICAgIGNvbG9yOiAjZmZmO1xufVxuLnB1bHNlLWFkZC1iYXItbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xufVxuXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnB1bHNlLWFkZC1iYXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS0yMDAtMzAsIHJnYmEoMTY1LCAxNzIsIDI1NSwgMC4zMCkpO1xuICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS0yMDAsICNhNWFjZmYpO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5wdWxzZS1hZGQtYmFyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtMjAwLTUwLCByZ2JhKDE2NSwgMTcyLCAyNTUsIDAuNTApKTtcbn1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucHVsc2UtYWRkLWJhci1jaXJjbGUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTIwMC0zMCwgcmdiYSgxNjUsIDE3MiwgMjU1LCAwLjE0KSk7XG4gICAgY29sb3I6IHZhcigtLWMtcHVycGxlLTIwMCwgI2E1YWNmZik7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnB1bHNlLWFkZC1iYXI6aG92ZXIgLnB1bHNlLWFkZC1iYXItY2lyY2xlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xuICAgIGNvbG9yOiAjZmZmO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5wdWxzZS1hZGQtYmFyLWxhYmVsIHtcbiAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtMjAwLCAjYTVhY2ZmKTtcbn1cblxuLyogLS0tIFNlY3RpZWtvcCAod2Vla2tvcGplcyk6IHN1YnNldCB2YW4gLmxpc3Qtc2VjdGlvbi1oZWFkZXIvLnNoLSogLS0tLS0tLSAqL1xuLyogPHFkbmFwcm8tc2VjdGlvbi1oZWFkZXI+IChob3N0LWtsYXNzZSAucHVsc2Utd2Vlay1oZWFkZXIgb3AgZGUgUHVsc2UtXG4gICBwYWdpbmEsIHBlciBhYW52dWxsaW5nIHZhbiBkZSB2aWV3LWthYXJ0KSBpcyBkZSBiZXN0YWFuZGUgY29tcG9uZW50IHVpdCBkZVxuICAgdGFrZW5saWpzdCAod2ViL2pzL2NvbXBvbmVudHMvdjIvc2VjdGlvbi1oZWFkZXIvcWRuYS1zZWN0aW9uLWhlYWRlci5qcyk7XG4gICBkaWUgcmVuZGVydCBhbHRpamQgemlqbiBjYW5vbmlla2UgLmxpc3Qtc2VjdGlvbi1oZWFkZXIvLnNoLSotbWFya3VwIGVuXG4gICBsZXVudCB2b29yIHN0eWxpbmcgb3AgdGFza2xpc3QtYWN0aXZpdGllcy5zY3NzICgyMjIw4oCTMjQ0NyBhbGRhYXIpLiBEYXRcbiAgIGJlc3RhbmQgd29yZHQgb3AgUHVsc2UgTklFVCBnZWxhZGVuIChtYWcgb29rIG5pZXQg4oCUIGJldmF0IHBhZ2luYS1icmVkZVxuICAgcmVnZWxzIGRpZSBoaWVyIG5pZXQgdGh1aXNob3JlbiksIGR1cyB6b25kZXIgZGV6ZSBzdWJzZXQgcmVuZGVydCBkZSBrb3BcbiAgIGthYWwuIEFsbGVlbiB3YXQgZGUga29wIGhpZXIgWkVMRiBub2cgbm9kaWcgaGVlZnQ6IGRlIHBpbCBtZXQgdGl0ZWwvXG4gICBzdWJ0aXRlbC4gR2VlbiBzbGVlcGdyZWVwLCBnZWVuIGJld2Vyay92ZXJ3aWpkZXIta25vcHBlbiDigJQgd2Vla2tvcGplcyB6aWpuXG4gICBjbGllbnQtc2lkZSBiZXJla2VuZCBlbiBzbGFhbiBuaWV0cyBvcCAoa29wamVzLXJlZ2VsLCBiZXNsdWl0IDgpLCBkdXMgZGllXG4gICB0d2VlIGFsdGlqZC1nZXJlbmRlcmRlIG9uZGVyZGVsZW4gd29yZGVuIGhpZXJvbmRlciBleHBsaWNpZXQgdmVyYm9yZ2VuIG9wXG4gICBkZXplIHBhZ2luYSBpLnAudi4gZ2VzdHlsZWQuIEtsZXVyZW4gemlqbiBvdmVyZ2V6ZXQgbmFhciBiZXN0YWFuZGUgdG9rZW5zXG4gICBpLnAudi4gZGUgbG9zc2UgaGV4IHVpdCB0YXNrbGlzdC1hY3Rpdml0aWVzLnNjc3MgKHppZSBrYWFydC00LXJhcHBvcnQgdm9vclxuICAgZGUgbWFwcGluZyB0dXNzZW4gb3VkZSBoZXggZW4gZ2VicnVpa3RlIHRva2VuKS4gKi9cbi5saXN0LXNlY3Rpb24taGVhZGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNXB4O1xuICAgIG1hcmdpbjogOHB4IDAgNXB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xufVxuLmxpc3Qtc2VjdGlvbi1oZWFkZXI6Zmlyc3QtY2hpbGQgeyBtYXJnaW4tdG9wOiAwOyB9XG5cbi5zaC1waWxsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTZweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM4KTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNnB4KTtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig2cHgpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NSk7XG4gICAgY3Vyc29yOiBncmFiO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTUwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDE1MG1zIGVhc2UsIGJveC1zaGFkb3cgMTUwbXMgZWFzZTtcbn1cbi5saXN0LXNlY3Rpb24taGVhZGVyOmhvdmVyIC5zaC1waWxsIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODApO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkwKTtcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjA3KTtcbn1cblxuLnNoLXRleHQtYmxvY2sge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbn1cbi5zaC10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjcyODApO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAxNTBtcyBlYXNlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG4uc2gtc3VidGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwLCAjYTZhYWIzKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMTUwbXMgZWFzZTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIG1pbi13aWR0aDogMnB4O1xufVxuLyogTGVnZSBzdWJ0aXRlbCAod2Vla2tvcGplcyBoZWJiZW4gZXIgZ2VlbikgY29sbGFwdCwgem9kYXQgZGUgdGl0ZWwgbmV0amVzXG4gICBpbiBkZSBwaWwgY2VudHJlZXJ0IGkucC52LiBydWltdGUgdGUgcmVzZXJ2ZXJlbiB2b29yIGVlbiBsZWdlIHJlZ2VsLiAqL1xuLnNoLXN1YnRpdGxlOmVtcHR5IHsgZGlzcGxheTogbm9uZTsgfVxuLmxpc3Qtc2VjdGlvbi1oZWFkZXI6aG92ZXIgLnNoLXRpdGxlIHsgY29sb3I6IHZhcigtLWMtZ3JleS05NTAsICMxYTFkMmUpOyB9XG4ubGlzdC1zZWN0aW9uLWhlYWRlcjpob3ZlciAuc2gtc3VidGl0bGUgeyBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNzI4MCk7IH1cblxuLyogQWFudnVsbGluZyBjb29yZGluYXRvciAyMC4wOC4yMDI2OiBzbGVlcGdyZWVwICsgYmV3ZXJrL3ZlcndpamRlci1rbm9wcGVuXG4gICB2ZXJiZXJnZW4gb3AgZGUgd2Vla2tvcGplcyDigJQgaGV0IGNvbXBvbmVudCByZW5kZXJ0IHplIGFsdGlqZCwgbWFhciBlciBpc1xuICAgaGllciBuaWV0cyBvbSB0ZSBzbGVwZW4gb2Ygb3AgdGUgc2xhYW4uICovXG4ucHVsc2Utd2Vlay1oZWFkZXIgLnNoLWRyYWcsXG4ucHVsc2Utd2Vlay1oZWFkZXIgLnNoLWFjdGlvbnMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBEZSBwaWxsIHZhbiBoZXQgY29tcG9uZW50IGRyYWFndCBjdXJzb3I6Z3JhYiwgbWFhciBlZW4gYXV0b21hdGlzY2gga29wamVcbiAgIHZhbHQgbmlldCB0ZSB2ZXJzbGVwZW4g4oCUIGRlIGN1cnNvciBtYWcgZGF0IGRhbiBvb2sgbmlldCBiZWxvdmVuLiAqL1xuLnB1bHNlLXdlZWstaGVhZGVyIC5zaC1waWxsIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAuc2gtcGlsbCB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLmxpc3Qtc2VjdGlvbi1oZWFkZXI6aG92ZXIgLnNoLXBpbGwge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjApO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMzApO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5zaC10aXRsZSB7IGNvbG9yOiB2YXIoLS1jLWdyZXktMTAwLCAjZTdlOWVjKTsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5zaC1zdWJ0aXRsZSB7IGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwLCAjYTZhYWIzKTsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5saXN0LXNlY3Rpb24taGVhZGVyOmhvdmVyIC5zaC10aXRsZSB7IGNvbG9yOiB2YXIoLS1jLWdyZXktNTAsICNmMGYxZjIpOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLmxpc3Qtc2VjdGlvbi1oZWFkZXI6aG92ZXIgLnNoLXN1YnRpdGxlIHsgY29sb3I6IHZhcigtLWMtZ3JleS0zMDAsICNjNGM3Y2MpOyB9XG5cbi8qIC0tLSBUeXBla2llemVyICh3ZWxrZSBzb29ydCBzdGFwIHdvcmR0IGhldD8pIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogRGUgdHlwZWtpZXplciBtb2V0IGt1bm5lbiBTQ1JPTExFTiAoMTIuMDguMjAyNikuIFNpbmRzIGVsa2Uga2FhcnQgdHdlZSByZWdlbHNcbiAgIHRla3N0IGRyYWFndCBpcyBkZSBsaWpzdCBob2dlciBkYW4gZWVuIGxhcHRvcHNjaGVybSwgZW4gdmllbGVuIGRlIG9uZGVyc3RlXG4gICB0ZWdlbHMgYnVpdGVuIGRlIG1vZGFsLlxuICpcbiAqIGBxZG5hcHJvLW1vZGFsLXNjcm9sbGFibGVgIChvcCBkZSBtb2RhbCBnZXpldCBpbiBkZSBKUykgbGFhdCBkZSBib2R5IHNjcm9sbGVuLFxuICogbWFhciBkYXQgaXMgbmlldCBnZW5vZWc6IGRlIGRpYWxvZyBoZWVmdCBhbGxlZW4gZWVuIGBtYXgtaGVpZ2h0YCwgZW4gZWVuXG4gKiBmbGV4LWl0ZW0ga3Jpamd0IHN0YW5kYWFyZCBgbWluLWhlaWdodDogYXV0b2AgPSB6aWpuIGVpZ2VuIGluaG91ZHNob29ndGUuIERpZVxuICogd2ludCBkYW4gdmFuIGRlIG1heC1oZWlnaHQgZW4gZGUgbW9kYWwgZ3JvZWl0IGFsc25vZyBkb29yIOKAlCBnZW1ldGVuOiA2NDNweFxuICogaG9vZyB3YWFyIDYyNSBtb2NodC5cbiAqXG4gKiBWYW5kYWFyIGBtaW4taGVpZ2h0OiAwYCBvcCBkZSBoZWxlIGtldGVuIGRpYWxvZyDihpIgd2luZG93LiBEZXplbGZkZSBpbmdyZWVwIGFsc1xuICogYmlqIGRlIHN0YXAtbW9kYWwgaGllcmJvdmVuOyB6aWUgb29rIGRlIHFkbmEtbW9kYWxzIHNraWxsIMKnMWQuICovXG4ucWRuYXByby1tb2RhbC5wdWxzZS10eXBlLW1vZGFsIC5tb2RhbC1kaWFsb2csXG4ucWRuYXByby1tb2RhbC5wdWxzZS10eXBlLW1vZGFsIC5tb2RhbC13aW5kb3cge1xuICAgIG1pbi1oZWlnaHQ6IDA7XG59XG4vKiBFbiBlZW4gcnVpbWVyZSBtYXJnZSBkYW4gZGUgc3RhbmRhYXJkIGBjYWxjKDEwMHZoIC0gNDhweClgLiBEaWUgNDggaXMgcHJlY2llc1xuICAgZGUgcGFkZGluZyB2YW4gZGUgYmFja2Ryb3AsIG1hYXIgZGUgZGlhbG9nIE1FRVQgMThweCBtZWVyIGRhbiBoaWogcmVrZW50ICh6aWpuXG4gICByYW5kIGVuIHBhZGRpbmcgdmFsbGVuIGJ1aXRlbiBkaWUgbWF4LWhlaWdodCksIGR1cyBtZXQgZGUgc3RhbmRhYXJkd2FhcmRlXG4gICBzdGVla3QgaGlqIGVyIGFhbiBvbmRlci0gZW4gYm92ZW5rYW50IGVlbiBzdHVramUgdWl0LiBHZW1ldGVuIG9wIGVlbiB2ZW5zdGVyXG4gICB2YW4gNjczcHg6IGRpYWxvZyA2NDMgaG9vZyB3YWFyIGVyIDYyNSBiZXNjaGlrYmFhciB3YXMuXG4gICA4MHB4IGxhYXQgZGllIDE4IHJ1aW1zY2hvb3RzIHZyaWogZW4gZ2VlZnQgZGUgbW9kYWwgd2F0IGx1Y2h0LiAqL1xuLnFkbmFwcm8tbW9kYWwucHVsc2UtdHlwZS1tb2RhbCAubW9kYWwtZGlhbG9nIHtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gODBweCk7XG59XG5cbi8qIEVuIHNpbmRzIGhldCByYXN0ZXIgcGFzdCBkZSBpbmhvdWQgaW4gZWVuIHBhYXIgcmlqZW46IGRlIHZhc3RlIGhvb2d0ZSB2YW5cbiAgIHNpemU9XCJ4eGxhcmdlXCIgbGlldCBkYW4gdHdlZWRlcmRlIHZhbiBkZSBiYWsgbGVlZy4gSG9vZ3RlIG9wIGF1dG8gbGFhdCBkZVxuICAgbW9kYWwgb20gZGUgemVzIGthYXJ0ZW4gaGVlbiBrcmltcGVuOyBkZSBtYXgtaGVpZ2h0IGJsaWpmdCBkZSB2YW5ncmFpbC5cbiAgIFplbGZkZSBhYW5wYWsgYWxzIC5wdWxzZS10YXJnZXRzLW1vZGFsIGhpZXJib3Zlbi4gKi9cbi5xZG5hcHJvLW1vZGFsLnB1bHNlLXR5cGUtbW9kYWwgLm1vZGFsLWRpYWxvZyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IG1pbig4MDBweCwgY2FsYygxMDB2aCAtIDgwcHgpKTtcbn1cbi5xZG5hcHJvLW1vZGFsLnB1bHNlLXR5cGUtbW9kYWwgLm1vZGFsLXdpbmRvdyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKiBEZSBpbGx1c3RyYXRpZSBpbiBoZXQgaW5mb3BhbmVlbCBzdGFhdCBiZXd1c3QgaW5nZXRvZ2VuIChLaW06IDYwJSk6IGhldCBpc1xuICAgc2ZlZXIgbmFhc3QgZGUga2V1emUsIGdlZW4gZWxlbWVudCBkYXQgb20gYWFuZGFjaHQgdnJhYWd0LiBQYWdlLXNjb3BlZCwgZHVzXG4gICBkZSBhbmRlcmUgd2l0aC1pbmZvLW1vZGFscyBob3VkZW4gaHVuIGVpZ2VuIHdlZXJnYXZlLiAqL1xuLnFkbmFwcm8tbW9kYWwucHVsc2UtdHlwZS1tb2RhbCAucWRuYXByby1tb2RhbC1pbmZvLWlsbHVzdHJhdGlvbiB7XG4gICAgb3BhY2l0eTogLjY7XG59XG5cbi8qIERvZWxncm9lcC1tb2RhbCAoa2FhcnQgNiwgMjAuMDguMjAyNik6IHNpemU9XCJsYXJnZVwiIGZvcmNlZXJ0IGVlbiB2YXN0ZSBob29ndGVcbiAgIHZhbiBtaW4oODAwcHgsIDEwMHZoIC0gNDhweCkgb3AgZGUgZGlhbG9nLCB0ZXJ3aWpsIGRlIGRvZWxncm9lcGJvdXdlciBtYWFyXG4gICB+NTAwcHggdnVsdCDigJQgZGF0IGdhZiBlZW4gZ3JvdGVuZGVlbHMgbGVnZSBiYWsuIEhvb2d0ZSBvcCBhdXRvIGxhYXQgZGUgbW9kYWxcbiAgIG9tIGRlIGJvdXdlciBoZWVuIGtyaW1wZW47IGRlIG1heC1oZWlnaHQgYmxpamZ0IGRlIHZhbmdyYWlsIGJpaiB2ZWVsIGNvbnRlbnRcbiAgIChkYW4gc2Nyb2xsdCBkZSBib2R5KS4gWmVsZmRlIGFhbnBhayBhbHMgLmZlLWltcG9ydC1tb2RhbCBpbiBfbW9kYWwuc2Nzcy4gKi9cbi5xZG5hcHJvLW1vZGFsLnB1bHNlLXRhcmdldHMtbW9kYWwgLm1vZGFsLWRpYWxvZyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IG1pbig4MDBweCwgY2FsYygxMDB2aCAtIDQ4cHgpKTtcbn1cbi5xZG5hcHJvLW1vZGFsLnB1bHNlLXRhcmdldHMtbW9kYWwgLm1vZGFsLXdpbmRvdyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKiBLaW1zIHJldmlldyAyNC4wODogZGUgemVzIHR5cGVrYWFydGVuIHN0b25kZW4gYWxzIHZvbGxlLWJyZWVkdGUgcmlqZW4gb25kZXJcbiAgIGVsa2FhciBlbiBkcm9lZ2VuIGVlbiBhbmRlcmUgaG92ZXIvZm9jdXMtdGFhbCBkYW4gZGUgb3BtYWFra2FhcnRlbiB2YW5cbiAgIHdpemFyZC1zdGFwIDEsIHRlcndpamwgamUgemUgdmxhayBuYSBlbGthYXIgemlldCBpbiBkZXplbGZkZSBmbG93LiBOdSBlZW5cbiAgIHJhc3RlciAoZHJpZSBrb2xvbW1lbiBvcCBkZSB2ZXJicmVkZSBtb2RhbCkgbWV0IGV4YWN0IGRlemVsZmRlIHN0YW5kZW4gYWxzXG4gICAucHVsc2Utd2l6LWNhcmQuICovXG4ucHVsc2UtdHlwZS1jYXJkcyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICAvKiBUd2VlIGtvbG9tbWVuIHNpbmRzIGhldCBpbmZvcGFuZWVsIGVyYmlqIGt3YW0gKEtpbSAyNC4wOCk6IGRhdCBwYW5lZWxcbiAgICAgICBlZXQgbGlua3MgcnVpbXRlLCBkdXMgZHJpZSBrb2xvbW1lbiB3ZXJkZW4gdGUgc21hbCB2b29yIHR3ZWUgcmVnZWxzXG4gICAgICAgdGVrc3QgcGVyIGthYXJ0LiBaZXMga2FhcnRlbiB3b3JkZW4gem8gMyByaWplbiB2YW4gMi4gKi9cbiAgICAvKiBhdXRvLWZpdCBpLnAudi4gZWVuIHZhc3QgYWFudGFsOiBiaWogZWVuIHNtYWwgdmVuc3RlciAob2YgYnJvd3Nlcnpvb20pXG4gICAgICAgdmFsdCBoZXQgcmFzdGVyIHZhbnplbGYgdGVydWcgbmFhciBlZW4ga29sb20gaW4gcGxhYXRzIHZhbiB0ZSBrbmVsbGVuLlxuICAgICAgIERlIG1lZGlhLXF1ZXJ5IGhpZXJvbmRlciBrZWVrIG5hYXIgZGUgVklFV1BPUlQgZW4gbWlzdGUgZGF0IGdldmFsLiAqL1xuICAgIC8qIFR3ZWUga29sb21tZW4sIHZhc3QuIGF1dG8tZml0IGxlZWsgc2xpbW1lciBtYWFyIHJla2VuZGUgemljaHplbGYgbmFhclxuICAgICAgIGRyaWUga29sb21tZW4gb3AgZWVuIGJyZWVkIHNjaGVybSBlbiBuYWFyIGVlbiBvcCB+ODUwcHg6IHByZWNpZXMgZGUgdHdlZVxuICAgICAgIGRpbmdlbiBkaWUgS2ltIG5pZXQgd2lsZGUuIERlIHRlcnVndmFsIG5hYXIgZWVuIGtvbG9tIHN0YWF0IGRhYXJvbSBvcFxuICAgICAgIGVlbiBlY2h0ZSBrbGVpbmUtdmVuc3RlcmdyZW5zIGhpZXJvbmRlci4gKi9cbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgZ2FwOiAxMnB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDgyMHB4KSB7XG4gICAgLnB1bHNlLXR5cGUtY2FyZHMgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpOyB9XG59XG4vKiBEZSBrYWFydCBlbiB6aWpuIHRla3N0YmxvayBtb2dlbiBrcmltcGVuOyB6b25kZXIgbWluLXdpZHRoOjAgZHV3dCBkZSBsYW5nc3RlXG4gICByZWdlbCBkZSBrb2xvbSBicmVkZXIgZGFuIGRlIHJ1aW10ZSBlbiBrcmlqZyBqZSBlZW4gaG9yaXpvbnRhbGUgc2NodWlmYmFsa1xuICAgKHdhdCBLaW0gemFnKS4gKi9cbi5wdWxzZS10eXBlLWNhcmQgeyBtaW4td2lkdGg6IDA7IH1cbi5wdWxzZS10eXBlLWNhcmQgPiBkaXYgeyBtaW4td2lkdGg6IDA7IH1cbi5wdWxzZS10eXBlLWNhcmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiAxMnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDE0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCwgI2U1ZTVlYSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC8qIGdlZW4gdHJhbnNmb3JtL2JveC1zaGFkb3cgaW4gZGUgdHJhbnNpdGllOiB6aWUgZGUgdWl0bGVnIGJpalxuICAgICAgIC5wdWxzZS13aXotY2FyZCAoZWVuIGdlYW5pbWVlcmRlIHJpbmcgc3RhYXQgb3AgdD0wIG5vZyBvcCB6aWpuXG4gICAgICAgc3RhcnR3YWFyZGUgZW4gS2ltIHdpbCBnZWVuIGhvdmVyLWxpZnQpLiAqL1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAxMjBtcyBlYXNlLCBiYWNrZ3JvdW5kIDEyMG1zIGVhc2U7XG59XG4ucHVsc2UtdHlwZS1jYXJkOmhvdmVyICB7IGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtMzAwLCAjYTlhZGRlKTsgfSAgLyogS2ltIDI0LjA4OiBob3ZlciB2ZXJmdCBOSUVULCBhbGxlZW4gZGUgcmFuZCBrbGV1cnQuICovXG4ucHVsc2UtdHlwZS1jYXJkOmFjdGl2ZSB7IGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtMzAwLCAjYTlhZGRlKTsgYmFja2dyb3VuZDogdmFyKC0tYy1ib3JkZXItdHJlZS1icmlnaHQsICNkNGQ4ZWUpOyB9XG4vKiBaZWxmZGUgcmVkZW4gYWxzIGJpaiAucHVsc2Utd2l6LWNhcmQ6IGRlIHYxLWhlYWRlciBsYWFkdCBib290c3RyYXAsIGVuIGRpZVxuICAgemV0IGVlbiBoYXJkZSBibGF1d2Ugc3lzdGVlbS1vdXRsaW5lIG9wIEVMS0Uga25vcCBiaWogOmZvY3VzIChlZW4gbXVpc2tsaWtcbiAgIGdlZWZ0IHdlbCA6Zm9jdXMgbWFhciBnZWVuIDpmb2N1cy12aXNpYmxlKS4gVWl0emV0dGVuLCBlbiBkZSB6aWNodGJhcmVcbiAgIG1hcmtlcmluZyBpcyBkZSB6YWNodGUgbGljaHRwYWFyc2UgZHViYmVsZSByaW5nIGhpZXJvbmRlci4gKi9cbi5wdWxzZS10eXBlLWNhcmQ6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG4ucHVsc2UtdHlwZS1jYXJkOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWMtcHVycGxlLTIwMCwgI2E1YWNmZiksIDAgMCAwIDVweCB2YXIoLS1mb2N1cy1nbG93LCByZ2JhKDgzLCA3NCwgMTgzLCAuMTgpKTtcbn1cbi5wdWxzZS10eXBlLWNhcmQtdGl0bGUgeyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzM5NDI5MCk7IG1hcmdpbjogMCAwIDJweDsgfVxuLnB1bHNlLXR5cGUtY2FyZC1kZXNjICB7IGZvbnQtc2l6ZTogMTIuNXB4OyBsaW5lLWhlaWdodDogMThweDsgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpOyBtYXJnaW46IDA7IH1cbi8qIERlIHByYWt0aXNjaGUgcmVnZWwgcGVyIHN0YXB0eXBlICgxMi4wOC4yMDI2KTogd2F0IGVyIG7DoSBoZXQga2llemVuIGdlYmV1cnQsXG4gICBvZiB3YXQgZWVuIGRlZWxuZW1lciB3w6lsIGVuIG5pZXQgdGUgemllbiBrcmlqZ3QuIExpY2h0ZXIgZ2V6ZXQgZGFuIGRlXG4gICBvbXNjaHJpanZpbmcgZXJib3ZlbiDigJQgaGV0IGlzIGVlbiB2b2V0bm9vdCBiaWogZGUga2V1emUsIGdlZW4gdHdlZWRlIHRpdGVsLiAqL1xuLyogS2ltIDI0LjA4OiBoZXQgaS1wdW50amUgcmVjaHRzYm92ZW4gaW4gZGUga2FhcnQuIEhvdmVyIG9mIHRpayB0b29udCBkZVxuICAgdGVrc3QgZGllIGVlcnN0IGFscyBkZXJkZSByZWdlbCBpbiBkZSBrYWFydCBzdG9uZC4gSW5nZXRvZ2VuIGluIHJ1c3QsIHdhbnRcbiAgIGhldCBpcyBlZW4gaHVscG1pZGRlbCwgZ2VlbiB0d2VlZGUgYWN0aWUgbmFhc3QgZGUga2V1emUgemVsZi4gKi9cbi5wdWxzZS10eXBlLWNhcmQgeyBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbi8qIERlIGluZm8tcG9wb3ZlciBob29ydCBCT1ZFTiBkZSBtb2RhbCB0ZSBsaWdnZW4uIHFkbmFwcm8tcG9wb3ZlciBzdGFhdCBvcFxuICAgei1pbmRleCAxMDAxIGVuIHFkbmFwcm8tbW9kYWwgb3AgOTAwMCwgZHVzIGJpbm5lbiBlZW4gbW9kYWwgb3BlbmRlIGhpalxuICAgb256aWNodGJhYXIgZXJhY2h0ZXI6IGRhdCB3YXMgZGUgXCJob3ZlciBkb2V0IG5pa3NcIi1tZWxkaW5nIHZhbiBLaW0gKDI0LjA4KS5cbiAgIEdlbGR0IHZvb3IgYmVpZGUgZ2VicnVpa2VycyB2YW4gZGV6ZSBwb3BvdmVyOiBoZXQgaS1wdW50amUgb3AgZWVuIHR5cGVrYWFydFxuICAgZW4gaGV0IGkta25vcGplIGJpaiBTdWJ0ZWtzdCBpbiBkZSB3aXphcmQuICovXG4ucWRuYXByby1wb3BvdmVyW2RhdGEtcHVsc2UtaW5mb10geyB6LWluZGV4OiA5NDAwOyB9XG4vKiDimqDvuI8gWkVMRkRFIFZBTCwgVFdFRSBLRUVSIE9QTklFVVcgR0VWT05ERU4gKDI3LjA4LjIwMjYpLiBFbGtlIHBvcG92ZXIgZGllXG4gICB2YW51aXQgZGUgd2l6YXJkL21vZGFsIG9wZW50IGhlZWZ0IGRlemUgcmVnZWwgbm9kaWcsIGFuZGVycyBvcGVudCBoaWpcbiAgIG9uemljaHRiYWFyIEFDSFRFUiBkZSBvdmVybGF5LiBHZW1ldGVuIG1ldCBlbGVtZW50RnJvbVBvaW50IG9wIGhldCBtaWRkZW5cbiAgIHZhbiBoZXQgZ2VvcGVuZGUgcGFuZWVsOiB6b25kZXIgZGUgcmVnZWwga3dhbSBkZSB3aXphcmQtc3RhcCB0ZXJ1ZywgbmlldCBkZVxuICAgcG9wb3Zlci4gRGUgZW1vamktL2ljb29uLWtpZXplcnMgKGthYXJ0IE0xMSkgbWlzdGVuIGhlbSDigJQgZGllIHdhcmVuIGFsbGVlblxuICAgZnVuY3Rpb25lZWwgZ2V0ZXN0IChpbnZvZWdpbmcga2xvcHRlKSwgbmlldCB2aXN1ZWVsLCBkdXMgZGUgZm91dCBibGVlZlxuICAgb25vcGdlbWVya3QuIEhldCBvcG1hYWstbWVudSAoTTEzYykgaG9vcnQgaW4gZGV6ZWxmZGUgbGlqc3QuICovXG4vKiAwMi4wOS4yMDI2OiBkZSB0d2VlIGtpZXplcnMgemlqbiBudSBiaWJsaW90aGVla2NvbXBvbmVudGVuXG4gICAocWRuYXByby1lbW9qaS1zaGVldCAvIHFkbmFwcm8tc3RpY2tlci1zaGVldCBtZXQgdmFyaWFudD1cInBvcG92ZXJcIiksIGVuIGRpZVxuICAgYm91d2VuIGh1biBlaWdlbiBxZG5hcHJvLXBvcG92ZXItc2NoaWwgbWV0IGVlbiBFSUdFTiBkYXRhLWhhYWsuIERlemVsZmRlIHZhbFxuICAgZ2VsZHQgZHVzIG9udmVya29ydDogem9uZGVyIGRlemUgcmVnZWwgb3BlbmVuIHplIHZhbnVpdCBkZSBzdGFwLW1vZGFsXG4gICBvbnppY2h0YmFhciBhY2h0ZXIgZGUgb3ZlcmxheS4gSGV0IGlzIG5pZXQgYWFuIGRlIGNvbXBvbmVudGVuIG9tIGRpdCB0ZVxuICAgd2V0ZW4g4oCUIGRlIHotaW5kZXgtbGFhZyBpcyBlZW4gZWlnZW5zY2hhcCB2YW4gREVaRSBwYWdpbmEuICovXG4ucWRuYXByby1wb3BvdmVyW2RhdGEtZW1vamktc2hlZXRdLFxuLnFkbmFwcm8tcG9wb3ZlcltkYXRhLXN0aWNrZXItc2hlZXRdLFxuLnFkbmFwcm8tcG9wb3ZlcltkYXRhLXB1bHNlLWxheW91dC1tZW51XSB7IHotaW5kZXg6IDk0MDA7IH1cblxuLnB1bHNlLXR5cGUtY2FyZC1pbmZvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMHB4O1xuICAgIHJpZ2h0OiAxMHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDIycHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwLCAjOGI4OGEzKTtcbiAgICBjdXJzb3I6IGhlbHA7XG59XG4ucHVsc2UtdHlwZS1jYXJkLWluZm86aG92ZXIsXG4ucHVsc2UtdHlwZS1jYXJkLWluZm86Zm9jdXMtdmlzaWJsZSB7XG4gICAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjMzk0MjkwKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTAsICNmM2YzZjcpO1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG4vKiBEZSBvbXNjaHJpanZpbmcgbWFnIG51IGRlIHZvbGxlIGJyZWVkdGUgcGFra2VuIG9wIMOpw6luIHBsZWsgbWluZGVyIHRla3N0LiAqL1xuLnB1bHNlLXR5cGUtY2FyZC1kZXNjIHsgcGFkZGluZy1yaWdodDogMjZweDsgfVxuXG4ucHVsc2UtdHlwZS1jYXJkLW5vdGUge1xuICAgIG1hcmdpbjogNXB4IDAgMDtcbiAgICBmb250LXNpemU6IDExLjVweDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTQwMCwgIzhiODhhMyk7XG59XG5cbi8qIEthYXJ0IDggemV0dGUgYWwgYGRpc2FibGVkYCBvcCBkZSBrbm9wIHZhbiBlZW4gc3RhcnQtL2VpbmRzY2hlcm0gZGF0IGVyIGFsXG4gICBpcyAoZGUga2xpayB3YXMgZHVzIGFsIGdlYmxva2tlZXJkKSBlbiBzY2hyZWVmIGRlIHJlZGVuIGVyb25kZXIsIG1hYXIgZGVcbiAgIGthYXJ0IFpBRyBlciBub2cgdWl0IGFscyBlbGtlIGFuZGVyZTogd2l0dGUgYWNodGVyZ3JvbmQsIGhvdmVyLXJhbmQsIHZvbFxuICAgZ2VrbGV1cmQgaWNvb250amUuIEtpbSAwMi4wOS4yMDI2OiBcImRlemUga25vcCBtb2V0IGVlbiBkaXNhYmxlZCBzdGF0ZVxuICAga3JpamdlblwiLiBWYW5kYWFyIGhpZXJvbmRlci5cbiAgIERlIFVJVExFRyBibGlqZnQgb3Agdm9sbGUgc3Rlcmt0ZSBzdGFhbiAtIGp1aXN0IGRpZSBtb2V0IGplIGt1bm5lbiBsZXplbiAtXG4gICBkdXMgaGV0IGRvZmZlbiBnZWJldXJ0IHBlciBvbmRlcmRlZWwgZW4gbmlldCBtZXQgw6nDqW4gb3BhY2l0eSBvdmVyIGRlIGhlbGVcbiAgIGthYXJ0LiBIZXQgaWNvb250amUgZ2FhdCBuYWFyIGdyaWpzOiBlZW4gdnJvbGlqayBnZWtsZXVyZCB2bGFramUgYmxpamZ0XG4gICB1aXRub2RpZ2VuLCBvb2sgYWxzIGRlIHJlc3QgYWwgZ2Vkb29mZCBpcy4gQW5pbWVyZW4gZG9ldCBoaWogaGllciBiZXd1c3RcbiAgIG5pZXQgKG9wZW5UeXBlQ2hvb3NlciBzbGFhdCB1aXRnZXNjaGFrZWxkZSBrYWFydGVuIG92ZXIgYmlqIGhvdmVyKS4gKi9cbi5wdWxzZS10eXBlLWNhcmQ6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwLCAjZjNmM2Y3KTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYm9yZGVyLXNvZnQsICNlNWU1ZWEpO1xufVxuLnB1bHNlLXR5cGUtY2FyZDpkaXNhYmxlZDpob3Zlcixcbi5wdWxzZS10eXBlLWNhcmQ6ZGlzYWJsZWQ6YWN0aXZlIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYm9yZGVyLXNvZnQsICNlNWU1ZWEpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCwgI2YzZjNmNyk7XG59XG4ucHVsc2UtdHlwZS1jYXJkOmRpc2FibGVkIC5wdWxzZS10eXBlLWNhcmQtdGl0bGUsXG4ucHVsc2UtdHlwZS1jYXJkOmRpc2FibGVkIC5wdWxzZS10eXBlLWNhcmQtZGVzYyB7IG9wYWNpdHk6IC41OyB9XG4ucHVsc2UtdHlwZS1jYXJkOmRpc2FibGVkIC5wdWxzZS1zdGVwLXR5cGUge1xuICAgIG9wYWNpdHk6IC41O1xuICAgIGZpbHRlcjogZ3JheXNjYWxlKDEpO1xufVxuLyogSGV0IGktcHVudGplIGhvb3J0IGJpaiBlZW4ga2V1emUgZGllIGplIGt1bnQgbWFrZW4uICovXG4ucHVsc2UtdHlwZS1jYXJkOmRpc2FibGVkIC5wdWxzZS10eXBlLWNhcmQtaW5mbyB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLyogLS0tIFN0YXAtbW9kYWwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBEZSBob29ndGUtY29ycmVjdGllIHZvb3IgYGxheW91dD1cIndpdGgtaW5mb1wiYCBkaWUgaGllciBzdG9uZCBpcyB3ZWcgcGVyXG4gICAxMi4wOC4yMDI2OiBkaWUgbGF5b3V0IGdlYnJ1aWt0IGRlemUgbW9kYWwgbmlldCBtZWVyICh6aWUgZGUgc3BsaXRzY3JlZW4tcmVnZWxzXG4gICB2ZXJkZXJvcCwgZGllIGh1biBlaWdlbiB2YXN0ZSBob29ndGUgemV0dGVuIHpvZGF0IGRlIGtvbG9tbWVuIGt1bm5lbiBzY3JvbGxlbikuICovXG4jcHVsc2Utc3RlcC1tb2RhbC5tb2RhbC1sYXlvdXQtd2l0aC1pbmZvIC5tb2RhbC13aW5kb3cge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbn1cblxuLyogLS0tIFNwbGl0c2NyZWVuIGluIGRlIHN0YXAtbW9kYWwgKDEyLjA4LjIwMjYsIEtpbSkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogTGlua3Mgd2F0IGplIElOU1RFTFQsIHJlY2h0cyB3YXQgZGUgZGVlbG5lbWVyIFpJRVQuXG4gKlxuICogSGV0IHVpdGxlZ3BhbmVlbCAoYGxheW91dD1cIndpdGgtaW5mb1wiYCkgaXMgaGllcnZvb3Igb3BnZWdldmVuOiBkYXQga29zdHRlIDI4MFxuICogdmFuIGRlIDgwMCBwaXhlbHMgYWFuIGVlbiBpbGx1c3RyYXRpZSwgd2FhcmRvb3Igw6lsayB2ZWxkIOKAlCBpbmNsdXNpZWYgZGVcbiAqIHRla3N0dmVyd2Vya2VyIOKAlCBpbiBkZSByZXN0ZXJlbmRlIH41MDBweCBtb2VzdCBwYXNzZW4uXG4gKlxuICog4pqg77iPIERFIEtPTE9NTUVOIFNDUk9MTEVOLCBOSUVUIERFIE1PREFMLUJPRFkuIERhdCBpcyBoZXQgaGVsZSBwdW50OiBwYXMgamVcbiAqIGxpbmtzIGlldHMgYWFuLCBkYW4gaG9vcnQgZGUgdGVrc3R2ZXJ3ZXJrZXIgcmVjaHRzIGluIGJlZWxkIHRlIGJsaWp2ZW4uIERhdFxuICogdnJhYWd0IGBtaW4taGVpZ2h0OiAwYCBvcCBkZSBIRUxFIGZsZXgta2V0ZW4gKGRpYWxvZyDihpIgd2luZG93IOKGkiBib2R5IOKGkiBzcGxpdCksXG4gKiB3YW50IGVlbiBmbGV4LWl0ZW0ga3Jpamd0IHN0YW5kYWFyZCBgbWluLWhlaWdodDogYXV0b2AgPSB6aWpuIGVpZ2VuIGluaG91ZCwgZW5cbiAqIGRhbiB3aW50IGRlIGluaG91ZHNob29ndGUgdmFuIGVsa2UgaG9vZ3RlIGRpZSBqZSBvcGxlZ3QgZW4gc2Nyb2xsdCBlciBuaWV0cy5cbiAqIFppZSBvb2sgZGUgcWRuYS1tb2RhbHMgc2tpbGwsIMKnMWQuICovXG4jcHVsc2Utc3RlcC1tb2RhbCAubW9kYWwtZGlhbG9nIHtcbiAgICBoZWlnaHQ6IG1pbig3NjBweCwgY2FsYygxMDB2aCAtIDY0cHgpKTtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4jcHVsc2Utc3RlcC1tb2RhbCAubW9kYWwtd2luZG93IHsgbWluLWhlaWdodDogMDsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuI3B1bHNlLXN0ZXAtbW9kYWwgLm1vZGFsLWJvZHkge1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIC8qIERlIGJvZHkgc2Nyb2xsdCBOSUVUOyBkZSBrb2xvbW1lbiBlcmluIGRvZW4gZGF0LiAqL1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5wdWxzZS1zbS1zcGxpdCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIC8qIDQ1LzU1IGluIHBsYWF0cyB2YW4gZGUgZWVyc3RlIDM0MC82MjAgKEtpbSAxMi4wOC4yMDI2OiBcImVlbiBiZWV0amUgbWVlclxuICAgICAgIDUwLTUwXCIpLiBOaWV0IGV4YWN0IGhhbGYgb20gaGFsZjogZGUgcmVjaHRlcmtvbG9tIGRyYWFndCBkZVxuICAgICAgIHRla3N0dmVyd2Vya2VyIMOpbiBkZSBhbnR3b29yZG9wdGllcywgZHVzIGRpZSBtYWcgZGUgYnJlZGVyZSBibGlqdmVuLlxuICAgICAgIFBlcmNlbnRhZ2VzIGVuIGdlZW4gdmFzdGUgcGl4ZWxzLCB6b2RhdCBkZSB2ZXJob3VkaW5nIGtsb3B0IGJsaWpmdCBhbHMgZGVcbiAgICAgICBtb2RhbCBvb2l0IG5hYXIgeHhsYXJnZSBnYWF0LiAqL1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNDUlIG1pbm1heCgwLCAxZnIpO1xuICAgIGdhcDogMDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICAgIC8qIFRlIHNtYWwgdm9vciB0d2VlIGtvbG9tbWVuOiBkYW4gb25kZXIgZWxrYWFyLCBlbiBzY3JvbGx0IGRlIGJvZHkgd2VlciBhbHNcbiAgICAgICBnZWhlZWwuIFpvbmRlciBkZXplIHRlcnVndmFsIHpvdSBkZSBsaW5rZXJrb2xvbSB2YW4gMzQwcHggZGUgcmVjaHRlclxuICAgICAgIHBsYXRkcnVra2VuLiAqL1xuICAgIC5wdWxzZS1zbS1zcGxpdCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcik7IH1cbiAgICAjcHVsc2Utc3RlcC1tb2RhbCAubW9kYWwtYm9keSB7IG92ZXJmbG93LXk6IGF1dG87IH1cbiAgICAucHVsc2Utc20tY29sIHsgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDsgfVxufVxuXG4ucHVsc2Utc20tY29sIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgLyogNHB4IGFkZW1ydWltdGUgKyBzY3JvbGwtcGFkZGluZzogem9uZGVyIGRpdCB3b3JkdCBkZSBmb2N1cy1yaW5nIHZhbiBoZXRcbiAgICAgICBib3ZlbnN0ZSB2ZWxkIChlZW4gYm94LXNoYWRvdyB2YW4gM3B4KSBkb29yIGRlIHNjcm9sbC1jb250YWluZXIgYWZnZWthcHQuXG4gICAgICAgRGV6ZWxmZGUgcmVnZWwgYWxzIG9wIC5tb2RhbC1ib2R5IGluIF9tb2RhbC5zY3NzIOKAlCBlZW4gbmlldXdlXG4gICAgICAgc2Nyb2xsLWNvbnRhaW5lciBoZWVmdCBoZW0gb3BuaWV1dyBub2RpZy4gKi9cbiAgICBwYWRkaW5nOiA0cHggMTZweCAxNnB4O1xuICAgIHNjcm9sbC1wYWRkaW5nLXRvcDogOHB4O1xufVxuLnB1bHNlLXNtLWNvbC0tc2V0IHtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LCAjZTVlNWVhKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUsICNmYWY5ZmUpO1xufVxuLnB1bHNlLXNtLWNvbC0tY29udGVudCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cblxuLyogRGUgd3JhcC1yZWdlbHMgdm9vciBcImRhZyBuYWFzdCByaXRtZVwiIHppam4gd2VnIHBlciAxMi4wOC4yMDI2OiBkaWUgdHdlZSBzdGFhblxuICAgbmlldCBtZWVyIG5hYXN0IGVsa2FhciAoemllIC5wdWxzZS1wYWNlIGhpZXJib3ZlbiksIGR1cyBlciB2YWx0IG5pZXRzIG1lZXIgdGVcbiAgIGxhdGVuIHdyYXBwZW4uIC5wdWxzZS1zbS1yb3cgemVsZiBibGlqZnQgYmVzdGFhbiB2b29yIGFuZGVyIGdlYnJ1aWsuICovXG5cbi8qIERlIGFudHdvb3Jkb3B0aWVzIHN0YWFuIHNpbmRzIDEyLjA4LjIwMjYgTElOS1MsIG9uZGVyIGRlIHBsYW5uaW5nLiBFZW5cbiAgIGhhYXJsaWpuIGVyYm92ZW4gc2NoZWlkdCBcIndhbm5lZXIgZW4gaG9lXCIgdmFuIFwiZGUgdnJhYWcgemVsZlwiOyB6b25kZXIgZGllXG4gICBzY2hlaWRpbmcgbG9vcHQgZGUga29sb20gYWxzIMOpw6luIGxhbmdlIHNsaWVydCB2ZWxkZW4gZG9vci4gKi9cbi5wdWxzZS1zbS1jb2wtLXNldCAjcHVsc2Utc20tb3B0aW9ucy1maWVsZCB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBwYWRkaW5nLXRvcDogMThweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCwgI2U1ZTVlYSk7XG59XG5cbi8qIEJlZWxkIGJvdmVuIHRla3N0IGluIGRlIHJlY2h0ZXJrb2xvbTogZWVuIHN0cmVlcGplIGx1Y2h0IGVydHVzc2VuLCB6b2RhdCBkZVxuICAgdHdlZSBhbHMgYXBhcnRlIG9uZGVyZGVsZW4gdmFuIGRlemVsZmRlIGthYXJ0IGxlemVuLiAqL1xuLnB1bHNlLXNtLWNvbC0tY29udGVudCAucHVsc2Utc20taW1hZ2UgeyBtYXJnaW4tYm90dG9tOiA0cHg7IH1cblxuLyogRGUga29sb21rb3BwZW4gXCJJTlNURUxMSU5HRU5cIiBlbiBcIkRFIEtBQVJUXCIgemlqbiB3ZWcgcGVyIDEyLjA4LjIwMjYgKEtpbSk6XG4gICBkZSBzY2hlaWRpbmdzbGlqbiB0dXNzZW4gZGUga29sb21tZW4gemVndCBhbCBkYXQgaGV0IHR3ZWUgZ2ViaWVkZW4gemlqbiwgZW5cbiAgIHR3ZWUga29wamVzIGRpZSBuaWV0cyB0b2V2b2VnZW4ga29zdGVuIGFsbGVlbiBob29ndGUgYm92ZW5hYW4gaGV0IGZvcm11bGllci4gKi9cblxuLyogSGV0IHR5cGVrYWFydGplIGRhdCBoaWVyIHN0b25kICgucHVsc2Utc20tdHlwZWNhcmQpIGlzIHdlZyBwZXIgMTIuMDguMjAyNjpcbiAgIHVpdGxlZyBvdmVyIGhldCBTVEFQVFlQRSBob29ydCBpbiBkZSBraWV6ZXIgXCJXYXQgdm9vciBzdGFwIHdvcmR0IGhldD9cIiwgd2FhclxuICAgamUgZGllIGtldXplIG1hYWt0LiBaaWUgLnB1bHNlLXR5cGUtY2FyZC1ub3RlIGhpZXJvbmRlci4gKi9cblxuLyogRGUgdGVrc3R2ZXJ3ZXJrZXIga3Jpamd0IGVlbiBydWltZSBtaW5pbXVtaG9vZ3RlIOKAlCBkYXQgaXMgd2FhciBkZXplIGhlbGVcbiAgIHZlcmJvdXdpbmcgb20gYmVnb25uZW4gaXMuXG4gKlxuICog4pqg77iPIEdFRU4gYGZsZXhgICsgYG1pbi1oZWlnaHQ6IDBgIG9wIGhldCBWRUxEIGhpZXIuIERhdCBzdG9uZCBlciBlZXJzdCwgZW4gdG9lblxuICoga3JvbXAgaGV0IHZlbGQgdG90IDc0cHggdGVyd2lqbCBkZSBlZGl0b3IgZXJpbiAxODBweCBibGVlZjogaGV0IGtpbmQgc3RhayAxMzhweFxuICogYnVpdGVuIHppam4gb3VkZXIgdWl0IGVuIGxlZ2RlIHppY2ggb3ZlciBoZXQgbGFiZWwgXCJBbnR3b29yZG9wdGllc1wiIGVyb25kZXJcbiAqIGhlZW4uIEluIGVlbiBrb2xvbSBkaWUgemVsZiBzY3JvbGx0IGhvb3J0IGRlIGluaG91ZCBnZXdvb24gemlqbiBuYXR1dXJsaWprZVxuICogaG9vZ3RlIHRlIGtyaWpnZW47IG9wdnVsbGVuIGVuIHNjcm9sbGVuIGdhYW4gbmlldCBzYW1lbi5cbiAqXG4gKiBIZXQgdmVsZCBpcyBkdXMgZWVuIGdld29vbiBibG9rIGRhdCBvbSBkZSBlZGl0b3IgaGVlbiBncm9laXQ7IGFsbGVlbiBkZSBNT1VOVFxuICogZHJhYWd0IGRlIG1pbmltdW1ob29ndGUsIGVuIGhldCBjb21wb25lbnQgZXJpbiB2dWx0IGRpZSBvcC4gKi9cbi8qIDM0MCBlbiBuaWV0IDIyMCAoS2ltIDEyLjA4LjIwMjYpOiBoZXQgc2NocmlqZnZsYWsgaG9vcnQgZXIgcnVpbSB1aXQgdGUgemllblxuICAgT09LIGFscyBlciBub2cgbmlldHMgaW4gc3RhYXQuIEVlbiBrbGVpbiBsZWVnIHZhayBub2RpZ3QgdWl0IHRvdCBlZW4ga2xlaW5cbiAgIGJlcmljaHRqZSwgZW4gZGl0IGlzIGhldCB2ZWxkIHdhYXIgZGUgaGVsZSBrYWFydCBvbSBkcmFhaXQuICovXG4vKiBLYWFydCAxNiAoQk9BUkQtcHVsc2UtcHdhLWluaGFhbHNsYWcsIEtpbXMgc2NyZWVuc2hvdCAyOC4wOCk6IGNvbHVtbiwgd2FudFxuICAgem9uZGVyIHJpY2h0aW5nIGlzIGZsZXggUk9XIGVuIHN0b25kZW4gZGUgZW1vamkvc3RpY2tlci1rbm9wcGVuIE5BQVNUIGRlXG4gICBlZGl0b3IgaW4gcGxhYXRzIHZhbiBlcm9uZGVyIOKAlCB0ZXJ3aWpsIEtpbSBleHBsaWNpZXQgXCJvbmRlciBoZXQgdmVsZCwgem9hbHNcbiAgIGJpaiBTdWJ0ZWtzdFwiIGhhZCBnZXZyYWFnZC4gRGUga25vcHBlbnJpaiAoLnB1bHNlLWlubGluZS1waWNrZXItYnRucykgaXMgZWVuXG4gICBzaWJsaW5nIHZhbiA8cWRuYXByby13eXNpd3lnPiBpbiBkZXplbGZkZSBtb3VudCAobWFrZUVkaXRvckNvbnRyb2xsZXIpLCBkdXNcbiAgIG1ldCBjb2x1bW4gbGFuZHQgaGlqIHZhbnplbGYgb25kZXIgaGV0IHZlbGQ7IGRlIGZsZXgtZ3JvZWkgdmFuIGRlIGVkaXRvclxuICAgd2Vya3QgZ2V3b29uIGxhbmdzIGRlIHZlcnRpY2FsZSBhcyBkb29yLiBHZWxkdCBiZXd1c3Qgdm9vciBBTExFIGRyaWUgZGVcbiAgIG1vdW50cyBkaWUgZGV6ZSBrbGFzc2UgZGVsZW4gKG91ZGUgc3RhcC1tb2RhbCwgd2l6YXJkLU9wbWFhaywgVnJpalxuICAgdm9ybWdldmVuKSDigJQgemVsZmRlIG9vcnphYWssIHplbGZkZSB3ZW5zLiAqL1xuLnB1bHNlLXNtLWZpZWxkLS1ncm93IC5wdWxzZS1zbS1lZGl0b3ItbW91bnQgeyBtaW4taGVpZ2h0OiAzNDBweDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuLnB1bHNlLXNtLWZpZWxkLS1ncm93IHFkbmFwcm8td3lzaXd5ZyB7IGZsZXg6IDEgMSBhdXRvOyBtaW4td2lkdGg6IDA7IH1cbi8qIEthYXJ0IDQgKEJPQVJELXB1bHNlLW9wbWFhay1oeWJyaWRlLCAyNS4wOC4yMDI2KTogZGUgcmlqa2UtbW91bnQga2FuIG51XG4gICBPT0sgaW5kaXZpZHVlZWwgdmVyYm9yZ2VuIHdvcmRlbiAoU3VidGVrc3QvT3BtYWFrLXBpbGwsIGxvcyB2YW4gb2YgemlqblxuICAgYC5wdWxzZS1zbS1maWVsZC0tZ3Jvd2Atb3VkZXIgemVsZiB6aWNodGJhYXIgaXMpLiBab25kZXIgZGV6ZSByZWdlbCB3aW50XG4gICBkZSBgZGlzcGxheTogZmxleGAgaGllcmJvdmVuIGFsdGlqZCB2YW4gaGV0IG5hdGl2ZSBgW2hpZGRlbl1gOiBhdXRldXItQ1NTXG4gICBnYWF0IHbDs8OzciBkZSB1c2VyLWFnZW50LXN0eWxlc2hlZXQsIG9uZ2VhY2h0IHNwZWNpZmljaXRlaXQtY2lqZmVycyDigJRcbiAgIGhlYWRsZXNzIGdldmVyaWZpZWVyZCAob2Zmc2V0UGFyZW50IGJsZWVmIHdhYXIgbWV0IGBoaWRkZW5gIGdlemV0LCB6aWVcbiAgIGhldCBrYWFydC00LXZlcnNsYWcpLiBaZWxmZGUgdmFsa3VpbCBhbHMgLnB1bHNlLW9wdC12aWV3LXNlZyBoaWVyYm92ZW5cbiAgIChrYWFydCA1LzIyKSwgbnUgb3AgZWVuIEFOREVSIGVsZW1lbnQgZ2V2b25kZW4uICovXG4ucHVsc2Utc20tZmllbGQtLWdyb3cgLnB1bHNlLXNtLWVkaXRvci1tb3VudFtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLyogS2ltcyBhY2NlcHRhdGlldGVzdCAyNi4wODogaW4gZGUgV0laQVJEIGlzIGRlIHJpamtlIGVkaXRvciBkZSBTVUJURUtTVFxuICAgKFN1YnRla3N0L09wbWFhay1waWxsKSwgbmlldCBoZXQgaG9vZmR2ZWxkIOKAlCBkYWFyIGxpZXQgZGUgMzQwcHggaGllcmJvdmVuXG4gICBlZW4gZm9ycyBsZWVnIHN0dWsgaG9zdCBvbmRlciBoZXQgemljaHRiYXJlIGthZGVyIGFjaHRlciAoZGUgaWRvYy10ZXh0LVxuICAgcHJlc2V0IGhlZWZ0IGBhdXRvcmVzaXplYDogVGlueU1DRSBzY2hyaWpmdCB6aWpuIGVpZ2VuIGhvb2d0ZSwgfjE5N3B4XG4gICBsZWVnLCBlbiBncm9laXQgbWV0IGRlIGluaG91ZCBtZWU7IGdlbWV0ZW4gMTQzcHggb256aWNodGJhcmUgcmVzdCksIGVuXG4gICBiZWdvbm5lbiBkZSBhbnR3b29yZG9wdGllcyBkdXMgZWVuIGhlZWwgZWluZCB0ZSBsYWFnLiBIaWVyIGJlcGFhbHQgZGVcbiAgIGVkaXRvciB6ZWxmIHppam4gaG9vZ3RlLiBEZSBPVURFIHN0YXAtbW9kYWwgKHZpZGVvL2RvY3VtZW50L2FjdGllLCB3YWFyXG4gICBkZSBlZGl0b3Igd8OpbCBoZXQgaG9vZmR2ZWxkIGlzKSBiZWhvdWR0IGRlIDM0MHB4LiBJZC1zZWxlY3RvciB3aW50IG1ldFxuICAgb3B6ZXQgdmFuIGRlIGtsYXNzZS1yZWdlbCBoaWVyYm92ZW4uICovXG4vKiAwMS4wOS4yMDI2IChLaW06IFwiZGUgc21pbGV5L3N0aWNrZXIta25vcHBlbiB6aXR0ZW4gaGVlbCB2ZXIgb25kZXIgaGV0XG4gICBpbnB1dGZpZWxkXCIpOiBkZSBPVURFIHN0YXAtbW9kYWwgZG9ldCBudSBtZWUgbWV0IGRpZXplbGZkZSByZWdlbC4gRGUgMzQwcHhcbiAgIGhpZXJib3ZlbiByZWt0ZSBkZSBNT1VOVCBvcCwgZGUgcmVkYWN0ZXVyIGdyb2VpZGUgbWVlIHRvdCB6aWpuIG9uemljaHRiYXJlXG4gICByZXN0IGVuIGRlIGtub3BwZW5yaWogZXJvbmRlciBsYW5kZGUgaG9uZGVyZGVuIHBpeGVscyBsYWdlciBkYW4gaGV0XG4gICB6aWNodGJhcmUga2FkZXIuIEhldCByb3lhbGUgc2NocmlqZnZsYWsgaXMgbmlldCB3ZWcsIGhldCBpcyB2ZXJodWlzZCBuYWFyIGRlXG4gICByZWRhY3RldXIgemVsZjogbW91bnRFZGl0b3IoKSBnZWVmdCBgaGVpZ2h0PVwiMzAwXCJgIG1lZSAoVGlueU1DRSBtaW5faGVpZ2h0LFxuICAgZ3JvZWl0IGRhYXJuYSBtZWUgbWV0IGRlIGluaG91ZCkuICovXG4jcHVsc2Utd2l6LWNsYXNzaWMtZWRpdG9yLW1vdW50LCAjcHVsc2Utd2l6LWZyZWUtZWRpdG9yLW1vdW50LCAjcHVsc2Utc20tZWRpdG9yLW1vdW50IHsgbWluLWhlaWdodDogMDsgfVxuXG4vKiAtLS0gRGFnICsgcml0bWUgKDEyLjA4LjIwMjYsIEtpbSkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFdhcyBlZW4gZ2V0YWx2ZWxkIG1ldCBlZW4gc2VnbWVudCBlcm5hYXN0LiBOdSBlZW4gc21hbCBnZXRhbHZlbGQgbWV0IGRhYXJvbmRlclxuICAgdHdlZSByYWRpb2tldXplcyBkaWUgZWxrIHplZ2dlbiB3YXQgemUgZG9lbiwgZW4gw6nDqW4gcmVnZWwgZGllIGRlIHVpdGtvbXN0IGluXG4gICBnZXdvbmUgdGFhbCBzYW1lbnZhdC4gRGllIGxhYXRzdGUgaXMgaGV0IHB1bnQgdmFuIGRlIGhlbGUgd2lqemlnaW5nLiAqL1xuLnB1bHNlLXNtLWRheSB7IGRpc3BsYXk6IGJsb2NrOyBtYXgtd2lkdGg6IDE1MHB4OyB9XG5cbi5wdWxzZS1wYWNlIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiA4cHg7IG1hcmdpbi10b3A6IDEycHg7IH1cbi5wdWxzZS1wYWNlLWNob2ljZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDhweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4vKiBEZSBrbm9wIG1hZyBuaWV0IG1lZWtyaW1wZW4gbWV0IGVlbiBsYW5nZSB1aXRsZWdyZWdlbCBlcm5hYXN0LiAqL1xuLnB1bHNlLXBhY2UtY2hvaWNlIHFkbmFwcm8tcmFkaW8geyBmbGV4OiAwIDAgYXV0bzsgbWFyZ2luLXRvcDogMXB4OyB9XG4ucHVsc2UtcGFjZS10ZXh0IHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxcHg7IG1pbi13aWR0aDogMDsgfVxuLnB1bHNlLXBhY2UtbmFtZSB7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjMWMxZTJhKTsgfVxuLnB1bHNlLXBhY2UtdGV4dCBzbWFsbCB7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xufVxuXG4vKiBEZSB1aXRrb21zdHJlZ2VsLiBOYWRydWtrZWxpamtlciBkYW4gZWVuIGdld29uZSBoaW50IChkb25rZXJkZXIgZW4gb3AgZGVcbiAgIG1lcmtrbGV1cik6IGhldCBpcyBnZWVuIHRlcnppamRlIG1hYXIgaGV0IGFudHdvb3JkIG9wIFwid2F0IGhlYiBpayBudVxuICAgaW5nZXN0ZWxkXCIuIEhpaiB2ZXJhbmRlcnQgbWVlIG1ldCBoZXQgZ2V0YWwgw6luIG1ldCBkZSBrZXV6ZS4gKi9cbi5wdWxzZS1wYWNlLXN1bW1hcnkge1xuICAgIG1hcmdpbjogMTJweCAwIDA7XG4gICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTUwLCAjZjBlZWZjKTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gICAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjMzk0MjkwKTtcbn1cbi5wdWxzZS1wYWNlLXN1bW1hcnk6ZW1wdHkgeyBkaXNwbGF5OiBub25lOyB9XG5cbi8qIEtpbSAwMi4wOS4yMDI2OiBkZSB1aXRrb21zdHJlZ2VsIHN0b25kIE9OREVSIGRlIGRyaWUgcml0bWVrZXV6ZXMgZW4ga29zdHRlXG4gICBkYWFyIGVlbiBoZWxlIHJlZ2VsIGluIGVlbiBrb2xvbSBkaWUgdG9jaCBhbCB2b2wgaXMuIEhpaiBzdGFhdCBudSBOQUFTVCBoZXRcbiAgIGRhZ3ZlbGQgKHppZSBwYWNpbmdGaWVsZHNIdG1sIGluIGRldGFpbC5odG1sKS5cbiAgIGBhbGlnbi1pdGVtczogZmxleC1lbmRgIGlzIGRlIGtlcm46IGhldCBkYWd2ZWxkIGRyYWFndCB6aWpuIGVpZ2VuIGxhYmVsXG4gICAoXCJEYWdcIikgQk9WRU4gaGV0IGludm9lcnZha2plLCBkdXMgYWxsZWVuIG9uZGVybGlqbmVuIGxhYXQgZGUgcmVnZWwgbmV0amVzXG4gICBvcCBkZXplbGZkZSBob29ndGUgYWxzIGhldCBzdGFwcGVudmFramUgdWl0a29tZW4uIERlIHJlZ2VsIGtyaWpndCBkYWFyb20gb29rXG4gICBkZXplbGZkZSBob29ndGUgYWxzIGVlbiBgc2l6ZT1cInNtYWxsXCJgIGludm9lcnZlbGQgZW4gY2VudHJlZXJ0IHppam4gdGVrc3RcbiAgIHZlcnRpY2FhbCAtIGFuZGVycyB6b3UgaGlqIGFscyBlZW4gbGFnZSBzdHJvb2sgb25kZXIgaGV0IHZha2plIGJ1bmdlbGVuLlxuICAgSGV0IGRhZ3ZlbGQgZW4gaGV0IHZhc3RlLWRhdHVtdmVsZCB6aWpuIGVsa2FhcnMgYWZ3aXNzZWxpbmcgKHppZVxuICAgdXBkYXRlUGFjaW5nU3VtbWFyeU9mKSwgZHVzIGVyIHN0YWF0IGVyIGFsdGlqZCBwcmVjaWVzIMOpw6luIG5hYXN0IGRlIHJlZ2VsLiAqL1xuLnB1bHNlLXBhY2Utd2hlbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgZ2FwOiAxMnB4O1xuICAgIC8qIFdyYXBwZW4gaS5wLnYuIHNhbWVua25panBlbjogaW4gZGUgYnJlZGUgc3RhcC1tb2RhbCBwYXN0IGFsbGVzIG9wIMOpw6luXG4gICAgICAgcmVnZWwsIGluIGRlIHNtYWxsZSBkYWctcG9wb3ZlciAoMjY4cHggaW5ob3VkKSB6YWt0IGRlIHVpdGtvbXN0cmVnZWxcbiAgICAgICBuYWFyIGRlIHZvbGdlbmRlIHJlZ2VsIGluIHBsYWF0cyB2YW4gdG90IGVlbiBob2dlLCBzbWFsbGUga29sb20gdGVcbiAgICAgICB3b3JkZW4gZ2VwZXJzdC4gWmllIGRlIG1pbi13aWR0aHMgaGllcm9uZGVyLCBkaWUgaGV0IG9tc2xhZ3B1bnQgemV0dGVuLiAqL1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cbi8qIERlIGdlbmVyaWVrZSB2ZWxkbWFyZ2UgKC5wdWxzZS1zbS1maWVsZCkgaG9vcnQgbmlldCBpbiBlZW4gcmlqLiAqL1xuLyogMDIuMDkuMjAyNjogaGV0IHZhc3RlLWRhdHVtdmVsZCBpcyBzaW5kcyBkZSBodWlza2FsZW5kZXIgZWVuIFRFS1NUdmVsZCBtZXRcbiAgIGVlbiBrYWxlbmRlcmljb29uIGxpbmtzIGVuIGVlbiBrcnVpc2plIHJlY2h0cy4gT3AgYGZsZXg6IDAgMCBhdXRvYCBrcm9tcCBoZXRcbiAgIHRvdCA5NnB4LCB3YWFydmFuIDE0cHggdm9vciBkZSB0ZWtzdCBvdmVyYmxlZWYgdGVyd2lqbCBcIjMxLjEyLjIwMjZcIiBlciA3MVxuICAgbm9kaWcgaGVlZnQg4oCUIGdlbWV0ZW47IGRlIGRhdHVtIHdhcyBhZmdla2FwdCB0b3QgXCIwMlwiLiAxNjhweCBnZWVmdCA4NnB4XG4gICB0ZWtzdHJ1aW10ZSwgZHVzIDE1cHggc3BlbGluZy4gKi9cbi5wdWxzZS1wYWNlLXdoZW4gPiAucHVsc2Utc20tZmllbGQgeyBtYXJnaW4tdG9wOiAwOyBmbGV4OiAwIDAgMTY4cHg7IH1cbi5wdWxzZS1wYWNlLXdoZW4gPiAucHVsc2Utc20tZGF5ICAgeyBmbGV4OiAwIDAgYXV0bzsgfVxuLnB1bHNlLXBhY2Utd2hlbiA+IC5wdWxzZS1wYWNlLXN1bW1hcnkge1xuICAgIC8qIERlIG1pbi13aWR0aCBpcyBoZXQgb21zbGFncHVudCB2YW4gZGUgd3JhcCBoaWVyYm92ZW46IG9uZGVyIDIwMHB4IGxlZXN0XG4gICAgICAgZGV6ZSB6aW4gYWxzIGVlbiBrb2xvbSB2YW4gbG9zc2Ugd29vcmRlbiwgZGFuIGhvb3J0IGhpaiBvcCBlZW4gZWlnZW5cbiAgICAgICByZWdlbC4gKi9cbiAgICBmbGV4OiAxIDEgMjAwcHg7XG4gICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICBtYXJnaW46IDA7XG4gICAgbWluLWhlaWdodDogMzhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi8qIE9uZGVyIGRlIHRhYmxldGJyZWVkdGUgaXMgZXIgZ2VlbiBwbGVrIG1lZXIgdm9vciB0d2VlIGtvbG9tbWVuOyBkYW4gdmFsdCBkZVxuICAgcmVnZWwgZ2V3b29uIHdlZXIgb25kZXIgaGV0IHZlbGQsIHpvYWxzIGhpaiBhbHRpamQgc3RvbmQuICovXG5AbWVkaWEgKG1heC13aWR0aDogNjIwcHgpIHtcbiAgICAucHVsc2UtcGFjZS13aGVuIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgfVxuICAgIC5wdWxzZS1wYWNlLXdoZW4gPiAucHVsc2UtcGFjZS1zdW1tYXJ5IHsgbWluLWhlaWdodDogMDsgfVxufVxuXG4vKiBEZSB3YWFyc2NodXdpbmcgb25kZXIgaGV0IGdla29wcGVsZGUgZG9jdW1lbnQgaGVlZnQgZWVuIEtOT1AgaW4gemlqblxuICAgYWN0aWUtc2xvdCwgZW4gaW4gZGV6ZSBzbWFsbGUga29sb20gKDQyN3B4KSBwYXN0IGRpZSBrbm9wIG5pZXQgbmFhc3QgZGVcbiAgIHRla3N0OiBoaWogdmFsdCBlcm9uZGVyLiBEZSBtZWxkaW5nIGNlbnRyZWVydCB6aWpuIGljb29uIHZlcnRpY2FhbCwgZW4gZGFuXG4gICBzdGFhdCBoZXQgd2FhcnNjaHV3aW5nc2RyaWVob2VramUgaW5lZW5zIG5hYXN0IGRlIGtub3AgaW4gcGxhYXRzIHZhbiBiaWogZGVcbiAgIHJlZ2VsIHdhYXIgaGV0IG92ZXIgZ2FhdCAoZ2VtZXRlbiBpbiBLaW1zIGJyb3dzZXIsIDA0LjA5LjIwMjYpLiBEZXplIHR3ZWVcbiAgIHJlZ2VscyB6ZXR0ZW4gaGV0IGljb29uIGJvdmVuYWFuIHVpdGdlbGlqbmQsIGFsbGVlbiB2b29yIERFWkUgbWVsZGluZywgem9kYXRcbiAgIGhldCBjb21wb25lbnQgemVsZiBvbmdlbW9laWQgYmxpamZ0LiAqL1xuI3B1bHNlLXNtLWxpbmstZG9jLXdhcm5pbmcge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIC8qIEtpbSAwNC4wOS4yMDI2OiBkZSBtZWxkaW5nIHBsYWt0ZSB0ZWdlbiBoZXQgZG9jdW1lbnRrYWRlci4gKi9cbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuI3B1bHNlLXNtLWxpbmstZG9jLXdhcm5pbmcgLnFkbmFwcm8tYWxlcnRfX2ljb24ge1xuICAgIG1hcmdpbi10b3A6IDJweDtcbn1cbi8qIERlIG1lbGRpbmcgemV0IHppam4gdGVrc3RibG9rIG9wIGBmbGV4OiAxIDEgMjIwcHhgLCBlbiBtZXQgZWVuIGtub3AgZXJuYWFzdFxuICAgcGFzdCBkYXQgbmlldCBpbiBkZXplIGtvbG9tIHZhbiA0MjdweDogZGUga25vcCB2aWVsIGRhbiBvbmRlciBkZSB0ZWtzdC5cbiAgIEhpZXIgbWFnIGhldCB0ZWtzdGJsb2sgdmVyZGVyIGtyaW1wZW4sIHpvZGF0IHJlZ2VsIGVuIGtub3AgbmFhc3QgZWxrYWFyXG4gICBzdGFhbiAoS2ltIDA0LjA5LjIwMjY6IFwiaG9wZWxpamsgZGFuIHJlY2h0cyB2YW4gZGUgdGVrc3RcIikuIEFsbGVlbiB2b29yXG4gICBERVpFIG1lbGRpbmc7IGhldCBjb21wb25lbnQgYmxpamZ0IG9uZ2Vtb2VpZC4gKi9cbiNwdWxzZS1zbS1saW5rLWRvYy13YXJuaW5nIC5xZG5hcHJvLWFsZXJ0X19jb250ZW50IHtcbiAgICBmbGV4LWJhc2lzOiAxNTBweDtcbn1cblxuLyogSGV0IFZPT1JCRUVMRCB2YW4gaGV0IGdla29wcGVsZGUgZG9jdW1lbnQgKEtpbSAwNC4wOS4yMDI2OiBcImlrIHdpbCBoZXRcbiAgIGRvY3VtZW50IGt1bm5lbiBvcGVuZW4gZW4gZWVuIHByZXZpZXcgemllbiwgZGl0IGRvZW4gd2UgbWV0IFlvdVR1YmUtdmlkZW8nc1xuICAgb29rXCIpLiBEdXMgZ2VlbiA5NiBiaWogNjQgZHVpbW5hZ2VsIG1ldCBvYmplY3QtZml0OiBjb3Zlciwgd2FudCBkYW4gc25pamR0XG4gICBlZW4gc3RhYW5kZSBwYWdpbmEgd2VnOyBkaXQgaXMgZWVuIHZlbnN0ZXIgb3AgcGFnaW5hIDEgb3AgZGUgdm9sbGVcbiAgIGtvbG9tYnJlZWR0ZSwgbWV0IGRlIHBhZ2luYSB2b2xsZWRpZyBpbiBiZWVsZCAoY29udGFpbikgb3Agd2l0LiBEZVxuICAgbWF4aW11bWhvb2d0ZSBob3VkdCBkZSBtb2RhbCBiaWogZWxrYWFyOiBlZW4gQTQgb3AgNTMwcHggYnJlZWQgem91IGFuZGVyc1xuICAgNzUwcHggaG9vZyB3b3JkZW4uICovXG4ucHVsc2Utc20tZG9jLXByZXZpZXcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXgtaGVpZ2h0OiAyNjBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbn1cbi5wdWxzZS1zbS1kb2MtcHJldmlldyBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAyNjBweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuLyogS2ltIDA0LjA5LjIwMjY6IGRlIE9wZW5lbi1rbm9wIHphdCB0ZWdlbiBoZXQgdm9vcmJlZWxka2FkZXIgYWFuZ2VwbGFrdC4gRGV6ZVxuICAgcmVnZWwgZ2VsZHQgYWxsZWVuIHZvb3IgZGUgYWN0aWVyaWogT05ERVIgZGF0IGthZGVyLCBkdXMgZGUga25vcHBlbnJpaiB2YW5cbiAgIGhldCBhZmJlZWxkaW5nLXZlbGQgZXJvbmRlciB2ZXJzY2h1aWZ0IG5pZXQgbWVlLiAqL1xuLnB1bHNlLXNtLWRvYy1wcmV2aWV3ICsgLnB1bHNlLXNtLWhpbnQsXG4ucHVsc2Utc20tZG9jLXByZXZpZXcgfiAucHVsc2Utc20taW1hZ2UtYWN0aW9ucyB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLyogSGV0IGdla29wcGVsZGUgZG9jdW1lbnQgaW4gZGUgc3RhcC1tb2RhbCBzdGFhdCBpbiBlZW4gRUlHRU4ga2FkZXIgb3Agd2l0XG4gICAoS2ltIDA0LjA5LjIwMjYpLiBEZSBsaW5rZXJrb2xvbSB2YW4gZGV6ZSBtb2RhbCBpcyBsaWNodHBhYXJzLCBlbiBlZW5cbiAgIGJlc3RhbmRzcmlqIGRpZSBkYWFyIGxvcyBvcCBsaWd0IGxlZXN0IGFscyB0ZWtzdCBpbiBwbGFhdHMgdmFuIGFscyBlZW5cbiAgIG9iamVjdCBkYXQgamUgaGVidCBnZWtvcHBlbGQuIEFsbGVlbiBlZW4gb3BwZXJ2bGFrOiBkZSByaWogYmlubmVuaW4gaXNcbiAgIHFkbmFwcm8tbGlzdC1yb3cgZW4gaG91ZHQgemlqbiBlaWdlbiBtYXRlbi4gKi9cbi5wdWxzZS1zbS1kb2MtZnJhbWUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBwYWRkaW5nOiA0cHggMTJweCA0cHggNHB4O1xufVxuXG4ucHVsc2Utc20tcm93IHsgZGlzcGxheTogZmxleDsgZ2FwOiAxMnB4OyBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgbWFyZ2luLXRvcDogMTRweDsgfVxuLnB1bHNlLXNtLXJvdyA+ICogeyBmbGV4OiAxIDEgMDsgbWluLXdpZHRoOiAwOyB9XG4ucHVsc2Utc20tZmllbGQgeyBtYXJnaW4tdG9wOiAxNHB4OyB9XG4ucHVsc2Utc20tZmllbGRbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5wdWxzZS1zbS1sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIDAgNnB4O1xuICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG59XG4vKiAwMS4wOS4yMDI2OiAjcHVsc2Utc20tYm9keS1sYWJlbCB3b3JkdCBiaWogdmlkZW8vZG9jdW1lbnQvYWN0aWUgdmVyYm9yZ2VuXG4gICAoZGUgU3VidGVrc3QvT3BtYWFrLXBpbGwgSVMgZGFhciBoZXQgbGFiZWwpLiBgZGlzcGxheTogYmxvY2tgIGhpZXJib3ZlbiBpc1xuICAgZWVuIGF1dGV1ci1yZWdlbCBlbiB3aW50IHZhbiBoZXQgbmF0aXZlIGBbaGlkZGVuXWAgdmFuIGRlIGJyb3dzZXIsIG9uZ2VhY2h0XG4gICBzcGVjaWZpY2l0ZWl0IOKAlCB6b25kZXIgZGV6ZSByZWdlbCBibGlqZnQgaGV0IGxhYmVsIGdld29vbiBzdGFhbi4gWmVsZmRlXG4gICB2YWxrdWlsIGFscyBiaWogLnB1bHNlLXNtLWVkaXRvci1tb3VudFtoaWRkZW5dIGhpZXJib3Zlbi4gKi9cbi5wdWxzZS1zbS1sYWJlbFtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLnB1bHNlLXNtLWhpbnQgeyBtYXJnaW46IDZweCAwIDA7IGZvbnQtc2l6ZTogMTEuNXB4OyBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7IH1cbi5wdWxzZS1zbS1lcnJvciB7IG1hcmdpbjogOHB4IDAgMDsgZm9udC1zaXplOiAxMi41cHg7IGNvbG9yOiAjZDg0NDJlOyB9XG4ucHVsc2Utc20tZXJyb3JbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5wdWxzZS1zbS1zdGF0dXMgeyBtYXJnaW46IDhweCAwIDA7IGZvbnQtc2l6ZTogMTIuNXB4OyBjb2xvcjogIzFkOWU3NTsgfVxuLnB1bHNlLXNtLXN0YXR1c1toaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBLYWFydCAyMSAocnVzdGlnZXIgc3RhcCAyKTogLnB1bHNlLXNtLWxhYmVsLXJvdyAoa2FhcnQgMTksIHB1bnQgNCDigJQgZGVcbiAgIGxvc3NlIGxhYmVscmlqIG1ldCBpLWtub3BqZSB2b29yIFN1YnRla3N0KSBpcyBWRVJXSUpERVJELiBEZSByZWdlbCBiZXN0YWF0XG4gICBuaWV0IG1lZXIgaW4gZGUgbWFya3VwIChkZXRhaWwuaHRtbCBnZWJydWlrdCBudSBxZG5hcHJvLWlucHV0J3MgZWlnZW5cbiAgIGBsYWJlbGArYGluZm9gLWF0dHJpYnV0ZW4sIHplbGZkZSBwYXRyb29uIGFscyBcIlZyYWFnIG9mIHRpdGVsXCIpLCBlbiBlciBpc1xuICAgZ2VlbiBhbmRlcmUgZ2VicnVpa2VyIHZhbiBkZXplIGtsYXNzZSBnZXZvbmRlbiAocmVwby1icmVkZSBncmVwKSDigJQgZHVzXG4gICBkZXplIENTUyBpcyBkb2RlIGNvZGUgZW4gaXMgaGllciB3ZWdnZWhhYWxkLiAqL1xuXG4vKiBEZSByZWRhY3RldXIgd29yZHQgYmlqIGhldCBvcGVuZW4gaW4gZGUgTElWRSBtb2RhbC1ib2R5IGdlbW9udGVlcmQsIGR1cyBkaXRcbiAgIGlzIGFsbGVlbiBoZXQgbGVnZSBoYWFramUgd2FhciBoaWogaW4gbGFuZHQuICovXG4ucHVsc2Utc20tZWRpdG9yLW1vdW50IHsgbWFyZ2luLXRvcDogMnB4OyB9XG5cbi8qIEthYXJ0IDQgKEJPQVJELXB1bHNlLW9wbWFhay1oeWJyaWRlLCAyNS4wOC4yMDI2KTogZGUgU3VidGVrc3QvT3BtYWFrLXBpbGxcbiAgIGJvdmVuIGVlbiB0ZWtzdHZlbGQgKEtsYXNzaWVrL0FjaHRlcmdyb25kL3BlaWxpbmcgZW4gVnJpaiB2b3JtZ2V2ZW4sIHppZVxuICAgcHVsc2VCb2R5Rm9ybWF0UGlsbEh0bWwoKSBpbiBkZXRhaWwuaHRtbCkuXG4gICBLYWFydCAxMSAoMjUuMDguMjAyNiwgS2ltcyBoZXJ6aWVuaW5nKTogaGV0IGkta25vcGplIGRhdCB2cm9lZ2VyIElOIGhldFxuICAgcWRuYXByby1pbnB1dC12ZWxkIHphdCAoYGluZm9gLWF0dHJpYnV1dCkgdmVyaHVpc3QgYmlqIGhldCBnZWRlZWxkZVxuICAgS2xhc3NpZWsvQWNodGVyZ3JvbmQtZXhlbXBsYWFyIG5hYXIgZGV6ZSBiYWxrLCByZWNodHMgdWl0Z2VsaWpuZCDigJQgZHVzIG51XG4gICB3ZWwgYGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbmAgbm9kaWcsIHplbGZkZSBnZW9tZXRyaWUtZ2VkYWNodGUgYWxzXG4gICAucHVsc2Utb3B0LXZpZXctYmFyIGhpZXJib3ZlbiAoa2FhcnQgNS8yMikuIEhldCBWcmlqIHZvcm1nZXZlbi1leGVtcGxhYXJcbiAgIGhlZWZ0IGdlZW4gaS1rbm9wamUgKGBpbmZvQnRuSWRgIGJsaWpmdCBkYWFyIG9uZ2V6ZXQpIGVuIHRvb250IGRhbiBnZXdvb25cbiAgIGRlIHBpbGwgYWxsZWVuOyBmbGV4IG1ldCDDqcOpbiBraW5kIGdlZHJhYWd0IHppY2ggaGV0emVsZmRlIGFscyB2w7PDs3IgZGV6ZVxuICAga2FhcnQuIGBbaGlkZGVuXWAgdmVyYmVyZ3QgZGUgSEVMRSBiYWxrIChuaWV0IGFsbGVlbiBoZXQgc2VnbWVudCBlcmluKTpcbiAgIGJpaiBWcmlqIHZvcm1nZXZlbiBiZXN0YWF0IGhldCBHRURFRUxERSBleGVtcGxhYXIgbmlldCAoZGF0IGhlZWZ0IHppam5cbiAgIGVpZ2VuIGJhciksIGVuIGRhbiBtYWcgZXIgb29rIGdlZW4gbGVnZSByZWdlbCBydWltdGUgb3ZlcmJsaWp2ZW4uICovXG4ucHVsc2UtYm9keS1mb3JtYXQtYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4ucHVsc2UtYm9keS1mb3JtYXQtYmFyW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG5cbi8qIC0tLSBLYWFydCBNMTEgKEJPQVJELXB1bHNlLW1hcmt1cC12Miwgcm9uZGUgMywgMjcuMDguMjAyNik6IGVtb2ppLS9cbiAgIGljb29uLWtub3BqZXMgb25kZXIgZWxrIHN1YnRla3N0LXZlbGQgKyBodW4ga2xlaW5lIGRvbmtlcmUga2llemVycGFuZWxlblxuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogRGUga25vcGplcyB6ZWxmOiByZWNodHMgdWl0Z2VsaWpuZCwgZGlyZWN0IG9uZGVyIGhldCB2ZWxkIChwbGF0IG9mXG4gICBXWVNJV1lHKSB3YWFyIHplIGJpaiBob3JlbiDigJQgemllIGRldGFpbC5odG1sJ3MgcHVsc2VJbmxpbmVQaWNrZXJCdG5zSHRtbCgpXG4gICB2b29yIGRlIHZpZXIgcGxla2tlbi4gKi9cbi5wdWxzZS1pbmxpbmUtcGlja2VyLWJ0bnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBnYXA6IDRweDtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG59XG5cbi8qIEhldCBlaWdlbiBkb25rZXJlIGtpZXplcnBhbmVlbCAoYC5wdWxzZS1pbmxpbmUtcGlja2VyYCArIHppam4gcmFzdGVyLCBrb3AsXG4gICB6b2VrdmVsZCwgZW1vamkta25vcGplcyBlbiBpY29vbi10ZWdlbHMpIGlzIG9wIDAyLjA5LjIwMjYgVkVSVkFMTEVOOiBiZWlkZVxuICAga2llemVycyB6aWpuIG51IGRlIGVjaHRlIGJpYmxpb3RoZWVrY29tcG9uZW50ZW4gcWRuYXByby1lbW9qaS1zaGVldCBlblxuICAgcWRuYXByby1zdGlja2VyLXNoZWV0IG1ldCB2YXJpYW50PVwicG9wb3ZlclwiLCBkaWUgaHVuIGVpZ2VuIHdpdHRlIGthYXJ0XG4gICBtZWVicmVuZ2VuLiBaaWUgaGV0IFR3aWctY29tbWVudGFhciBib3ZlbmFhbiBkZXRhaWwuaHRtbC5cbiAgIFdhdCBoaWVyIG1vZXN0IGJsaWp2ZW4gaXMgZGUgei1pbmRleC1yZWdlbCBib3ZlbmFhbiBkaXQgYmVzdGFuZCAoZGUgdHdlZVxuICAgY29tcG9uZW50c2NoaWxsZW4gemlqbiBkYWFyIHRvZWdldm9lZ2QpIGVuIGRlIGtub3BwZW5yaWogaGllcmJvdmVuLiAqL1xuXG4vKiAtLS0gS29wcGVscGFuZWVsIChGMy1XMyk6IHpvZWsgZW4ga2llcyDDqcOpbiBkb2N1bWVudCBvZiB2ZXJiZXRlcmFjdGllIC0tLS0gKi9cbi8qIERlIGxpanN0IGhlZWZ0IGVlbiBFSUdFTiBtYXhpbXVtaG9vZ3RlIG1ldCBlZW4gc21hbGxlLCBkb29yemljaHRpZ2UgYmFsa1xuICAgYmlubmVuIGhldCBjb21wb25lbnQgKGh1aXNyZWdlbCkg4oCUIHR3aW50aWcgcmVzdWx0YXRlbiB6b3VkZW4gZGUgbW9kYWwgYW5kZXJzXG4gICB0d2VlIHNjaGVybWVuIGhvb2cgbWFrZW4uICovXG4ucHVsc2Utc20tcGljay1yZXN1bHRzIHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgbWF4LWhlaWdodDogMjA4cHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LCAjZTVlNWVhKTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG59XG4ucHVsc2Utc20tcGljay1yZXN1bHRzW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4ucHVsc2Utc20tcGljay1yZXN1bHRzOjotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiA2cHg7IH1cbi5wdWxzZS1zbS1waWNrLXJlc3VsdHM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbi5wdWxzZS1zbS1waWNrLXJlc3VsdHM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDU3LCA2NiwgMTQ0LCAwLjIyKTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbn1cbi5wdWxzZS1zbS1waWNrLXJlc3VsdHMgeyBzY3JvbGxiYXItd2lkdGg6IHRoaW47IHNjcm9sbGJhci1jb2xvcjogcmdiYSg1NywgNjYsIDE0NCwgMC4yMikgdHJhbnNwYXJlbnQ7IH1cblxuLnB1bHNlLXNtLXBpY2staXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiA5cHggMTJweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQsICNlNWU1ZWEpO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xufVxuLnB1bHNlLXNtLXBpY2staXRlbTpsYXN0LWNoaWxkIHsgYm9yZGVyLWJvdHRvbTogMDsgfVxuLnB1bHNlLXNtLXBpY2staXRlbTpob3ZlciB7IGJhY2tncm91bmQ6ICNmN2Y4ZmY7IH1cbi5wdWxzZS1zbS1waWNrLWl0ZW06Zm9jdXMtdmlzaWJsZSB7IG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1mb2N1cy1yaW5nLCAjNTM0YWI3KTsgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IH1cbi5wdWxzZS1zbS1waWNrLWl0ZW0gcWRuYXByby1pY29uIHsgZmxleC1zaHJpbms6IDA7IGNvbG9yOiAjNmI2ODg0OyB9XG4ucHVsc2Utc20tcGljay10ZXh0cyB7IG1pbi13aWR0aDogMDsgZmxleDogMSAxIGF1dG87IH1cbi5wdWxzZS1zbS1waWNrLW5hbWUge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHksICMxYzFlMmEpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5wdWxzZS1zbS1waWNrLXN1YiB7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5wdWxzZS1zbS1waWNrLW5vdGUge1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7XG59XG5cbi8qIERlIGdla296ZW4ga29wcGVsaW5nLiBIaWogc3RhYXQgQk9WRU4gaGV0IHpvZWt2ZWxkOiBkYXQgaXMgd2F0IGVyIHN0cmFrcyBpblxuICAgZGUgYXBwIGtvbXQgdGUgc3RhYW4sIGVuIGR1cyBoZXQgYW50d29vcmQgb3AgZGUgdnJhYWcgZGllIGRpdCBwYW5lZWwgc3RlbHQuICovXG4ucHVsc2Utc20tbGlua2VkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICNlZWYwZmI7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxOXB4O1xufVxuLnB1bHNlLXNtLWxpbmtlZFtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLnB1bHNlLXNtLWxpbmtlZCBxZG5hcHJvLWljb24geyBmbGV4LXNocmluazogMDsgfVxuLnB1bHNlLXNtLWxpbmtlZC1uYW1lIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8qIEFudHdvb3Jkb3B0aWVzOiDDqcOpbiByaWogcGVyIG9wdGllLiAqL1xuLyogLS0tIEFudHdvb3Jkb3B0aWVzOiBlZW4ga2FhcnRqZSBwZXIgb3B0aWUgKDEyLjA4LjIwMjYsIEtpbSkgLS0tLS0tLS0tLS0tICovXG4vKiBFbGtlIG9wdGllIGlzIMOpw6luIGJsb2tqZSBtZXQgZGUgZ2VkZWVsZGUgcmlqIChxZG5hcHJvLWFuc3dlci1vcHRpb24pIGVuIGRlXG4gICB1aXRsZWcgZXJvbmRlci4gRGF0IGJsb2tqZSBpcyBvb2sgaGV0IGRpbmcgZGF0IGplIHNsZWVwdCwgem9kYXQgYW50d29vcmQgZW5cbiAgIHVpdGxlZyBzYW1lbiB2ZXJodWl6ZW4uXG4gKlxuICogV2Fhcm9tIGVlbiBrYWFydGplOiBtZXQgZWVuIHVpdGxlZ3ZlbGQgb25kZXIgw6lsa2Ugb3B0aWUgc3RvbmRlbiBlciBiaWogZHJpZVxuICogYW50d29vcmRlbiBuZWdlbiBldmVuIHp3YXJlIHZlbGRlbiBvbmRlciBlbGthYXIsIHpvbmRlciBkYXQgamUgemFnIHdhdCBiaWpcbiAqIGVsa2FhciBob29yZGUuIE51IHppZSBqZSBkcmllIGdyb2VwZW4uICovXG4ucHVsc2Utb3B0LXJvd3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAvKiBLYWFydCAxNyAoQk9BUkQtcHVsc2UtYW50d29vcmRvcHRpZXMtcmljaHRpbmctYywgMjUuMDguMjAyNik6IGdlZW5cbiAgICAgICBgZ2FwYCBtZWVyIOKAlCBkZSByaWplbiBsaWdnZW4gbnUgdGVnZW4gZWxrYWFyIGFhbiBpbiBoZXQgZ2VkZWVsZGUgZnJhbWVcbiAgICAgICAoLnB1bHNlLW9wdC1mcmFtZSBoaWVyb25kZXIpIGkucC52LiBsdWNodCB0dXNzZW4gbG9zc2UgcGFhcnNlXG4gICAgICAga2FhcnRqZXMuIEthYXJ0IDIxLWFhbnZ1bGxpbmc6IGRlIGR1bm5lIHNjaGVpZGluZ3NsaWpuIHR1c3NlbiByaWplblxuICAgICAgIChrYWFydCAxNykgaXMgaW5taWRkZWxzIG9vayB3ZWcgKGVsa2UgcmlqIGhlZWZ0IGFsIHppam4gZWlnZW4gcmFuZCk7XG4gICAgICAgZGUgcnVpbXRlIHR1c3NlbiByaWplbiBrb210IG51IGFsbGVlbiBub2cgdWl0IGRlIGVpZ2VuIHBhZGRpbmcgdmFuXG4gICAgICAgYC5wdWxzZS1vcHQtY2FyZGAgaGllcm9uZGVyLiAqL1xuICAgIC8qIEFua2VyIHZvb3IgZGUgZHJvcGxpam4gaGllcm9uZGVyLCBkaWUgYWJzb2x1dXQgaW4gZGV6ZSBsaWpzdCBoYW5ndC4gKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8vIEthYXJ0IDE3IChCT0FSRC1wdWxzZS1hbnR3b29yZG9wdGllcy1yaWNodGluZy1jLCAyNS4wOC4yMDI2KTogw4nDiU4gb21saWpzdFxuLy8gZnJhbWUgb20gZGUgaGVsZSBvcHRpZWxpanN0LCBpbiBwbGFhdHMgdmFuIGhldCBsb3NzZSBwYWFyc2Uga2FhcnRqZSBwZXJcbi8vIG9wdGllIGhpZXJvbmRlciAoS2ltcyBkZXNpZ24tZmVlZGJhY2sgMjUuMDg6IFwib29ndCBkcnVrXCIpLiBWb3JtdGFhbFxuLy8gb3Zlcmdlbm9tZW4gdmFuIGAucHVsc2Utd2l6LWNsYXNzaWMtcHJldmlld2AgKHZlcmRlcm9wIGluIGRpdCBiZXN0YW5kKSBlblxuLy8gdmFuIGAucWRuYXByby1saXN0LXJvdy1ncm91cGAgKGNvbXBvbmVudHMvdjIvbGlzdC1yb3cvX2xpc3Qtcm93LnNjc3MpOlxuLy8gcmFuZCArIHdpdHRlIGthYXJ0YWNodGVyZ3JvbmQgKyBvdmVyZmxvdzpoaWRkZW4sIHpvZGF0IGRlIHJpamVuIGVyaW5cbi8vIGF1dG9tYXRpc2NoIGFhbiBkZSBob2VrZW4gd29yZGVuIGFmZ2VrYXB0LiBOSUVUIGRpZSBrbGFzc2UgemVsZlxuLy8gaGVyZ2VicnVpa3Q6IHppam4gZGl2aWRlci1zZWxlY3RvciAoYC5xZG5hcHJvLWxpc3Qtcm93Om5vdCg6bGFzdC1jaGlsZClgKVxuLy8gaXMgY29tcG9uZW50LXNwZWNpZmllayBlbiBvbnplIHJpamVuIHppam4gYC5wdWxzZS1vcHQtY2FyZGAtZGl2cywgZ2VlblxuLy8gcWRuYXByby1saXN0LXJvdyDigJQgYWxsZWVuIGRlIHRva2Vucy92b3JtdGFhbCB6aWpuIG92ZXJnZW5vbWVuLlxuLy9cbi8vIEJldmF0ICNwdWxzZS0oc218d2l6KS1vcHQtcm93cyBFTiBkZSB0b2V2b2VncmlqICgucHVsc2Utb3B0LWFkZCkgYWxzXG4vLyBTSUJMSU5HUywgZ2VlbiBvdWRlci9raW5kOiB6aWUgZGUgdG9lbGljaHRpbmcgYmlqIGRlIG1hcmt1cCBpblxuLy8gZGV0YWlsLmh0bWwgKGZpbmlzaERyYWdPZigpL3VwZGF0ZURyb3BMaW5lT2YoKSBsZXplbiBwb3NpdGllcyB2aWFcbi8vIGAucHVsc2Utb3B0LWNhcmRgLWtpbmRlcmVuIHZhbiAjcHVsc2Utb3B0LXJvd3M7IGRlIHRvZXZvZWdyaWogbWFnIGRhYXJcbi8vIG5pZXQgaW4gc3RhYW4sIGFuZGVycyBiZWxhbmR0IGVlbiBkcm9wLW9uZGVyYWFuIGVybmEpLlxuLnB1bHNlLW9wdC1mcmFtZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCwgI2U1ZTVlYSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG4gICAgLy8gS2FhcnQgMjEtYWFudnVsbGluZyAoS2ltKTogdG9wL2JvdHRvbS1sdWNodCBvcCBoZXQgRlJBTUUgaS5wLnYuIGVlblxuICAgIC8vIHVpdHpvbmRlcmluZyBvcCBkZSBlZXJzdGUvbGFhdHN0ZSBgLnB1bHNlLW9wdC1jYXJkYCDigJQgZGF0IGJsaWpmdCBkdXNcbiAgICAvLyDDicOJTiByZWdlbCB2b29yIGFsbGUgcmlqZW4gKHppZSBoaWVyb25kZXIpLiBBbGxlZW4gdG9wL2JvdHRvbSwgZ2VlblxuICAgIC8vIGxlZnQvcmlnaHQ6IGRlIHRvZXZvZWdyaWogKC5wdWxzZS1vcHQtYWRkLCBzaWJsaW5nIHZhbiAjcHVsc2UtKi1vcHQtXG4gICAgLy8gcm93cyBiaW5uZW4gZGl0IGZyYW1lKSBpcyBtZXQgb3B6ZXQgRURHRS1UTy1FREdFIGJyZWVkIG1ldCBlZW5cbiAgICAvLyBkYXNoZWQgYm9yZGVyLXRvcCBkaWUgZGUgdm9sbGUgZnJhbWVicmVlZHRlIG1vZXQgcmFrZW4g4oCUIGxlZnQvcmlnaHQtXG4gICAgLy8gcGFkZGluZyBoaWVyIHpvdSBkaWUgcmFuZCBuYWFyIGJpbm5lbiB0cmVra2VuIGVuIGhldCBcInZlcnZvbGcgdmFuIGRlXG4gICAgLy8gbGlqc3RcIi1lZmZlY3QgYnJla2VuLlxuICAgIHBhZGRpbmc6IDZweCAwO1xufVxuXG4vKiBLYWFydCAxOSwgcHVudCAzIChLaW0pOiBmb3V0c3RhbmQgdmFuIGhldCBHRURFRUxERSBvcHRpZWJsb2sg4oCUIGdlZW5cbiAgIGNvbXBvbmVudC1zY2hpbCwgd2FudCBxZG5hcHJvLWFuc3dlci1vcHRpb24gaGVlZnQgZ2VlbiBlaWdlbiBgZXJyb3JgL1xuICAgYGNoZWNrVmFsaWRpdHkoKWAgKHppZSBzaG93T3B0aW9uc0Vycm9yKCkvY2xlYXJPcHRpb25zRXJyb3IoKSBpblxuICAgZGV0YWlsLmh0bWwpLiBgLnB1bHNlLW9wdC1jYXJkLS1lcnJvcmAgd2lqc3QgZWVuIHNwZWNpZmlla2UgbGVnZSByaWogYWFuXG4gICAodGUgd2VpbmlnIGluZ2V2dWxkZSBvcHRpZXMpOyBkZSBib29kc2NoYXAgZXJvbmRlciBnZWxkdCB2b29yIGhldCBoZWxlXG4gICBibG9rLCBvb2sgd2FubmVlciBlciBnZWVuIGFhbndpanNiYXJlIHJpaiBpcyAoYnYuIFwiZ2VlbiBqdWlzdCBhbnR3b29yZFwiKS5cbiAgIFplbGZkZSBvcG1hYWsgYWxzIHFkbmFwcm8taW5wdXQncyBlaWdlbiBmb3V0cmVnZWwgKGljb24gKyByb2RlIHRla3N0LCB6aWVcbiAgIC5pbnB1dC1tZXNzYWdlLWVycm9yIGluIGNvbXBvbmVudHMvdjIvaW5wdXQvX2lucHV0LnNjc3MpLiAqL1xuLnB1bHNlLW9wdC1jYXJkLS1lcnJvciBxZG5hcHJvLWFuc3dlci1vcHRpb24ge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDEuNXB4IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0KTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG4ucHVsc2Utb3B0LXJvd3MtZXJyb3ItbXNnIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgbWFyZ2luOiA4cHggMCAwO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpO1xufVxuXG4vKiBEZSB6YWNodGUgYWxsZXMtanVpc3Qtd2FhcnNjaHV3aW5nIG9uZGVyIGhldCBvcHRpZWJsb2sgKEtpbSAwNC4wOS4yMDI2KTpcbiAgIHplbGZkZSB2b3JtIGFscyBkZSBmb3V0cmVnZWwgaGllcmJvdmVuLCBtYWFyIGFtYmVyIC0gaGV0IGlzIGVlbiBoZWFkcy11cFxuICAgb3ZlciBkZSBwdW50ZW50ZWxsaW5nLCBnZWVuIGZvdXQgZGllIGhldCBvcHNsYWFuIHRlZ2VuaG91ZHQuICovXG4ucHVsc2Utb3B0LWFsbGNvcnJlY3Qtd2FybiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIG1hcmdpbjogOHB4IDAgMDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6IHZhcigtLWMtd2Fybi1hbWJlci02MDApO1xufVxuLnB1bHNlLW9wdC1hbGxjb3JyZWN0LXdhcm4gcWRuYXByby1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbn1cbi5wdWxzZS1vcHQtYWxsY29ycmVjdC13YXJuW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ucHVsc2Utb3B0LXJvd3MtZXJyb3ItbXNnW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4ucHVsc2Utb3B0LXJvd3MtZXJyb3ItbXNnIHFkbmFwcm8taWNvbiB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyB3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyBmbGV4LXNocmluazogMDsgfVxuXG4ucHVsc2Utb3B0LWNhcmQge1xuICAgIC8qIEthYXJ0IDE3IChCT0FSRC1wdWxzZS1hbnR3b29yZG9wdGllcy1yaWNodGluZy1jLCAyNS4wOC4yMDI2KTogR0VFTlxuICAgICAgIGVpZ2VuIGFjaHRlcmdyb25kL2Fmcm9uZGluZyBtZWVyIOKAlCBkYXQgd2FzIGhldCBwYWFyc2Uga2FhcnRqZS1wZXItcmlqXG4gICAgICAgZGF0IEtpbSB0ZSBkcnVrIHZvbmQuIERlIHJpaiBsZWVmdCBudSBpbiBoZXQgZ2VkZWVsZGUgLnB1bHNlLW9wdC1mcmFtZVxuICAgICAgIGhpZXJib3ZlbjsgcWRuYXByby1hbnN3ZXItb3B0aW9uIGhvdWR0IHppam4gZWlnZW4gcmFuZCwgZW4gZGF0IGJsaWpmdFxuICAgICAgIGhldCBcImhpZXIga3VuIGplIHR5cGVuXCItc2lnbmFhbCAob25nZXdpanppZ2QgdC5vLnYuIHbDs8OzciBkZXplIGthYXJ0KS4gKi9cbiAgICAvKiBSdWltdGUgbGlua3Mgdm9vciBkZSBzbGVlcGdyZWVwLCBlbiBgcmVsYXRpdmVgIGFscyBhbmtlciBkYWFydm9vci4gKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLy8gS2FhcnQgMjEtYWFudnVsbGluZyAoS2ltLCBnZW1ldGVuKTogd2FzIDEwcHggYm92ZW4vb25kZXIg4oCUIGRhdCB0ZWxkZVxuICAgIC8vIHR1c3NlbiB0d2VlIHJpamVuIGR1YmJlbCBvcCB0b3QgMjBweCwgcnVpbWVyIGRhbiBLaW0gd2lsZGUuIDZweCBtYWFrdFxuICAgIC8vIGRhdCAxMnB4IHR1c3NlbiByaWplbiAoNis2KSB6b25kZXIgZGF0IGRlIHJpamVuIHRlZ2VuIGVsa2FhciBwbGFra2VuOlxuICAgIC8vIHFkbmFwcm8tYW5zd2VyLW9wdGlvbiBob3VkdCB6aWpuIGVpZ2VuIHJhbmQgKyBpbnRlcm5lIHBhZGRpbmcsIGR1cyBlclxuICAgIC8vIGJsaWpmdCBhZGVtcnVpbXRlIHR1c3NlbiBkaWUgcmFuZCBlbiBkZSB2b2xnZW5kZSByaWouIFppZVxuICAgIC8vIC5wdWxzZS1vcHQtZnJhbWUgaGllcmJvdmVuIHZvb3IgZGUgbG9zc2UgdG9wL2JvdHRvbS1sdWNodCB2YW4gaGV0XG4gICAgLy8gZnJhbWUgemVsZiAoZWVyc3RlL2xhYXRzdGUgcmlqKS5cbiAgICBwYWRkaW5nOiA2cHggOHB4IDZweCAxNnB4O1xuICAgIC8qIEhldCBrYWFydGplIGlzIHNsZWVwYmFhcjsgem9uZGVyIGRpdCBwYWt0IGRlIGJyb3dzZXIgZGUgdGVrc3RzZWxlY3RpZSBvcFxuICAgICAgIGluIHBsYWF0cyB2YW4gaGV0IGJsb2suIEhldCBpbnZvZXJ2ZWxkIHpldCBoZXQgemVsZiB3ZWVyIGFhbiAoaGllcm9uZGVyKSxcbiAgICAgICBhbmRlcnMga3VuIGplIGplIGVpZ2VuIGFudHdvb3JkIG5pZXQgbWVlciBzZWxlY3RlcmVuLiAqL1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuLnB1bHNlLW9wdC1jYXJkIGlucHV0LFxuLnB1bHNlLW9wdC1jYXJkIHRleHRhcmVhIHsgdXNlci1zZWxlY3Q6IHRleHQ7IH1cblxuLy8gS2FhcnQgMjEtYWFudnVsbGluZyAoS2ltLCBCT0FSRC1wdWxzZS1hbnR3b29yZG9wdGllcy1yaWNodGluZy1jKTogZGVcbi8vIHNjaGVpZGluZ3NsaWpuIHR1c3NlbiByaWplbiAoa2FhcnQgMTc6IGJvcmRlci10b3Agb3AgLnB1bHNlLW9wdC1jYXJkICtcbi8vIC5wdWxzZS1vcHQtY2FyZCkgaXMgVkVSV0lKREVSRCDigJQgZWxrZSByaWogaGVlZnQgYWwgemlqbiBlaWdlbiByYW5kXG4vLyAocWRuYXByby1hbnN3ZXItb3B0aW9uKSwgZHVzIGRlIGxpam4gdm9lZ2RlIG5pZXRzIHRvZSBlbiBrb3N0dGUgYWxsZWVuXG4vLyBob29ndGUuIEhldCBmcmFtZSB6ZWxmICgucHVsc2Utb3B0LWZyYW1lIGhpZXJib3ZlbikgZW4gZGUgcmFuZCByb25kIGVsa2Vcbi8vIHJpaiBibGlqdmVuIHN0YWFuOyBhbGxlZW4gZGV6ZSBsb3NzZSBsaWpuIHR1c3NlbiByaWplbiBpcyB3ZWcuIERlXG4vLyBnZXN0aXBwZWxkZSBzY2hlaWRpbmcgYm92ZW4gXCJPcHRpZSB0b2V2b2VnZW5cIiAoLnB1bHNlLW9wdC1mcmFtZVxuLy8gLnB1bHNlLWFkZC1iYXIsIGluIF9wdWxzZS5zY3NzL2hhcm5lc3MpIGJsaWpmdCBPTkdFV0lKWklHRCDigJQgZGllIG1hcmtlZXJ0XG4vLyBpZXRzIGFuZGVycyAoZWluZGUgdmFuIGRlIGxpanN0LCBiZWdpbiB2YW4gZGUgdG9ldm9lZy1hY3RpZSkuXG5cbi8qIERlIHJpaiBob3VkdCB6aWpuIGVpZ2VuIHJhbmQgZW4gd2l0dGUgdmxhayDigJQgZGF0IGlzIGRlIGFmZm9yZGFuY2UgdmFuIGVlblxuICAgaW52b2VydmVsZCwgZW4gb29rIHByZWNpZXMgaG9lIGhpaiBlciBpbiBkZSBmbG93LWVkaXRvciB1aXR6aWV0LiAqL1xuLnB1bHNlLW9wdC1jYXJkIHFkbmFwcm8tYW5zd2VyLW9wdGlvbiB7IGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7IH1cblxuLyogR2VlbiBpbnNwcmluZ2luZyAoS2ltIDEyLjA4LjIwMjYpOiBoZXQgdWl0bGVndmVsZCBsaWpudCBsaW5rcyBwcmVjaWVzIHVpdCBtZXRcbiAgIGhldCBhbnR3b29yZHZlbGQgZXJib3Zlbi4gSW5nZXNwcm9uZ2VuIGxlZWsgaGV0IGVlbiBiaWpsYWdlIHZhbiBpZXRzIGFuZGVycztcbiAgIG9uZGVyIGVsa2FhciBsZXplbiB6ZSBhbHMgdHdlZSB2ZWxkZW4gdmFuIGRlemVsZmRlIG9wdGllLiAqL1xuLyogRGUgc2xlZXBncmVlcCB2YW4gaGV0IEtBQVJUSkUgKDEyLjA4LjIwMjYsIEtpbSkuIFphdCBlZXJzdCBpbiBkZSByaWogemVsZlxuICAgKGBkcmFnZ2FibGUtaGFuZGxlYCBvcCBxZG5hcHJvLWFuc3dlci1vcHRpb24pLCBtYWFyIGplIHZlcnNsZWVwdCBoZXQgaGVsZVxuICAga2FhcnRqZSBpbmNsdXNpZWYgZGUgdWl0bGVnIOKAlCBlZW4gZ3JlZXAgZGllIGFsbGVlbiBkZSBib3ZlbnN0ZSByaWogb21zcGFudFxuICAgYmVsb29mdCBkYW4gaGV0IHZlcmtlZXJkZS5cbiAgIFplbGZkZSB2b3JtIGVuIGdlZHJhZyBhbHMgZGUgZ3JlZXAgw61uIGhldCBjb21wb25lbnQgKHBhYXJzZSBiYWxrIGxpbmtzLFxuICAgemljaHRiYWFyIGJpaiBob3ZlciksIG1hYXIgb3ZlciBkZSBWT0xMRSBob29ndGUgdmFuIGhldCBrYWFydGplLCB6b2RhdCBqZSB6aWV0XG4gICBkYXQgZGUgaGVsZSBncm9lcCBtZWVnYWF0LiAqL1xuLnB1bHNlLW9wdC1ncmlwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNXB4O1xuICAgIC8vIEthYXJ0IDIxLWFhbnZ1bGxpbmc6IHZvbGd0IGRlIHBhZGRpbmctdmVybGFnaW5nIHZhbiAucHVsc2Utb3B0LWNhcmRcbiAgICAvLyBoaWVyYm92ZW4gKDEwcHgg4oaSIDZweCksIHpvZGF0IGRlIGdyZWVwIHdlZXIgZXZlbiB2ZXIgdmFuIGRlIHJhbmRcbiAgICAvLyB2YW4gZGUgcmlqIGluc3ByaW5ndCBhbHMgZGUga2FhcnQtcGFkZGluZyB6ZWxmLlxuICAgIHRvcDogNnB4O1xuICAgIGJvdHRvbTogNnB4O1xuICAgIHdpZHRoOiA0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGVhc2U7XG4gICAgLyogV8OpbCBhYW53aWpzYmFhciAoZHVzIGdlZW4gcG9pbnRlci1ldmVudHM6IG5vbmUgem9hbHMgZGUgZ3JlZXAgw61uIGhldFxuICAgICAgIGNvbXBvbmVudCk6IGRlIGN1cnNvciBtb2V0IGhpZXIgZWVuIGdyaWpwaGFuZGplIHdvcmRlbi4gSWV0cyBicmVkZXJcbiAgICAgICBhYW5yYWFrZ2ViaWVkIGRhbiBkZSA0cHggZGllIGplIHppZXQsIHZpYSBlZW4gb256aWNodGJhcmUgcmFuZCBlcm9taGVlbi4gKi9cbiAgICBjdXJzb3I6IGdyYWI7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gICAgYmFja2dyb3VuZC1jbGlwOiBjb250ZW50LWJveDtcbn1cbi5wdWxzZS1vcHQtY2FyZDpob3ZlciAucHVsc2Utb3B0LWdyaXAgeyBvcGFjaXR5OiAxOyB9XG4vKiBIZXQgaGVsZSBrYWFydGplIGlzIHNsZWVwYmFhciwgZHVzIG92ZXJhbCBoZXQgZ3JpanBoYW5kamUg4oCUIGFuZGVycyBiZWxvb2Z0XG4gICBhbGxlZW4gZGUgYmFsayBsaW5rcyBkYXQgamUga3VudCBzbGVwZW4gdGVyd2lqbCBoZXQgb3ZlcmFsIHdlcmt0LiAqL1xuLnB1bHNlLW9wdC1jYXJkIHsgY3Vyc29yOiBncmFiOyB9XG4vKiBNYWFyIG5pZXQgYm92ZW4gZGUgdmVsZGVuIHplbGY6IGRhYXIgd2lsIGplIGVlbiB0ZWtzdGN1cnNvci4gKi9cbi5wdWxzZS1vcHQtY2FyZCBxZG5hcHJvLWlucHV0LFxuLnB1bHNlLW9wdC1jYXJkIGlucHV0LFxuLnB1bHNlLW9wdC1jYXJkIHRleHRhcmVhIHsgY3Vyc29yOiBhdXRvOyB9XG4ucHVsc2Utb3B0LWNhcmQgcWRuYXByby1hbnN3ZXItb3B0aW9uIHsgY3Vyc29yOiBncmFiOyB9XG4ucHVsc2Utb3B0LWNhcmQgLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fbGFiZWwgeyBjdXJzb3I6IGF1dG87IH1cbi8qIFRpamRlbnMgaGV0IHNsZXBlbjogZ2VzbG90ZW4gaGFuZC4gKi9cbi5wdWxzZS1vcHQtY2FyZFtkYXRhLXNsZXBlbmRdLFxuLnB1bHNlLW9wdC1jYXJkW2RhdGEtc2xlcGVuZF0gLnB1bHNlLW9wdC1ncmlwLFxuLnB1bHNlLW9wdC1jYXJkW2RhdGEtc2xlcGVuZF0gcWRuYXByby1hbnN3ZXItb3B0aW9uIHsgY3Vyc29yOiBncmFiYmluZzsgfVxuLyogVGlqZGVucyBoZXQgc2xlcGVuIGJsaWpmdCBoaWogc3RhYW4sIG9vayBhbHMgZGUgbXVpcyBoZXQga2FhcnRqZSB2ZXJsYWF0LiAqL1xuLnB1bHNlLW9wdC1jYXJkW2RhdGEtc2xlcGVuZF0gLnB1bHNlLW9wdC1ncmlwIHsgb3BhY2l0eTogMTsgfVxuXG4vLyBLYWFydCA4IChCT0FSRC1wdWxzZS1vcG1hYWstaHlicmlkZSwgMjUuMDguMjAyNik6IHJvbmRqZSArIHZlbGQgb3Agw6nDqW5cbi8vIHJpai4gYGRpc3BsYXk6ZmxleGAgZ2VsZHQgaW4gQkVJREUgc3RhbmRlbiAoQW50d29vcmRlbi1zdGFuZCB2ZXJiZXJndCBoZXRcbi8vIGhlbGUgYmxvayB2aWEgYGRpc3BsYXk6bm9uZWAgaGllcmJvdmVuLCBtZXQgaG9nZXJlIHNwZWNpZmljaXRlaXQg4oCUIHppZVxuLy8gYC5wdWxzZS1vcHQtcm93czpub3QoW2RhdGEtdmlldz1cImV4cGxhaW5cIl0pIC5wdWxzZS1vcHQtd2h5YCksIGR1cyBkaXQgaXNcbi8vIGdlZW4gZHViYmVsZSByZWdlbCBwZXIgc3RhbmQgem9hbHMgdsOzw7NyIGRlemUga2FhcnQuXG4vL1xuLy8gS2FhcnQgMTNjIChCT0FSRC1wdWxzZS1vcG1hYWstaHlicmlkZSwgMjYuMDguMjAyNiwgS2ltcyBhbm5vdGF0aWUpOiBoZXRcbi8vIHJvbmRqZSBzdG9uZCBoaWVyIE5BQVNUIGhldCB2ZWxkIOKAlCBLaW0gd2lsIGhlbSBFUklOLCBsaW5rcyB2YW4gZGUgdGVrc3QsXG4vLyB6b2FscyBpbiBkZSBhbnR3b29yZG9wdGllLXJpamVuLiBgcG9zaXRpb246IHJlbGF0aXZlYCBpcyBoZXQgYW5rZXIgdm9vclxuLy8gYC5wdWxzZS1vcHQtd2h5LW1hcmtgIGhpZXJvbmRlciwgZGF0IG51IGFic29sdXV0IHBvc2l0aW9uZWVydC4gRGUgbWFya3VwXG4vLyAoc3BhbiB2w7PDs3IgZGUgcWRuYXByby1pbnB1dCkgaXMgT05HRVdJSlpJR0Qg4oCUIGFsbGVlbiBkZSBwbGFhdHNpbmcgaXMgQ1NTLlxuLnB1bHNlLW9wdC13aHkge1xuICAgIG1hcmdpbjogNnB4IDAgMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vLyBIZXQgVWl0bGVnLXJvbmRqZTogMS1vcC0xIGRlemVsZmRlIGtsYXNzZSBhbHMgZGUgY3Jvc3MtY2hlY2sta25vcCBvcFxuLy8gYHFkbmFwcm8tYW5zd2VyLW9wdGlvbmAgKGAucWRuYXByby1hbnN3ZXItb3B0aW9uX19tYXJrYCBpblxuLy8gX2Fuc3dlci1vcHRpb24uc2NzcywgbWV0IGRlemVsZmRlIGlzLW1hcmtlZC9pcy13cm9uZy1tb2RpZmllcnMpIOKAlCBiZXd1c3Rcbi8vIEdFRU4gbmlldXcgY29tcG9uZW50LCBhbGxlZW4gZGUga2xhc3NlIGhlcmdlYnJ1aWt0IG9wIGVlbiBrYWFsIGA8c3Bhbj5gLlxuLy8gVHdlZSBkaW5nZW4gcGFnZS1zY29wZWQgdGVydWdnZWRyYWFpZCB0Lm8udi4gZGUga25vcC12YXJpYW50OiBkaXQgaXMgZWVuXG4vLyBJTkRJQ0FUSUUgKGdlZW4gYmVkaWVuaW5nc2VsZW1lbnQsIHppZSBhZGRPcHRpb25Sb3dPZiBpbiBkZXRhaWwuaHRtbCksXG4vLyBkdXMgYGN1cnNvcjogcG9pbnRlcmAgZW4gZGUgYG1hcmdpbi1sZWZ0OiAxMHB4YCBkaWUgZGFhciBkZSBrbm9wIHZhbiBkZVxuLy8gcmlqIGVydm9vciBhZnN0YW5kIGdlZWZ0IChoaWVyIG92ZXJib2RpZywgYGdhcGAgb3AgYC5wdWxzZS1vcHQtd2h5YFxuLy8gcmVnZWx0IGRlIGFmc3RhbmQgdG90IGhldCB2ZWxkIGFsIOKAlCB2w7PDs3Iga2FhcnQgMTNjKS5cbi8vXG4vLyBLYWFydCAxM2M6IGBwb3NpdGlvbjogYWJzb2x1dGVgIChvdmVyc2NocmlqZnQgZGUgYHBvc2l0aW9uOiByZWxhdGl2ZWAgdmFuXG4vLyBkZSBiYXNpc2tsYXNzZSBgLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fbWFya2AsIHplbGZkZSBjYXNjYWRlLXRydWMgYWxzIGRlXG4vLyBgbWFyZ2luLWxlZnRgLW92ZXJyaWRlIGhpZXJib3ZlbikgbGVndCBoZXQgcm9uZGplIElOIGhldCB2ZWxkLCB0ZWdlbiBkZVxuLy8gbGlua2VycmFuZC4gYHRvcDogNXB4YCBsaWpudCBoZW0gdWl0IG9wIGRlIEVFUlNURSB0ZWtzdHJlZ2VsICh0aW55L1xuLy8gZXhwYW5kaW5nOiBwYWRkaW5nLXRvcCA2cHggKyBsaW5lLWhlaWdodCAyMHB4KSwgbmlldCB2ZXJ0aWNhYWwgZ2VjZW50cmVlcmRcbi8vIG92ZXIgaGV0IGhlbGUgdmVsZCDigJQgYmV3dXN0IGRlemVsZmRlIGtldXplIGFscyBkZSBiZXN0YWFuZGVcbi8vIGAuaW5wdXQtbGVhZGluZy1pY29uYCB2YW4gZWVuIGV4cGFuZGluZy12ZWxkIChfaW5wdXQuc2NzczogYGFsaWduLXNlbGY6XG4vLyBmbGV4LXN0YXJ0OyBtYXJnaW4tdG9wOiA4cHhgLCBvb2sgdG9wLXVpdGdlbGlqbmQgaS5wLnYuIGdlY2VudHJlZXJkKSwgd2FudFxuLy8gZGl0IHZlbGQgZ3JvZWl0IChrYWFydCAxM2IpIGVuIGVlbiBnZWNlbnRyZWVyZCByb25kamUgem91IGJpaiBlZW4gbGFuZ2Vcbi8vIHVpdGxlZyBlcmdlbnMgbWlkZGVuIGluIGRlIHRla3N0IGtvbWVuIHRlIHp3ZXZlbi4gYGxlZnQ6IDhweGAgc2x1aXQgYWFuIGJpalxuLy8gZGUgMTBweC1pbnNwcmluZ2luZyB2YW4gaGV0emVsZmRlIHJvbmRqZSBpbiBkZSBhbnR3b29yZG9wdGllLXJpalxuLy8gKGAucWRuYXByby1hbnN3ZXItb3B0aW9uX19tYXJrIHsgbWFyZ2luLWxlZnQ6IDEwcHggfWAgaW5cbi8vIF9hbnN3ZXItb3B0aW9uLnNjc3MpOyAycHggbWluZGVyIG9tZGF0IGRlIHJvbmRqZS1yYW5kIGhpZXIgdmxhayB0ZWdlbiBkZVxuLy8gdmVsZHJhbmQgbGlndCBpbiBwbGFhdHMgdmFuIGVlbiBhcGFydGUgcmlqIGVydm9vci4gYC5wdWxzZS1vcHQtd2h5LXRleHRgXG4vLyBoaWVyb25kZXIga3Jpamd0IGBwYWRkaW5nLWxlZnQ6IDQwcHhgIG9wIHppam4gdGV4dGFyZWEgem9kYXQgZGUgdGVrc3QgbmlldFxuLy8gb25kZXIgaGV0IHJvbmRqZSBzY2h1aWZ0ICg4ICsgMjJweCByb25kamUgKyB+MTBweCBsdWNodHJ1aW10ZSkuXG4ucHVsc2Utb3B0LXdoeS1tYXJrIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDhweDtcbiAgICB0b3A6IDVweDtcbiAgICB6LWluZGV4OiAxO1xufVxuXG4vLyBLYWFydCA1IChCT0FSRC1wdWxzZS1hbnR3b29yZG9wdGllcy1yaWNodGluZy1jLCAyNS4wOC4yMDI2KTogQ1NTIHZvb3IgZGVcbi8vIEFudHdvb3JkZW4vVWl0bGVnLXN0YW5kLiBWZXJodWlzZCBvcCAyNS4wOC4yMDI2IHVpdFxuLy8gZW5zdXJlUHVsc2VPcHRWaWV3U3R5bGVzKCkgaW4gZGV0YWlsLmh0bWwg4oCUIGRhdCB3YXMgdG90IG51IHRvZSBlZW5cbi8vIEpTLWdlw69uamVjdGVlcmQgPHN0eWxlPi1ibG9rIGluIDxoZWFkPiwgb21kYXQga2FhcnQgNSBkZXN0aWpkcyBBTExFRU5cbi8vIGRldGFpbC5odG1sLCBkZSBsb2NhbGUtYmVzdGFuZGVuIGVuIGRlIGhhcm5lc3MgbW9jaHQgcmFrZW4gKGdlZW4gd2lqemlnaW5nXG4vLyBhYW4gZGV6ZSBTQ1NTLXBhcnRpYWwsIGR1cyBnZWVuIGJ1aWxkIG5vZGlnKS4gRGV6ZSB2ZXJodWl6aW5nIHZlcmFuZGVydFxuLy8gZ2VlbiBzZWxlY3RvcnMgb2Ygd2FhcmRlbiwgYWxsZWVuIGRlIHBsZWsgd2FhciB6ZSB2YW5kYWFuIGtvbWVuLlxuLyogS2FhcnQgMjIgKEtpbSwgMjUuMDguMjAyNik6IMOpw6luIHJlZ2VsIGJvdmVuIGhldCBvcHRpZWZyYW1lIG1ldCBMSU5LUyBkZVxuICAgQW50d29vcmRlbi9VaXRsZWctc2NoYWtlbGFhciBlbiBSRUNIVFMgZGUgXCJtZWVyZGVyZSBhbnR3b29yZGVuIGp1aXN0XCItXG4gICB0b2dnbGUuIERpZSB0b2dnbGUgemF0IGVlcnN0IGluIGVlbiBlaWdlbiBxZG5hcHJvLWxpc3Qtcm93IG1ldCB0aXRlbCDDqW5cbiAgIHN1YnRpdGVsIGVyb25kZXI6IHR3ZWUgcmVnZWxzIHRla3N0IGRpZSB6ZWlkZW4gd2F0IGRlIHRvZ2dsZSB6ZWxmIGFsIHplZ3QuXG4gICBEZSBtYXJnZSB6aXQgbnUgb3AgZGV6ZSBiYWxrLCBuaWV0IG1lZXIgb3AgaGV0IHNlZ21lbnQgKGFuZGVycyB0ZWx0IGhpalxuICAgZHViYmVsIHpvZHJhIGRlIGJhbGsgemVsZiBydWltdGUgaG91ZHQpLiBgbWluLWhlaWdodGAgaG91ZHQgZGUgcmVnZWwgc3RhYmllbFxuICAgd2FubmVlciDDqcOpbiB2YW4gZGUgdHdlZSB2ZXJib3JnZW4gaXMgKHBlaWxpbmc6IGdlZW4gc2VnbWVudCwgZ2VlbiB0b2dnbGUpLiAqL1xuLnB1bHNlLW9wdC12aWV3LWJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEycHg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgbWluLWhlaWdodDogMjhweDtcbn1cbi5wdWxzZS1vcHQtdmlldy1zZWdbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLyogSGV0IGxhYmVsIGhvb3J0IEJJSiBkZSB0b2dnbGUgKGhldCBpcyBlZW4gPGxhYmVsPiksIGR1cyBlZW4ga2xpayBvcCBkZSB0ZWtzdFxuICAgc2NoYWtlbHQgaGVtIG9vayDigJQgZGFhcm9tIGdlZW4gbG9zIDxzcGFuPiBlcm5hYXN0IG1hYXIgZGV6ZSB3cmFwcGVyLiAqL1xuLnB1bHNlLW9wdC1tdWx0aSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbjogMCAwIDAgYXV0bztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4ucHVsc2Utb3B0LW11bHRpW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4ucHVsc2Utb3B0LW11bHRpLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI2ODg0KTtcbn1cblxuLnB1bHNlLW9wdC1yb3dzIHtcbiAgICAvLyBBbnR3b29yZGVuLXN0YW5kIChkZWZhdWx0KTogZGUgcmlqIGlzIHdlZXIgw6nDqW4gdmVsZCBicmVlZCDigJQgdWl0bGVnIGVuXG4gICAgLy8gdGl0ZWwtbWlycm9yIGJsaWp2ZW4gdmVyYm9yZ2VuLiAoS2FhcnQgODogZGUgbG9zc2UgSnVpc3QvRm91dC10YWcgZGllXG4gICAgLy8gaGllciBvb2sgc3RvbmQgaXMgdmVyd2lqZGVyZCwgemllIF9hbnN3ZXItb3B0aW9uLWFjaHRpZ2Ugcm9uZGplXG4gICAgLy8gaGllcm9uZGVyIOKAlCBkYXQgcm9uZGplIGxlZWZ0IElOIC5wdWxzZS1vcHQtd2h5IGVuIHZlcmJlcmd0IGR1cyBtZWUuKVxuICAgICY6bm90KFtkYXRhLXZpZXc9XCJleHBsYWluXCJdKSB7XG4gICAgICAgIC5wdWxzZS1vcHQtd2h5LFxuICAgICAgICAucHVsc2Utb3B0LWV4cGxhaW4tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVpdGxlZy1zdGFuZDogbGVnZSBvcHRpZXMgYmVzdGFhbiBoaWVyIG5pZXQsIGRlIGludGVyYWN0aWV2ZSByaWogZW5cbiAgICAvLyBkZSBzbGVlcGdyZWVwIHZlcmR3aWpuZW4gKG5pZXQgc2xlZXBiYWFyIGluIGRlemUgc3RhbmQpLCBkZSB1aXRsZWdcbiAgICAvLyB3b3JkdCB2b2xsZSBicmVlZHRlLlxuICAgICZbZGF0YS12aWV3PVwiZXhwbGFpblwiXSB7XG4gICAgICAgIC5wdWxzZS1vcHQtY2FyZC0tZW1wdHkgeyBkaXNwbGF5OiBub25lOyB9XG4gICAgICAgIC5wdWxzZS1vcHQtY2FyZCB7IGN1cnNvcjogZGVmYXVsdDsgfVxuICAgICAgICAucHVsc2Utb3B0LWdyaXAsXG4gICAgICAgIC5wdWxzZS1vcHQtY2FyZCA+IHFkbmFwcm8tYW5zd2VyLW9wdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIC5wdWxzZS1vcHQtZXhwbGFpbi10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtOTAwLCAjMWMyMTQwKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDZweDtcbiAgICAgICAgfVxuICAgICAgICAucHVsc2Utb3B0LXdoeSB7IG1hcmdpbjogMDsgfVxuICAgIH1cbn1cblxuLy8gS2FhcnQgNSBvcHJ1aW1lbiAoMjUuMDguMjAyNik6IGAucHVsc2Utb3B0LXJvd3MtLXNwbGl0YCAoa2FhcnQgMTcsXG4vLyB6aWotYWFuLXppai11aXRsZWcgaW4gZGUgb3VkZSBzdGFwLW1vZGFsKSBpcyBkb2RlIENTUyBnZXdvcmRlbiDigJQgZGVcbi8vIG1hcmt1cC1rbGFzc2Ugd29yZHQgc2luZHMga2FhcnQgNSBuZXJnZW5zIG1lZXIgZ2V6ZXQgKGdldmVyaWZpZWVyZCBtZXRcbi8vIGVlbiByZXBvLWJyZWRlIGdyZXApLiBCZXd1c3QgdmVyd2lqZGVyZCBpLnAudi4gbGF0ZW4gc3RhYW4uXG5cbi8qIEhldCB1aXRsZWd2ZWxkIHZvbGd0IGRlIEFOVFdPT1JEUkVHRUwgZXJib3ZlbiwgbmlldCBkZSBzdGFuZGFhcmQtaW5wdXQuXG4gKlxuICogR2VtZXRlbiB2ZXJzY2hpbCB2w7PDs3IgZGV6ZSByZWdlbHM6IGFudHdvb3JkIDEycHgvZ2V3aWNodCA0MDAgaW4gZG9ua2VyYmxhdXcsXG4gKiB1aXRsZWcgMTNweC9nZXdpY2h0IDUwMCBpbiBiaWpuYS16d2FydC4gVm9vcmFsIGRhdCBnZXdpY2h0IGRlZWQgaGV0IHdlcmsg4oCUIGRlXG4gKiB1aXRsZWcgb29nZGUgendhYXJkZXIgZGFuIGhldCBhbnR3b29yZCB3YWFyIGhpaiBiaWogaG9vcnQsIHRlcndpamwgaGV0XG4gKiBhbmRlcnNvbSBob29ydCB0ZSB6aWpuLiBgc2l6ZT1cInRpbnlcImAgYnJhY2h0IGRlIGdyb290dGUgYWwgdmFuIDE0IG5hYXIgMTM7XG4gKiBrbGV1ciBlbiBnZXdpY2h0IHJlZ2VsZW4gd2UgaGllciwgd2FudCBkYWFyIGhlZWZ0IGhldCBjb21wb25lbnQgZ2VlbiB2YXJpYW50XG4gKiB2b29yLlxuICpcbiAqIEJld3VzdCBvcCBoZXQga2FhcnRqZSBnZXNjb29wdDogZWxkZXJzIGluIGRlIGFwcCBibGlqZnQgZWVuIHFkbmFwcm8taW5wdXRcbiAqIGdld29vbiB6aWpuIGVpZ2VuIGdld2ljaHQgaG91ZGVuLiAqL1xuLyogSGV0IHVpdGxlZ3ZlbGQgbGVlc3QgYWxzIGRlIGFudHdvb3JkcmVnZWwgZXJib3ZlbiwgbmlldCBhbHMgZWVuIGxvcyBmb3JtdWxpZXIuXG4gKlxuICog4pqg77iPIFNQRUNJRklDSVRFSVQuIHFkbmFwcm8taW5wdXQgemV0IGVlbiBJTkdFVlVMRCB2ZWxkIG9wIGdld2ljaHQgNTAwIHZpYVxuICogYC5xZG5hcHJvLWlucHV0LmlucHV0LWZpbGxlZCAuaW5wdXQtZmllbGQgLmlucHV0LW5hdGl2ZWAg4oCUIHZpZXIga2xhc3Nlbi4gRWVuXG4gKiBvdmVycmlkZSBtZXQgZHJpZSBrbGFzc2VuIHZlcmxpZXN0IGRhYXJ2YW4sIG9vayBhbCBzdGFhdCBoaWogbGF0ZXIgaW4gaGV0XG4gKiBiZXN0YW5kOyBkYXQga29zdHRlIGRyaWUgcG9naW5nZW4gdm9vcmRhdCBpayBkZSB3aW5uZW5kZSByZWdlbCBoYWQgb3BnZXpvY2h0XG4gKiBpbiBwbGFhdHMgdmFuIGdlcmFkZW4uIFZhbmRhYXIgZGF0IGAuaW5wdXQtZmlsbGVkYCBoaWVyIG1lZWRvZXQuXG4gKlxuICog4pqg77iPIERpdCBXSUpLVCBBRiB2YW4gZGUgcmVzdCB2YW4gZGUgYXBwOiBvdmVyYWwgZWxkZXJzIGlzIGluZ2V2dWxkZSBpbnZvZXJcbiAqIHp3YWFyZGVyIGRhbiBsZWdlLiBIaWVyIHZvbGd0IGhldCB1aXRsZWd2ZWxkIGJld3VzdCBkZSBhbnR3b29yZHJlZ2VsIGVyYm92ZW5cbiAqICgxMnB4L2dld2ljaHQgNDAwKSwgb21kYXQgZGUgdHdlZSBzYW1lbiDDqcOpbiBrYWFydGplIHZvcm1lbiBlbiBkZSB1aXRsZWdcbiAqIG9uZGVyZ2VzY2hpa3QgaG9vcnQgdGUgemlqbiBhYW4gaGV0IGFudHdvb3JkLiBXaWwgamUgdGVydWcgbmFhciBkZVxuICogYXBwLXN0YW5kYWFyZCwgZGFuIGlzIGRpdCBibG9rIGhldCBlbmlnZSBkYXQgd2VnIG1vZXQuIFtLaW0gMTIuMDguMjAyNl0gKi9cbi5wdWxzZS1vcHQtY2FyZCAucHVsc2Utb3B0LXdoeS10ZXh0LmlucHV0LWZpbGxlZCAuaW5wdXQtZmllbGQgLmlucHV0LW5hdGl2ZSxcbi5wdWxzZS1vcHQtY2FyZCAucHVsc2Utb3B0LXdoeS10ZXh0IC5pbnB1dC1maWVsZCAuaW5wdXQtbmF0aXZlIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS03MDAsICMyYTMyNjgpO1xufVxuLy8gYGZsZXhgIGluIHBsYWF0cyB2YW4gYHdpZHRoOiAxMDAlYCAodsOzw7NyIGthYXJ0IDgpOiBkZSByaWogYmV2YXQgc2luZHNcbi8vIGthYXJ0IDggb29rIGhldCBVaXRsZWctcm9uZGplIGhpZXJib3ZlbiwgYHdpZHRoOiAxMDAlYCB6b3UgaGV0IHZlbGQgZGFuXG4vLyBidWl0ZW4gYC5wdWxzZS1vcHQtd2h5YCBsYXRlbiB1aXRzdGVrZW4uIGBtaW4td2lkdGg6IDBgIGxhYXQgaGV0IHZlbGQgb29rXG4vLyBlY2h0IGtyaW1wZW4gaW4gcGxhYXRzIHZhbiB6aWpuIGludHJpbnNpZWtlIGJyZWVkdGUgYWYgdGUgZHdpbmdlbi5cbi5wdWxzZS1vcHQtd2h5LXRleHQge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLy8gS2FhcnQgOCAoQk9BUkQtcHVsc2Utb3BtYWFrLWh5YnJpZGUsIDI1LjA4LjIwMjYpOiBcIldhYXJvbSB6aXQgaGllciB6byB2ZWVsXG4vLyBydWltdGU/XCIgKEtpbXMgYW5ub3RhdGllLCByZWNodHMgdmFuIGhldCB3aXMta3J1aXNqZSBpbiBkaXQgdWl0bGVndmVsZCkuXG4vL1xuLy8gT09SWkFBSywgZ2VtZXRlbiBpbiBoZXQgaGFybmFzIChoZWFkbGVzcywgdGlueS9leHBhbmRpbmcsIGdldnVsZCB2ZWxkLFxuLy8gdmVsZGJyZWVkdGUgMzc5cHgpOiBgLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1leHBhbmRpbmcgLmlucHV0LWZpZWxkXG4vLyAuaW5wdXQtdHJhaWxpbmdgIChfaW5wdXQuc2NzcykgemV0IGByaWdodDogMjBweGAg4oCUIHZhc3RlIHJ1aW10ZSBkaWUgaGV0XG4vLyBjb21wb25lbnQgYWx0aWpkIHZyaWpob3VkdCBuYWFzdCBoZXQgd2lzLWtydWlzamUgdm9vciBlZW4gZXZlbnR1ZWxlXG4vLyBOQVRJVkUgc2Nyb2xsYmFsayAoemllIGRlIGNvbW1lbnQgZGFhcjogXCIyMHB4IGhvdWR0IGRhYXIgcnVpbXRlIHZyaWogdm9vclxuLy8gZGUgc3lzdGVlbS1zY3JvbGxiYWxrIG5hYXN0IGhldCB3aXMta3J1aXNqZVwiKS4gRGl0IHZlbGQgKGByb3dzPVwiMlwiYCxcbi8vIGBvdmVyZmxvdy15OiBoaWRkZW5gLCBncm9laXQgaS5wLnYuIHNjcm9sbHQpIHRvb250IE5PT0lUIGVlbiBzY3JvbGxiYWxrLFxuLy8gZHVzIGRpZSAyMHB4IGlzIGhpZXIgcHVyZSBsZWdlIG1hcmdlOiBoZXQga3J1aXNqZSAoMjRweCBicmVlZCkgZWluZGlnZGVcbi8vIDIxcHggdsOzw7NyIGRlIHJlY2h0ZXJyYW5kIHZhbiBoZXQgdmVsZC4gYHRleHRhcmVhLmlucHV0LW5hdGl2ZWAnc1xuLy8gYHBhZGRpbmctcmlnaHQ6IDQ0cHhgIChzaXplPXRpbnkpIGlzIGRhYXIgMToxIG9wIGFmZ2VzdGVtZCAoMjAgKyAyNCkgZW5cbi8vIHNjaHVpZnQgZHVzIGF1dG9tYXRpc2NoIG1lZS5cbi8vXG4vLyBWT09SIChoZWFkbGVzcy1tZXRpbmcsIGhhcm5hcywgYmV3ZXJrLW1vZGFsIMOpbiB3aXphcmQsIGJlaWRlIDQ0cHgpOlxuLy8gICByaWdodCAoLmlucHV0LXRyYWlsaW5nKSAgICAgICAgIDogMjBweFxuLy8gICB0ZXh0YXJlYSBwYWRkaW5nLXJpZ2h0ICh0aW55KSAgIDogNDRweFxuLy8gICBydWltdGUga3J1aXNqZSDihpIgdmVsZHJhbmQgICAgICAgOiAyMXB4XG4vLyBOQSAoZGV6ZSB0d2VlIHJlZ2VscywgcGFnZS1zY29wZWQg4oCUIGhldCBjb21wb25lbnQgemVsZiBibGlqZnQgT05HRVdJSlpJR0Rcbi8vIHZvb3IgZWxrZSBhbmRlcmUgcGFnaW5hKTpcbi8vICAgcmlnaHQgKC5pbnB1dC10cmFpbGluZykgICAgICAgICA6IDEwcHggIChnZWxpamsgYWFuIGRlIGxpbmtlciBpbnNldCB2YW5cbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGl0IHZlbGQsIHNpemU9dGlueTogMTBweClcbi8vICAgdGV4dGFyZWEgcGFkZGluZy1yaWdodCAodGlueSkgICA6IDM0cHggICgxMCArIGtydWlzamUtYnJlZWR0ZSAyNHB4KVxuLy8gICBydWltdGUga3J1aXNqZSDihpIgdmVsZHJhbmQgICAgICAgOiAxMXB4ICAoMTBweCBpbnNldCwgMXB4IGFmcm9uZGluZylcbi8vXG4vLyBLYWFydCAxM2IgKEJPQVJELXB1bHNlLW9wbWFhay1oeWJyaWRlLCAyNi4wOC4yMDI2KTogZGUgYWFubmFtZSBoaWVyYm92ZW5cbi8vIChcInRvb250IE5PT0lUIGVlbiBzY3JvbGxiYWxrXCIpIGtsb3B0IG5pZXQgbWVlciDigJQgS2ltIGtvbiBlZW4gbGFuZ2UgdWl0bGVnXG4vLyBuaWV0IG1lZXIgc2Nyb2xsZW4gZW4gZHVzIG5pZXQgbWVlciB0ZXJ1Z2xlemVuLiBgbWF4LXJvd3NgIG9wIGhldCB2ZWxkXG4vLyAoemllIGRlIGBtYXgtcm93cz1cIjEyXCJgLXRvZXZvZWdpbmcgaW4gZGV0YWlsLmh0bWwvZGUgaGFybmFzKSBtYWFrdFxuLy8gb3ZlcmxvcGVuIHplbGR6YW1lciwgbWFhciBiaWogZWVuIGVjaHQgbGFuZ2UgdWl0bGVnIChoZWFkbGVzcy10ZXN0OiAyMFxuLy8gcmVnZWxzKSBzY2hha2VsdCBxZG5hLWlucHV0LmpzJ3MgZWlnZW4gYF9hdXRvUmVzaXplKClgIGFsc25vZyBuYWFyXG4vLyBgb3ZlcmZsb3cteTogYXV0b2Ag4oCUIGVuIGRhbiBib3RzdCBkZSBLUkFQUEUgMTBweC8zNHB4IGhpZXJib3ZlbiB3ZWVyIG1ldFxuLy8gZWVuIGVjaHRlIHNjcm9sbGJhbGsuIE9wbG9zc2luZzogZGUgMjBweC80NHB4LXJlc2VydmVyaW5nIGtvbXQgdGVydWcsXG4vLyBtYWFyIEFMTEVFTiBhbHMgaGV0IHZlbGQgb29rIGVjaHQgb3Zlcmxvb3B0IChgZGF0YS13aHktb3ZlcmZsb3dgLCBnZXpldFxuLy8gZG9vciBgc3luY1doeU92ZXJmbG93T2YoKWAgaW4gZGV0YWlsLmh0bWwvZGUgaGFybmFzIG9wIGVsa2UgdG9ldHNhYW5zbGFnXG4vLyDigJQgbmlldCBvcCBlZW4gY2xhc3MsIHdhbnQgcWRuYS1pbnB1dC5qcyB6ZXQgYHRoaXMuY2xhc3NOYW1lYCBiaWogZWxrZVxuLy8gaGVyLXJlbmRlciBoZWxlbWFhbCB0ZXJ1ZywgemllIGRlIGNsYXNzbmFtZS13aXBlLW5vdGl0aWUgZGFhcikuIFpvIGJsaWpmdFxuLy8gZGUga3JhcHBlIGthYXJ0LTgtb3BtYWFrIGdlbGRlbiB2b29yIGRlIHJpamVuIGRpZSBub29pdCBvdmVybG9wZW4gKGRlXG4vLyBtZWVyZGVyaGVpZCksIGVuIHZlcnNjaGlqbnQgZGUgcnVpbWVyZSBtYXJnZSBwcmVjaWVzIHdhbm5lZXIgZWVuXG4vLyBzY3JvbGxiYWxrIG9vayBlY2h0IGthbiB2ZXJzY2hpam5lbi5cbi5wdWxzZS1vcHQtY2FyZCAucWRuYXByby1pbnB1dC5wdWxzZS1vcHQtd2h5LXRleHQuaW5wdXQtdHlwZS1leHBhbmRpbmcgLmlucHV0LWZpZWxkIC5pbnB1dC10cmFpbGluZyB7XG4gICAgcmlnaHQ6IDEwcHg7XG59XG4ucHVsc2Utb3B0LWNhcmQgLnFkbmFwcm8taW5wdXQucHVsc2Utb3B0LXdoeS10ZXh0LmlucHV0LXR5cGUtZXhwYW5kaW5nLmlucHV0LXNpemUtdGlueSAuaW5wdXQtZmllbGQgdGV4dGFyZWEuaW5wdXQtbmF0aXZlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzNHB4O1xuICAgIC8vIEthYXJ0IDEzYzogcnVpbXRlIHZvb3IgaGV0IFVpdGxlZy1yb25kamUgSU4gaGV0IHZlbGQgKHppZVxuICAgIC8vIC5wdWxzZS1vcHQtd2h5LW1hcmsgaGllcmJvdmVuKSDigJQgOHB4IGluc2V0ICsgMjJweCByb25kamUgKyB+MTBweFxuICAgIC8vIGx1Y2h0cnVpbXRlIHRvdCBkZSB0ZWtzdC5cbiAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG59XG4ucHVsc2Utb3B0LWNhcmQgLnFkbmFwcm8taW5wdXQucHVsc2Utb3B0LXdoeS10ZXh0LmlucHV0LXR5cGUtZXhwYW5kaW5nW2RhdGEtd2h5LW92ZXJmbG93XSAuaW5wdXQtZmllbGQgLmlucHV0LXRyYWlsaW5nIHtcbiAgICByaWdodDogMjBweDtcbn1cbi5wdWxzZS1vcHQtY2FyZCAucWRuYXByby1pbnB1dC5wdWxzZS1vcHQtd2h5LXRleHQuaW5wdXQtdHlwZS1leHBhbmRpbmcuaW5wdXQtc2l6ZS10aW55W2RhdGEtd2h5LW92ZXJmbG93XSAuaW5wdXQtZmllbGQgdGV4dGFyZWEuaW5wdXQtbmF0aXZlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0NHB4O1xufVxuXG4vKiBEZSBkcm9wbGlqbiB0aWpkZW5zIGhldCBzbGVwZW46IMOpw6luIHBhYXJzZSBsaWpuIG9wIGRlIGxhbmRpbmdzcGxlay4gWmVsZmRlXG4gICBpZGVlIGFscyAuZmUtZHJvcC1saW5lIGluIGRlIGZsb3ctZWRpdG9yLiAqL1xuLnB1bHNlLW9wdC1kcm9wbGluZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgbWFyZ2luLXRvcDogLTVweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzUzNGFiNyk7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDI7XG59XG4ucHVsc2Utb3B0LWRyb3BsaW5lW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG5cbi8vIEthYXJ0IDE3IChCT0FSRC1wdWxzZS1hbnR3b29yZG9wdGllcy1yaWNodGluZy1jLCAyNS4wOC4yMDI2KTogbmlldCBtZWVyIGVlblxuLy8gbG9zc2Uga25vcCBPTkRFUiBoZXQgZnJhbWUg4oCUIG51IGRlIG9uZGVyc3RlLCBnZXN0aXBwZWxkZSByaWogRVJJTi4gR2VlblxuLy8gbWFyZ2UgbWVlciBub2RpZyAoYC5wdWxzZS1vcHQtZnJhbWUgLnB1bHNlLWFkZC1iYXJgIGhpZXJvbmRlciByZWdlbHQgcmFuZC9cbi8vIGFmcm9uZGluZyk7IGAucHVsc2Utb3B0LWFkZGAgYmxpamZ0IGFscyBrbGFzc2Ugc3RhYW4gdm9vciBpZGVudGl0ZWl0L1xuLy8gc2VsZWN0b3JzLCBvb2sgYWwga29tdCBkZSB2b3JtZ2V2aW5nIG51IHZhbiBgLnB1bHNlLWFkZC1iYXJgLlxuLnB1bHNlLW9wdC1hZGQgeyBtYXJnaW4tdG9wOiAwOyB9XG5cbi8vIFplbGZkZSBnZXN0aXBwZWxkZS1yaWotdm9ybSBhbHMgZGUgYmVzdGFhbmRlIHN0YXBwZW4tdG9ldm9lZ3JpaiBoaWVyYm92ZW5cbi8vIGluIGRpdCBiZXN0YW5kICgucHVsc2UtYWRkLWJhci8tY2lyY2xlLy1sYWJlbCwgXCJUb2V2b2VnLXJpalwiLWJsb2spIOKAlFxuLy8gaGVyZ2VicnVpa3RlIGtsYXNzZW4sIGhpZXIgYWxsZWVuIFZPTExFLUJSRUVEVEUgUExBVCBpbiBoZXQgZnJhbWUgaS5wLnYuXG4vLyBsb3MgZXJib3ZlbiBtZXQgZWlnZW4gcmFuZC4gYC5wdWxzZS1vcHQtZnJhbWVgcyBvdmVyZmxvdzpoaWRkZW4ga2FwdCBkZVxuLy8gdmllcmthbnRlIG9uZGVyaG9layB2YW4gZGV6ZSByaWogYXV0b21hdGlzY2ggYWYgdG90IGRlIGZyYW1lLWFmcm9uZGluZyxcbi8vIGR1cyBib3JkZXItcmFkaXVzOiAwIGlzIGhpZXIgYmV3dXN0IGdlbm9lZy5cbi5wdWxzZS1vcHQtZnJhbWUgLnB1bHNlLWFkZC1iYXIge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItdG9wOiAxLjVweCBkYXNoZWQgcmdiYSg3MCwgODIsIDI0MywgMC4zMCk7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IG5vbmU7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogNDRweDtcbn1cbi8vIEthYXJ0IDE3OiBkaXQgaXMgZWVuIEVDSFRFIDxidXR0b24+LCBnZWVuIGRpdltyb2xlPVwiYnV0dG9uXCJdIHpvYWxzIGRlXG4vLyBzdGFwcGVuLXRvZXZvZWdyaWog4oCUIGhpZXIgaXMgdmVyZGVyIGdlZW4gbG9zIGtleWRvd24tcmVjZXB0IG5vZGlnLCBkZVxuLy8gYnJvd3NlciByZWdlbHQgRW50ZXIvU3BhY2UgdmFuemVsZi4gWmVsZmRlIGJvb3RzdHJhcC12YWxrdWlsIGFscyBoaWVyYm92ZW5cbi8vIGJpaiAucHVsc2Utd2l6LWNhcmQ6Zm9jdXMgKEtpbXMgcmV2aWV3IDI0LjA4KTogZGUgdjEtaGVhZGVyIGxhYWR0XG4vLyBib290c3RyYXAubWluLmNzcywgZW4gZGllIHpldCBgYnV0dG9uOmZvY3VzIHsgb3V0bGluZTogNXB4IGF1dG8gLi4uIH1gIG9wXG4vLyBFTEtFIGtub3Ag4oCUIGVlbiBlY2h0ZSBtdWlza2xpayBnZWVmdCB3w6lsIDpmb2N1cyBtYWFyIGdlZW4gOmZvY3VzLXZpc2libGUsXG4vLyBkdXMgZGUgYmVzdGFhbmRlIGAucHVsc2UtYWRkLWJhcjpmb2N1cy12aXNpYmxlYC1yZWdlbCAoaGllcmJvdmVuLCBcIlRvZXZvZWctXG4vLyByaWpcIi1ibG9rKSBrYW4gZGllIGhhcmRlIGJsYXV3ZSByaW5nIG5pZXQgb3B2YW5nZW4uIFplbGZkZSBvcGxvc3Npbmc6XG4vLyBib290c3RyYXAtb3V0bGluZSB1aXR6ZXR0ZW4sIGRlIHphY2h0ZSA6Zm9jdXMtdmlzaWJsZS1yaW5nIGJsaWpmdCBzdGFhbi5cbi5wdWxzZS1vcHQtZnJhbWUgLnB1bHNlLWFkZC1iYXI6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG4ucHVsc2Utb3B0LWZyYW1lIC5wdWxzZS1hZGQtYmFyOmhvdmVyIHtcbiAgICAvLyBaZWxmZGUgXCJ6YWNodGUgcGFhcnNlIG9uZGVyZ3JvbmRcIi10b2tlbiBhbHMgaGV0IG91ZGUgb3B0aWUta2FhcnRqZVxuICAgIC8vIGhpZXJib3ZlbiBkcm9lZyAodmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKSkg4oCUIGdlZW4gbmlldXdlIGtsZXVyLCBhbGxlZW5cbiAgICAvLyBoZXJnZWJydWlrdCBhbHMgaG92ZXItZmVlZGJhY2sgaW4gcGxhYXRzIHZhbiBhbHMgcGVybWFuZW50ZSBhY2h0ZXJncm9uZC5cbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUsICNmNGYzZmIpO1xuICAgIGJvcmRlci10b3AtY29sb3I6IHJnYmEoNzAsIDgyLCAyNDMsIDAuNTApO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5wdWxzZS1vcHQtZnJhbWUgLnB1bHNlLWFkZC1iYXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWMtcHVycGxlLTIwMC0zMCwgcmdiYSgxNjUsIDE3MiwgMjU1LCAwLjMwKSk7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnB1bHNlLW9wdC1mcmFtZSAucHVsc2UtYWRkLWJhcjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTtcbiAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS0yMDAtNTAsIHJnYmEoMTY1LCAxNzIsIDI1NSwgMC41MCkpO1xufVxuXG4vKiBBZmJlZWxkaW5nIGJpaiBlZW4gc3RhcC4gKi9cbi5wdWxzZS1zbS1pbWFnZSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTJweDsgfVxuLnB1bHNlLXNtLXRodW1iIHtcbiAgICB3aWR0aDogOTZweDtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSwgI2YzZjRmYik7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGNvbG9yOiAjYjliY2Q2O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xufVxuLnB1bHNlLXNtLXRodW1iIGltZyB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IG9iamVjdC1maXQ6IGNvdmVyOyBkaXNwbGF5OiBibG9jazsgfVxuLnB1bHNlLXNtLWltYWdlLWFjdGlvbnMgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgZmxleC13cmFwOiB3cmFwOyB9XG5cbi8qIFZpZGVvdm9vcmJlZWxkICgwMS4wOS4yMDI2LCBLaW0pIOKAlCBiaWogZWVuIHZpZGVvc3RhcCBzdGFhdCBvcCBkZSBwbGVrIHZhblxuICAgZGUgYWZiZWVsZGluZy1raWV6ZXIgaGV0IHZvb3JiZWVsZCB2YW4gZGUgdmlkZW8gemVsZi4gMTY6OSBlbiBuaWV0IGVlblxuICAgdmFzdGUgaG9vZ3RlOiBkYXQgaXMgZGUgdmVyaG91ZGluZyB3YWFyaW4gWW91VHViZSBsZXZlcnQsIGVuIGRlIGtvbG9tXG4gICBiZXBhYWx0IGRlIGJyZWVkdGUuIERlIHNwZWxlciBpcyBlZW4gZWNodGUsIGFmc3BlZWxiYXJlIGluc2x1aXRpbmcgKHplbGZkZVxuICAgeW91dHViZS1ub2Nvb2tpZS12b3JtIGFscyBkZSBhcHApLCB6b2RhdCBqZSBpbiBkZSBiYWNrb2ZmaWNlIGt1bnRcbiAgIGNvbnRyb2xlcmVuIG9mIGplIGRlIEpVSVNURSB2aWRlbyBnZXBsYWt0IGhlYnQuICovXG4ucHVsc2Utc20tdmlkZW8tcHJldmlldyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGFzcGVjdC1yYXRpbzogMTYgLyA5O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwO1xufVxuLnB1bHNlLXNtLXZpZGVvLXByZXZpZXctZnJhbWUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuLyogRGUgbGVnZSBwbGFhdDogZ2VlbiB6d2FydCB2bGFrIHpvbmRlciB1aXRsZWcsIG1hYXIgZWVuIHJ1c3RpZ2Ugc3RpcHBlbGxpam5cbiAgIG1ldCDDqcOpbiByZWdlbCBkaWUgemVndCB3YXQgZXIgbW9ldCBnZWJldXJlbi4gQmV3dXN0IE5JRVQgMTY6OTogem9sYW5nIGVyXG4gICBnZWVuIHZpZGVvIGlzLCBpcyBlZW4gbGVlZyB2bGFrIHZhbiAzMDBweCBob29nIGFsbGVlbiBtYWFyIGdhdCBpbiBoZXRcbiAgIGZvcm11bGllci4gSGlqIGdyb2VpdCBwYXMgbmFhciBkZSBlY2h0ZSB2ZXJob3VkaW5nIHpvZHJhIGRlIHNwZWxlciBlclxuICAgc3RhYXQuICovXG4ucHVsc2Utc20tdmlkZW8tcHJldmlldy5pcy1lbXB0eSB7XG4gICAgYXNwZWN0LXJhdGlvOiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDExNnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSwgI2YzZjRmYik7XG4gICAgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLWMtYm9yZGVyLXNvZnQsICNlNWU1ZWEpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgY29sb3I6ICNiOWJjZDY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnB1bHNlLXNtLXZpZGVvLXByZXZpZXctdGV4dCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC13aWR0aDogMjYwcHg7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5wdWxzZS1zbS12aWRlby1wcmV2aWV3LmlzLWVtcHR5IHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KTtcbn1cblxuLyogRGUgdHdlZSBrYWxlIHRla3N0dmxha2tlbiBkaWUgaGllciBzdG9uZGVuICgucHVsc2Utc20tdGV4dGFyZWEpIHppam4gd2VnIHBlclxuICAgMTIuMDguMjAyNjogZGUgZmVlZGJhY2t2ZWxkZW4gemlqbiB2ZXJ2YW5nZW4gZG9vciBkZSB1aXRsZWcgcGVyIG9wdGllLCBlbiBkaWVcbiAgIGlzIGVlbiBxZG5hcHJvLWlucHV0IHR5cGU9XCJleHBhbmRpbmdcIi4gRWVuIGhhbmRnZW1hYWt0IHRla3N0dmxhayBtZXQgZWVuIGVpZ2VuXG4gICByYW5kamUgZW4gZWVuIGVpZ2VuIGZvY3VzLXJpbmcgbmFhc3QgZGUgZWNodGUgdmVsZGVuIGluIGRlemVsZmRlIG1vZGFsIGlzXG4gICBwcmVjaWVzIGhldCBzb29ydCBzY2hlZWZncm9laSBkYXQgamUgbGF0ZXIgbmlldCBtZWVyIHRlcnVndmluZHQuICovXG5cbi8qIC0tLSBPcG1hYWstd2l6YXJkIChrYWFydCA2LCBTQ09QRS1wdWxzZS1vcG1hYWstd2l6YXJkLm1kKSAtLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFNjaGlsOiBxZG5hcHJvLXdpemFyZC1tb2RhbCAoY29tcG9uZW50cy92Mi93aXphcmQtbW9kYWwpLiBFbGtlIHN0YXAgaXMgemlqblxuICAgRUlHRU4gdmVuc3RlciAoLnFkbmFwcm8td2l6YXJkLXN0ZXApLCBkdXMga29wL3Zvb3J0Z2FuZy92b2V0IHN0YWFuIGluIEVMS1xuICAgdmFuIGRlIGRyaWUgc3RhcHBlbiDigJQgZ2VlbiBnZWRlZWxkIGVsZW1lbnQgZGF0IGJ1aXRlbiBkZSBzdGFwcGVuIGxlZWZ0LiAqL1xuLyogS2FhcnQgMTcgKEtpbXMgRmlnbWEsIGxldHRlcmxpamspOiBkZSBrb3AgSVMgZGUgc3RhcHRpdGVsIChwYWFycyxcbiAgIGxpbmtzYm92ZW4pLCBrcnVpc2plIHJlY2h0c2JvdmVuLCBlZW4gZHVubmUgc2NoZWlkaW5nc2xpam4gb25kZXIgZGUga29wLlxuICAgR2VlbiBsb3MgXCJOaWV1d2Uga2VubmlzdnJhYWdcIi1rb3BqZSBlbiBnZWVuIGdyaWp6ZSBcIlNUQVAgMS8zXCItcmVnZWwgbWVlclxuICAgKC5wdWxzZS13aXotcHJvZ3Jlc3MgaXMgZGFhcm9tIHZlcndpamRlcmQpLiAqL1xuXG4vKiBLYWFydCAxOSwgcHVudCAyIChLaW0pOiBWQVNURSBob29ndGUsIGdlbGlqayBvcCBhbGxlIGRyaWUgZGUgc3RhcHBlbiDigJQgd2FzXG4gICBgYXV0by1oZWlnaHRgIChjb21wb25lbnQtYXR0cmlidXV0LCB6aWUgcWRuYS13aXphcmQtbW9kYWwuanMpLCB3YWFyYmlqIGVsa2VcbiAgIHN0YXAgemlqbiBFSUdFTiBuYXR1dXJsaWprZSBpbmhvdWRzaG9vZ3RlIGtyZWVnIGVuIGRlIG1vZGFsIGR1cyB2ZXJzcG9uZ1xuICAgdHVzc2VuIHN0YXAgMSAoZHJpZSBrYWFydGVuKSwgMiAoZm9ybXVsaWVyKSBlbiAzIChrb3J0IHBhY2luZy1ibG9rKS4gRGVcbiAgIGJyZWVkdGUgd2FzIHZpYSBgZGF0YS13aWR0aGAgb3AgZWxrZSBzdGFwIGFsIGdlbGlqayAoODgwLCBudSAxMjgwLCB6aWVcbiAgIFdJWl9TVEVQX1dJRFRIIGluIGRldGFpbC5odG1sKSDigJQgZGF0IHZlcnNwcmluZ3QgZHVzIGFsIG5pZXQuIGAtLXdtLWhlaWdodGBcbiAgIGlzIGRlIENTUy12YXIgZGllIGhldCBjb21wb25lbnQgemVsZiBsZWVzdCAoYC53bS1zdGVwcyB7IGhlaWdodDpcbiAgIHZhcigtLXdtLWhlaWdodCwgNTQwcHgpOyB9YCwgemllIF93aXphcmQtbW9kYWwuc2Nzcyk7IGRpdCBpcyBkZVxuICAgcGFnZS1zY29wZWQgb3ZlcnJpZGUgZGllIGRlIHNraWxsL2thYXJ0IGhpZXIgdnJhYWd0LCB3YW50IGRlIGNvbXBvbmVudFxuICAgemVsZiBrZW50IGdlZW4gYHNpemVgLXNjaGFhbCB6b2FscyBxZG5hcHJvLW1vZGFsICh4eGxhcmdlIGVuei4pIOKAlCBuYWdla2VrZW5cbiAgIGluIHFkbmEtd2l6YXJkLW1vZGFsLmpzLCBkaWUga2VudCBhbGxlZW4gcGVyLXN0YXAgYGRhdGEtd2lkdGhgICsgZGV6ZVxuICAgaG9vZ3RlLXZhci9gYXV0by1oZWlnaHRgLiBgLnB1bHNlLXdpei1zY3JvbGxgICh2ZXJkZXJvcCkgaXMgZW4gYmxpamZ0IGRlXG4gICBzY3JvbGxlbmRlIGtvbG9tIEJJTk5FTiBlZW4gc3RhcCB3YW5uZWVyIGRlIGluaG91ZCBuaWV0IHBhc3Qg4oCUIG5vb2l0IGRlXG4gICBtb2RhbCB6ZWxmLCBkZXplbGZkZSBgbWluLWhlaWdodDogMGAta2V0ZW4tcmVnZWwgYWxzIGVsZGVycyBpbiBkaXQgYmVzdGFuZC4gKi9cbi8qIEthYXJ0IDE0ICgyNS4wOC4yMDI2KTogaG9nZXIgbnUgZGUgc3RhcCBtZWVyIGluZm9ybWF0aWUgZHJhYWd0ICh0b2dnbGUsXG4gICBzY2hha2VsYWFyLCB1aXRsZWctc3RhbmQpLiBtaW4oKSBob3VkdCBoZW0gYmlubmVuIGJlZWxkIG9wIGxhZ2Ugc2NoZXJtZW47XG4gICA5NnB4IG1hcmdlIG9tZGF0IGRlIGRpYWxvZyAxOHB4IG1lZXIgbWVldCBkYW4gemlqbiBtYXgtaGVpZ2h0IHJla2VudC4gKi9cbiNwdWxzZS13aXphcmQtbW9kYWwgeyAtLXdtLWhlaWdodDogbWluKDgwMHB4LCBjYWxjKDEwMHZoIC0gOTZweCkpOyB9XG5cbi5wdWxzZS13aXotaGRyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEycHg7XG4gICAgcGFkZGluZzogMTZweCAyMHB4IDE0cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQsICNlNWU1ZWEpO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuLnB1bHNlLXdpei1oZHItdGl0bGUgeyBtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTdweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjMzk0MjkwKTsgfVxuXG4vKiBLYWFydCAyMTogaGV0IFwiQmV3ZXJrIHZyYWFnXCIvXCJJbnN0ZWxsaW5nZW5cIi1zZWdtZW50IGJvdmVuaW4sIEFMTEVFTlxuICAgemljaHRiYWFyIGluIGJld2Vya3N0YW5kIOKAlCBgaGlkZGVuYCBzdGFhdCBzdGFuZGFhcmQgb3AgZGUgd3JhcHBlciBlbiB3b3JkdFxuICAgcGVyIHNlc3NpZSBnZXpldC92ZXJ3aWpkZXJkIGRvb3Igd2l6QXBwbHlFZGl0Q2hyb21lKCkgKGRldGFpbC5odG1sKS4gRWxrZVxuICAgc3RhcCBkcmFhZ3QgemlqbiBFSUdFTiBleGVtcGxhYXIgKGRlIHdpemFyZCBib3V3dCB6aWpuIGRyaWUgc3RhcHBlbiBtYWFyXG4gICDDicOJTiBrZWVyIGVuIHZlcnBsYWF0c3QgemUsIGdlZW4gZ2VkZWVsZGUgbm9kZSksIHZhbmRhYXIgZHJpZSBpZGVudGlla2VcbiAgIHdyYXBwZXJzIGluIGRlIG1hcmt1cCwgw6nDqW4gcGVyIGAucHVsc2Utd2l6LXN0ZXBgLiAqL1xuLnB1bHNlLXdpei1lZGl0LXNlZy13cmFwIHtcbiAgICBwYWRkaW5nOiAxMnB4IDIwcHggMDtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLy8gS2FhcnQgNiAoQk9BUkQtcHVsc2UtYW50d29vcmRvcHRpZXMtcmljaHRpbmctYywgMjUuMDguMjAyNiwgYmVzbHVpdGVuXG4vLyBTMStTMik6IENTUyB2b29yIGRlIHN0YXB0eXBlLXBpbCBuYWFzdCBkZSB0aXRlbCAoUzEpIGVuIGRlIGdlY2VudHJlZXJkZVxuLy8ga29wLXJhc3RlciBtZXQgaGV0IFwiQmV3ZXJrIHZyYWFnL0luc3RlbGxpbmdlblwiLXNlZ21lbnQgKFMyKS4gVmVyaHVpc2Qgb3Bcbi8vIDI1LjA4LjIwMjYgdWl0IGVuc3VyZVB1bHNlV2l6SGRyU3R5bGVzKCkgaW4gZGV0YWlsLmh0bWwg4oCUIHplbGZkZVxuLy8gPHN0eWxlPi1pbi08aGVhZD4tcmVjZXB0IGVuIGRlemVsZmRlIHJlZGVuIGFscyBiaWoga2FhcnQgNSBoaWVyYm92ZW4sXG4vLyBkZXplIGthYXJ0IG1vY2h0IGRlc3RpamRzIG9vayBnZWVuIHdpanppZ2luZyBhYW4gZGV6ZSBTQ1NTLXBhcnRpYWwgbWFrZW4uXG4vLyBCZXd1c3QgTkEgZGUgLnB1bHNlLXdpei1oZHIvLnB1bHNlLXdpei1lZGl0LXNlZy13cmFwLWJhc2lzcmVnZWxzIGhpZXJib3ZlblxuLy8gZ2V6ZXQ6IGRlIEpTLTxzdHlsZT4gd2VyZCBkZXN0aWpkcyBwYXMgbsOhIGhldCBsYWRlbiB2YW4gc3R5bGUtdjEuY3NzIGFhblxuLy8gPGhlYWQ+IHRvZWdldm9lZ2QsIGR1cyB3b24gYmlqIGdlbGlqa2Ugc3BlY2lmaWNpdGVpdCAoYnYuIGRlIHBhZGRpbmc6MFxuLy8gaGllcm9uZGVyIG9wIC5wdWxzZS13aXotZWRpdC1zZWctd3JhcCB3aW50IG92ZXIgZGUgcGFkZGluZzogMTJweCAyMHB4IDBcbi8vIHZhbiBrYWFydCAyMSBoaWVyYm92ZW4pIOKAlCBkaWUgYnJvbnZvbGdvcmRlIG1vZXQgaGllciBiZWhvdWRlbiBibGlqdmVuLlxuLy9cbi8vIC5wdWxzZS13aXotaGRyLSogaG9vcnQgYmlqIGRlIG9wbWFhay13aXphcmQgKGZsaXRzL2tlbm5pc3ZyYWFnL3BlaWxpbmcpOlxuLy8gMy1rb2xvbXMtcmFzdGVyLCB0aXRlbCtwaWwgbGlua3MsIHNlZ21lbnQgTUlEREVOIChhbGxlZW4gemljaHRiYWFyIGluXG4vLyBiZXdlcmtzdGFuZCwgemllIHdpekFwcGx5RWRpdENocm9tZSBpbiBkZXRhaWwuaHRtbCksIGtydWlzamUgcmVjaHRzLlxuLy8gTGlua3MvcmVjaHRzIHppam4gZ2VsaWprZSBtaW5tYXgoMCwxZnIpLWtvbG9tbWVuIHpvZGF0IGRlIG1pZGRlbHN0ZVxuLy8gKGF1dG8tYnJlZWQpIHdpc2t1bmRpZyBnZWNlbnRyZWVyZCBzdGFhdCwgb25nZWFjaHQgdGl0ZWxsZW5ndGUuXG4vL1xuLy8gLnB1bHNlLXNtLWhkci0qIGhvb3J0IGJpaiAjcHVsc2Utc3RlcC1tb2RhbCAodmlkZW8vZG9jdW1lbnQvYWN0aWUsIGRhdFxuLy8gR0VFTiBzZWdtZW50IGhlZWZ0KTogYWxsZWVuIGRlIHBpbCBuYWFzdCBkZSB0aXRlbCwgemVsZmRlIGxpbmtzLVxuLy8gdWl0Z2VsaWpuZGUgZmxleC1yaWosIHNjb3BlZCBvcCBkZSBJRCB6b2RhdCBhbmRlcmUgcWRuYXByby1tb2RhbC1cbi8vIGluc3RhbnRpZXMgb3AgZGV6ZSBwYWdpbmEgKGJ2LiBkZSB0eXBlLWtpZXplcikgZGl0IG5pZXQgbWVla3Jpamdlbi5cbi8vIEthYXJ0IDIxLWFhbnZ1bGxpbmcgKGJ1Z2ZpeCwgS2ltKTogYGdyaWQtdGVtcGxhdGUtYXJlYXNgIGkucC52LiBpbXBsaWNpZXRlXG4vLyBhdXRvLXBsYWF0c2luZyBvdmVyIGRlIDMga29sb21tZW4gaGllcmJvdmVuLiBab25kZXIgbmFtZW4gdmllbCBoZXRcbi8vIHNsdWl0a3J1aXNqZSBpbiBkZSBBQU5NQUFLU1RBTkQgKHdhYXIgLnB1bHNlLXdpei1lZGl0LXNlZy13cmFwW2hpZGRlbl0gZHVzXG4vLyBkaXNwbGF5Om5vbmUgaXMgZW4gbmlldCBtZWV0ZWx0KSB0ZXJ1ZyBvcCBkZSB0d2VlZGUg4oCUIGRlIE1JRERFTFNURSDigJQgdHJhY2ssXG4vLyB3YW50IGRhdCBpcyBkZSB2b2xnZW5kZSB2cmlqZSBjZWwgaW4gZGUgYXV0by1mbG93IGFscyBlciBtYWFyIHR3ZWUga2luZGVyZW5cbi8vIHppam4uIEluIGRlIGJld2Vya3N0YW5kIChkcmllIGtpbmRlcmVuKSB2aWVsIGhldCB0b2V2YWxsaWcgd8OpbCBnb2VkLiBNZXRcbi8vIGV4cGxpY2lldGUgYXJlYXMgcGFrdCBoZXQga3J1aXNqZSBBTFRJSkQgXCJjbG9zZVwiIChrb2xvbSAzKSwgbWV0IG9mIHpvbmRlclxuLy8gemljaHRiYWFyIHNlZ21lbnQg4oCUIHplbGZkZSBuYWFtZ2V2aW5nIGFscyBkZSB0ZWxlZm9vbnZhcmlhbnQgKGthYXJ0IDkpXG4vLyBoaWVyb25kZXIsIGRpZSBhbCB0aXRsZS9zZWcvY2xvc2UgZ2VicnVpa3RlLlxuLnB1bHNlLXdpei1oZHIge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSBhdXRvIG1pbm1heCgwLCAxZnIpO1xuICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6IFwibGVmdCBzZWcgY2xvc2VcIjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgJi1sZWZ0IHtcbiAgICAgICAgZ3JpZC1hcmVhOiBsZWZ0O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cblxuICAgICYtdGl0bGUge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgICYtcGlsbCB7IGZsZXgtc2hyaW5rOiAwOyB9XG59XG4ucHVsc2Utd2l6LWVkaXQtc2VnLXdyYXAgeyBncmlkLWFyZWE6IHNlZzsganVzdGlmeS1zZWxmOiBjZW50ZXI7IHBhZGRpbmc6IDA7IH1cbi5wdWxzZS13aXotY2xvc2UtYnRuIHsgZ3JpZC1hcmVhOiBjbG9zZTsganVzdGlmeS1zZWxmOiBlbmQ7IH1cblxuI3B1bHNlLXN0ZXAtbW9kYWwge1xuICAgIC5wdWxzZS1zbS1oZHItbGVmdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIH1cbiAgICAucHVsc2Utc20taGRyLXRpdGxlLXNocnVuayB7XG4gICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbiAgICAucHVsc2Utc20taGRyLXBpbGwgeyBmbGV4LXNocmluazogMDsgfVxufVxuXG4ucHVsc2Utd2l6LXNjcm9sbCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBhZGRpbmc6IDE2cHggMjBweCAyMHB4O1xufVxuXG4ucHVsc2Utd2l6LWZ0ciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEycHg7XG4gICAgcGFkZGluZzogMTRweCAyMHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LCAjZTVlNWVhKTtcbiAgICBmbGV4LXNocmluazogMDtcbn1cbi5wdWxzZS13aXotZnRyLXJpZ2h0IHsgZGlzcGxheTogZmxleDsgZ2FwOiA4cHg7IH1cbi8qIC5wdWxzZS13aXotZnRyLWxlZnQgaXMgbGVlZyBvcCBzdGFwIDEgKGdlZW4gdGVydWdrbm9wKTsgYGp1c3RpZnktY29udGVudDpcbiAgIHNwYWNlLWJldHdlZW5gIG9wIGRlIHZvZXQgaG91ZHQgZGUgcmVjaHRlcmtub3BwZW4gZGFuIHRvY2ggcmVjaHRzLiAqL1xuLnB1bHNlLXdpei1iYWNrLWJ0biBxZG5hcHJvLWljb24geyBtYXJnaW4tcmlnaHQ6IDRweDsgfVxuLnB1bHNlLXdpei1uZXh0LWJ0biBxZG5hcHJvLWljb24geyBtYXJnaW4tbGVmdDogNHB4OyB9XG5cbi8qIFN0YXAgMSAoa2FhcnQgMTcsIEtpbXMgRmlnbWEpOiBHRUNFTlRSRUVSREUgcGFhcnNlIGtvbG9tdGl0ZWwgYm92ZW4gw6nDqW5cbiAgIHJpamtlIHZvb3JiZWVsZGthYXJ0IHBlciBvcG1hYWt2YXJpYW50IOKAlCBnZWVuIGJlc2NocmlqdmVuZGUgemluIG1lZXIuICovXG4ucHVsc2Utd2l6LWNhcmRzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcbiAgICAvKiBLYWFydCAxN2MsIHB1bnQgMjogcmlqIGV4cGxpY2lldCBvcCBzdHJldGNoIHpvZGF0IGVsa2Uga29sb20gKGdyaWQtaXRlbSlcbiAgICAgICBkZSBob29ndGUgdmFuIGRlIGxhbmdzdGUga29sb20ga3Jpamd0IChLaW1zIGZlZWRiYWNrOiBcImRlIGtvbG9tbWVucmlqXG4gICAgICAgb3Agc3RyZXRjaFwiKS4gR3JpZCBkb2V0IGRpdCBhbCBzdGFuZGFhcmQsIG1hYXIgZGUgZGFhZHdlcmtlbGlqa2UgZ2VsaWprZVxuICAgICAgIGhvb2d0ZSBtb2V0IGRhYXJuYSBub2cgZG9vcmdlemV0IHdvcmRlbiBuYWFyIGRlIGthYXJ0IHplbGYgKHppZVxuICAgICAgIC5wdWxzZS13aXotY2FyZCBoaWVyb25kZXIpLCBhbmRlcnMgYmxpamZ0IGRlIEtBQVJUIHplbGYgb25nZWxpamsuICovXG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgZ2FwOiAxNnB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICAgLnB1bHNlLXdpei1jYXJkcyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcik7IH1cbn1cbi5wdWxzZS13aXotY29sIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxMHB4OyBoZWlnaHQ6IDEwMCU7IH1cbi8qIEthYXJ0IDE1Yi1zdGlqbCB0b2tlbmlzYXRpZTogLS1jLWJyYW5kLXB1cnBsZSBpcyBoaWVyIGFsIGRlIHZhc3RlXG4gICBtZXJrcGFhcnMtdGl0ZWxrbGV1ciAoemVsZmRlIHRva2VuIGFscyAucHVsc2Utd2l6LWhkci10aXRsZSkuICovXG4ucHVsc2Utd2l6LWNvbC10aXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTMuNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzM5NDI5MCk7XG59XG4ucHVsc2Utd2l6LWNhcmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAvKiBLYWFydCAxN2MsIHB1bnQgMjogZGUga2FhcnQgdnVsdCBkZSByZXN0ZXJlbmRlIGhvb2d0ZSB2YW4gLnB1bHNlLXdpei1jb2xcbiAgICAgICAoY29sIHN0YWF0IGhpZXJib3ZlbiBhbCBvcCBoZWlnaHQ6MTAwJSB2aWEgZGUgZ3JpZC1zdHJldGNoKS4gS2ltIHNjaHJlZWZcbiAgICAgICBcImRlIGthYXJ0ZW4gb3AgaGVpZ2h0IDEwMCVcIjsgZWVuIGxldHRlcmxpamtlIGhlaWdodDoxMDAlIHpvdSBoaWVyIGRlXG4gICAgICAga29sb210aXRlbCAoaDQucHVsc2Utd2l6LWNvbC10aXRsZSwgZGV6ZWxmZGUgZmxleC1jb2x1bW4pIG92ZXJsYXBwZW5cbiAgICAgICBvbWRhdCBwZXJjZW50YWdlLWhvb2d0ZSBkZSBydWltdGUgdmFuIGVlbiBzaWJsaW5nIG5pZXQgYWZ0cmVrdC4gZmxleDoxXG4gICAgICAgZ2VlZnQgaGV0emVsZmRlIHppY2h0YmFyZSByZXN1bHRhYXQgKGthYXJ0IHZ1bHQgZGUgcmVzdCB2YW4gZGUga29sb20sXG4gICAgICAgYWxsZSBkcmllIGthYXJ0ZW4gZXZlbiBob29nKSB6b25kZXIgZGllIG92ZXJsYXAuICovXG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LCAjZTVlNWVhKTtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAvKiBLYWFydCAxN2Q6IGRlIGdlbWV0ZW4gb29yemFhayB2YW4gZGUgb256aWNodGJhcmUgc2VsZWN0aWUtcmluZyB3YXMgTklFVFxuICAgICAgIGVlbiBvdmVyc2NocmV2ZW4gcmVnZWwsIGNsaXBwaW5nIG9mIHNwZWNpZmljaXRlaXQg4oCUIGRlIFNDU1MtcmVnZWxcbiAgICAgICAucHVsc2Utd2l6LWNhcmQuaXMtc2VsZWN0ZWQgaGllcm9uZGVyIHdhcyBlbiBpcyBjb3JyZWN0IGVuIGNvbXBpbGVlcnRcbiAgICAgICBwcmltYS4gRGUgcmluZyBrb210IG9wIGRvb3IgZGV6ZSB0cmFuc2l0aWVsaWpzdCwgZGllIHRvdCBlbiBtZXQga2FhcnRcbiAgICAgICAxN2Mgb29rIGJveC1zaGFkb3cgYmV2YXR0ZS4gYG9wZW5XaXphcmQoKWAgKHZpZXcgKyBoYXJuYXMpIHRvZ2dlbHRcbiAgICAgICBgaXMtc2VsZWN0ZWRgIGJpaiBFTEtFIG5pZXV3ZS9oZXJzdGFydCB3aXphcmQtc2Vzc2llIG9wbmlldXcgb3AgQUxMRVxuICAgICAgIGthYXJ0ZW4gKHJlc2V0IG5hYXIgS2xhc3NpZWspIOKAlCDDs8OzayB3YW5uZWVyIGRlIHZvcmlnZSBzZXNzaWUgZWVuXG4gICAgICAgQU5ERVJFIGthYXJ0IGhhZCBnZWtvemVuIChidi4gbmEgXCJUZWtzdCBvcCBhY2h0ZXJncm9uZFwiIHRlc3RlbiBlbiBkZVxuICAgICAgIHdpemFyZCBvcG5pZXV3IG9wZW5lbikuIE9wIGRhdCBtb21lbnQga3JpamdlbiBUV0VFIGthYXJ0ZW4gaW5cbiAgICAgICBkZXplbGZkZSB0aWNrIGVlbiBlY2h0ZSBjbGFzcy13aWp6aWdpbmc6IEtsYXNzaWVrIFdJTlQgYGlzLXNlbGVjdGVkYCxcbiAgICAgICBkZSB2b3JpZ2Uga2FhcnQgVkVSTElFU1QgaGVtLiBNZXQgYm94LXNoYWRvdyBpbiBkZSB0cmFuc2l0aWVsaWpzdFxuICAgICAgIEFOSU1FRVJUIGRpZSB3aXNzZWwgb3ZlciAxMjBtcyDigJQgZW4gbWV0ZWVuIG5hIGRlIGNsYXNzLXRvZ2dsZSAob2YgZWVuXG4gICAgICAgaGVhZGxlc3Mgc2NyZWVuc2hvdCBkaWUgaGV0IGZyYW1lIG9wIHTiiYgwIHZhbiBkaWUgdHJhbnNpdGllIHZhc3RsZWd0LFxuICAgICAgIHByZWNpZXMgd2F0IC0tdmlydHVhbC10aW1lLWJ1ZGdldCBkb2V0KSBzdGFhdCBkZSBhbmltYXRpZSBub2cgb3AgemlqblxuICAgICAgIFNUQVJUd2FhcmRlOiBkZSBrYWFydCBkaWUgZGUgcmluZyBLUklKR1QgdG9vbnQgJ20gbm9nIG5pZXQgKHN0YXJ0ID1cbiAgICAgICBcImdlZW4gc2NoYWR1d1wiLCBkZXplbGZkZSB2b3JtIG1hYXIgcmdiYSgwLDAsMCwwKSksIGRlIGthYXJ0IGRpZSBoZW1cbiAgICAgICBWRVJMSUVTVCB0b29udCAnbSBub2cgc3RlZWRzIFZPTCAoc3RhcnQgPSBkZSBvdWRlLCBub2cgbmlldCB2ZXJ2YWFnZGVcbiAgICAgICByaW5nKS4gQmV2ZXN0aWdkIHZpYSBkZSB3aXpob2xkLWhvb2sgaW4gaGV0IGhhcm5hcywgb3AgaGV0emVsZmRlXG4gICAgICAgbW9tZW50OiBcImNvbXB1dGVkIGNsYXNzaWMgaXMtc2VsZWN0ZWQ9dHJ1ZSB8IGJveFNoYWRvdz1yZ2JhKDAsIDAsIDAsXG4gICAgICAgMCkgMHB4IDBweCAwcHggMHB4LCAuLi5cIiAobW9ldCBkZSByaW5nIGhlYmJlbiwgdG9vbnQgJ20gbm9nIG5pZXQpIHZzLlxuICAgICAgIFwiY29tcHV0ZWQgYmFja2dyb3VuZCBpcy1zZWxlY3RlZD1mYWxzZSB8IGJveFNoYWRvdz1yZ2IoMTY1LCAxNzIsXG4gICAgICAgMjU1KSAuLi4gcmdiYSg3MCwgODIsIDI0MywgMC4yNSkgLi4uXCIgKG1hZyBoZW0gbmlldCBoZWJiZW4sIHRvb250ICdtXG4gICAgICAgbm9nIHfDqWwpIOKAlCBleGFjdCBkZSBpcy1zZWxlY3RlZC1rbGV1cmVuIG9wIGRlIGthYXJ0IGRpZSBkZSBjbGFzcyBuZXRcbiAgICAgICBrd2lqdCBpcy4gRml4OiBib3gtc2hhZG93IE5JRVQgbWVlciBhbmltZXJlbiBvcCBkZXplIGthYXJ0IOKAlFxuICAgICAgIGJvcmRlci1jb2xvci9iYWNrZ3JvdW5kLWNvbG9yIGJsaWp2ZW4gemFjaHQgb3ZlcnZsb2VpZW4gKGhvdmVyL1xuICAgICAgIGFjdGl2ZSksIG1hYXIgZGUgc2VsZWN0aWUtcmluZyB2ZXJzY2hpam50L3ZlcmR3aWpudCBESVJFQ1Qgem9kcmEgZGVcbiAgICAgICBjbGFzcyB3aXNzZWx0LCB6b2RhdCBoaWogbm9vaXQgbWVlciBvcCBlZW4gdHVzc2VudGlqZHNlIChvbmp1aXN0ZSlcbiAgICAgICBhbmltYXRpZXN0YW5kIGdldmFuZ2VuIGthbiB3b3JkZW4g4oCUIG9vayBuaWV0IGJpaiBlZW4gcmVzZXQgbmFhclxuICAgICAgIEtsYXNzaWVrLiAqL1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAxMjBtcyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2U7XG59XG4vKiBIb3Zlci9wcmVzc2VkL3NlbGVjdGVkIG1ldCBkZSBiZXN0YWFuZGUgZm9jdXMtcmluZy10b2tlbnMgKGJlc2x1aXQgNCksXG4gICB6ZWxmZGUgcmVjZXB0IGFscyAucWRuYXByby1iYWNrZ3JvdW5kLXBpY2tlcidzIHRlZ2Vscy5cbiAgIEthYXJ0IDE3YyAoS2ltcyB2aXN1ZWxlIHJldmlldywgcHVudGVuIDEvMy80KTpcbiAgIC0gZ2VlbiB0cmFuc2Zvcm0vdHJhbnNsYXRlWS9zY2FsZSBtZWVyIG9wIDpob3ZlciBvZiA6YWN0aXZlIChwdW50IDMpO1xuICAgLSBoZXQgcHJlc3NlZC1wYXRyb29uIGlzIDEtb3AtMSBnZXNwaWVnZWxkIHZhbiBkZSBrbm9wLWNvbXBvbmVudFxuICAgICAoY29tcG9uZW50cy92Mi9idXR0b24vX2J1dHRvbi5zY3NzLCAuYnV0dG9uLXNlY29uZGFyeS1vdXRsaW5lIGVuXG4gICAgIC5idXR0b24tc2Vjb25kYXJ5LXB1cnBsZTogOmhvdmVyID0gZWVuIGxpY2h0ZSBhY2h0ZXJncm9uZHRpbnQsIDphY3RpdmUgPVxuICAgICBlZW4gaWV0cyBkaWVwZXJlIHRpbnQgdmFuIGRlemVsZmRlIGtsZXVyZmFtaWxpZSwgR0VFTiB0cmFuc2Zvcm0gZW4gR0VFTlxuICAgICBleHRyYSBib3gtc2hhZG93IG9wIDphY3RpdmUg4oCUIGRlIGtub3AtY29tcG9uZW50IGRvZXQgZGF0IG5lcmdlbnM7IHB1bnQgNCkuICovXG4ucHVsc2Utd2l6LWNhcmQ6aG92ZXIgIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS0zMDAsICNhOWFkZGUpOyB9ICAvKiBLaW0gMjQuMDg6IGhvdmVyIHZlcmZ0IE5JRVQsIGFsbGVlbiBkZSByYW5kIGtsZXVydC4gKi9cbi5wdWxzZS13aXotY2FyZDphY3RpdmUgeyBib3JkZXItY29sb3I6IHZhcigtLWMtcHVycGxlLTMwMCwgI2E5YWRkZSk7IGJhY2tncm91bmQ6IHZhcigtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0LCAjZDRkOGVlKTsgfVxuLyogS2ltcyByZXZpZXcgMjQuMDggKHR3ZWVkZSByb25kZSk6IG9wIGRlIEVDSFRFIHBhZ2luYSBsYWFkdCBkZSB2MS1oZWFkZXJcbiAgIGJvb3RzdHJhcC5taW4uY3NzLCBlbiBkaWUgemV0IGBidXR0b246Zm9jdXMgeyBvdXRsaW5lOiA1cHggYXV0b1xuICAgLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yIH1gIG9wIEVMS0Uga25vcC4gRGV6ZSBrYWFydGVuIHppam4gYnV0dG9ucywgZHVzXG4gICBlZW4gZWNodGUgbXVpc2tsaWsgKGRpZSB3ZWwgOmZvY3VzIGdlZWZ0IG1hYXIgZ2VlbiA6Zm9jdXMtdmlzaWJsZSkga3JlZWdcbiAgIGRhYXJkb29yIGFsc25vZyBkZSBoYXJkZSBibGF1d2Ugc3lzdGVlbS1yaW5nIHJvbmQgZGUga2FhcnQg4oCUIGRlXG4gICA6Zm9jdXMtdmlzaWJsZS1yZWdlbCBoaWVyb25kZXIga29uIGRhdCBuaWV0IG9wdmFuZ2VuLiBJbiBoZXQgc3RhdGlzY2hlXG4gICBoYXJuYXMgKF9wdWxzZS1tb2RhbC1oYXJuZXNzLmh0bWwpIGxhYWR0IGJvb3RzdHJhcCBuaWV0LCBkYWFyb20gd2FzIGhldFxuICAgZGFhciBuaWV0IHRlIHppZW4uIERlemUgcmVnZWwgemV0IGRlIGJvb3RzdHJhcC1vdXRsaW5lIHVpdCB2b29yIEFMTEVcbiAgIGZvY3Vzc3RhbmRlbjsgZGUgemljaHRiYXJlIGZvY3VzbWFya2VyaW5nIGJsaWpmdCBkZSB6YWNodGUgbGljaHRwYWFyc2VcbiAgIGR1YmJlbGUgcmluZyBoaWVyb25kZXIuICovXG4ucHVsc2Utd2l6LWNhcmQ6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG4ucHVsc2Utd2l6LWNhcmQ6Zm9jdXMtdmlzaWJsZSB7XG4gICAgLyogS2ltcyByZXZpZXcgMjQuMDg6IG5ldmVyIHRoZSBoYXJkIGRhcmsgcmluZyBvbiB0aGVzZSBjYXJkcy4gRm9jdXMgdXNlc1xuICAgICAgIHRoZSBTQU1FIHNvZnQgbGlnaHQtcHVycGxlIGRvdWJsZSByaW5nIGFzIC5pcy1zZWxlY3RlZCwgc28gYSBjbGljayAob3JcbiAgICAgICBwcm9ncmFtbWF0aWMgZm9jdXMpIGNhbiBuZXZlciBwYWludCB0aGUgaGFyc2ggYmx1ZSBpbm5lciBib3JkZXIuICovXG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tYy1wdXJwbGUtMjAwLCAjYTVhY2ZmKSwgMCAwIDAgNXB4IHZhcigtLWZvY3VzLWdsb3csIHJnYmEoODMsIDc0LCAxODMsIC4xOCkpO1xufVxuLyogS2FhcnQgMTdjLCBwdW50IDE6IGRlIGRpa2tlIGRvbmtlcnBhYXJzZSByYW5kIGJpaiBzZWxlY3RpZSB3YXMgdGUgaGFyZC5cbiAgIERlIGdlc2VsZWN0ZWVyZGUga2FhcnQgaG91ZHQgbnUgYWxsZWVuIGVlbiBkdW5uZSBsaWNodHBhYXJzZSByYW5kXG4gICAoLS1jLXB1cnBsZS0yMDApIHBsdXMgZGUgemFjaHRlIGdsb3cgZXJvbWhlZW4gKC0tZm9jdXMtZ2xvdykg4oCUIGdlZW4gaGFyZGVcbiAgIDJweCAtLWZvY3VzLXJpbmcgbGFhZyBtZWVyLiAqL1xuLnB1bHNlLXdpei1jYXJkLmlzLXNlbGVjdGVkIHtcbiAgICAvKiBLYWFydCAxN2Q6IGRlIFNPRlQgbGljaHRwYWFyc2UgZHViYmVsZSByaW5nICh6b2FscyBkZSBmb2N1c3JpbmcsIG1hYXJcbiAgICAgICBsaWNodHBhYXJzLCBub29pdCBkZSBoYXJkZSBkb25rZXJlIHJhbmQpOiBkdW5uZSBwdXJwbGUtMjAwLXJpbmcgcGx1cyBkZVxuICAgICAgIHphY2h0ZSBnbG93LiBEZXplIHJpbmcgdmVyc2NoaWpudCBhbHRpamQgRElSRUNUIOKAlCB6aWUgaGV0IFwidHJhbnNpdGlvblwiLVxuICAgICAgIGNvbW1lbnRhYXIgYmlqIGRlIGJhc2lzcmVnZWwgLnB1bHNlLXdpei1jYXJkIGhpZXJib3ZlbiB2b29yIHdhYXJvbVxuICAgICAgIGJveC1zaGFkb3cgZGFhciBiZXd1c3QgTklFVCBtZWVyIGluIGRlIHRyYW5zaXRpZWxpanN0IHN0YWF0LiAqL1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtMjAwLCAjYTVhY2ZmKTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tYy1wdXJwbGUtMjAwLCAjYTVhY2ZmKSwgMCAwIDAgNXB4IHZhcigtLWZvY3VzLWdsb3csIHJnYmEoODMsIDc0LCAxODMsIC4xOCkpO1xufVxuLyogRGUga2FhcnQtaW5ob3VkICh2cmFhZy9zdWJ0ZWtzdC9waWxsZW4pIGtyaWpndCB6aWpuIGVpZ2VuIGJpbm5lbmthbnQsIHdhbnRcbiAgIGRlIGlsbHVzdHJhdGllL2NhbnZhcyBoaWVyYm92ZW4gbG9vcHQgYmV3dXN0IHRvdCBkZSBrYWFydHJhbmQgKGJvcmRlcmxlc3MsXG4gICBLaW1zIGFubm90YXRpZSkuICovXG4ucHVsc2Utd2l6LWNhcmQtcSAgIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDEwcHggMTJweCAycHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMWMxZTJhKTtcbn1cbi5wdWxzZS13aXotY2FyZC1zdWIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCAxMnB4IDEwcHg7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xufVxuLyogRGUgdHdlZSB2b29yYmVlbGRwaWxsZW46IGtsaWtrZW4gbW9ldCBkZSBLQUFSVCBzZWxlY3RlcmVuLCBuaWV0IGRlIHBpbFxuICAgXCJhYW56ZXR0ZW5cIiDigJQgdmFuZGFhciBwb2ludGVyLWV2ZW50czpub25lIG9wIGRlIHdyYXBwZXIgKGRlY29yYXRpZWYpLiAqL1xuLnB1bHNlLXdpei1jYXJkLWFuc3dlcnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDZweDtcbiAgICBtYXJnaW46IDAgMTJweCAxMnB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnB1bHNlLXdpei1jYXJkLWFuc3dlcnMgcWRuYXByby1hbnN3ZXItYnV0dG9uIHsgd2lkdGg6IDEwMCU7IH1cblxuLyogS2xhc3NpZWs6IGJvcmRlcmxlc3MgaWxsdXN0cmF0aWUgb3ZlciBkZSB2b2xsZSBrYWFydGJyZWVkdGUgKGthYXJ0IDE3ZCDigJRcbiAgIEtpbXMgcmFrZXQtaWxsdXN0cmF0aWUsIGNvdmVyLWZpdCwgZ2VlbiB2ZXJ2b3JtaW5nKS4gRGUgYWNodGVyZ3JvbmRrbGV1clxuICAgYmxpamZ0IHN0YWFuIGFscyBsYWFkdmFsL2ZhbGxiYWNrLWtsZXVyIG9uZGVyIGRlIDxpbWc+ICh6aWNodGJhYXIgaW4gZGVcbiAgIHJhbmQgYWxzIGhldCBiZWVsZCBuaWV0IGxhYWR0KSwgbmlldCBhbHMgemljaHRiYWFyIHZsYWsgZXJvbWhlZW4g4oCUIGRlXG4gICBpbGx1c3RyYXRpZSB2dWx0IGRlIGhlbGUgaG9vZ3RlL2JyZWVkdGUgdmFuIGRpdCBrYWRlci4gKi9cbi8qIEtpbXMgcmV2aWV3IDI0LjA4IChkZXJkZSByb25kZSk6IGRlIGRyaWUgdm9vcmJlZWxka2FhcnRlbiBtb2V0ZW4gaHVuXG4gICBBTlRXT09SRE9QVElFUyBvcCBleGFjdCBkZXplbGZkZSBob29ndGUgaGViYmVuLCBtZXQgZGUgbWlkZGVsc3RlIGthYXJ0XG4gICAoXCJUZWtzdCBvcCBhY2h0ZXJncm9uZFwiKSBhbHMgZ29lZGUgdm9vcmJlZWxkLiBEZSBrYWFydGVuIHdhcmVuIGFsIGV2ZW5cbiAgIGhvb2cgKGZsZXg6MSBoaWVyYm92ZW4pLCBtYWFyIGRlIGluaG91ZCBzdGFwZWxkZSBpbiBhbGxlIGRyaWUgdmFuIGJvdmVuXG4gICBhZiBlbiBuaWV0cyB2dWxkZSBkZSByZXN0cnVpbXRlLCBkdXMgc3RvbmQgZGUgZWVyc3RlIHBpbCBvcCAxNzcgKEtsYXNzaWVrKVxuICAgLyAzMDkgKG1pZGRlbHN0ZSkgLyAxMjkgKFZyaWogdm9ybWdldmVuKSBweCDigJQgZ2VtZXRlbiBtZXQgZGUgcGlsbWV0aW5nIGluXG4gICBfcHVsc2UtbW9kYWwtaGFybmVzcy5odG1sICg/d2l6aG9sZD1zdGVwMSkuXG4gICBIZXQgcmVjZXB0OiBwZXIga2FhcnQgc2xva3QgRUVOIGJsb2sgZGUgcmVzdHJ1aW10ZSBvcCAoZmxleC1ncm93KSwgZW4gZGVcbiAgIHBpbGxlbiB6aWpuIG92ZXJhbCBoZXQgbGFhdHN0ZSBlbGVtZW50IG1ldCBkZXplbGZkZSBvbmRlcm1hcmdlLiBEYW4gdmFsdFxuICAgZGUgYm92ZW5rYW50IHZhbiBkZSBlZXJzdGUgcGlsIGF1dG9tYXRpc2NoIG9wIGRlemVsZmRlIGxpam4sIG9uZ2VhY2h0IG9mXG4gICBlciBib3ZlbiBkZSBwaWxsZW4gZWVuIHZyYWFnICsgc3VidGVrc3Qgc3RhYXQgKEtsYXNzaWVrKSwgYWxsZWVuIGVlblxuICAgc3VidGVrc3QgKG1pZGRlbHN0ZSkgb2YgbmlldHMgKFZyaWogdm9ybWdldmVuKS4gSG9vZ3RlcyBtZXQgZGUgaGFuZFxuICAgZ2VsaWpremV0dGVuIHpvdSBicmVrZW4gem9kcmEgZWVuIHZlcnRhbGluZyBlZW4gcmVnZWwgbGFuZ2VyIHdvcmR0LlxuICAgSGllciBpcyBkYXQgaGV0IGlsbHVzdHJhdGlla2FkZXI6IGdlZW4gVkFTVEUgOTZweCBtZWVyIG1hYXIgOTZweCBhbHNcbiAgIE1JTklNVU0gcGx1cyBmbGV4LWdyb3csIHpvZGF0IGhldCBiZWVsZCBkb29yZ3JvZWl0IHRvdCBoZXQgbmV0IHpvIGdyb290XG4gICBpcyBhbHMgaGV0IGFjaHRlcmdyb25kdmxhayB2YW4gZGUgbWlkZGVsc3RlIGthYXJ0IChLaW1zIGFubm90YXRpZTpcbiAgIFwiYWZiZWVsZGluZyBkdXMgbmV0IHpvIGdyb290IGFscyBpbiBkZSBtaWRkZWxzdGUgb3B0aWVcIikuXG4gICDimqDvuI8gYHBvc2l0aW9uOiByZWxhdGl2ZWAgaGllciArIGBwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwYCBvcCBkZSA8aW1nPlxuICAgKHppZSBoaWVyb25kZXIpIGlzIEdFRU4gb3BzbXVrOiBoZXQgaXMgZGUgZW5pZ2Ugc3RhbmQgZGllIGluIEJFSURFIGxheW91dHNcbiAgIGtsb3B0LiBEZSBpbWcgc3RvbmQgb3Agd2lkdGgvaGVpZ2h0IDEwMCUuIFpvZHJhIGRlIGhvb2d0ZSB2YW4gZGl0IGthZGVyXG4gICBuaWV0IG1lZXIgVkFTVCBpcyAoOTZweCkgbWFhciBkb29yIGZsZXgtZ3JvdyBiZXBhYWxkIHdvcmR0LCByZXNvbHZ0IGRpZVxuICAgaGVpZ2h0OjEwMCUgbmlldCBpbiBkZSBHRVNUQVBFTERFIHN0YW5kICg8PSA5MDBweCwgw6nDqW4ga29sb20sIGF1dG8tcmlqOlxuICAgZ2VlbiBkZWZpbml0aWV2ZSBvdWRlcmhvb2d0ZSBvbSB0ZWdlbiB0ZSByZWtlbmVuKSDigJQgZGUgaW1nIHZhbHQgZGFuIHRlcnVnXG4gICBvcCB6aWpuIGludHJpbnNpZWtlIHZlcmhvdWRpbmcgZW4gd2VyZCBiaWogODIwcHggdmlld3BvcnQgfjQ5M3B4IGhvb2csXG4gICB3YWFyZG9vciBkZSBrbGFzc2lla2Uga2FhcnQgNjM4cHggd2VyZCBpLnAudi4gfjIwMHB4LiBHZW1ldGVuIG1ldCBkZVxuICAgcGlsbWV0aW5nIGluIGhldCBoYXJuYXMgb3AgLS13aW5kb3ctc2l6ZT04MjAuIEFic29sdXRlIHBvc2l0aW9uZXJpbmdcbiAgIGJpbm5lbiBlZW4gcmVsYXRpdmUga2FkZXIgdnVsdCBhbHRpamQgZXhhY3QgaGV0IGthZGVyLCBvZiBkZSBob29ndGUgbnVcbiAgIHZhbiBmbGV4LWdyb3csIHZhbiBkZSBtaW4taGVpZ2h0IG9mIHZhbiBlZW4gbWVkaWEtcXVlcnkga29tdC4gKi9cbi5wdWxzZS13aXotY2FyZC1pbGx1c3RyYXRpb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiA5NnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlLCAjZjNmNGZiKTtcbn1cbi8qIENvdmVyICsgY2VudGVyLXRvcC1pc2g6IGhldCBvbmRlcndlcnAgKGdlemljaHQgKyByYWtldCkgc3RhYXQgaW4gaGV0XG4gICBCT1ZFTlNURSBkZWVsIHZhbiBkZSBpbGx1c3RyYXRpZSAoMjc0MngxODI4LCBrb3Agcm9uZCB54omIMTUwLTQ1MCwgcmFrZXRcbiAgIHJvbmQgeeKJiDI1MC03NTApIOKAlCBiaWogZWVuIGJyZWRlL2xhZ2Uga2FhcnQgKGNvdmVyIHNjaGFhbHQgb3AgYnJlZWR0ZSxcbiAgIGR1cyBkZSBob29ndGUgd29yZHQgYWZnZWthcHQpIGxhYXQgZWVuIHB1cmUgY2VudGVyLWNlbnRlci1jcm9wIHRlIHZlZWxcbiAgIHZhbiBoZXQgYm92ZW5zdGUgaG9vZmQvaGFhciB3ZWcgZW4gdGUgdmVlbCBsdWNodC9yb29rIG9uZGVyaW4gc3RhYW4uXG4gICBvYmplY3QtcG9zaXRpb246IGNlbnRlciAyNSUgZ2V0ZXN0IG1ldCBkZSBkYWFkd2Vya2VsaWprZSBicmVlZHRlL2hvb2d0ZS1cbiAgIHZlcmhvdWRpbmcgdmFuIGRpdCBrYWRlcjogaG91ZHQgZ2V6aWNodCDDiU4gcmFrZXQgZ29lZCBpbiBiZWVsZC4gS2ltc1xuICAgcmV2aWV3IDI0LjA4IChkZXJkZSByb25kZSkgbWFha3QgZGl0IGthZGVyIGhvZ2VyICh+MjgweDI0NiBpLnAudi5cbiAgIH4yODB4OTYsIHppZSAucHVsc2Utd2l6LWNhcmQtaWxsdXN0cmF0aW9uIGhpZXJib3Zlbikg4oCUIG9wbmlldXcgZ2VtZXRlbjpcbiAgIGJpaiBkaWUgaG9nZXJlIHZlcmhvdWRpbmcgd29yZHQgZXIgTUlOREVSIGhvb2d0ZSBhZmdla2FwdCwgZHVzIGJsaWpmdFxuICAgY2VudGVyIDI1JSBnb2VkIHN0YWFuIGVuIGhvZWZ0IGhldCBicmFuZHB1bnQgbmlldCBtZWUgdGUgdmVyc2NodWl2ZW4uICovXG4ucHVsc2Utd2l6LWNhcmQtaWxsdXN0cmF0aW9uLWltZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBvYmplY3QtcG9zaXRpb246IGNlbnRlciAyNSU7XG59XG5cbi8qIFRla3N0IG9wIGFjaHRlcmdyb25kOiBkZSBib3ZlbnN0ZSB+NTUlIHZhbiBkZSBrYWFydCBpcyBkZSBzY8OobmUtY2FudmFzXG4gICAocWRuYXByby1wdWxzZS1jYW52YXMsIFdFRVJHQVZFKSBtZXQgZGUgdnJhYWcgZ2VjZW50cmVlcmQgZXJvcDsgZGUgcmVzdFxuICAgdmFuIGRlIGthYXJ0IChzdWJ0ZWtzdCArIHBpbGxlbikgYmxpamZ0IHdpdC4gKi9cbi5wdWxzZS13aXotY2FyZC0tYmFja2dyb3VuZCB7IHBhZGRpbmc6IDA7IH1cbi5wdWxzZS13aXotY2FyZC1iZ2NhbnZhcyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLyogMjguMDguMjAyNjogMTYvMTAgZW4gTklFVCAxNi85LiBEZSBjcm9wIGRpZSBkZSBnZWJydWlrZXIgbW9ldCBkb29ybG9wZW5cbiAgICAgICAoUFVMU0VfUEhPVE9fQ1JPUF9SQVRJTyBpbiBkZXRhaWwuaHRtbCksIGhldCBjb21wb25lbnQgemVsZiBlbiBkZSBrYWFydCBpblxuICAgICAgIGRlIGFwcCBzdGFhbiBhbGxlIGRyaWUgb3AgMTYvMTA7IGFsbGVlbiBkZSB3aXphcmQtZnJhbWVzIHN0b25kZW4gb3AgMTYvOS5cbiAgICAgICBEYWFyZG9vciBvbnR3aWVycCBqZSBvcCBlZW4gYW5kZXIgdmxhayBkYW4gamUgdGVydWdrcmVlZywgd2F0IHByZWNpZXMgZGVcbiAgICAgICBrbGFjaHQgdmFuIEtpbSB3YXMgKCdkZSB2ZXJob3VkaW5nZW4gbW9ldGVuIGdlbGlqayB6aWpuJykuICovXG4gICAgYXNwZWN0LXJhdGlvOiAxNiAvIDEwO1xufVxuLnB1bHNlLXdpei1jYXJkLWJnY2FudmFzIHFkbmFwcm8tcHVsc2UtY2FudmFzIHsgZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGJvcmRlci1yYWRpdXM6IDA7IH1cbi5wdWxzZS13aXotY2FyZC1ib2R5IHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgcGFkZGluZy10b3A6IDEwcHg7IH1cbi5wdWxzZS13aXotY2FyZC1ib2R5IC5wdWxzZS13aXotY2FyZC1zdWIgeyBtYXJnaW4tdG9wOiAwOyB9XG5cbi8qIFZyaWogdm9ybWdldmVuOiBib3ZlbmFhbiBkZSB2cmFhZywgZGFuIGVlbiBrbGVpbmUgYWZiZWVsZGluZyBMSU5LUyBtZXRcbiAgIHdyYXBwZW5kZSB1aXRsZWd0ZWtzdCBlcm9taGVlbiAoZmxvYXQsIEtpbXMgYW5ub3RhdGllKSwgZGFuIGRlIHBpbGxlbi4gKi9cbi8qIEtpbXMgcmV2aWV3IDI0LjA4IChkZXJkZSByb25kZSk6IGRlIGBwYWRkaW5nLWJvdHRvbTogNHB4YCBkaWUgaGllciBzdG9uZFxuICAgaXMgd2VnLiBEZSBhbmRlcmUgdHdlZSBrYWFydGVuIGhlYmJlbiBwYWRkaW5nIDAgKHppZSAucHVsc2Utd2l6LWNhcmQpLFxuICAgZHVzIGRpZSA0cHggemV0dGUgZGUgcGlsbGVuIHZhbiBERVpFIGthYXJ0IHN0cnVjdHVyZWVsIDRweCBob2dlciBkYW4gZGVcbiAgIGFuZGVyZSB0d2VlIOKAlCBwcmVjaWVzIGhldCBzb29ydCB2ZXJzY2hpbCBkYXQgZGUgXCJnZWxpamtlIGhvb2d0ZVwiIGFsc25vZ1xuICAgbmV0IG5pZXQgaGFhbHQuIERlIG9uZGVybWFyZ2UgdmFuIGhldCBwaWxsZW5ibG9rICgxMnB4KSBpcyBudSBpbiBhbGxlXG4gICBkcmllIGRlIGthYXJ0ZW4gZGUgZW5pZ2UgcnVpbXRlIG9uZGVyIGRlIHBpbGxlbi4gKi9cbi8qIEtpbXMgcmV2aWV3IDI0LjA4IChWSUVSREUgcm9uZGUpOiBkZSBrYWFydCBtb2V0IExBVEVOIFpJRU4gZGF0IGplIGhpZXIgamVcbiAgIGVpZ2VuIGthZGVyIGJvdXd0LCBcImFscyBlZW4gc29vcnQgV29yZCwgbWV0IGZvdG8ncyBlbiB0ZWtzdCBuYWFzdCBlbGthYXJcIi5cbiAgIERlIG91ZGUgb3B6ZXQgKGVlbiA0MHg0MC1wbGFhdGplIGRhdCBpbiBkZSB0ZWtzdCB6d2VlZnQsIDExLjVweCBsZXR0ZXJzLFxuICAgZGFhcm9uZGVyIGVlbiBoYWxmIGxlZ2Uga2FhcnQpIGJlbG9vZmRlIGRhdCB3ZWwgbWFhciB0b29uZGUgaGV0IG5pZXQuXG4gICBOdSBlZW4gbWluaWF0dXVyLURPQ1VNRU5UOiBlaWdlbiBrb3AsIGJlZWxkIExJTktTIG1ldCBkZSB1aXRsZWcgRVJOQUFTVCxcbiAgIGRhYXJvbmRlciBlZW4gdHdlZWRlIGFsaW5lYSBvdmVyIGRlIHZvbGxlIGJyZWVkdGUsIGRhbiBwYXMgZGUgcGlsbGVuLlxuICAgRGl0IGJsb2sgaXMgbWV0ZWVuIG9vayBoZXQgYmxvayBkYXQgZGUgcmVzdHJ1aW10ZSBvcHNsb2t0IChmbGV4LWdyb3cpIOKAlFxuICAgemVsZmRlIHJlY2VwdCBhbHMgaGV0IGlsbHVzdHJhdGlla2FkZXIgYmlqIEtsYXNzaWVrIGVuIGhldCBhY2h0ZXJncm9uZC1cbiAgIHZsYWsgYmlqIGRlIG1pZGRlbHN0ZSBrYWFydCwgem9kYXQgZGUgZWVyc3RlIGFudHdvb3JkcGlsIGluIGFsbGUgZHJpZSBkZVxuICAga2FhcnRlbiBvcCBkZXplbGZkZSBob29ndGUgYmxpamZ0IHZhbGxlbi4gYGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbmBcbiAgIHZlcmRlZWx0IGRlIHdpbnN0IG92ZXIga29wL2JlZWxkcmlqL3Nsb3RhbGluZWEgaW4gcGxhYXRzIHZhbiBoZW0gYWxzIMOpw6luXG4gICBnYXQgb25kZXIgZGUgdGVrc3QgdGUgbGF0ZW4gc3RhYW4uICovXG4ucHVsc2Utd2l6LWNhcmQtZG9jIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTBweDtcbiAgICBtYXJnaW46IDEycHggMTJweCAxMnB4O1xuICAgIG1pbi13aWR0aDogMDtcbn1cbi8qIEVpZ2VuLCBHUk9URVJFIGtvcCBkYW4gLnB1bHNlLXdpei1jYXJkLXEgKDEzcHgsIGRlIGdlZGVlbGRlIGtvcCB2YW5cbiAgIEtsYXNzaWVrKTogYmlqIGRlemUgdmFyaWFudCBiZXBhYWwgamUgamUga29wcGVuIHplbGYsIGR1cyBsYWF0IGRlXG4gICB2b29yYmVlbGRrYWFydCBkYXQgb29rIHppZW4uICovXG4ucHVsc2Utd2l6LWNhcmQtZnJlZS1xIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYzFlMmEpO1xufVxuLyogQmVlbGQgZW4gdGVrc3QgTkFBU1QgZWxrYWFyIChLaW1zIEZpZ21hKS4gR2VlbiBmbG9hdCBtZWVyOiBiaWogZWVuIGZsb2F0XG4gICBsb29wdCBrb3J0ZSB0ZWtzdCBvbmRlciBoZXQgYmVlbGQgZG9vciBlbiBrcmlqZyBqZSBwcmVjaWVzIGhldCByb21tZWxpZ2VcbiAgIGJlZWxkIGRhdCBoaWVyIG5pZXQgbW9ldC4gRmxleCBob3VkdCBkZSB0d2VlIGtvbG9tbWVuIHN0cmFrIG5hYXN0IGVsa2FhclxuICAgZW4gbGFhdCBkZSB0ZWtzdCB6aWpuIGVpZ2VuIGtvbG9tIGhvdWRlbiwgb29rIGFscyBoaWogbGFuZ2VyIHdvcmR0LiAqL1xuLnB1bHNlLXdpei1jYXJkLWZyZWUtcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogMTBweDtcbiAgICBtaW4td2lkdGg6IDA7XG59XG4ucHVsc2Utd2l6LWNhcmQtZnJlZS1leHBsYWluIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIC8qIEtpbTogXCJkZSB0ZWtzdCBpcyB0ZSBrbGVpblwiLiAxMS41LzE2IC0+IDEyLjUvMTguICovXG4gICAgZm9udC1zaXplOiAxMi41cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xufVxuLyogRGUgc2xvdGFsaW5lYSBsb29wdCBiZXd1c3Qgb3ZlciBkZSBWT0xMRSBrYWFydGJyZWVkdGUgKGhldCBiZWVsZCBzdGFhdCBlclxuICAgbmlldCBtZWVyIG5hYXN0KSDigJQgZGF0IGlzIGhldCB0d2VlZGUgaGFsdmUgYmV3aWpzIHZhbiBcInZyaWogdm9ybWdldmVuXCI6XG4gICBuaWV0IGVsa2UgYWxpbmVhIGhvZWZ0IGRlemVsZmRlIHZvcm0gdGUgaGViYmVuLiAqL1xuLnB1bHNlLXdpei1jYXJkLWZyZWUtZXhwbGFpbi0tZnVsbCB7IGZsZXg6IDAgMCBhdXRvOyB9XG4vKiBLYWFydCAxN2QsIEtpbXMgZXhwbGljaWV0ZSBpbnN0cnVjdGllOiBkaXQga2FkZXJ0amUgaXMgdmllcmthbnQgKDQweDQwLFxuICAgbG9zIHZhbiBkZSA2cHggcGFkZGluZyBlcmJpbm5lbikgdGVyd2lqbCBkZSByYWtldC1pbGx1c3RyYXRpZSB6ZWxmXG4gICBMQU5EU0NBUEUgaXMgKDI3NDJ4MTgyOCwgfjEuNToxKSDigJQgb2JqZWN0LWZpdDpjb3ZlciBhbGxlZW4gem91IHpvbWFhclxuICAgbHVjaHQvcm9vayBsYXRlbiBzdGFhbiBpLnAudi4gaGV0IE9OREVSV0VSUCAoZGUgdnJvdXcgbWV0IGRlIHJha2V0KS5cbiAgIEdla296ZW4gYnJhbmRwdW50IChnZXZlcmlmaWVlcmQgbWV0IGVlbiAyMDB4MjAwLXRlc3Rjcm9wIGluIGhlYWRsZXNzXG4gICBDaHJvbWUsIHppZSBoZXQga2FhcnQtMTdkLXZlcnNsYWcpOiBoZXQgZ2V6aWNodCB2YW4gZGUgdnJvdXcgeml0IHJvbmRcbiAgIHjiiYgxMTEwL3niiYg0NTAgaW4gZGUgMjc0MngxODI4LWlsbHVzdHJhdGllLCBkZSByYWtldCByb25kIHjiiYgxNjcwL3niiYg1OTAg4oCUXG4gICBiZWlkZSBkaWNodCBnZW5vZWcgYmlqIGVsa2FhciAoeC1hZnN0YW5kIOKJiDU2MHB4KSBvbSBzYW1lbiBpbiDDqcOpblxuICAgdmllcmthbnRlIGNvdmVyLWNyb3AgdGUgcGFzc2VuIHpvbGFuZyBkaWUgY3JvcCBuaWV0IGRvb2QtY2VudHJlZXJ0LlxuICAgQmlqIG9iamVjdC1maXQ6Y292ZXIgb3AgZWVuIHZpZXJrYW50IGthZGVyIHdvcmR0IGRlIFZPTExFIGhvb2d0ZSAoMTgyOHB4KVxuICAgZ2V0b29uZCBlbiBhbGxlZW4gZGUgYnJlZWR0ZSBhZmdla2FwdCB0b3QgMTgyOHB4ICh2YW4gZGUgMjc0MnB4IHRvdGFhbCkg4oCUXG4gICBvYmplY3QtcG9zaXRpb24teSBkb2V0IGVyIGR1cyBuaWV0cyB0b2UgKGRlIHZvbGxlZGlnZSBob29ndGUgaXMgYWxcbiAgIHppY2h0YmFhcik7IG9iamVjdC1wb3NpdGlvbi14PTUyJSBsZWd0IGhldCBtaWRkZW4gdmFuIGRpZSAxODI4cHgtYnJlZGVcbiAgIGNyb3AgdHVzc2VuIGdlemljaHQgZW4gcmFrZXQgaW4sIHpvZGF0IGJlaWRlIHppY2h0YmFhciBibGlqdmVuLiAqL1xuLyogTWlkZGxlIGV4YW1wbGUgY2FyZDogS2ltJ3MgZGVkaWNhdGVkIHJlYWRhYmxlLWJhY2tncm91bmQgdmVyc2lvbiBvZiB0aGVcbiAgIHJvY2tldCBpbGx1c3RyYXRpb24gKEFjaHRlZ3JvbmQuc3ZnKSwgd2l0aCB0aGUgc2FtcGxlIHF1ZXN0aW9uIGluIERBUksgYm9sZFxuICAgdGV4dCBjZW50cmVkIG9uIGl0LCBleGFjdGx5IGxpa2UgaGVyIEZpZ21hLiBObyBzY3JpbSBuZWVkZWQ6IHRoZSBhc3NldFxuICAgaXRzZWxmIGtlZXBzIHRoZSB0ZXh0IHpvbmUgY2FsbS4gKi9cbi8qIEtpbXMgcmV2aWV3IDI0LjA4IChkZXJkZSByb25kZSk6IG9vayBkaXQgdmxhayBrcmlqZ3QgZmxleC1ncm93LCBtZXQgZGVcbiAgIDE2LzEwIGFscyBNSU5JTVVNLiBJbiBkZSBodWlkaWdlIHZlcnRhbGluZ2VuIGlzIGRlemUga2FhcnQgZGUgbGFuZ3N0ZSBlblxuICAgZ3JvZWl0IGhpZXIgZHVzIG5pZXRzIOKAlCBtYWFyIHpvZHJhIGRlIHVpdGxlZ3Rla3N0IHZhbiBcIlZyaWogdm9ybWdldmVuXCJcbiAgIMOpw6luIHJlZ2VsIGxhbmdlciB3b3JkdCAoYW5kZXJlIHRhYWwpLCBpcyBkZSBNSURERUxTVEUgZGUga29ydHN0ZSBlbiBtb2V0XG4gICBoaWogb3AgemlqbiBiZXVydCBrdW5uZW4gb3B2dWxsZW4sIGFuZGVycyBzdGFhbiBkZSBwaWxsZW4gd2VlciBvbmdlbGlqay4gKi9cbi5wdWxzZS13aXotY2FyZC1iZ2ltYWdlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYXNwZWN0LXJhdGlvOiAxNiAvIDEwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9hc3NldHMvcHVsc2UtYmFja2dyb3VuZHMvd2l6YXJkLXJha2V0LWFjaHRlcmdyb25kLnN2Z1wiKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciAzMCU7XG4gICAgcGFkZGluZzogMTJweCAxOHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ucHVsc2Utd2l6LWNhcmQtYmdpbWFnZS1xIHtcbiAgICBmb250LXNpemU6IDE3cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQsICMxYzFlMmEpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLyogS2ltcyByZXZpZXcgMjQuMDggKHZpZXJkZSByb25kZSk6IGhldCBiZWVsZCBpcyBnZWVuIDQweDQwLXBvc3R6ZWdlbCBtZWVyXG4gICBtYWFyIGVlbiBlY2h0IGFmYmVlbGRpbmdzYmxvaywgfjM0JSB2YW4gZGUga2FhcnRicmVlZHRlIGVuIHN0YWFuZFxuICAgKGFzcGVjdC1yYXRpbyA0LzUsIGRlIHZlcmhvdWRpbmcgdWl0IEtpbXMgRmlnbWE6IDIwN3gyNjgpLiBgZmxleC1iYXNpc2BcbiAgIGluIHByb2NlbnRlbiBpLnAudi4gZWVuIHZhc3RlIHB4LW1hYXQsIHpvZGF0IGhldCBibG9rIGJpaiBlZW4gc21hbGxlcmVcbiAgIGthYXJ0IChnZXN0YXBlbGRlIHN0YW5kIG9uZGVyIDkwMHB4LCBvZiBlZW4gdmllcmRlIGtvbG9tIGxhdGVyKSBtZWVcbiAgIGtyaW1wdCBlbiBkZSB0ZWtzdCBlcm5hYXN0IG5vb2l0IHRvdCDDqcOpbiB3b29yZCBwZXIgcmVnZWwgZ2VrbmVwZW4gd29yZHQuXG4gICBCcmFuZHB1bnQ6IGJpaiBvYmplY3QtZml0OmNvdmVyIG9wIGVlbiBTVEFBTkQga2FkZXIgd29yZHQgdmFuIGRlXG4gICBsYW5kc2NoYXBzLWlsbHVzdHJhdGllICgyNzQyeDE4MjgpIGp1aXN0IGRlIEJSRUVEVEUgYWZnZWthcHQg4oCUIGVyIGJsaWpmdFxuICAgfjE0NjJweCB2YW4gZGUgMjc0MnB4IG92ZXIuIEdlemljaHQgKHh+MTExMCkgZW4gcmFrZXQgKHh+MTY3MCkgbGlnZ2VuXG4gICB+NTYwcHggdWl0IGVsa2FhciBlbiBwYXNzZW4gZGFhciBzYW1lbiBpbiB6b2xhbmcgZGUgY3JvcCBuaWV0XG4gICBkb29kLWNlbnRyZWVydDsgNTIlIGxlZ3QgaGV0IG1pZGRlbiB2YW4gZGllIGNyb3AgdHVzc2VuIGRpZSB0d2VlIGluXG4gICAoemVsZmRlIGJyYW5kcHVudCBhbHMgZGUgb3VkZSB2aWVya2FudGUgcG9zdHplZ2VsLCBvcG5pZXV3IGdlbGRpZyBvbWRhdFxuICAgYWxsZWVuIGRlIHZlcmhvdWRpbmcgdmVyYW5kZXJkZSwgbmlldCBkZSBhcyBkaWUgd29yZHQgYWZnZWthcHQpLiAqL1xuLnB1bHNlLXdpei1jYXJkLWZyZWUtaW1nIHtcbiAgICBmbGV4OiAwIDAgMzQlO1xuICAgIC8qIOKaoO+4jyBab25kZXIgZGV6ZSByZWdlbCBpcyBkZSBrYWFydCBzdHVrLiBFZW4gZmxleC1pdGVtIGhlZWZ0XG4gICAgICAgYG1pbi13aWR0aDogYXV0b2AsIGVuIHZvb3IgZWVuIFZFUlZBTkdFTiBlbGVtZW50IChlZW4gPGltZz4pIGlzIGRpZVxuICAgICAgIGF1dG9tYXRpc2NoZSBtaW5pbXVtbWFhdCBkZSBJTlRSSU5TSUVLRSBicmVlZHRlIHZhbiBoZXQgYmVzdGFuZCDigJQgaGllclxuICAgICAgIDI3NDJweC4gYGZsZXgtYmFzaXM6IDM0JWAgKDEzNHB4KSB3b3JkdCBkYWFyIHNpbXBlbHdlZyBkb29yXG4gICAgICAgb3ZlcnN0ZW1kOiBnZW1ldGVuIHN0b25kIGhldCBiZWVsZCBvcCAyNzQyeDM0MjggZW4gd2VyZCBkZSBoZWxlXG4gICAgICAga2FhcnRlbnJpaiAzNjYycHggaG9vZy4gR2VtZXRlbiBpbiBlZW4gbG9zIGhhcm5hcyBvcCBkZSBnZWNvbXBpbGVlcmRlXG4gICAgICAgc3R5bGUtdjEuY3NzLCBuaWV0IGJlcmVkZW5lZXJkLiAqL1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBhc3BlY3QtcmF0aW86IDQgLyA1O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUsICNmM2Y0ZmIpO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIG9iamVjdC1wb3NpdGlvbjogNTIlIDMwJTtcbn1cblxuLyogU3RhcCAyOiBwbGFjZWhvbGRlci1zdGlqbCB2YW4ga2FhcnQgNiDigJQgbmlldCBtZWVyIGFhbmdlcm9lcGVuIHNpbmRzIGthYXJ0IDdcbiAgIChkZSBwbGFjZWhvbGRlci1wYW5lZWwtSFRNTCBiZXN0YWF0IG5pZXQgbWVlciksIG1hYXIgZGUgdmVydGFhbHNsZXV0ZWxcbiAgIGVyYWNodGVyIGJsaWpmdCBvbmdlYnJ1aWt0IGJlc3RhYW4gKHppZSBoZXQga2FhcnQtNy12ZXJzbGFnKS4gUmVnZWwgbGF0ZW5cbiAgIHN0YWFuIGlzIGdvZWRrb3BlciBkYW4gZWVuIGNsYXNzIHdlZ2hhbGVuIGRpZSBtaXNzY2hpZW4gbm9nIGVyZ2VucyBhbmRlcnNcbiAgIGdlYnJ1aWt0IHdvcmR0OyBoaWVyIG5pZXQgaGV0IGdldmFsLCBtYWFyIGdlZW4gcmlzaWNvIHZvb3IgbmlldHMgbmVtZW4uICovXG4ucHVsc2Utd2l6LXN0ZXAyLXBsYWNlaG9sZGVyIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMzJweCAxNnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tYy1ib3JkZXItc29mdCwgI2U1ZTVlYSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xufVxuXG4vKiAtLS0gU3RhcCAyOiBpbmhvdWQgcGVyIG9wbWFha3ZhcmlhbnQgKGthYXJ0IDcpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBQcmV2aWV3IExJTktTLCB2ZWxkZW4gUkVDSFRTIChTQ09QRS1iZXNsdWl0IDE1KTsgb25kZXIgZGUgYmVzdGFhbmRlXG4gICB3aXphcmQtYnJlZWR0ZWdyZW5zIHZhbiA5MDBweCAoemllIC5wdWxzZS13aXotY2FyZHMgaGllcmJvdmVuKSBzdGFwZWx0IGhldCxcbiAgIHByZXZpZXcgYm92ZW4uICovXG4ucHVsc2Utd2l6LXN0ZXAyIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDMwMHB4KSBtaW5tYXgoMCwgMWZyKTtcbiAgICBnYXA6IDI0cHg7XG4gICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICAgLnB1bHNlLXdpei1zdGVwMiB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcik7IH1cbn1cblxuLyogS2FhcnQgMTJiIChCT0FSRC1wdWxzZS1vcG1hYWstaHlicmlkZSwgMjUuMDguMjAyNik6IHN0YXAgMyAoSW5zdGVsbGluZ2VuKVxuICAgaGVyZ2VicnVpa3QgZGUgZ3JpZCBoaWVyYm92ZW4gKGAucHVsc2Utd2l6LXN0ZXAyYCwgb25nZXdpanppZ2QpIGluIHBsYWF0c1xuICAgdmFuIGVlbiBlaWdlbiAyLWtvbG9tcy1sYXlvdXQgdGUgc2NocmlqdmVuIOKAlCB6aWUgZGUgdG9lbGljaHRpbmcgYmlqXG4gICBgc3RlcDNCb2R5YCBpbiBkZXRhaWwuaHRtbC4gYC5wdWxzZS13aXotc3RlcDMtZmllbGRzYCBpcyBkZSBlbmlnZSBuaWV1d2VcbiAgIHJlZ2VsOiBoaWogemV0IGRlIGluc3RlbGxpbmdlbmtvbG9tIGV4cGxpY2lldCBpbiBrb2xvbSAyLCB6b2RhdCBoaWogZGFhclxuICAgYWwgc3RhYXQgdsOzw7NyZGF0IHdpek1vdmVQcmV2aWV3VG9TdGVwKCkgaGV0IGthYXJ0dm9vcmJlZWxkLXBhbmVlbCB2b29yIGhldFxuICAgZWVyc3QgbmFhciBkZXplIHN0YXAgdmVycGxhYXRzdCAoem9uZGVyIGRlemUgcmVnZWwgem91IGRlIGtvbG9tLCBhbHMgZW5pZ2VcbiAgIGdyaWQtaXRlbSwgaW4gZGUgU01BTExFIGVlcnN0ZSBrb2xvbSB2YWxsZW4g4oCUIGF1dG8tcGxhYXRzaW5nIGtlbnQgZ2VlblxuICAgdm9vcmtldXIgdm9vciBkZSBicmVkZSBrb2xvbSkuIE9uZGVyIGRlIGJlc3RhYW5kZSA5MDBweC10ZXJ1Z3ZhbCBoaWVyYm92ZW5cbiAgIGlzIGRlIGdyaWQgemVsZiBhbCDDqcOpbiBrb2xvbSBicmVlZDsgYGdyaWQtY29sdW1uOiAyYCB6b3UgZGFhciBlZW5cbiAgIG92ZXJ0b2xsaWdlIHR3ZWVkZSAoaW1wbGljaWV0ZSkga29sb20gYWFubWFrZW4sIGR1cyBkaWUgdmFsIHRlcnVnIG5hYXJcbiAgIGtvbG9tIDEsIGV4YWN0IHpvYWxzIGRlIHJlc3QgdmFuIGRlemUgZ3JpZCBhbCBkb2V0LiAqL1xuLnB1bHNlLXdpei1zdGVwMy1maWVsZHMgeyBncmlkLWNvbHVtbjogMjsgfVxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICAgLnB1bHNlLXdpei1zdGVwMy1maWVsZHMgeyBncmlkLWNvbHVtbjogMTsgfVxufVxuLnB1bHNlLXdpei1zdGVwMi1wcmV2aWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIC8qIERlIGRyaWUgdm9vcmJlZWxkZW4gZGVsZW4gZGV6ZSBrb2xvbSBlbiB3aXNzZWxlbiB2aWEgW2hpZGRlbl0gKGJlc2x1aXRcbiAgICAgICAzOiBvcG1hYWsgd2lzc2VsZW4gYmV3YWFydCBhbGxlcywgZHVzIG5pZXRzIHdvcmR0IGhpZXIgb29pdCBoZXJib3V3ZCkuXG4gICAgICAgSGV0IHJlbGF0aXZlL292ZXJmbG93LWhvdXZhc3Qgdm9vciBkZSBVaXRsZWctc2hlZXQgaXMgb3AgMjYuMDguMjAyNlxuICAgICAgIChLaW1zIGFjY2VwdGF0aWV0ZXN0KSB2ZXJodWlzZCBuYWFyIC5wdWxzZS13aXotcHJldmlldy1mcmFtZVxuICAgICAgIGhpZXJvbmRlcjogZGUgc2hlZXQga2xlbXQgbnUgYWFuIGhldCBLQUFSVEZSQU1FLCBuaWV0IGFhbiBoZXQgaGVsZVxuICAgICAgIHBhbmVlbCwgem9kYXQgaGV0IEp1aXN0L0ZvdXQtc2NoYWtlbHRqZSBvbmRlciBoZXQgZnJhbWUga2FuIHN0YWFuXG4gICAgICAgem9uZGVyIGRhdCBkZSBzaGVldCBlciBvdmVyaGVlbiB6YWt0LiAqL1xufVxuXG4vKiBLaW1zIGFjY2VwdGF0aWV0ZXN0IDI2LjA4OiBoZXQgZnJhbWUgb20gZGUgZHJpZSBrYWFydHByZXZpZXdzICsgZGVcbiAgIFVpdGxlZy1zaGVldC4gYHBvc2l0aW9uOiByZWxhdGl2ZWAgKyBgb3ZlcmZsb3c6IGhpZGRlbmAgZ2V2ZW4gZGUgc2hlZXRcbiAgICgucHVsc2Utd2l6LWV4cGxhaW4tcHJldmlldywgdmVyZGVyb3ApIGVlbiBob3V2YXN0IG9tIE9OREVSIGRlIGthYXJ0IHRlXG4gICB3YWNodGVuICh0cmFuc2xhdGVZKSB6b25kZXIgc2Nyb2xsYmFsayBvZiBleHRyYSBydWltdGUuIGBwb3NpdGlvbjpcbiAgIHJlbGF0aXZlYCAoZ2VlbiB0cmFuc2Zvcm0pIHZlcmFuZGVydCBuaWV0cyBhYW4gaGV0IGBwb3NpdGlvbjogZml4ZWRgLVxuICAgZ2VkcmFnIHZhbiBxZG5hcHJvLXBvcG92ZXIg4oCUIGRpZSBibGlqZnQgdC5vLnYuIGRlIHZpZXdwb3J0IHBsYWF0c2VuLCBvb2tcbiAgIGFsIHppdCBoaWogZGllcGVyIGluIGRlemUgYm9vbSAoZGUgYWNodGVyZ3JvbmQta2xldXJraWV6ZXIgaW5cbiAgIC5wdWxzZS13aXotYmctcHJldmlldykuIEluIGRlIHRlbGVmb29uLW92ZXJsYXkgKGthYXJ0IDkpIGlzIGhldCBwYW5lZWxcbiAgIHZpZXdwb3J0aG9vZyBtYWFyIGRpdCBmcmFtZSBrYWFydGhvb2cg4oCUIGRlIFwic2hlZXQgYmxpamZ0IGRlZWxzIHppY2h0YmFhclxuICAgaW4gZGljaHRlIHN0YW5kXCItYmV2aW5kaW5nIHVpdCBkZSBrYWFydC05LW1ldGluZ2VuIGlzIGRhYXJtZWUgb29rIHdlZy4gKi9cbi5wdWxzZS13aXotcHJldmlldy1mcmFtZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbn1cbi8qIEthYXJ0IDIxLWFhbnZ1bGxpbmcgKEtpbSk6IC5wdWxzZS13aXotc3RlcDItcHJldmlldy1raWNrZXIgKGthYXJ0IDE3LCBkZVxuICAgZ3JpanplIFwiUFVMU0UgU1RBUFwiLWV5ZWJyb3cgYm92ZW4gZGUgcHJldmlldykgaXMgVkVSV0lKREVSRCB1aXQgZGUgbWFya3VwXG4gICDigJQgZGUgbW9kYWx0aXRlbCBlbiBkZSB0eXBlcGlsbCB6ZWdnZW4gZGF0IGFsLiBHZWVuIGFuZGVyZSBnZWJydWlrZXJcbiAgIGdldm9uZGVuIChyZXBvLWJyZWRlIGdyZXAsIG9vayBkZSBoYXJuZXNzKSwgZHVzIGRlemUgQ1NTIGlzIGRvZGUgY29kZSBlblxuICAgaXMgaGllciB3ZWdnZWhhYWxkLiAqL1xuLnB1bHNlLXdpei1zdGVwMi1maWVsZHMgPiAqIHsgbWFyZ2luLXRvcDogMTRweDsgfVxuLnB1bHNlLXdpei1zdGVwMi1maWVsZHMgPiAqOmZpcnN0LWNoaWxkIHsgbWFyZ2luLXRvcDogMDsgfVxuXG4vKiBLYWFydCAxNzogZGUga2xhc3NpZWtlIHByZXZpZXcgaXMgbnUgZWVuIEVDSFRFIGthYXJ0IChyYW5kICsgd2l0dGVcbiAgIGFjaHRlcmdyb25kKSwgZ2VlbiBsb3MgYmVlbGRibG9rIG1lZXIg4oCUIGZvdG8vdnJhYWcvc3VidGVrc3QvcGlsbGVuIHN0YWFuXG4gICBlciBhbGxlbWFhbCBpbiwgcHJlY2llcyB6b2FscyBkZSBrYWFydCBlciBzdHJha3MgRUNIVCB1aXR6aWV0LlxuICAgS2FhcnQgMiAoQk9BUkQtcHVsc2Utb3BtYWFrLWh5YnJpZGUsIDI1LjA4LjIwMjYpOiBkaXQgYmxvayBpcyBuaWV0IGxhbmdlclxuICAgY2xhc3NpYy1vbmx5IOKAlCBiaWogXCJmcmVlXCIgdG9vbnQgZGV6ZWxmZGUga2FhcnQtc2NoaWwsIG1hYXIgZGFuIEFMTEVFTiBkZVxuICAgZm90byAodnJhYWcvc3VidGVrc3QvcGlsbGVuIGJsaWp2ZW4gZGFhciB2ZXJib3JnZW4sIHppZVxuICAgd2l6QXBwbHlMYXlvdXRWaXNpYmlsaXR5KCkgaW4gZGV0YWlsLmh0bWwpLCB6b2RhdCBkZSByYW5kIGVyIHN0cmFrcyBhbHNcbiAgIGVlbiBuZXR0ZSBsb3NzZSBmb3Rva2FhcnQgdWl0emlldCBpLnAudi4gZWVuIGxlZWcgd2l0IHZsYWsgb25kZXIgZGUgZm90by4gKi9cbi5wdWxzZS13aXotY2xhc3NpYy1wcmV2aWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCwgI2U1ZTVlYSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG59XG4vKiBLbGFzc2llazogbWluaS1rYWFydHByZXZpZXcgbWV0IGhldCBiZWVsZGJsb2sgKEtpbXMgYW5ub3RhdGllcyBcIk5vZ1xuICAgYmxhbmtvXCIgLyBcIisgYWZiZWVsZGluZ1wiKS4gMTY6OSB6b2FscyBkZSBiaWpzbmlqZC1jcm9wcGVyIHZvb3IgUHVsc2VcbiAgIGFmZHdpbmd0IChwcmVzZXQgXCJwdWxzZVwiKSwgem9kYXQgZGUgcHJldmlldyBrbG9wdCBtZXQgd2F0IGVyIHN0cmFrc1xuICAgZGFhZHdlcmtlbGlqayBvcCBkZSBrYWFydCBzdGFhdC4gKi9cbi5wdWxzZS13aXotY2xhc3NpYy1waG90byB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC8qIDI4LjA4LjIwMjY6IDE2LzEwIGVuIE5JRVQgMTYvOS4gRGUgY3JvcCBkaWUgZGUgZ2VicnVpa2VyIG1vZXQgZG9vcmxvcGVuXG4gICAgICAgKFBVTFNFX1BIT1RPX0NST1BfUkFUSU8gaW4gZGV0YWlsLmh0bWwpLCBoZXQgY29tcG9uZW50IHplbGYgZW4gZGUga2FhcnQgaW5cbiAgICAgICBkZSBhcHAgc3RhYW4gYWxsZSBkcmllIG9wIDE2LzEwOyBhbGxlZW4gZGUgd2l6YXJkLWZyYW1lcyBzdG9uZGVuIG9wIDE2LzkuXG4gICAgICAgRGFhcmRvb3Igb250d2llcnAgamUgb3AgZWVuIGFuZGVyIHZsYWsgZGFuIGplIHRlcnVna3JlZWcsIHdhdCBwcmVjaWVzIGRlXG4gICAgICAga2xhY2h0IHZhbiBLaW0gd2FzICgnZGUgdmVyaG91ZGluZ2VuIG1vZXRlbiBnZWxpamsgemlqbicpLiAqL1xuICAgIGFzcGVjdC1yYXRpbzogMTYgLyAxMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSwgI2YzZjRmYik7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLnB1bHNlLXdpei1jbGFzc2ljLXBob3RvIGltZyB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IG9iamVjdC1maXQ6IGNvdmVyOyBkaXNwbGF5OiBibG9jazsgfVxuLyogVnJhYWcvc3VidGVrc3QvcGlsbGVuIGluIGRlIGtsYXNzaWVrZSBwcmV2aWV3LWthYXJ0LCBvbmRlciBkZSBmb3RvLiAqL1xuLnB1bHNlLXdpei1wcmV2aWV3LXEgICB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IDEwcHggMTJweCAycHg7IGZvbnQtc2l6ZTogMTNweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMWMxZTJhKTsgfVxuLyogS2ltcyBhbm5vdGF0aWUgMjcuMDguMjAyNjogXCJpayB3aWwgd2VsIGRhdCBlciBzcGF0aWVzIGdlcmVnaXN0cmVlcmQgd29yZGVuLFxuICAgZGV6ZSB3b3JkZW4gbnUgbmlldCBnZXRvb25kIGluIGRlIHByZXZpZXdcIi4gWmUgd2VyZGVuIFdFTCBiZXdhYXJkIChkZVxuICAgc2FuaXRpemVyIG9wIGRlIHNlcnZlciBsYWF0IFxcbiwgbGVnZSByZWdlbHMgZW4gdm9vcmxvb3BzcGF0aWVzIG9uZ2Vtb2VpZCxcbiAgIG5hZ2VtZXRlbikgZW4gZGUgYXBwIHRvb250IHplIG9vayBhbCAoYF9wbGF0dGVCb2R5TmFhckh0bWwoKWAgaW4gMTYtcHVsc2UuanNcbiAgIHpldCBcXG4gb20gbmFhciA8YnI+KSDigJQgYWxsZWVuIERFWkUgcHJldmlld2thYXJ0IHBsYWt0ZSBhbGxlcyBhYW4gZWxrYWFyLFxuICAgd2FudCBgd2hpdGUtc3BhY2VgIHN0b25kIG9wIGRlIHN0YW5kYWFyZCBgbm9ybWFsYCBlbiBkYW4gdmFsbGVuIG5ld2xpbmVzIGVuXG4gICBkdWJiZWxlIHNwYXRpZXMgc2FtZW4gdG90IMOpw6luIHNwYXRpZS4gYHByZS13cmFwYCBob3VkdCByZWdlbGFmYnJla2luZ2VuLFxuICAgbGVnZSByZWdlbHMgZW4gc3BhdGllcmVla3NlbiBpbnRhY3QgZW4gbGFhdCBsYW5nZSByZWdlbHMgbm9nIHN0ZWVkc1xuICAgYWZicmVrZW4uIERlIHN1YnRla3N0IGtvbXQgaGllciBhbHMgdGV4dENvbnRlbnQgYmlubmVuICh6aWVcbiAgIHdpelJlZnJlc2hDbGFzc2ljUHJldmlldyBpbiBkZXRhaWwuaHRtbCksIGR1cyBkZSBcXG4ncyBzdG9uZGVuIGFsIGluIGRlIERPTTtcbiAgIGhldCB3YXMgcHV1ciBkZSBDU1MuICovXG4ucHVsc2Utd2l6LXByZXZpZXctc3ViIHsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMCAxMnB4IDEwcHg7IGZvbnQtc2l6ZTogMTEuNXB4OyBsaW5lLWhlaWdodDogMTZweDsgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpOyB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IH1cbi8qIEthYXJ0IE0xMS9NMTItY29udHJhY3QgKEJPQVJELXB1bHNlLW1hcmt1cC12Miwgcm9uZGUgMywgMjcuMDguMjAyNik6IGhldFxuICAgaWNvb24tYmxvayB2YW4gZGUgc3VidGVrc3QsIGdlY2VudHJlZXJkIG9wIHppam4gZWlnZW4gcmVnZWwsIH45NnB4IOKAlFxuICAgemVsZmRlIG1hYXQgYWxzIGRlIGFwcCBzdHJha3MgdG9vbnQuIFppZSBwdWxzZUV4dHJhY3RJY29uVG9rZW4oKSBpblxuICAgZGV0YWlsLmh0bWwgdm9vciBkZSB0b2tlbi1oZXJrZW5uaW5nIGRpZSBkaXQgYmxvayB2dWx0LiAqL1xuLnB1bHNlLXdpei1wcmV2aWV3LWljb24tYmxvY2sgeyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWFyZ2luOiAwIDEycHggMTBweDsgfVxuLnB1bHNlLXdpei1wcmV2aWV3LWljb24tYmxvY2sgaW1nIHsgd2lkdGg6IDk2cHg7IGhlaWdodDogOTZweDsgb2JqZWN0LWZpdDogY29udGFpbjsgfVxuLyogRGV6ZWxmZGUgYmxvay1tYWF0IHZvb3IgZGUgUklKS0Ugdm9ybSAoZGUgY29udHJhY3QtYWxpbmVhIGRpZSBkZSBlbW9qaS0vXG4gICBpY29vbi1rbm9wIGluIGRlIFdZU0lXWUcgaW52b2VndCwgemllIHFkbmFwcm8td3lzaXd5ZydzIGluc2VydENvbnRlbnQoKS1cbiAgIGFhbnJvZXAgaW4gbWFrZUVkaXRvckNvbnRyb2xsZXIpLiBEaXQgaXMgcHJlY2llcyB3YXQgdnJpai12b3JtZ2V2ZW5zXG4gICBwcmV2aWV3IHRvb250IChkaWUgemV0IGZyZWVFZGl0b3IudmFsdWUoKSByZWNodHN0cmVla3MgYWxzIGlubmVySFRNTCxcbiAgIGR1cyBkZSBpbWcga29tdCB2YW56ZWxmIG1lZSkgZW4gd2F0IGRlIGFwcCBzdHJha3Mgb29rIGhlcmtlbnRcbiAgIChpbWcucHVsc2UtYm9keS1pY29uLCB6aWUgMTYtcHVsc2UuanMpLiAqL1xuLnB1bHNlLWJvZHktaWNvbi1yb3cgeyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWFyZ2luOiA4cHggMDsgfVxuLnB1bHNlLWJvZHktaWNvbi1yb3cgLnB1bHNlLWJvZHktaWNvbixcbi5wdWxzZS1ib2R5LWljb24geyBtYXgtd2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsgb2JqZWN0LWZpdDogY29udGFpbjsgfVxuLyogS2ltIDAzLjA5LjIwMjY6IGhldCBpY29vbiBtb2VzdCBpbiBkZSB0ZWtzdHZlcndlcmtlciBncm90ZXIgZ2VzbGVlcHQga3VubmVuXG4gICB3b3JkZW4uIFRpbnlNQ0UgbGVndCBkaWUgbWFhdCB2YXN0IGFscyB3aWR0aC9oZWlnaHQtQVRUUklCVVVUIG9wIGRlIGltZyAoZWVuXG4gICBwcmVzZW50YXRpb25hbCBoaW50KSwgZW4gZWVuIGhpbnQgdmVybGllc3QgdmFuIMOpbGtlIHJlZ2VsIGhpZXIg4oCUIGVlbiBoYXJkZVxuICAgYHdpZHRoOiA5NnB4YCBzbGlrdGUgZHVzIGllZGVyZSBzbGVlcGJld2VnaW5nLiBEZSA5NnB4IGlzIG51IGFsbGVlbiBub2cgZGVcbiAgIFRFUlVHVkFMIHZvb3IgZWVuIGltZyB6b25kZXIgZWlnZW4gbWFhdDsgZHJhYWd0IGhpaiBlciBlZW4sIGRhbiBibGlqZnQgZGV6ZVxuICAgc3R5bGVzaGVldCBlcmFmLiBaZWxmZGUgYWZzcHJhYWsgaW4gZGUgdGVrc3R2ZXJ3ZXJrZXIgKGNvbnRlbnRfc3R5bGUgaW5cbiAgIHFkbmEtd3lzaXd5Zy5qcykgZW4gaW4gZGUgYXBwICgxNi1wdWxzZS5qcykuICovXG4ucHVsc2UtYm9keS1pY29uLXJvdyAucHVsc2UtYm9keS1pY29uOm5vdChbd2lkdGhdKSxcbi5wdWxzZS1ib2R5LWljb246bm90KFt3aWR0aF0pIHsgd2lkdGg6IDk2cHg7IGhlaWdodDogOTZweDsgfVxuLyog4pqg77iPIE5hIE9QU0xBQU4gaXMgZGllIGNsYXNzIHdlZy4gRGUgZ2VkZWVsZGUgSHRtbFNhbml0aXplciBsYWF0IG9wIGVlbiBpbWdcbiAgIGFsbGVlbiBzcmMvYWx0L3dpZHRoL2hlaWdodCBkb29yIChIdG1sU2FuaXRpemVyOjpwdXJpZmllciksIGR1cyBlZW5cbiAgIG9wZ2VzbGFnZW4ga2FhcnQgYmV2YXQgZWVuIGthbGUgPGltZz4gaW4gZWVuIGthbGUgPHA+IOKAlCBkZSByZWdlbHMgaGllcmJvdmVuXG4gICByYWtlbiBkaWUgbmlldCBtZWVyIGVuIGhldCBpY29vbiB2dWxkZSBkYWFyZG9vciBkZSBoZWxlIGJyZWVkdGUuIFZhbmRhYXJcbiAgIGRlemVsZmRlIG1hYXQgbm9nIGVlbiBrZWVyLCBudSBvcCBkZSBTUkMgKHplbGZkZSBoYWFrIGFscyBkZSBhcHAgZ2VicnVpa3QsXG4gICB6aWUgUFVMU0VfSUNPTl9TUkNfUkUgaW4gMTYtcHVsc2UuanMpLCBlbiBnZWNlbnRyZWVyZCB2aWEgZGUgaW1nIHplbGYgb21kYXRcbiAgIG9vayBkZSBjbGFzcyBvcCBkZSBhbGluZWEgc25ldXZlbHQuIEJld3VzdCBHRVNDT09QVCBvcCBkZSBkcmllIHBsZWtrZW4gZGllXG4gICBvcGdlc2xhZ2VuIGJvZHktSFRNTCB0b25lbjogZWVuIGxvc3NlIGBpbWdbc3JjKj0uLi5dYC1yZWdlbCB6b3Ugb29rIGRlXG4gICAzMnB4LXRlZ2VscyBpbiBkZSBpY29vbmtpZXplciBvcCA5NnB4IHpldHRlbi4gTmlldXcgaW5nZXZvZWdkZSBpY29uZW5cbiAgIGRyYWdlbiBzaW5kcyAyOC4wOC4yMDI2IGJvdmVuZGllbiB3aWR0aC9oZWlnaHQgYWxzIGF0dHJpYnV1dCwgZHVzIGRpdCBpc1xuICAgaGV0IHZhbmduZXQgdm9vciBhbGxlcyB3YXQgdsOzw7NyIGRpZSBkYXR1bSBpcyBvcGdlc2xhZ2VuLiAqL1xuLnB1bHNlLXdpei1wcmV2aWV3LXN1YiBpbWdbc3JjKj1cIi9hY3Rpdml0eS1hbmltYXRlZC9wb3N0ZXJzL1wiXSxcbi5wdWxzZS13aXotZnJlZS1wcmV2aWV3LWJvZHkgaW1nW3NyYyo9XCIvYWN0aXZpdHktYW5pbWF0ZWQvcG9zdGVycy9cIl0sXG4ucHVsc2UtcHJldmlldy1ib2R5IGltZ1tzcmMqPVwiL2FjdGl2aXR5LWFuaW1hdGVkL3Bvc3RlcnMvXCJdIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogOHB4IGF1dG87XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cbi8qIFRlcnVndmFsIHZvb3IgZWVuIG9wZ2VzbGFnZW4gaWNvb24gem9uZGVyIGVpZ2VuIG1hYXQsIHppZSBkZSB1aXRsZWcgYmlqXG4gICAucHVsc2UtYm9keS1pY29uIGhpZXJib3Zlbi4gKi9cbi5wdWxzZS13aXotcHJldmlldy1zdWIgaW1nW3NyYyo9XCIvYWN0aXZpdHktYW5pbWF0ZWQvcG9zdGVycy9cIl06bm90KFt3aWR0aF0pLFxuLnB1bHNlLXdpei1mcmVlLXByZXZpZXctYm9keSBpbWdbc3JjKj1cIi9hY3Rpdml0eS1hbmltYXRlZC9wb3N0ZXJzL1wiXTpub3QoW3dpZHRoXSksXG4ucHVsc2UtcHJldmlldy1ib2R5IGltZ1tzcmMqPVwiL2FjdGl2aXR5LWFuaW1hdGVkL3Bvc3RlcnMvXCJdOm5vdChbd2lkdGhdKSB7XG4gICAgd2lkdGg6IDk2cHg7XG4gICAgaGVpZ2h0OiA5NnB4O1xufVxuXG4vKiBLaW0gMjguMDguMjAyNjogZGUgaWNvb24tc3RyaXAgb25kZXIgZWVuIFBMQVQgc3VidGVrc3R2ZWxkLiBFZW4gYW5pbWVyZW5kXG4gICBpY29vbiBrYW4gZGFhciBhbGxlZW4gYWxzIGB7e2ljb246PG5hYW0+fX1gLXRva2VuIGxldmVuIChlZW4gdGV4dGFyZWEga2FuXG4gICBnZWVuIHBsYWF0amUgYmV2YXR0ZW4pLCBkdXMgZGV6ZSByaWogbGFhdCB6aWVuIHdhdCBkZSBhcHAgZXJ2YW4gbWFha3QuIFppZVxuICAgcHVsc2VJY29uSGludEh0bWwoKSBpbiBkZXRhaWwuaHRtbC4gKi9cbi5wdWxzZS1pbmxpbmUtaWNvbi1oaW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLXRvcDogNnB4O1xuICAgIHBhZGRpbmc6IDZweCAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlLCAjZjNmNWZmKTtcbn1cbi8qIGBkaXNwbGF5OiBmbGV4YCBoaWVyYm92ZW4gaXMgYXV0ZXVyLUNTUyBlbiB3aW50IEFMVElKRCB2YW4gaGV0IG5hdGl2ZVxuICAgW2hpZGRlbl0gdWl0IGRlIHVzZXItYWdlbnQtc3R5bGVzaGVldCDigJQgemVsZmRlIHZhbGt1aWwgYWxzIGJpalxuICAgLnB1bHNlLXNtLWVkaXRvci1tb3VudCBlbiAucHVsc2Utb3B0LXZpZXctc2VnIGVsZGVycyBpbiBkaXQgYmVzdGFuZC4gKi9cbi5wdWxzZS1pbmxpbmUtaWNvbi1oaW50W2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4ucHVsc2UtaW5saW5lLWljb24taGludC1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xufVxuLnB1bHNlLWlubGluZS1pY29uLWhpbnQtaWNvbnMgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDZweDsgfVxuLnB1bHNlLWlubGluZS1pY29uLWhpbnQtaWNvbnMgaW1nIHsgd2lkdGg6IDMycHg7IGhlaWdodDogMzJweDsgb2JqZWN0LWZpdDogY29udGFpbjsgfVxuLnB1bHNlLXdpei1wcmV2aWV3LWFuc3dlcnMgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDZweDsgbWFyZ2luOiAwIDEycHggMTJweDsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbi5wdWxzZS13aXotcHJldmlldy1hbnN3ZXJzIHFkbmFwcm8tYW5zd2VyLWJ1dHRvbiB7IHdpZHRoOiAxMDAlOyB9XG5cbi8qIEJsYW5jbzogZGUgdXBsb2FkLWtub3Agc3RhYXQgw41OIGRlIHByZXZpZXcsIG5pZXQgZXJuYWFzdCDigJQgZGF0IGlzIEtpbXNcbiAgIGFubm90YXRpZSBcIk5vZyBibGFua29cIiBiaWogZGUgZm90by1wbGVrIHplbGYuICovXG4vKiBLaW1zIHJldmlldyAyNC4wODoga2VlcCB0aGUgZGFzaGVkIGRyb3Agem9uZSAoaXQgaW52aXRlcyBkcmFnZ2luZyBhIHBob3RvXG4gICBpbikgYW5kIHB1dCBoZXIgRmlnbWEgZGV0YWlscyBpbnNpZGUgaXQ6IGEgZGFyayBpbWFnZSBnbHlwaCBwbHVzIGEgc29saWRcbiAgIGRhcmstcHVycGxlIHVwbG9hZCBwaWxsLiAqL1xuLnB1bHNlLXdpei1jbGFzc2ljLXVwbG9hZC1idG4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTRweDtcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tYy1ib3JkZXItc29mdCwgI2M3YzVlMCk7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwYWRkaW5nOiAxOHB4IDIycHg7XG59XG4ucHVsc2Utd2l6LWNsYXNzaWMtdXBsb2FkLWJ0bjpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS0yMDAsICNhNWFjZmYpO1xufVxuLnB1bHNlLXdpei1jbGFzc2ljLXVwbG9hZC1nbHlwaCB7XG4gICAgLyogVGhlIHNpemUgYXR0cmlidXRlIGFsb25lIHJlbmRlcnMgdG9vIHNtYWxsIGluc2lkZSB0aGlzIHpvbmUsIHNvIHRoZVxuICAgICAgIGJveCBpcyBwaW5uZWQgaGVyZTogS2ltcyBGaWdtYSBzaG93cyBhIGNsZWFybHkgcmVhZGFibGUgZ2x5cGguICovXG4gICAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKTtcbiAgICB3aWR0aDogMzRweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gICAgZm9udC1zaXplOiAzNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xufVxuLnB1bHNlLXdpei1jbGFzc2ljLXVwbG9hZC1nbHlwaCBzdmcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cbi5wdWxzZS13aXotY2xhc3NpYy11cGxvYWQtcGlsbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA4cHggMTRweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uLCAjZmZmZmZmKTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5wdWxzZS13aXotY2xhc3NpYy11cGxvYWQtcGlsbCBxZG5hcHJvLWljb24geyBjb2xvcjogaW5oZXJpdDsgfVxuLnB1bHNlLXdpei1jbGFzc2ljLXVwbG9hZC1idG46aG92ZXIgLnB1bHNlLXdpei1jbGFzc2ljLXVwbG9hZC1waWxsIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS02MDAsICMzNjNlODUpO1xufVxuXG4vKiBHZXZ1bGQ6IGtub3BqZXNwYWFyIHJlY2h0c29uZGVyIG9wIGRlIGZvdG8gKEtpbXMgYW5ub3RhdGllIFwiKyBhZmJlZWxkaW5nXCIpLlxuICAgS2FhcnQgMTQgKEJPQVJELXB1bHNlLW9wbWFhay1oeWJyaWRlLm1kKTogZGl0IHdhcyBvb2l0IGVlbiBnbGFzLXBpbFxuICAgKGFjaHRlcmdyb25kICsgYmx1ciArIHNjaGFkdXcpIFJPTkQgZGUgcWRuYXByby1pY29uLWJ0bidzIOKAlCBtYWFyIGVsa2VcbiAgIGljb24tYnRuICh0eXBlPVwic2Vjb25kYXJ5XCIpIGRyYWFndCBhbCB6aWpuIEVJR0VOIGxpY2h0ZSB2aWVya2FudGUgc2NoaWwuXG4gICBUd2VlIHNjaGlsbGVuIG92ZXIgZWxrYWFyIGhlZW4gZ2FmIGVlbiBsb3Mgd2l0IGFmZ2Vyb25kIGthZGVyIG92ZXIgZGVcbiAgIGZvdG8gKEtpbXMgYW5ub3RhdGllOiBcIndhdCB6aXQgaGllciB2b29yIHJhYXIgZnJhbWU/XCIpLiBEZXplIHdyYXBwZXIgaXMgbnVcbiAgIFBVVVIgcG9zaXRpb25lcmluZzogZ2VlbiBlaWdlbiBhY2h0ZXJncm9uZC9ibHVyL3NjaGFkdXcgbWVlci4gRGUga25vcGplc1xuICAgemVsZiBrcmVnZW4gaGV0IGByb3VuZGAtYXR0cmlidXV0ICh6aWUgZGV0YWlsLmh0bWwvaGFybmFzKSB6b2RhdCB6ZSBhbHNcbiAgIHR3ZWUgbG9zc2Ugcm9uZGUgY2hpcHMgb3AgZGUgZm90byBsaWdnZW4g4oCUIHplbGZkZSBpZGlvb20gYWxzIGhldCBrcnVpc2plXG4gICBpbiBkZSBvdmVybGF5LXNjaGlsICgucW9zLSopOiBlZW4ga2FsZSBxZG5hcHJvLWljb24tYnRuLCBnZWVuIGV4dHJhIGZyYW1lXG4gICBlcm9taGVlbi4gS2FhcnQgMTAsIHB1bnQgMi8zOiBzaW5kcyBkaWUga2FhcnQgeml0dGVuIGhpZXIgVFdFRSBrbm9wamVzXG4gICAocG90bG9vZCA9IG1hcmt1cCwgdXBsb2FkID0gbmlldXdlIGZvdG8pIGkucC52LiDDqcOpbiDigJQgemVsZmRlIHdyYXBwZXIsIG9va1xuICAgaGVyZ2VicnVpa3QgYm92ZW4gZGUgYWNodGVyZ3JvbmQtY2FudmFzICgucHVsc2Utd2l6LWJnLWNhbnZhcy13cmFwKS4gKi9cbi5wdWxzZS13aXotY2xhc3NpYy1waG90by1lZGl0LXdyYXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogOHB4O1xuICAgIGJvdHRvbTogOHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiA0cHg7XG59XG5cbi8qIEthYXJ0IE0xMywgcHVudCAzIChLaW0gMjcuMDgsIGNpcmtlbCBsaW5rc2JvdmVuIG9wIGhhYXIgc2NyZWVuc2hvdCk6IGhldFxuICAgd2lzc2Vsa25vcGplIGtsYXNzaWVrIDwtPiB0ZWtzdCBvcCBhY2h0ZXJncm9uZC4gWmVsZmRlIGthbGUgcm9uZGUtY2hpcC1cbiAgIGlkaW9vbSBhbHMgaGV0IHBvdGxvb2QvdXBsb2FkLXBhYXIgKGVkaXQtd3JhcCBoaWVyYm92ZW4pLCBtYWFyIGxpbmtzYm92ZW5cbiAgIGVuIEFMVElKRCB6aWNodGJhYXIgKG5pZXQgaG92ZXItZ2F0ZWQgem9hbHMgZGUgdmVyd2lqZGVya25vcCBoaWVyb25kZXIpOlxuICAgd2lzc2VsZW4gaXMgbmlldC1kZXN0cnVjdGllZiAocHJlc2V0LWdlZW4tc2xvdCksIGR1cyBnZWVuIHJlZGVuIG9tIGhlbSB0ZVxuICAgdmVyc3RvcHBlbiBhY2h0ZXIgZWVuIGhvdmVyLiBHZWRlZWxkIGRvb3IgZGUga2xhc3NpZWtlIGZvdG9ib3ggRU4gZGVcbiAgIGFjaHRlcmdyb25kLWNhbnZhcy13cmFwICh6aWUgcHVsc2VCZ1Bob3RvQnV0dG9uc0h0bWwvcmVuZGVyQ2xhc3NpY1Bob3RvT2ZcbiAgIGluIGRldGFpbC5odG1sKS4gKi9cbi5wdWxzZS13aXotbGF5b3V0LXN3YXAtd3JhcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDhweDtcbiAgICB0b3A6IDhweDtcbn1cblxuLyogS2ltcyB2ZXJ6b2VrIDI3LjA4IChyb2RlIGNpcmtlbCBsaW5rc29uZGVyIG9wIGRlIGthYXJ0Zm90byk6IGRlIGZvdG8gd2FzIGluXG4gICBkZSB3aXphcmQgbmlldCBtZWVyIHRlIHZlcndpamRlcmVuLiBFaWdlbiBob2VrIGxpbmtzb25kZXIsIGVuIGFsbGVlblxuICAgemljaHRiYWFyIGJpaiBob3ZlciBvdmVyIGRlIGZvdG8g4oCUIG9mIGJpaiB0b2V0c2VuYm9yZGZvY3VzLCBhbmRlcnMgaXMgZGVcbiAgIGtub3Agdm9vciB0b2V0c2VuYm9yZGdlYnJ1aWtlcnMgb25iZXJlaWtiYWFyIG9uemljaHRiYWFyLiBaZWxmZGUga2FsZVxuICAgcm9uZGUtY2hpcC1pZGlvb20gYWxzIGhldCBwb3Rsb29kL3VwbG9hZC1wYWFyIHJlY2h0cy4gKi9cbi5wdWxzZS13aXotY2xhc3NpYy1waG90by1kZWxldGUtd3JhcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDhweDtcbiAgICBib3R0b206IDhweDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjE1cyBlYXNlO1xufVxuLnB1bHNlLXdpei1jbGFzc2ljLXBob3RvOmhvdmVyIC5wdWxzZS13aXotY2xhc3NpYy1waG90by1kZWxldGUtd3JhcCxcbi5wdWxzZS13aXotYmctY2FudmFzLXdyYXA6aG92ZXIgLnB1bHNlLXdpei1jbGFzc2ljLXBob3RvLWRlbGV0ZS13cmFwLFxuLnB1bHNlLXdpei1jbGFzc2ljLXBob3RvLWRlbGV0ZS13cmFwOmZvY3VzLXdpdGhpbiB7XG4gICAgb3BhY2l0eTogMTtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLnB1bHNlLXdpei1jbGFzc2ljLXBob3RvLWRlbGV0ZS13cmFwIHsgdHJhbnNpdGlvbjogbm9uZTsgfVxufVxuXG4vKiBUZWtzdCBvcCBhY2h0ZXJncm9uZDogZGUgY2FudmFzIChuaWV0LWVkaXRhYmxlLCBoZXJ6aWVuIGthYXJ0IDE3KSArIGRlXG4gICBraWV6ZXIgZGlyZWN0IGVyb25kZXIgKGJlc2x1aXQgNSs2KSwgZGFuIGRlemVsZmRlIGxpdmUgYW50d29vcmRwaWxsZW4gYWxzXG4gICBLbGFzc2llay4gKi9cbi5wdWxzZS13aXotYmctcHJldmlldyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcbn1cbi8qIEthYXJ0IDEwIChCT0FSRC1wdWxzZS1vcG1hYWstaHlicmlkZS5tZCwgcHVudCAyLzMpOiB3cmFwcGVyIHJvbmQgZGUgY2FudmFzXG4gICBtZXQgYHBvc2l0aW9uOiByZWxhdGl2ZWAsIHpvZGF0IGhldCBwb3Rsb29kLS91cGxvYWRrbm9wamVzcGFhciBlciBhbHMgZWVuXG4gICBhYnNvbHV1dCBnZXBvc2l0aW9uZWVyZCBwYWFyIG92ZXJoZWVuIGthbiBsaWdnZW4gKGthYXJ0IDE0OiBnZWVuIGdsYXMtd3JhcFxuICAgbWVlciwgemllIC5wdWxzZS13aXotY2xhc3NpYy1waG90by1lZGl0LXdyYXApIOKAlCB6ZWxmZGUgY29uc3RydWN0aWUgYWxzXG4gICAucHVsc2Utd2l6LWNsYXNzaWMtcGhvdG8gYmlqIEtsYXNzaWVrL1ZyaWogdm9ybWdldmVuLiBWZXJ2YW5ndCBkZSB2cm9lZ2VyZVxuICAgbG9zc2UgXCJTdGlja2VycyBlbiBpY29uc1wiLWtub3BwZW5yaWogKC5wdWxzZS1iZy10b29scy1yb3csIGhpZXJvbmRlclxuICAgdmVyd2lqZGVyZDogZ2VlbiBhYW5yb2VwZXJzIG1lZXIpLiAqL1xuLnB1bHNlLXdpei1iZy1jYW52YXMtd3JhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLyogS2FhcnQgNiAoQk9BUkQtcHVsc2Uta2FhcnQtcHJvcG9ydGlvbmVlbCwgMjguMDguMjAyNik6IGRlIGBib3JkZXItcmFkaXVzOlxuICAgMTJweGAgZGllIGhpZXIgc3RvbmQgaXMgV0VHLiBEZSBrYWFydCBpcyBzaW5kcyBrYWFydCA1IG92ZXJhbCByZWNodCAoaGV0XG4gICBjb21wb25lbnQgYnJlbmd0IHplbGYgZ2VlbiByYW5kLCBzY2hhZHV3IG9mIHJvbmRpbmcgbWVlciBtZWUpLCBlbiBqdWlzdCBoZXRcbiAgIHZlcnNjaGlsIHR1c3NlbiBkZXplIHdpemFyZC1wcmV2aWV3IGVuIGRlIGFwcCB3YXMgd2F0IEtpbSB0ZXJ1Z3N0dXVyZGUuIFR3ZWVcbiAgIHBsZWtrZW4gemV0dGVuIGRpZSByb25kaW5nIHplbGY6IGhpZXIgZW4gLnB1bHNlLXByZXZpZXctYmctY2FudmFzLXdyYXBcbiAgIHZlcmRlcm9wOyBiZWlkZSB6aWpuIGVyYWYuIGBvdmVyZmxvdzogaGlkZGVuYCBibGlqZnQgd8OpbCBzdGFhbjogZGF0IGtsZW10IGRlXG4gICBiZWVsZC0vdGVrZW5sYWFnIGJpbm5lbiBoZXQga2FhcnR2bGFrLCBkYXQgaXMgZ2VlbiB2b3JtZ2V2aW5nLlxuICAg4pqg77iPIE1FTERJTkcgKGthYXJ0IDYtdmVyc2xhZyk6IGhldCBob3Zlci1rYWFydGplIGJpaiBkZSBzdGFwcGVubGlqc3RcbiAgICgucHVsc2UtaW1ncG9wLWNhbnZhcywgb25kZXJhYW4gZGl0IGJlc3RhbmQpIHpldCBzdG9uZCB0b3QgMjguMDguMjAyNiBub2cgb3AgYGJvcmRlci1yYWRpdXM6IDEwcHhgIGVuIHN0YWF0IG51IG9wIDAuXG4gICBEYXQgc3RhYXQgbmlldCBvcCBkZXplIGthYXJ0IGVuIGlzIGR1cyBtZXQgb3B6ZXQgbmlldCBtZWVnZW5vbWVuLiAqL1xuLnB1bHNlLXdpei1iZy1jYW52YXMtd3JhcCBxZG5hcHJvLXB1bHNlLWNhbnZhcyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLyogMjguMDguMjAyNjogMTYvMTAgZW4gTklFVCAxNi85LiBEZSBjcm9wIGRpZSBkZSBnZWJydWlrZXIgbW9ldCBkb29ybG9wZW5cbiAgICAgICAoUFVMU0VfUEhPVE9fQ1JPUF9SQVRJTyBpbiBkZXRhaWwuaHRtbCksIGhldCBjb21wb25lbnQgemVsZiBlbiBkZSBrYWFydCBpblxuICAgICAgIGRlIGFwcCBzdGFhbiBhbGxlIGRyaWUgb3AgMTYvMTA7IGFsbGVlbiBkZSB3aXphcmQtZnJhbWVzIHN0b25kZW4gb3AgMTYvOS5cbiAgICAgICBEYWFyZG9vciBvbnR3aWVycCBqZSBvcCBlZW4gYW5kZXIgdmxhayBkYW4gamUgdGVydWdrcmVlZywgd2F0IHByZWNpZXMgZGVcbiAgICAgICBrbGFjaHQgdmFuIEtpbSB3YXMgKCdkZSB2ZXJob3VkaW5nZW4gbW9ldGVuIGdlbGlqayB6aWpuJykuICovXG4gICAgYXNwZWN0LXJhdGlvOiAxNiAvIDEwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucHVsc2Utd2l6LWJnLXByZXZpZXcgLnB1bHNlLXdpei1wcmV2aWV3LWFuc3dlcnMgeyBtYXJnaW46IDA7IH1cblxuLyogS2FhcnQgNiwgcHVudCBnIOKAlCBERSBBRkdFS05JUFRFIEZPQ1VTUklORyB2YW4gZGUga2xldXJ0ZWdlbHMuXG4gICBEZSByaW5nIHZhbiBlZW4gdGVnZWwgaXMgYGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1yaW5nKSwgMCAwIDAgNXB4XG4gICB2YXIoLS1mb2N1cy1nbG93KWAgKHppZSBfYmFja2dyb3VuZC1waWNrZXIuc2NzcyksIGR1cyBoaWogdmFsdCA1cHggQlVJVEVOIGRlXG4gICB0ZWdlbC4gRGUgdGVnZWxzIHN0YWFuIHRlZ2VuIGRlIGxpbmtlci0vcmVjaHRlcnJhbmQgdmFuIGh1biBrb2xvbSwgZW4gZGllXG4gICBrb2xvbSB6aXQgaW4gdHdlZSBjb250YWluZXJzIG1ldCBgb3ZlcmZsb3c6IGhpZGRlbmA6IGhldCBrYWFydGZyYW1lXG4gICAoLnB1bHNlLXdpei1wcmV2aWV3LWZyYW1lLCBkYXQgZGUgVWl0bGVnLXNoZWV0IGtsZW10KSBlbiBkYWFyYm92ZW4gbm9nXG4gICAucWRuYXByby13aXphcmQtc3RlcCBpbiBoZXQgZ2VkZWVsZGUgd2l6YXJkLW1vZGFsLWNvbXBvbmVudC4gVmFuIGRpZSB0d2VlIGlzXG4gICBoZXQgRlJBTUUgZGUgZWVyc3RlIGRpZSBrbGVtdCwgZHVzIGRhYXIgbW9ldCBkZSBydWltdGUgdmFuZGFhbiBrb21lbiDigJQgaGV0XG4gICBnZWRlZWxkZSBjb21wb25lbnQgYmxpamZ0IG9uZ2Vtb2VpZCAoZGF0IGhlZWZ0IGFuZGVyZSBnZWJydWlrZXJzKS5cbiAgIFZhbmRhYXIgNXB4IGx1Y2h0IGJpbm5lbiBkZSBrb2xvbSwgcHJlY2llcyBkZSByaW5nYnJlZWR0ZSwgYWxsZWVuIG9tIGRlXG4gICBraWV6ZXIgaGVlbjogZGUga2FhcnQgemVsZiBob3VkdCB6byB6aWpuIHZvbGxlIGJyZWVkdGUsIGVuIGFsbGVlbiBkZVxuICAgdGVnZWxzdHJvb2sgc2NodWlmdCA1cHggbmFhciBiaW5uZW4uIE9uZGVyIGlzIGhldCBvb2sgNXB4OyBib3ZlbiBuaWV0IG5vZGlnLFxuICAgZGFhciB6aXQgYWwgMTBweCBgZ2FwYCBuYWFyIGRlIGNhbnZhcy4gKi9cbi5wdWxzZS13aXotYmctcHJldmlldyBxZG5hcHJvLWJhY2tncm91bmQtcGlja2VyIHtcbiAgICBwYWRkaW5nOiAwIDVweCA1cHg7XG59XG5cbi8qIEthYXJ0IDYsIHB1bnQgYyDigJQgZGUgY29udHJhc3Qtd2FhcnNjaHV3aW5nIG9uZGVyIGRlIGtpZXplci4gcWRuYXByby1hbGVydFxuICAgemV0IHplbGYgYGRpc3BsYXk6IGZsZXhgLCBlbiBlZW4gY2xhc3MgdmVyc2xhYXQgZGUgYFtoaWRkZW5dYC1yZWdlbCB1aXQgZGVcbiAgIGJyb3dzZXJzdGlqbCwgZHVzIGRpZSBtb2V0IGhpZXIgZXhwbGljaWV0IHRlcnVnLiAqL1xuLnB1bHNlLXdpei1iZy1jb250cmFzdCB7IG1hcmdpbi10b3A6IDJweDsgfVxuLnB1bHNlLXdpei1iZy1jb250cmFzdFtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBLYWFydCBNMTMsIHB1bnQgMSAoS2ltIDI3LjA4KTogbGVnZSB0aXRlbCBpbiBkZSBhY2h0ZXJncm9uZC1wcmV2aWV3IHRvb250XG4gICBlZW4gZ2VkZW1wdGUgcGxhY2Vob2xkZXIgKFwiSGllciBrb210IGpvdXcgdGl0ZWxcIikgaS5wLnYuIGVlbiBrYWFsIGxlZWdcbiAgIHZsYWsgLSB3aXpBcHBseVF1ZXN0aW9uVG9DYW52YXMoKSBpbiBkZXRhaWwuaHRtbCB6ZXQgZGUga2xhc3NlIHpvZHJhIGhldFxuICAgZ2VkZWVsZGUgXCJWcmFhZyBvZiB0aXRlbFwiLXZlbGQgbGVlZyBpcy4gUHV1ciBlZW4gb3BhY2l0eS1kZW1waW5nIGJvdmVub3BcbiAgIGRlIHRla3N0a2xldXIgZGllIGhldCBjb21wb25lbnQgemVsZiBhbCBraWVzdCAoZGF0YS10aW50LCBsaWNodC9kb25rZXJcbiAgIGFmaGFua2VsaWprIHZhbiBkZSBhY2h0ZXJncm9uZCkgLSB3ZXJrdCBkdXMgb3AgZWxrZSBhY2h0ZXJncm9uZHNvb3J0LFxuICAgZ2VlbiBlaWdlbiBrbGV1ciBub2RpZy4gcWRuYS1wdWxzZS1jYW52YXMuanMvX3B1bHNlLWNhbnZhcy5zY3NzIGJsaWp2ZW5cbiAgIG9uYWFuZ2VyYWFrdCAoY29tcG9uZW50LWVpZ2VuIGJlc3RhbmRlbiwgYnVpdGVuIGRlemUga2FhcnQgc2Ugc2NvcGUpLiAqL1xuLnFkbmFwcm8tcHVsc2UtY2FudmFzLnB1bHNlLXdpei1jYW52YXMtLXBsYWNlaG9sZGVyIC5xcGMtdGV4dCB7XG4gICAgb3BhY2l0eTogLjU1O1xufVxuXG4vKiBLYWFydCA2LCBwdW50IGQvZSDigJQgREUgR0VNRVRFTiBUSU5ULlxuICAgcWRuYXByby1wdWxzZS1jYW52YXMga2llc3QgemlqbiB0aXRlbGtsZXVyIHplbGY6IHVpdCBkZSBoZWxkZXJoZWlkIHZhbiBkZVxuICAga2xldXIgKGRyZW1wZWwgMTQwKSwgdWl0IHBhdHRlcm5zLmpzb24gYmlqIGVlbiBzY8OobmUsIGVuIGJpaiBlZW4gYGltYWdlYFxuICAgemV0IGhldCBIQVJEIG9wIFwibGlnaHRcIiAod2l0dGUgdGVrc3QpLiBEYXQgbGFhdHN0ZSBrbG9wdCBuaWV0IHZvb3IgZWVuIExJQ0hUXG4gICBiZWVsZCDigJQgZGUgbWVya2FjaHRlcmdyb25kIGlzIGRhYXIgaGV0IHZvb3JiZWVsZCB2YW4gKHB1bnQgZTogZGVcbiAgIHBsYWNlaG9sZGVyLXRpdGVsIHdhcyB3aXQgb3AgZWVuIGxpY2h0ZSBwbGFhdCkuIERlemUgdHdlZSBob3N0LWNsYXNzZXNcbiAgIG92ZXJzY2hyaWp2ZW4gZGllIGtldXplIG1ldCBkZSB1aXRrb21zdCB2YW4gZGUgbWlkZGVudmxhay1tZXRpbmdcbiAgIChwdWxzZUFwcGx5Q2FudmFzVGludCgpL3B1bHNlQ2FudmFzVGludENsYXNzKCkgaW4gZGV0YWlsLmh0bWwpLlxuICAgQmV3dXN0IG1ldCBkZSBFSUdFTiB0b2tlbmtsZXVyZW4gdmFuIGhldCBjb21wb25lbnQgKC0tYy10ZXh0IC9cbiAgIC0tYy10ZXh0LW9uLWFjdGlvbiwgZXhhY3Qgem9hbHMgX3B1bHNlLWNhbnZhcy5zY3NzIHplIHZvb3IgZGF0YS10aW50XG4gICBnZWJydWlrdCksIHpvZGF0IGxpY2h0L2RvbmtlciDDqcOpbiBiZXRla2VuaXMgaG91ZHQgZW4gZXIgZ2VlbiBoZXggaW4gSlMgaG9lZnQuXG4gICBEZXplIHJlZ2VscyBzdGFhbiBuw6EgY29tcG9uZW50cy9jb21wb25lbnRzIGluIHN0eWxlLXYxLnNjc3MgKHppZSBkZSBrb3AgdmFuXG4gICBkaXQgYmVzdGFuZCksIGR1cyBiaWogZ2VsaWprZSBzcGVjaWZpY2l0ZWl0IHdpbm5lbiB6ZSBvcCB2b2xnb3JkZS5cbiAgIEVlbiBleHBsaWNpZXRlIGB0ZXh0LWNvbG9yYCBibGlqZnQgYWx0aWpkIHN0ZXJrZXI6IGRpZSBzY2hyaWpmdCBoZXQgY29tcG9uZW50XG4gICBhbHMgaW5saW5lIHN0eWxlIG9wIC5xcGMtdGV4dCwgZW4gZGF0IHZlcnNsYWF0IGVsa2Ugc2VsZWN0b3IgaGllci4gKi9cbi5xZG5hcHJvLXB1bHNlLWNhbnZhcy5wdWxzZS1jYW52YXMtdGludC1kYXJrIC5xcGMtdGV4dCB7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dCwgIzBiMGIwZCk7XG59XG4ucWRuYXByby1wdWxzZS1jYW52YXMucHVsc2UtY2FudmFzLXRpbnQtbGlnaHQgLnFwYy10ZXh0IHtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbiwgI2ZmZmZmZik7XG59XG5cbi8qIEthYXJ0IDE3LCBiZXNsdWl0IDE0OiBoZXQgdGVsbGVyLXRla3N0amUgb25kZXIgaGV0IFwiVnJhYWcgb2YgdGl0ZWxcIi12ZWxkLFxuICAgYWxsZWVuIGJpaiB0ZWtzdCBvcCBhY2h0ZXJncm9uZCBlbiBwYXMgemljaHRiYWFyIHZhbmFmIH4xMDAgdGVrZW5zLiAqL1xuLnB1bHNlLXdpei1xdWVzdGlvbi1jb3VudGVyIHtcbiAgICBtYXJnaW46IDRweCAycHggMDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS00MDAsICM4Yjg4YTMpO1xufVxuXG4vKiBTdGlja2VyL2ljb24tb3ZlcmxheS1wcmV2aWV3IChrYWFydCAxNCkgYmlubmVuIGRlIGdlcmVzZXJ2ZWVyZGVcbiAgIC5xcGMtb3ZlcmxheS1sYWFnIHZhbiBxZG5hcHJvLXB1bHNlLWNhbnZhcyDigJQgaGV0IGNvbXBvbmVudCB6ZWxmIGxhYXQgZGllXG4gICBsYWFnIGxlZWcgKHppZSBxZG5hLXB1bHNlLWNhbnZhcy5qcywgbGFhZyA0KTsgZGl0IHRla2VudCBoZW0gSE9TVC1TSURFLFxuICAgZ2VkZWVsZCBkb29yIGRlIHdpemFyZC1wcmV2aWV3IGJpaiBhYW5tYWtlbiDDqW4gYmV3ZXJrZW5cbiAgIChwdWxzZVJlbmRlck92ZXJsYXkoKSBpbiBkZXRhaWwuaHRtbCkuIFBvc2l0aWUvc2NoYWFsIGtvbWVuIGFscyBpbmxpbmVcbiAgIHN0eWxlIG1lZSAocGVyIGl0ZW0pLCBkdXNcbiAgIGhpZXIgc3RhYXQgYWxsZWVuIGRlIHZhc3RlIHZvcm1nZXZpbmcuICovXG4ucWRuYXByby1wdWxzZS1jYW52YXMgLnFwYy1vdmVybGF5IC5wdWxzZS1vdi1pdGVtIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby1wdWxzZS1jYW52YXMgLnFwYy1vdmVybGF5IC5wdWxzZS1vdi1pdGVtLWltZyxcbi5xZG5hcHJvLXB1bHNlLWNhbnZhcyAucXBjLW92ZXJsYXkgLnB1bHNlLW92LWl0ZW0tbG90dGllIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICAvKiBgaGVpZ2h0YCBNT0VUIGhpZXIgZXhwbGljaWV0IHN0YWFuLCBvb2sgYWwgZG9ldCBhc3BlY3QtcmF0aW8gaGV0IHdlcms6XG4gICAgICAgcWRuYXByby1sb3R0aWUgemV0IG9wIHppY2h6ZWxmIGBoZWlnaHQ6IHZhcigtLXFsLXNpemUpYCAoNDhweCkgZW4gZWVuXG4gICAgICAgZXhwbGljaWV0ZSBob29ndGUgd2ludCBBTFRJSkQgdmFuIGFzcGVjdC1yYXRpbywgb25nZWFjaHQgc3BlY2lmaWNpdGVpdC5cbiAgICAgICBab25kZXIgZGV6ZSByZWdlbCB3ZXJkIGVsayBnZXBsYWF0c3QgaWNvb24gcGxhdGdlZHJ1a3QgdG90IGVlbiBzdHJlZXAg4oCUXG4gICAgICAgZGV6ZWxmZGUgdmFsIGFscyBvcCBkZSBrYWFydGZvdG8gKDI4LjA4LjIwMjYsIGRhYXIgaW5saW5lIG9wZ2Vsb3N0KS4gKi9cbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYXNwZWN0LXJhdGlvOiAxIC8gMTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4vKiBWcmlqIHZvcm1nZXZlbjogZWVuIGVlbnZvdWRpZ2UgcHJldmlldyB2YW4gdGl0ZWwgKyBpbmhvdWQgKGJlc2x1aXQgOS0xMCkg4oCUXG4gICBiZXd1c3QgR0VFTiBvcGdlbWFha3RlIGthYXJ0LXNjaGlsLCBkYXQgem91IGVlbiB0d2VlZGUsIGFmd2lqa2VuZGVcbiAgIHdlZXJnYXZlIHZhbiBkZXplbGZkZSBXWVNJV1lHLWluaG91ZCBiZWxvdmVuLiAqL1xuLnB1bHNlLXdpei1mcmVlLXByZXZpZXcge1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUsICNmM2Y0ZmIpO1xuICAgIG1pbi1oZWlnaHQ6IDEwOHB4O1xufVxuLnB1bHNlLXdpei1mcmVlLXByZXZpZXctdGl0bGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYzFlMmEpO1xufVxuLnB1bHNlLXdpei1mcmVlLXByZXZpZXctYm9keSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI2ODg0KTtcbiAgICAvKiBEZSBXWVNJV1lHLWluaG91ZCBrYW4gZWlnZW4gb3BtYWFrIGRyYWdlbiAodmV0amVzLCBsaWpzdGplcywgLi4uKTtcbiAgICAgICBvdmVyZXJ2ZW4gaS5wLnYuIG92ZXJzY2hyaWp2ZW4sIHpvZGF0IGRpZSBvcG1hYWsgemljaHRiYWFyIGJsaWpmdC4gKi9cbn1cbi5wdWxzZS13aXotZnJlZS1wcmV2aWV3LWJvZHkgcCB7IG1hcmdpbjogMCAwIDZweDsgfVxuLnB1bHNlLXdpei1mcmVlLXByZXZpZXctYm9keSBwOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG4vKiBEZSBwcmV2aWV3IHppdCBhbCBpbiAxMnB4IHBhZGRpbmc7IGRlIHBpbGxlbiBob2V2ZW4gZGF0IG5pZXQgbm9nbWFhbHMuICovXG4ucHVsc2Utd2l6LWZyZWUtcHJldmlldyAucHVsc2Utd2l6LXByZXZpZXctYW5zd2VycyB7IG1hcmdpbjogMTBweCAwIDA7IH1cblxuLyogS2FhcnQgMTdiLCBnZWJyZWsgMTogYGVsLmhpZGRlbiA9IHRydWVgICh3aXpBcHBseUxheW91dFZpc2liaWxpdHkvXG4gICBlZGl0QXBwbHlMYXlvdXRWaXNpYmlsaXR5KSB3ZXJrdCBvcCBkZXplIGRyaWUgcGFuZWxlbiBOSUVUIHZhbnplbGYg4oCUXG4gICB6ZWxmZGUgdmFsIGFscyBoaWVyYm92ZW4gYmlqIC5wdWxzZS1zdGVwcy1mb290W2hpZGRlbl06IGRlIFVBLXJlZ2VsXG4gICBbaGlkZGVuXXtkaXNwbGF5Om5vbmV9IHZlcmxpZXN0IGFsdGlqZCB2YW4gZWVuIGF1dGV1cnNyZWdlbCBkaWUgb3BcbiAgIGhldHplbGZkZSBlbGVtZW50IGBkaXNwbGF5YCB6ZXQsIG9uZ2VhY2h0IHNwZWNpZmljaXRlaXQgb2YgYnJvbnZvbGdvcmRlXG4gICAoYXV0aG9yIG5vcm1hbCB3aW50IGFsdGlqZCB2YW4gdXNlci1hZ2VudCBub3JtYWwpLiAucHVsc2Utd2l6LWNsYXNzaWMtXG4gICBwcmV2aWV3IGVuIC5wdWxzZS13aXotYmctcHJldmlldyB6ZXR0ZW4gYWxsZWJlaSBkaXNwbGF5OmZsZXgsIGR1cyB6b25kZXJcbiAgIGRlemUgZWlnZW4gW2hpZGRlbl0tb3ZlcnJpZGUgYmxldmVuIGJpaiBsYXlvdXQ9Y2xhc3NpYyB6b3dlbCBkZVxuICAga2xhc3NpZWtlIGthYXJ0IEFMUyBkZSBhY2h0ZXJncm9uZC1jYW52YXMgKyAta2llemVyICsgZWVuIHR3ZWVkZSBzZXRcbiAgIHByZXZpZXctcGlsbGVuIHppY2h0YmFhciAoZW4gb21nZWtlZXJkIGJpaiBsYXlvdXQ9YmFja2dyb3VuZCkuIEFsbGUgZHJpZVxuICAgc3RhYW4gaGllciB2b29yIGRlIHpla2VyaGVpZCBzYW1lbiwgb29rIC5wdWxzZS13aXotZnJlZS1wcmV2aWV3LCBkaWVcbiAgIHZhbmRhYWcgZ2VlbiBlaWdlbiBgZGlzcGxheWAgemV0IG1hYXIgZGF0IG1vcmdlbiBrYW4ga3Jpamdlbi4gR2VkZWVsZFxuICAgZG9vciBkZSB3aXphcmQgKHN0YXAgMiksIHpvd2VsIGJpaiBhYW5tYWtlbiBhbHMgaW4gYmV3ZXJrc3RhbmRcbiAgIChrYWFydCAyMTogZGV6ZWxmZGUgI3B1bHNlLXdpei0qLURPTSB2b29yIGFsbGViZWkpLiAqL1xuLnB1bHNlLXdpei1jbGFzc2ljLXByZXZpZXdbaGlkZGVuXSxcbi5wdWxzZS13aXotYmctcHJldmlld1toaWRkZW5dLFxuLnB1bHNlLXdpei1mcmVlLXByZXZpZXdbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLyogS2FhcnQgMiAoQk9BUkQtcHVsc2Utb3BtYWFrLWh5YnJpZGUsIDI1LjA4LjIwMjYpOiB6ZWxmZGUgdmFsIGFsc1xuICAgaGllcmJvdmVuLCBudSB2b29yIGRlIHZyYWFnL3N1YnRla3N0L3BpbGxlbiBCSU5ORU4gLnB1bHNlLXdpei1jbGFzc2ljLVxuICAgcHJldmlldyDigJQgZGllIGtyaWpnZW4gYmlqIFwiZnJlZVwiIGh1biBlaWdlbiBbaGlkZGVuXSAoemllXG4gICB3aXpBcHBseUxheW91dFZpc2liaWxpdHkoKSksIG1hYXIgLnB1bHNlLXdpei1wcmV2aWV3LXEvLXN1Yi8tYW5zd2Vyc1xuICAgemV0dGVuIGFsbGVtYWFsIHplbGYgYWwgYGRpc3BsYXlgIChibG9jay9mbGV4KSB2aWEgZWVuIGdld29uZSBrbGFzc2UtXG4gICByZWdlbCwgZGllIHpvbmRlciBkZXplIG92ZXJyaWRlIHpvdSB3aW5uZW4gdmFuIGRlIFVBIFtoaWRkZW5dLXJlZ2VsLiAqL1xuLnB1bHNlLXdpei1wcmV2aWV3LXFbaGlkZGVuXSxcbi5wdWxzZS13aXotcHJldmlldy1zdWJbaGlkZGVuXSxcbi5wdWxzZS13aXotcHJldmlldy1hbnN3ZXJzW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4vKiBLYWFydCBNMTE6IGhldHplbGZkZSB2YWwgdm9vciBoZXQgaWNvb24tYmxvayAob29rIGVlbiBnZXdvbmUga2xhc3NlLXJlZ2VsXG4gICBkaWUgYGRpc3BsYXk6IGZsZXhgIHpldCwgemllIGhpZXJib3ZlbikuICovXG4ucHVsc2Utd2l6LXByZXZpZXctaWNvbi1ibG9ja1toaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG4vLyBLYWFydCA4IChCT0FSRC1wdWxzZS1hbnR3b29yZG9wdGllcy1yaWNodGluZy1jLCAyNS4wOC4yMDI2KSwgSEVSWklFTlxuLy8ga2FhcnQgMTJjIChCT0FSRC1wdWxzZS1vcG1hYWstaHlicmlkZSwgMjUuMDguMjAyNiwgS2ltcyBzY3JlZW5zaG90KTogQ1NTXG4vLyB2b29yIGRlIFVpdGxlZy1zaGVldCBvcCBkZSB3aXphcmQgKHN0YXAgMiwgYWxsZWVuIGtlbm5pc3ZyYWFnKS4gVmVyaHVpc2Rcbi8vIG9wIDI1LjA4LjIwMjYgdWl0IGVuc3VyZVB1bHNlRXhwbGFpblByZXZpZXdTdHlsZXMoKSBpbiBkZXRhaWwuaHRtbCDigJRcbi8vIHplbGZkZSA8c3R5bGU+LWluLTxoZWFkPi1yZWNlcHQgYWxzIGthYXJ0IDUvNiwgZGV6ZSBrYWFydCBtb2NodCBvb2sgZ2VlblxuLy8gd2lqemlnaW5nIGFhbiBkZXplIFNDU1MtcGFydGlhbCBtYWtlbi5cbi8vXG4vLyBWw7PDs3Iga2FhcnQgMTJjIFZFUlZJTkcgLnB1bHNlLXdpei1leHBsYWluLXByZXZpZXcgZGUga2FhcnRwcmV2aWV3XG4vLyAoa2xhc3NpZWsvYWNodGVyZ3JvbmQvdnJpaiB2b3JtZ2V2ZW4pIHpvbGFuZyBkZSBBbnR3b29yZGVuL1VpdGxlZy1cbi8vIHNjaGFrZWxhYXIgb3AgXCJleHBsYWluXCIgc3RvbmQuIEtpbSB3aWwgZGUga2FhcnQgQUxUSUpEIHppY2h0YmFhciBob3VkZW46XG4vLyBkZXplIHNoZWV0IHNjaHVpZnQgZXIgbnUgdmFuYWYgZGUgb25kZXJrYW50IE9WRVJIRUVOIChQTE9FUCksIGJpbm5lblxuLy8gLnB1bHNlLXdpei1zdGVwMi1wcmV2aWV3IChkaWUgZGFhcm9tIGBwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OlxuLy8gaGlkZGVuYCBrcmVlZywgemllIGhpZXJib3ZlbikuIGBwb3NpdGlvbjogYWJzb2x1dGVgICsgYGxlZnQvcmlnaHQ6IDBgIGxhYXRcbi8vIGhlbSBkZSB2b2xsZSBicmVlZHRlIHZhbiBkYXQgcGFuZWVsIGFhbmhvdWRlbiAoZ8Opw6luIHNocmluay10by1maXQsIHpvYWxzXG4vLyBlZW4gbG9zLXBvc2l0aW9uZWVyZCBlbGVtZW50IG5vcm1hYWwgem91IGRvZW4g4oCUIG1ldCBsaW5rZXItIMOpblxuLy8gcmVjaHRlcnJhbmQgdmFzdCB3b3JkdCBkZSBicmVlZHRlIGRvb3IgZGllIHR3ZWUgb2Zmc2V0cyBiZXBhYWxkKSwgZW5cbi8vIGBib3R0b206IDBgIGhvdWR0IHppam4gb25kZXJyYW5kIGdlbGlqayBtZXQgZGUgb25kZXJyYW5kIHZhbiBoZXQgcGFuZWVsXG4vLyAoZHVzIG1ldCBkZSBrYWFydCBlcmFjaHRlciwgZGllIGdlZW4gZWlnZW4gbWFyZ2UgaGVlZnQpIGluIHpvd2VsIGRlXG4vLyBkaWNodGUgYWxzIGRlIG9wZW4gc3RhbmQuIGB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSlgIGluIGRlIGRpY2h0ZVxuLy8gc3RhbmQgdmVyc2NodWlmdCBoZW0gemlqbiBFSUdFTiBob29ndGUgbmFhciBiZW5lZGVuIOKAlCBtZXQgYG92ZXJmbG93OlxuLy8gaGlkZGVuYCBvcCBkZSBvdWRlciBpcyBoaWogZGFuIHZvbGxlZGlnIHVpdCBiZWVsZCwgem9uZGVyIGBkaXNwbGF5OiBub25lYFxuLy8gdGUgaG9ldmVuIHpldHRlbiAoZGF0IHpvdSBkZSB0cmFuc2l0aWUgZ2VlbiBiZWdpbnB1bnQgZ2V2ZW4gb20gdmFuYWYgdGVcbi8vIGFuaW1lcmVuKS4gYC5pcy1vcGVuYCAod2l6QXBwbHlFeHBsYWluUHJldmlld1Zpc2liaWxpdHkoKSBpbiBkZXRhaWwuaHRtbClcbi8vIHpldCBoZW0gdGVydWcgb3AgYHRyYW5zbGF0ZVkoMClgOiBoaWogc2NodWlmdCBvbWhvb2cgdG90IHppam4gb25kZXJyYW5kXG4vLyB3ZWVyIG9wIGRlIHBhbmVlbC1vbmRlcnJhbmQgc3RhYXQsIGVuIG92ZXJsYXB0IHpvIGRlIG9uZGVya2FudCB2YW4gZGVcbi8vIGthYXJ0IGVyYWNodGVyLiBFZW4gbGljaHRlIGBib3gtc2hhZG93YCBuYWFyIGJvdmVuIGdlZWZ0IGRlIHNoZWV0XG4vLyB2aXN1ZWxlIGRpZXB0ZSB0Lm8udi4gZGUga2FhcnQgZGllIGVyb25kZXIgYmxpamZ0IGRvb3JzY2hlbWVyZW4gYWFuIGRlXG4vLyByYW5kZW4g4oCUIGhldCBCRVNUQUFOREUga2FhcnQtc2NoYWR1d3Rva2VuICgtLXNoYWRvdy1jYXJkLCBvb2sgb3AgZGVcbi8vIGtsYXNzaWVrZSBrYWFydHByZXZpZXctYnVyZW4gZWxkZXJzIGluIGNvbXBvbmVudHMvdjIpLCBnZWVuIHplbGZ2ZXJ6b25uZW5cbi8vIGtsZXVyLiBgcHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlYCB6ZXQgZGUgdHJhbnNpdGllIHVpdCAoaGV0XG4vLyBzY2hha2VsdCBkYW4gZGlyZWN0LCBnZWVuIFwiUExPRVBcIi1hbmltYXRpZSBtZWVyKSDigJQgZGV6ZWxmZGUgYWZzcHJhYWsgYWxzXG4vLyBlbGRlcnMgaW4gZGUgY29kZWJhc2UgKG1lbW9yeTogZ2VlbiBhbmltYXRpZSB6b25kZXIgZGllIHVpdHpvbmRlcmluZykuXG4ucHVsc2Utd2l6LWV4cGxhaW4tcHJldmlldyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNnB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzIGVhc2U7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWNhcmQsIDAgMXB4IDJweCByZ2JhKDIwLCAyNSwgODAsIDAuMDQpLCAwIDRweCAxNnB4IHJnYmEoMjAsIDI1LCA4MCwgMC4wOCkpO1xuXG4gICAgJi5pcy1vcGVuIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG5cbiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cbn1cbi5wdWxzZS13aXotZXhwbGFpbi1zaGVldCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDIwcHggMTZweCAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHggMjBweCA2cHggNnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtc3VjY2Vzcy01MDAsICMxMjgwNWUpO1xuXG4gICAgJltkYXRhLXRvbmU9XCJ3cm9uZ1wiXSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtd2Fybi1yZWQtNTAwLCAjZGMyNjI2KTtcbiAgICB9XG5cbiAgICAmLWhhbmRsZSB7XG4gICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICBoZWlnaHQ6IDRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1waWxsLCA5OTlweCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtd2hpdGUtNDUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgLjQ1KSk7XG4gICAgfVxuXG4gICAgJi1pY29uIHsgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24sICNmZmYpOyB9XG5cbiAgICAmLXRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbiwgI2ZmZik7XG4gICAgfVxuXG4gICAgJi1ib2R5IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBtYXgtd2lkdGg6IDI2MHB4O1xuICAgICAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24sICNmZmYpO1xuICAgIH1cblxuICAgICYtYnRuIHsgbWFyZ2luLXRvcDogNHB4OyBhbGlnbi1zZWxmOiBzdHJldGNoOyB9XG59XG4vKiBLaW1zIGFjY2VwdGF0aWV0ZXN0IDI2LjA4OiBoZXQgc2NoYWtlbHRqZSBzdGFhdCBvbmRlciBoZXQgZnJhbWUgYWxzXG4gICBnZXdvbmUgcGFuZWVsaW5ob3VkOyBbaGlkZGVuXSBtb2V0IGV4cGxpY2lldCB3aW5uZW4gdmFuIGRlIGVpZ2VuXG4gICBkaXNwbGF5LXJlZ2VscyB2YW4gcWRuYXByby1zZWdtZW50ICh6ZWxmZGUgW2hpZGRlbl0tdmFsa3VpbCBhbHNcbiAgIC5wdWxzZS1vcHQtdmlldy1zZWcsIGthYXJ0IDUvMjIpLiAqL1xuLnB1bHNlLXdpei1leHBsYWluLXRvbmUtc2VnIHsgYWxpZ24tc2VsZjogY2VudGVyOyB9XG4ucHVsc2Utd2l6LWV4cGxhaW4tdG9uZS1zZWdbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLy8gS2FhcnQgOSAoQk9BUkQtcHVsc2UtYW50d29vcmRvcHRpZXMtcmljaHRpbmctYywgMjUuMDguMjAyNik6IHJlc3BvbnNpZWZcbi8vIG1ha2VuIHZhbiBkZSBvcG1hYWstd2l6YXJkLiBWZXJodWlzZCBvcCAyNS4wOC4yMDI2IHVpdFxuLy8gZW5zdXJlUHVsc2VXaXpSZXNwb25zaXZlU3R5bGVzKCkgaW4gZGV0YWlsLmh0bWwg4oCUIHplbGZkZVxuLy8gPHN0eWxlPi1pbi08aGVhZD4tcmVjZXB0IGFscyBrYWFydCA1LzYvOCBoaWVyYm92ZW4sIG9vayBkZXplIGthYXJ0IG1vY2h0XG4vLyBnZWVuIHdpanppZ2luZyBhYW4gZGV6ZSBTQ1NTLXBhcnRpYWwgbWFrZW4uIEJld3VzdCBOQSBkZSBrYWFydCA2LSBlblxuLy8ga2FhcnQgOC1ibG9ra2VuIGhpZXJib3ZlbiBnZXpldCwgb20gZGV6ZWxmZGUgYnJvbnZvbGdvcmRlIChlbiBkdXNcbi8vIGNhc2NhZGUtdWl0a29tc3QgYmlqIGdlbGlqa2Ugc3BlY2lmaWNpdGVpdCkgYWFuIHRlIGhvdWRlbiBhbHMgdG9lbiBkaXRcbi8vIG5vZyBkcmllIGxvcy1nZcOvbmplY3RlZXJkZSA8c3R5bGU+LXRhZ3MgaW4gPGhlYWQ+IHdhcmVuLlxuLy9cbi8vIElQQUQgKH4xMDI0cHgpOiBuaWV0cyBuaWV1d3MgaGllciBub2RpZy4gYC53bS1kaWFsb2dgIChjb21wb25lbnRzL3YyL1xuLy8gb3ZlcmxheS1zaGVsbCArIHdpemFyZC1tb2RhbCkgY2xhbXQgZGUgbW9kYWxicmVlZHRlIGFsIG9wXG4vLyBgY2FsYygxMDB2dyAtIDQ4cHgpYCwgZW4gZGUgYmVzdGFhbmRlIGBAbWVkaWEgKG1heC13aWR0aDogOTAwcHgpYFxuLy8gaGllcmJvdmVuIGluIGRpdCBiZXN0YW5kIChrb3Ata2FhcnRlbiBzdGFwIDEsIGAucHVsc2Utd2l6LXN0ZXAyYC1cbi8vIGtvbG9tbWVuIHN0YXAgMikgbGlndCBPTkRFUiAxMDI0cHgg4oCUIG9wIGVlbiBpUGFkLWJyZWVkdGUgc3RhYW4gZGVcbi8vIGtvbG9tbWVuIGR1cyBhbCBuYWFzdCBlbGthYXIsIHpvbmRlciBkYXQgZGV6ZSBrYWFydCBkYWFyIGlldHMgYWFuIGhvZWZ0XG4vLyB0ZSB2ZXJhbmRlcmVuLlxuLy9cbi8vIFRFTEVGT09OICh+MzkwLTQ4MHB4LCBoaWVyb25kZXIgYWxzIG1heC13aWR0aDogNjAwcHgg4oCUIHJ1aW0gb25kZXIgZGVcbi8vIGJlc3RhYW5kZSA5MDBweC10ZXJ1Z3ZhbCwgZHVzIGdlZW4gb3ZlcmxhcCBtZXQgZGF0IGdlZHJhZyk6IGRlIGtvcFxuLy8gKGthYXJ0IDYpIHN0YXBlbHQgaW4gdHdlZSByaWplbiAodGl0ZWwrcGlsIG1ldCBoZXQga3J1aXNqZSBlcm5hYXN0IG9wXG4vLyByZWdlbCAxLCBoZXQgc2VnbWVudCBlcm9uZGVyIG9wIHJlZ2VsIDIpLCBlbiBoZXQga2FhcnR2b29yYmVlbGQtcGFuZWVsXG4vLyAoYC5wdWxzZS13aXotc3RlcDItcHJldmlld2AsIG1ldCBzaW5kcyBrYWFydCA4IG9vayBkZSBVaXRsZWctcHJldmlld1xuLy8gZXJpbikgd2lzc2VsdCBvbSBuYWFyIGVlbiBrbm9wIFwiVm9vcmJlZWxkXCIgKGAucHVsc2Utd2l6LXByZXZpZXctdHJpZ2dlcmAsXG4vLyBtYXJrdXAgaW4gd2l6U3RlcEh0bWwvc3RlcDJCb2R5IGluIGRldGFpbC5odG1sKS4gRGllIGtub3AgdG9vbnQgaGV0emVsZmRlXG4vLyBwYW5lZWwg4oCUIERFWkVMRkRFIG5vZGUsIG5pZXQgZ2VrbG9vbmQgb2YgdmVycGxhYXRzdCBuYWFyIGVlbiBsb3Ncbi8vIG1vZGFsLWNvbXBvbmVudDogd21xKCkgKGRldGFpbC5odG1sKSB6b2VrdCBiaW5uZW4gI3B1bHNlLXdpemFyZC1tb2RhbCwgZW5cbi8vIGFsbGUgbGl2ZS1iaWp3ZXJrZXJzIHZhbiBrYWFydCA3LzggKHdpelJlbmRlckNsYXNzaWNQaG90byxcbi8vIHdpekFwcGx5QmFja2dyb3VuZFRvQ2FudmFzLCB3aXpSZWZyZXNoRXhwbGFpblByZXZpZXcsIC4uLikgbG9wZW4gdmlhXG4vLyB3bXEoKS4gVmVycGxhYXRzZW4gbmFhciBlZW4gYXBhcnQgPHFkbmFwcm8tbW9kYWw+IHpvdSBkaWUgcmVmZXJlbnRpZXNcbi8vIGJyZWtlbiDigJQgdmFuZGFhciBlZW4gY2xhc3MgKGAucHVsc2Utd2l6LXByZXZpZXctb3BlbmApIGkucC52LiBlZW4gdHdlZWRlXG4vLyBtb2RhbC1zY2hpbC4gWmllIHdpelNldFByZXZpZXdPdmVybGF5KCkgaW4gZGV0YWlsLmh0bWwgdm9vciBoZXRcbi8vIG9wZW5lbi9zbHVpdGVuLlxuLnB1bHNlLXdpei1wcmV2aWV3LXRyaWdnZXIgeyBkaXNwbGF5OiBub25lOyB9XG4ucHVsc2Utd2l6LXByZXZpZXctY2xvc2UgeyBkaXNwbGF5OiBub25lOyB9XG4ucHVsc2Utd2l6LXByZXZpZXctc2NyaW0geyBkaXNwbGF5OiBub25lOyB9XG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAvLyBLb3A6IHRpdGVsK3BpbCBlbiBrcnVpc2plIG9wIHJlZ2VsIDEsIHNlZ21lbnQgb3AgcmVnZWwgMi5cbiAgICAucHVsc2Utd2l6LWhkciB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgYXV0bztcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJ0aXRsZSBjbG9zZVwiIFwic2VnIHNlZ1wiO1xuICAgICAgICByb3ctZ2FwOiAxMHB4O1xuICAgIH1cbiAgICAucHVsc2Utd2l6LWhkci1sZWZ0IHsgZ3JpZC1hcmVhOiB0aXRsZTsgfVxuICAgIC5wdWxzZS13aXotY2xvc2UtYnRuIHsgZ3JpZC1hcmVhOiBjbG9zZTsgfVxuICAgIC8vIG1pbi13aWR0aDowIG9wIGJlaWRlOiB6b25kZXIgZGV6ZSByZWdlbCBkdXd0IGhldCBzZWdtZW50IChkcmllIGJyZWRlXG4gICAgLy8gdGFiLWxhYmVscywgXCJzbGlkaW5nLXBpbGxzXCItdmFyaWFudCkgZGUgcmFzdGVya29sb20gYnJlZGVyIGRhbiBkZVxuICAgIC8vIGJlc2NoaWtiYXJlIHJ1aW10ZSDigJQgemVsZmRlIHZhbCBhbHMgZGUgbWluLXdpZHRoOjAtcmVnZWwgYmlqXG4gICAgLy8gLnB1bHNlLXR5cGUtY2FyZCBoaWVyYm92ZW4uIEdlbWV0ZW4gKGhlYWRsZXNzLCAzOTBweCk6IHpvbmRlciBkZXplXG4gICAgLy8gcmVnZWwgc3RhayBoZXQgc2VnbWVudCAzMHB4IGxpbmtzIHZhbiBkZSBrb3AgdWl0OyBtZXQgZGV6ZSByZWdlbFxuICAgIC8vIG5pZXQgbWVlci5cbiAgICAucHVsc2Utd2l6LWVkaXQtc2VnLXdyYXAgeyBncmlkLWFyZWE6IHNlZzsganVzdGlmeS1zZWxmOiBzdHJldGNoOyBtaW4td2lkdGg6IDA7IH1cbiAgICAucHVsc2Utd2l6LWVkaXQtc2VnLXdyYXAgcWRuYXByby1zZWdtZW50IHsgd2lkdGg6IDEwMCU7IG1pbi13aWR0aDogMDsgfVxuICAgIC8vIEdlZW4gc2VnbWVudCAoYWFubWFha3N0YW5kKTogZ2VlbiBsZWdlIHJpai10dXNzZW5ydWltdGUgb3ZlcmhvdWRlbi5cbiAgICAucHVsc2Utd2l6LWhkcjpoYXMoLnB1bHNlLXdpei1lZGl0LXNlZy13cmFwW2hpZGRlbl0pIHsgcm93LWdhcDogMDsgfVxuICAgIC8vIEthYXJ0dm9vcmJlZWxkLXBhbmVlbDoga25vcCBpLnAudi4gcGFuZWVsLCB0ZW56aWogZ2VvcGVuZC5cbiAgICAucHVsc2Utd2l6LXByZXZpZXctdHJpZ2dlciB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBtYXJnaW4tYm90dG9tOiAxNHB4OyB9XG4gICAgLnB1bHNlLXdpei1zdGVwMi1wcmV2aWV3IHsgZGlzcGxheTogbm9uZTsgfVxuICAgIC5wdWxzZS13aXotc3RlcDItcHJldmlldy5wdWxzZS13aXotcHJldmlldy1vcGVuIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBpbnNldDogMTZweDtcbiAgICAgICAgei1pbmRleDogNTtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgcGFkZGluZzogNDRweCAxNnB4IDE2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgICAgIC8vIFplbGZkZSB0b2tlbnMgYWxzIGVsayBhbmRlciB6ZWxmc3RhbmRpZyB2ZW5zdGVyICgucW9zLXdpbmRvdy9cbiAgICAgICAgLy8gLnFkbmFwcm8td2l6YXJkLXN0ZXApLCBuaWV0IHplbGZ2ZXJ6b25uZW4gbmFtZW4uXG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLW92ZXJsYXktd2luZG93LWJnLCAjZmZmKTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tb3ZlcmxheS1mcmFtZS1zaGFkb3csIDAgNHB4IDRweCByZ2JhKDAsIDAsIDAsIC4zMCksIDAgOHB4IDEycHggNnB4IHJnYmEoMCwgMCwgMCwgLjE1KSk7XG4gICAgfVxuICAgIC5wdWxzZS13aXotcHJldmlldy1zY3JpbS5wdWxzZS13aXotcHJldmlldy1vcGVuIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDQ7XG4gICAgICAgIC8vIEJlc3RhYW5kIHRva2VuICh6aWUgLnFvcy1zY3JpbSBpbiBjb21wb25lbnRzL3YyL292ZXJsYXktc2hlbGwpLFxuICAgICAgICAvLyBuaWV0IGVlbiB6ZWxmdmVyem9ubmVuIG5hYW0g4oCUIGRlemVsZmRlIHNjcmlta2xldXIgYWxzIGVsayBhbmRlclxuICAgICAgICAvLyB6ZWxmc3RhbmRpZyB2ZW5zdGVyIGluIGRlIGFwcC5cbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tb3ZlcmxheS1zY3JpbSwgcmdiYSgxMSwgMTEsIDEzLCAuNDUpKTtcbiAgICB9XG4gICAgLnB1bHNlLXdpei1zdGVwMi1wcmV2aWV3IC5wdWxzZS13aXotcHJldmlldy1jbG9zZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgfVxufVxuXG4vKiBTdGFwLTItZm91dG1lbGRpbmc6IHplbGZkZSBzdGlqbCBhbHMgZGUgZ2VkZWVsZGUgI3B1bHNlLXdpei1lcnJvciBvcCBzdGFwIDNcbiAgICgucHVsc2Utc20tZXJyb3IgaGllcmJvdmVuIHJlZ2VsdCBoZXQgdWl0ZXJsaWprIGFsKSwgaGllciBhbGxlZW4gZGUgbWFyZ2VcbiAgIHRvdCBkZSBsYWF0c3RlIHZlbGRibG9rIGVyYm92ZW4uICovXG4jcHVsc2Utd2l6LXN0ZXAyLWVycm9yIHsgbWFyZ2luLXRvcDogMTZweDsgfVxuXG4vKiBTdGFwIDM6IHJlYWN0aWVzLXNjaGFrZWxhYXIuIHFkbmFwcm8tbGlzdC1yb3cgbGV2ZXJ0IGRlIHJpaiBhbCAobGFiZWwgK1xuICAgaGludCArIHRyYWlsaW5nLXNsb3QpOyBhbGxlZW4gd2F0IGx1Y2h0IGVyYm92ZW4sIHplbGZkZSBtYWF0IGFscyBkZSBhbmRlcmVcbiAgIC5wdWxzZS1zbS1maWVsZC1ibG9ra2VuLiAqL1xuLnB1bHNlLXdpei1jb21tZW50cy1yb3cgeyBtYXJnaW4tdG9wOiAxOHB4OyB9XG5cbi8qIEtpbSAwMi4wOS4yMDI2OiBrZXlsaW5lcyB0dXNzZW4gcGxhbm5pbmcgLyByZWFjdGllcyAvIHNjb3JlLCB6b2RhdCBkZSBrb2xvbVxuICAgZHJpZSBvbmRlcmRlbGVuIHRvb250IGluIHBsYWF0cyB2YW4gZWVuIGRvb3Jsb3BlbmRlIGxpanN0IHZlbGRlbi4gSGV0XG4gICBiZXN0YWFuZGUgYXRvb20gcWRuYXByby1kaXZpZGVyIHRla2VudCBkZSBsaWpuOyBoaWVyIGFsbGVlbiBkZSBydWltdGVcbiAgIGVyb21oZWVuLiBEZSByaWogZXJvbmRlciBkcmFhZ3QgemVsZiBhbCAxOHB4LCBkdXMgZGllIGthbnQgaXMgc21hbGxlci4gKi9cbi5wdWxzZS13aXota2V5bGluZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAxOHB4IDAgMDtcbn1cblxuLyogSGV0IFNjb3JlLWJsb2s6IGtvcGplLCB1aXRsZWcsIGVuIGRlIHZlcmR1YmJlbGFhciBhbHMgbG9zc2UgdGVnZWxcbiAgIChxZG5hcHJvLXJhZGlvLXRpbGUgaW4gdG9nZ2xlLXN0YW5kKS4gVmVyaHVpc2QgdmFuIGRlIGFudHdvb3JkZW5iYWxrIG9wXG4gICBzdGFwIDIuICovXG4ucHVsc2Utd2l6LXNjb3JlIHsgbWFyZ2luLXRvcDogMThweDsgfVxuLnB1bHNlLXdpei1zY29yZVtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLnB1bHNlLXdpei1zY29yZSAucHVsc2Utc20tbGFiZWwgeyBkaXNwbGF5OiBibG9jazsgfVxuLnB1bHNlLXdpei1zY29yZS1sZWFkIHsgbWFyZ2luOiA0cHggMCAxMnB4OyB9XG4ucHVsc2Utd2l6LXNjb3JlIC5wdWxzZS1zbS1oaW50IHsgbWFyZ2luLXRvcDogMTBweDsgfVxuXG4vKiAtLS0gRG9lbGdyb2VwcGFuZWVsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5wdWxzZS1hdWRpZW5jZS1zZWcgeyBtYXJnaW4tYm90dG9tOiAxNnB4OyB9XG4ucHVsc2UtYXVkaWVuY2UtYmxvY2tbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5wdWxzZS1hdWRpZW5jZS1maWVsZCB7IG1hcmdpbi1ib3R0b206IDE0cHg7IH1cbi5wdWxzZS1hdWRpZW5jZS1zdW1tYXJ5IHtcbiAgICBtYXJnaW46IDRweCAwIDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA2cHg7XG59XG4ucHVsc2UtYXVkaWVuY2UtZW1wdHkge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7XG59XG4ucHVsc2UtYXVkaWVuY2Utbm90ZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMTJweCAxNHB4O1xuICAgIGJhY2tncm91bmQ6ICNlZWYwZmI7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE5cHg7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG59XG4ucHVsc2UtYXVkaWVuY2Utbm90ZSBxZG5hcHJvLWljb24geyBmbGV4LXNocmluazogMDsgbWFyZ2luLXRvcDogMXB4OyB9XG4ucHVsc2UtYXVkaWVuY2UtZm9vdCB7IG1hcmdpbi10b3A6IDE2cHg7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgZmxleC13cmFwOiB3cmFwOyB9XG4ucHVsc2UtYXVkaWVuY2Utc3RhdHVzIHsgZm9udC1zaXplOiAxMi41cHg7IGNvbG9yOiAjMWQ5ZTc1OyB9XG4ucHVsc2UtYXVkaWVuY2Utc3RhdHVzW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4ucHVsc2UtYXVkaWVuY2UtZXJyb3IgeyBmb250LXNpemU6IDEyLjVweDsgY29sb3I6ICNkODQ0MmU7IH1cbi5wdWxzZS1hdWRpZW5jZS1lcnJvcltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG4vKiAtLS0gVm9vcmJlZWxkIChcIkJla2lqayBhbHMgZGVlbG5lbWVyXCIpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnB1bHNlLXByZXZpZXctZGF5IHtcbiAgICBtYXJnaW46IDIycHggMCAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7XG59XG4ucHVsc2UtcHJldmlldy1kYXk6Zmlyc3QtY2hpbGQgeyBtYXJnaW4tdG9wOiA0cHg7IH1cbi5wdWxzZS1wcmV2aWV3LWNhcmQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQsICNlNWU1ZWEpO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgcGFkZGluZzogMTZweCAxOHB4IDE4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xufVxuLnB1bHNlLXByZXZpZXcta2luZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBmb250LXNpemU6IDExLjVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xufVxuLnB1bHNlLXByZXZpZXctdGl0bGUgeyBtYXJnaW46IDAgMCA4cHg7IGZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDIycHg7IGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzM5NDI5MCk7IH1cbi5wdWxzZS1wcmV2aWV3LWJvZHkgeyBmb250LXNpemU6IDEzLjVweDsgbGluZS1oZWlnaHQ6IDIxcHg7IGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSwgIzFjMWUyYSk7IH1cbi5wdWxzZS1wcmV2aWV3LWJvZHkgcDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuLyogS2FhcnQgNiAoQk9BUkQtcHVsc2UtcHdhLWluaGFhbHNsYWcpOiBgcG9zaXRpb246IHJlbGF0aXZlYCB6b2RhdCBkZVxuICAgYmV3ZWdlbmRlLWljb25zLWxhYWcgKC5wdWxzZS1wcmV2aWV3LWltYWdlLW92ZXJsYXkpIGVyIGV4YWN0IG92ZXJoZWVuIGthblxuICAgbGlnZ2VuLCBwcm9jZW50dWVlbCB0Lm8udi4gZGV6ZWxmZGUgYm94IGFscyBkZSA8aW1nPiDigJQgZ2VlbiB2YXN0ZVxuICAgYXNwZWN0LXJhdGlvLCBkZSBmb3RvIGJlaG91ZHQgZ2V3b29uIHppam4gZWlnZW4gdmVyaG91ZGluZy4gKi9cbi5wdWxzZS1wcmV2aWV3LWltYWdlIHsgcG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tdG9wOiAxMnB4OyB9XG4vKiAyOC4wOC4yMDI2OiByb25kaW5nIGVyYWYuIEJlc2x1aXQgOCBtYWFrdGUgYmVlbGQgaW4gZWVuIFB1bHNlLWthYXJ0IG92ZXJhbCBlZW5cbiAgIHJlY2h0ZSBiYW5kLCBvb2sgZGUgZm90bzsgZGl0IHZvb3JiZWVsZCBob29yZGUgZGFhciBub2cgbmlldCBiaWouICovXG4ucHVsc2UtcHJldmlldy1pbWFnZSBpbWcgeyBtYXgtd2lkdGg6IDEwMCU7IGJvcmRlci1yYWRpdXM6IDA7IGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qIEthYXJ0IDYg4oCUIGJld2VnZW5kZSBpY29ucyBvcCBkZSBrYWFydGZvdG8gKGltYWdlX21hcmt1cF9qc29uKS4gWmVsZmRlXG4gICBpZGlvb20gYWxzIGRlIC5xcGMtb3ZlcmxheS1sYWFnIHZhbiBxZG5hcHJvLXB1bHNlLWNhbnZhcyBoaWVyb25kZXJcbiAgIChwb3NpdGlvbiBhYnNvbHV0ZSwgcG9pbnRlci1ldmVudHMgbm9uZSBvcCBkZSBsYWFnIHplbGYsIGdlZW4ga2xpayBob29ydFxuICAgZWVuIHNwZWxlciB0ZSByYWtlbikuIFBvc2l0aWUvYnJlZWR0ZSBrb21lbiBhbHMgaW5saW5lIHN0eWxlIHBlciBpdGVtIG1lZVxuICAgKHB1bHNlUHJldmlld01hcmt1cE92ZXJsYXkoKSBpbiBkZXRhaWwuaHRtbCksIGhpZXIgYWxsZWVuIGRlIHZhc3RlIHZvcm0uICovXG4ucHVsc2UtcHJldmlldy1pbWFnZS1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucHVsc2UtcHJldmlldy1pbWFnZS1vdmVybGF5LWl0ZW0ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5wdWxzZS1wcmV2aWV3LWltYWdlLW92ZXJsYXktaXRlbSBxZG5hcHJvLWxvdHRpZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLyogMjguMDguMjAyNjogYGhlaWdodDoxMDAlYCBlbiBOSUVUIGBhc3BlY3QtcmF0aW86MS8xYC4gSGV0IGNvbXBvbmVudCB6ZXRcbiAgICAgICB6aWNoemVsZiBkZSBrbGFzc2UgYHFkbmFwcm8tbG90dGllYCBlbiBkaWUgZHJhYWd0XG4gICAgICAgYGhlaWdodDp2YXIoLS1xbC1zaXplKWAgKDQ4cHgpLiBFZW4gZXhwbGljaWV0ZSBob29ndGUgd2ludCB2YW5cbiAgICAgICBhc3BlY3QtcmF0aW8sIGR1cyBlbGtlIHN0aWNrZXIgd2VyZCBwbGF0Z2VkcnVrdCB0b3QgZWVuIHN0cmVlcCAoZ2VtZXRlbjpcbiAgICAgICA0MjR4NDggdGVyd2lqbCBoaWogdmllcmthbnQgaG9vcnQpLiBIZXQgaXRlbSB6ZWxmIGtyaWpndCBudSB6aWpuIGhvb2d0ZVxuICAgICAgIGlubGluZSBtZWUsIG5ldCBhbHMgaW4gZGUgYXBwIChwdWxzZVByZXZpZXdNYXJrdXBPdmVybGF5IGluIGRldGFpbC5odG1sKTtcbiAgICAgICBkZXplIHJlZ2VsIGxhYXQgZGUgc3BlbGVyIGRpZSBob29ndGUgdnVsbGVuLiAqL1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4vKiBLYWFydCA2IOKAlCBsYXlvdXQgXCJhY2h0ZXJncm9uZFwiIGluIGhldCBkZWVsbmVtZXItdm9vcmJlZWxkOiBkZXplbGZkZVxuICAgcWRuYXByby1wdWxzZS1jYW52YXMgYWxzIGRlIHdpemFyZC1wcmV2aWV3ICgucHVsc2Utd2l6LWJnLWNhbnZhcy13cmFwXG4gICBoaWVyYm92ZW4pLCBlaWdlbiB3cmFwcGVyIG9tZGF0IGRpZSBzZWxlY3RvciBlciBuaWV0IG9wIHBhc3QuICovXG4vKiAyOC4wOC4yMDI2IChlaW5kdmVyaWZpY2F0aWUpOiBkaXQgdm9vcmJlZWxkIGlzIGJlZG9lbGQgb20gdGUgdG9uZW4gd2F0IGRlXG4gICBERUVMTkVNRVIgc3RyYWtzIHppZXQsIGVuIGluIGRlIGFwcCBzdGFhdCBoZXQgYmVlbGQgcmFuZC10b3QtcmFuZCBpbiBkZSBrYWFydFxuICAgKG1hcmdpbiAwIC0xNnB4ICsgd2lkdGggY2FsYygxMDAlICsgMzJweCksIHppZSBfcHdhLWN1cnJlbnQuc2NzcyBcIlB1bnQgMlwiKS5cbiAgIEhpZXIgc3RvbmQgaGV0IG5vZyBiaW5uZW4gZGUgMThweCBwYWRkaW5nIHZhbiAucHVsc2UtcHJldmlldy1jYXJkLCBkdXMgaGV0XG4gICB2b29yYmVlbGQgd2VlayBhZiB2YW4gZGUgYXBwIG9wIHByZWNpZXMgaGV0IHB1bnQgd2FhcnZvb3IgZGl0IGhlbGUgYm9yZFxuICAgYmVzdGFhdC4gRGUgbmVnYXRpZXZlIG1hcmdlcyBoaWVyb25kZXIgaGFsZW4gZGUga2FhcnRwYWRkaW5nIGVyIHdlZXIgYWYuICovXG4ucHVsc2UtcHJldmlldy1iZy1jYW52YXMtd3JhcCB7XG4gICAgbWFyZ2luOiA0cHggLTE4cHggMDtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgMzZweCk7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgKyAzNnB4KTtcbn1cbi8qIEthYXJ0IDY6IGBib3JkZXItcmFkaXVzOiAxMnB4YCBpcyBoaWVyIG9vayB3ZWcg4oCUIHplbGZkZSByZWRlbiBhbHMgYmlqXG4gICAucHVsc2Utd2l6LWJnLWNhbnZhcy13cmFwIGhpZXJib3ZlbiAoZGUga2FhcnQgaXMgb3ZlcmFsIHJlY2h0OyBoZXQgdmVyc2NoaWxcbiAgIHR1c3NlbiB3aXphcmQsIHZvb3JiZWVsZCBlbiBhcHAgd2FzIGp1aXN0IGRlIGtsYWNodCkuICovXG4ucHVsc2UtcHJldmlldy1iZy1jYW52YXMtd3JhcCBxZG5hcHJvLXB1bHNlLWNhbnZhcyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLyogMjguMDguMjAyNjogMTYvMTAgZW4gTklFVCAxNi85LiBEZSBjcm9wIGRpZSBkZSBnZWJydWlrZXIgbW9ldCBkb29ybG9wZW5cbiAgICAgICAoUFVMU0VfUEhPVE9fQ1JPUF9SQVRJTyBpbiBkZXRhaWwuaHRtbCksIGhldCBjb21wb25lbnQgemVsZiBlbiBkZSBrYWFydCBpblxuICAgICAgIGRlIGFwcCBzdGFhbiBhbGxlIGRyaWUgb3AgMTYvMTA7IGFsbGVlbiBkZSB3aXphcmQtZnJhbWVzIHN0b25kZW4gb3AgMTYvOS5cbiAgICAgICBEYWFyZG9vciBvbnR3aWVycCBqZSBvcCBlZW4gYW5kZXIgdmxhayBkYW4gamUgdGVydWdrcmVlZywgd2F0IHByZWNpZXMgZGVcbiAgICAgICBrbGFjaHQgdmFuIEtpbSB3YXMgKCdkZSB2ZXJob3VkaW5nZW4gbW9ldGVuIGdlbGlqayB6aWpuJykuICovXG4gICAgYXNwZWN0LXJhdGlvOiAxNiAvIDEwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIFc2IChmYXNlIDQpIOKAlCBkZSB2aWRlb3N0YXAgaW4gaGV0IHZvb3JiZWVsZC4gRWVuIGFhbmR1aWRpbmcsIGdlZW4gc3BlbGVyOiBpbiBkZVxuICAgYmFja29mZmljZSBnZWVuIFlvdVR1YmUta2FkZXIgaW5sYWRlbiAoemllIGRlIG9wbWVya2luZyBpbiBkZXRhaWwuaHRtbCkuICovXG4ucHVsc2UtcHJldmlldy12aWRlbyB7XG4gICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLXRvcDogMTBweDsgcGFkZGluZzogMTBweCAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7IGJhY2tncm91bmQ6ICNlZWYwZmI7XG4gICAgZm9udC1zaXplOiAxMi41cHg7IGxpbmUtaGVpZ2h0OiAxOHB4OyBjb2xvcjogIzQwNDk5YTtcbn1cbi5wdWxzZS1wcmV2aWV3LXZpZGVvIHFkbmFwcm8taWNvbiB7IGZsZXgtc2hyaW5rOiAwOyB9XG4ucHVsc2UtcHJldmlldy1vcHRpb25zIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiA4cHg7IG1hcmdpbi10b3A6IDEycHg7IH1cbi5wdWxzZS1wcmV2aWV3LW9wdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBwYWRkaW5nOiAxMXB4IDE0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCwgI2U1ZTVlYSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xuICAgIGZvbnQtc2l6ZTogMTMuNXB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjMWMxZTJhKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2UsIGJhY2tncm91bmQgMTIwbXMgZWFzZTtcbn1cbi5wdWxzZS1wcmV2aWV3LW9wdDpob3ZlciB7IGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtMzAwLCAjYTlhZGRlKTsgYmFja2dyb3VuZDogI2Y3ZjhmZjsgfVxuLyogS2FhcnQgNiDigJQgZGUgTE9LQUxFIHNlbGVjdGllLXN0YW5kIHZhbiBlZW4gbWVlcmtldXplLWtlbm5pc3ZyYWFnLCB2w7PDs3IgZGVcbiAgIGJldmVzdGlna25vcDogbm9nIGdlZW4gb29yZGVlbCAoZGF0IGJsaWpmdCBpcy1jb3JyZWN0L2lzLXdyb25nKSwgYWxsZWVuXG4gICBcImRpdCBoZWIgaWsgYWFuZ2V2aW5rdFwiLiBOYSAucHVsc2UtcHJldmlldy1vcHQ6aG92ZXIgaW4gZGUgYnJvbiB6b2RhdCBoaWpcbiAgIGJpaiBnZWxpamtlIHNwZWNpZmljaXRlaXQgd2ludCBvdmVyIGRlIGhvdmVyLXRpbnQuICovXG4ucHVsc2UtcHJldmlldy1vcHQuaXMtc2VsZWN0ZWQgeyBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjMzk0MjkwKTsgYmFja2dyb3VuZDogI2VlZjBmYjsgfVxuLnB1bHNlLXByZXZpZXctb3B0LmlzLWNvcnJlY3QgeyBib3JkZXItY29sb3I6ICMxZDllNzU7IGJhY2tncm91bmQ6ICNlYWZhZjM7IGNvbG9yOiAjMTA2MDRhOyB9XG4ucHVsc2UtcHJldmlldy1vcHQuaXMtd3JvbmcgICB7IGJvcmRlci1jb2xvcjogI2Q4NDQyZTsgYmFja2dyb3VuZDogI2ZkZWVlYjsgY29sb3I6ICM4ZTI3MTg7IH1cbi5wdWxzZS1wcmV2aWV3LW9wdCBxZG5hcHJvLWljb24geyBmbGV4LXNocmluazogMDsgfVxuLyogS2FhcnQgNiDigJQgZGUgYmV2ZXN0aWdrbm9wIHZhbiBlZW4gbWVlcmtldXplLWtlbm5pc3ZyYWFnLCB2bGFrIG9uZGVyIGRlXG4gICBvcHRpZXM7IHZlcmR3aWpudCBuYSBiZXZlc3RpZ2VuICh6aWUgcHVsc2VQcmV2aWV3Q29uZmlybU11bHRpKCkgaW5cbiAgIGRldGFpbC5odG1sKSwgemVsZmRlIFtoaWRkZW5dLXJlZ2VsIGFscyAucHVsc2UtcHJldmlldy1mZWVkYmFjayBoaWVyb25kZXIuICovXG4ucHVsc2UtcHJldmlldy1tdWx0aS1jb25maXJtIHsgbWFyZ2luLXRvcDogMTBweDsgfVxuLnB1bHNlLXByZXZpZXctbXVsdGktY29uZmlybVtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLnB1bHNlLXByZXZpZXctZmVlZGJhY2sge1xuICAgIG1hcmdpbjogMTJweCAwIDA7XG4gICAgcGFkZGluZzogMTJweCAxNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogI2VlZjBmYjtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE5cHg7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG59XG4ucHVsc2UtcHJldmlldy1mZWVkYmFja1toaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLnB1bHNlLXByZXZpZXctaGludCB7IG1hcmdpbjogMTBweCAwIDA7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpOyB9XG4ucHVsc2UtcHJldmlldy1lbXB0eSB7IHBhZGRpbmc6IDQwcHggOHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI2ODg0KTsgfVxuXG4vKiAtLS0gU3RhdGlzdGlla2VuIChXNykgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIEhldCBwYW5lZWwgbG9vcHQgb3ZlciBCRUlERSBrb2xvbW1lbiB2YW4gZGUgcGFnaW5hLWdyaWQuIEVlbiBnZWdyb2VwZWVyZGVcbiAgIHN0YWFmZ3JhZmllayBpbiBkZSAzNDBweC1rb2xvbSBuYWFzdCBkZSB0aWpkbGlqbiBpcyBvbmxlZXNiYWFyLCBkdXMgaGlqIGtvbXRcbiAgIG92ZXIgZGUgdm9sbGUgYnJlZWR0ZSBvbmRlciBkZSB0d2VlIHBhbmVsZW4gdGUgc3RhYW4uICovXG4vKiAtLS0gR2VzcHJla2tlbiAvIG1vZGVyYXRpZSAoRjItVzMpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFZvbGxlIGJyZWVkdGUsIG5ldCBhbHMgZGUgc3RhdGlzdGllazogZWVuIGdlc3ByZWsgcGVyIHN0YXAgaXMgZWVuIGJyZWRlIGxpanN0LFxuICAgZ2VlbiB6aWprb2xvbS4gSGV0IHBhbmVlbCB3b3JkdCBhbGxlZW4gZ2VyZW5kZXJkIHZvb3IgZWVuIEJFSEVFUkRFUiDigJQgZWVuXG4gICBraWprZXIgaGVlZnQgaGllciBuaWV0cyB0ZSB6b2VrZW4sIHZvb3IgaGVtIGlzIGhldCBnZXNwcmVrIGluIGRlIGFwcCBkZSBwbGVrLiAqL1xuLnB1bHNlLW1vZC1wYW5lbCB7IGdyaWQtY29sdW1uOiAxIC8gLTE7IH1cblxuLnB1bHNlLW1vZC1zZXR0aW5nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEycHggMThweDtcbiAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gICAgbWFyZ2luOiA0cHggMCAyMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlY2ViZjQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmJmYmZlO1xufVxuLnB1bHNlLW1vZC1zZXR0aW5nLXRleHQgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDJweDsgbWluLXdpZHRoOiAyMjBweDsgZmxleDogMSAxIDMyMHB4OyB9XG4ucHVsc2UtbW9kLXNldHRpbmctbGFiZWwgeyBmb250LXNpemU6IDEzLjVweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6ICMyZjJkNDU7IH1cbi5wdWxzZS1tb2Qtc2V0dGluZy1oaW50ICB7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6ICM2YjY4ODQ7IGxpbmUtaGVpZ2h0OiAxLjQ1OyB9XG4ucHVsc2UtbW9kLXNldHRpbmctY29udHJvbCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgZmxleDogMCAwIGF1dG87IH1cblxuLyog4pqg77iPIFpvbmRlciBlZW4gYnJlZWR0ZSBISUVSIHdvcmR0IHpvJ24gdmVsZCA5NnB4IGJyZWVkIGVuIGlzIHppam4gZWlnZW4gaW5ob3VkXG4gICBvbmxlZXNiYWFyLiBgcWRuYXByby1zZWxlY3RgIHN0YWF0IG9wIGB3aWR0aDogMTAwJWA6IGhldCBjb21wb25lbnQgbGFhdCB6aWNoXG4gICBiZXd1c3QgZG9vciB6aWpuIG9taHVsc2VsIG9wbWV0ZW4uIE1hYXIgZGl0IG9taHVsc2VsIGlzIGVlbiBmbGV4LWl0ZW0gem9uZGVyXG4gICBiYXNpcywgZHVzIGhldCBrcmltcHQgdG90IGRlIGluaG91ZCwgZW4gZGllIGluaG91ZCB2cmFhZ3QgemlqbiBicmVlZHRlIHdlZXJcbiAgIGFhbiBoZXQgb21odWxzZWwuIERhdCBsb29wdCByb25kIGVuIGVpbmRpZ3Qgb3AgZGUgbWluaW1hbGUgbWFhdDogXCJPbmJlcGVya3RcIlxuICAgd2VyZCBcIk9u4oCmXCIgZW4gXCIwOTowMFwiIHdlcmQgXCIwKOKAplwiLCB0ZXJ3aWpsIGVyIHJlY2h0cyBlZW4gaGFsdmUgcGFnaW5hIGxlZWdcbiAgIHN0b25kLiBEZSBicmVlZHRlIGhvb3J0IGR1cyBvcCBoZXQgb21odWxzZWwsIG5pZXQgaW4gaGV0IGNvbXBvbmVudC5cbiAgIERlIGRyaWUgdmVsZGVuIHN0YWFuIG9wIGRlemVsZmRlIG1hYXQsIGFuZGVycyB3b3JkdCBkZSByZWNodGVya29sb20gcmFmZWxpZy5cblxuICAg4pqg77iPIEFsbGVlbiBESVJFQ1RFIGtpbmRlcmVuOiBkZSB0cmlnZ2VyIHbDoW4gZGUgc2VsZWN0IGlzIHplbGYgb29rIGVlblxuICAgYHFkbmFwcm8taW5wdXRgLCBlbiBkaWUgaG9vcnQgZGUgdm9sbGUgYnJlZWR0ZSB2YW4gemlqbiBzZWxlY3QgdGUgaG91ZGVuLiAqL1xuLnB1bHNlLW1vZC1zZXR0aW5nLWNvbnRyb2wgPiBxZG5hcHJvLXNlbGVjdCxcbi5wdWxzZS1tb2Qtc2V0dGluZy1jb250cm9sID4gcWRuYXByby1pbnB1dCB7IGZsZXg6IDAgMCBhdXRvOyB3aWR0aDogMTkwcHg7IH1cbi5wdWxzZS1tb2Qtc2F2ZWQge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzFkOWU3NTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjJzIGVhc2U7XG59XG4ucHVsc2UtbW9kLXNhdmVkW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG5cbi5wdWxzZS1tb2Qtc3RlcCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2VmZWVmNjtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIHBhZGRpbmc6IDE0cHggMTZweCAxMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG59XG4ucHVsc2UtbW9kLXN0ZXA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cbi5wdWxzZS1tb2Qtc3RlcC1oZWFkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICBnYXA6IDEwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5wdWxzZS1tb2Qtc3RlcC10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxMy41cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzJmMmQ0NTtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG59XG4ucHVsc2UtbW9kLXN0ZXAtY291bnQgeyBmb250LXNpemU6IDExLjVweDsgY29sb3I6ICM4YTg3YTA7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLnB1bHNlLW1vZC1saXN0IHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxMHB4OyBtYXJnaW4tYm90dG9tOiAxMnB4OyB9XG4ucHVsc2UtbW9kLWVtcHR5LXN0ZXAgeyBmb250LXNpemU6IDEyLjVweDsgY29sb3I6ICM4YTg3YTA7IG1hcmdpbjogMCAwIDEycHg7IH1cblxuLnB1bHNlLW1vZC1jIHtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmN2Y3ZmI7XG4gICAgcGFkZGluZzogOXB4IDExcHg7XG59XG4ucHVsc2UtbW9kLWMuaXMtYWRtaW4geyBiYWNrZ3JvdW5kOiAjZjNmMmZkOyBib3JkZXI6IDFweCBzb2xpZCAjZTZlM2ZhOyB9XG4ucHVsc2UtbW9kLWMtaGVhZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbn1cbi5wdWxzZS1tb2QtYy1hdXRob3IgeyBmb250LXNpemU6IDEyLjVweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6ICMyZjJkNDU7IH1cbi5wdWxzZS1tb2QtYy10aW1lICAgeyBmb250LXNpemU6IDExLjVweDsgY29sb3I6ICM4YTg3YTA7IH1cbi5wdWxzZS1tb2QtYy1zcGFjZXIgeyBmbGV4OiAxIDEgYXV0bzsgfVxuLnB1bHNlLW1vZC1jLWJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICMzYTM4NTI7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG59XG4ucHVsc2UtbW9kLWMuaXMtZGVsZXRlZCAucHVsc2UtbW9kLWMtYm9keSB7IGNvbG9yOiAjOWQ5YWIwOyB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsgfVxuLnB1bHNlLW1vZC1jLWdvbmUge1xuICAgIG1hcmdpbjogNnB4IDAgMDtcbiAgICBmb250LXNpemU6IDExLjVweDtcbiAgICBjb2xvcjogIzhhODdhMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xufVxuLnB1bHNlLW1vZC1jLWdvbmUgcWRuYXByby1pY29uIHsgZmxleC1zaHJpbms6IDA7IG1hcmdpbi10b3A6IDFweDsgfVxuXG4vKiBIZXQgYW50d29vcmR2ZWxkIFdSQVBUIG9wIHNtYWwgaW4gcGxhYXRzIHZhbiB0ZSBrcmltcGVuLiBab25kZXIgZGllIHdyYXBcbiAgIHBlcnN0IGRlIGtub3AgaGV0IGludm9lcnZlbGQgc2FtZW4gdG90IGVlbiBrb2xvbSB2YW4gZW5rZWxlIHRla2VucywgZW4gZGFuXG4gICBsb29wdCBkZSBwbGFjZWhvbGRlciBvdmVyIHRpZW4gcmVnZWxzIOKAlCBkZSBhdXRvLWhvb2d0ZSB2YW4gcWRuYXByby1pbnB1dFxuICAgbWFha3QgZGFhciBlZW4gYmxvayB2YW4gfjI3MHB4IHZhbiAobGl2ZSBnZW1ldGVuIGluIGVlbiBzbWFsIHZlbnN0ZXIpLlxuICAgRGUgb25kZXJncmVucyB2YW4gMjYwcHggZW4gbWF4LXJvd3M9XCI0XCIgb3AgaGV0IHZlbGQgemV0dGVuIGRhdCBhbGxlYmVpIHZhc3QuICovXG4ucHVsc2UtbW9kLXJlcGx5IHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAxMHB4OyB9XG4ucHVsc2UtbW9kLXJlcGx5IHFkbmFwcm8taW5wdXQgeyBmbGV4OiAxIDEgMjYwcHg7IG1pbi13aWR0aDogMDsgfVxuLnB1bHNlLW1vZC1yZXBseSBxZG5hcHJvLWJ1dHRvbiB7IGZsZXgtc2hyaW5rOiAwOyBtYXJnaW4tdG9wOiAzcHg7IH1cblxuLnB1bHNlLW1vZC1tb2RhbC1sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAxNHB4IDAgNnB4O1xuICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMyZjJkNDU7XG59XG4ucHVsc2UtbW9kLW1vZGFsLWVycm9yIHsgbWFyZ2luOiA4cHggMCAwOyBmb250LXNpemU6IDEyLjVweDsgY29sb3I6ICNjMDM5MmI7IH1cbi5wdWxzZS1tb2QtbW9kYWwtZXJyb3JbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLnB1bHNlLW1vZC1za2VsZXRvbiB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMTJweDsgfVxuLnB1bHNlLW1vZC1za2VsZXRvbltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLnB1bHNlLW1vZC1za2VsIHtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2YyZjFmOCAyNSUsICNlOWU4ZjMgMzclLCAjZjJmMWY4IDYzJSk7XG4gICAgYmFja2dyb3VuZC1zaXplOiA0MDAlIDEwMCU7XG4gICAgYW5pbWF0aW9uOiBwdWxzZS1zdGF0cy1zaGltbWVyIDEuM3MgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgaGVpZ2h0OiA5MnB4O1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAucHVsc2UtbW9kLXNrZWwgeyBhbmltYXRpb246IG5vbmU7IH1cbn1cbi5wdWxzZS1tb2QtZXJyb3Ige1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZGYzZjI7XG4gICAgY29sb3I6ICNhODNhMmM7XG4gICAgZm9udC1zaXplOiAxM3B4O1xufVxuLnB1bHNlLW1vZC1lcnJvcltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLnB1bHNlLW1vZC1lcnJvciBxZG5hcHJvLWljb24geyBmbGV4LXNocmluazogMDsgfVxuLnB1bHNlLW1vZC1lcnJvciBzcGFuIHsgZmxleDogMSAxIDIyMHB4OyB9XG4ucHVsc2UtbW9kLW5vdGUgeyBmb250LXNpemU6IDEyLjVweDsgY29sb3I6ICM2YjY4ODQ7IG1hcmdpbjogMDsgfVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEdlc3ByZWtrZW4tYmVoZWVycGFnaW5hLCBoZXJib3V3IChCT0FSRC1wdWxzZS1nZXNwcmVra2VuLCBrYWFydCA1KVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vKiBEZSAucHVsc2UtbW9kLSogc2VjdGllIGhpZXJib3ZlbiBibGlqZnQgT05HRU1PRUlEIHN0YWFuIHRvdCBkZSBoZXJib3V3ZGVcbiAgIHZpZXcgKGthYXJ0IDQpIGhlbSBuaWV0IG1lZXIgZ2VicnVpa3Qg4oCUIGRlemUgc2VjdGllIGtvbXQgZXIgYWxsZWVuIE9OREVSXG4gICBiaWosIGluIGxpam4gbWV0IGRlIGthYXJ0b3BkcmFjaHQuXG5cbiAgIFRXRUUgTEFHRU4gaGllcm9uZGVyOlxuXG4gICBBLiBDaGF0LXBvcnQgKC5wY3MtKikg4oCUIDE6MSBnZXBvcnQgdWl0XG4gICAgICBhcHBfYXBpX3FkbmF2Mi9zcmMvUkVYL1Jlc291cmNlcy9TY3NzL19wd2EtY3VycmVudC5zY3NzIChyZWdlbHNcbiAgICAgIH40Mzg4LTUyNTYsIGFsbGVzIG9uZGVyIC5wY3MtbGlzdCB0L20gLnBjcy1jYW5jZWwtZWRpdDphY3RpdmUpLiBXYWFyZGVuLFxuICAgICAgdm9sZ29yZGUgZW4gd2FhcnNjaHV3aW5nc2NvbW1lbnRhcmVuIHppam4gbGV0dGVybGlqayBvdmVyZ2Vub21lbjsgYWxsZWVuXG4gICAgICBkcmllIGRpbmdlbiB6aWpuIHZlcnRhYWxkOlxuICAgICAgICAxLiB2YXIoLS1jLXRleHQsICNoZXgpIOKGkiB2YXIoLS1jLXRleHQtYm9keSwgI2hleCkg4oCUIHplbGZkZSBoZXgtdGVydWd2YWwsXG4gICAgICAgICAgIGFsbGVlbiBkZSB0b2tlbm5hYW0gdmVyc2NoaWx0IHR1c3NlbiBkZSB0d2VlIHByb2plY3Rlbi5cbiAgICAgICAgMi4gU2hlZXQtc3BlY2lmaWVrZSByZWdlbHMgKFtkYXRhLXB1bHNlLWNvbW1lbnRzLXNoZWV0XSwgLmJzLSosXG4gICAgICAgICAgIC0tYnMtcGFkLXgpIHppam4gTklFVCBnZXBvcnQ6IGRlIGNoYXQgbGVlZnQgaGllciBpbiBlZW4gcGFuZWVsLCBnZWVuXG4gICAgICAgICAgIGJvdHRvbSBzaGVldC4gLnBjcy1lZGl0c3RyaXAncyAtLWJzLXBhZC14LWJyZWVkdGVjb25zdHJ1Y3RpZSBpc1xuICAgICAgICAgICB2ZXJ2YW5nZW4gZG9vciBnZXdvbmUgdm9sbGUgYnJlZWR0ZSBiaW5uZW4gaGV0IHBhbmVlbCAoZ2VlbiBuZWdhdGlldmVcbiAgICAgICAgICAgbWFyZ2Ugbm9kaWcsIGVyIGlzIGdlZW4gc2hlZXQtemlqcGFkZGluZyBvbSB0ZSBjb21wZW5zZXJlbikuXG4gICAgICAgIDMuIEhldCBhY3RpZS1ibGF1dyAodmFyKC0tYy1hY3Rpb24tNTAwLCAjNDY1MmYzKSkgaXMgTklFVCB2ZXJ0YWFsZCBuYWFyXG4gICAgICAgICAgIGJhY2tvZmZpY2UtcGFhcnMg4oCUIGRpdCBwYW5lZWwgSVMgZGUgYXBwLWNoYXQsIGJld3VzdCBuaWV0XG4gICAgICAgICAgIGJhY2tvZmZpY2UtaHVpc3N0aWpsIChjaXRhYXQta2V5bGluZSwgY2l0YWF0LWF1dGV1ciwgXCJ0b29uIG91ZGVyZVxuICAgICAgICAgICByZWFjdGllc1wiLCB2ZXJzdHV1cmtub3AtZ3JvZWkpLlxuICAgICAgRGUgdHdlZSBzYW1lbmdlc3RlbGRlIHNwZWNpZmljaXRlaXQtc2VsZWN0b3JzICgucGNzLWNvbW1lbnRfX3N0aWNrZXIgbWV0XG4gICAgICBxZG5hcHJvLWxvdHRpZSwgLnBjcy1zZW5kIG1ldCBkZSBkcmllLWtsYXNzZW4tYnJlZWR0ZXJlZ2VsKSB6aWpuXG4gICAgICBvdmVyZ2Vub21lbiBJTkNMVVNJRUYgaHVuIHdhYXJzY2h1d2luZ3Njb21tZW50YWFyOiBkYXQgemlqbiBnZWVuXG4gICAgICBvcHNtdWstY29tbWVudHMgbWFhciBkZSByZWRlbiBkYXQgZGUgcmVnZWwgZXJvbmRlciBuaWV0IHpvbWFhclxuICAgICAgdmVyZWVudm91ZGlnZCBtYWcgd29yZGVuLlxuXG4gICAgICBCZXd1c3QgV0VMIG1lZWdlbm9tZW4sIGJ1aXRlbiBkZSBsZXR0ZXJsaWprZSBuYWFtbGlqc3QgdWl0IGRlIGthYXJ0YnJpZWZcbiAgICAgIChcIi5wY3MtbGlzdCwgLnBjcy1tZWVyLCAucGNzLWNvbW1lbnQsIC5wY3MtcXVvdGUsIC5wY3MtY29tcG9zZSxcbiAgICAgIC5wY3MtZW1vamktcm93Ly1idG4sIC5wY3MtZm9ybSwgLnBjcy1sZWZ0LCAucGNzLWZpZWxkLCAucGNzLXNlbmQsXG4gICAgICAucGNzLWVkaXRzdHJpcFwiKSBtYWFyIHfDqWwgXCJfXy1raW5kZXJlbiB2YW4gLnBjcy1jb21tZW50XCIgb2Ygb25taXNiYWFyXG4gICAgICB2b29yIGRlIGRvb3Iga2FhcnQgNCBnZXZyYWFnZGUgZnVuY3RpZXMgKGRyaWUtcHVudGplcy1tZW51LCBBbnR3b29yZGVuLFxuICAgICAgaGFydGplLCBiZXdlcmtlbiwgQG1lbnRpb24sIFwiZ2VtYXJrZWVyZFwiL1wiZ2VmbGl0c3RcIiBiaWogZWVuIHNwcm9uZyBuYWFyXG4gICAgICBlZW4gY2l0YWF0KTogLnBjcy1ub3RlLy5wY3MtZXJyb3Itbm90ZSwgLnBjcy1jb21tZW50X19lZGl0ZWQsXG4gICAgICAucGNzLWNvbW1lbnRfX21lbnUtYnRuLCAucGNzLWNvbW1lbnRfX2Zvb3QsIC5wY3MtY29tbWVudF9fcmVwbHkgKGluY2wuXG4gICAgICA6YWN0aXZlLzpkaXNhYmxlZCksIC5wY3MtY29tbWVudF9fbGlrZS13cmFwLy1jb3VudCwgLnBjcy1tZW50aW9uLFxuICAgICAgLnBjcy1jYW5jZWwtZWRpdCwgLnBjcy1jb21tZW50LS1iZXdlcmt0Ly0tZmxpdHMvLS1kb2Vsd2l0ICgrIGRlXG4gICAgICBAa2V5ZnJhbWVzIHBjcy1jb21tZW50LWZsaXRzKS4gUmVkZW46IGthYXJ0IDYgKGVpbmR2ZXJpZmljYXRpZSkgbm9lbXRcbiAgICAgIHBhcml0ZWl0IG1ldCBkZSAucGNzLSotYnJvbiBleHBsaWNpZXQgZWVuIFNDT1BFLWVpcywgZW4gem9uZGVyIGRlemVcbiAgICAgIF9fLWtpbmRlcmVuIHpvdSBkZSBoZWxmdCB2YW4gZWVuIHJlYWN0aWUtcmlqIG9ub3BnZW1hYWt0IGJsaWp2ZW4uXG4gICAgICBHZW1lbGQgaS5wLnYuIHN0aWx6d2lqZ2VuZCB0b2VnZXZvZWdkIOKAlCBjaGVjayBkaXQgdGVnZW4ga2FhcnQgNCdzXG4gICAgICB1aXRlaW5kZWxpamtlIG1hcmt1cC5cblxuICAgICAgQkVXVVNUIE5JRVQgbWVlZ2Vub21lbiAoZmFzZSAyIG9mIHNoZWV0L2RpYWxvb2ctc3BlY2lmaWVrLCBkdXMgaGllclxuICAgICAgbmlldCB2YW4gdG9lcGFzc2luZyk6IC5wY3MtcGljay8ucGNzLXBpY2tfXyogKHN0aWNrZXIvZ2lmLWNvbmNlcHRzdHJpcFxuICAgICAgaW4gZGUgY29tcG9zZXIpLCAucGNzLWVycm9yIChiaWpuYS1kdXBsaWNhYXQgdmFuIC5wY3MtZXJyb3Itbm90ZSwgaG9vcnRcbiAgICAgIGJpaiBkaWV6ZWxmZGUgY29uY2VwdHN0cmlwKSwgLnBjcy1wbHVzLW1lbnUgZW5cbiAgICAgIHFkbmFwcm8tcG9wb3ZlcltkYXRhLXB1bHNlLXBsdXMtc2hlZXRdIChoZXQgKy1tZW51IHZvb3Igc3RpY2tlci9naWYpLFxuICAgICAgZW4gYWxsZXMgb25kZXIgXCJQdWxzZSBicmVkZSBkaWFsb29nXCIgLyAucGNkLWNvbW1lbnRzIChkZSBxZG5hcHJvLXBvcG92ZXJcbiAgICAgIGRpYWxvb2d2YXJpYW50IHZhbiBkZSBzaGVldCDigJQgb29rIGVlbiBvdmVybGF5LCBnZWVuIHBhbmVlbCkuXG5cbiAgICAgIEdFVk9OREVOLCBOSUVUIE9QR0VMT1NUIChidWcgaW4gZGUgUFdBLWJyb24sIGhvb3J0IG5pZXQgaW4gZGV6ZSBrYWFydFxuICAgICAgZ2VyZXBhcmVlcmQgdGUgd29yZGVuIOKAlCB6aWUgaGV0IHJhcHBvcnQpOiBpbiBfcHdhLWN1cnJlbnQuc2NzcyBzdGFhdFxuICAgICAgYC5wY3MtY29tbWVudF9fbWVudS1idG5gIHR3ZWUga2VlciBnZWRlZmluaWVlcmQgKH5yZWdlbCA1MTczIG1ldCB2b2xsZWRpZ2VcbiAgICAgIGZsZXgvcGFkZGluZy9rbGV1ci9ob3Zlci1vcG1hYWssIGVuIG5vZ21hYWxzIH5yZWdlbCA1MzgyIG1ldCBhbGxlZW5cbiAgICAgIGBtYXJnaW4tbGVmdDogYXV0b2ApLiBIZXQgY29tbWVudGFhciBiaWogZGUgdHdlZWRlIHJlZ2VsIGJld2VlcnQgZGF0IGRlXG4gICAgICBlZXJzdGUsIHZvbGxlZGlnZSByZWdlbCBpcyB3ZWdnZWhhYWxkIG9tZGF0IGhldCBrbm9wamUgbnUgZWVuIGNvbXBvbmVudFxuICAgICAgaXMg4oCUIG1hYXIgZGllIGVlcnN0ZSByZWdlbCBzdGFhdCBub2cgZ2V3b29uIGluIGhldCBiZXN0YW5kLiBIaWVyb25kZXIgaXNcbiAgICAgIGFsbGVlbiBkZSBlZXJzdGUsIHZvbGxlZGlnZSByZWdlbCBnZXBvcnQgKGRpZSBnZWVmdCBlZW4gY29ycmVjdGVcbiAgICAgIGJhc2lzb3BtYWFrIG9uZ2VhY2h0IG9mIGthYXJ0IDQgaGllciBlZW4ga2FhbCBgPGJ1dHRvbj5gIG9mIGVlblxuICAgICAgcWRuYXByby1pY29uLWJ0bi1jb21wb25lbnQgdmFuIG1hYWt0KTsgZGUgZG9kZSB0d2VlZGUgcmVnZWwgaXMgbmlldFxuICAgICAgb3Zlcmdlbm9tZW4uXG5cbiAgIEIuIFBhZ2luYWxhYWcgKC5wZ3MtKikg4oCUIG5pZXV3LCBwcmVmaXggdm9sZ2VucyBoZXQga2xhc3NlbmNvbnRyYWN0IHVpdCBkZVxuICAgICAga2FhcnRicmllZjogd2Vya2JhbGssIGxpanN0K2RldGFpbC1zcGxpdCwgc3RhcHBlbnJpaiBlbiBkZXRhaWxrb3AvLVxuICAgICAgZHJhYWQuIEFsbGVlbiBiZXN0YWFuZGUgdG9rZW5zICh6aWUgYmFja29mZmljZTIvc2Nzcy9jb21wb25lbnRzL3YyL1xuICAgICAgZGVzaWduLXRva2Vucy9fZGVzaWduLXRva2Vucy5zY3NzKTsgZ2VlbiBtaXhpbnMgaGVyZ2VicnVpa3Qgb21kYXQgZGl0XG4gICAgICBiZXN0YW5kIHplbGYgb3ZlcmFsIG1ldCBwbGF0dGUgQG1lZGlhIChtYXgtd2lkdGg6IOKApiktYmxva2tlbiB3ZXJrdCBpblxuICAgICAgcGxhYXRzIHZhbiBicmVha3BvaW50LW1peGlucyAoemVsZmRlIHN0aWpsIGFhbmdlaG91ZGVuLCB6aWUgby5hLiBkZVxuICAgICAgLnB1bHNlLWRldGFpbC1ib2R5LXJlZ2VsIGhpZXJib3ZlbiBpbiBkaXQgYmVzdGFuZCkuICovXG5cbi8vIC0tLSBBLiBDaGF0LXBvcnQgKC5wY3MtKikgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5wY3MtbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTRweDtcbiAgICAmOmVtcHR5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG4vKiBcIlRvb24gb3VkZXJlIHJlYWN0aWVzXCIg4oCUIGJvdmVuYWFuIGRlIGxpanN0LCB0ZWtzdGtub3AgaS5wLnYuIHZvbGxlIGtub3BcbiAgIChuYXZpZ2F0aWUgYmlubmVuIGRlIGxpanN0LCBnZWVuIGFjdGllIG9wIGVlbiBiZXJpY2h0KS4gWmllIGRlIGJyb24gdm9vciBkZVxuICAgdm9sbGVkaWdlIHRvZWxpY2h0aW5nLiAqL1xuLnBjcy1tZWVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgMCA0cHg7XG4gICAgcGFkZGluZzogMTBweCA4cHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnBjcy1tZWVyOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtaG92ZXIsICNmMGYxZjIpO1xufVxuLnBjcy1tZWVyW2Rpc2FibGVkXSB7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4ucGNzLW5vdGUsXG4ucGNzLWVycm9yLW5vdGUge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbn1cbi5wY3MtZXJyb3Itbm90ZSB7XG4gICAgY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTtcbn1cblxuLnBjcy1jb21tZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogOHB4O1xufVxuLnBjcy1jb21tZW50IHFkbmFwcm8tYXZhdGFyIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbn1cbi5wY3MtY29tbWVudF9fdGV4dCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbn1cbi5wY3MtY29tbWVudF9faGVhZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAvKiBab25kZXIgbWluLXdpZHRoOiAwIHdlaWdlcnQgZGV6ZSByaWogc21hbGxlciB0ZSB3b3JkZW4gZGFuIHppam4gaW5ob3VkLCBlblxuICAgICAgIGR1d3QgZWVuIGxhbmdlIG5hYW0gKyBiZWhlZXJkZXItYmFkZ2UgKyB0aWpkIGhldCBkcmllLXB1bnRqZXMtbWVudSB2b29yYmlqXG4gICAgICAgZGUgcmVjaHRlcnJhbmQgdmFuIGhldCBwYW5lZWwuIERlIHJpaiBtYWcgd8OpbCBhZmJyZWtlbi4gKi9cbiAgICBtaW4td2lkdGg6IDA7XG59XG4ucGNzLWNvbW1lbnRfX2F1dGhvciB7XG4gICAgLyogRWVuIGxhbmdlIG5hYW0gYnJlZWt0IGFmIGkucC52LiBkZSByaWogb3AgdGUgcmVra2VuLiBgYW55d2hlcmVgIGVuIG5pZXRcbiAgICAgICBgYnJlYWstd29yZGA6IGVlbiBsYW5nZSBuYWFtIHpvbmRlciBzcGF0aWVzIChvZiBlZW4gZ2VwbGFrdGUgVVJMKSBtb2V0IG9va1xuICAgICAgIGt1bm5lbiBicmVrZW4uICovXG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xufVxuLnBjcy1jb21tZW50X19hdXRob3Ige1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSwgIzBiMGIwZCk7XG59XG4ucGNzLWNvbW1lbnRfX3RpbWUge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbn1cbi8qIHByZS13cmFwOiBlZW4gcmVhY3RpZSBpcyBwbGF0dGUgdGVrc3QsIG1hYXIgZ2V0aWt0ZSByZWdlbGVpbmRlbiB6aWpuIHfDqWxcbiAgIGJldGVrZW5pcy4gYW55d2hlcmUgYnJlZWt0IGVlbiBnZXBsYWt0ZSBsYW5nZSBVUkwgYWYgaS5wLnYuIGhldCBwYW5lZWwgb3BlblxuICAgdGUgZHV3ZW4uICovXG4ucGNzLWNvbW1lbnRfX2JvZHkge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSwgIzBiMGIwZCk7XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xufVxuLyogRWVuIHN0aWNrZXIgSU4gZWVuIGdlcGxhYXRzdGUgcmVhY3RpZS4gR2VlbiBhY2h0ZXJncm9uZC9rYWRlcjogZGUgc3RpY2tlcnNcbiAgIGhlYmJlbiB6ZWxmIGVlbiB0cmFuc3BhcmFudGUgcmFuZC5cbiAgIOKaoO+4jyBTQU1FTkdFU1RFTERFIGNsYXNzLXNlbGVjdG9yIChgLnBjcy1jb21tZW50X19zdGlja2VyLnFkbmFwcm8tbG90dGllYCxcbiAgIHNwZWNpZmljaXRlaXQgMC0yLTApIGVuIGRhdCBpcyBleHByZXM6IHFkbmFwcm8tbG90dGllIHpldCB6aWpuIGVpZ2VuIGRlZmF1bHRcbiAgIG9vayB2aWEgZWVuIGNsYXNzLXNlbGVjdG9yIChgLnFkbmFwcm8tbG90dGllIHsgLS1xbC1zaXplOiA0OHB4OyB9YCksIGVuIGRpZVxuICAgY29tcG9uZW50LUNTUyB3b3JkdCBOQSBzdHlsZS12MS5jc3MgYWFuIDxoZWFkPiB0b2VnZXZvZWdkLiBUd2VlXG4gICBjbGFzcy1zZWxlY3RvcnMgb3AgaGV0emVsZmRlIGVsZW1lbnQgbWV0IGdlbGlqa2Ugc3BlY2lmaWNpdGVpdCBsYXRlbiBkYW4gZGVcbiAgIExBQVRTVEUgaW4gZGUgYnJvbmNvZGUgd2lubmVuIOKAlCBkYXQgaXMgYmlqIGdlbGlqa2Ugc3BlY2lmaWNpdGVpdCBoZXRcbiAgIGNvbXBvbmVudCwgbmlldCBkZXplIHJlZ2VsLiBNZXQgZGUgc2FtZW5nZXN0ZWxkZSBzZWxlY3RvciAoMC0yLTApIHdpbnQgZGV6ZVxuICAgcmVnZWwgYWx0aWpkLCBvbmdlYWNodCBsYWFkdm9sZ29yZGUuIFppZSBfcHdhLWN1cnJlbnQuc2NzcyB2b29yIGRlIHZvbGxlZGlnZVxuICAgbWV0aW5nIGRpZSBkaXQgdmFzdHN0ZWxkZSAoZGV6ZWxmZGUgcmFjZSB0cm9mIG9vayAucGNzLXBpY2tfX3RodW1iIGRhYXIpLiAqL1xuLnBjcy1jb21tZW50X19zdGlja2VyLnFkbmFwcm8tbG90dGllIHtcbiAgICAtLXFsLXNpemU6IDEyMHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIC8qIE5lZ2F0aWV2ZSBsaW5rZXJtYXJnZSBoYWFsdCBkZSB3aXRydWltdGUgd2VnIGRpZSBpbiBkZSBzdGlja2VydGVrZW5pbmdlblxuICAgICAgIHplbGYgeml0IChnZW1ldGVuIG92ZXIgMjQgc3RpY2tlcnM6IGdlbWlkZGVsZCAxMSw2JSBsaW5rcyBsZWVnKTsgMTRweCBpc1xuICAgICAgIGRlIG1lZGlhYW4gdmFuIDEyMHB4LCB3YWFyZG9vciBkZSBtZWVzdGUgc3RpY2tlcnMgdWl0bGlqbmVuIG1ldCBkZSB0ZWtzdC4gKi9cbiAgICBtYXJnaW46IDJweCAwIDRweCAtMTRweDtcbn1cbi8qIEVlbiBHSUYgaW4gZWVuIGdlcGxhYXRzdGUgcmVhY3RpZS4gYGFzcGVjdC1yYXRpb2Aga29tdCBhbHMgaW5saW5lIHN0eWxlIG1lZVxuICAgdmFudWl0IGRlIHJlbmRlcmVuZGUgSlMgKGdpZl9yYXRpbywgb2YgYnJlZWR0ZS9ob29ndGUgYWxzIHRlcnVndmFsKSDigJQgZGF0XG4gICB2b29ya29tdCBlZW4gbGF5b3V0LXNwcm9uZyB6b2RyYSBoZXQgYmVzdGFuZCBsYWFkdC4gKi9cbi5wY3MtY29tbWVudF9fZ2lmIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDIyMHB4O1xuICAgIG1hcmdpbjogMnB4IDAgNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMTAwLCAjZTdlOWVjKTtcbn1cbi5wY3MtY29tbWVudF9fZ2lmLW1lZGlhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG59XG4ucGNzLWNvbW1lbnRfX2JvZHktLWRlbGV0ZWQge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbn1cbi8qIEFjaHRlciBkZSB0aWpkIGluIGRlIGtvcCwgYWxsZWVuIGJpaiBlZGl0ZWQgJiYgIWRlbGV0ZWQuICovXG4ucGNzLWNvbW1lbnRfX2VkaXRlZCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbn1cbi8qIEhldCBkcmllLXB1bnRqZXMta25vcGplLCB1aXRlcnN0IHJlY2h0cyBpbiBkZSBrb3AgKG1pbmUgJiYgIWRlbGV0ZWQpLiBHZWVuXG4gICBuZWdhdGlldmUgbWFyZ2luLXJpZ2h0OiBkaWUgdHJla3QgaGV0IGtub3BqZSBiaWogZWVuIGxhbmdlIG5hYW0gKyBiYWRnZSArXG4gICB0aWpkIHZvb3JiaWogZGUgcmFuZCB2YW4gaGV0IHBhbmVlbC4gKi9cbi5wY3MtY29tbWVudF9fbWVudS1idG4ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiA2cHg7XG4gICAgbWFyZ2luLXRvcDogLTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAtNnB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnBjcy1jb21tZW50X19tZW51LWJ0bjpob3Zlcixcbi5wY3MtY29tbWVudF9fbWVudS1idG46Zm9jdXMtdmlzaWJsZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtaG92ZXIsICNmMGYxZjIpO1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG4vKiBBbnR3b29yZGVuICsgaGFydGplLCBvbmRlciBkZSBib2R5IHZhbiBlZW4gbmlldC12ZXJ3aWpkZXJkZSByZWFjdGllLiAqL1xuLnBjcy1jb21tZW50X19mb290IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxNHB4O1xuICAgIG1hcmdpbi10b3A6IDJweDtcbn1cbi5wY3MtY29tbWVudF9fcmVwbHkge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjcyODApO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5wY3MtY29tbWVudF9fcmVwbHk6aG92ZXIsXG4ucGNzLWNvbW1lbnRfX3JlcGx5OmZvY3VzLXZpc2libGUge1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSwgIzBiMGIwZCk7XG4gICAgb3V0bGluZTogbm9uZTtcbn1cbi5wY3MtY29tbWVudF9fcmVwbHk6YWN0aXZlIHtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHksICMwYjBiMGQpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45Nik7XG59XG4ucGNzLWNvbW1lbnRfX3JlcGx5OmRpc2FibGVkIHtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkLCAjODk4ZTk5KTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLyogLnBjcy1jb21tZW50X19saWtlIGlzIGVlbiBxZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbiAobW9kZT1cImhlYXJ0XCIpIOKAlCBkYXRcbiAgIGNvbXBvbmVudCBicmVuZ3QgemlqbiBlaWdlbiBib3gvaG92ZXIvYWN0aXZlL3BvcC1DU1MgYWwgbWVlLiBIaWVyIGJsaWpmdFxuICAgYWxsZWVuIGRlIHdyYXBwZXItbGF5b3V0IG92ZXI6IGhhcnRqZSArIHRlbGxlciBuYWFzdCBlbGthYXIuICovXG4ucGNzLWNvbW1lbnRfX2xpa2Utd3JhcCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xufVxuLnBjcy1jb21tZW50X19saWtlLWNvdW50IHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbn1cbi8qIERlIFwiQE5hYW0gXCItbWVudGlvbiB2b29yYWFuIGVlbiBhbnR3b29yZCDigJQgcHV1ciBzdHlsaW5nLCBnZWVuIGxpbmsuICovXG4ucGNzLW1lbnRpb24ge1xuICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi8qIERlIHJlYWN0aWUgZGllIGplIE5VIGJld2Vya3QsIGdlbWFya2VlcmQgaW4gZGUgbGlqc3QuICovXG4ucGNzLWNvbW1lbnQtLWJld2Vya3Qge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYWN0aW9uLTA4LCByZ2JhKDcwLCA4MiwgMjQzLCAwLjA4KSk7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgM3B4IDAgMCB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xuICAgIG1hcmdpbjogLTZweCAtOHB4O1xufVxuLyogRWVubWFsaWdlIGFjaHRlcmdyb25kLXB1bHMgb3AgZGUgcmVhY3RpZSB3YWFyIGplIG5hIGVlbiBzcHJvbmcgKHRpayBvcCBlZW5cbiAgIGNpdGFhdGJsb2spIG9wIGxhbmR0LiBEb29mdCB2YW56ZWxmIHVpdCBpbiAxLDJzLiAqL1xuLnBjcy1jb21tZW50LS1mbGl0cyB7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGFuaW1hdGlvbjogcGNzLWNvbW1lbnQtZmxpdHMgMS4ycyBlYXNlLW91dDtcbn1cbkBrZXlmcmFtZXMgcGNzLWNvbW1lbnQtZmxpdHMge1xuICAgIDAlIHsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1hY3Rpb24tMTIsIHJnYmEoNzAsIDgyLCAyNDMsIDAuMTIpKTsgfVxuICAgIDEwMCUgeyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWFjdGlvbi0wOCwgcmdiYSg3MCwgODIsIDI0MywgMC4wOCkpOyB9XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5wY3MtY29tbWVudC0tZmxpdHMge1xuICAgICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgfVxufVxuLyogRGUgQkxJSlZFTkRFIG1hcmtlcmluZyB2YW4gZGUgcmVhY3RpZSB3YWFyIGRlIGxhYXRzdGUgc3Byb25nIG9wIGxhbmRkZS5cbiAgIFZlcnBhYXJzdCBsb2thYWwgZGUgdHdlZSBncmlqcy10b2tlbnMgKGNpdGFhdGJsb2ssIGxpa2UtaG92ZXIpIHpvZGF0IG5pZXRzXG4gICBiaW5uZW4gZGUgcmlqIG5vZyB0ZWdlbiBkZSBwYWFyc2Ugdmxha3RlIHZsb2VrdDsgcmdiYSwgZHVzIGRhcmsgbW9kZSB3ZXJrdFxuICAgem9uZGVyIGFwYXJ0ZSByZWdlbC4gKi9cbi5wY3MtY29tbWVudC0tZG9lbHdpdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1hY3Rpb24tMDgsIHJnYmEoNzAsIDgyLCAyNDMsIDAuMDgpKTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBtYXJnaW46IC04cHg7XG4gICAgLS1jLWJnLXN1YnRsZS1ob3ZlcjogdmFyKC0tYy1hY3Rpb24tMTIsIHJnYmEoNzAsIDgyLCAyNDMsIDAuMTIpKTtcbiAgICAtLWMtZ3JleS01MDogdmFyKC0tYy1hY3Rpb24tMTIsIHJnYmEoNzAsIDgyLCAyNDMsIDAuMTIpKTtcbn1cbi8qIERlIGFubnVsZWVya25vcCBpbiBkZSBiZXdlcmstc3RhbmQsIGFsbGVlbiB6aWNodGJhYXIgdGlqZGVucyBiZXdlcmtlbi4gKi9cbi5wY3MtY2FuY2VsLWVkaXQge1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwIDRweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnBjcy1jYW5jZWwtZWRpdFtoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuLnBjcy1jYW5jZWwtZWRpdDpob3Zlcixcbi5wY3MtY2FuY2VsLWVkaXQ6Zm9jdXMtdmlzaWJsZSB7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjMGIwYjBkKTtcbiAgICBvdXRsaW5lOiBub25lO1xufVxuLnBjcy1jYW5jZWwtZWRpdDphY3RpdmUge1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSwgIzBiMGIwZCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk2KTtcbn1cblxuLyogQ2l0YWF0YmxvayBCT1ZFTiBkZSBlaWdlbiB0ZWtzdCBpbiBlZW4gYW50d29vcmQtcmVhY3RpZSAoV2hhdHNBcHAtbW9kZWwpOiBlZW5cbiAgIDxidXR0b24+IHpvZGF0IGVlbiB0aWsgZXJvcCBuYWFyIGhldCBvcmlnaW5lZWwga2FuIHNwcmluZ2VuLCB2b2xsZSBicmVlZHRlXG4gICB2YW4gZGUgdGVrc3Rrb2xvbS4gQXV0ZXVyIGVuIHRla3N0IHN0YWFuIHpvbmRlciB3aWtrZWwtZWxlbWVudCBpbiBkZSBET007XG4gICBmbGV4LXdyYXAgKyBlZW4gdm9sbGUtYnJlZWR0ZSBmbGV4LWJhc2lzIG9wIGRlIGF1dGV1cnNyZWdlbCBmb3JjZWVydCBkaWUgbmFhclxuICAgemlqbiBlaWdlbiByaWouICovXG4ucGNzLXF1b3RlIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sdW1uLWdhcDogOHB4O1xuICAgIHJvdy1nYXA6IDJweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgMCA0cHg7XG4gICAgcGFkZGluZzogNnB4IDEwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtaG92ZXIsICNmNWY2ZjgpO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDNweCAwIDAgdmFyKC0tYy1hY3Rpb24tNTAwLCAjNDY1MmYzKTtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ucGNzLXF1b3RlX19hdXRob3Ige1xuICAgIGZsZXg6IDEgMCAxMDAlO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xufVxuLnBjcy1xdW90ZV9fdGV4dCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbiAgICAvKiBNYXggMiByZWdlbHM6IGVlbiBjaXRhYXQgaXMgZWVuIHZlcndpanppbmcsIGdlZW4gaGVyaGFsaW5nLiAqL1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucGNzLXF1b3RlX19zdGlja2VyIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cbi8qIEhldCBvcmlnaW5lZWwgYmVzdGFhdCBuaWV0IG1lZXI6IGdlZW4gYWN0aWUgbWVlciwgZHVzIGdlZW4gYWFud2lqemVyIGVuIGdlZW5cbiAgIGFjdGllLWJsYXV3IG1lZXIuICovXG4ucGNzLXF1b3RlLS1kZWFkIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgM3B4IDAgMCB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjcyODApO1xufVxuLnBjcy1xdW90ZS0tZGVhZCAucGNzLXF1b3RlX19hdXRob3Ige1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjcyODApO1xufVxuXG4ucGNzLWNvbXBvc2Uge1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG4gICAgcGFkZGluZzogMTBweCAwIGNhbGMoMTJweCArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLCAwcHgpKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG59XG4vKiBBY2h0IGVtb2ppJ3Mgb3ZlciBkZSB2b2xsZSBicmVlZHRlIHZlcmRlZWxkIChwYXNzZW4gb3AgZWxrIHNjaGVybSksIGkucC52LlxuICAgbGlua3MgZ2VrbG9udGVyZCBtZXQgZWVuIGhvcml6b250YWxlIHNjcm9sbC4gYGhpZGRlbmAgdmVyYmVyZ3QgZGUgcmlqIHpvZHJhXG4gICBlciBlZW4gc3RpY2tlciBrbGFhcnN0YWF0IOKAlCBleHBsaWNpZXQsIHdhbnQgZGlzcGxheTpmbGV4IHdpbnQgYW5kZXJzIHZhbiBoZXRcbiAgIGJyb3dzZXItc3RhbmRhYXJkZ2VkcmFnIHZhbiBgaGlkZGVuYC4gKi9cbi5wY3MtZW1vamktcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbn1cbi5wY3MtZW1vamktcm93W2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ucGNzLWVtb2ppLXJvdzo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuLnBjcy1lbW9qaS1idG4ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucGNzLWVtb2ppLWJ0bjpob3Zlcixcbi5wY3MtZW1vamktYnRuOmZvY3VzLXZpc2libGUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLWhvdmVyLCAjZjBmMWYyKTtcbiAgICBvdXRsaW5lOiBub25lO1xufVxuLnBjcy1lbW9qaS1idG46YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1ob3ZlciwgI2YwZjFmMik7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xufVxuLyogTmVnZW5kZSBrbm9wIChrYWFydCAxNywgaGVyc3RhcnQgMDEuMDkuMjAyNik6IG9wZW50IGRlIHZvbGxlZGlnZVxuICAgZW1vamkta2llemVyLiBaZWxmZGUgcm9uZGUgMzZweC12b3JtIGFscyBkZSBhY2h0IGVtb2ppIGVybmFhc3QgKGRpZVxuICAgZXJ2ZW4gdmFuIC5wY3MtZW1vamktYnRuIGhpZXJib3Zlbik7IGFsbGVlbiBkZSBrbGV1ciB2YW4gaGV0IGljb29uIHplbGZcbiAgIHN0YWF0IGhpZXIsIHplbGZkZSBtdXRlZC10b2tlbiBhbHMgaGV0IGJlc3RhYW5kZSBkcmllLXB1bnRqZXMtbWVudVxuICAgKC5wY3MtY29tbWVudF9fbWVudS1idG4pIHpvZGF0IGhldCBcImV2ZW4gendhYXJcIiBvb2d0IGFscyBlZW4gZW1vamktZ2x5cGguICovXG4ucGNzLWVtb2ppLW1vcmUge1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjcyODApO1xufVxuXG4vKiBbZWlnZW4gYXZhdGFyL3BsdXMta25vcF0gW3ZlbGRdIFt2ZXJ6ZW5ka25vcF0uIGBmbGV4LWVuZGAgaG91ZHQgYXZhdGFyIGVuXG4gICBrbm9wIG9wIGRlIG9uZGVyc3RlIHJlZ2VsIGFscyBoZXQgdmVsZCB1aXRncm9laXQgdG90IHZpZXIgcmVnZWxzLiAqL1xuLnBjcy1mb3JtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBnYXA6IDhweDtcbn1cbi8qIERlIGxpbmtlcnBsZWsgaG91ZHQgVFdFRSBkaW5nZW4gdmFzdCBkaWUgZWxrYWFyIGFmd2lzc2VsZW46IGVpZ2VuIGF2YXRhclxuICAgKGxlZWcgdmVsZCkgZW4gZGUgKy1rbm9wICh6b2RyYSBqZSB0eXB0KS4gQmVpZGUgYWx0aWpkIGluIGRlIERPTSDigJQgd2lzc2VsZW5cbiAgIGdlYmV1cnQgbWV0IGVlbiBrbGFzc2UsIG5pZXQgZG9vciBlbGVtZW50ZW4gdGUgdmVyd2lzc2VsZW4gKGRhdCB6b3UgaGV0IHZlbGRcbiAgIGJpaiBkZSBlZXJzdGUgYWFuc2xhZyBoZXJib3V3ZW4gZW4gZGUgY3Vyc29yIGt3aWp0cmFrZW4pLiBWYXN0ZSBicmVlZHRlIHZhblxuICAgNDRweCB6b2RhdCBoZXQgdmVsZCBuaWV0IHZlcnNwcmluZ3Qgb3AgaGV0IG1vbWVudCB2YW4gZGUgd2lzc2VsLiAqL1xuLnBjcy1sZWZ0IHtcbiAgICBmbGV4OiAwIDAgNDRweDtcbiAgICB3aWR0aDogNDRweDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5wY3MtbGVmdCA+IHFkbmFwcm8tYXZhdGFyLFxuLnBjcy1sZWZ0ID4gLnBjcy1wbHVzLWJ0biB7XG4gICAgZmxleDogMCAwIGF1dG87XG59XG4vKiBLcnVpc3ZlcnZhZ2luZyBtZXQgZWVuIGtsZWluIHBvcGplLCBnZWVuIGhhcmRlIG9tc2xhZzogYmVpZGUga25vcHBlbiBsaWdnZW5cbiAgIG9wIGVsa2FhciBpbiBkZXplbGZkZSA0NHB4LCBvcGFjaXR5ICsgc2NoYWFsIGFscyBlbmlnZSB2ZXJzY2hpbCAoYGRpc3BsYXk6XG4gICBub25lYCBpcyBuaWV0IGFuaW1lZXJiYWFyKS4gYHZpc2liaWxpdHlgIGdhYXQgbWVlIHpvZGF0IGRlIHdlZ2dldmFhZ2RlIGtub3BcbiAgIGdlZW4gdGlra2VuIG1lZXIgb3B2YW5ndCwgZW4gd2lzc2VsdCBwYXMgYWFuIGhldCBlaW5kIHZhbiBkZSBvdmVyZ2FuZy4gKi9cbi5wY3MtbGVmdCA+IHFkbmFwcm8tYXZhdGFyLFxuLnBjcy1sZWZ0ID4gLnBjcy1wbHVzLWJ0biB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTYwbXMgZWFzZSxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gMjAwbXMgY3ViaWMtYmV6aWVyKDAuMiwgMC45LCAwLjMsIDEuNSksXG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eSAwcyBsaW5lYXIgMTYwbXM7XG59XG4ucGNzLWxlZnQgPiAucGNzLXBsdXMtYnRuIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG59XG4ucGNzLWZvcm0tLXR5cHQgLnBjcy1sZWZ0ID4gcWRuYXByby1hdmF0YXIge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbn1cbi5wY3MtZm9ybS0tdHlwdCAucGNzLWxlZnQgPiAucGNzLXBsdXMtYnRuIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcywgMHMsIDBzO1xufVxuLyogRGUgaWNvb250amVzIMOtbiBoZXQgdmVsZCB2ZXJ2YWdlbiwgd2FudCBkw6HDoXIgYm90c3RlbiB6ZSBtZXQgZGUgdGVrc3QuXG4gICBWZXJiZXJnZW4gZW4gbmlldCB3ZWdoYWxlbjogZGUga25vcHBlbiB3ZWdoYWxlbiB6b3UgcWRuYXByby1pbnB1dCBsYXRlblxuICAgaGVydGVrZW5lbiBlbiBkZSBmb2N1cyBtaWRkZW4gaW4gZWVuIHdvb3JkIHdlZ25lbWVuLiAqL1xuLnBjcy1maWVsZCAuaW5wdXQtYWN0aW9uLWJ0bixcbi5wY3MtZmllbGQgLmlucHV0LWFjdGlvbi1idG4tMiB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNDBtcyBlYXNlLCB0cmFuc2Zvcm0gMTYwbXMgZWFzZSwgdmlzaWJpbGl0eSAwcyBsaW5lYXIgMTQwbXM7XG59XG4ucGNzLWZvcm0tLXR5cHQgLnBjcy1maWVsZCAuaW5wdXQtYWN0aW9uLWJ0bixcbi5wY3MtZm9ybS0tdHlwdCAucGNzLWZpZWxkIC5pbnB1dC1hY3Rpb24tYnRuLTIge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC8qIEFsbGVlbiBzY2hhbGVuOiBkZSB2ZXJ0aWNhbGUgY2VudHJlcmluZyB6aXQgb3AgLmlucHV0LXRyYWlsaW5nIChkZSBkb29zXG4gICAgICAgZXJvbWhlZW4pLCBuaWV0IG9wIGRlemUga25vcC4gKi9cbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNyk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4vKiBXaWUgbGlldmVyIGdlZW4gYmV3ZWdpbmcgemlldCwga3Jpamd0IGdlZW4gYmV3ZWdpbmcuICovXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5wY3MtbGVmdCA+IHFkbmFwcm8tYXZhdGFyLFxuICAgIC5wY3MtbGVmdCA+IC5wY3MtcGx1cy1idG4sXG4gICAgLnBjcy1maWVsZCAuaW5wdXQtYWN0aW9uLWJ0bixcbiAgICAucGNzLWZpZWxkIC5pbnB1dC1hY3Rpb24tYnRuLTIsXG4gICAgLnBjcy1zZW5kIHtcbiAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMHM7XG4gICAgfVxufVxuLnBjcy1maWVsZCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xufVxuLnBjcy1mb3JtIHFkbmFwcm8taW5wdXQge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cbi8qIERlIHZlcnN0dXVya25vcCBncm9laXQgZXJpbiB6b2RyYSBlciB0ZWtzdCBvZiBlZW4gc3RpY2tlciBpcy4gQmxpamZ0IGFsdGlqZFxuICAgaW4gZGUgRE9NIHN0YWFuIOKAlCB3ZWdoYWxlbiB6b3UgZGUgYW5pbWF0aWUgb25tb2dlbGlqayBtYWtlbiDigJQgZW4ga3JpbXB0IG5hYXJcbiAgIGJyZWVkdGUgMCBhbHMgZXIgbmlldHMgdGUgdmVyc3R1cmVuIHZhbHQuIGBvdmVyZmxvdzogaGlkZGVuYCB6b3JndCBkYXQgaGV0XG4gICBpY29vbiBtZWVrcmltcHQgaS5wLnYuIHVpdCBkZSBrbm9wIHRlIHN0ZWtlbi5cbiAgIOKaoO+4jyBEUklFIGtsYXNzZW4gaW4gZGUgc2VsZWN0b3IsIGVuIGRhdCBpcyBub2RpZzogZGUgYnJlZWR0ZSBoaWVyb25kZXIgdmVjaHRcbiAgIG1ldCBgLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tc2l6ZS10b3VjaGAgdmFuIGhldCBjb21wb25lbnQgKHR3ZWVcbiAgIGtsYXNzZW4sIDQ0cHggdmFzdCkuIE1ldCBgLnBjcy1zZW5kYCBhbGxlZW4gdmVybGllc3QgZGllIHN0cmlqZCBlbiBibGlqZnQgZGVcbiAgIGtub3AgYWx0aWpkIDQ0cHggYnJlZWQg4oCUIGRhbiBnZWJldXJ0IGFsbGVlbiBlZW4gdmVydmFnaW5nIGVuIGdlZW4gZ3JvZWkuICovXG4ucGNzLWZvcm0gLnBjcy1zZW5kLnFkbmFwcm8taWNvbi1idG4ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAwO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC4zKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIC8qIEJyZWVkdGUgZ2FhdCBzbmVsIChsYXlvdXQ6IGhvZSBrb3J0ZXIsIGhvZSBtaW5kZXIgaGV0IHZlbGQgemljaHRiYWFyXG4gICAgICAgbWVlYmV3ZWVndCksIHNjaGFhbCBsYW5nemFtZXIgbWV0IGVlbiBkb29yc2NoaWV0ZXIg4oCUIGxlZXN0IHpvIGFscyBlZW5cbiAgICAgICBwb3BqZSBpLnAudi4gZWVuIGtub3AgZGllIG9wemlqIHNjaHVpZnQuIFplbGZkZSBjdXJ2ZS90aWpkIGFscyBkZSB3aXNzZWxcbiAgICAgICBsaW5rcywgem9kYXQgYmVpZGUgYmV3ZWdpbmdlbiBiaWogZWxrYWFyIGhvcmVuLiAqL1xuICAgIHRyYW5zaXRpb246IHdpZHRoIDE0MG1zIGN1YmljLWJlemllcigwLjIsIDAuOSwgMC4zLCAxLjIpLFxuICAgICAgICAgICAgICAgIG9wYWNpdHkgMTQwbXMgZWFzZSxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gMjIwbXMgY3ViaWMtYmV6aWVyKDAuMiwgMC45LCAwLjMsIDEuNik7XG59XG4ucGNzLWZvcm0gLnBjcy1zZW5kLnFkbmFwcm8taWNvbi1idG4ucGNzLXNlbmQtLW9uIHtcbiAgICB3aWR0aDogNDRweDtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbi8qIEhldCBCRVdFUkstc3Ryb29ramU6IHBvdGxvb2QsIHR3ZWUgcmVnZWxzIHRla3N0LCBlZW4ga3J1aXNqZSBvbSB0ZSBzdG9wcGVuLlxuICAgVm9sbGUgYnJlZWR0ZSBiaW5uZW4gaGV0IHBhbmVlbCAoZ2VlbiBzaGVldC16aWpwYWRkaW5nIG9tIHRlcnVnIHRlIHJla2VuZW4sXG4gICBkdXMgZ2VlbiAtLWJzLXBhZC14LWNvbnN0cnVjdGllIHpvYWxzIGluIGRlIFBXQS1icm9uKS4gKi9cbi5wY3MtZWRpdHN0cmlwIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTBweCA0cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0xMDAsICNlN2U5ZWMpO1xufVxuLnBjcy1lZGl0c3RyaXBbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi5wY3MtZWRpdHN0cmlwX19pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG59XG4vKiBaZWxmZGUgbWFhdCBhbHMgaGV0IHBvdGxvb2QgZXJuYWFzdCB2aWEgLS1xbC1zaXplLCBhbmRlcnMgd2ludCBkZVxuICAgNDhweC1zdGFuZGFhcmQgdmFuIHFkbmFwcm8tbG90dGllLiAqL1xuLnBjcy1lZGl0c3RyaXBfX3N0aWNrZXIucWRuYXByby1sb3R0aWUge1xuICAgIC0tcWwtc2l6ZTogMjhweDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbn1cbi5wY3MtZWRpdHN0cmlwX190ZXh0IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLnBjcy1lZGl0c3RyaXBfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tYy1hY3Rpb24tNTAwLCAjNDY1MmYzKTtcbn1cbi5wY3MtZWRpdHN0cmlwX19wb3N0ZXIge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIHZlcnRpY2FsLWFsaWduOiAtNXB4O1xuICAgIG1hcmdpbi1yaWdodDogNnB4O1xufVxuLnBjcy1lZGl0c3RyaXBfX2JvZHkge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbiAgICAvKiBFw6luIHJlZ2VsOiBoZXQgc3Ryb29ramUgbWFnIG5vb2l0IGhvZ2VyIHdvcmRlbiBkYW4gZGUgc3RpY2tlci1zdHJpcC4gKi9cbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4ucGNzLWVkaXRzdHJpcF9fY2xlYXIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuLyogWmVsZmRlIHN0cm9vaywgYW50d29vcmRlbi1zdGFuZDogYWNjZW50IHZlcmxlZ2QgbmFhciBkZSBsaW5rZXIgaW5zZXQtc3RyZWVwLiAqL1xuLnBjcy1lZGl0c3RyaXAtLXJlcGx5IHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAzcHggMCAwIHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG59XG4ucGNzLWVkaXRzdHJpcC0tcmVwbHkgLnBjcy1lZGl0c3RyaXBfX3RpdGxlIHtcbiAgICBjb2xvcjogdmFyKC0tYy1hY3Rpb24tNTAwLCAjNDY1MmYzKTtcbn1cblxuLy8gLS0tIEIuIFBhZ2luYWxhYWc6IHdlcmtiYWxrLCBzcGxpdC1sYXlvdXQsIHN0YXBwZW5yaWosIGRldGFpbCAoLnBncy0qKSAtLS0tXG4ucGdzLXRvb2xiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAxNHB4O1xuICAgIHBhZGRpbmc6IDE0cHggMjBweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG59XG4ucGdzLW5vdGlmeSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuLnBncy1ub3RpZnktbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbn1cblxuLnBncy1zcGxpdCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDM0MHB4IDFmcjtcbiAgICBtaW4taGVpZ2h0OiA1NjBweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA4NDBweCkge1xuICAgIC5wZ3Mtc3BsaXQge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICAgIH1cbn1cblxuLnBncy1zdGVwbGlzdCB7XG4gICAgLyogbWluLWhlaWdodDogMCBsYWF0IGRlIGtvbG9tIGRlIHJpamhvb2d0ZSB2YW4gLnBncy1zcGxpdCB2b2xnZW4gaS5wLnYuIG9wXG4gICAgICAgemlqbiBlaWdlbiBpbmhvdWQgdGUgZ3JvZWllbiDigJQgbm9kaWcgem9kYXQgZGUgbGlqc3QgemVsZiBrYW4gc2Nyb2xsZW5cbiAgICAgICBpLnAudi4gaGV0IGhlbGUgcGFuZWVsIG9wIHRlIHJla2tlbiAoYWFubmFtZTogZWVuIG9tbGlnZ2VuZCBlbGVtZW50XG4gICAgICAgZ2VlZnQgaGV0IHBhbmVlbCBlZW4gYmVncmVuc2RlIGhvb2d0ZTsgbmlldCBpbiBkZSBicm93c2VyIGdldmVyaWZpZWVyZCkuICovXG4gICAgbWluLWhlaWdodDogMDtcbiAgICBtYXgtaGVpZ2h0OiBpbmhlcml0O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNnB4O1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlLCAjZjNmNWZmKTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA4NDBweCkge1xuICAgIC5wZ3Mtc3RlcGxpc3Qge1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1jYXJkLCAjZTFlM2U2KTtcbiAgICB9XG59XG5cbi5wZ3Mtc3RlcHJvdyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDM2cHggMWZyIGF1dG87XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgZm9udDogaW5oZXJpdDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnBncy1zdGVwcm93OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmZmZmYpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG59XG4ucGdzLXN0ZXByb3cuaXMtc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS0yMDAsICNhNWFjZmYpO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCB2YXIoLS1jLXB1cnBsZS0yMDAtMzAsIHJnYmEoMTY1LCAxNzIsIDI1NSwgMC4zMCkpO1xufVxuLnBncy1zdGVwcm93LmlzLXF1aWV0IC5wZ3Mtc3RlcC10aXRsZSB7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG59XG4vKiBCb290c3RyYXAgemV0IGBidXR0b246Zm9jdXMgeyBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3IgfWBcbiAgIG9wIEVMS0Uga25vcCAodjEtaGVhZGVyIGxhYWR0IGJvb3RzdHJhcC5taW4uY3NzKSDigJQgZWVuIG11aXNrbGlrIGdlZWZ0IHdlbFxuICAgOmZvY3VzIG1hYXIgZ2VlbiA6Zm9jdXMtdmlzaWJsZS4gVWl0emV0dGVuLCBlaWdlbiByaW5nIG9wIDpmb2N1cy12aXNpYmxlLFxuICAgemVsZmRlIHBhdHJvb24gYWxzIGVsZGVycyBpbiBkaXQgYmVzdGFuZCAoby5hLiAucHVsc2UtdHlwZS1jYXJkKS4gKi9cbi5wZ3Mtc3RlcHJvdzpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbn1cbi5wZ3Mtc3RlcHJvdzpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1yaW5nLCAjNDA0OTlhKTtcbn1cbi5wZ3Mtc3RlcHJvdy5pcy1zZWxlY3RlZDpmb2N1cy12aXNpYmxlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtcmluZywgIzQwNDk5YSksIDAgMnB4IDhweCB2YXIoLS1jLXB1cnBsZS0yMDAtMzAsIHJnYmEoMTY1LCAxNzIsIDI1NSwgMC4zMCkpO1xufVxuXG4ucGdzLXN0ZXAtaWNvIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAtcHVycGxlLWJnLCAjZWJlOWZiKTtcbiAgICBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLnBncy1zdGVwLXRpdGxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDEzLjVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZywgIzFhMWY0ZCk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLnBncy1zdGVwLW1ldGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbn1cblxuLnBncy1zdGVwLXNpZGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgZ2FwOiA0cHg7XG59XG4ucGdzLWJhZGdlLW5ldyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAycHggOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbiwgI2ZmZmZmZik7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnBncy1zdGVwLXRpbWUge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ucGdzLWRldGFpbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLCAjZmZmZmZmKTtcbn1cblxuLnBncy10aHJlYWQtaGVhZCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcGFkZGluZzogMThweCAyNHB4IDE0cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLWNhcmQsICNlMWUzZTYpO1xufVxuLnBncy10aHJlYWQtdGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDhweDtcbiAgICBmb250LXNpemU6IDE3cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYTFmNGQpO1xufVxuLnBncy1tb29kIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xufVxuLnBncy1jaGlwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCwgI2YwZjFmMik7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjMGIwYjBkKTtcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG4ucGdzLWNoaXAtLXRvdGFsIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAtcHVycGxlLWJnLCAjZWJlOWZiKTtcbiAgICBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpO1xufVxuXG4ucGdzLXRocmVhZCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBhZGRpbmc6IDE4cHggMjRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNHB4O1xufVxuLyogLnBjcy1jb21wb3NlIGxlZWZ0IGhpZXIgSU4gaGV0IHBhbmVlbCBpLnAudi4gaW4gZWVuIHNoZWV0OiBnZWVuXG4gICAtLWJzLXBhZC14LXppanBhZGRpbmcgb20gdGVydWcgdGUgcmVrZW5lbiwgZHVzIGdld29vbiB2b2xsZSBicmVlZHRlIG1ldFxuICAgZWlnZW4gemlqcGFkZGluZyBlbiBlZW4gc2NoZWlkaW5nc2xpam4gaS5wLnYuIGRlIGthYXJ0cmFuZCB2YW4gZWVuIHNoZWV0LiAqL1xuLnBncy1kZXRhaWwgLnBjcy1jb21wb3NlIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBwYWRkaW5nOiAxMHB4IDI0cHggMTRweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG59XG5cbi8qIERlIFwibmlldXcgc2luZHMgamUgdm9yaWdlIGJlem9la1wiLWxpam46IGxhYmVsIG1ldCBlZW4gc3RyZWVwIGFhbiB3ZWVyc3ppamRlbixcbiAgIG9wIGRlIG1lZWdlbGV2ZXJkZSBsYXN0X3NlZW4tZ3JlbnMuICovXG4ucGdzLW5ldy1kaXZpZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIG1hcmdpbjogNHB4IDA7XG59XG4ucGdzLW5ldy1kaXZpZGVyOjpiZWZvcmUsXG4ucGdzLW5ldy1kaXZpZGVyOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS0yMDAsICNhNWFjZmYpO1xufVxuLnBncy1uZXctZGl2aWRlcl9fbGFiZWwge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgICBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpO1xufVxuXG4vKiBTa2VsZXRvbi9mb3V0L2xlZWc6IHplbGZkZSB2b3JtdGFhbCBhbHMgZGUgLnB1bHNlLW1vZC0qLXNlY3RpZSBoaWVyYm92ZW5cbiAgIChzaGltbWVyLWJhbGtlbiwgcm9kZSBmb3V0YmFubmVyLCBnZWRlbXB0ZSBjZW50ZXJlZCB0ZWtzdCkg4oCUIGhpZXIgbWV0XG4gICB0b2tlbnMgaS5wLnYuIGRlIHZhc3RlIGhleC13YWFyZGVuIGRpZSBkYWFyIHN0YWFuLCBlbiBkZSBiZXN0YWFuZGVcbiAgIGBwdWxzZS1zdGF0cy1zaGltbWVyYC1rZXlmcmFtZSBoZXJnZWJydWlrdCAodmVyZGVyb3AgaW4gZGl0IGJlc3RhbmQsIGthYXJ0XG4gICBGMy1XMSkgaS5wLnYuIGVlbiB0d2VlZGUsIGlkZW50aWVrZSBrZXlmcmFtZSB0ZSBkZWZpbmnDq3Jlbi4gKi9cbi5wZ3Mtc2tlbGV0b24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiAxMHB4O1xufVxuLnBncy1za2VsZXRvbltoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuLnBncy1za2VsIHtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWMtZ3JleS01MCwgI2YwZjFmMikgMjUlLCB2YXIoLS1jLWdyZXktMTAwLCAjZTdlOWVjKSAzNyUsIHZhcigtLWMtZ3JleS01MCwgI2YwZjFmMikgNjMlKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDQwMCUgMTAwJTtcbiAgICBhbmltYXRpb246IHB1bHNlLXN0YXRzLXNoaW1tZXIgMS4zcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLnBncy1za2VsIHtcbiAgICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgIH1cbn1cbi5wZ3MtZXJyb3Ige1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLXJlZC1zb2Z0LCAjZmZmMGYwKTtcbiAgICBjb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbn1cbi5wZ3MtZXJyb3JbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi5wZ3MtZXJyb3IgcWRuYXByby1pY29uIHtcbiAgICBmbGV4LXNocmluazogMDtcbn1cbi5wZ3MtZW1wdHkge1xuICAgIHBhZGRpbmc6IDQwcHggMTZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gICAgZm9udC1zaXplOiAxM3B4O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAucGdzLW5vdGlmeSB7XG4gICAgICAgIGZsZXg6IDEgMSAxMDAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG59XG5cbi5wdWxzZS1zdGF0cy1wYW5lbCB7IGdyaWQtY29sdW1uOiAxIC8gLTE7IH1cblxuLnB1bHNlLXN0YXRzLWNhcmRzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMTkwcHgsIDFmcikpO1xuICAgIGdhcDogMTRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuXG4vKiBUZWFtLXRlZ2VscyAoRjMtVzEpLiBaZSBkZWxlbiBiZXd1c3QgaGV0IHJvb3N0ZXIgdmFuIGRlIHRlZ2VscyBlcmJvdmVuOlxuICAgaGV0IHppam4gZGV6ZWxmZGUgc29vcnQgY2lqZmVycywgYWxsZWVuIG9wZ2VzcGxpdHN0IHBlciB0ZWFtLCBlbiB0d2VlXG4gICB2ZXJzY2hpbGxlbmRlIHRlZ2VscmFzdGVycyBvbmRlciBlbGthYXIgbGVlc3QgYWxzIHR3ZWUgbG9zc2UgcGFuZWxlbi5cbiAgIERlIHNlY3RpZSB6aXQgdHVzc2VuIGRlIHRvdGFsZW4gZW4gZGUgdHJlY2h0ZXIgaW4uICovXG4ucHVsc2Utc3RhdHMtdGVhbXMgeyBtYXJnaW4tYm90dG9tOiAyNHB4OyB9XG4ucHVsc2Utc3RhdHMtdGVhbXNbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5wdWxzZS1zdGF0cy10ZWFtcyAucHVsc2Utc3RhdHMtY2FyZHMgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG4ucHVsc2Utc3RhdHMtdGVhbXMgLnB1bHNlLXN0YXRzLW5vdGUgeyBwYWRkaW5nOiAxOHB4IDhweDsgfVxuXG4ucHVsc2Utc3RhdHMtc3ViaGVhZCB7XG4gICAgbWFyZ2luOiAwIDAgMnB4O1xuICAgIGZvbnQtc2l6ZTogMTMuNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxOXB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzM5NDI5MCk7XG59XG4ucHVsc2Utc3RhdHMtc3Vic3ViIHtcbiAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI2ODg0KTtcbiAgICBtYXgtd2lkdGg6IDcwY2g7XG59XG5cbi8qIFZBU1RFIGhvb2d0ZTogSGlnaGNoYXJ0cyBtZWV0IHppam4gY29udGFpbmVyLCBlbiBpbiBlZW4gY2VsIHpvbmRlciBlaWdlblxuICAgaG9vZ3RlIGlzIGRhdCAwIOKAlCBkYW4gdGVrZW50IGhpaiBuaWV0cyBlbiBzdGFhdCBlciBlZW4gbGVlZyB2YWsgem9uZGVyXG4gICBmb3V0bWVsZGluZyAoZGUgbGVzIHZhbiBkZSBBSS12ZXJicnVpa3BhZ2luYSkuICovXG4ucHVsc2Utc3RhdHMtY2hhcnQgeyBoZWlnaHQ6IDMyMHB4OyBtYXJnaW4tYm90dG9tOiAyNnB4OyB9XG4ucHVsc2Utc3RhdHMtY2hhcnRbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLnB1bHNlLXN0YXRzLXEge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQsICNlNWU1ZWEpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgcGFkZGluZzogMTRweCAxNnB4IDE2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5wdWxzZS1zdGF0cy1xOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG4ucHVsc2Utc3RhdHMtcS1oZWFkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICBnYXA6IDEwcHg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG59XG4ucHVsc2Utc3RhdHMtcS10aXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUsICMzOTQyOTApO1xuICAgIGZsZXg6IDEgMSAyNDBweDtcbiAgICBtaW4td2lkdGg6IDA7XG59XG4ucHVsc2Utc3RhdHMtcS1tZXRhIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xuICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG59XG4ucHVsc2Utc3RhdHMtcS1jb3JyZWN0IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzEwNjA0YTtcbiAgICBiYWNrZ3JvdW5kOiAjZWFmYWYzO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIHBhZGRpbmc6IDJweCAxMHB4O1xufVxuXG4ucHVsc2Utc3RhdHMtYmFycyB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMTBweDsgfVxuLnB1bHNlLXN0YXRzLWJhci1sYWJlbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSwgIzFjMWUyYSk7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xufVxuLnB1bHNlLXN0YXRzLWJhci1uYW1lIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnB1bHNlLXN0YXRzLWJhci1sYWJlbCBxZG5hcHJvLWljb24geyBmbGV4LXNocmluazogMDsgY29sb3I6ICMxZDllNzU7IH1cbi5wdWxzZS1zdGF0cy1iYXItdmFsdWUge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7XG4gICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbn1cbi5wdWxzZS1zdGF0cy1iYXItdHJhY2sge1xuICAgIGhlaWdodDogMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiAjZWVmMGZiO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucHVsc2Utc3RhdHMtYmFyLWZpbGwgeyBoZWlnaHQ6IDEwMCU7IGJvcmRlci1yYWRpdXM6IDk5OXB4OyBiYWNrZ3JvdW5kOiAjNWI2M2M0OyB9XG4ucHVsc2Utc3RhdHMtYmFyLXJvdy5pcy1jb3JyZWN0IC5wdWxzZS1zdGF0cy1iYXItZmlsbCB7IGJhY2tncm91bmQ6ICMxZDllNzU7IH1cblxuLyogRGVlbG5hbWUgcGVyIGxvY2F0aWUvYWZkZWxpbmcgb3AgZGUgc3RhdGlzdGlla2VucGFnaW5hICgxNy4wOC4yMDI2KSDigJQgZWVuXG4gICBUQUJFTCBtZXQgdmllciBrb2xvbW1lbjogbmFhbSDCtyBiYWxrIMK3IHBlcmNlbnRhZ2UgwrcgYWFudGFsLlxuXG4gICBIaWVydm9vciBzdG9uZCBoaWVyIGhldCBiYWxrZW4taWRpb29tIGhpZXJib3ZlbjogbGFiZWwgb3Agw6nDqW4gcmVnZWwsIGJhbGsgb3BcbiAgIHZvbGxlIGJyZWVkdGUgZGFhcm9uZGVyLiBNZXQgZGVydGlnIGdyb2VwZW4gd2VyZCBkYXQgZWVuIHN0cmVlcGplc3RydWksIGVuIG9wXG4gICBlZW4gYnJlZWQgc2NoZXJtIHdhcyBkZSBiYWxrIHpvIGxhbmcgZGF0IGplIGhlbSBtZXQgamUgb2dlbiBuaWV0IGluIMOpw6luIGtlZXJcbiAgIGtvbiBvdmVyemllbjogZGUgbmFhbSBzdG9uZCBsaW5rcywgZW4gaGV0IGVuaWdlIHN0dWsgZGF0IGlldHMgemVndCAoaGV0XG4gICB1aXRlaW5kZSkgYWFuIGRlIGFuZGVyZSBrYW50IHZhbiBoZXQgc2NoZXJtLlxuXG4gICDimqDvuI8gRGUgYmFsa2tvbG9tIHN0YWF0IG9wIGB2d2AgZW4gTklFVCBvcCBlZW4gcGVyY2VudGFnZSB2YW4gZGUgcmlqLiBFZW5cbiAgIGluZ2VzcHJvbmdlbiBraW5kZXJyaWogaXMgc21hbGxlciBkYW4gemlqbiBsb2NhdGllcmlqOyBtZXQgZWVuIHBlcmNlbnRhZ2VcbiAgIHpvdWRlbiBkaWUgdHdlZSBiYWxrZW4gZWVuIGFuZGVyZSBzY2hhYWwga3JpamdlbiwgZW4gZGFuIHZlcmdlbGlqayBqZSB0d2VlXG4gICBkaW5nZW4gZGllIG5pZXQgdmVyZ2VsaWprYmFhciB6aWpuLiBOdSBpcyBlbGtlIGJhbGsgb3ZlcmFsIGV2ZW4gYnJlZWQgZW4gZHVzXG4gICBvbmRlcmxpbmcgdGUgbGV6ZW4uICovXG4vKiDimqDvuI8gRGUgTUFYSU1BTEUgQlJFRURURSBpcyBnZWVuIG9wc211ay4gWm9uZGVyIGRpZSBncmVucyByZWt0IGRlIG5hYW1rb2xvbVxuICAgbWVlIG1ldCBoZXQgc2NoZXJtIGVuIHN0YWF0IGRlIGJhbGsgZWVuIGhhbHZlIG1ldGVyIHJlY2h0cyB2YW4gZGUgbmFhbSB3YWFyXG4gICBoaWogYmlqIGhvb3J0OyBkYW4gbGVlcyBqZSBkZSByZWdlbCBpbiB0d2VlIGxvc3NlIHN0dWtrZW4uIEFsbGVzIGJpaiBlbGthYXJcbiAgIGhvdWRlbiBpcyBwcmVjaWVzIGhldCBwdW50IHZhbiBkZXplIG9temV0dGluZy4gKi9cbi8qIERlIG9uZGVya2FudCBob3VkdCBoZXR6ZWxmZGUgcml0bWUgYWFuIGFscyBlZW4gZ3JhZmlla2Jsb2sgKDI2cHgpLCBhbmRlcnNcbiAgIHBsYWt0IGRlIHZvbGdlbmRlIGtvcCB0ZWdlbiBkZSBsYWF0c3RlIHJlZ2VsLiAqL1xuLnB1bHNlLXVuaXRzIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgbWF4LXdpZHRoOiA5MjBweDsgbWFyZ2luLWJvdHRvbTogMjZweDsgfVxuLnB1bHNlLXVuaXRzLWdyb2VwIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuXG4ucHVsc2UtdW5pdHMtcm93IHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgY2xhbXAoMTQwcHgsIDE4dncsIDM0MHB4KSA1MnB4IDg0cHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDAgMTZweDtcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjMWMxZTJhKTtcbn1cblxuLyogRGUga29sb21rb3BwZW4gc3RhYW4gZXIgw6nDqW4ga2VlciwgaW4gcGxhYXRzIHZhbiBcImdlc3RhcnRcIiBlbiBcImRlZWxuZW1lcnNcIiBvcFxuICAgZWxrZSByZWdlbCB0ZSBoZXJoYWxlbi4gKi9cbi5wdWxzZS11bml0cy1oZWFkIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VjZWJmNDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAzZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7XG59XG5cbi5wdWxzZS11bml0cy1uYW1lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIG1pbi13aWR0aDogMDtcbn1cbi5wdWxzZS11bml0cy1uYWFtLXRla3N0IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ucHVsc2UtdW5pdHMtY291bnQge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI2ODg0KTtcbn1cbi5wdWxzZS11bml0cy1jaGV2cm9uIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBjb2xvcjogIzZiNjg4NDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZTtcbn1cblxuLnB1bHNlLXVuaXRzLXJvdy0ta2xpayB7IGN1cnNvcjogcG9pbnRlcjsgZm9udC13ZWlnaHQ6IDYwMDsgfVxuLnB1bHNlLXVuaXRzLXJvdy0ta2xpazpob3ZlciB7IGJhY2tncm91bmQ6ICNmN2Y3ZmM7IH1cbi5wdWxzZS11bml0cy1yb3ctLWtsaWsuaXMtb3BlbiAucHVsc2UtdW5pdHMtY2hldnJvbiB7IHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgfVxuXG4ucHVsc2UtdW5pdHMtdHJhY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6ICNlZWYwZmI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5wdWxzZS11bml0cy1maWxsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogIzViNjNjNDtcbn1cbi8qIERlIGxlZ2UgY2VsIGluIGRlIGtvcHJpaiBpcyBhbGxlZW4gZWVuIHVpdGxpam5lciwgZ2VlbiBsZWdlIGJhbGsuICovXG4ucHVsc2UtdW5pdHMtaGVhZCAucHVsc2UtdW5pdHMtdHJhY2sgeyBiYWNrZ3JvdW5kOiBub25lOyB9XG5cbi5wdWxzZS11bml0cy1wY3Qge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG59XG4ucHVsc2UtdW5pdHMtaGVhZCAucHVsc2UtdW5pdHMtcGN0IHsgZm9udC1zaXplOiAxMXB4OyB9XG4ucHVsc2UtdW5pdHMtcGVvcGxlIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI2ODg0KTtcbn1cblxuLyogR2VlbiBiYWxrIGVuIGdlZW4gcGVyY2VudGFnZTogaGV0IHNsb3RqZSBuZWVtdCBhbGxlYmVpIGRpZSBrb2xvbW1lbiBpbiwgem9kYXRcbiAgIGhldCBhYW50YWwgcmVjaHRzIG9wIHppam4gcGxlayBibGlqZnQgc3RhYW4uIFJ1c3RpZyBibGF1dywgd2FudCBkZSBrLXBvb3J0IGlzXG4gICBlZW4gYmV3dXN0ZSBrZXV6ZSBlbiBnZWVuIGZvdXRtZWxkaW5nLiAqL1xuLnB1bHNlLXVuaXRzLXRvb2ZldyB7XG4gICAgZ3JpZC1jb2x1bW46IDIgLyA0O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAjNmI2ODg0O1xufVxuLnB1bHNlLXVuaXRzLXRvb2ZldyBxZG5hcHJvLWljb24geyBmbGV4LXNocmluazogMDsgfVxuXG4ucHVsc2UtdW5pdHMta2lkcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1hcmdpbjogMnB4IDAgNnB4IDIycHg7XG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgI2U1ZTNmMDtcbn1cbi8qIOKaoO+4jyBab25kZXIgZGV6ZSByZWdlbCB3aW50IGBkaXNwbGF5OiBmbGV4YCBoaWVyYm92ZW4gdmFuIGhldCBgaGlkZGVuYC1hdHRyaWJ1dXRcbiAgIGVuIHN0YWF0IGVsa2UgbG9jYXRpZSBvcGVuLiAqL1xuLnB1bHNlLXVuaXRzLWtpZHNbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5wdWxzZS11bml0cy1yb3ctLWtpbmQgeyBmb250LXNpemU6IDEyLjVweDsgfVxuXG4vKiBTbWFsIHNjaGVybTogZGUgYmFsayBnYWF0IGVydWl0LCBkZSBjaWpmZXJzIGJsaWp2ZW4uIEVlbiBiYWxrIHZhbiAxNDBweCBuYWFzdFxuICAgZWVuIGFmZ2VrYXB0ZSBuYWFtIHplZ3QgbWluZGVyIGRhbiBoZXQgZ2V0YWwgemVsZi4gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjBweCkge1xuICAgIC5wdWxzZS11bml0cy1yb3cge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIDQ4cHggNzZweDtcbiAgICAgICAgZ2FwOiAwIDEwcHg7XG4gICAgfVxuICAgIC5wdWxzZS11bml0cy10cmFjayB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICAucHVsc2UtdW5pdHMtdG9vZmV3IHsgZ3JpZC1jb2x1bW46IDIgLyAzOyB9XG59XG5cbi8qIERlIGstcG9vcnQgaXMgZ2VlbiBmb3V0bWVsZGluZyBtYWFyIGVlbiBiZXd1c3RlIGtldXplIOKAlCBkdXMgcnVzdGlnIGJsYXV3LFxuICAgbmlldCBhbWJlciBvZiByb29kLiAqL1xuLnB1bHNlLXN0YXRzLXRvb2ZldyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAjZWVmMGZiO1xuICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIGNvbG9yOiAjNDA0OTlhO1xufVxuLnB1bHNlLXN0YXRzLXRvb2ZldyBxZG5hcHJvLWljb24geyBmbGV4LXNocmluazogMDsgfVxuXG4ucHVsc2Utc3RhdHMtbm90ZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDI2cHggOHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xufVxuLnB1bHNlLXN0YXRzLW5vdGVbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLyogRGUgXCJjaWpmZXJzIGJldnJvcmVuXCItcmVnZWwgKEYyLVc1KS4gQmV3dXN0IGRlemVsZmRlIGluZ2V0b2dlbiB0b29uIGFscyBkZVxuICAgXCJ0ZSB3ZWluaWcgYW50d29vcmRlblwiLW1lbGRpbmc6IGhldCBpcyBlZW4gbWVkZWRlbGluZyBvdmVyIHdhdCBqZSB6aWV0LCBnZWVuXG4gICB3YWFyc2NodXdpbmcgZGF0IGVyIGlldHMgbWlzIGlzLiAqL1xuLnB1bHNlLXN0YXRzLWZyb3plbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbjogMCAwIDE2cHg7XG4gICAgcGFkZGluZzogOXB4IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjZmNWZiO1xuICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgIGNvbG9yOiAjNmI2ODg0O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xufVxuLnB1bHNlLXN0YXRzLWZyb3plbltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLnB1bHNlLXN0YXRzLWZyb3plbiBxZG5hcHJvLWljb24geyBmbGV4LXNocmluazogMDsgfVxuXG4vKiBMYWFkc3RhYXQ6IGRlemVsZmRlIHZha3ZlcmRlbGluZyBhbHMgaGV0IGVjaHRlIHBhbmVlbCwgem9kYXQgZXIgbmlldHNcbiAgIHZlcnNwcmluZ3Qgem9kcmEgZGUgY2lqZmVycyBiaW5uZW4gemlqbi4gKi9cbi5wdWxzZS1zdGF0cy1za2VsZXRvbiB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE5MHB4LCAxZnIpKTtcbiAgICBnYXA6IDE0cHg7XG59XG4ucHVsc2Utc3RhdHMtc2tlbGV0b25baGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5wdWxzZS1zdGF0cy1za2VsIHtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2YxZjJmOCAyNSUsICNlN2U5ZjQgMzclLCAjZjFmMmY4IDYzJSk7XG4gICAgYmFja2dyb3VuZC1zaXplOiA0MDAlIDEwMCU7XG4gICAgYW5pbWF0aW9uOiBwdWxzZS1zdGF0cy1zaGltbWVyIDEuM3MgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG4ucHVsc2Utc3RhdHMtc2tlbC1jYXJkICB7IGhlaWdodDogODBweDsgfVxuLnB1bHNlLXN0YXRzLXNrZWwtY2hhcnQgeyBoZWlnaHQ6IDIwMHB4OyBncmlkLWNvbHVtbjogMSAvIC0xOyB9XG5Aa2V5ZnJhbWVzIHB1bHNlLXN0YXRzLXNoaW1tZXIge1xuICAgIDAlICAgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDA7IH1cbiAgICAxMDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwOyB9XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5wdWxzZS1zdGF0cy1za2VsIHsgYW5pbWF0aW9uOiBub25lOyB9XG59XG5cbi5wdWxzZS1zdGF0cy1lcnJvciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgcGFkZGluZzogMTJweCAxNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogI2ZkZWVlYjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZjBjNGJjO1xuICAgIGNvbG9yOiAjOGUyNzE4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbn1cbi5wdWxzZS1zdGF0cy1lcnJvcltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLnB1bHNlLXN0YXRzLWVycm9yIHFkbmFwcm8taWNvbiB7IGZsZXgtc2hyaW5rOiAwOyB9XG4ucHVsc2Utc3RhdHMtZXJyb3Igc3BhbiB7IGZsZXg6IDEgMSAyMjBweDsgfVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIDIuIE9WRVJaSUNIVFNQQUdJTkEgKHYxL3B1bHNlL2luZGV4Lmh0bWwpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8qIFB1bHNlIOKAlCBwYWdpbmEtZ2VzY29vcHQgKHB1bHNlLSopLiBPdmVyZ2Vub21lbiB1aXQgcHJvamVjdHMtdjIuaHRtbCB6b2RhdCBoZXRcbiAgIG92ZXJ6aWNodCAxLW9wLTEgaGV0emVsZmRlIGxlZXN0OyBhbGxlZW4gZGUga2xhc3NlbmFtZW4gemlqbiBoZXJub2VtZC5cbiAgIExldCBvcDogZ2VlbiBUd2lnLWNvbW1lbnRhYXIgaW4gZGl0IGJsb2sgKGRhdCBicmVla3QgZGUgaGVsZSBwYWdpbmEpLiAqL1xuXG4vKiBWb2xsZSBicmVlZHRlICh3ZXJrbGlqc3QtaWRpb29tIHpvYWxzIFdlcmt2b29ycmFhZC9Eb2N1bWVudGVuKS4gKi9cbi8qIE9uZGVycnVpbXRlIDQwcHgg4oaSIDk2cHggKDE5LjA4LjIwMjYpOiBkZXplIHBhZ2luYSdzIGRyYWdlbiBzaW5kcyB2YW5kYWFnIGRlXG4gICBaV0VWRU5ERSBhY3RpZWJhbGsgKEFjdGlvbkJhcjo6cHVsc2VPdmVydmlldykuIERpZSBpcyBgcG9zaXRpb246IGZpeGVkYCwgbmVlbXRcbiAgIGR1cyBnZWVuIHJ1aW10ZSBpbiBkZSBwYWdpbmEgaW4gZW4gem91IHppY2ggb3ZlciBkZSBsYWF0c3RlIHJpaiB0ZWdlbHMgaGVlblxuICAgbGVnZ2VuIHpvbmRlciBkYXQgamUgZXJvbmRlciBrdW50IHNjcm9sbGVuLlxuXG4gICBTWU5DLVBVTlQsIG1ldCBvcHpldCBlZW4gdmFzdCBnZXRhbCDigJQgZXhhY3QgZGV6ZWxmZGUgYWZ3ZWdpbmcgYWxzIGJpalxuICAgLnB1bHNlLWRldGFpbC1ib2R5IGhpZXJvbmRlcjogX2FjdGlvbi1iYXIuc2NzcyB6ZXQgYGhlaWdodDogNTZweGAgaGFyZCAoZXIgaXNcbiAgIGdlZW4gLS1hY3Rpb24tYmFyLWhlaWdodCkgZW4gLS1hY3Rpb24tYmFyLW9mZnNldCBzdGFhdCBvcCAucWRuYXByby1hY3Rpb24tYmFyXG4gICB6ZWxmLCBkdXMgZGllIGlzIGhpZXIgbmlldCBlcmZiYWFyIGVuIGVlbiB2YXIoKSB6b3Ugc3RpbCBhbHRpamQgb3AgZGUgZmFsbGJhY2tcbiAgIGxhbmRlbi4gOTZweCA9IDU2IChob29ndGUpICsgMTYgKG9mZnNldCkgKyAyNCBsdWNodC4gV29yZHQgZGUgYmFsayBob2dlciBvZlxuICAga29tdCBoaWogdmVyZGVyIHZhbiBkZSByYW5kLCBkYW4gbW9ldCBkaXQgbWVlIOKAlCBvcCBCRUlERSBwbGVra2VuLiAqL1xuLnB1bHNlLXdyYXAgeyBtYXgtd2lkdGg6IG5vbmU7IG1hcmdpbjogMjRweCAyOHB4IDk2cHg7IH1cbi5wdWxzZS1oZWFkIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IGdhcDogMTJweDsgZmxleC13cmFwOiB3cmFwOyBtYXJnaW4tYm90dG9tOiAxNHB4OyB9XG4ucHVsc2UtaGVhZC10aXRsZXMgeyBmbGV4OiAxOyBtaW4td2lkdGg6IDIwMHB4OyB9XG4ucHVsc2UtaGVhZCBoMSB7IGZvbnQtc2l6ZTogMjJweDsgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjMzk0MjkwKTsgbWFyZ2luOiAwIDAgMnB4OyB9XG4ucHVsc2UtaGVhZCAucHVsc2Utc3ViIHsgY29sb3I6ICM2YjY4ODQ7IGZvbnQtc2l6ZTogMTNweDsgbWFyZ2luOiAwOyB9XG5cbi8qIFdlcmtiYWxrIOKAlCBsaW5rcyBkZSBrbm9wcGVuIGRpZSBpZXRzIE1BS0VOIChjYW1wYWduZSAvIHVpdCBzamFibG9vbiAvIG1ldFxuICAgTm92YSksIHJlY2h0cyB6b2VrZW4gKyBzb3J0ZXJlbiAocHYyLWlkaW9vbSkuIEFuYWx5dGljcyBlbiBHZWFyY2hpdmVlcmRcbiAgIHN0b25kZW4gaGllciBvb2sgZW4geml0dGVuIHNpbmRzIDE5LjA4LjIwMjYgaW4gZGUgb25kZXJiYWxrOiBuYXZpZ2VyZW4gaG9vcnRcbiAgIGluIGRlIGJhbGssIG1ha2VuIGhvb3J0IGJpaiBkZSBpbmhvdWQuICovXG4ucHVsc2UtdG9vbGJhciB7XG4gICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTJweDsgbWFyZ2luLWJvdHRvbTogMjBweDsgZmxleC13cmFwOiB3cmFwO1xufVxuLnB1bHNlLXRvb2xiYXItbGVmdCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgZmxleC13cmFwOiB3cmFwOyB9XG4ucHVsc2UtdG9vbGJhci1yaWdodCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbi5wdWxzZS1zZWFyY2ggeyB3aWR0aDogMzQwcHg7IG1heC13aWR0aDogMTAwJTsgZmxleDogMCAwIGF1dG87IH1cbiNwdWxzZS1zb3J0LWJ0biB7IGZsZXg6IDAgMCBhdXRvOyB9XG5cbi8qIFdlcmtiYWxrLWxpbmtzIHdpa2tlbGVuIGVlbiBxZG5hcHJvLWJ1dHRvbiDigJQgZGUgZ2xvYmFsZSBhLXNlbGVjdG9yIHpldFxuICAgYHVuZGVybGluZWAgdGVydWcsIHZhbmRhYXIgaGV0ICFpbXBvcnRhbnQuICovXG4ucHVsc2UtdG9vbGJhci1saW5rLFxuLnB1bHNlLXRvb2xiYXItbGluazpob3Zlcixcbi5wdWxzZS10b29sYmFyLWxpbms6Zm9jdXMge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiBpbmhlcml0O1xufVxuLnB1bHNlLXRvb2xiYXItbGluayAqIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7IH1cbi5wdWxzZS10b29sYmFyLWhpbnQgeyBmb250LXNpemU6IDEzcHg7IGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI2ODg0KTsgfVxuXG4vKiBTb3J0ZWVybWVudSDigJQgdmFzdGUgcG9zaXRpb25lcmluZyBvbmRlciBkZSBrbm9wICh6ZWxmZGUgYWFucGFrIGFscyBwdjIpLiAqL1xuLnB1bHNlLXNvcnQtbWVudSB7IHBvc2l0aW9uOiBmaXhlZDsgei1pbmRleDogOTAwMDsgfVxuLnB1bHNlLXNvcnQtbWVudVtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBIZXQgZHJpZS1wdW50amVzLW1lbnUgdmFuIGVlbiBrYWFydCB3b3JkdCBiaWogb3BlbmVuIHVpdCBkZSBrYWFydCBnZXRpbGQ6XG4gICBkZSBrYWFydHJhbmQga25pcHQgKG92ZXJmbG93OmhpZGRlbiB2b29yIGRlIGFmZ2Vyb25kZSBob2VrZW4pLCBkdXMgZWVuXG4gICBhYnNvbHV1dCBtZW51IHdvcmR0IGhhbHZlcndlZ2UgYWZnZWthcHQgKEphbi1tZWxkaW5nIDA5LjA4KS4gcG9zaXRpb246Zml4ZWRcbiAgIG9udHNuYXB0IGFhbiBkaWUga25pcCDigJQgZGUga2FhcnR3b3J0ZWwgaGVlZnQgZ2VlbiAoYmxpanZlbmRlKSB0cmFuc2Zvcm0sIGR1c1xuICAgZml4ZWQgcmVrZW50IGdld29vbiB2YW5hZiBoZXQgdmVuc3Rlci4gQ2/DtnJkaW5hdGVuIHpldCBkZSBwYWdpbmEgYmlqIGVsa1xuICAgb3BlbmVuIG9wbmlldXcgKHFkbmFwcm8tcHJvamVjdC1jYXJkLW1lbnUtb3BlbiDihpIgcG9zaXRpb25GaXhlZE1lbnUpLiAqL1xucWRuYXByby1wcm9qZWN0LWNhcmQgcWRuYXByby1tZW51LnB1bHNlLWNhcmQtbWVudS1maXhlZCB7XG4gICAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgei1pbmRleDogOTEwMDtcbn1cblxuLyogRGUgdGVnZWxncmlkIHplbGYuICovXG4ucHVsc2UtY2FyZHMtZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyNjhweCwgMWZyKSk7XG4gICAgZ2FwOiAxNnB4O1xuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbn1cblxuLyogU2VjdGlla29wcGVuIHZvb3IgZGUgc3BsaXRzaW5nIHZhc3RnZXBpbmQgLyBhbGxlIGNhbXBhZ25lcy4gQmVpZGUgemlqblxuICAgdmVyYm9yZ2VuIHpvbGFuZyBkZSBnZWJydWlrZXIgbmlldHMgaGVlZnQgdmFzdGdlcGluZC4gKi9cbi5wdWxzZS1zZWN0aW9uLWhlYWRpbmcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDdweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xuICAgIG1hcmdpbjogNHB4IDJweCAxMnB4O1xufVxuLnB1bHNlLXNlY3Rpb24taGVhZGluZyBxZG5hcHJvLWljb24geyBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwLCAjNTM0YWI3KTsgfVxuLnB1bHNlLXNlY3Rpb24taGVhZGluZ1toaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLnB1bHNlLXBpbm5lZC1zZWN0aW9uIHsgbWFyZ2luLWJvdHRvbTogMjZweDsgfVxuLnB1bHNlLXBpbm5lZC1zZWN0aW9uW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG5cbi8qIEtsaWtiYWFyaGVpZDogc2luZHMgVzMgb3BlbnQgRUxLRSB0ZWdlbCBkZSBjYW1wYWduZXBhZ2luYSDigJQgb29rIGluIGhldFxuICAgYXJjaGllZiBlbiBvb2sgem9uZGVyIGJlaGVlcnJlY2h0IChkZSBwYWdpbmEgaXMga2lqay1nYXRlZCBlbiB0b29udCBlZW5cbiAgIGtpamtlciBkZXplbGZkZSBpbmhvdWQsIGFsbGVlbiB6b25kZXIgYmV3ZXJra25vcHBlbikuIERhYXJvbSDDqcOpbiBjdXJzb3JcbiAgIHZvb3IgYWxsZSB0ZWdlbHM7IGhldCBvbmRlcnNjaGVpZCB1aXQgVzIgaXMgdmVydmFsbGVuLiAqL1xuLnB1bHNlLWNhcmRzLWdyaWQgPiBxZG5hcHJvLXByb2plY3QtY2FyZC5wdWxzZS1jYXJkLWNsaWNrYWJsZSB7IGN1cnNvcjogcG9pbnRlcjsgfVxuLyogWm9uZGVyIGJlaGVlcnJlY2h0IGtyaWpndCBlZW4gdGVnZWwgZ2VlbiBtZW51OyBkYW4gaG9vcnQgZGUgZHJpZS1wdW50amVzLWtub3BcbiAgIGVyIG9vayBuaWV0IHRlIHppam4gKGhpaiB6b3UgYmlqIGhvdmVyIHZlcnNjaGlqbmVuIGVuIG5pZXRzIGRvZW4pLiAqL1xuLnB1bHNlLWNhcmRzLWdyaWQgPiBxZG5hcHJvLXByb2plY3QtY2FyZC5wdWxzZS1jYXJkLW5vbWVudSAucHJvamVjdC1jYXJkLW1lbnUtdHJpZ2dlciB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLyogRGUgc3RhdHVzcGlsIGxpbmtzYm92ZW4gb3AgZGUgdGVnZWwgd2FzIGhpZXIgZWVuIHBhZ2luYS1laWdlbiBjaGlwXG4gICAoLnB1bHNlLXN0YXRlLWNoaXApLiBWYW5hZiAxOS4wOC4yMDI2IGhlZWZ0IGRlIGthYXJ0IGVyIGVlbiBzbG90IHZvb3JcbiAgIChzbG90PVwic3RhdHVzXCIpIGVuIGlzIGRlIHBpbCBlZW4gZWNodGUgcWRuYXByby10YWcgbWV0IHZhcmlhbnQ9XCJnbGFzc1wiLCBkdXNcbiAgIGRpZSByZWdlbHMgemlqbiB3ZWc6IG9wbWFhayB2YW4gZWVuIHBpbCBob29ydCBiaWogZGUgcGlsLiAqL1xuXG4vKiBHZWFyY2hpdmVlcmRlIHRlZ2VsOiBHRUVOIHR3ZWVkZSB2b2V0cmVnZWwta25vcC4gRGUgcmVhY3RpZS10ZWxsZXIgd29yZHQgaW5cbiAgIGRlIGFyY2hpZWZsZW5zIG5pZXQgbWVlciBiZXJla2VuZCAoemllIF9kZWNvcmF0ZUNhbXBhaWduUm93czogZGF0IGlzIGRlIGVuaWdlXG4gICBncm9laXJpY2h0aW5nIHpvbmRlciBwbGFmb25kKSwgZW4gem9uZGVyIGBjb21tZW50LWNvdW50YCB2YWx0IGhldCBjb21wb25lbnRcbiAgIHRlcnVnIG9wIHppam4gYmVsIOKAlCBlZW4ga25vcCBkaWUgaW4gUHVsc2UgbmlldHMgZG9ldC4gTGlldmVyIG5pZXRzIGRhbiBlZW5cbiAgIGRvZGUgYmVsLiBIZXQgYWFudGFsIHN0YXBwZW4gZW4gZGUgZGF0dW0gYmxpanZlbiBzdGFhbi5cbiAgIEhldHplbGZkZSBpZGlvb20gYWxzIGRlIGRlcmRlIGtub3AgaW4gX3Byb2plY3QtY2FyZC5zY3NzLCBkaWUgZGFhclxuICAgY29tcG9uZW50LWJyZWVkIG9wIGRpc3BsYXk6bm9uZSBzdGFhdC4gRGV6ZSByZWdlbCBzdGFhdCBiZXd1c3QgSElFUiBlbiBuaWV0XG4gICBpbiBoZXQgY29tcG9uZW50OiBvcCBoZXQgcHJvamVjdGVub3ZlcnppY2h0IG1hZyBkaWUgYmVsIGJsaWp2ZW4gc3RhYW4uICovXG4ucHVsc2UtY2FyZHMtZ3JpZCBxZG5hcHJvLXByb2plY3QtY2FyZFthcmNoaXZlZF0gLnByb2plY3QtY2FyZC1hY3Rpb24tYmVsbCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBCaW5uZW5rb21zdC1hbmltYXRpZSBuYSBoZXQgd2lzc2VsZW4gdmFuIHNrZWxldCBuYWFyIGVjaHRlIHRlZ2Vscy4gKi9cbkBrZXlmcmFtZXMgcHVsc2UtY2FyZC1lbnRlciB7XG4gICAgMCUgICB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogc2NhbGUoMC45NikgdHJhbnNsYXRlWSg4cHgpOyB9XG4gICAgMTAwJSB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsgfVxufVxuLnB1bHNlLWNhcmRzLWdyaWQgPiBxZG5hcHJvLXByb2plY3QtY2FyZC5wdWxzZS1jYXJkLWVudGVyaW5nIHtcbiAgICBhbmltYXRpb246IHB1bHNlLWNhcmQtZW50ZXIgMjQwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpIGJvdGg7XG59XG5cbi8qIFZlcnRyZWstYW5pbWF0aWUgKGFyY2hpdmVyZW4gLyBhY3RpdmVyZW4pIGVuIGRlIGtvcnRlcmUgdmFyaWFudCB2b29yIGhldFxuICAgdmVycGxhYXRzZW4gYmlqIHZhc3RwaW5uZW4uICovXG5Aa2V5ZnJhbWVzIHB1bHNlLWNhcmQtbGVhdmUge1xuICAgIDAlICAgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHNjYWxlKDEpICAgIHRyYW5zbGF0ZVkoMCk7IH1cbiAgICAxMDAlIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiBzY2FsZSgwLjg4KSB0cmFuc2xhdGVZKDhweCk7IH1cbn1cbi5wdWxzZS1jYXJkcy1ncmlkID4gcWRuYXByby1wcm9qZWN0LWNhcmQucHVsc2UtY2FyZC1sZWF2aW5nIHtcbiAgICBhbmltYXRpb246IHB1bHNlLWNhcmQtbGVhdmUgNTAwbXMgY3ViaWMtYmV6aWVyKDAuNTUsIDAsIDAuMzUsIDEpIGZvcndhcmRzO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnB1bHNlLWNhcmRzLWdyaWQgPiBxZG5hcHJvLXByb2plY3QtY2FyZC5wdWxzZS1jYXJkLXBpbmxlYXZlIHtcbiAgICBhbmltYXRpb246IHB1bHNlLWNhcmQtbGVhdmUgMzAwbXMgY3ViaWMtYmV6aWVyKDAuNTUsIDAsIDAuMzUsIDEpIGZvcndhcmRzO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vKiBHZWVuLXpvZWtyZXN1bHRhYXQtbWVsZGluZyBvbmRlciBkZSBncmlkLiAqL1xuLnB1bHNlLXNlYXJjaC1lbXB0eSB7XG4gICAgcGFkZGluZzogMzJweCA4cHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLyogLS0tIE1hYWsvYmV3ZXJrLWNhbXBhZ25lLW1vZGFsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogRm90b2tpZXplci10ZWdlbHMgaW4gZGUgbW9kYWwuICovXG4ucHVsc2UtcGhvdG8tZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCA4N3B4KTtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbn1cbi5wdWxzZS1waG90by1hY3Rpb25zIHsgZGlzcGxheTogZmxleDsgZ2FwOiA4cHg7IG1hcmdpbi10b3A6IDE2cHg7IH1cbi5wdWxzZS1waG90by1oaW50IHsgbWFyZ2luOiA4cHggMCAwOyBmb250LXNpemU6IDEycHg7IGNvbG9yOiAjNmI3MjgwOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnB1bHNlLXBob3RvLWhpbnQgeyBjb2xvcjogI2E2YWFiMzsgfVxuLnB1bHNlLXBob3RvLWVycm9yIHsgbWFyZ2luOiA4cHggMCAwOyBmb250LXNpemU6IDEyLjVweDsgY29sb3I6ICNkODQ0MmU7IH1cbi5wdWxzZS1waG90by1lcnJvcltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLnB1bHNlLXBob3RvLXN0YXR1cyB7IG1hcmdpbjogOHB4IDAgMDsgZm9udC1zaXplOiAxMi41cHg7IGNvbG9yOiAjMWQ5ZTc1OyB9XG4ucHVsc2UtcGhvdG8tc3RhdHVzW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG5cbi8qIEhvb2d0ZS1jb3JyZWN0aWUgdm9vciBkZSB3aXRoLWluZm8tbW9kYWw6IGhldCBjb21wb25lbnQgZm9yY2VlcnQgZWVuIHZhc3RlXG4gICA4MDBweCBkaWUgdm9vciBkaXQga29ydGUgZm9ybXVsaWVyIHZlZWwgdGUgaG9vZyBpcy4gUGFnaW5hLWdlc2Nvb3B0IG9wIGhldFxuICAgaWQg4oCUIG5vb2l0IGRlIGdsb2JhbGUgY29tcG9uZW50LUNTUyBhYW5wYXNzZW4gKHFkbmEtYWN0aW9uLW1vZGFscykuICovXG4jcHVsc2UtY2FtcGFpZ24tbW9kYWwubW9kYWwtbGF5b3V0LXdpdGgtaW5mbyAubW9kYWwtZGlhbG9nIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LWhlaWdodDogbWluKDgwMHB4LCBjYWxjKDEwMHZoIC0gNDhweCkpO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuI3B1bHNlLWNhbXBhaWduLW1vZGFsLm1vZGFsLWxheW91dC13aXRoLWluZm8gLm1vZGFsLXdpbmRvdyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmctYm90dG9tOiAxNnB4O1xufVxuXG4vKiAtLS0gU2phYmxvb25raWV6ZXIgKFwiVWl0IHNqYWJsb29uXCIpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIERlemVsZmRlIGhvb2d0ZS1jb3JyZWN0aWUgYWxzIGRlIGNhbXBhZ25lLW1vZGFsIGhpZXJib3Zlbjogd2l0aC1pbmZvIGZvcmNlZXJ0XG4gICBhbmRlcnMgZWVuIFZBU1RFIDgwMHB4LCBlbiBlZW4ga29ydGUgc2phYmxvb25saWpzdCB6d2VtdCBkYWFyaW4uIFBhZ2luYS1cbiAgIGdlc2Nvb3B0IG9wIGhldCBpZCDigJQgbm9vaXQgZGUgZ2xvYmFsZSBjb21wb25lbnQtQ1NTIGFhbnBhc3Nlbi4gKi9cbiNwdWxzZS10ZW1wbGF0ZS1tb2RhbC5tb2RhbC1sYXlvdXQtd2l0aC1pbmZvIC5tb2RhbC1kaWFsb2cge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXgtaGVpZ2h0OiBtaW4oODAwcHgsIGNhbGMoMTAwdmggLSA0OHB4KSk7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG59XG4jcHVsc2UtdGVtcGxhdGUtbW9kYWwubW9kYWwtbGF5b3V0LXdpdGgtaW5mbyAubW9kYWwtd2luZG93IHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZy1ib3R0b206IDE2cHg7XG59XG5cbi8qIERpdCBpcyBlZW4gS0VVWkVsaWpzdCwgZ2VlbiB0ZWdlbG92ZXJ6aWNodDogw6nDqW4ga29sb20gb3ZlciBkZSB2b2xsZSBicmVlZHRlLlxuICAgRGUga2FhcnQgemVsZiBpcyBoZXQgZ2VkZWVsZGUgcWRuYXByby1waWNrZXItdGlsZSAoaGV0IGNvbXBvbmVudCB2b29yIFwia2llc1xuICAgZXIgZWVuIHVpdCBOXCI7IHppam4gZWlnZW4gZG9jYmxvY2sgbm9lbXQgZWVuIHNqYWJsb29uZ2FsZXJpaiBhbHMgdm9vcmJlZWxkKS5cbiAgIEFsbGVlbiBkZSBWT1JNIHdvcmR0IGhpZXIgb21nZXpldCB2YW4gZ2FsZXJpai10ZWdlbCBuYWFyIGJyZWRlIHJlZ2VsIOKAlFxuICAgemVsZmRlIHNvb3J0IHBhZ2luYS1nZXNjb29wdGUgaGVydm9ybWluZyBhbHMgZGUgY29tcGFjdGUgZ3JhZmlla3R5cGUtdGVnZWxzXG4gICBvcCBkZSBkYXNoYm9hcmQta2FhcnRwYWdpbmEuICovXG4ucHVsc2UtdHBsLWxpc3QgeyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgZ2FwOiAxMHB4OyB9XG5cbi8qIGNvbHVtbi1yZXZlcnNlIHpldCBkZSBib2R5ICh0aXRlbCArIG9tc2NocmlqdmluZykgQk9WRU4gaGV0IHRodW1iLXZhazsgZGF0XG4gICB2YWsgZHJhYWd0IGhpZXIgZGUgc2FtZW5zdGVsbGluZ3NyZWdlbC4gRGllIHJlZ2VsIGlzIGVlbiBsaWdodC1ET00ta2luZCB2YW5cbiAgIGRlIHRlZ2VsLCBlbiBoZXQgY29tcG9uZW50IGtsb250IHppam4ga2luZGVyZW4gYmlqIGVsa2UgaGVyLXJlbmRlciDigJQgZHVzIGRlXG4gICByZWdlbCBvdmVybGVlZnQgaGV0IGFhbi0gZW4gdWl0emV0dGVuIHZhbiBgc2VsZWN0ZWRgLiAqL1xuLnB1bHNlLXRwbC1saXN0IHFkbmFwcm8tcGlja2VyLXRpbGUgeyBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH1cbi5wdWxzZS10cGwtbGlzdCBxZG5hcHJvLXBpY2tlci10aWxlIC5waWNrZXItdGlsZS1ib2R5IHsgcGFkZGluZzogMTRweCAxNnB4IDRweDsgfVxuLnB1bHNlLXRwbC1saXN0IHFkbmFwcm8tcGlja2VyLXRpbGUgLnBpY2tlci10aWxlLXRodW1iIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBwYWRkaW5nOiAwIDE2cHggMTRweDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLnB1bHNlLXRwbC1tZXRhIHsgZm9udC1zaXplOiAxMnB4OyBsaW5lLWhlaWdodDogMThweDsgY29sb3I6ICM2YjcyODA7IH1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucHVsc2UtdHBsLWxpc3QgcWRuYXByby1waWNrZXItdGlsZSAucGlja2VyLXRpbGUtdGh1bWIgeyBiYWNrZ3JvdW5kOiBub25lOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnB1bHNlLXRwbC1tZXRhIHsgY29sb3I6ICNhNmFhYjM7IH1cblxuLyogU3RhdHVzcmVnZWwgaW4gZGUgbGlqc3QgKGxhZGVuIC8gbGVlZyAvIGxpanN0IG5pZXQgZ2VsYWRlbikgZW4gZGUgZm91dCBvbmRlclxuICAgZGUgbGlqc3QgYWxzIGhldCBhYW5tYWtlbiB6ZWxmIG1pc2dhYXQuIExlZ2UgdGVrc3QgPSB2ZXJib3JnZW4uICovXG4ucHVsc2UtdHBsLW1zZyB7IG1hcmdpbjogNHB4IDJweDsgZm9udC1zaXplOiAxM3B4OyBjb2xvcjogIzZiNzI4MDsgfVxuLnB1bHNlLXRwbC1tc2dbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5wdWxzZS10cGwtZXJyb3IgeyBtYXJnaW46IDEycHggMnB4IDA7IGZvbnQtc2l6ZTogMTIuNXB4OyBjb2xvcjogI2Q4NDQyZTsgfVxuLnB1bHNlLXRwbC1lcnJvcltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5wdWxzZS10cGwtbXNnIHsgY29sb3I6ICNhNmFhYjM7IH1cblxuLyogLS0tIE5vdmEtY2FtcGFnbmVnZW5lcmF0aWUgKFwiTWV0IE5vdmFcIiwgRjMtVzQpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBIZXQgc3RlcnJldGplIGRyYWFndCBoZXQgTm92YS1pZGlvb20uIERlIGtub3AgYmxpamZ0IGRlemVsZmRlIHZvcm0gYWxzXG4gICBcIlVpdCBzamFibG9vblwiIChzZWNvbmRhcnktd2hpdGUpIOKAlCBkcmllIHByaW1haXJlIGtsZXVyZW4gbmFhc3QgZWxrYWFyIHpvdVxuICAgcnV6aWUgZ2V2ZW4g4oCUIG1hYXIgaGV0IGljb29uIHN0YWF0IGluIGhldCBtZXJrcGFhcnMgdWl0IGRlIHRva2VuYmlibGlvdGhlZWssXG4gICBub29pdCBpbiBoZXQgYmlqbmEtendhcnQgdmFuIGVlbiBrYWxlIHN1YnRsZS1rbm9wLiBUYXJnZXQgb3AgaGV0ICNpZDogZGVcbiAgIGtub3AgYmVzdGFhdCBhbHMgaG9zdCBhbCBiaWogcGFnZS1sb2FkLCBvb2sgdsOzw7NyIHppam4gdXBncmFkZS4gKi9cbiNwdWxzZS1ub3ZhLWJ0biBxZG5hcHJvLWljb24geyBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpOyB9XG5cbi8qIERlemVsZmRlIGhvb2d0ZS1jb3JyZWN0aWUgYWxzIGRlIHR3ZWUgbW9kYWxzIGhpZXJib3Zlbjogd2l0aC1pbmZvIGZvcmNlZXJ0XG4gICBhbmRlcnMgZWVuIFZBU1RFIDgwMHB4LiBQYWdpbmEtZ2VzY29vcHQgb3AgaGV0IGlkLiAqL1xuI3B1bHNlLW5vdmEtbW9kYWwubW9kYWwtbGF5b3V0LXdpdGgtaW5mbyAubW9kYWwtZGlhbG9nIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LWhlaWdodDogbWluKDgwMHB4LCBjYWxjKDEwMHZoIC0gNDhweCkpO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuI3B1bHNlLW5vdmEtbW9kYWwubW9kYWwtbGF5b3V0LXdpdGgtaW5mbyAubW9kYWwtd2luZG93IHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZy1ib3R0b206IDE2cHg7XG59XG5cbi5wdWxzZS1ub3ZhLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzM5NDI5MCk7XG4gICAgbWFyZ2luOiAwIDAgNnB4O1xufVxuLnB1bHNlLW5vdmEtZmllbGQgeyBtYXJnaW4tdG9wOiAxNnB4OyB9XG4ucHVsc2Utbm92YS1maWVsZDpmaXJzdC1vZi10eXBlIHsgbWFyZ2luLXRvcDogMDsgfVxuXG4vKiBSZXN1bHRhdGVubGlqc3Qg4oCUIGVpZ2VuIG1heGltdW1ob29ndGUgbWV0IGVlbiBzbWFsbGUsIGRvb3J6aWNodGlnZSBiYWxrXG4gICBCSU5ORU4gaGV0IG9uZGVyZGVlbCAoaHVpc3JlZ2VsKTsgdHdpbnRpZyB0cmVmZmVycyB6b3VkZW4gZGUgbW9kYWwgYW5kZXJzXG4gICB0d2VlIHNjaGVybWVuIGhvb2cgbWFrZW4uIFplbGZkZSB2b3JtIGFscyBoZXQga29wcGVscGFuZWVsIG9wIGRlXG4gICBjYW1wYWduZXBhZ2luYSwgem9kYXQgYmVpZGUgem9la2xpanN0ZW4gaWRlbnRpZWsgbGV6ZW4uICovXG4ucHVsc2Utbm92YS1yZXN1bHRzIHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgbWF4LWhlaWdodDogMjA4cHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LCAjZTVlNWVhKTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG59XG4ucHVsc2Utbm92YS1yZXN1bHRzW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4ucHVsc2Utbm92YS1yZXN1bHRzOjotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiA2cHg7IH1cbi5wdWxzZS1ub3ZhLXJlc3VsdHM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbi5wdWxzZS1ub3ZhLXJlc3VsdHM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDU3LCA2NiwgMTQ0LCAwLjIyKTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbn1cbi5wdWxzZS1ub3ZhLXJlc3VsdHMgeyBzY3JvbGxiYXItd2lkdGg6IHRoaW47IHNjcm9sbGJhci1jb2xvcjogcmdiYSg1NywgNjYsIDE0NCwgMC4yMikgdHJhbnNwYXJlbnQ7IH1cblxuLnB1bHNlLW5vdmEtaXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiA5cHggMTJweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQsICNlNWU1ZWEpO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xufVxuLnB1bHNlLW5vdmEtaXRlbTpsYXN0LWNoaWxkIHsgYm9yZGVyLWJvdHRvbTogMDsgfVxuLnB1bHNlLW5vdmEtaXRlbTpob3ZlciB7IGJhY2tncm91bmQ6ICNmN2Y4ZmY7IH1cbi5wdWxzZS1ub3ZhLWl0ZW06Zm9jdXMtdmlzaWJsZSB7IG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1mb2N1cy1yaW5nLCAjNTM0YWI3KTsgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IH1cbi5wdWxzZS1ub3ZhLWl0ZW0gcWRuYXByby1pY29uIHsgZmxleC1zaHJpbms6IDA7IGNvbG9yOiAjNmI2ODg0OyB9XG4ucHVsc2Utbm92YS1pdGVtLXRleHRzIHsgbWluLXdpZHRoOiAwOyBmbGV4OiAxIDEgYXV0bzsgfVxuLnB1bHNlLW5vdmEtaXRlbS1uYW1lIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjMWMxZTJhKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ucHVsc2Utbm92YS1pdGVtLXN1YiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5wdWxzZS1ub3ZhLW5vdGUge1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7XG59XG5cbi8qIERlIGdla296ZW4gZG9jdW1lbnRlbi4gRcOpbiByZWdlbCBwZXIgZG9jdW1lbnQsIG1ldCBlZW4ga3J1aXNqZSBvbSBoZW0gZXJcbiAgIHdlZXIgdWl0IHRlIGhhbGVuLiBaZWxmZGUgbGF2ZW5kZWwgYWxzIGRlIGdla296ZW4ga29wcGVsaW5nIG9wIGRlXG4gICBjYW1wYWduZXBhZ2luYS4gKi9cbi5wdWxzZS1ub3ZhLWNob3NlbiB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogOHB4OyB9XG4ucHVsc2Utbm92YS1jaG9zZW5baGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5wdWxzZS1ub3ZhLWNoaXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgcGFkZGluZzogOXB4IDhweCA5cHggMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICNlZWYwZmI7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxOXB4O1xufVxuLnB1bHNlLW5vdmEtY2hpcCBxZG5hcHJvLWljb24geyBmbGV4LXNocmluazogMDsgfVxuLnB1bHNlLW5vdmEtY2hpcC10ZXh0cyB7IG1pbi13aWR0aDogMDsgZmxleDogMSAxIGF1dG87IH1cbi5wdWxzZS1ub3ZhLWNoaXAtbmFtZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ucHVsc2Utbm92YS1jaGlwLXN1YiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgY29sb3I6ICM2YjY4ODQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5wdWxzZS1ub3ZhLWNoaXAtc3ViIHsgY29sb3I6ICNhNmFhYjM7IH1cblxuLnB1bHNlLW5vdmEtaGludCB7IG1hcmdpbjogOHB4IDAgMDsgZm9udC1zaXplOiAxMnB4OyBsaW5lLWhlaWdodDogMTdweDsgY29sb3I6ICM2YjcyODA7IH1cbi5wdWxzZS1ub3ZhLWhpbnRbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi8qIEhldCBhYW5kYWNodHNwdW50IHVpdCBBbmFseXRpY3MgKGRlIGZvY3VzbGlqc3QtYnJ1Zyk6IGVlbiBydXN0aWdlIGNoaXAgaW5cbiAgIHBsYWF0cyB2YW4gZWVuIGludm9lcnZlbGQg4oCUIGVyIHZhbHQgbmlldHMgdGUgYmV3ZXJrZW4sIGFsbGVlbiB0ZSB3ZXRlbi4gKi9cbi5wdWxzZS1ub3ZhLWZvY3VzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogNnB4O1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmNGYzZmI7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGNvbG9yOiAjM2EzODU0O1xuICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xufVxuLnB1bHNlLW5vdmEtZm9jdXMgcWRuYXByby1pY29uIHsgY29sb3I6ICM1YjQ1YjU7IGZsZXgtc2hyaW5rOiAwOyBtYXJnaW4tdG9wOiAxcHg7IH1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucHVsc2Utbm92YS1oaW50IHsgY29sb3I6ICNhNmFhYjM7IH1cblxuLyogV2FjaHRzdGFuZCBJTiBkZSBtb2RhbDogZGUgZ2VuZXJhdGllIGR1dXJ0IDMwLTkwIHNlY29uZGVuLCBkdXMgZWVuIHN0aWxsZVxuICAga25vcCBpcyBuaWV0IGdlbm9lZy4gKi9cbi5wdWxzZS1ub3ZhLWJ1c3kge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgbWFyZ2luOiAxNnB4IDAgMDtcbiAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAjZWVmMGZiO1xuICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMTlweDtcbn1cbi5wdWxzZS1ub3ZhLWJ1c3lbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5wdWxzZS1ub3ZhLXNwaW5uZXIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoNjQsIDczLCAxNTQsIDAuMjUpO1xuICAgIGJvcmRlci10b3AtY29sb3I6ICM0MDQ5OWE7XG4gICAgYW5pbWF0aW9uOiBwdWxzZS1ub3ZhLXNwaW4gODAwbXMgbGluZWFyIGluZmluaXRlO1xufVxuQGtleWZyYW1lcyBwdWxzZS1ub3ZhLXNwaW4geyB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAucHVsc2Utbm92YS1zcGlubmVyIHsgYW5pbWF0aW9uOiBub25lOyB9XG59XG5cbi5wdWxzZS1ub3ZhLWVycm9yIHsgbWFyZ2luOiAxMnB4IDJweCAwOyBmb250LXNpemU6IDEyLjVweDsgY29sb3I6ICNkODQ0MmU7IH1cbi5wdWxzZS1ub3ZhLWVycm9yW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG5cbi8qIC0tLSBTdG9ja2ZvdG8ta2llemVyIChcIk1lZXIgYWZiZWVsZGluZ2VuXCIpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogWndldmVuZCBwYW5lZWwgbmFhc3QgZGUgbW9kYWw7IGJld3VzdCB6b25kZXIgZWlnZW4gYWNodGVyZ3JvbmRsYWFnIHpvZGF0IGRlXG4gICBjYW1wYWduZS1tb2RhbCB6aWNodGJhYXIgYmxpamZ0LiAqL1xuLnB1bHNlLXNwLXBvcCB7XG4gICAgcG9zaXRpb246IGZpeGVkOyByaWdodDogMzJweDsgdG9wOiAyNHB4OyBib3R0b206IDI0cHg7XG4gICAgei1pbmRleDogOTEwMDtcbiAgICB3aWR0aDogbWluKDQ2MHB4LCA5NHZ3KTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm94LXNoYWRvdzogMCAxMnB4IDMycHggcmdiYSgwLCAwLCAwLCAwLjE2KSwgMCAycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gICAgZGlzcGxheTogbm9uZTsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5wdWxzZS1zcC1wb3AuaXMtb3BlbiB7IGRpc3BsYXk6IGZsZXg7IGFuaW1hdGlvbjogcHVsc2Utc3AtcG9wLWluIDE2MG1zIGN1YmljLWJlemllcigwLjIsIDAuOCwgMC4yLCAxKTsgfVxuQGtleWZyYW1lcyBwdWxzZS1zcC1wb3AtaW4ge1xuICAgIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTJweCk7IH1cbiAgICB0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG59XG4ucHVsc2Utc3AtaGVhZCB7XG4gICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTJweDsgcGFkZGluZzogMTJweCAxMnB4IDEycHggMTZweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U1ZTVlYTsgZmxleDogMCAwIGF1dG87XG59XG4ucHVsc2Utc3AtdGl0bGUgeyBtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDIwcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiAjNDA0OTlhOyB9XG4ucHVsc2Utc3AtY2xvc2Uge1xuICAgIGZsZXg6IDAgMCBhdXRvOyBib3JkZXI6IDA7IGJhY2tncm91bmQ6IG5vbmU7IGN1cnNvcjogcG9pbnRlcjtcbiAgICBwYWRkaW5nOiA2cHg7IGJvcmRlci1yYWRpdXM6IDhweDsgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjMWMxZTJhKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4ucHVsc2Utc3AtY2xvc2U6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1ob3ZlciwgI2YzZjRmYik7IH1cbi5wdWxzZS1zcC10b29sYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEycHg7XG4gICAgcGFkZGluZzogMTJweCAxNnB4IDAgMTZweDsgZmxleDogMCAwIGF1dG87XG59XG4ucHVsc2Utc3Atc2VhcmNoIHsgZmxleDogMSAxIGF1dG87IG1pbi13aWR0aDogMDsgfVxuLnB1bHNlLXNwLWNvdW50IHsgZmxleDogMCAwIGF1dG87IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6ICM2ZTZlNzM7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbi5wdWxzZS1zcC1ncmlkIHtcbiAgICBmbGV4OiAxIDEgYXV0bzsgbWluLWhlaWdodDogMDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDE1MHB4LCAxZnIpKTtcbiAgICBnYXA6IDEycHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHggMTZweCAxNnB4O1xuICAgIGFsaWduLWNvbnRlbnQ6IHN0YXJ0O1xufVxuLyogVmFzdGUgY2VsaG9vZ3RlIChOSUVUIGFzcGVjdC1yYXRpbyk6IGVlbiBncmlkLWl0ZW0gbWV0IGFzcGVjdC1yYXRpbyB3b3JkdFxuICAgdWl0Z2VyZWt0IGVuIGxldmVydCBzdHJlcGVuIG9wLiAqL1xuLnB1bHNlLXNwLWNlbGwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDEwNHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSwgI2YzZjRmYik7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDA7XG4gICAgdHJhbnNpdGlvbjogb3V0bGluZS1jb2xvciAxMjBtcyBlYXNlLCB0cmFuc2Zvcm0gMTIwbXMgZWFzZTtcbn1cbi5wdWxzZS1zcC1jZWxsOmhvdmVyIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOyB9XG4ucHVsc2Utc3AtY2VsbDpmb2N1cy12aXNpYmxlIHsgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9jdXMtcmluZywgIzUzNGFiNyk7IH1cbi5wdWxzZS1zcC10aHVtYiB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IG9iamVjdC1maXQ6IGNvdmVyOyBkaXNwbGF5OiBibG9jazsgfVxuLnB1bHNlLXNwLWNlbGwucHVsc2Utc3Atc2VsZWN0ZWQgeyBvdXRsaW5lLWNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzUzNGFiNyk7IH1cbi5wdWxzZS1zcC1jaGVjayB7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDhweDsgcmlnaHQ6IDhweDtcbiAgICB3aWR0aDogMjZweDsgaGVpZ2h0OiAyNnB4OyBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgLy8gQmxpamZ0IGluIGJlaWRlIHRoZW1hJ3MgZWVuIFdJVCByb25kamUgb3AgZGUgZm90bywgZHVzIGRlIGtsZXVyIGlzIGRlXG4gICAgLy8gcHJpbWl0aWV2ZSBwdXJwbGUtNTAwIGVuIG5pZXQgaGV0IG1lcmstdG9rZW4gZGF0IGluIGRhcmsgbGljaHQgd29yZHQuXG4gICAgYmFja2dyb3VuZDogI2ZmZjsgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCwgIzUzNGFiNyk7XG4gICAgZGlzcGxheTogbm9uZTsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoMjAsIDI1LCA4MCwgMC4yNSk7XG59XG4ucHVsc2Utc3AtY2VsbC5wdWxzZS1zcC1zZWxlY3RlZCAucHVsc2Utc3AtY2hlY2sgeyBkaXNwbGF5OiBmbGV4OyB9XG4ucHVsc2Utc3AtZW1wdHkge1xuICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgcGFkZGluZzogMjhweDsgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM4YThmYTMpOyBmb250LXNpemU6IDE0cHg7XG59XG5cbi8qIC0tLSBBcmNoaXZlZXItYmV2ZXN0aWdpbmcgKHdhYXJzY2h1d2luZ3Ntb2RhbCwgYmV3dXN0IFpPTkRFUiBpbmZvLWtvbG9tKSAtICovXG4ucHVsc2UtYXJjaGl2ZS13YXJuaW5nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogMTBweDtcbiAgICBtYXJnaW46IDE0cHggMCAwO1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmOGUxO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmNWQ2OGE7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGNvbG9yOiAjNWM0MTAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbn1cbi5wdWxzZS1hcmNoaXZlLXdhcm5pbmcgcWRuYXByby1pY29uIHsgY29sb3I6ICNiNzgxMDA7IGZsZXgtc2hyaW5rOiAwOyBtYXJnaW4tdG9wOiAxcHg7IH1cblxuLyogLS0tIEluLWFwcCBoZWxwIChiZWtub3B0ZSBzZWN0aWVzOyBoZXQgV2Vya3Zvb3JyYWFkLS9LTC1wcmVjZWRlbnQpIC0tLS0tLS0tXG4gICBEZSBoZWxwa25vcCBzdGFhdCBOQUFTVCBkZSBwYWdpbmF0aXRlbCBlbiBpcyB0eXBlPVwic3VidGxlLXB1cnBsZVwiIChub29pdFxuICAgXCJzdWJ0bGVcIiDigJQgZGF0IGlzIGJpam5hLXp3YXJ0OyBodWlzcmVnZWwgdm9vciBoZWxwa25vcHBlbikuXG4gICBEZSBtb2RhbCBpcyBzaXplPVwibGFyZ2VcIiB2b29yIGRlIGxlZXNicmVlZHRlLCBtYWFyIG1ldCBlZW4gcGFnaW5hLWdlc2Nvb3B0ZVxuICAgYXV0by1ob29ndGU6IGxhcmdlIGZvcmNlZXJ0IGFuZGVycyBlZW4gVkFTVEUgaG9vZ3RlIHZhbiA4MDBweCwgZW4gemVzIGtvcnRlXG4gICBhbGluZWEncyB6d2VtbWVuIGRhYXJpbi4gWmVsZmRlIG92ZXJzY2hyaWp2aW5nIGFscyBkZSBpbXBvcnQtbW9kYWwuICovXG4ucHVsc2UtaGVhZCBoMSBxZG5hcHJvLWljb24tYnRuIHsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgbWFyZ2luLWxlZnQ6IDJweDsgfVxuI3B1bHNlLWhlbHAtbW9kYWwgLm1vZGFsLWRpYWxvZyB7IGhlaWdodDogYXV0bzsgbWF4LWhlaWdodDogbWluKDgwMHB4LCBjYWxjKDEwMHZoIC0gNDhweCkpOyB9XG4jcHVsc2UtaGVscC1tb2RhbCAubW9kYWwtd2luZG93IHsgaGVpZ2h0OiBhdXRvOyB9XG4ucHVsc2UtaGVscC1zZWMgeyBtYXJnaW46IDAgMCAxNXB4OyB9XG4ucHVsc2UtaGVscC1zZWM6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDJweDsgfVxuLnB1bHNlLWhlbHAtc2VjIGgzIHsgZm9udC1zaXplOiAxMy41cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzM5NDI5MCk7IG1hcmdpbjogMCAwIDRweDsgfVxuLnB1bHNlLWhlbHAtc2VjIHAgeyBmb250LXNpemU6IDEzcHg7IGxpbmUtaGVpZ2h0OiAyMHB4OyBjb2xvcjogIzNhMzg1NDsgbWFyZ2luOiAwOyB9XG5cbi8qIC0tLSBBbmFseXRpY3MgKC92MS9wdWxzZS9hbmFseXRpY3MsIDIwMjYtMDgtMTIpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgSGV0IG92ZXJrb2VwZWxlbmRlIHN0YXRpc3RpZWtvdmVyemljaHQuIEhlcmdlYnJ1aWt0IGRlIHN0YXRzLWtsYXNzZW4gdmFuIGRlXG4gICBkZXRhaWxwYWdpbmEgKGthYXJ0ZW4sIGJhbGtlbiwgc2tlbGV0LCBmb3V0c3RhYXQpOyBoaWVyb25kZXIgc3RhYXQgYWxsZWVuXG4gICB3YXQgZGV6ZSBwYWdpbmEgemVsZiB0b2V2b2VndC4gQWxsZXMgcHVsc2UtYW5hLWdlc2Nvb3B0LiAqL1xuXG4ucHVsc2UtYW5hLXRvb2xiYXIgeyBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cbi5wdWxzZS1hbmEtdG9vbGJhciAucHVsc2UtdG9vbGJhci1sZWZ0IHsgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG4ucHVsc2UtYW5hLWZpbHRlciB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogM3B4OyBtaW4td2lkdGg6IDE1MHB4OyB9XG4ucHVsc2UtYW5hLWZpbHRlci1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7XG59XG5cbi5wdWxzZS1hbmEtcGFuZWwgeyBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG4ucHVsc2UtYW5hLWNhcmRzIHsgbWFyZ2luLWJvdHRvbTogMThweDsgfVxuXG4ucHVsc2UtYW5hLWNvbHMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzNDBweCwgMWZyKSk7XG4gICAgZ2FwOiAxOHB4O1xuICAgIC8qIERlIGtvbG9tbWVuIHplbGYgemlqbiBnZWVuIHBhbmVsZW47IHBhbmVsZW4gZXJiaW5uZW4gaG91ZGVuIGh1biBtYXJnZS4gKi9cbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4O1xufVxuLnB1bHNlLWFuYS1jb2xzIC5wdWxzZS1hbmEtcGFuZWwgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG4ucHVsc2UtYW5hLWNvbGhlYWQge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzM5NDI5MCk7XG4gICAgbWFyZ2luOiAwIDAgOHB4O1xufVxuXG4ucHVsc2UtYW5hLW5vdGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiA4cHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxOXB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI2ODg0KTtcbiAgICBtYXJnaW46IDAgMCAxNHB4O1xufVxuLnB1bHNlLWFuYS1ub3RlW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4ucHVsc2UtYW5hLW5vdGUgcWRuYXByby1pY29uIHsgZmxleC1zaHJpbms6IDA7IGNvbG9yOiAjN2Q4NWQ2OyBtYXJnaW4tdG9wOiAxcHg7IH1cbi5wdWxzZS1hbmEta25vdGUgeyBtYXJnaW4tdG9wOiA0cHg7IH1cblxuLnB1bHNlLWFuYS1lbXB0eSB7XG4gICAgcGFkZGluZzogNDBweCAxMnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xufVxuLnB1bHNlLWFuYS1lbXB0eVtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBEZSBjYW1wYWduZXRhYmVsLiBCcmVkZSBpbmhvdWQgc2Nyb2x0IGJpbm5lbiBkZSBlaWdlbiB3cmFwcGVyIChzbWFsbGUsXG4gICB0cmFuc3BhcmFudGUgYmFsayDigJQgZGUgaHVpc3JlZ2VsKSwgbm9vaXQgZGUgcGFnaW5hLiAqL1xuLnB1bHNlLWFuYS10YWJsZS1zY3JvbGwgeyBvdmVyZmxvdy14OiBhdXRvOyB9XG4ucHVsc2UtYW5hLXRhYmxlLXNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXIgeyBoZWlnaHQ6IDZweDsgfVxuLnB1bHNlLWFuYS10YWJsZS1zY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbi5wdWxzZS1hbmEtdGFibGUtc2Nyb2xsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7IGJhY2tncm91bmQ6ICNkNmQ0ZTQ7IGJvcmRlci1yYWRpdXM6IDk5OXB4OyB9XG4ucHVsc2UtYW5hLXRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzNhMzg1NDtcbn1cbi5wdWxzZS1hbmEtdGFibGUgdGgge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7XG4gICAgcGFkZGluZzogNnB4IDEwcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWUzZjA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5wdWxzZS1hbmEtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjBlZmY3O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ucHVsc2UtYW5hLXRhYmxlIHRoLm51bSxcbi5wdWxzZS1hbmEtdGFibGUgdGQubnVtIHsgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbi5wdWxzZS1hbmEtdGFibGUgdGJvZHkgdHI6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjZjdmN2ZjOyB9XG4ucHVsc2UtYW5hLXRkLXRpdGxlIHsgbWF4LXdpZHRoOiAzNDBweDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IH1cbi5wdWxzZS1hbmEtY2FtcC1saW5rIHsgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjMzk0MjkwKTsgZm9udC13ZWlnaHQ6IDYwMDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4ucHVsc2UtYW5hLWNhbXAtbGluazpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4ucHVsc2UtYW5hLWxvY2sgeyBjb2xvcjogI2E1YTNiODsgZGlzcGxheTogaW5saW5lLWZsZXg7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLnB1bHNlLWFuYS1zdGF0ZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMTEuNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiAjZWNlYWZkO1xuICAgIGNvbG9yOiAjNWI0NWI1O1xufVxuLnB1bHNlLWFuYS1zdGF0ZS0tcnVubmluZyAgeyBiYWNrZ3JvdW5kOiAjZTNmM2VlOyBjb2xvcjogIzFkNmY1NzsgfVxuLnB1bHNlLWFuYS1zdGF0ZS0tY2xvc2VkICAgeyBiYWNrZ3JvdW5kOiAjZTZlZmZmOyBjb2xvcjogIzJmNWZiODsgfVxuLnB1bHNlLWFuYS1zdGF0ZS0tYXJjaGl2ZWQgeyBiYWNrZ3JvdW5kOiAjZWZlZWY1OyBjb2xvcjogIzZiNjg4NDsgfVxuXG4vKiBEZSBmb2N1c2xpanN0OiB2cmFhZ3JpamVuIG1ldCBlZW4gc2NvcmViYWxrIGVuIGRlIE5vdmEta25vcCBlcm5hYXN0LiAqL1xuLnB1bHNlLWFuYS1xIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxNHB4O1xuICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YwZWZmNztcbn1cbi5wdWxzZS1hbmEtcTpsYXN0LWNoaWxkIHsgYm9yZGVyLWJvdHRvbTogMDsgfVxuLnB1bHNlLWFuYS1xLW1haW4geyBmbGV4OiAxIDEgYXV0bzsgbWluLXdpZHRoOiAwOyB9XG4ucHVsc2UtYW5hLXEtaGVhZCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgZ2FwOiAxMHB4OyBmbGV4LXdyYXA6IHdyYXA7IH1cbi5wdWxzZS1hbmEtcS10aXRsZSB7IGZvbnQtc2l6ZTogMTMuNXB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogIzNhMzg1NDsgfVxuLnB1bHNlLWFuYS1xLXBjdCB7IGZvbnQtc2l6ZTogMTIuNXB4OyBmb250LXdlaWdodDogNjAwOyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4ucHVsc2UtYW5hLXEtcGN0LS1sYWFnICAgeyBjb2xvcjogI2IyM2EyZjsgfVxuLnB1bHNlLWFuYS1xLXBjdC0tbWlkZGVsIHsgY29sb3I6ICNhMjZhMDA7IH1cbi5wdWxzZS1hbmEtcS1wY3QtLWhvb2cgICB7IGNvbG9yOiAjMWQ2ZjU3OyB9XG4ucHVsc2UtYW5hLXEtbWV0YSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI2ODg0KTtcbiAgICBtYXJnaW46IDJweCAwIDZweDtcbn1cbi5wdWxzZS1hbmEtcS1tZXRhIC5wdWxzZS1hbmEtY2FtcC1saW5rIHsgZm9udC13ZWlnaHQ6IDUwMDsgfVxuLnB1bHNlLWFuYS1maWxsLS1sYWFnICAgeyBiYWNrZ3JvdW5kOiAjZDk2YTVmOyB9XG4ucHVsc2UtYW5hLWZpbGwtLW1pZGRlbCB7IGJhY2tncm91bmQ6ICNlMGE1M2Y7IH1cbi5wdWxzZS1hbmEtZmlsbC0taG9vZyAgIHsgYmFja2dyb3VuZDogIzFkOWU3NTsgfVxuLnB1bHNlLWFuYS1xLW5vdmEgeyBmbGV4OiAwIDAgYXV0bzsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi8qIEVmZmVjdCB2YW4gZGUgc3BlbGVsZW1lbnRlbjogdHdlZSBibG9ra2VuIG5hYXN0IGVsa2Fhci4gKi9cbi5wdWxzZS1hbmEtZ2FtIHsgZGlzcGxheTogZmxleDsgZ2FwOiAxNHB4OyBmbGV4LXdyYXA6IHdyYXA7IH1cbi5wdWxzZS1hbmEtZ2FtLWJsb2NrIHtcbiAgICBmbGV4OiAxIDEgMjAwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMnB4O1xuICAgIHBhZGRpbmc6IDE0cHggMTZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjdmN2ZjO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG59XG4ucHVsc2UtYW5hLWdhbS1sYWJlbCB7IGZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpOyB9XG4ucHVsc2UtYW5hLWdhbS12YWx1ZSB7IGZvbnQtc2l6ZTogMjRweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjMzk0MjkwKTsgfVxuLnB1bHNlLWFuYS1nYW0tc3ViICAgeyBmb250LXNpemU6IDEycHg7IGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI2ODg0KTsgfVxuXG4vKiBBZmRydWtrZW46IGRlIGJlZGllbmluZyB2ZXJkd2lqbnQsIGRlIGNpamZlcnMgYmxpanZlbi4gKi9cbkBtZWRpYSBwcmludCB7XG4gICAgLnB1bHNlLWFuYS10b29sYmFyLFxuICAgICNwdWxzZS1hbmEtbG9hZGluZyxcbiAgICAjcHVsc2UtYW5hLWVycm9yLFxuICAgIC5wdWxzZS1hbmEtcS1ub3ZhIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgLnB1bHNlLWFuYS1wYW5lbCB7IGJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbn1cblxuLyogQmVyZWlrIHBlciBsb2NhdGllL2FmZGVsaW5nIOKAlCBkZSB1aXRrbGFwYmFyZSBib29tICgyMDI2LTA4LTEyKTogbG9jYXRpZXJpamVuXG4gICB6aWpuIGtsaWtiYWFyIGVuIHRvbmVuIGRlIGFmZGVsaW5nZW4gZXJvbmRlciBpbmdlc3Byb25nZW4uICovXG4ucHVsc2UtYW5hLXVuaXQtZ3JvZXAgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDEwcHg7IH1cbi5wdWxzZS1hbmEtdW5pdC0ta2xpa2JhYXIgeyBjdXJzb3I6IHBvaW50ZXI7IGJvcmRlci1yYWRpdXM6IDhweDsgfVxuLnB1bHNlLWFuYS11bml0LS1rbGlrYmFhcjpob3ZlciB7IGJhY2tncm91bmQ6ICNmN2Y3ZmM7IH1cbi5wdWxzZS1hbmEtdW5pdC0ta2xpa2JhYXIgLnB1bHNlLXN0YXRzLWJhci1uYW1lIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNHB4OyB9XG4ucHVsc2UtYW5hLXVuaXQtY2hldnJvbiB7IHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlOyBmbGV4LXNocmluazogMDsgY29sb3I6ICM2YjY4ODQ7IH1cbi5wdWxzZS1hbmEtdW5pdC0ta2xpa2JhYXIuaXMtb3BlbiAucHVsc2UtYW5hLXVuaXQtY2hldnJvbiB7IHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgfVxuLnB1bHNlLWFuYS11bml0LWNvdW50IHsgZm9udC13ZWlnaHQ6IDQwMDsgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpOyBmb250LXNpemU6IDEycHg7IH1cbi5wdWxzZS1hbmEtdW5pdC1raW5kZXJlbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcbiAgICBtYXJnaW46IDAgMCA0cHggMjJweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjZTVlM2YwO1xufVxuLnB1bHNlLWFuYS11bml0LWtpbmRlcmVuW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4ucHVsc2UtYW5hLXVuaXQtLWNoaWxkIC5wdWxzZS1zdGF0cy1iYXItbmFtZSB7IGZvbnQtd2VpZ2h0OiA1MDA7IGZvbnQtc2l6ZTogMTIuNXB4OyB9XG5cbi8qIC0tLSBEYWctcGlsbC1wb3BvdmVyIChCT0FSRC1wdWxzZS1vcG1hYWstd2l6YXJkLCBrYWFydCA5IHB1bnQgNSkgLS0tLS0tLS0gKi9cbi8qIEhlcmdlYnJ1aWt0IGRlIGJlc3RhYW5kZSAucHVsc2Utc20tZGF5IC8gLnB1bHNlLXBhY2UqIC8gLnB1bHNlLXNtLWZpZWxkXG4gICBvcGJvdXcgdmFuIHBhY2luZ0ZpZWxkc0h0bWwoKSAoemllIGhpZXJib3ZlbikgaW4gZWVuIHNtYWxsZSBxZG5hcHJvLXBvcG92ZXJcbiAgIGluIHBsYWF0cyB2YW4gaW4gZGUgYnJlZGUgc3RhcC1tb2RhbC4gQWxsZWVuIGRlIGJ1aXRlbnN0ZSBrYWFydCBlbiBkZVxuICAgb3BzbGFhbi9hbm51bGVyZW4ta25vcHBlbiB6aWpuIG5pZXV3OyBkZSB2ZWxkZW4gemVsZiBsZXVuZW4gb3AgZGUgc3R5bGVzXG4gICBkaWUgZXIgYWwgc3RhYW4uICovXG5xZG5hcHJvLXBvcG92ZXJbZGF0YS1wdWxzZS1kYXktcG9wXSB7XG4gICAgd2lkdGg6IG1pbig5MnZ3LCAzMDBweCk7XG4gICAgcGFkZGluZzogMTZweCAxNnB4IDE0cHg7XG59XG4ucHVsc2UtZGF5cG9wIHsgZGlzcGxheTogYmxvY2s7IH1cbi5wdWxzZS1kYXlwb3AtZXJyb3Ige1xuICAgIG1hcmdpbjogMTBweCAwIDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCwgI2M2NWE1YSk7XG59XG4ucHVsc2UtZGF5cG9wLWVycm9yW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4ucHVsc2UtZGF5cG9wLWFjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xufVxuXG4vKiAtLS0gQWZiZWVsZGluZy1wb3BvdmVyIGJpaiBkZSBtaW5pYXR1dXIgKGthYXJ0IDI4KSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBEZSBzdGFwcGVucmlqIHRvb250IHNpbmRzIGthYXJ0IDI4IGFsdGlqZCBoZXQgZ2VhbmltZWVyZGUgc3RhcHR5cGUtaWNvb247XG4gICB3YXQgZXIgYWFuIGRlIHN0YXAgSEFOR1Qgc3RhYXQgaGllciwgb3AgZWVuIGZvcm1hYXQgd2Fhcm9wIGplIGhldCBoZXJrZW50LlxuICAgWmllIGluaXRTdGVwSW1hZ2VQb3BvdmVyKCkgaW4gZGV0YWlsLmh0bWwuXG5cbiAgIFR3ZWUgbWF0ZW4gaW4gZGV6ZWxmZGUgcG9wb3Zlci1pbnN0YW50aWUsIGdlc2NoYWtlbGQgbWV0IFtkYXRhLWVtcHR5XSBvcCBkZVxuICAgaG9zdDogZWVuIGJlZWxka2FhcnRqZSwgb2Ygw6nDqW4gcmVnZWwgdGVrc3QuIEVlbiBkYXRhLWF0dHJpYnV1dCBlbiBnZWVuXG4gICBrbGFzc2UsIHdhbnQgcWRuYXByby1wb3BvdmVyIGhlcnNjaHJpamZ0IHppam4gZWlnZW4gY2xhc3NOYW1lIGJpaiBlbGtlXG4gICByZW5kZXIgKHFkbmEtcG9wb3ZlcnMtc2tpbGwsIHZhbGt1aWwgNCkuXG5cbiAgIHBvaW50ZXItZXZlbnRzOiBub25lIOKAlCBlciBzdGFhdCBuaWV0cyBrbGlrYmFhcnMgaW4sIGVuIHpvbmRlciBkaXQga2FuIGRlXG4gICBwb3BvdmVyIG9uZGVyIGRlIGN1cnNvciB0ZXJlY2h0a29tZW46IGRhdCBnZWVmdCBlZW4gbW91c2VvdXQgb3AgZGVcbiAgIG1pbmlhdHV1ciwgZGllIHNsdWl0IGhlbSwgd2Fhcm5hIGRlIG1vdXNlb3ZlciBoZW0gaGVyb3BlbnQuIEVlbiBmbGlra2VybHVzLlxuICAgRGUgc2x1aXQtYmlqLWtsaWstZXJuYWFzdCB2YW4gaGV0IGNvbXBvbmVudCBibGlqZnQgZ2V3b29uIHdlcmtlbjogZGllIGtpamt0XG4gICBuYWFyIHdhYXIgZGUga2xpayBMQU5EVCwgZW4gZGF0IGlzIGRhbmt6aWogZGV6ZSByZWdlbCBub29pdCBkZSBwb3BvdmVyLiAqL1xuLyogMzAwcHggKDI4LjA4LjIwMjYpOiBkZSBrYWFydHRla3N0IHZhbiBxZG5hcHJvLXB1bHNlLWNhbnZhcyBpcyBpbiBjcXdcbiAgIGdlaWprdCBvcCBlZW4ga2FhcnQgdmFuIDMwMHB4IGJyZWVkICh6aWUgZGUga29wIHZhbiBxZG5hLXB1bHNlLWNhbnZhcy5qcyksXG4gICBkdXMgb3AgZGV6ZSBicmVlZHRlIGxlZXN0IGhldCBrYWFydGplIGhpZXIgaW4gZGV6ZWxmZGUgdmVyaG91ZGluZ2VuIGFscyBpblxuICAgZGUgd2l6YXJkLiBXYXMgMjQ4cHgsIHVpdCBkZSB0aWpkIGRhdCBoaWVyIGFsbGVlbiBlZW4gdWl0c25lZGUgc3RvbmQuICovXG5xZG5hcHJvLXBvcG92ZXJbZGF0YS1wdWxzZS1pbWctcG9wXSB7XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgIHBhZGRpbmc6IDEycHg7XG59XG5xZG5hcHJvLXBvcG92ZXJbZGF0YS1wdWxzZS1pbWctcG9wXVtkYXRhLWVtcHR5XSB7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbn1cbi8qIERlIGtsYXNzZSBNT0VUIGVyYmlqOiBfcG9wb3Zlci5zY3NzIHpldCBgcG9pbnRlci1ldmVudHM6IGF1dG9gIG9wXG4gICBgLnFkbmFwcm8tcG9wb3Zlci5pcy1vcGVuYCAoMCwyLDApIGVuIGRhdCB3aW50IHZhbiBlZW4gc2VsZWN0b3IgbWV0IGFsbGVlblxuICAgaGV0IGVsZW1lbnQgcGx1cyBlZW4gYXR0cmlidXV0ICgwLDEsMSkuIEdlbWV0ZW4gaW4gZWVuIGhhcm5hcyBtZXQgZGUgZWNodGVcbiAgIHN0eWxlLXYxLmNzcyDigJQgem9uZGVyIGRlemUgcmVnZWwgYmxlZWYgZGUgcG9wb3ZlciBnZXdvb24gbXVpc2dldm9lbGlnIGVuXG4gICB3YXMgZGUgZmxpa2tlcmx1cyBoaWVyYm92ZW4gbmlldCBvcGdlbG9zdCBtYWFyIGFsbGVlbiBvcGdlc2NocmV2ZW4uICovXG4ucWRuYXByby1wb3BvdmVyW2RhdGEtcHVsc2UtaW1nLXBvcF0geyBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4ucHVsc2UtaW1ncG9wIHsgZGlzcGxheTogYmxvY2s7IH1cblxuLyogMTY6MTAg4oCUIGRlIHZlcmhvdWRpbmcgd2Fhcm9wIGVlbiBzdGFwZm90byBiaWogaGV0IHVwbG9hZGVuIHdvcmR0XG4gICBiaWpnZXNuZWRlbiAoUFVMU0VfUEhPVE9fQ1JPUF9SQVRJTyBpbiBkZXRhaWwuaHRtbCkgZW4gd2Fhcm9wIGRlIGthYXJ0IGluIGRlXG4gICBhcHAgc3RhYXQgKC5wdC1iZyBpbiAwMy1zdHlsZS5jc3MpLiBXYXMgMzo0IG1ldCBhbHMgcmVkZW4gXCJkZSB2ZXJob3VkaW5nIHZhblxuICAgZGUga2FhcnQgaW4gZGUgYXBwXCI7IGRhdCB3YXMgbmlldCBuYWdlbWV0ZW4gZW4ga2xvcHRlIG5pZXQsIGVuIGVsa2UgbGlnZ2VuZGVcbiAgIHN0YXBmb3RvIHN0b25kIGhpZXIgZHVzIG1ldCBncmlqemUgYmFuZGVuIGJvdmVuIGVuIG9uZGVyIGluIGVlbiBzdGFhbmRcbiAgIGthYXJ0amUgKEtpbSwgMjguMDguMjAyNikuICovXG4ucHVsc2UtaW1ncG9wLWZyYW1lIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYXNwZWN0LXJhdGlvOiAxNiAvIDEwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTAsICNmMmYyZjUpO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5wdWxzZS1pbWdwb3AtZnJhbWUgeyBiYWNrZ3JvdW5kOiAjMmEyZDU1OyB9XG5cbi8qIGBjb250YWluYCwgd2FudCBkaXQgZnJhbWUgdG9vbnQgc2luZHMgMjguMDguMjAyNiBhbGxlZW4gbm9nIGRlIGZvdG8gdmFuXG4gICBLbGFzc2llayAvIFZyaWogdm9ybWdldmVuLCBlbiBkaWUgaXMgSU5IT1VEOiBoaWogaG9vcnQgaGVsZW1hYWwgaW4gYmVlbGQuXG4gICBWb29yIGVsa2UgZm90byB2YW4gbmEgZGUgY3JvcC1yZWdlbCBpcyBkYXQgaGV0emVsZmRlIGFscyB2dWxsZW5kOyBlZW4gb3VkZXJlXG4gICBmb3RvIG1ldCBlZW4gYW5kZXJlIHZlcmhvdWRpbmcgYmxpamZ0IHpvIHRlbm1pbnN0ZSBoZWVsLiBEZSBhY2h0ZXJncm9uZCB2YW5cbiAgIFwidGVrc3Qgb3AgYWNodGVyZ3JvbmRcIiBrb210IG5pZXQgbWVlciBkb29yIGRpdCBmcmFtZSBtYWFyIGRvb3JcbiAgIC5wdWxzZS1pbWdwb3AtY2FudmFzIGhpZXJvbmRlci4gKi9cbi5wdWxzZS1pbWdwb3AtZnJhbWUgaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogXCJUZWtzdCBvcCBhY2h0ZXJncm9uZFwiOiBkZSBFQ0hURSBrYWFydCwgbWV0IGRlemVsZmRlIHFkbmFwcm8tcHVsc2UtY2FudmFzIGFsc1xuICAgZGUgd2l6YXJkICgucHVsc2Utd2l6LWJnLWNhbnZhcy13cmFwKSBlbiBoZXQgZGVlbG5lbWVyLXZvb3JiZWVsZFxuICAgKC5wdWxzZS1wcmV2aWV3LWJnLWNhbnZhcy13cmFwKS4gQmV3dXN0IEdFRU4gZWlnZW4gYXNwZWN0LXJhdGlvIGhpZXI6IGhldFxuICAgY29tcG9uZW50IHN0YWF0IHplbGYgb3AgMTY6MTAgZW4gZGF0IGlzIG9vayBkZSBtYWF0IGluIGRlIGFwcCwgZHVzIGRpZVxuICAgb3ZlcnNjaHJpanZlbiB6b3Ugb3BuaWV1dyBlZW4gZGVyZGUgdmVyaG91ZGluZyBpbnRyb2R1Y2VyZW4uIEFsbGVlbiBkZVxuICAga2FhcnRyYW5kIGlldHMga2xlaW5lciwgd2FudCBkaXQga2FhcnRqZSBpcyAyNzZweCBicmVlZCBlbiBnZWVuIGhhbHZlIHBhZ2luYS5cbiAgIChEZSB3aXphcmQgZW4gaGV0IHZvb3JiZWVsZCBzdG9uZGVuIHRvdCAyOC4wOC4yMDI2IG9wIDE2OjkgdGVyd2lqbCBkZSBhcHBcbiAgIDE2OjEwIGlzOyBzaW5kc2RpZW4gc3RhYW4gYWxsZSB2aWVyIGRlIGZyYW1lcyBvcCAxNjoxMCwgZHVzIG9udHdlcnBlbixcbiAgIG5ha2lqa2VuIGVuIGtyaWpnZW4gZ2ViZXVydCBlaW5kZWxpamsgb3AgaGV0emVsZmRlIHZsYWsuKSAqL1xuLnB1bHNlLWltZ3BvcC1jYW52YXMgcWRuYXByby1wdWxzZS1jYW52YXMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC8qIDI4LjA4LjIwMjY6IGRlIHJvbmRpbmcgaXMgaGllciBvb2sgd2VnLiBEaXQgd2FzIGRlIHZpZXJkZSBlbiBsYWF0c3RlIHBsZWtcbiAgICAgICBkaWUgZGUga2FhcnQgbm9nIHJvbmQgdGVrZW5kZTsgZGUga2FhcnQgaXMgc2luZHMgYmVzbHVpdCA4IG92ZXJhbCByZWNodCxcbiAgICAgICBlbiBqdWlzdCBoZXQgdmVyc2NoaWwgdHVzc2VuIGRlIHBsZWtrZW4gd2FzIGRlIGtsYWNodC4gKi9cbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIExlZ2Ugc3RhYXQ6IGtsZWluIGhvdWRlbi4gRGl0IGlzIGVlbiBob3Zlci1rYWFydGplLCBnZWVuIGxlZ2Ugc3RhYXQgdmFuIGVlblxuICAgcGFnaW5hIOKAlCBlZW4gaWxsdXN0cmF0aWUgdmFuIDI0MHB4IG1hYWt0IGVlbiB2bHVjaHRpZ2UgbXVpc2Jld2VnaW5nIHp3YWFyZGVyXG4gICBkYW4gd2F0IGhpaiBvcGxldmVydCAoYmVzbHVpdCBELCBLaW0gMjUuMDguMjAyNikuICovXG4ucHVsc2UtaW1ncG9wLS1lbXB0eSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI2ODg0KTtcbn1cbi5wdWxzZS1pbWdwb3AtZW1wdHktdGV4dCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEthYXJ0IDcgKEJPQVJELXB1bHNlLWdlc3ByZWtrZW4sIHJlcGFyYXRpZSAwMS4wOS4yMDI2KTogemV2ZW5cbiAgIGtsYXNzZW4gZGllIGthYXJ0IDQgaW4gZGUgbWFya3VwIGdlYnJ1aWt0IG1hYXIga2FhcnQgNSBuaWV0XG4gICBoZWVmdCBnZXN0eWxlZCDigJQgbmFhbWRyaWZ0IHR1c3NlbiB0d2VlIHBhcmFsbGVsbGUga2FhcnRlbi5cbiAgIFdhYXJkZW4gZ2VzcGllZ2VsZCBhYW4gZGUgYmVzdGFhbmRlIHB1bHNlLW1vZC10ZWdlbmhhbmdlcnNcbiAgIGhpZXJib3Zlbiwgem9kYXQgaGV0IGJlZWxkIG5pZXQgdmVyYW5kZXJ0IHBlciBicm9uLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIEdyaWQta2luZCBpbiBkZSBzdGFwLXJpajogem9uZGVyIG1pbi13aWR0aCB3ZWlnZXJ0IGRlIGtvbG9tXG4gICBzbWFsbGVyIHRlIHdvcmRlbiBkYW4gemlqbiBpbmhvdWQgZW4gbG9vcHQgZWVuIGxhbmdlIHRpdGVsXG4gICBvdmVyIGRlIG5pZXV3LWJhZGdlIGhlZW4gKHplbGZkZSBsZXMgYWxzIC5wY3MtY29tbWVudF9faGVhZCkuICovXG4ucGdzLXN0ZXAtbWFpbiB7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbn1cblxuLyogVmVyd2lqZGVyZC1yZWdlbCBvbmRlciBlZW4gd2VnZ2Vtb2RlcmVlcmRlIHJlYWN0aWUg4oCUIGRlXG4gICBiZWhlZXItbGFhZyBib3Zlbm9wIGRlIFBXQS1jaGF0OyBzcGllZ2VsdCAucHVsc2UtbW9kLWMtZ29uZS4gKi9cbi5wY3MtY29tbWVudF9fZ29uZSB7XG4gICAgbWFyZ2luOiA2cHggMCAwO1xuICAgIGZvbnQtc2l6ZTogMTEuNXB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM4YTg3YTApO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiA2cHg7XG59XG5cbi8qIEhldCBvcGdlc2xhZ2VuLXZpbmtqZSBiaWogaGV0IG1lbGRpbmdlbi1zZWdtZW50IOKAlCBzcGllZ2VsdFxuICAgLnB1bHNlLW1vZC1zYXZlZC4gKi9cbi5wZ3Mtbm90aWZ5LXNhdmVkIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICMxZDllNzU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4ycyBlYXNlO1xufVxuLnBncy1ub3RpZnktc2F2ZWRbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLyogTGVnZSBlbiBmb3V0LXN0YXRlbjogemVsZmRlIHRvb24gYWxzIC5wZ3MtZW1wdHkgaGllcmJvdmVuLiAqL1xuLnBncy1saXN0LWVtcHR5LFxuLnBncy10aHJlYWQtZW1wdHkge1xuICAgIG1hcmdpbjogOHB4IDZweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG59XG4ucGdzLWRldGFpbC1lbXB0eSB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDQwcHggMjRweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xufVxuLnBncy10aHJlYWQtZXJyb3Ige1xuICAgIG1hcmdpbjogOHB4IDA7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCwgI2M2NWE1YSk7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEdlc3ByZWtrZW4tYmVoZWVycGFnaW5hLCBmYXNlIDI6IHN0aWNrZXIvZ2lmLWtpZXplciBpbiBkZSBjb21wb3NlclxuLy8gKEJPQVJELXB1bHNlLWdlc3ByZWtrZW4sIGthYXJ0IDEyKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLyogS2FhcnQgNSBoaWVyYm92ZW4gcG9ydHRlIGJld3VzdCBOSUVUIC5wY3MtcGljay8ucGNzLXBpY2tfXyosIC5wY3MtZXJyb3IsXG4gICAucGNzLXBsdXMtbWVudSBlbiBxZG5hcHJvLXBvcG92ZXJbZGF0YS1wdWxzZS1wbHVzLXNoZWV0XSDigJQgZGllIGhvb3JkZW4gYmlqXG4gICBmYXNlIDIgKGthYXJ0IDEwLzExKSwgZGllIHRvZW4gbm9nIG5pZXQgZ2Vib3V3ZCB3YXMgKHppZSBrYWFydCA1J3MgZWlnZW5cbiAgIFwiQkVXVVNUIE5JRVQgbWVlZ2Vub21lblwiLWxpanN0IGhpZXJib3ZlbikuIERlemUgc2VjdGllIHBvcnQgemUgYWxzbm9nLCAxOjFcbiAgIHVpdCBkZXplbGZkZSBicm9uIChhcHBfYXBpX3FkbmF2Mi9zcmMvUkVYL1Jlc291cmNlcy9TY3NzL19wd2EtY3VycmVudC5zY3NzLFxuICAgcmVnZWxzIH40OTE0LTQ5MzEgZW4gfjUwODMtNTE0NiksIG1ldCBkZXplbGZkZSB0b2tlbnZlcnRhbGluZyBhbHMga2FhcnQgNTpcbiAgIHZhcigtLWMtdGV4dCwgI2hleCkg4oaSIHZhcigtLWMtdGV4dC1ib2R5LCAjaGV4KSAoa29tdCBpbiBkaXQgc3R1ayBuaWV0IHZvb3IpLFxuICAgaGV0IGFjdGllLWJsYXV3IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMykgYmxpamZ0IE9OVkVSVEFBTEQsIGVuXG4gICBoZXgtdGVydWd2YWxsZW4gYmxpanZlbiBvdmVyYWwgc3RhYW4uXG5cbiAgIEdlY29udHJvbGVlcmQgdsOzw7NyIGhldCBwb3J0ZW4gKGdlZW4gZHViYmVsZSBkZWZpbml0aWVzKToga2FhcnQgNSBoYWRcbiAgIC5wY3MtbGVmdCwgLnBjcy1mb3JtLS10eXB0LCAucGNzLWVtb2ppLXJvd1toaWRkZW5dIGVuIGRlXG4gICAuaW5wdXQtYWN0aW9uLWJ0bi8tMi12ZXJ2YWdpbmcgQUwgVk9MTEVESUcgZ2Vwb3J0LCBpbmNsdXNpZWYgZGVcbiAgIHByZWZlcnMtcmVkdWNlZC1tb3Rpb24tcmVnZWwgKHppZSBoaWVyYm92ZW4sIHJvbmQgLnBjcy1lbW9qaS1yb3cvLnBjcy1mb3JtKS5cbiAgIERpZSBzdGFhbiBoaWVyIGR1cyBOSUVUIG5vZyBlZW4ga2Vlci5cblxuICAgQkVWSU5ESU5HLCBuYWdlem9jaHQgZW4gbmlldCBhYW5nZW5vbWVuOiBkZSBcImtpZXplci1ncmlkXCIgdWl0IGRlXG4gICBrYWFydGJyaWVmICh6b2VrdmVsZC9jYXRlZ29yaWXDq24vdGh1bWJuYWlscyBvbSBlZW4gc3RpY2tlciBvZiBnaWYgdGVcbiAgIEtJRVpFTikgYmVzdGFhdCBuaWV0IGFscyBsb3MgLnBjcy0qLWJsb2sgaW4gX3B3YS1jdXJyZW50LnNjc3Mgb20gdGVcbiAgIHBvcnRlbi4gRGUgYXBwIHJlbmRlcnQgZGllIGtpZXplciBtZXQgZGUgd2ViY29tcG9uZW50c1xuICAgPHFkbmFwcm8tc3RpY2tlci1zaGVldD4gZW4gPHFkbmFwcm8tZ2lmLXNoZWV0PiAoemllIDE2LXB1bHNlLmpzOlxuICAgYF9wdWxzZVN0aWNrZXJTaGVldGAvYF9wdWxzZUdpZlNoZWV0YCksIGRpZSBodW4gRUlHRU4gQ1NTIG1lZWJyZW5nZW5cbiAgIChhcHBfYXBpX3FkbmF2Mi8uLi4vQ3NzL2NvbXBvbmVudHMtdjIvcWRuYS1zdGlja2VyLXNoZWV0LmNzcyBlblxuICAgcWRuYS1naWYtc2hlZXQuY3NzKSDigJQgaGV0emVsZmRlIHBhdHJvb24gYWxzIHFkbmFwcm8tbG90dGllIGVsZGVycyBpbiBkaXRcbiAgIGJlc3RhbmQgKGNvbXBvbmVudC1DU1MgbGFhZHQgTkEgc3R5bGUtdjEuY3NzKS4gQmVpZGUgY29tcG9uZW50ZW4gYmVzdGFhblxuICAgQUwgaW4gZGUgYmFja29mZmljZS1jb21wb25lbnRlbmJpYmxpb3RoZWVrXG4gICAoYmFja29mZmljZTIvd2ViL2pzL2NvbXBvbmVudHMvdjIvc3RpY2tlci1zaGVldC8gZW4gLi4uL2dpZi1zaGVldC8pLCBkdXNcbiAgIGthYXJ0IDExIGthbiB6ZSByZWNodHN0cmVla3MgZ2VicnVpa2VuIOKAlCBlciB6aWpuIGhpZXIgZ2VlbiBuaWV1d2VcbiAgIC5wY3MtcGljayotZ3JpZC1rbGFzc2VuIG5vZGlnIG9mIGJlZGFjaHQuIFdhdCAucGNzLXBpY2sqIFfDiUwgaXMgKGJldmVzdGlnZFxuICAgaW4gZGUgYnJvbik6IGRlIENPTkNFUFRTVFJJUCBkaWUgdG9vbnQgd2F0IGVyIGtsYWFyc3RhYXQgb20gdGUgdmVyc3R1cmVuXG4gICAoc3RpY2tlciBvZiBnaWYpLCBuaWV0IGRlIGtpZXplciB6ZWxmLiBHZW1lbGQgaS5wLnYuIHplbGYgaWV0cyB2ZXJ6b25uZW4uICovXG5cbi8vIC0tLSAucGNzLXBsdXMtbWVudSArIHBvcG92ZXItYnJlZWR0ZSAoaGV0ICstbWVudSB2b29yIHN0aWNrZXIvZ2lmKSAtLS0tLS0tLVxuLyogRGUgdHdlZSB0ZWdlbHMgKHN0aWNrZXIvZ2lmKSBpbiBoZXQgKy1tZW51LiBEZSBzY2hpbCBsZXZlcnQgemVsZiBhbFxuICAgcGFkZGluZyBlbiBlZW4gYWZnZXJvbmRlIGthYXJ0OyBkaXQgaXMgYWxsZWVuIGRlIHJpaiBkaWUgZGUgdHdlZSB0ZWdlbHNcbiAgIHZhc3Rob3VkdC4gSGllciBpcyBkZSBwb3BvdmVyIGRlIFBSSU1BSVJFIGVuIGVuaWdlIHZvcm0gKGRpdCBwYW5lZWwgaXNcbiAgIGRlc2t0b3Atb25seSkg4oCUIGRlIGJvdHRvbS1zaGVldC12YXJpYW50IHVpdCBkZSBQV0EtYnJvbiAodGVsZWZvb24pIGlzIE5JRVRcbiAgIGdlcG9ydC4gKi9cbi5wY3MtcGx1cy1tZW51IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogMTZweDtcbiAgICBwYWRkaW5nOiA4cHggNHB4IDRweDtcbn1cbi8qIERlIHN0YW5kYWFyZC1wb3BvdmVyIGlzIGVlbiAyODBweCBtZW51LWFjaHRpZ2UgZG9vcyAoemllIGRlIHFkbmEtcG9wb3ZlcnNcbiAgIHNraWxsLCBwdW50IDEpIOKAlCB0ZSBzbWFsIGVuIHRlIGtyYXAgZ2VwYWQgdm9vciB0d2VlIGdyaWQtdGVnZWxzLiBIaWVyXG4gICB2ZXJicmVlZCBlbiBoZXJwYWQuICovXG5xZG5hcHJvLXBvcG92ZXJbZGF0YS1wdWxzZS1wbHVzLXNoZWV0XSB7XG4gICAgd2lkdGg6IG1pbig5MnZ3LCAyODBweCk7XG4gICAgcGFkZGluZzogMTJweDtcbn1cblxuLy8gLS0tIC5wY3MtcGljayogKHN0aWNrZXIvZ2lmLWNvbmNlcHRzdHJpcCBpbiBkZSBjb21wb3NlcikgLS0tLS0tLS0tLS0tLS0tLS0tXG4vKiBEZSBzdGlja2VyIG9mIGdpZiBkaWUga2xhYXJzdGFhdCwgYm92ZW4gZGUgZW1vamktcmlqOiBoZXQgYmVlbGQgemVsZiwgZWVuXG4gICBsYWJlbCAoYnYuIFwiU3RpY2tlciB0b2VnZXZvZWdkXCIpIGVuIGVlbiBrcnVpc2plIG9tIGhldCB3ZWcgdGUgaGFsZW4uXG5cbiAgIERlIGtleWxpbmUgZXJib3ZlbiBsb29wdCBvdmVyIGRlIHZvbGxlIGJyZWVkdGUsIHplbGZkZSByZWRlbiBhbHMgYmlqXG4gICAucGNzLWVkaXRzdHJpcCBoaWVyYm92ZW4gKGthYXJ0IDUpOiBkZSBzdHJlZXAgaGFrdCBoZXQgc2NoZXJtIGluIHR3ZWXDq24sXG4gICBlcmJvdmVuIGhldCBnZXNwcmVrLCBlcm9uZGVyIHdhdCBqZSBhYW4gaGV0IG1ha2VuIGJlbnQuIFplbGZkZSB2ZXJ0YWxpbmdcbiAgIGFscyBkYWFyOiBkZSBQV0EtYnJvbiByZWtlbnQgZGUgYnJlZWR0ZSB0ZXJ1ZyBtZXQgLS1icy1wYWQteCBvbWRhdCBkZVxuICAgc3RyaXAgZGFhciBpbiBlZW4gYm90dG9tIHNoZWV0IGxlZWZ0OyBoaWVyIGxlZWZ0IGhpaiBpbiBlZW4gcGFuZWVsIHpvbmRlclxuICAgc2hlZXQtemlqcGFkZGluZywgZHVzIGdld29uZSB2b2xsZSBicmVlZHRlIHpvbmRlciBuZWdhdGlldmUgbWFyZ2UgKG5ldCBhbHNcbiAgIC5wY3MtZWRpdHN0cmlwIGhpZXJib3ZlbikuICovXG4ucGNzLXBpY2sge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxMHB4IDRweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYyk7XG59XG4ucGNzLXBpY2tbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi8qIFplbGZkZSBzYW1lbmdlc3RlbGRlIHNlbGVjdG9yIGFscyAucGNzLWNvbW1lbnRfX3N0aWNrZXIgaGllcmJvdmVuLCBlbiBvbVxuICAgZXhhY3QgZGV6ZWxmZGUgcmVkZW46IHFkbmFwcm8tbG90dGllIHpldCB6aWpuIGVpZ2VuIGRlZmF1bHQgw7PDs2sgdmlhIGVlblxuICAgY2xhc3Mtc2VsZWN0b3IsIGVuIGRpZSBjb21wb25lbnQtQ1NTIHdvcmR0IE5BIHN0eWxlLXYxLmNzcyBhYW4gPGhlYWQ+XG4gICB0b2VnZXZvZWdkLiBCaWogZ2VsaWprZSBzcGVjaWZpY2l0ZWl0IHdpbnQgZGFuIGRlIGxhYXRzdGUgaW4gZGUgYnJvbmNvZGVcbiAgIOKAlCBuaWV0IGRlemUgcmVnZWwuIE1ldCBkZSBzYW1lbmdlc3RlbGRlIHNlbGVjdG9yICgwLTItMCkgd2ludCBkZXplIHJlZ2VsXG4gICBhbHRpamQsIG9uZ2VhY2h0IGxhYWR2b2xnb3JkZSAoemllIF9wd2EtY3VycmVudC5zY3NzIHZvb3IgZGUgbWV0aW5nIGRpZVxuICAgZGl0IHZhc3RzdGVsZGUg4oCUIGRlemVsZmRlIHJhY2UgdHJvZiBkYWFyIG9vayAucGNzLWNvbW1lbnRfX3N0aWNrZXIpLiAqL1xuLnBjcy1waWNrX190aHVtYi5xZG5hcHJvLWxvdHRpZSB7XG4gICAgLS1xbC1zaXplOiA0NHB4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xufVxuLyogRGV6ZWxmZGUgNDRweC1kb29zIGFscyBkZSBzdGlja2VyLXRodW1iIGhpZXJib3ZlbiwgbWFhciB2b29yIGVlbiBHSUYg4oCUIGVlblxuICAgZ2V3b29uIDxpbWc+IGluIHBsYWF0cyB2YW4gcWRuYXByby1sb3R0aWUsIGR1cyBoaWVyIGdlZW4gY29tcG9uZW50LXJhY2VcbiAgIChwdXVyIGVpZ2VuIENTUykuIEVlbiBzdGlsc3RhYW5kZSBwb3N0ZXIgKHByZXZpZXdfdXJsKTogZGl0IGlzIG5vZyBlZW5cbiAgIGNvbmNlcHQsIGdlZW4gZ2VwbGFhdHN0ZSByZWFjdGllLiAqL1xuLnBjcy1waWNrX190aHVtYi0tZ2lmIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogNDRweDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYyk7XG59XG4ucGNzLXBpY2tfX3RodW1iLS1naWYgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG59XG4ucGNzLXBpY2tfX2xhYmVsIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG59XG4ucGNzLXBpY2tfX2NsZWFyIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbn1cbi5wY3MtZXJyb3Ige1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xufVxuLnBjcy1lcnJvcltoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEthYXJ0IDE2IChCT0FSRC1wdWxzZS1nZXNwcmVra2VuLCBmZWVkYmFjayBLaW0gMDEuMDkuMjAyNik6XG4gICBzdHlsaW5nIHZvb3IgZGUgc3RhcHR5cGUtbG90dGllIGluIGRlIHJpaiwgZGUgc3RhcGZvdG8gaW4gZGVcbiAgIGdlc3ByZWtza29wLCBlbiBkZSBlbW9qaS1yaWogbGlua3MgdWl0Z2VsaWpuZC5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiBEZSBiZXdlZ2VuZGUgc3RhcHR5cGUtdGVnZWwgaW4gZGUgc3RhcC1yaWouIFNhbWVuZ2VzdGVsZGUgc2VsZWN0b3JcbiAgICgwLTItMCksIGFuZGVycyB3aW50IHFkbmFwcm8tbG90dGllJ3MgZWlnZW4gNDhweC1zdGFuZGFhcmQgdmFuIGRlemVcbiAgIG1hYXQg4oCUIHplbGZkZSByYWNlIGFscyAucGNzLWNvbW1lbnRfX3N0aWNrZXIgaGllcmJvdmVuLiAqL1xuLnBncy1zdGVwLWFuaW0ucWRuYXByby1sb3R0aWUge1xuICAgIC0tcWwtc2l6ZTogMjRweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogU3RhcGZvdG8gKyB0aXRlbCBuYWFzdCBlbGthYXIgaW4gZGUgZ2VzcHJla3Nrb3AuIERlIG1hcmdlIGRpZSBlZXJzdFxuICAgb3AgZGUgdGl0ZWwgemF0IHZlcmh1aXN0IG5hYXIgZGUgcmlqLCBhbmRlcnMgdmVyZHdpam50IGRlIHJ1aW10ZVxuICAgYm92ZW4gZGUgc3RlbW1pbmctY2hpcHMgem9kcmEgZGUgcmlqIGVyb21oZWVuIGtvbXQuICovXG4ucGdzLXRocmVhZC1oZWFkLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG4ucGdzLXRocmVhZC1oZWFkLXJvdyAucGdzLXRocmVhZC10aXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1pbi13aWR0aDogMDtcbn1cbi5wZ3MtdGhyZWFkLWltZyB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDU2cHg7XG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMTAwLCAjZTdlOWVjKTtcbn1cblxuLyogS2FhcnQgMTctdm9vcmJlcmVpZGluZyAoZmVlZGJhY2sgS2ltLCBzY3JlZW5zaG90IGJhY2tlbmQgbmFhc3QgUFdBKTpcbiAgIGRlIHNuZWxsZSBlbW9qaSBzdGFhbiBMSU5LUyBnZWdyb2VwZWVyZCwgbmlldCB1aXRnZXNtZWVyZCBvdmVyIGRlXG4gICB2b2xsZSBicmVlZHRlLiBCZXd1c3RlIGJhY2tlbmQtYWZ3aWpraW5nIHZhbiBkZSBnZXBvcnRlIFBXQS1yZWdlbFxuICAgKHNwYWNlLWJldHdlZW4gaGllcmJvdmVuLCBrYWFydCA1KTogb3AgZWVuIGJyZWRlIGRlc2t0b3AtY29tcG9zZXJcbiAgIGRyZXZlbiBkZSBhY2h0IGtub3BwZW4gdGUgdmVyIHVpdCBlbGthYXIuIERlemUgcmVnZWwgc3RhYXQgbGF0ZXIgaW5cbiAgIGhldCBiZXN0YW5kIGVuIHdpbnQgZHVzIG9wIHZvbGdvcmRlLiAqL1xuLnBjcy1lbW9qaS1yb3cge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBnYXA6IDhweDtcbn1cblxuLyogS2FhcnQgMjIgKEJPQVJELXB1bHNlLWdlc3ByZWtrZW4pOiBkZSBcIk1lZXN0IGdld2FhcmRlZXJkXCItY2hpcCBpbiBkZVxuICAgZ2VzcHJla3Nrb3AgaXMgZWVuIEtOT1AgKHNwcmluZ3QgbmFhciBkZSByZWFjdGllKSwgZHVzIGJ1dHRvbi1yZXNldFxuICAgYm92ZW5vcCBkZSBnZXdvbmUgLnBncy1jaGlwLXZvcm0sIG1ldCBlZW4gaG92ZXIgZGllIHZlcnRlbHQgZGF0IGhpalxuICAga2xpa2JhYXIgaXMuIFRla3N0IGthcHQgYWY6IGRlIHNuaXBwZXQgbWFnIGRlIGtvcCBuaWV0IG9wcmVra2VuLiAqL1xuLnBncy1jaGlwLS10b3Age1xuICAgIGJvcmRlcjogMDtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG1heC13aWR0aDogMzYwcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1wdXJwbGUtYmcsICNlYmU5ZmIpO1xuICAgIGNvbG9yOiB2YXIoLS1jLWNoaXAtcHVycGxlLXRleHQsICM0MTNiNWUpO1xufVxuLnBncy1jaGlwLS10b3A6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1wdXJwbGUtaG92ZXIsICNkOGQyZjcpO1xufVxuLnBncy1jaGlwLS10b3A6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWZvY3VzLXJpbmcsICM0MDQ5OWEpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgS2FhcnQgMjUgKEJPQVJELXB1bHNlLWdlc3ByZWtrZW4sIGZhc2UgRywgS2ltIDAyLjA5LjIwMjYpOlxuICAgc3VidGllbGUgZmVlZGJhY2stYW5pbWF0aWVzIG9wIGRlIGdlc3ByZWtrZW4tcGFnaW5hLiBBbGxlcyBzdGFhdFxuICAgT05ERVIgcHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogbm8tcHJlZmVyZW5jZSDigJQgd2llIGdlZW4gYmV3ZWdpbmcgd2lsXG4gICBrcmlqZ3QgZXhhY3QgZGUgaGFyZGUgb21zbGFnZW4gdmFuIHZvb3JoZWVuLiBLbGFzc2VuY29udHJhY3QgbWV0IGRlXG4gICB2aWV3IChrYWFydCAyNCk6IC5pcy1zd2l0Y2hpbmcsIC5wZ3MtZW50ZXIgKCsgLS1wZ3MtaSksIC5wZ3MtZW50ZXItLWxpdmUsXG4gICAuaXMtbGVhdmluZywgLmlzLWZpbHRlcmluZy5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBuby1wcmVmZXJlbmNlKSB7XG4gICAgLyogNC4gR2VzZWxlY3RlZXJkZSByaWo6IHphY2h0ZSBvbXNsYWcgaS5wLnYuIGhhcmQuICovXG4gICAgLnBncy1zdGVwcm93IHtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNTBtcyBlYXNlLCBib3JkZXItY29sb3IgMTUwbXMgZWFzZSwgYm94LXNoYWRvdyAxNTBtcyBlYXNlO1xuICAgIH1cblxuICAgIC8qIDEuIFN0YXAgd2lzc2VsZW46IGtvcCBlbiBnZXNwcmVrIGtydWlzdmVydmFnZW4uIERlIHZpZXcgemV0XG4gICAgICAgLmlzLXN3aXRjaGluZywgd2FjaHQgfjEyMG1zLCB0ZWtlbnQgb3BuaWV1dyBlbiBoYWFsdCBoZW0gd2VnLiAqL1xuICAgIC5wZ3MtdGhyZWFkLFxuICAgIC5wZ3MtdGhyZWFkLWhlYWQge1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDEyMG1zIGVhc2U7XG4gICAgfVxuICAgIC5wZ3MtdGhyZWFkLmlzLXN3aXRjaGluZyxcbiAgICAucGdzLXRocmVhZC1oZWFkLmlzLXN3aXRjaGluZyB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgLyogMWIuIFJlYWN0aWVzIGtvbWVuIGdlc3RhZ2dlcmQgYmlubmVuOiAtLXBncy1pIGlzIGRlIHJpai1pbmRleCAoZG9vclxuICAgICAgIGRlIHZpZXcgYmVncmVuc2QsIHpvZGF0IGVlbiBsYW5nZSBwYWdpbmEgbmlldCBzZWNvbmRlbiBkdXVydCkuICovXG4gICAgLnBjcy1jb21tZW50LnBncy1lbnRlciB7XG4gICAgICAgIGFuaW1hdGlvbjogcGdzLWVudGVyIDIyMG1zIGN1YmljLWJlemllcigwLjIsIDAuOCwgMC4yLCAxKSBib3RoO1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IGNhbGModmFyKC0tcGdzLWksIDApICogMjVtcyk7XG4gICAgfVxuICAgIC5wZ3MtbmV3LWRpdmlkZXIucGdzLWVudGVyIHtcbiAgICAgICAgYW5pbWF0aW9uOiBwZ3MtZmFkZSAyNjBtcyBlYXNlIGJvdGg7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogY2FsYyh2YXIoLS1wZ3MtaSwgMCkgKiAyNW1zKTtcbiAgICB9XG5cbiAgICAvKiAzLiBFZW4gcmVhY3RpZSBkaWUgdmlhIGRlIDEwcy12ZXJ2ZXJzaW5nIGJpbm5lbmtvbXQgZ2xpamR0IHZhblxuICAgICAgIG9uZGVyZW4gaW47IGRlIHZpZXcgemV0IGVyIG9vayAucGNzLWNvbW1lbnQtLWZsaXRzIG9wIChiZXN0YWF0IGFsKS4gKi9cbiAgICAucGNzLWNvbW1lbnQucGdzLWVudGVyLS1saXZlIHtcbiAgICAgICAgYW5pbWF0aW9uOiBwZ3MtZW50ZXItbGl2ZSAyNjBtcyBjdWJpYy1iZXppZXIoMC4yLCAwLjgsIDAuMiwgMSkgYm90aDtcbiAgICB9XG5cbiAgICAvKiAyLiBEZSBuaWV1dy1iYWRnZSBrcmltcHQgd2VnIGJpaiBoZXQgb3BlbmVuOyBkZSB2aWV3IHZlcndpamRlcnQgaGVtXG4gICAgICAgcGFzIG5hIGRlIG92ZXJnYW5nLiAqL1xuICAgIC5wZ3MtYmFkZ2UtbmV3IHtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE4MG1zIGVhc2UsIG9wYWNpdHkgMTgwbXMgZWFzZTtcbiAgICB9XG4gICAgLnBncy1iYWRnZS1uZXcuaXMtbGVhdmluZyB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICAvKiA1LiBGaWx0ZXIgd2lzc2VsZW46IGRlIGxpanN0IHZlcnZhYWd0IHVpdCBlbiBpbiByb25kIGhldCBoZXJ0ZWtlbmVuLiAqL1xuICAgIC5wZ3Mtc3RlcGxpc3Qge1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDEyMG1zIGVhc2U7XG4gICAgfVxuICAgIC5wZ3Mtc3RlcGxpc3QuaXMtZmlsdGVyaW5nIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgcGdzLWVudGVyIHtcbiAgICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCk7IH1cbiAgICB0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBub25lOyB9XG59XG5Aa2V5ZnJhbWVzIHBncy1lbnRlci1saXZlIHtcbiAgICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE0cHgpOyB9XG4gICAgdG8gICB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogbm9uZTsgfVxufVxuQGtleWZyYW1lcyBwZ3MtZmFkZSB7XG4gICAgZnJvbSB7IG9wYWNpdHk6IDA7IH1cbiAgICB0byAgIHsgb3BhY2l0eTogMTsgfVxufVxuXG4vKiBLYWFydCAyNyAoZmVlZGJhY2sgS2ltIDAyLjA5LjIwMjYsIFwiZ2VlbiBwYWRkaW5nXCIpOiBkZSBsaWpzdCtkZXRhaWwtXG4gICBpbmRlbGluZyBsb29wdCByYW5kLXRvdC1yYW5kIGRvb3IgaGV0IHBhbmVlbDsgZGUgMjJweCB6aWpwYWRkaW5nIHZhblxuICAgLnB1bHNlLXBhbmVsIChlbiBkZSBvbmRlcnBhZGRpbmcpIHdvcmRlbiBoaWVyIHRlcnVnZ2VyZWtlbmQuIERlXG4gICBvbmRlcmhvZWtlbiByb25kZW4gbWVlIG1ldCBoZXQgcGFuZWVsLCBhbmRlcnMgc3RlZWt0IGRlIGxpbGEgbGlqc3Rrb2xvbVxuICAgdmllcmthbnQgdWl0IGRlIGFmZ2Vyb25kZSBrYWFydC4gKi9cbi5wdWxzZS1tb2QtcGFuZWwgLnBncy1zcGxpdCB7XG4gICAgbWFyZ2luOiAwIC0yMnB4IC0yMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAxNHB4IDE0cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogS2FhcnQgMjkgKEtpbSAwMi4wOS4yMDI2KTogY2hhdC1sYXlvdXQuIERlIHZpZXcgemV0IC0tcGdzLXNwbGl0LWhcbiAgICh2aWV3cG9ydCBtaW51cyBuYXZiYXIgZW4gYWN0aWViYWxrKTsgbGlqc3QgZW4gZ2VzcHJlayBzY3JvbGxlbiBpbnRlcm4sXG4gICBkZSBjb21wb3NlciBibGlqZnQgb25kZXJhYW4gaW4gYmVlbGQuIFpvbmRlciBkZSB2YXJpYWJlbGUgKEpTIG5vZyBuaWV0XG4gICBnZWxvcGVuKSB2YWx0IGhldCB0ZXJ1ZyBvcCBkZSBvdWRlIG1lZWdyb2VpZW5kZSBob29ndGUuIERlIDk2cHggb25kZXJcbiAgIGhldCBwYW5lZWwgaXMgaGV0emVsZmRlIHN5bmMtcHVudCBhbHMgX3Rhc2tsaXN0LXNldHRpbmdzLnNjc3M6IGJhbGsgNTZcbiAgICsgb2Zmc2V0IDE2ICsgMjQgbHVjaHQsIHpvZGF0IGRlIG9uZGVya2FudCBub29pdCBhY2h0ZXIgZGUgYmFsayB2YWx0LiAqL1xuLnB1bHNlLWRldGFpbC1ib2R5LS1zaW5nbGUge1xuICAgIHBhZGRpbmctYm90dG9tOiA5NnB4O1xufVxuLnB1bHNlLW1vZC1wYW5lbCAucGdzLXNwbGl0IHtcbiAgICBoZWlnaHQ6IHZhcigtLXBncy1zcGxpdC1oLCBhdXRvKTtcbiAgICBtYXgtaGVpZ2h0OiB2YXIoLS1wZ3Mtc3BsaXQtaCwgbm9uZSk7XG4gICAgbWluLWhlaWdodDogNDgwcHg7XG59XG4ucHVsc2UtbW9kLXBhbmVsIC5wZ3MtZGV0YWlsIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucHVsc2UtbW9kLXBhbmVsIC5wZ3MtdGhyZWFkIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi8qIERhdHVtdmVsZGVuIC0+IGh1aXNrYWxlbmRlciAoS2ltIDAyLjA5LjIwMjYpLiBEZSBnZWRlZWxkZSBwb3BvdmVyIG1ldCBkZVxuICAgcWRuYXByby1kYXRlLXBpY2tlciBoYW5ndCBhYW4gZG9jdW1lbnQuYm9keSwgYnVpdGVuIGRlIG1vZGFsLiBEaWUgc3RhYXQgb3BcbiAgIHotaW5kZXggOTAwMCAoLnFkbmFwcm8tbW9kYWwpIGVuIGRlIHBvcG92ZXIgc3RhbmRhYXJkIG9wIDEwMDEsIGR1cyB6b25kZXJcbiAgIGRlemUgcmVnZWwgb3BlbnQgZGUga2FsZW5kZXIgQUNIVEVSIGRlIHN0YXAtbW9kYWwuIDk0MDAgaXMgYm92ZW4gZGVcbiAgIFwiYWx0aWpkIGJvdmVub3BcIi1sYWFnIDkzMDAgZGllIGRlIGZsb3cgZWRpdG9yIGdlYnJ1aWt0LiBPcCBoZXQgZGF0YS1cbiAgIGF0dHJpYnV1dCBlbiBuaWV0IG9wIGVlbiBjbGFzczogcWRuYXByby1wb3BvdmVyIG92ZXJzY2hyaWpmdCB6aWpuIGVpZ2VuXG4gICBjbGFzc05hbWUgYmlqIGVsa2UgcmVuZGVyLiBaaWUgX2NhbXBhaWduLWhlYWQtc2NyaXB0cy5odG1sLiAqL1xuLnFkbmFwcm8tcG9wb3ZlcltkYXRhLXB1bHNlLWRhdGUtcG9wXSB7XG4gICAgei1pbmRleDogOTQwMDtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRGV2IFgtcmF5IOKAlCBjb21wb25lbnQvaGFuZC1yb2xsZWQgb3ZlcmxheSAoZGV2IHJpZ2h0IG9ubHkpXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIERyaXZlbiBieSB3ZWIvanMvZGV2LXhyYXkuanMuIE1hcmtlcnMgYXJlIERBVEEgQVRUUklCVVRFUyxcbiAgIG5ldmVyIGNsYXNzZXM6IHNldmVyYWwgY29tcG9uZW50cyByZXdyaXRlIHRoZWlyIG93biBjbGFzc05hbWVcbiAgIG9uIHJlLXJlbmRlciwgd2hpY2ggd291bGQgd2lwZSBhIGNsYXNzLWJhc2VkIGhvb2suXG5cbiAgIFRoZSBtYXJrZXIgY29sb3VycyBhcmUgREVMSUJFUkFURUxZIG9mZi1zeXN0ZW0gKGxpbWUgKyBtYWdlbnRhKS5cbiAgIEEgZGV2IG92ZXJsYXkgbXVzdCBuZXZlciBiZSBtaXN0YWtlbiBmb3IgcmVhbCBVSSwgc28gaXQgbWF5IG5vdFxuICAgYm9ycm93IGJyYW5kIG9yIHNpZ25hbCB0b2tlbnMuIFRoZSBwYW5lbCBpdHNlbGYgZG9lcyB1c2UgdG9rZW5zLFxuICAgYmVjYXVzZSBpdCBpcyBhIG5vcm1hbCBzdXJmYWNlLlxuXG4gICBMaW5lIHN0eWxlIGNhcnJpZXMgdGhlIG1lYW5pbmcgdG9vLCBub3QganVzdCBodWUsIHNvIHRoZSB0d29cbiAgIHN0YXRlcyBzdGF5IGFwYXJ0IHdpdGhvdXQgcmVseWluZyBvbiByZWQvZ3JlZW46XG4gICAgIHNvbGlkICA9IGNvbXBvbmVudFxuICAgICBkYXNoZWQgPSBoYW5kLXJvbGxlZFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiRkZXYteHJheS1jb21wb25lbnQ6ICMwMGUwN2E7XG4kZGV2LXhyYXktaGFuZHJvbGxlZDogI2ZmMmQ5NTtcblxuLy8gb3V0bGluZSBzaXRzIGluc2lkZSB0aGUgYm94IGFuZCBpcyBsYXlvdXQtbmV1dHJhbCwgc28gc3dpdGNoaW5nIHRoZVxuLy8gb3ZlcmxheSBvbiBuZXZlciBzaGlmdHMgdGhlIHBhZ2UgaXQgaXMgbWVhc3VyaW5nLlxuW2RhdGEteHJheT1cImNvbXBvbmVudFwiXSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkICRkZXYteHJheS1jb21wb25lbnQgIWltcG9ydGFudDtcbiAgICBvdXRsaW5lLW9mZnNldDogLTJweCAhaW1wb3J0YW50O1xufVxuXG5bZGF0YS14cmF5PVwiaGFuZHJvbGxlZFwiXSB7XG4gICAgb3V0bGluZTogMnB4IGRhc2hlZCAkZGV2LXhyYXktaGFuZHJvbGxlZCAhaW1wb3J0YW50O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4ICFpbXBvcnRhbnQ7XG59XG5cbi8qIEhvdmVyIGxhYmVsLiBLTk9XTiBMSU1JVEFUSU9OOiB0aGlzIGJvcnJvd3MgOjphZnRlciwgc28gYW4gZWxlbWVudFxuICAgdGhhdCBhbHJlYWR5IGRyYXdzIGFuIGljb24gdGhyb3VnaCA6OmFmdGVyIGxvc2VzIGl0IHdoaWxlIGhvdmVyZWRcbiAgIHdpdGggdGhlIG92ZXJsYXkgb24uIEhvdmVyLW9ubHkga2VlcHMgdGhlIGJsYXN0IHJhZGl1cyBzbWFsbDsgdGhlXG4gICBwYW5lbCdzIGNsaWNrYWJsZSB3b3JrIGxpc3QgaXMgdGhlIHJlYWwgd2F5IHRvIG5hdmlnYXRlLiAqL1xuW2RhdGEteHJheV06aG92ZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogYXR0cihkYXRhLXhyYXktdGFnKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDIxNDc0ODMwMDA7XG4gICAgICAgIHBhZGRpbmc6IDJweCA2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCB2YXIoLS1yYWRpdXMtc20sIDRweCkgMDtcbiAgICAgICAgZm9udDogNjAwIDEwcHgvMS40IHVpLW1vbm9zcGFjZSwgXCJTRiBNb25vXCIsIE1lbmxvLCBtb25vc3BhY2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbn1cblxuW2RhdGEteHJheT1cImNvbXBvbmVudFwiXTpob3Zlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICRkZXYteHJheS1jb21wb25lbnQ7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS05NTAsICMwYjBiMGQpO1xufVxuXG5bZGF0YS14cmF5PVwiaGFuZHJvbGxlZFwiXTpob3Zlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICRkZXYteHJheS1oYW5kcm9sbGVkO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4vKiBQdWxzZSB1c2VkIGJ5IHRoZSBcImNsaWNrIGEgcm93IHRvIGZpbmQgaXRcIiBqdW1wLiAqL1xuQGtleWZyYW1lcyBkZXYteHJheS1wdWxzZSB7XG4gICAgMCUsIDEwMCUgeyBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMjU1LCA0NSwgMTQ5LCAwKTsgfVxuICAgIDUwJSAgICAgIHsgYm94LXNoYWRvdzogMCAwIDAgOHB4IHJnYmEoMjU1LCA0NSwgMTQ5LCAwLjU1KTsgfVxufVxuXG5bZGF0YS14cmF5LXB1bHNlXSB7XG4gICAgYW5pbWF0aW9uOiBkZXYteHJheS1wdWxzZSAwLjVzIGVhc2UtaW4tb3V0IDM7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gcGFuZWwgKi9cblxuLy8gQmxvY2sgaXMgYSBDTEFTUywgbm90IHRoZSBpZC4gTmVzdGluZyBgJl9faGVhZGAgdW5kZXIgYCNkZXYteHJheS1wYW5lbGBcbi8vIGNvbXBpbGVzIHRvIGAjZGV2LXhyYXktcGFuZWxfX2hlYWRgLCBhbiBpZCBzZWxlY3RvciB0aGF0IG1hdGNoZXMgbm90aGluZyDigJRcbi8vIGl0IGNvc3QgYSBmdWxsIHJlbmRlciByb3VuZC4gVGhlIGlkIHN0YXlzIHB1cmVseSBhcyB0aGUgSlMgaG9vay5cbi5kZXYteHJheSB7XG4gICAgLy8gTm8gY291bnRlci16b29tIGhlcmUgb24gcHVycG9zZS4gVGhlIGdsb2JhbCA4MCUgYm9keSB6b29tIGxpdmVzIGluIHRoZVxuICAgIC8vIE9MRCBiYWNrb2ZmaWNlIGNoYWluOyBwYXJ0aWFscy92MS9iYXNlLnNjc3Mgc2V0cyBubyB6b29tIG9uIGJvZHksIGFuZFxuICAgIC8vIHRoaXMgcGFuZWwgb25seSBldmVyIHJlbmRlcnMgb24gdjEgcGFnZXMgKGl0cyB0b2dnbGUgaXMgaW4gYmFzZS5odG1sKS5cbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgcmlnaHQ6IHZhcigtLXMtNCwgMTZweCk7XG4gICAgYm90dG9tOiB2YXIoLS1zLTQsIDE2cHgpO1xuICAgIHotaW5kZXg6IDIxNDc0ODMwMDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHdpZHRoOiAzMjBweDtcbiAgICBtYXgtaGVpZ2h0OiA3MHZoO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kLCA4cHgpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWNhcmQsIDAgNHB4IDE2cHggcmdiYSgyMCwgMjUsIDgwLCAwLjEyKSk7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjNDA0NDRkKTtcblxuICAgICZfX2hlYWQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXMtMywgMTJweCkgdmFyKC0tcy00LCAxNnB4KTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQsICNmMGYxZjIpO1xuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMwYjBiMGQpO1xuICAgIH1cblxuICAgICZfX2FjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLXMtMiwgOHB4KTtcbiAgICB9XG5cbiAgICAmX19jbG9zZSxcbiAgICAmX19taW4ge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMwYjBiMGQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGhlIG1pbnVzIHJlYWRzIGhlYXZpZXIgdGhhbiB0aGUgw5cgYXQgdGhlIHNhbWUgc2l6ZSwgc28gdHJpbSBpdCBhIGxpdHRsZS5cbiAgICAmX19taW4ge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgfVxuXG4gICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIGNvbGxhcHNlZCAocGlsbCkgKi9cblxuICAgIC8vIENvbGxhcHNlZCwgdGhlIHBhbmVsIElTIHRoZSBwaWxsOiBzYW1lIGVsZW1lbnQsIHNhbWUgY29ybmVyLCBzbyB0aGVcbiAgICAvLyBzdGF0ZSBhbmQgdGhlIHBvc2l0aW9uIHN1cnZpdmUgYSByZXNjYW4uIFdpZHRoIG11c3QgZ28gYXV0bywgYW5kIHRoZVxuICAgIC8vIDcwdmggY2FwIGhhcyB0byBsaWZ0IG9yIHRoZSBmbGV4IGNvbHVtbiBrZWVwcyByZXNlcnZpbmcgcm9vbS5cbiAgICAmW2RhdGEtbWluXSB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICB9XG5cbiAgICAmX19waWxsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1zLTMsIDEycHgpO1xuICAgICAgICBwYWRkaW5nOiA3cHggdmFyKC0tcy0zLCAxMnB4KTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJl9fcGlsbHRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMwYjBiMGQpO1xuICAgIH1cblxuICAgIC8vIERvdCBjYXJyaWVzIHRoZSBjb2xvdXIsIHRoZSBudW1iZXIgc3RheXMgaW4gdGV4dCBjb2xvdXI6IHRoZSBncmVlbiBpc1xuICAgIC8vIHRvbyBsaWdodCB0byByZWFkIGFzIHRleHQgb24gd2hpdGUuXG4gICAgJl9fcGlsbGNvdW50IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNXB4O1xuICAgICAgICBmb250OiA3MDAgMTFweC8xLjQgdWktbW9ub3NwYWNlLCBcIlNGIE1vbm9cIiwgTWVubG8sIG1vbm9zcGFjZTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMGIwYjBkKTtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHdpZHRoOiA3cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDdweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1raW5kPVwiY29tcG9uZW50XCJdOjpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGRldi14cmF5LWNvbXBvbmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1raW5kPVwiaGFuZHJvbGxlZFwiXTo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRkZXYteHJheS1oYW5kcm9sbGVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3RhdHMge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgICAgIGdhcDogdmFyKC0tcy0yLCA4cHgpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1zLTMsIDEycHgpIHZhcigtLXMtNCwgMTZweCk7XG4gICAgfVxuXG4gICAgJl9fc3RhdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMnB4O1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1zLTIsIDhweCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1zbSwgNHB4KTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlLCAjZjBmMWYyKTtcblxuICAgICAgICAmW2RhdGEta2luZD1cImNvbXBvbmVudFwiXSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJGRldi14cmF5LWNvbXBvbmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1raW5kPVwiaGFuZHJvbGxlZFwiXSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJGRldi14cmF5LWhhbmRyb2xsZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19udW0ge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZywgIzBiMGIwZCk7XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjcyODApO1xuICAgIH1cblxuICAgICZfX3N1YmhlYWQge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1zLTIsIDhweCkgdmFyKC0tcy00LCAxNnB4KTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQsICNmMGYxZjIpO1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjcyODApO1xuICAgIH1cblxuICAgICZfX2xpc3Qge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIH1cblxuICAgICZfX3JvdyB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAmX19yb3didG4ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGdhcDogdmFyKC0tcy0yLCA4cHgpO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogNnB4IHZhcigtLXMtNCwgMTZweCk7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyLCAjZjBmMWYyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3Jvd25hbWUge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgZm9udDogNTAwIDExcHgvMS40IHVpLW1vbm9zcGFjZSwgXCJTRiBNb25vXCIsIE1lbmxvLCBtb25vc3BhY2U7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSwgIzQwNDQ0ZCk7XG4gICAgfVxuXG4gICAgJl9fcm93Y291bnQge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgbWluLXdpZHRoOiAyMHB4O1xuICAgICAgICBwYWRkaW5nOiAxcHggNXB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtcGlsbCwgOTk5cHgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUsICNmMGYxZjIpO1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG4gICAgfVxuXG4gICAgJl9fbW9yZSB7XG4gICAgICAgIHBhZGRpbmc6IDZweCB2YXIoLS1zLTQsIDE2cHgpO1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG4gICAgfVxuXG4gICAgJl9fZm9vdCB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXMtMiwgOHB4KSB2YXIoLS1zLTQsIDE2cHgpIHZhcigtLXMtMywgMTJweCk7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LCAjZjBmMWYyKTtcbiAgICB9XG5cbiAgICAmX19idG4ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLWNhcmQsICNlMWUzZTYpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20sIDRweCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHksICM0MDQ0NGQpO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyLCAjZjBmMWYyKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogVGhlIHBhbmVsIG11c3QgbmV2ZXIgbWFyayBpdHNlbGYuICovXG4uZGV2LXhyYXkgW2RhdGEteHJheV0ge1xuICAgIG91dGxpbmU6IDAgIWltcG9ydGFudDtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogbm9uZTtcbiAgICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIERldiB0b2tlbnMg4oCUIGhhcmRjb2RlZC1jb2xvdXIgb3ZlcmxheSAoZGV2IHJpZ2h0IG9ubHkpXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIERyaXZlbiBieSB3ZWIvanMvZGV2LXRva2Vucy5qcy4gTWFya3MgZWxlbWVudHMgd2hvc2UgY29sb3VyXG4gICBjb21lcyBmcm9tIGEgbGl0ZXJhbCB2YWx1ZSBpbnN0ZWFkIG9mIHZhcigtLeKApiksIHdoaWNoIGlzIHRoZVxuICAgcmVhbCBkYXJrLW1vZGUgcmVhZGluZXNzIHF1ZXN0aW9uLlxuXG4gICBSdW5zIEFMT05HU0lERSB0aGUgcsO2bnRnZW4gKF9kZXYteHJheS5zY3NzKSwgc28gaXQgbXVzdCB1c2UgYVxuICAgZGlmZmVyZW50IHZpc3VhbCBjaGFubmVsOiByw7ZudGdlbiBvd25zIGBvdXRsaW5lYCwgdGhpcyBvd25zIGFuXG4gICBpbnNldCBib3gtc2hhZG93LiBCb3RoIGNhbiBiZSBvbiBhdCBvbmNlIGFuZCBzdGF5IHJlYWRhYmxlLlxuXG4gICBNYXJrZXIgY29sb3VyIGlzIGRlbGliZXJhdGVseSBvZmYtc3lzdGVtIChhbWJlciksIHNhbWUgcmVhc29uXG4gICBhcyBpbiBfZGV2LXhyYXkuc2NzczogYSBkZXYgb3ZlcmxheSBtdXN0IG5ldmVyIHJlYWQgYXMgcmVhbCBVSS5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4kZGV2LXRva2Vucy1tYXJrOiAjZmZiMzAwO1xuXG4vLyBpbnNldCBzaGFkb3cgaW5zdGVhZCBvZiBvdXRsaW5lOiBsYXlvdXQtbmV1dHJhbCBBTkQgYSBmcmVlIGNoYW5uZWwuXG4vLyBPdmVycmlkZXMgYW55IHNoYWRvdyB0aGUgZWxlbWVudCBoYWQsIHdoaWNoIGlzIGEga25vd24gY29zbWV0aWMgc2lkZVxuLy8gZWZmZWN0IHdoaWxlIHRoZSBvdmVybGF5IGlzIG9uLiBBY2NlcHRhYmxlIGluIGEgZGV2IHRvb2wuXG5bZGF0YS10b2tlbnM9XCJoYXJkY29kZWRcIl0ge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCAkZGV2LXRva2Vucy1tYXJrICFpbXBvcnRhbnQ7XG59XG5cbkBrZXlmcmFtZXMgZGV2LXRva2Vucy1wdWxzZSB7XG4gICAgMCUsIDEwMCUgeyBvdXRsaW5lOiAwIHNvbGlkIHJnYmEoMjU1LCAxNzksIDAsIDApOyBvdXRsaW5lLW9mZnNldDogMDsgfVxuICAgIDUwJSAgICAgIHsgb3V0bGluZTogNnB4IHNvbGlkIHJnYmEoMjU1LCAxNzksIDAsIDAuNik7IG91dGxpbmUtb2Zmc2V0OiAycHg7IH1cbn1cblxuW2RhdGEtdG9rZW5zLXB1bHNlXSB7XG4gICAgYW5pbWF0aW9uOiBkZXYtdG9rZW5zLXB1bHNlIDAuNXMgZWFzZS1pbi1vdXQgMztcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBwYW5lbCAqL1xuXG4vLyBCb3R0b20tTEVGVCwgYmVjYXVzZSB0aGUgcsO2bnRnZW4gcGFuZWwgb3ducyBib3R0b20tcmlnaHQgYW5kIGJvdGhcbi8vIGNhbiBiZSBvcGVuIGF0IHRoZSBzYW1lIHRpbWUuIE5vIGNvdW50ZXItem9vbTogdjEgcGFnZXMgY2Fycnkgbm9cbi8vIGJvZHkgem9vbSAoc2VlIF9kZXYteHJheS5zY3NzKS5cbi5kZXYtdG9rZW5zIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogdmFyKC0tcy00LCAxNnB4KTtcbiAgICBib3R0b206IHZhcigtLXMtNCwgMTZweCk7XG4gICAgei1pbmRleDogMjE0NzQ4MzAwMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgIG1heC1oZWlnaHQ6IDcwdmg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1jYXJkLCAjZTFlM2U2KTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQsIDhweCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLCAjZmZmZmZmKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctY2FyZCwgMCA0cHggMTZweCByZ2JhKDIwLCAyNSwgODAsIDAuMTIpKTtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHksICM0MDQ0NGQpO1xuXG4gICAgJl9faGVhZCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcy0zLCAxMnB4KSB2YXIoLS1zLTQsIDE2cHgpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCwgI2YwZjFmMik7XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZywgIzBiMGIwZCk7XG4gICAgfVxuXG4gICAgJl9fYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogdmFyKC0tcy0yLCA4cHgpO1xuICAgIH1cblxuICAgICZfX2Nsb3NlLFxuICAgICZfX21pbiB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcblxuICAgICAgICAmOmhvdmVyIHsgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMGIwYjBkKTsgfVxuICAgIH1cblxuICAgIC8vIFRoZSBtaW51cyByZWFkcyBoZWF2aWVyIHRoYW4gdGhlIMOXIGF0IHRoZSBzYW1lIHNpemUsIHNvIHRyaW0gaXQgYSBsaXR0bGUuXG4gICAgJl9fbWluIHtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgIH1cblxuICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBjb2xsYXBzZWQgKHBpbGwpICovXG5cbiAgICAvLyBDb2xsYXBzZWQsIHRoZSBwYW5lbCBJUyB0aGUgcGlsbDogc2FtZSBlbGVtZW50LCBzYW1lIGNvcm5lciwgc28gc3RhdGUgYW5kXG4gICAgLy8gcG9zaXRpb24gc3Vydml2ZSBhIHJlc2Nhbi4gV2lkdGggbXVzdCBnbyBhdXRvLCBhbmQgdGhlIDcwdmggY2FwIGhhcyB0b1xuICAgIC8vIGxpZnQgb3IgdGhlIGZsZXggY29sdW1uIGtlZXBzIHJlc2VydmluZyByb29tLiBNaXJyb3JzIF9kZXYteHJheS5zY3NzLlxuICAgICZbZGF0YS1taW5dIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIH1cblxuICAgICZfX3BpbGwge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLXMtMywgMTJweCk7XG4gICAgICAgIHBhZGRpbmc6IDdweCB2YXIoLS1zLTMsIDEycHgpO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAmX19waWxsdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZywgIzBiMGIwZCk7XG4gICAgfVxuXG4gICAgLy8gT25lIG1hcmtlciBjb2xvdXIgaGVyZSwgc28gdGhlIHR3byBjb3VudHMgYXJlIHRvbGQgYXBhcnQgYnkgYSBmaWxsZWQgZG90XG4gICAgLy8gKGNvbG91cnMpIHZlcnN1cyBhIGhvbGxvdyBvbmUgKGVsZW1lbnRzKSByYXRoZXIgdGhhbiBieSBodWUuXG4gICAgJl9fcGlsbGNvdW50IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNXB4O1xuICAgICAgICBmb250OiA3MDAgMTFweC8xLjQgdWktbW9ub3NwYWNlLCBcIlNGIE1vbm9cIiwgTWVubG8sIG1vbm9zcGFjZTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMGIwYjBkKTtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHdpZHRoOiA3cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDdweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1raW5kPVwiY29sb3Vyc1wiXTo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRkZXYtdG9rZW5zLW1hcms7XG4gICAgICAgIH1cblxuICAgICAgICAmW2RhdGEta2luZD1cImVsZW1lbnRzXCJdOjpiZWZvcmUge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICRkZXYtdG9rZW5zLW1hcms7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdGF0cyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1zLTIsIDhweCk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXMtMywgMTJweCkgdmFyKC0tcy00LCAxNnB4KTtcbiAgICB9XG5cbiAgICAmX19zdGF0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXMtMiwgOHB4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtLCA0cHgpO1xuICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICRkZXYtdG9rZW5zLW1hcms7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSwgI2YwZjFmMik7XG4gICAgfVxuXG4gICAgJl9fbnVtIHtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMwYjBiMGQpO1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbiAgICB9XG5cbiAgICAmX19zdWJoZWFkIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcy0yLCA4cHgpIHZhcigtLXMtNCwgMTZweCk7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LCAjZjBmMWYyKTtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICB9XG5cbiAgICAmX19yb3cge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgJl9fcm93YnRuIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1zLTIsIDhweCk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiA1cHggdmFyKC0tcy00LCAxNnB4KTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZC1ob3ZlciwgI2YwZjFmMik7IH1cbiAgICB9XG5cbiAgICAmX19zd2F0Y2gge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICAgIGhlaWdodDogMTRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICAvLyBBIGNoZWNrZXJib2FyZCBiZWhpbmQgdGhlIHN3YXRjaCBzbyBhIHdoaXRlIG9yIHRyYW5zbHVjZW50XG4gICAgICAgIC8vIGNvbG91ciBpcyBzdGlsbCB2aXNpYmxlIGFnYWluc3QgdGhlIHBhbmVsLlxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1jYXJkLCAjYzRjN2NjKTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCg0NWRlZywgI2NjY2NjYyAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNzUlLCAjY2NjY2NjIDc1JSksXG4gICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICNjY2NjY2MgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDc1JSwgI2NjY2NjYyA3NSUpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDhweCA4cHg7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMCwgNHB4IDRweDtcbiAgICB9XG5cbiAgICAmX19jb2xvdXIge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGZvbnQ6IDUwMCAxMXB4LzEuNCB1aS1tb25vc3BhY2UsIFwiU0YgTW9ub1wiLCBNZW5sbywgbW9ub3NwYWNlO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHksICM0MDQ0NGQpO1xuICAgIH1cblxuICAgICZfX2NvdW50IHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIG1pbi13aWR0aDogMjBweDtcbiAgICAgICAgcGFkZGluZzogMXB4IDVweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXBpbGwsIDk5OXB4KTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlLCAjZjBmMWYyKTtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjcyODApO1xuICAgIH1cblxuICAgICZfX21vcmUge1xuICAgICAgICBwYWRkaW5nOiA2cHggdmFyKC0tcy00LCAxNnB4KTtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjcyODApO1xuICAgIH1cblxuICAgICZfX2Zvb3Qge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1zLTIsIDhweCkgdmFyKC0tcy00LCAxNnB4KSB2YXIoLS1zLTMsIDEycHgpO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCwgI2YwZjFmMik7XG4gICAgfVxuXG4gICAgJl9fYnRuIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDZweCAxMHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1jYXJkLCAjZTFlM2U2KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtLCA0cHgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmZmZmYpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjNDA0NDRkKTtcblxuICAgICAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyLCAjZjBmMWYyKTsgfVxuICAgIH1cbn1cblxuLyogTmVpdGhlciBwYW5lbCBtYXkgbWFyayBpdHNlbGYuICovXG4uZGV2LXRva2VucyBbZGF0YS10b2tlbnNdLFxuLmRldi14cmF5IFtkYXRhLXRva2Vuc10ge1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRGV2IGRhcmsgbW9kZSAoZGV2IHJpZ2h0IG9ubHkpXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIERyaXZlbiBieSB3ZWIvanMvZGV2LWRhcmstbW9kZS5qcywgd2hpY2ggc2V0cyBkYXRhLXRoZW1lPVwiZGFya1wiXG4gICBvbiA8aHRtbD4uIFRoYXQgYXR0cmlidXRlIGlzIHdoYXQgTEFZRVIgQiBvZlxuICAgY29tcG9uZW50cy92Mi9kZXNpZ24tdG9rZW5zL19kZXNpZ24tdG9rZW5zLnNjc3MgYWxyZWFkeSBsaXN0ZW5zXG4gICB0bywgc28gZXZlcnkgY29tcG9uZW50IHRoYXQgdXNlcyB0aGUgc2VtYW50aWMgdG9rZW5zIGZsaXBzIGJ5XG4gICBpdHNlbGYuIE5vdGhpbmcgaXMgZm9yY2VkIGhlcmUuXG5cbiAgIFRIQVQgSVMgVEhFIFdIT0xFIFBPSU5UOiBhbnl0aGluZyBzdGlsbCBwYWludGluZyBhIGhhcmRjb2RlZFxuICAgaGV4IHN0YXlzIGxpZ2h0IGFuZCB0aGVyZWZvcmUgc3RhbmRzIG91dC4gTGlnaHQgcGF0Y2hlcyBhcmUgdGhlXG4gICB3b3JrIGxpc3QsIG5vdCBhIGJ1ZyBpbiB0aGlzIGZpbGUuIERvIE5PVCBcImZpeFwiIHRoZW0gYnkgcGlsaW5nXG4gICBvdmVycmlkZXMgaW4gaGVyZTsgZml4IHRoZSBjb21wb25lbnQncyBvd24gU0NTUyB0byB1c2UgdG9rZW5zLlxuXG4gICBUaGlzIGZpbGUgbm8gbG9uZ2VyIHBhaW50cyBhbnl0aGluZy4gSXQgdXNlZCB0byBmb3JjZSBodG1sL2JvZHlcbiAgIHRvIHZhcigtLWMtYmctcGFnZSksIGJlY2F1c2UgdGhvc2UgY2FycmllZCBhIGNvbXBpbGVkLWF3YXkgU0NTU1xuICAgdmFyaWFibGUgdGhhdCBubyB0aGVtZSBjb3VsZCByZWFjaC4gVGhhdCBpcyBmaXhlZCBhdCB0aGUgc291cmNlOlxuICAgcGFydGlhbHMvdjEvYmFzZS5zY3NzIG5vdyBwb2ludHMgaHRtbC9ib2R5IGF0IC0tYy1iZy1wYWdlIGFuZFxuICAgLS1jLXRleHQtYm9keSwgc28gdGhlIHBhZ2Ugc3VyZmFjZSBmbGlwcyBvbiBpdHMgb3duLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbmh0bWxbZGF0YS10aGVtZT1cImRhcmtcIl0ge1xuICAgIC8vIFRoZSBvbmUgdGhpbmcgc3RpbGwgbmVlZGVkIGhlcmUsIGFuZCBpdCBpcyBub3QgYSBjb2xvdXI6IHRoaXMgdGVsbHNcbiAgICAvLyB0aGUgYnJvd3NlciB0byBkcmF3IG5hdGl2ZSBzY3JvbGxiYXJzLCBmb3JtIGNvbnRyb2xzIGFuZCB0aGUgY2FyZXQgaW5cbiAgICAvLyB0aGVpciBkYXJrIHZhcmlhbnRzLiBXaXRob3V0IGl0IHRob3NlIHN0YXkgbGlnaHQgYW5kIHJlYWQgYXMgZmFsc2VcbiAgICAvLyBwb3NpdGl2ZXMgd2hlbiBhdWRpdGluZyB3aGF0IGRvZXMgbm90IGZvbGxvdyB0aGUgdGhlbWUuXG4gICAgY29sb3Itc2NoZW1lOiBkYXJrO1xufVxuIiwiQHVzZSAnLi4vbW9kdWxlcy9taXhpbnMnIGFzICo7XG5cbi8vIOKUgOKUgCBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIChzaGFyZWQgYWNyb3NzIHRoZSBwaGFzZWQgcmVzcG9uc2l2ZSB3b3JrKSDilIDilIBcbi8vICAgdGFibGV0IDogY29sbGFwc2UgdGhlIEFjdGl2aXR5IHNpZGViYXIgKyBvdmVyZmxvdyB0aGUgYnVsay1hY3Rpb24gdG9vbGJhclxuLy8gICBtb2JpbGUgOiBzaW5nbGUgY29sdW1uLCBtYXN0ZXLihpJkZXRhaWwgZHJpbGwtZG93blxuJGluYm94LWJwLXRhYmxldDogMTEwMHB4O1xuJGluYm94LWJwLW1vYmlsZTogNzY4cHg7XG5cbiRjb2xvcl8xOiB2YXIoLS1jLXRleHQtbXV0ZWQpOyAgIC8vIHdhcyAjNmM3NTdkLCBzY2h1aWZ0IG5hYXIgIzZlNzI4MFxuJGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7ICAgLy8gd2FzICM0MDQ5OUEsIGlkZW50aWVrIGFhbiBoZXQgdG9rZW5cbiRjb2xvcl8zOiB3aGl0ZTtcbiRjb2xvcl80OiAjMjAyMTI0O1xuJGNvbG9yXzU6ICM1ZjYzNjg7XG4kY29sb3JfNjogdmFyKC0tYy10ZXh0LWJvZHkpOyAgIC8vIHdhcyAjMzIzMTMwLCBzY2h1aWZ0IG5hYXIgIzBiMGIwZFxuJGNvbG9yXzc6ICMwMDA7XG4kY29sb3JfODogIzQ4NTJlYTtcbiRjb2xvcl85OiB2YXIoLS1jLXRleHQtZGlzYWJsZWQtcHApOyAgIC8vIHdhcyAjOEM5MkMyLCBpZGVudGllayBhYW4gaGV0IHRva2VuXG4kY29sb3JfMTE6ICNlMjkzMzQ7XG4kYmFja2dyb3VuZC1jb2xvcl8xOiAjRUVFRkZBO1xuJGJhY2tncm91bmQtY29sb3JfMjogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiRiYWNrZ3JvdW5kLWNvbG9yXzM6ICNkYzM1NDU7XG4kYmFja2dyb3VuZC1jb2xvcl80OiB2YXIoLS1jLWJnLWNhcmQpOyAgIC8vIHdhcyAjZmZmXG4kYmFja2dyb3VuZC1jb2xvcl81OiAjRDlEQkVCO1xuJGJhY2tncm91bmQtY29sb3JfNjogI2U5ZTllOTtcbiRiYWNrZ3JvdW5kLWNvbG9yXzc6ICNmOGY5ZmE7XG4kYmFja2dyb3VuZC1jb2xvcl84OiAjYzNiY2VmO1xuJGJhY2tncm91bmQtY29sb3JfOTogIzQ4NTJlYTtcbiRiYWNrZ3JvdW5kLWNvbG9yXzEwOiB2YXIoLS1jLWJnLWNhcmQpOyAgIC8vIHdhcyB3aGl0ZSwgZGUgdHdlZSBwYW5lbGVuXG4kYmFja2dyb3VuZC1jb2xvcl8xMTogcmdiYSgwLCAwLCAwLCAwLjAyKTtcbiRiYWNrZ3JvdW5kLWNvbG9yXzEyOiByZ2JhKDAsIDEyMCwgMjEyLCAwLjEpO1xuJGJhY2tncm91bmQtY29sb3JfMTM6ICNmOWU2OWU7XG4kYmFja2dyb3VuZC1jb2xvcl8xNDogI2JhY2RlYTtcbiRiYWNrZ3JvdW5kLWNvbG9yXzE1OiAjZWZhZGFjO1xuJGJhY2tncm91bmQtY29sb3JfMTY6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiRiYWNrZ3JvdW5kLWNvbG9yXzE3OiByZ2JhKDAsIDAsIDAsIDAuMzUpO1xuJGJvcmRlci1jb2xvcjogIzQwNDk5QTtcbiRib3JkZXItY29sb3JfMTogdmFyKC0tYy1ib3JkZXItY2FyZCk7ICAgLy8gd2FzICNkZWUyZTYsIHNjaHVpZnQgbmFhciAjZTFlM2U2XG5cbi5pbmJveC1jb250YWluZXIge1xuXHQvLyBDb250YWluZXIgc3RhcnRzIDc2cHggZnJvbSB2aWV3cG9ydCB0b3AgKGJyZWFkY3J1bWIgYmFyIGhlaWdodCkuXG5cdC8vIFVzZSBmaXhlZCBoZWlnaHQgc28gcGFuZWxzIHNjcm9sbCBpbnRlcm5hbGx5LCBwYWdlIGRvZXNuJ3Qgc2Nyb2xsLlxuXHRoZWlnaHQ6IGNhbGMoMTAwdmggLSA3NnB4KTtcblx0bWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDc2cHgpO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHQvLyBUb3AvbGVmdCBicmVhdGhpbmcgcm9vbSBzbyB0aGUgc2VhcmNoIGJveCdzIGZvY3VzIHJpbmcgaXNuJ3QgY2xpcHBlZCBieVxuXHQvLyB0aGlzIG92ZXJmbG93OmhpZGRlbiBhZ2FpbnN0IHRoZSBoZWFkZXIvbmF2LXJhaWwuIFNlYXJjaCArIHBhbmVscyBzaGlmdFxuXHQvLyB0b2dldGhlciwgc28gdGhlaXIgbGVmdCBlZGdlcyBzdGF5IGFsaWduZWQuXG5cdHBhZGRpbmc6IDhweCAwIDAgOHB4O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uaW5ib3gtc2VsZWN0aW9uLWdyb3VwIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0Z2FwOiA0cHg7XG59XG4uaW5ib3gtY291bnQtZGlzcGxheSB7XG5cdGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRnYXA6IDZweDtcblx0aGVpZ2h0OiA0MHB4O1xuXHRwYWRkaW5nOiAwIDEycHg7XG5cdGJvcmRlci1yYWRpdXM6IDhweDtcblx0YmFja2dyb3VuZDogI2U2ZTlmZjtcblx0Y29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRmb250LXdlaWdodDogNDAwO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcblx0ZmxleC1zaHJpbms6IDA7XG59XG5cbi5zZWFyY2gtYWN0aW9ucy1iYXIge1xuXHRwYWRkaW5nLWJvdHRvbTogOHB4O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRnYXA6IDE2cHg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdC5zZWFyY2gtc2VjdGlvbiB7XG5cdFx0Ly8gUHJlZmVycyA0MDBweCBhbmQgc3RheXMgdGhlcmUgd2hpbGUgdGhlcmUncyByb29tIChubyBncm93KTsgc2hyaW5rc1xuXHRcdC8vIGRvd24gdG8gMTYwIG9ubHkgd2hlbiB0aGUgdG9vbGJhciBuZWVkcyB0aGUgc3BhY2UuXG5cdFx0ZmxleDogMCAxIDQwMHB4O1xuXHRcdG1pbi13aWR0aDogMTYwcHg7XG5cdFx0bWF4LXdpZHRoOiA0MDBweDtcblx0XHQuc2VhcmNoLWlucHV0LXdyYXBwZXIge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdH1cblx0fVxuXHQuYWN0aW9ucy1zZWN0aW9uIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0Z2FwOiAxMnB4O1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAvLyBFbnRyYW5jZTogc3VidGxlIHNsaWRlLWRvd24gKyBmYWRlLiBSZS10cmlnZ2VycyBlYWNoIHRpbWUgdGhlIGJhclxuICAgICAgICAvLyBnb2VzIGZyb20gZGlzcGxheTpub25lIHRvIGZsZXggKGpRdWVyeSAuc2hvdygpKS5cbiAgICAgICAgYW5pbWF0aW9uOiBpbmJveC10b29sYmFyLWluIDE4MG1zIGVhc2Utb3V0O1xuICAgICAgICAuZGl2aWRlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yXzI7XG4gICAgICAgICAgICBtYXJnaW46IDAgNHB4O1xuICAgICAgICB9XG4gICAgICAgIC8vIElubGluZSBidWxrIGFjdGlvbnMgKHdpZGUpIHZzIHRoZSBvdmVyZmxvdyDii64gKG5hcnJvdykuIFRoZSBtZWRpYSBxdWVyeVxuICAgICAgICAvLyBiZWxvdyBzd2FwcyB0aGVtLlxuICAgICAgICAuYWN0aW9ucy1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIH1cbiAgICAgICAgLy8gT3ZlcmZsb3cg4ouuIGFuY2hvciDigJQgaGlkZGVuIHVudGlsIHRoZSBtZWRpYSBxdWVyeSBzd2FwcyBpdCBpbi4gQ2Fycmllc1xuICAgICAgICAvLyBpdHMgb3duIG1lbnUgcG9zaXRpb25pbmcgKHRoZSBwYW5lbC1oZWFkZXIncyAuaW5ib3gtbWVudSBydWxlIGlzIHNjb3BlZFxuICAgICAgICAvLyB0byAubWlkZGxlLXBhbmVsLCBzbyBpdCBkb2Vzbid0IHJlYWNoIGhlcmUpLlxuICAgICAgICAuYWN0aW9ucy1vdmVyZmxvdy1hbmNob3Ige1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIC5pbmJveC1tZW51IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMjAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5pbmJveC1tZW51LW9wZW4gLmluYm94LW1lbnUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCByaWdodDtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IGluYm94LW1lbnUtaW4gMTQwbXMgZWFzZS1vdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblx0fVxufVxuXG4ubWFpbi1jb250ZW50IHtcblx0ZmxleDogMSAxIDA7XG5cdG1pbi1oZWlnaHQ6IDA7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdG92ZXJmbG93OiBoaWRkZW47XG4gICAgZ2FwOiA4cHg7XG59XG5cbi5sZWZ0LXNpZGViYXIge1xuXHRmbGV4OiAwIDAgMTgwcHg7XG5cdHdpZHRoOiAxODBweDtcblx0bWF4LXdpZHRoOiAxODBweDtcblx0bWluLXdpZHRoOiAwO1xuXHRvdmVyZmxvdy14OiBoaWRkZW47XG5cdG92ZXJmbG93LXk6IGF1dG87XG5cdGJvcmRlci1yYWRpdXM6IDhweDtcblx0YmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3JfMTA7XG5cdGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRib3JkZXItY29sb3JfMTtcblx0cGFkZGluZzogNHB4IDhweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuXG4gICAgJi1oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTZweCAxMnB4IDIwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICB9XG4gICAgaHIge1xuICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICBtYXJnaW46IDhweDtcbiAgICB9XG5cdC5zaWRlYmFyLXNlY3Rpb24ge1xuXHRcdG1hcmdpbi1ib3R0b206IDhweDtcblx0XHQuc2lkZWJhci1pdGVtcy1saXN0IHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0Z2FwOiA4cHg7XG5cdFx0XHRtYXJnaW4tdG9wOiA4cHg7XG5cdFx0fVxuXHRcdC5zZWN0aW9uLWhlYWRlciB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdHBhZGRpbmc6IDZweCA4cHg7XG5cdFx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdFx0Y29sb3I6ICRjb2xvcl82O1xuXHRcdFx0Zm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgICAgICAvLyBDaGV2cm9uOiBmaXhlZCAyMHB4IGNvbHVtbiBzbyB0aGUgaWNvbiBhZnRlciBpdCBhbGlnbnNcbiAgICAgICAgICAgIC8vIHdpdGggdGhlIGljb25zIGluIHRoZSBzdWItaXRlbXMgYmVsb3cuXG4gICAgICAgICAgICA+IGkuY29sbGFwc2UtYnRuIHtcbiAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yXzU7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3JfMTtcbiAgICAgICAgICAgICAgICA+IGkuY29sbGFwc2UtYnRuIHsgY29sb3I6ICRjb2xvcjsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi10aXRsZSB7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuc2VjdGlvbi1sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGdhcDogNnB4O1xuICAgICAgICAgICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICAgICAgICAgIC5zZWN0aW9uLXRpdGxlIHsgZmxleDogMTsgbWluLXdpZHRoOiAwOyB9XG4gICAgICAgICAgICAgICAgICAgIC5jb3VudCB7IGZvbnQtc2l6ZTogMTFweDsgY29sb3I6ICRjb2xvcl85OyBmbGV4LXNocmluazogMDsgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblx0XHR9XG5cdFx0LnNpZGViYXItaXRlbSB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGdhcDogOHB4O1xuICAgICAgICAgICAgLy8gY2hldnJvbiBjb2wgKDIwcHgpICsgZ2FwICg4cHgpID0gMjhweCBpbmRlbnQgYmVmb3JlIGljb25cblx0XHRcdHBhZGRpbmc6IDZweCA4cHggNnB4IDI4cHg7XG5cdFx0XHRjb2xvcjogJGNvbG9yXzY7XG5cdFx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0XHRmb250LXdlaWdodDogNDAwO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDIwcHg7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA4cHg7XG5cdFx0XHR1c2VyLXNlbGVjdDogbm9uZTtcblx0XHRcdGkge1xuXHRcdFx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0XHRcdGZsZXgtc2hyaW5rOiAwO1xuXHRcdFx0XHR3aWR0aDogMTZweDtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdGNvbG9yOiAkY29sb3JfNjtcblx0XHRcdH1cblx0XHRcdC5zaWRlYmFyLWl0ZW0tbGFiZWwge1xuXHRcdFx0XHRmbGV4OiAxO1xuXHRcdFx0XHRtaW4td2lkdGg6IDA7XG5cdFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdFx0fVxuXHRcdFx0LnNpZGViYXItaXRlbS1jb3VudCB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTFweDtcblx0XHRcdFx0Y29sb3I6ICRjb2xvcl85O1xuXHRcdFx0XHRmbGV4LXNocmluazogMDtcblx0XHRcdH1cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWJnLXN1YnRsZS1ob3Zlcik7XG5cdFx0XHR9XG4gICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3JfMTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yO1xuXHRcdFx0XHRmb250LXdlaWdodDogNTAwO1xuXHRcdFx0XHRpIHsgY29sb3I6ICRjb2xvcjsgfVxuICAgICAgICAgICAgfVxuXHRcdH1cbiAgICAgICAgLnNlY3Rpb24tbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cdH1cbn1cblxuLm1pZGRsZS1wYW5lbCB7XG5cdC8vIEZsdWlkOiAzMDBweCBmbG9vciBvbiBzbWFsbCBzY3JlZW5zLCBncm93cyBvbmx5IGEgbGl0dGxlIG9uIHdpZGVyXG5cdC8vIHNjcmVlbnMgdXAgdG8gMzgwcHguIFBhbmVsIDMgZ3Jvd3MgbXVjaCBmYXN0ZXIgc28gaXQgc3RheXMgZG9taW5hbnQuXG5cdGZsZXg6IDEgMSAzMDBweDtcblx0d2lkdGg6IGF1dG8gIWltcG9ydGFudDtcblx0bWluLXdpZHRoOiAzMDBweDtcblx0bWF4LXdpZHRoOiAzODBweDtcblx0bWluLWhlaWdodDogMDtcblx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGJvcmRlci1jb2xvcl8xO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcl8xMDtcblx0Ym9yZGVyLXJhZGl1czogOHB4O1xuXHQucGFuZWwtaGVhZGVyIHtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1jb2xvcl8xO1xuXHRcdGhlaWdodDogNTZweDtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdHBhZGRpbmc6IDAgOHB4O1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0LmZpbHRlci10YWJzIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRnYXA6IDRweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yXzY7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgICAgICAgcGFkZGluZzogNnB4IDhweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG5cdFx0XHQuZmlsdGVyLXRhYiB7XG5cdFx0XHRcdHBhZGRpbmc6IDRweCAxMnB4O1xuXHRcdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0XHRcdGNvbG9yOiAkY29sb3JfMTtcblx0XHRcdFx0Zm9udC1zaXplOiAxcmVtO1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcblx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0Jjpub3QoLmFjdGl2ZSkge1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3JfMjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC5maWx0ZXItdGFiLmFjdGl2ZSB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yXzQ7XG5cdFx0XHRcdGNvbG9yOiAkY29sb3I7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5wYW5lbC1hY3Rpb25zIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRnYXA6IDRweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDBweCA0cHg7XG5cdFx0fVxuXHRcdC5pbmJveC1tZW51LWFuY2hvciB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHQuaW5ib3gtbWVudSB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiBjYWxjKDEwMCUgKyA0cHgpO1xuXHRcdFx0XHRyaWdodDogMDtcblx0XHRcdFx0ei1pbmRleDogMjAwO1xuXHRcdFx0fVxuXHRcdFx0Ji5pbmJveC1tZW51LW9wZW4gLmluYm94LW1lbnUge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0Ly8gUG9wIG91dCBvZiB0aGUgYnV0dG9uOiBmYWRlICsgc2xpZ2h0IHNjYWxlL2Ryb3AuXG5cdFx0XHRcdHRyYW5zZm9ybS1vcmlnaW46IHRvcCByaWdodDtcblx0XHRcdFx0YW5pbWF0aW9uOiBpbmJveC1tZW51LWluIDE0MG1zIGVhc2Utb3V0O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQubXVsdGktc2VsZWN0LWhpbnQge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0Z2FwOiA2cHg7XG5cdFx0cGFkZGluZzogNnB4IDEycHg7XG5cdFx0Zm9udC1zaXplOiAxMXB4O1xuXHRcdGNvbG9yOiAkY29sb3JfOTtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA2KTtcblx0XHQmOmVtcHR5IHsgZGlzcGxheTogbm9uZTsgfVxuXHRcdC5pbmJveC1zZWxlY3QtY291bnQge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0XHRcdGNvbG9yOiAkY29sb3I7XG5cdFx0fVxuXHRcdC5pbmJveC1zZWxlY3QtY2xlYXIge1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0Y29sb3I6ICRjb2xvcjtcblx0XHRcdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdFx0XHRwYWRkaW5nOiAycHggNnB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogNnB4O1xuXHRcdFx0Jjpob3ZlciB7IGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWNvbG9yXzE7IH1cblx0XHR9XG5cdH1cblx0LnRpbWVsaW5lLXNlY3Rpb24ge1xuXHRcdGZsZXg6IDE7XG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRwYWRkaW5nOiA0cHggOHB4O1xuXHRcdC50aW1lbGluZS1oZWFkZXIge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdGNvbG9yOiAkY29sb3JfNjtcblx0XHRcdG1hcmdpbi1ib3R0b206IDhweDtcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHR9XG5cdFx0Ly8gUmVzZXQgdGhlIHN0YWxlIC5tZXNzYWdlLWl0ZW0gcnVsZXMgaW4gd2ViL2Nzcy92MS9zdHlsZS5jc3MgKGNvbXBpbGVkXG5cdFx0Ly8gZnJvbSBzY3NzL3N0eWxlLnNjc3MsIHdoaWNoIHN0aWxsIGhhcyB0aGUgb2xkIHBhZGRpbmcvbWFyZ2luIGJsb2NrKS5cblx0XHQvLyBzdHlsZS12MS5jc3MgbG9hZHMgYWZ0ZXIgc3R5bGUuY3NzIHNvIHNhbWUtc3BlY2lmaWNpdHkgcnVsZXMgaGVyZSB3aW4uXG5cdFx0Lm1lc3NhZ2UtaXRlbSB7XG5cdFx0XHRwYWRkaW5nOiA0cHggOHB4O1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogNHB4O1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDhweDtcblx0XHRcdGdhcDogOHB4O1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdH1cblxuXHRcdC8vIEd1YXJhbnRlZSB0aGUgY29tcG9uZW50J3Mgc2VsZWN0ZWQraG92ZXIgc3RhdGUgdXNlcyBkYXJrIHB1cnBsZSxcblx0XHQvLyBub3QgZ3JleS4gVGhlIENTUyB2YXJpYWJsZSBjaGFpbiBjYW4gbG9zZSB0byBhIGxvd2VyLXNwZWNpZmljaXR5XG5cdFx0Ly8gcnVsZSBkZXBlbmRpbmcgb24gY2FzY2FkZSBvcmRlcjsgdGhpcyBzY29wZWQgb3ZlcnJpZGUgd2lucyBjbGVhbmx5LlxuXHRcdHFkbmFwcm8taW5ib3gtbWVzc2FnZS5pbmJveC1tZXNzYWdlLXNlbGVjdGVkOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6ICNkYWRkZjIgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cbn1cblxuLnJpZ2h0LXBhbmVsIHtcblx0ZmxleDogOCAxIDA7XG5cdHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG5cdG1pbi13aWR0aDogMDtcblx0b3ZlcmZsb3cteTogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcl8xMDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG5cbi8qIExldCB0aGUgZGV0YWlsIHZpZXcgZmlsbCB0aGUgcGFuZWwgc28gaXRzIFwibm90aGluZyBzZWxlY3RlZFwiIGVtcHR5IHN0YXRlXG4gICBjZW50cmVzIHZlcnRpY2FsbHkgbGlrZSB0aGUgb3RoZXIgcGFuZWwtMyBlbXB0eSBzdGF0ZXMgKHdoaWNoIGxpdmUgaW5cbiAgICNpbmJveC1kZXRhaWwtZW1wdHksIGEgZGlyZWN0IGNoaWxkIG9mIC5yaWdodC1wYW5lbCkuICovXG4jbm90aWZpY2F0aW9uX2RldGFpbC12aWV3IHtcblx0aGVpZ2h0OiAxMDAlO1xufVxuXG4vLyDilIDilIAgU2tlbGV0b24gbG9hZGVyIChpbmJveCBtZXNzYWdlIGxpc3QpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLmluYm94LXNrZWxldG9uLWNhcmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogNHB4IDhweDtcbiAgICBtaW4taGVpZ2h0OiAxMDhweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICZfX2F2YXRhciAgeyBmbGV4LXNocmluazowOyB3aWR0aDo0OHB4OyBoZWlnaHQ6NDhweDsgYm9yZGVyLXJhZGl1czo1MCU7IH1cbiAgICAmX19ib2R5ICAgIHsgZmxleDoxOyBtaW4td2lkdGg6MDsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGdhcDo2cHg7IHBhZGRpbmctdG9wOjRweDsgfVxuICAgICZfX3NlbmRlciAgeyBoZWlnaHQ6MTJweDsgd2lkdGg6NDUlOyB9XG4gICAgJl9fc3ViamVjdCB7IGhlaWdodDoxNHB4OyB3aWR0aDo4MCU7IH1cbiAgICAmX19wcmV2aWV3IHsgaGVpZ2h0OjEycHg7IHdpZHRoOjY1JTsgfVxuICAgICZfX3RhZyAgICAgeyBoZWlnaHQ6MjRweDsgd2lkdGg6ODhweDsgYm9yZGVyLXJhZGl1czoxMnB4OyB9XG59XG4vLyBTdGFnZ2VyLWluIGZvciByZWFsIG1lc3NhZ2VzIGFmdGVyIHNrZWxldG9uIHN3YXBcbkBrZXlmcmFtZXMgaW5ib3gtbXNnLWVudGVyIHtcbiAgICAwJSAgIHsgb3BhY2l0eTowOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSg2cHgpIHNjYWxlKDAuOTgpOyB9XG4gICAgMTAwJSB7IG9wYWNpdHk6MTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7IH1cbn1cbi5pbmJveC1tc2ctc3RhZ2dlciB7XG4gICAgb3BhY2l0eTowO1xuICAgIGFuaW1hdGlvbjogaW5ib3gtbXNnLWVudGVyIDI0MG1zIGN1YmljLWJlemllcigwLjM0LDEuNTYsMC42NCwxKSBmb3J3YXJkcztcbn1cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4vLyBUb29sdGlwIG11c3QgcmVuZGVyIGFib3ZlIHRoZSBmdWxsc2NyZWVuIHBvcHVwICh6LWluZGV4OiA5OTk5KVxuLnFkbmFwcm8tdG9vbHRpcCB7IHotaW5kZXg6IDEwMDAxICFpbXBvcnRhbnQ7IH1cblxuLy8gRGVhZGxpbmUgc3RhdHVzIGNvbG91cnMgb24gdGhlIGR1ZS10aW1lIGNoaXAgaW5zaWRlIGluYm94IG1lc3NhZ2VzXG5xZG5hcHJvLWluYm94LW1lc3NhZ2VbZGF0YS1kZWFkbGluZS1zdGF0dXM9XCJvdmVyZHVlXCJdIHtcbiAgICAuaW5ib3gtbWVzc2FnZS1kdWUsXG4gICAgLmluYm94LW1lc3NhZ2UtZHVlIHFkbmFwcm8taWNvbiB7IGNvbG9yOiAjZDkzMDI1ICFpbXBvcnRhbnQ7IH0gLy8gcmVkXG59XG5xZG5hcHJvLWluYm94LW1lc3NhZ2VbZGF0YS1kZWFkbGluZS1zdGF0dXM9XCJkdWUtc29vblwiXSB7XG4gICAgLmluYm94LW1lc3NhZ2UtZHVlLFxuICAgIC5pbmJveC1tZXNzYWdlLWR1ZSBxZG5hcHJvLWljb24geyBjb2xvcjogI2U4ODEwYSAhaW1wb3J0YW50OyB9IC8vIGFtYmVyL29yYW5nZVxufVxuXG4vLyBPdmVycmlkZSBzdHlsZS5jc3Mgc3RhbGUgLm1lc3NhZ2UtaXRlbTpob3ZlciB7IHJnYmEoMCwwLDAsMC4wMikgfSB3aGljaFxuLy8ga2lsbHMgdGhlIGNvbXBvbmVudCdzIGludGVuZGVkICNmMGYxZjIgKGdyZXktNTApIGhvdmVyLiBTYW1lIHNwZWNpZmljaXR5XG4vLyAoMCwzLDEpIGJ1dCBzdHlsZS12MS5jc3MgbG9hZHMgbGF0ZXIg4oaSIHdpbnMuXG4ubWlkZGxlLXBhbmVsIC50aW1lbGluZS1zZWN0aW9uIC5tZXNzYWdlLWl0ZW06aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW1zZy1iZy1ob3ZlciwgdmFyKC0tYy1iZy1zdWJ0bGUtaG92ZXIpKSAhaW1wb3J0YW50O1xufVxuXG4vLyBMb25nIHByaW1hcnkgY29udGVudCDihpIgbWluaW1hbCBob3Zlci1yZXZlYWwgc2Nyb2xsYmFyLlxuLnJpZ2h0LXBhbmVsLFxuLm1pZGRsZS1wYW5lbCAudGltZWxpbmUtc2VjdGlvbiB7XG4gICAgQGluY2x1ZGUgcWRuYS1zY3JvbGxiYXI7XG59XG4vLyBTaG9ydCBsaXN0IOKGkiBubyB2aXNpYmxlIGJhciwgc3RpbGwgc2Nyb2xsYWJsZSBpZiBpdCBldmVyIG92ZXJmbG93cy5cbi5sZWZ0LXNpZGViYXIge1xuICAgIEBpbmNsdWRlIHFkbmEtc2Nyb2xsYmFyLWhpZGRlbjtcbn1cbi5pbmJveC1ib2R5IHtcbiAgICAvLyBGaWdtYTogcHgtMjAsIGdhcC0xNiBiZXR3ZWVuIHNlY3Rpb25zLiBObyB0b3AgcGFkZGluZyDigJQgdGl0bGUgaXMgZmx1c2guXG4gICAgcGFkZGluZzogMCAyMHB4IDEycHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTZweDtcblxuICAgIC8vIOKUgOKUgCBXYXQgZXIgdmFuIC5pbmJveC1ib2R5LXRpdGxlIE1FRVZFUkhVSVNERSBuYWFyIHFkbmFwcm8tbWVzc2FnZS1oZWFkZXIg4pSA4pSAXG4gICAgLy8gMzEuMDcuMjAyNiwgYmVzbHVpdCA3MC4gRGUga29wIHZhbiBlZW4gYmVyaWNodCBpcyBudSBkYXQgY29tcG9uZW50LCBlbiBkZVxuICAgIC8vIGNsYXNzZXMgLmluYm94LWJvZHktdGl0bGUgLyAuaW5ib3gtYm9keS1oZWFkZXIga29tZW4gbmlldCBtZWVyIGluIGRlIG1hcmt1cFxuICAgIC8vIHZvb3IgKGh1biByZWdlbHMgaGllcm9uZGVyIG1hdGNoZW4gZHVzIG5pZXRzIG1lZXI7IGRpZSBzdGFhbiBlciBub2cgdG90IEphblxuICAgIC8vIGhldCBzY2hlcm0gaGVlZnQgZ2V6aWVuKS4gRHJpZSBkaW5nZW4gZGllIGFhbiBkaWUgY2xhc3NlcyBoaW5nZW4sIGhvcmVuIGJpalxuICAgIC8vIERFWkUgUEFHSU5BIGVuIG5pZXQgaW4gaGV0IGNvbXBvbmVudCwgZW4gem91ZGVuIHpvbmRlciBkaXQgYmxvayBzdGlsIHppam5cbiAgICAvLyB2ZXJkd2VuZW46XG4gICAgLy8gICAxLiBEZSBrb3AgUExBS1QgYm92ZW5hYW4gdGlqZGVucyBoZXQgc2Nyb2xsZW4uIERhdCBpcyBlZW4ga2V1emUgdmFuIGRpdFxuICAgIC8vICAgICAgc2NoZXJtIG1ldCB6aWpuIGVpZ2VuIHNjcm9sbGVuZGUgcGFuZWVsOyBkZSBQV0EgdnJhYWd0IGhldCBuaWV0IGVuIGhldFxuICAgIC8vICAgICAgY29tcG9uZW50IGhvb3J0IGVyIG5pZXRzIHZhbiB0ZSB3ZXRlbi5cbiAgICAvLyAgIDIuIERlIGtvcCBsb29wdCB2YW4gcmFuZCB0b3QgcmFuZCwgZHVzIGJ1aXRlbiBkZSAyMHB4IHZhbiAuaW5ib3gtYm9keS5cbiAgICAvLyAgICAgIE9vayBkYXQgaXMgZGUgb3BtYWFrIHZhbiBkZXplIHBhZ2luYS5cbiAgICAvLyAgIDMuIERlIGtub3BwZW4gaW4gc2xvdD1cImFjdGlvbnNcIiB6aWpuIGtpbmRlcmVuIGRpZSBERVpFIFBBR0lOQSBhYW5sZXZlcnQsXG4gICAgLy8gICAgICBkdXMgbWFnIGRlemUgcGFnaW5hIHplZ2dlbiBob2UgemUgZXJ1aXR6aWVuOiBlZW4gYWN0aWV2ZSB0b2dnbGUga2xldXJ0XG4gICAgLy8gICAgICBhbGxlZW4gemlqbiBpY29vbiBwYWFycywgZW4gZWVuIGdlYmxva2tlZXJkZSBhY3RpZSB6aWV0IHVpdGdlc2NoYWtlbGQgdWl0XG4gICAgLy8gICAgICBtYWFyIGhvdWR0IHBvaW50ZXItZXZlbnRzIHpvZGF0IGRlIHRvb2x0aXAgbWV0IGRlIHJlZGVuIG5vZyB3ZXJrdC5cbiAgICAvLyBHZWVuIHZhbiBkZXplIGRyaWUgaXMgZWVuIG92ZXJyaWRlIHZhbiBoZXQgY29tcG9uZW50OiAxIGVuIDIgemlqbiBwbGFhdHNpbmdcbiAgICAvLyBvcCBkZSBwYWdpbmEsIDMgZ2FhdCBvdmVyIGRlIGVpZ2VuIHNsb3Qta2luZGVyZW4uXG4gICAgcWRuYXByby1tZXNzYWdlLWhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWNvbG9yXzEwO1xuICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgbWFyZ2luOiAwIC0yMHB4O1xuXG4gICAgICAgIC5taC10aXRsZS1hY3Rpb25zIHtcbiAgICAgICAgICAgIHFkbmFwcm8taWNvbltuYW1lPVwiYm9va21hcmtcIl0sXG4gICAgICAgICAgICBxZG5hcHJvLWljb25bbmFtZT1cInNxdWFyZS1yb3VuZGVkLWJhZGdlXCJdIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzQ2NTJmMztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHFkbmFwcm8tYnV0dG9uLmluYm94LWFjdGlvbi1ibG9ja2VkIHtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIHFkbmFwcm8taWNvbiB7IGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLXRpdGxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAvLyBtYXRjaCBwYW5lbC0yIGhlYWRlciBoZWlnaHQgZXhhY3RseSAoNTZweClcbiAgICAgICAgaGVpZ2h0OiA1NnB4O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAvLyBzdGlja3kgc28gdGhlIHRpdGxlICsgYWN0aW9ucyBzdGF5IHZpc2libGUgd2hpbGUgc2Nyb2xsaW5nLlxuICAgICAgICAvLyBObyBuZWdhdGl2ZSB0b3AgbWFyZ2luIOKAlCB0aGF0IGNhdXNlZCB0aGUgc3RpY2t5IGJhciB0byBleHRlbmRcbiAgICAgICAgLy8gYWJvdmUgdGhlIGNvbnRhaW5lciBhbmQgYmxvY2sgY2xpY2tzIG9uIHRoZSBtZXNzYWdlIGxpc3QuXG4gICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtY29sb3JfMTA7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICAvLyBmdWxsLWJsZWVkOiBicmVhayBvdXQgb2YgdGhlIDIwcHggaG9yaXpvbnRhbCBwYWRkaW5nIG9ubHkuXG4gICAgICAgIG1hcmdpbjogMCAtMjBweDtcbiAgICAgICAgcGFkZGluZzogMCAwIDAgMjBweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMCk7XG4gICAgICAgICYtbGFiZWwge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgfVxuICAgICAgICAmLWFjdGlvbnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIGdhcDogNHB4O1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgIC8vIEFjdGl2ZSB0b2dnbGUgc3RhdGUgPSBvbmx5IHRoZSAoZmlsbGVkKSBpY29uIHR1cm5zIHB1cnBsZSxcbiAgICAgICAgICAgIC8vIG5vdCB0aGUgd2hvbGUgYnV0dG9uLiBNYXRjaGVzIHRoZSBib29rbWFya2VkIGxvb2sgaW4gdGhlIGxpc3QuXG4gICAgICAgICAgICBxZG5hcHJvLWljb25bbmFtZT1cImJvb2ttYXJrXCJdLFxuICAgICAgICAgICAgcWRuYXByby1pY29uW25hbWU9XCJzcXVhcmUtcm91bmRlZC1iYWRnZVwiXSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM0NjUyZjM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBIYW5kb3ZlcjogZGVsZXRlL2FyY2hpdmUgYXJlIG5vdCBhbGxvd2VkLiBMb29rIGRpc2FibGVkIGJ1dCBrZWVwXG4gICAgICAgICAgICAvLyBwb2ludGVyLWV2ZW50cyBzbyB0aGUgZXhwbGFpbmluZyB0b29sdGlwIHN0aWxsIHNob3dzIG9uIGhvdmVyLlxuICAgICAgICAgICAgcWRuYXByby1idXR0b24uaW5ib3gtYWN0aW9uLWJsb2NrZWQge1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgcWRuYXByby1pY29uIHsgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCk7IH1cbiAgICAgICAgICAgIH1cblxuLy8gRG90cy1tZW51OiBzYW1lIGJsb2NrZWQgcGF0dGVybiBmb3IgbWVudSBpdGVtc1xuI2luYm94LWRvdHMtbWVudSBxZG5hcHJvLW1lbnUtaXRlbS5pbmJveC1kb3RzLWJsb2NrZWQge1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpICFpbXBvcnRhbnQ7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0byAhaW1wb3J0YW50O1xuICAgIC5tZW51LWl0ZW0taWNvbiB7IGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpICFpbXBvcnRhbnQ7IH1cbn1cbiAgICAgICAgICAgIC5hY3Rpb24tYnRuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgICAgICAgICAgICAgICY6aG92ZXI6bm90KC5hY3Rpb24tYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcl81O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgICYuc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl84O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICYuYWN0aW9uLWJsb2NrIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5kaXZpZGVyIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDMwcHg7IFxuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgJGJhY2tncm91bmQtY29sb3JfMjtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgNHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICYtaGVhZGVyIHtcbiAgICAgICAgLy8gRW50cmFuY2Ugd2hlbiBhIG1lc3NhZ2Ugb3BlbnMgKFJhY3RpdmUgcmVjcmVhdGVzIHRoaXMgb24gZWFjaCBvcGVuKS5cbiAgICAgICAgYW5pbWF0aW9uOiBpbmJveC1kZXRhaWwtaW4gMjAwbXMgZWFzZS1vdXQ7XG4gICAgICAgIC8vIGZ1bGwtYmxlZWQgdGhpbiBkaXZpZGVyOiBicmVhayBvdXQgb2YgdGhlIDIwcHggYm9keSBwYWRkaW5nXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTApO1xuICAgICAgICAvLyBUaWdodGVyIHRvcC9ib3R0b20gc3BhY2luZyAoS2ltIDIwMjYtMDYtMDcpOiB+MTAgQ1NTLXB4ICg9IDIwIGRldmljZS1weFxuICAgICAgICAvLyBvbiBoZXIgUmV0aW5hIHNjcmVlbikgYmV0d2VlbiB0aGUgdGl0bGUgZGl2aWRlciBhbmQgdGhlIGF2YXRhciwgYW5kXG4gICAgICAgIC8vIGJldHdlZW4gdGhlIHRhZ3MgYW5kIHRoaXMgZGl2aWRlci4gLTYgY2FuY2VscyBwYXJ0IG9mIHRoZSAxNnB4XG4gICAgICAgIC8vIC5pbmJveC1ib2R5IGZsZXggZ2FwIGFib3ZlIHRoZSBoZWFkZXIuXG4gICAgICAgIG1hcmdpbjogLTZweCAtMjBweCAwO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNnB4O1xuICAgICAgICAuaW5ib3gtYm9keS11c2VyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMCAyNHB4IDAgMjRweDtcbiAgICAgICAgICAgIC51c2VyLWF2YXRhciB7XG4gICAgICAgICAgICAgICAgLmF2YXRhci1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3JfMTM7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yXzExO1xuICAgICAgICAgICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnVzZXItaW5mbyB7XG4gICAgICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDZweCAwcHg7XG4gICAgICAgICAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgJi1uYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfNjtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmLWVtYWlsIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfMTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5pbmJveC1ib2R5LW1ldGEge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yXzE7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGdhcDogNHB4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgLnRpbWUge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmRheXMge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmluYm94LWJvZHktZGV0YWlscyB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICAuZW1haWwtdG8tYmxvY2sge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmVtYWlsLWNjLWJsb2NrIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5pbmJveC1ib2R5LWZpZWxkIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl8xO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICAgICAgICAgICAgICAmLWJvbGQge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5zdGF0dXMtYmFkZ2VzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgICAgICAgICAuYmFkZ2Uge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5iYWRnZS5iZy1kYW5nZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yXzE1ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuYmFkZ2UuYmctc2Vjb25kYXJ5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcl84ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuYmFkZ2UuYmctd2FybmluZyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3JfMTMgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5iYWRnZS5iZy1pbmZvIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcl8xNCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmJ0bi1zbSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDJweCA4cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl84O1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmLWNvbnRlbnQge1xuICAgICAgICAvLyBGaWdtYTogZmxleCBjb2x1bW4sIGdhcC00cHggYmV0d2VlbiBRJkEgaXRlbXNcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIC5pbmJveC1ib2R5LWdyb3VwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICAvLyBGaWdtYTogcHgtOCBweS00XG4gICAgICAgICAgICBwYWRkaW5nOiA0cHggOHB4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIC5pbmJveC1ib2R5LWxhYmVsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgLy8gTm9kZS10eXBlIE1ESS1pY29vbiB2w7PDs3IgZGUgdnJhYWc6IGxpY2h0Z3JpanMgZW4gc3VidGllbCwgem9kYXQgZGVcbiAgICAgICAgICAgICAgICAvLyB2cmFhZ3Rla3N0IHplbGYgbGVpZGVuZCBibGlqZnQuXG4gICAgICAgICAgICAgICAgLmluYm94LXEtdHlwZS1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2MyYzJjMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gbm9kZS1pZCBhY2h0ZXIgZGUgdnJhYWc6IGtsZWluLCBsaWNodGdyaWpzLCB2ZXJ0aWNhYWwgZ2VjZW50cmVlcmRcbiAgICAgICAgICAgICAgICAvLyAoaGV0IGxhYmVsIGlzIGFsIGRpc3BsYXk6ZmxleC9hbGlnbi1pdGVtczpjZW50ZXIpLiBmb250LXdlaWdodCB0ZXJ1Z1xuICAgICAgICAgICAgICAgIC8vIG5hYXIgbm9ybWFhbCDigJQgaGV0IGxhYmVsIHplbGYgaXMgNjAwLlxuICAgICAgICAgICAgICAgIC5pbmJveC1xLW5vZGUtaWQge1xuICAgICAgICAgICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNjMmMyYzI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmluYm94LWJvZHktdmFsdWUge1xuICAgICAgICAgICAgICAgIC8vIExhYXQgaGV0IGFudHdvb3JkIHVpdGxpam5lbiBtZXQgZGUgdnJhYWdURUtTVCBpLnAudi4gbWV0IGhldCBpY29vbjpcbiAgICAgICAgICAgICAgICAvLyBoZXQgbm9kZS10eXBlLWljb29uIGlzIDE4cHggYnJlZWQgKyA2cHggbWFyZ2UgPSAyNHB4IGluc3ByaW5naW5nLlxuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yXzQ7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgJi5zdWItbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAudGFzay1zdGF0dXMge1xuICAgICAgICAgICAgLy8gU3RhY2sgYWJvdmUgdGhlIGRpdmlkZXIgPGhyPiAod2hpY2ggZm9sbG93cyBpbiB0aGUgRE9NIGFuZCBpc1xuICAgICAgICAgICAgLy8gcHVsbGVkIHVwIHRvIG92ZXJsYXApLiBUaGUgYmxvY2sncyBvcGFxdWUgI2ZmZiBiZyB0aGVuIGJyZWFrc1xuICAgICAgICAgICAgLy8gdGhlIGxpbmUgaW5zdGVhZCBvZiB0aGUgbGluZSBydW5uaW5nIHRocm91Z2ggdGhlIHBpbGwuXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgcGFkZGluZzogOHB4IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yXzk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgZ2FwOiAyNHB4O1xuICAgICAgICAgICAgJi1ibG9jayB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yXzU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA2cHggMTZweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcl80O1xuICAgICAgICAgICAgICAgIC5zdGF0dXMtYmFkZ2Uge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcl8xNDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMnB4IDhweDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAudXNlci1hdmF0YXIge1xuICAgICAgICAgICAgICAgICAgICAuYXZhdGFyLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3JfMTM7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgaSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfMTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpmaXJzdHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGhyIHtcbiAgICAgICAgICAgIC8vIGZ1bGwtYmxlZWQ7IG5lZ2F0aXZlIHRvcCBrZWVwcyB0aGUgdGFzay1zdGF0dXMgcGlsbCBvdmVybGFwcGluZ1xuICAgICAgICAgICAgLy8gdGhlIGxpbmUuIENvbG91ciArIHRoaWNrbmVzcyBtYXRjaCB0aGUgcGlsbCBib3JkZXIgKCNEOURCRUIpIHNvXG4gICAgICAgICAgICAvLyB0aGUgbGluZSBhbmQgdGhlIHRpbWVsaW5lIHBpbGwgcmVhZCBhcyBvbmUuIEJvdHRvbSBtYXJnaW4gY2xlYXJzXG4gICAgICAgICAgICAvLyB0aGUgcGlsbDogdGhlIG5lZ2F0aXZlIHRvcCBwdWxscyB0aGUgbGluZSBpbnRvIHRoZSBwaWxsLCBzbyB0aGVcbiAgICAgICAgICAgIC8vIHBpbGwgZXh0ZW5kcyB+MjZweCBCRUxPVyB0aGUgbGluZSDigJQgYW4gOHB4IGJvdHRvbSBtYXJnaW4gbGV0IHRoZVxuICAgICAgICAgICAgLy8gZmlyc3QgcXVlc3Rpb24gY29sbGlkZSB3aXRoIGl0LiAyOHB4IGdpdmVzIHRoZSBzYW1lIGNsZWFyYW5jZSB0aGVcbiAgICAgICAgICAgIC8vIGlucHV0LWZvb3RlciBhbHJlYWR5IHVzZXMgKG1hcmdpbi10b3A6MnJlbSkuIEZvciB0aGUgXCJhZmdlcm9uZFwiXG4gICAgICAgICAgICAvLyA8aHI+IChmb2xsb3dlZCBieSB0aGUgZm9vdGVyKSB0aGUgdHdvIHZlcnRpY2FsIG1hcmdpbnMgY29sbGFwc2UsXG4gICAgICAgICAgICAvLyBzbyB0aGF0IGNhc2UgaXMgdmlzdWFsbHkgdW5jaGFuZ2VkLlxuICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1jb2xvcl81O1xuICAgICAgICAgICAgbWFyZ2luOiAtMnJlbSAtMjRweCAyOHB4O1xuICAgICAgICB9XG4gICAgICAgIC8vIERlIGtub3BwZW5iYWxrIG9uZGVyIGVlbiBvdmVyZHJhY2h0IGlzIHNpbmRzIDMxLjA3LjIwMjYgaGV0IGNvbXBvbmVudFxuICAgICAgICAvLyBxZG5hcHJvLW1lc3NhZ2UtYWN0aW9uYmFyIChiZXNsdWl0IDcwKS4gQWxsZWVuIGRlIE1BUkdFIGhvb3J0IGhpZXIgdGUgYmxpanZlbiBlblxuICAgICAgICAvLyBuaWV0IGluIGRhdCBjb21wb25lbnQ6IGhpaiBiZXN0YWF0IG9tIGRlIGxhYXRzdGUgdGlqZGxpam4tcGlsIHRlIG9udHdpamtlbiwgZW4gZGF0XG4gICAgICAgIC8vIGlzIGlldHMgdmFuIERFWkUgcGFnaW5hLiBIZXQgY29tcG9uZW50IHdlZXQgbmlldCBkYXQgZXIgZWVuIHRpamRsaWpuIGJvdmVuIHN0YWF0IGVuXG4gICAgICAgIC8vIG1vZXQgb29rIGJydWlrYmFhciB6aWpuIG9wIGVlbiBwbGVrIHdhYXIgZGllIGVyIG5pZXQgaXMgKGRlIFBXQSBoZWVmdCBnZWVuIHBpbCkuXG4gICAgICAgIC8vIFpvbmRlciBkZXplIHJlZ2VsIHdhcyBkaWUgc2NoZWlkaW5nIHN0aWwgdmVyZHdlbmVuOiBkZSBvdWRlIC5pbnB1dC1mb290ZXItcmVnZWxcbiAgICAgICAgLy8gaGllcm9uZGVyIG1hdGNodCBuaWV0cyBtZWVyLlxuICAgICAgICBxZG5hcHJvLW1lc3NhZ2UtYWN0aW9uYmFyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRE9ERSBSRUdFTCBzaW5kcyAzMS4wNy4yMDI2LCBiZXd1c3QgbGF0ZW4gc3RhYW4gdG90IEphbiBoZXQgc2NoZXJtIGhlZWZ0IGdlemllbjpcbiAgICAgICAgLy8gLmlucHV0LWZvb3RlciBrb210IG5pZXQgbWVlciBpbiBkZSBtYXJrdXAgdm9vci4gV2VnaGFsZW4ga2FuIHpvZHJhIGRpZSB0ZXN0IHJvbmQgaXM7XG4gICAgICAgIC8vIG51IHdlZ2hhbGVuIHpvdSBiZXRla2VuZW4gZGF0IGVlbiB0ZXJ1Z2RyYWFpIHZhbiBkZSBvbXpldHRpbmcgZWVuIGthYWwgYmxvayBvcGxldmVydC5cbiAgICAgICAgLmlucHV0LWZvb3RlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcl8xO1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgICAgIC8vIENsZWFyIHRoZSB0aW1lbGluZSBwaWxsOiB0aGUgPGhyPiBhYm92ZSBpcyBwdWxsZWQgdXAgaW50byB0aGUgcGlsbCxcbiAgICAgICAgICAgIC8vIHNvIHRoZSBwaWxsIGV4dGVuZHMgfjIwcHggYmVsb3cgdGhlIGxpbmUuIFN0YXJ0IHRoZSBmb290ZXIgYm94IGJlbG93XG4gICAgICAgICAgICAvLyBpdCBpbnN0ZWFkIG9mIG92ZXJsYXBwaW5nLiAoQ29sbGFwc2VzIHdpdGggdGhlIGhyJ3MgOHB4IGJvdHRvbSBtYXJnaW4uKVxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgICAgICAmLWluZm8ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgICAgICAgICAgaSB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLWFjdGlvbi1idG4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgICAgICAuaW5ib3gtc2Vjb25kYXJ5LWJ0biB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogOHB4IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmluYm94LXByaW1hcnktYnRuIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl8zO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweCAyMHB4O1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4ubXVsdGlwbGUtc2VsZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGhlaWdodDogNzJ2aDtcbiAgICAmLWJsb2Nre1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgICAmLWltYWdlIHtcbiAgICAgICAgICAgIGhlaWdodDogMTc1cHg7XG4gICAgICAgICAgICB3aWR0aDogMTc1cHg7O1xuICAgICAgICB9XG4gICAgICAgICYtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yXzg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmN1c3RvbS1wb3B1cCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogNTBweDtcbiAgICBsZWZ0OiAxMDBweDtcbiAgICB3aWR0aDogNjAlO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDI1cHggJGJhY2tncm91bmQtY29sb3JfMTc7XG4gICAgei1pbmRleDogOTk5OTtcbiAgICBoZWlnaHQ6IDkwdmg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgLy8gcG9wdXAgaXRzZWxmIGRvZXNuJ3Qgc2Nyb2xsIOKAlCBvbmx5IHRoZSBib2R5IGluc2lkZSBkb2VzXG4gICAgcmVzaXplOiBub25lOyAvLyBkaXNhYmxlIG5hdGl2ZSBncmlwOyBqUXVlcnkgVUkgaGFuZGxlcyByZXNpemVcblxuICAgIC8vIE1vZGVybiByZXNpemUgaGFuZGxlIOKAlCByZXBsYWNlcyB0aGUgbmF0aXZlIGJyb3dzZXIgcmVzaXplIGdyaXAuXG4gICAgLy8gcmlnaHQ6IDEycHggPSA0cHggbWFyZ2luICsgOHB4IHNjcm9sbGJhciB3aWR0aCwgc28gdGhlIGhhbmRsZVxuICAgIC8vIG5ldmVyIG92ZXJsYXBzIHRoZSBzY3JvbGxiYXIgd2hlbiBjb250ZW50IG92ZXJmbG93cy5cbiAgICAudWktcmVzaXphYmxlLXNlIHtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgcmlnaHQ6IDEycHg7XG4gICAgICAgIGJvdHRvbTogNHB4O1xuICAgICAgICBjdXJzb3I6IHNlLXJlc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgLy8gVHdvIGRpYWdvbmFsIGxpbmVzIGxpa2UgYSBtb2Rlcm4gZ3JpcFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgICAgICBtYXJnaW46IDVweCAwIDAgNXB4O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDNweCAwO1xuICAgICAgICB9XG4gICAgICAgICY6aG92ZXI6OmFmdGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIC51aS1yZXNpemFibGUtaGFuZGxlIHsgei1pbmRleDogMTAwOyB9XG4gICAgJi1ib2R5IHtcbiAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgLnVpLWRyYWdnYWJsZS1oYW5kbGUge1xuICAgICAgICAgICAgY3Vyc29yOiBtb3ZlO1xuICAgICAgICB9XG4gICAgICAgIC5jbG9zZS1wb3B1cCB7XG4gICAgICAgICAgICBwYWRkaW5nOiA2cHggMTJweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcl8yO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnBvcHVwLWJhY2tkcm9wIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWNvbG9yXzg7XG4gICAgei1pbmRleDogOTk5ODtcbiAgICBvcGFjaXR5OiAwLjI7XG59XG5cbi50aXRsZS1iYXIge1xuICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDEycHggMjRweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1jb2xvcl8xO1xufVxuXG4vLyBEZWZhdWx0cyBCRUZPUkUgdGhlIG1lZGlhIGJsb2NrcyBiZWxvdywgc28gdGhlIOKJpDc2OC/iiaQxMTAwIGBkaXNwbGF5YCBydWxlc1xuLy8gKHNhbWUgc3BlY2lmaWNpdHkpIHdpbiBieSBzb3VyY2Ugb3JkZXIgd2hlbiB0aGV5IG1hdGNoLlxuLmluYm94LXNpZGViYXItdG9nZ2xlIHsgZGlzcGxheTogbm9uZTsgfSAgICAgICAgICAvLyBvbmx5IHNob3duIOKJpDExMDBweFxuLmluYm94LW1vYmlsZS1iYWNrICAgIHsgZGlzcGxheTogbm9uZTsgfSAgICAgICAgICAvLyBvbmx5IHNob3duIOKJpDc2OHB4IChkcmlsbC1kb3duKVxuXG4vKiDilIDilIAgUGhhc2UgMzogbW9iaWxlICjiiaQ3NjhweCkg4oCUIG1hc3Rlci1kZXRhaWwgZHJpbGwtZG93biDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgIE9uZSBwYW5lIGF0IGEgdGltZS4gVGhlIG1lc3NhZ2UgbGlzdCBpcyB0aGUgZGVmYXVsdCAoXCJtYXN0ZXJcIik7IHRhcHBpbmcgYVxuICAgbWVzc2FnZSBzbGlkZXMgaW4gdGhlIGRldGFpbCB3aXRoIGEg4oaQIGJhY2sgYnV0dG9uIHRvIHJldHVybi4gVGhlIEFjdGl2aXR5XG4gICBkcmF3ZXIgKGZyb20gdGhlIOKJpDExMDAgYmxvY2sgYWJvdmUpIHN0aWxsIG92ZXJsYXlzIHZpYSB0aGUg4piwIHRvZ2dsZS4gVGhpc1xuICAgcmVwbGFjZXMgdGhlIG9sZCB0aHJlZS1wYW5lbCB2ZXJ0aWNhbCBzdGFjaywgd2hpY2ggd2FzIGltcHJhY3RpY2FsIG9uIGEgcGhvbmUuICovXG5AbWVkaWEgKG1heC13aWR0aDogI3skaW5ib3gtYnAtbW9iaWxlfSkge1xuXHQuaW5ib3gtY29udGFpbmVyIHtcblx0XHRtYXgtd2lkdGg6IDc2OHB4O1xuXHRcdG1hcmdpbjogMCBhdXRvO1xuXHR9XG5cblx0Ly8gS2VlcCB0aGUg4piwIHRvZ2dsZSArIHNlYXJjaCBvbiBvbmUgcm93IChleHBsaWNpdDogYSBzdGFsZSAvY3NzL3YxL3N0eWxlLmNzc1xuXHQvLyBzdGlsbCBzaGlwcyBhIGZsZXgtZGlyZWN0aW9uOmNvbHVtbiBoZXJlLCBzbyB3ZSBtdXN0IG92ZXJyaWRlIGl0KS4gU2VhcmNoXG5cdC8vIGZpbGxzIHRoZSByZXN0IG9mIHRoZSByb3cgYmVzaWRlIHRoZSB0b2dnbGUuXG5cdC5zZWFyY2gtYWN0aW9ucy1iYXIge1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0fVxuXHQuc2VhcmNoLWFjdGlvbnMtYmFyIC5zZWFyY2gtc2VjdGlvbiB7XG5cdFx0ZmxleDogMSAxIGF1dG87XG5cdFx0bWF4LXdpZHRoOiBub25lO1xuXHR9XG5cblx0Ly8gTGlzdCArIGRldGFpbCBhcmUgc3RhY2tlZCBhbmQgc2xpZGUgaG9yaXpvbnRhbGx5OyBvbmx5IG9uZSBzaG93cyBhdCBhIHRpbWUuXG5cdC8vICgubGVmdC1zaWRlYmFyIHN0YXlzIHRoZSBhYnNvbHV0ZSBvdmVybGF5IGRyYXdlciBmcm9tIHRoZSDiiaQxMTAwIGJsb2NrLilcblx0Lm1pZGRsZS1wYW5lbCxcblx0LnJpZ2h0LXBhbmVsIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdGJvdHRvbTogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7ICAgICAvLyBiZWF0IHRoZSBiYXNlIGB3aWR0aDogYXV0byAhaW1wb3J0YW50YFxuXHRcdG1pbi13aWR0aDogMDtcblx0XHRtYXgtd2lkdGg6IG5vbmU7XG5cdFx0bWF4LWhlaWdodDogbm9uZTsgICAgICAgICAgIC8vIHN0YWxlIC9jc3MvdjEvc3R5bGUuY3NzIGNhcHMgdGhlc2UgYXQgMjAwLzMwMHB4XG5cdFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIDI4MG1zIGN1YmljLWJlemllciguMiwgLjcsIC4zLCAxKTtcblx0XHR3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuXHR9XG5cdC5taWRkbGUtcGFuZWwgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7ICAgIHotaW5kZXg6IDI7IH1cblx0LnJpZ2h0LXBhbmVsICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgei1pbmRleDogMzsgfVxuXG5cdC8vIERldGFpbCBvcGVuOiBsaXN0IHNsaWRlcyBvdXQgbGVmdCwgZGV0YWlsIHNsaWRlcyBpbjsgZHJvcCB0aGUgc2VhcmNoIGJhciBzb1xuXHQvLyB0aGUgZGV0YWlsIHJlYWRzIGZ1bGwtc2NyZWVuLlxuXHQuaW5ib3gtY29udGFpbmVyLm1vYmlsZS1kZXRhaWwtb3BlbiB7XG5cdFx0LnNlYXJjaC1hY3Rpb25zLWJhciB7IGRpc3BsYXk6IG5vbmU7IH1cblx0XHQubWlkZGxlLXBhbmVsIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgfVxuXHRcdC5yaWdodC1wYW5lbCAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cblx0fVxuXG5cdC8vIOKGkCBiYWNrIGJ1dHRvbiBhdCB0aGUgdG9wIG9mIHRoZSBkZXRhaWwgcGFuZS5cblx0LmluYm94LW1vYmlsZS1iYWNrIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0XHRtYXJnaW46IDhweCAwIDAgOHB4O1xuXHR9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkgYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuXHQubGVmdC1zaWRlYmFyIHtcblx0XHR3aWR0aDogMTgwcHg7XG5cdH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjVweCkge1xuXHQubGVmdC1zaWRlYmFyIHtcblx0XHR3aWR0aDogMTgwcHg7XG5cdH1cbn1cblxuLyog4pSA4pSAIFBoYXNlIDI6IHRhYmxldCAoNzY54oCTMTEwMHB4KSDigJQgQWN0aXZpdHkgc2lkZWJhciBiZWNvbWVzIGEgc2xpZGUtaW4gZHJhd2VyIOKUgOKUgFxuICAgSW4gdGhpcyBiYW5kIHRoZSBsaXN0ICsgZGV0YWlsIG5lZWQgdGhlIGZ1bGwgcm93LCBzbyB0aGUgQWN0aXZpdHkgcGFuZSBsZWF2ZXNcbiAgIHRoZSBmbG93IGFuZCBvcGVucyBvbiBkZW1hbmQgYXMgYW4gb3ZlcmxheSBmcm9tIHRoZSBsZWZ0LiBBIFwi4piwIEFjdGl2aXR5XCIgdG9nZ2xlXG4gICBpbiB0aGUgbGlzdCBoZWFkZXIgb3BlbnMgaXQ7IHRoZSBzY3JpbSBvciBwaWNraW5nIGEgZmlsdGVyIGNsb3NlcyBpdC4gQWJvdmVcbiAgIDExMDBweCB0aGUgc2lkZWJhciBpcyBpbi1mbG93IGFzIHVzdWFsIGFuZCBib3RoIHRvZ2dsZSArIHNjcmltIHN0YXkgaGlkZGVuLiAqL1xuXG4uaW5ib3gtc2lkZWJhci1zY3JpbSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0aW5zZXQ6IDA7XG5cdHotaW5kZXg6IDQwO1xuXHRiYWNrZ3JvdW5kOiByZ2JhKDIwLCAyMiwgNDAsIDAuMzIpO1xuXHRvcGFjaXR5OiAwO1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZSwgdmlzaWJpbGl0eSAwcyBsaW5lYXIgMjAwbXM7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6ICN7JGluYm94LWJwLXRhYmxldH0pIHtcblx0Lm1haW4tY29udGVudCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG5cdC8vIERyYXdlciB0b2dnbGUgbGl2ZXMgaW4gdGhlIHRvcCBiYXIsIGxlZnQgb2YgdGhlIHNlYXJjaCAod2hpY2ggc2hpZnRzIHJpZ2h0KS5cblx0LmluYm94LXNpZGViYXItdG9nZ2xlIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0XHRmbGV4OiAwIDAgYXV0bztcblx0fVxuXG5cdC5sZWZ0LXNpZGViYXIge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHRib3R0b206IDA7XG5cdFx0ei1pbmRleDogNTA7XG5cdFx0ZmxleDogMCAwIGF1dG87XG5cdFx0d2lkdGg6IDI0OHB4O1xuXHRcdG1heC13aWR0aDogMjQ4cHg7XG5cdFx0bWF4LWhlaWdodDogbm9uZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0YWxlIC9jc3MvdjEvc3R5bGUuY3NzIGNhcHMgdGhpcyBhdCAyMDBweCDiiaQ3Njhcblx0XHRib3JkZXItcmFkaXVzOiAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZnVsbC1oZWlnaHQgZHJhd2VyIOKAlCBzcXVhcmUgZWRnZXMsIG5vdCBhIGZsb2F0aW5nIGNhcmRcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygtMTAwJSAtIDE2cHgpKTsgICAvLyBvZmYtY2FudmFzLCBjbGVhciBvZiB0aGUgc2hhZG93XG5cdFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIDI0MG1zIGN1YmljLWJlemllciguMiwgLjcsIC4zLCAxKTtcblx0XHRib3gtc2hhZG93OiAwIDhweCAyOHB4IHJnYmEoMjAsIDIyLCA0MCwgMC4xOCk7XG5cdFx0d2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcblx0fVxuXG5cdC5tYWluLWNvbnRlbnQuc2lkZWJhci1vcGVuIHtcblx0XHQubGVmdC1zaWRlYmFyIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG5cdFx0LmluYm94LXNpZGViYXItc2NyaW0ge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2U7ICAgICAgICAgIC8vIG5vIGRlbGF5IG9uIHRoZSB3YXkgaW5cblx0XHR9XG5cdH1cbn1cblxuLyogUmVkdWNlZC1tb3Rpb246IG5vIHNsaWRlLCBqdXN0IGFwcGVhci9kaXNhcHBlYXIuICovXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHQubGVmdC1zaWRlYmFyIHsgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG5cdC5pbmJveC1zaWRlYmFyLXNjcmltIHsgdHJhbnNpdGlvbjogb3BhY2l0eSAxbXMgbGluZWFyICFpbXBvcnRhbnQ7IH1cblx0Lm1pZGRsZS1wYW5lbCwgLnJpZ2h0LXBhbmVsIHsgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG59XG5cbkBrZXlmcmFtZXMgaW5ib3gtdG9vbGJhci1pbiB7XG5cdGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTZweCk7IH1cblx0dG8gICB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxufVxuXG4vKiBEZXRhaWwgKG1lc3NhZ2Utb3Blbik6IHBsdWdpbiBjb250ZW50IGZvbGxvd3MgdGhlIHNlbmRlciBibG9jayBieSA0MG1zLiAqL1xuLmluYm94LWJvZHktY29udGVudCB7XG5cdGFuaW1hdGlvbjogaW5ib3gtZGV0YWlsLWluIDIwMG1zIGVhc2Utb3V0IDQwbXMgYm90aDtcbn1cblxuLy8gRm9yd2FyZGVkLWluZGljYXRvci1iYW5uZXIgaW4gZGUgZGV0YWlsIChlbWFpbC1zdGlqbCk6IFwiRGl0IGJlcmljaHQgaXMgZG9vcmdlc3R1dXJkIG5hYXJcbi8vIFggb3AgREFUVU1cIi4gU3VidGllbGUgYmFsayBvbmRlciBkZSBoZWFkZXIsIHbDs8OzciBkZSBib2R5LiBaZWxmZGUgcGFhcnMtcGFsZXQgYWxzIGRlXG4vLyByaWNoLWJvZHkgYmxvY2txdW90ZSB2b29yIGNvbnNpc3RlbnRpZS4gWzIwMjYtMDYtMjldXG4uaW5ib3gtZm9yd2FyZGVkLW5vdGljZSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGdhcDogOHB4O1xuXHRtYXJnaW46IDRweCAwIDE0cHg7XG5cdHBhZGRpbmc6IDEwcHggMTRweDtcblx0Ym9yZGVyLXJhZGl1czogOHB4O1xuXHRiYWNrZ3JvdW5kOiAjZjNmMWZmOyAgICAgICAgICAgICAgICAgICAvLyBsaWNodC1wYWFycywgc3VidGllbFxuXHRib3JkZXItbGVmdDogM3B4IHNvbGlkICNjMGM1ZmY7ICAgICAgICAvLyB6YWNodGUgcGFhcnNlIGFjY2VudFxuXHRjb2xvcjogIzRiNDQ3MDsgICAgICAgICAgICAgICAgICAgICAgICAvLyBtdXRlZFxuXHRmb250LXNpemU6IDEzcHg7XG5cdGxpbmUtaGVpZ2h0OiAxLjQ7XG5cblx0cWRuYXByby1pY29uIHtcblx0XHRmbGV4LXNocmluazogMDtcblx0XHRjb2xvcjogIzdhN2ZiMDtcblx0fVxufVxuXG4vLyBSaWNoIChzYW5pdGlzZWQtSFRNTCkgbm90aWZpY2F0aW9uIGJvZHkg4oCUIGUuZy4gYSBzaGFyZWQgYnJpZWZpbmcgLyBOb3ZhIGFuc3dlci5cbi8vIFRoZSBzaGFyZXIncyBjb21tZW50IGlzIHdyYXBwZWQgaW4gYSA8YmxvY2txdW90ZT4gKGFmdGVyIGFuIDxocj4pLiBOQiBSYWN0aXZlJ3Ncbi8vIHRyaXBsZS1zdGFjaGUgRFJPUFMgYSBzdGFuZGFsb25lIDxociAvPiwgc28gdGhlIGRpdmlkZXIgY2FuJ3QgcmVseSBvbiB0aGUgPGhyPjtcbi8vIGl0IGxpdmVzIG9uIHRoZSBibG9ja3F1b3RlJ3MgdG9wIGJvcmRlciBpbnN0ZWFkLiBMZWZ0IGFjY2VudCBiYXIgPSBpbmRlbnQuXG4vLyBTY29wZWQgdG8gdGhlIHJpY2ggYm9keSBzbyBub3RoaW5nIGVsc2UgaXMgYWZmZWN0ZWQuIFsyMDI2LTA2LTI5XVxuLmluYm94LXRleHQtYm9keS0tcmljaCB7XG5cdGhyIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0eWxlZCBpbiBjYXNlIGEgbm9uLVJhY3RpdmUgcmVuZGVyZXIga2VlcHMgaXRcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNlMWUzZTY7XG5cdFx0bWFyZ2luOiAxOHB4IDA7XG5cdH1cblx0YmxvY2txdW90ZSB7XG5cdFx0bWFyZ2luOiAxOHB4IDAgMDtcblx0XHRwYWRkaW5nOiAxNHB4IDAgMnB4IDE0cHg7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNlMWUzZTY7ICAgICAvLyBkaXZpZGVyIGJldHdlZW4gdGhlIHNoYXJlZCB0ZXh0IGFuZCB0aGUgY29tbWVudFxuXHRcdGJvcmRlci1sZWZ0OiAzcHggc29saWQgI2MwYzVmZjsgICAgLy8gc29mdCBwdXJwbGUgYWNjZW50ICsgaW5kZW50XG5cdFx0Y29sb3I6ICM0YjQ0NzA7ICAgICAgICAgICAgICAgICAgICAvLyBtdXRlZCB2cyB0aGUgc2hhcmVkIHRleHRcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGluYm94LWRldGFpbC1pbiB7XG5cdGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTsgfVxuXHR0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG59XG5cbkBrZXlmcmFtZXMgaW5ib3gtbWVudS1pbiB7XG5cdGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHNjYWxlKDAuOTYpIHRyYW5zbGF0ZVkoLTRweCk7IH1cblx0dG8gICB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsgfVxufVxuXG4vKiBSaWdodC1jbGljayBjb250ZXh0IG1lbnUgb24gYSBtZXNzYWdlIHRpbGUuIFRoZSBhbmNob3IgaXMgcG9zaXRpb25lZCBmaXhlZCBhdFxuICAgdGhlIGN1cnNvciAobGVmdC90b3Agc2V0IGlubGluZSBieSBKUyk7IHRoZSBtZW51IHNpdHMgYXQgdGhlIGFuY2hvcidzIHRvcC1sZWZ0LlxuICAgSW5ib3ggcnVucyBhdCBib2R5e3pvb206MX0sIHNvIGNsaWVudFgvY2xpZW50WSBtYXAgMToxIOKAlCBubyB6b29tIGNvcnJlY3Rpb24uXG4gICBxZG5hcHJvLW1lbnUgcHJvdmlkZXMgaXRzIG93biBzdXJmYWNlL3NoYWRvdzsgd2Ugb25seSBwb3NpdGlvbiArIGFuaW1hdGUuICovXG4uaW5ib3gtY3R4LWFuY2hvciB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0ei1pbmRleDogMTAwMDtcblx0LmluYm94LWN0eC1tZW51IHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0dHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG5cdFx0YW5pbWF0aW9uOiBpbmJveC1tZW51LWluIDE0MG1zIGVhc2Utb3V0O1xuXHR9XG59XG5cbi8qIFRvb2xiYXIgb3ZlcmZsb3cgc3dhcDogdGhlIOKLriAoYW5kIHRoZSBpbmxpbmUgcm93LCBvbiB0aGUgd2F5IGJhY2spIGZhZGUgK1xuICAgc2NhbGUgaW4gc28gdGhlIGV5ZSBjYXRjaGVzIHRoZSBjaGFuZ2UgaW5zdGVhZCBvZiBhIGhhcmQgc25hcC4gQXBwbGllZCB2aWEgSlNcbiAgIG9ubHkgb24gdGhlIGFjdHVhbCBpbmxpbmXih4RvdmVyZmxvdyB0cmFuc2l0aW9uIChzZWUgZml0VG9vbGJhcikuICovXG5Aa2V5ZnJhbWVzIGluYm94LW92ZXJmbG93LWluIHtcblx0ZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogc2NhbGUoMC43KTsgfVxuXHR0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxufVxuQGtleWZyYW1lcyBpbmJveC1pbmxpbmUtaW4ge1xuXHRmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDhweCk7IH1cblx0dG8gICB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxufVxuLyogU2Vjb25kYXJ54oaSYWxsIGNvbGxhcHNlOiB0aGUg4ouuIGlzIGFscmVhZHkgdmlzaWJsZSwgc28gZ2l2ZSBpdCBhIHRpbnkgcHVsc2VcbiAgIHRvIHNpZ25hbCBcIm1vcmUgbW92ZWQgaW4gaGVyZVwiIHJhdGhlciB0aGFuIHJlLXBvcHBpbmcgdGhlIHdob2xlIGJ1dHRvbi4gKi9cbkBrZXlmcmFtZXMgaW5ib3gtb3ZlcmZsb3ctcHVsc2Uge1xuXHQwJSAgIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuXHQ0NSUgIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjE4KTsgfVxuXHQxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxufVxuXG4vKiBSZXNwZWN0IHVzZXJzIHdobyBwcmVmZXIgbGVzcyBtb3Rpb246IGRyb3AgYWxsIGluYm94IGVudHJhbmNlIGFuaW1hdGlvbnMuICovXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHQuYWN0aW9ucy1zZWN0aW9uLFxuXHQuaW5ib3gtYm9keS1oZWFkZXIsXG5cdC5pbmJveC1ib2R5LWNvbnRlbnQsXG5cdC5pbmJveC1tZW51LWFuY2hvci5pbmJveC1tZW51LW9wZW4gLmluYm94LW1lbnUsXG5cdC5pbmJveC1tc2ctc3RhZ2dlciB7XG5cdFx0YW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLyog4pSA4pSAIEVtcHR5IHN0YXRlcyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi8qIFBhbmVsIDI6IG1lc3NhZ2UtbGlzdCBlbXB0eSBzdGF0ZSAqL1xuLmluYm94LWVtcHR5IHtcblx0LyogZGlzcGxheSB0b2dnbGVkIHRvIGZsZXggdmlhIEpTICovXG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGdhcDogMTZweDtcblx0cGFkZGluZzogNjRweCAyNHB4IDA7XG5cdG1pbi1oZWlnaHQ6IDMyMHB4O1xuXG5cdC8qIFRhcmdldCB0aGUgZWxlbWVudCwgbm90IGEgY2xhc3M6IHFkbmFwcm8taWxsdXN0cmF0aW9uIHJld3JpdGVzIGl0cyBvd25cblx0ICAgY2xhc3MgYXR0cmlidXRlIG9uIHJlbmRlciwgc28gYSBjdXN0b20gY2xhc3Mgd29uJ3Qgc3Vydml2ZS5cblx0ICAgVGhlIGNvbXBvbmVudCBzaXplcyBieSBXSURUSCBvbmx5OyBwb3J0cmFpdCBpbGx1c3RyYXRpb25zIChlLmcuIHNoYXJlKVxuXHQgICB0aGVuIGJsb3cgdXAgaW4gaGVpZ2h0LiBDb25zdHJhaW4gYnkgYm90aCBtYXgtd2lkdGggYW5kIG1heC1oZWlnaHQgc29cblx0ICAgYW55IGFzcGVjdCByYXRpbyBmaXRzIHRoZSBzYW1lIGJveC4gKi9cblx0cWRuYXByby1pbGx1c3RyYXRpb24ge1xuXHRcdG9wYWNpdHk6IDAuNjtcblx0XHQvKiBQaW4gdGhlIGhlaWdodCwgbGV0IHdpZHRoIGZvbGxvdyB0aGUgYXNwZWN0IHJhdGlvLiBSZWxpYWJsZSBmb3Jcblx0XHQgICBib3RoIGxhbmRzY2FwZSBhbmQgcG9ydHJhaXQgYXJ0ICh0aGUgY29tcG9uZW50IG9ubHkgc2l6ZXMgd2lkdGgsXG5cdFx0ICAgd2hpY2ggYmxvd3MgdXAgdGFsbCBpbGx1c3RyYXRpb25zIGxpa2UgYHNoYXJlYCkuICovXG5cdFx0d2lkdGg6IGF1dG8gIWltcG9ydGFudDtcblx0XHRoZWlnaHQ6IDE5MHB4ICFpbXBvcnRhbnQ7XG5cblx0XHRpbWcge1xuXHRcdFx0d2lkdGg6IGF1dG8gIWltcG9ydGFudDtcblx0XHRcdGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuXHRcdH1cblx0fVxuXG5cdC5pbmJveC1lbXB0eS10ZXh0IHtcblx0XHRtYXJnaW46IDA7XG5cdFx0bWF4LXdpZHRoOiAyNjBweDtcblx0XHRmb250LXNpemU6IDE1cHg7XG5cdFx0bGluZS1oZWlnaHQ6IDEuNDtcblx0XHRjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnksICM2YjcyODApO1xuXHR9XG59XG5cbi8qIFBhbmVsIDM6IGRldGFpbCBlbXB0eSBzdGF0ZSAoU2hvdyBhbGwgKyBIYW5kb3ZlcikgKi9cbi5pbmJveC1kZXRhaWwtZW1wdHkge1xuXHQvKiBkaXNwbGF5IHRvZ2dsZWQgdG8gZmxleCB2aWEgSlMgKi9cblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGhlaWdodDogMTAwJTtcblx0cGFkZGluZzogMjRweDtcblx0LyogUGFuZWwgc3RheXMgd2hpdGU7IHRoZSBlbXB0eS1zdGF0ZSBjYXJkIHVzZXMgc3VyZmFjZT1cInNvbGlkXCJcblx0ICAgKGxpZ2h0LXB1cnBsZSkgc28gaXQgcmVhZHMgd2l0aG91dCBuZWVkaW5nIGEgdGludGVkIGJhY2tkcm9wLiAqL1xuXG5cdHFkbmFwcm8taWxsdXN0cmF0aW9uIHtcblx0XHRvcGFjaXR5OiAwLjY7XG5cdFx0LyogUGluIHRoZSBoZWlnaHQsIHdpZHRoIGZvbGxvd3MgYXNwZWN0IHJhdGlvIChzZWUgcGFuZWwtMiBub3RlKS4gKi9cblx0XHR3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuXHRcdGhlaWdodDogMjMwcHggIWltcG9ydGFudDtcblxuXHRcdGltZyB7XG5cdFx0XHR3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuXHRcdFx0aGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG59XG5cbi8qIOKUgOKUgCBGb3J3YXJkIG1vZGFsOiByZWNpcGllbnQgcGlja2VyIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLyogSGllciBzdG9uZCBgLnFkbmFwcm8tbW9kYWwsIC5xZG5hcHJvLXNlbGVjdC1wb3BvdmVyIHsgem9vbTogMSAhaW1wb3J0YW50IH1gIG9tIGRlIGNvdW50ZXItem9vbVxuICAgdmFuIDEuMjUgdWl0IGBfbW9kYWwuc2Nzc2AgdGUgbmV1dHJhbGlzZXJlbi4gVHdlZSByZWRlbmVuIG9tIGhlbSB3ZWcgdGUgaGFsZW4gKDIwMjYtMDgtMDMpOlxuICAgZGUgY29tbWVudCB6ZWkgXCJwYWdlLXNjb3BlZFwiIG1hYXIgZGUgU0VMRUNUT1Igd2FzIGRhdCBuaWV0IOKAlCBkZXplIHJlZ2VsIGdvbGQgYXBwLWJyZWVkIGVuXG4gICBiZXBhYWxkZSBkdXMgaW4gZWxrIHNjaGVybSBkZSBtYWF0IHZhbiBlbGsgdmVuc3RlcjsgZW4gZGUgMS4yNSBkaWUgaGlqIG5ldXRyYWxpc2VlcmRlIGJlc3RhYXRcbiAgIG5pZXQgbWVlciAoemllIGRlIHVpdGxlZyBpbiBgY29tcG9uZW50cy92Mi9tb2RhbC9fbW9kYWwuc2Nzc2ApLiBOZXR0byB2ZXJhbmRlcnQgZXIgbmlldHM6IGhldFxuICAgd2FzIDEsIGVuIGhldCBibGlqZnQgMS4gKi9cblxuLyogUmVjaXBpZW50IHBpY2tlciDigJQgaWRlbnRpY2FsIHRvIHRoZSBwcm9qZWN0IFwiTWFuYWdlcnNcIiBwaWNrZXIgKHB2Mi1ibS0qKS5cbiAgIFZhbHVlcyBjb3BpZWQgZnJvbSBwcm9qZWN0cy12Mi5odG1sIGFuZCBzY29wZWQgdG8gdGhlIGZvcndhcmQgbW9kYWwuICovXG4jaW5ib3gtZm9yd2FyZC1tb2RhbCB7XG5cdC8qIFRoZSBjYW5kaWRhdGUgbGlzdCBpcyBhbiBhYnNvbHV0ZSBvdmVybGF5IGRyb3Bkb3duIChsaWtlIHByb2plY3RzKSwgc28gdGhlXG5cdCAgIG1vZGFsIGJvZHkgbXVzdCBub3QgY2xpcCBpdDsgcmVzZXJ2ZSBoZWlnaHQgc28gaXQgZG9lc24ndCBjb3ZlciB0aGUgZm9vdGVyLiAqL1xuXHQubW9kYWwtYm9keSB7IG92ZXJmbG93OiB2aXNpYmxlOyBtaW4taGVpZ2h0OiAzNjBweDsgfVxuXG5cdC5wdjItYm0geyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDE0cHg7IH1cblxuXHQucHYyLWJtLXN1YnRpdGxlIHtcblx0XHRtYXJnaW46IDAgMCAycHg7XG5cdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsIHZhcigtLWMtdGV4dC1tdXRlZCkpO1xuXHR9XG5cblx0LnB2Mi1ibS1zZWFyY2gtd3JhcCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG5cdC8qIE92ZXJsYXkgZHJvcGRvd24gY2FyZCBiZWxvdyB0aGUgc2VhcmNoIGZpZWxkLiAqL1xuXHQucHYyLWJtLXJlc3VsdHMge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IGNhbGMoMTAwJSArIDRweCk7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHR6LWluZGV4OiAzMDtcblx0XHRtYXgtaGVpZ2h0OiAyNjBweDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICNjNGM3Y2M7XG5cdFx0Ym9yZGVyLXJhZGl1czogOHB4O1xuXHRcdC8vIENyaXNwIGRyb3Bkb3duIHNoYWRvdywgdGFrZW4gZnJvbSBxZG5hcHJvLXNlbGVjdC1wb3BvdmVyLlxuXHRcdGJveC1zaGFkb3c6XG5cdFx0XHQwIDFweCAzcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wOCksXG5cdFx0XHQwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpO1xuXHRcdHBhZGRpbmc6IDZweDtcblxuXHRcdCZbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblx0fVxuXG5cdC5wdjItYm0tcmVzdWx0cy1saXN0IHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRtaW4taGVpZ2h0OiAwO1xuXHRcdEBpbmNsdWRlIHFkbmEtc2Nyb2xsYmFyOyAgIC8vIG1vZGVybiBtaW5pbWFsIGhvdmVyLXJldmVhbCBiYXJcblx0fVxuXG5cdC5wdjItYm0tcmVzdWx0IHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0Z2FwOiAxMHB4O1xuXHRcdHBhZGRpbmc6IDZweCA4cHg7XG5cdFx0Ym9yZGVyLXJhZGl1czogOHB4O1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cy12aXNpYmxlIHsgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1ob3ZlciwgI2YzZjRmYik7IG91dGxpbmU6IG5vbmU7IH1cblx0fVxuXG5cdC5wdjItYm0tcmVzdWx0LWNoZWNrIHsgZmxleDogMCAwIGF1dG87IH1cblxuXHQucHYyLWJtLXJlc3VsdC10ZXh0IHtcblx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHRtaW4td2lkdGg6IDA7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjI1O1xuXHR9XG5cblx0LnB2Mi1ibS1yZXN1bHQtbmFtZSB7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjMWMxZTJhKTsgfVxuXHQucHYyLWJtLXJlc3VsdC1yb2xlIHsgZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCB2YXIoLS1jLXRleHQtbXV0ZWQpKTsgfVxuXHQucHYyLWJtLXJvdy15b3UgeyBmb250LXNpemU6IDEycHg7IGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsIHZhcigtLWMtdGV4dC1tdXRlZCkpOyBtYXJnaW4tbGVmdDogNHB4OyB9XG5cblx0LnB2Mi1ibS1yZXN1bHQtYWRkZWQge1xuXHRcdG9wYWNpdHk6IDAuNjtcblx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdFx0Jjpob3ZlciB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG5cdH1cblxuXHQucHYyLWJtLXJlc3VsdHMtZW1wdHkge1xuXHRcdHBhZGRpbmc6IDE0cHggMTBweDtcblx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0Y29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgdmFyKC0tYy10ZXh0LW11dGVkKSk7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR9XG5cblx0LnB2Mi1ibS1sb2FkaW5nIHtcblx0XHRwYWRkaW5nOiAyMHB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0Y29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgdmFyKC0tYy10ZXh0LW11dGVkKSk7XG5cdH1cblxuXHQvKiBTZWxlY3RlZCByZWNpcGllbnRzIChzaG93biBiZWxvdyB0aGUgc2VhcmNoLCB1bmRlciB0aGUgb3ZlcmxheSBkcm9wZG93bikuICovXG5cdC5pbmJveC1mb3J3YXJkLXNlbGVjdGVkIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0Z2FwOiAycHg7XG5cdFx0bWF4LWhlaWdodDogMTY4cHg7XG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRAaW5jbHVkZSBxZG5hLXNjcm9sbGJhcjtcblx0fVxuXHQuaW5ib3gtZm9yd2FyZC1zZWxlY3RlZC1yb3cge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRnYXA6IDEwcHg7XG5cdFx0cGFkZGluZzogNXB4IDZweDtcblx0XHRib3JkZXItcmFkaXVzOiA4cHg7XG5cblx0XHQmOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1ob3ZlciwgI2YzZjRmYik7IH1cblx0fVxuXHQuaW5ib3gtZm9yd2FyZC1zZWxlY3RlZC1uYW1lIHtcblx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHRtaW4td2lkdGg6IDA7XG5cdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSwgIzFjMWUyYSk7XG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHR9XG5cdC5pbmJveC1mb3J3YXJkLXNlbGVjdGVkLXJlbW92ZSB7XG5cdFx0ZmxleDogMCAwIGF1dG87XG5cdFx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHR3aWR0aDogMjRweDtcblx0XHRoZWlnaHQ6IDI0cHg7XG5cdFx0cGFkZGluZzogMDtcblx0XHRib3JkZXI6IDA7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyLXJhZGl1czogNnB4O1xuXHRcdGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEyMG1zIGVhc2UsIGNvbG9yIDEyMG1zIGVhc2U7XG5cblx0XHQmOmhvdmVyIHsgYmFja2dyb3VuZDogI2VjZWVmNTsgY29sb3I6ICNjMDM5MmI7IH1cblx0fVxuXG5cdC8qIFwiWCBzZWxlY3RlZFwiIGNvdW50LCBwaW5uZWQgdG8gdGhlIGZvb3RlcidzIGxlZnQgY29ybmVyLiBQb3NpdGlvbmVkXG5cdCAgIGFic29sdXRlbHkgc28gdGhlIGdsb2JhbCAubW9kYWwtZm9vdGVyIG1hcmdpbiBvdmVycmlkZSBjYW4ndCBjbG9iYmVyIGl0LiAqL1xuXHQubW9kYWwtZm9vdGVyIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cdC5pbmJveC1mb3J3YXJkLWNvdW50IHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogMjRweDtcblx0XHR0b3A6IDUwJTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsIHZhcigtLWMtdGV4dC1tdXRlZCkpO1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHR9XG59XG5cbi8qIFBpY2t1cCBzdGF0dXMgYmFkZ2UgaW4gdGhlIGhhbmRvdmVyIGRldGFpbCAqL1xuLmluYm94LXBpY2t1cC1zdGF0dXMge1xuXHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0Z2FwOiA2cHg7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0Ym9yZGVyLXJhZGl1czogOTk5cHg7XG5cdHBhZGRpbmc6IDRweCAxMHB4O1xuXG5cdCYuaXMtb3BlbiAgICAgIHsgY29sb3I6ICM4YTZkMDA7IGJhY2tncm91bmQ6ICNmZmY0ZDY7IH1cblx0Ji5pcy1wZW5kaW5nICAgeyBjb2xvcjogIzJmNmYzZTsgYmFja2dyb3VuZDogI2UzZjRlOTsgfVxuXHQmLmlzLWZpbmlzaGVkICB7IGNvbG9yOiAjM2E0MjkwOyBiYWNrZ3JvdW5kOiAjZTRlNmY4OyB9XG59XG5cbi8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgUmVzcG9uc2l2ZSDigJQgcGhhc2VkIHJld29yayAoaW5kdXN0cnktc3RhbmRhcmQgaW5ib3ggcGF0dGVybnMpXG4gICBQaGFzZSAxOiBidWxrLWFjdGlvbiB0b29sYmFyIG92ZXJmbG93IOKLriArIGVtcHR5LXN0YXRlIGFydCBvbiBzbWFsbCBzY3JlZW5zXG4gICAoUGhhc2UgMiA9IGNvbGxhcHNlIEFjdGl2aXR5IHNpZGViYXI7IFBoYXNlIDMgPSBtb2JpbGUgZHJpbGwtZG93bi4pXG4gICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cblxuLyogVGhlIGJ1bGstYWN0aW9uIHRvb2xiYXIgY29sbGFwc2VzIGludG8gdGhlIOKLriBvdmVyZmxvdyBtZW51IHZpYSBKUyBvdmVyZmxvd1xuICAgZGV0ZWN0aW9uIChmaXRUb29sYmFyKCkpIHRoZSBtb21lbnQgdGhlIGlubGluZSBidXR0b25zIG5vIGxvbmdlciBmaXQg4oCUIG5vXG4gICBtYWdpYyBicmVha3BvaW50LiBUaGUgc2VhcmNoIGJveCBzY2FsZXMgKGZsZXgpIHRvIGdpdmUgdGhlIGFjdGlvbnMgcm9vbVxuICAgZmlyc3QuIFNlZSAuc2VhcmNoLXNlY3Rpb24gLyAuYWN0aW9ucy1zZWN0aW9uIGFib3ZlICsgZml0VG9vbGJhcigpIGluIEpTLiAqL1xuXG4vKiBEZXRhaWwgZW1wdHktc3RhdGUgY2FyZHMgcmVmbG93IG9uIHRoZSBQQU5FTCB3aWR0aCwgbm90IHRoZSB2aWV3cG9ydDogYSB3aWRlXG4gICB3aW5kb3cgY2FuIHN0aWxsIGxlYXZlIGEgbmFycm93IGRldGFpbCBwYW5lbCwgd2hpY2ggc3F1ZWV6ZXMgdGhlIDItY29sdW1uXG4gICBncmlkIHVudGlsIHRoZSBpbGx1c3RyYXRpb24gb3ZlcmxhcHMgdGhlIGNvcHkuIENvbnRhaW5lciBxdWVyeSDihpIgd2hlbiB0aGUgY2FyZFxuICAgaXMgbmFycm93LCBzdGFjayB0aGUgaWxsdXN0cmF0aW9uIEJFTE9XIHRoZSBjZW50ZXJlZCBjb3B5IChkb24ndCBoaWRlIGl0KS4gKi9cbi5pbmJveC1kZXRhaWwtZW1wdHkgeyBjb250YWluZXItdHlwZTogaW5saW5lLXNpemU7IH1cblxuQGNvbnRhaW5lciAobWF4LXdpZHRoOiA1MjBweCkge1xuXHQuaW5ib3gtZGV0YWlsLWVtcHR5IC5xZG5hcHJvLWVtcHR5LXN0YXRlLmVtcHR5LXN0YXRlLWV4dGVuZGVkIHtcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0anVzdGlmeS1pdGVtczogY2VudGVyO1xuXHR9XG5cdC5pbmJveC1kZXRhaWwtZW1wdHkgLmVtcHR5LXN0YXRlLWV4dGVuZGVkIC5lbXB0eS1zdGF0ZS1jb3B5IHtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdG9yZGVyOiAxO1xuXHR9XG5cdC5pbmJveC1kZXRhaWwtZW1wdHkgLmVtcHR5LXN0YXRlLWV4dGVuZGVkIC5lbXB0eS1zdGF0ZS1pbGx1c3RyYXRpb24ge1xuXHRcdGRpc3BsYXk6IGZsZXg7ICAgICAgICAgIC8vIG92ZXJyaWRlIHRoZSBjb21wb25lbnQncyB2aWV3cG9ydCA8OTYwIGhpZGVcblx0XHRvcmRlcjogMjtcblx0XHRtYXJnaW4tdG9wOiA4cHg7XG5cdH1cblx0Ly8gU21hbGxlciBhcnQgd2hlbiBzdGFja2VkIHNvIGl0IHN0YXlzIHByb3BvcnRpb25hdGUgaW4gYSBuYXJyb3cgY2FyZC5cblx0LmluYm94LWRldGFpbC1lbXB0eSAuZW1wdHktc3RhdGUtaWxsdXN0cmF0aW9uIHFkbmFwcm8taWxsdXN0cmF0aW9uLFxuXHQuaW5ib3gtZGV0YWlsLWVtcHR5IC5lbXB0eS1zdGF0ZS1pbGx1c3RyYXRpb24gaW1nLFxuXHQuaW5ib3gtZGV0YWlsLWVtcHR5IC5lbXB0eS1zdGF0ZS1pbGx1c3RyYXRpb24gc3ZnIHsgbWF4LXdpZHRoOiAxODBweDsgfVxufVxuXG4vKiBQYW5lbC0yIChsaXN0KSBlbXB0eTogZHJvcCB0aGUgZGVjb3JhdGl2ZSBhcnQgb24gbW9iaWxlIChyZXZpc2l0IGluIFBoYXNlIDMpLiAqL1xuQG1lZGlhIChtYXgtd2lkdGg6ICRpbmJveC1icC1tb2JpbGUpIHtcblx0LmluYm94LWVtcHR5IHFkbmFwcm8taWxsdXN0cmF0aW9uIHsgZGlzcGxheTogbm9uZTsgfVxufVxuXG4vKiDilIDilIAgTm92YSBtZWxkaW5nLWFuYWx5c2UgKG1lbGRpbmdlbi1jbGFzc2lmaWNhdGllIEZhc2UgNCwgMjAyNi0wNy0xMSkg4pSA4pSAXG4gICBLbm9wLXNsb3QgcmVjaHRzYm92ZW4gaW4gZGUgaGFuZG92ZXItZGV0YWlsICsgaGV0IGFuYWx5c2VwYW5lZWxcbiAgIChzYW1lbnZhdHRpbmcgLyB0b29uIC8gY2xhc3NpZmljYXRpZS1zdWdnZXN0aWUgLyBkaXNjbGFpbWVyKS4gKi9cbi5pbmJveC1ub3ZhLWJ0bi1zbG90IHtcblx0ZmxleDogbm9uZTtcblx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG59XG4uaW5ib3gtbm92YS1wYW5lbCB7XG5cdGJhY2tncm91bmQ6ICNmNWYzZmY7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNlM2RlZmE7XG5cdGJvcmRlci1yYWRpdXM6IDEycHg7XG5cdHBhZGRpbmc6IDE0cHggMTZweDtcblx0bWFyZ2luOiAxMHB4IDAgMTRweDtcblx0Zm9udC1zaXplOiAxM3B4O1xuXHRjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcpO1xuXG5cdCYuaXMtbG9hZGluZyB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGdhcDogOHB4O1xuXHRcdGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuXHRcdC5tZGktY3JlYXRpb24geyBjb2xvcjogIzdjNmZlMDsgYW5pbWF0aW9uOiBpbmJveC1ub3ZhLXB1bHNlIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7IH1cblx0fVxuXG5cdC5pbmJveC1ub3ZhLWhlYWQge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRnYXA6IDZweDtcblx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdGNvbG9yOiAjNGY0NmE1O1xuXHRcdG1hcmdpbi1ib3R0b206IDhweDtcblx0XHQubWRpIHsgY29sb3I6ICM3YzZmZTA7IH1cblx0XHQvKiBcIk9wbmlldXcgYW5hbHlzZXJlblwiIChmb3JjZSkgcmVjaHRzIGluIGRlIGtvcCAqL1xuXHRcdC5qcy1pbmJveC1ub3ZhLXJlYW5hbHlzZSB7IG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG5cdH1cblx0LmluYm94LW5vdmEtc3VtbWFyeSB7IG1hcmdpbjogMCAwIDEwcHg7IHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsgfVxuXHQuaW5ib3gtbm92YS1yb3cgeyBtYXJnaW46IDRweCAwOyB9XG5cdC5pbmJveC1ub3ZhLWxhYmVsIHsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6ICM0ZjQ2YTU7IG1hcmdpbi1yaWdodDogNHB4OyB9XG5cdC5pbmJveC1ub3ZhLWNsYXNzIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGdhcDogNXB4O1xuXHRcdGJhY2tncm91bmQ6ICNlOWU2ZmI7XG5cdFx0Y29sb3I6ICM0ZjQ2YTU7XG5cdFx0Ym9yZGVyLXJhZGl1czogOTk5cHg7XG5cdFx0cGFkZGluZzogMnB4IDEwcHg7XG5cdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHQmLmlzLW5vbmUgeyBiYWNrZ3JvdW5kOiAjZWVlZGY1OyBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTsgZm9udC13ZWlnaHQ6IDQwMDsgfVxuXHR9XG5cdC5pbmJveC1ub3ZhLXJhdGlvbmFsZSB7IGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpOyBmb250LXNpemU6IDEyLjVweDsgbWFyZ2luLXRvcDogNnB4OyB9XG5cdC5pbmJveC1ub3ZhLWRpc2NsYWltZXIge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cdFx0Z2FwOiA2cHg7XG5cdFx0bWFyZ2luLXRvcDogMTBweDtcblx0XHRwYWRkaW5nLXRvcDogOHB4O1xuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTNkZWZhO1xuXHRcdGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdFx0Lm1kaSB7IGZsZXg6IG5vbmU7IG1hcmdpbi10b3A6IDFweDsgfVxuXHR9XG59XG5Aa2V5ZnJhbWVzIGluYm94LW5vdmEtcHVsc2Uge1xuXHQwJSwgMTAwJSB7IG9wYWNpdHk6IDE7IH1cblx0NTAlIHsgb3BhY2l0eTogMC4zNTsgfVxufVxuXG4vKiDilIDilIAgQ2xhc3NpZmljYXRpZS1ibG9rIChtZWxkaW5nZW4tY2xhc3NpZmljYXRpZSBGYXNlIDUsIDIwMjYtMDctMTEpIOKUgOKUgFxuICAgSHVpZGlnIHJlc3VsdGFhdCAoY2hpcCArIGthbnMgKyBzY29yZS1iYWRnZSBpbiBiYW5ka2xldXIgKyBoZXJrb21zdCArXG4gICBBSS1rYWxpYnJhdGllLW1hcmtlcikgZW4gaGV0IGlubGluZSBjbGFzc2lmaWNhdGllZm9ybXVsaWVyIG1ldCBsaXZlIHNjb3JlLiAqL1xuLmluYm94LW1jIHtcblx0YmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcblx0Ym9yZGVyOiAxcHggc29saWQgI2U2ZTRmMDtcblx0Ym9yZGVyLXJhZGl1czogMTJweDtcblx0cGFkZGluZzogMTRweCAxNnB4O1xuXHRtYXJnaW46IDEwcHggMCAxNHB4O1xuXHRmb250LXNpemU6IDEzcHg7XG5cdGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZyk7XG5cblx0LmluYm94LW1jLWhlYWQge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRnYXA6IDZweDtcblx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdGNvbG9yOiAjNGY0NmE1O1xuXHRcdC5tZGkgeyBjb2xvcjogIzdjNmZlMDsgfVxuXHRcdHFkbmFwcm8tYnV0dG9uIHsgbWFyZ2luLWxlZnQ6IGF1dG87IH1cblx0fVxuXHQuaW5ib3gtbWMtcmVzdWx0IHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdGdhcDogMTBweDtcblx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXHR9XG5cdC5pbmJveC1tYy1yZWMgeyBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTsgfVxuXHQuaW5ib3gtbWMtbWV0YSB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRnYXA6IDRweCAxNHB4O1xuXHRcdG1hcmdpbi10b3A6IDhweDtcblx0XHRjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcblx0XHRmb250LXNpemU6IDEycHg7XG5cdH1cblx0LmluYm94LW1jLWFpIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGdhcDogNHB4O1xuXHRcdC5tZGkgeyBjb2xvcjogIzdjNmZlMDsgfVxuXHRcdCYuaXMtbWF0Y2ggeyBjb2xvcjogIzJlN2QzMjsgfVxuXHRcdCYuaXMtZGV2aWF0ZWQgeyBjb2xvcjogI2IwNmUwMDsgfVxuXHR9XG5cdC5pbmJveC1tYy1lbXB0eSB7IG1hcmdpbi10b3A6IDhweDsgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7IH1cblx0LmluYm94LW1jLWZvcm0geyBtYXJnaW4tdG9wOiAxMnB4OyB9XG5cdC5pbmJveC1tYy1mb3JtLXJvdyB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRnYXA6IDEycHg7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdHFkbmFwcm8tc2VsZWN0IHsgZmxleDogMTsgbWluLXdpZHRoOiAyMjBweDsgfVxuXHR9XG5cdC5pbmJveC1tYy1mb3JtLWZvb3Qge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRnYXA6IDhweDtcblx0XHRtYXJnaW4tdG9wOiAxMnB4O1xuXHRcdC5pbmJveC1tYy1saXZlLXNjb3JlIHsgZmxleDogMTsgfVxuXHR9XG59XG5cbi8qIOKUgOKUgCBNZWxkaW5nLXNhbWVudmF0dGluZyAob3BlbmluZyB2YW4gaGV0IGJlcmljaHQsIDIwMjYtMDctMjApIOKUgOKUgFxuICAgRGUgcHJvbWluZW50ZSBPUEVOSU5HLCBvcCBkZSBwbGVrIG9uZGVyIGRlIHRha2VubGlqc3Qta29wOyBkZSBpbmdldnVsZGUgdmVsZGVuXG4gICBlcm9uZGVyIGJsaWp2ZW4gYWxzIFwiYmV3aWpzXCIuIEJld3VzdCB2aXN1ZWVsIEdFTElKSyBhYW4gLmluYm94LW5vdmEtcGFuZWxcbiAgICh6ZWxmZGUga2FhcnQgKyBmb250Z3Jvb3R0ZSkgdm9vciBjb25zaXN0ZW50aWUgdHVzc2VuIHNhbWVudmF0dGluZyBlbiBhbmFseXNlLlxuICAgSGV0IGJld2Vyay12ZWxkIGlzIGVlbiBlY2h0IHFkbmFwcm8taW5wdXQgKHR5cGU9ZXhwYW5kaW5nKSwgZ2VlbiB0ZXh0YXJlYS4gKi9cbi8qIFZlcmJvcmdlbiBpbnZ1bGxpbmcgKDIwMjYtMDgtMTYsIGJlc2x1aXQgNCk6IGRlIG1lbGRpbmcgYm92ZW5hYW4gZWVuIG92ZXJkcmFjaHQgd2FhcnZhblxuICAgZGUgaW52dWxsaW5nIGlzIHZlcmJvcmdlbi4gWmVsZmRlIGdlZGVtcHRlIHJvb2QgYWxzIGRlIG1lbGRpbmcgb3AgZGUgQW50d29vcmRlbi1wYWdpbmFcbiAgICgjYjMyNjFlKSDigJQgYmV3dXN0IGdlZW4gc2lnbmFhbHJvb2Q6IGRpdCBpcyBjb250ZXh0IGJpaiBoZXQgYmVyaWNodCwgZ2VlbiBzdG9yaW5nLiAqL1xuLmluYm94LWhpZGRlbi1ub3RlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMTBweDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBtYXJnaW46IDAgMCAxNnB4IDA7XG4gICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgI2IzMjYxZTtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxNzksIDM4LCAzMCwgMC4wNik7XG5cbiAgICAubWRpIHsgY29sb3I6ICNiMzI2MWU7IGZvbnQtc2l6ZTogMThweDsgbGluZS1oZWlnaHQ6IDEuMzsgfVxuICAgIHN0cm9uZyB7IGNvbG9yOiAjYjMyNjFlOyBmb250LXNpemU6IDEzLjVweDsgfVxufVxuLmluYm94LWhpZGRlbi1tZXRhICAgeyBmb250LXNpemU6IDEycHg7IGNvbG9yOiAjNmI3MTk0OyBtYXJnaW4tdG9wOiAycHg7IH1cbi5pbmJveC1oaWRkZW4tcmVhc29uIHsgZm9udC1zaXplOiAxM3B4OyBjb2xvcjogIzI4MmU2NDsgbWFyZ2luLXRvcDogNHB4OyB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IH1cblxuLmluYm94LXN1bW1hcnkge1xuXHRiYWNrZ3JvdW5kOiAjZjVmM2ZmO1xuXHRib3JkZXI6IDFweCBzb2xpZCAjZTNkZWZhO1xuXHRib3JkZXItcmFkaXVzOiAxMnB4O1xuXHRwYWRkaW5nOiAxNHB4IDE2cHg7XG5cdG1hcmdpbjogMTBweCAwIDE0cHg7XG5cdGZvbnQtc2l6ZTogMTNweDtcblx0Y29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nKTtcblxuXHQuaW5ib3gtc3VtbWFyeS1oZWFkIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0Z2FwOiA2cHg7XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRjb2xvcjogIzRmNDZhNTtcblx0XHQubWRpIHsgY29sb3I6ICM3YzZmZTA7IH1cblx0fVxuXHQuaW5ib3gtc3VtbWFyeS10aXRsZSB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGdhcDogNnB4O1xuXHRcdGZsZXg6IDE7XG5cdFx0bWluLXdpZHRoOiAwO1xuXHR9XG5cdC5pbmJveC1zdW1tYXJ5LXNyYyB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRnYXA6IDNweDtcblx0XHRwYWRkaW5nOiAxcHggOHB4O1xuXHRcdGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuXHRcdGJhY2tncm91bmQ6ICNlOWU2ZmI7XG5cdFx0Y29sb3I6ICM0ZjQ2YTU7XG5cdFx0Zm9udC1zaXplOiAxMXB4O1xuXHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0Lm1kaSB7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6ICM0ZjQ2YTU7IH1cblx0fVxuXHQuaW5ib3gtc3VtbWFyeS1hY3Rpb25zIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0Z2FwOiAycHg7XG5cdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdFx0ZmxleC1zaHJpbms6IDA7XG5cdH1cblx0LmluYm94LXN1bW1hcnktYm9keSB7IG1hcmdpbi10b3A6IDhweDsgfVxuXHQuaW5ib3gtc3VtbWFyeS10ZXh0IHtcblx0XHRtYXJnaW46IDA7XG5cdFx0bGluZS1oZWlnaHQ6IDEuNTtcblx0XHR3aGl0ZS1zcGFjZTogcHJlLXdyYXA7ICAgICAgICAgICAgIC8vIGJld2FhciBkZSByZWdlbGFmYnJla2luZ2VuIHZhbiBkZSBzYW1lbnZhdHRpbmdcblx0fVxuXHQuaW5ib3gtc3VtbWFyeS1tZXRhIHtcblx0XHRtYXJnaW4tdG9wOiA4cHg7XG5cdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuXHR9XG5cdCYuaXMtY29sbGFwc2VkIC5pbmJveC1zdW1tYXJ5LWJvZHkgeyBkaXNwbGF5OiBub25lOyB9XG5cblx0LmluYm94LXN1bW1hcnktYWRkIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGdhcDogNnB4O1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0Ym9yZGVyOiBub25lO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdGNvbG9yOiAjNGY0NmE1O1xuXHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdC5tZGkgeyBmb250LXNpemU6IDE4cHg7IH1cblx0XHQmOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblx0fVxuXG5cdC5pbmJveC1zdW1tYXJ5LWlucHV0IHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXJnaW4tdG9wOiA4cHg7XG5cdH1cblx0LmluYm94LXN1bW1hcnktZm9ybS1mb290IHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0Z2FwOiA4cHg7XG5cdFx0bWFyZ2luLXRvcDogMTBweDtcblx0XHQuaW5ib3gtc3VtbWFyeS1zcGFjZXIgeyBmbGV4OiAxOyB9XG5cdH1cbn1cblxuLyog4pSA4pSAIEluY2lkZW50YW5hbHlzZS1ibG9rIChQUklTTUEvU0lSRSBmYXNlIDEsIDIwMjYtMDctMjApIOKUgOKUgFxuICAgUm91dGVyLWFkdmllcyArIFN0YXJ0LWtub3AsIG9mIGRlIGJlc3RhYW5kZSBhbmFseXNlIChtZXRob2RlLWNoaXAgKyBzdGF0dXMgK1xuICAgZGVlcC1saW5rIG5hYXIgaGV0IHdvcmtiZW5jaCBvcCBoZXQgbWVsZGluZ2VuLWRhc2hib2FyZCkuIFplbGZkZSBrYWFydC1pZGlvb21cbiAgIGFscyAuaW5ib3gtbWMgZXJib3Zlbi4gKi9cbi5pbmJveC1pYSB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNlNmU0ZjA7XG5cdGJvcmRlci1yYWRpdXM6IDEycHg7XG5cdHBhZGRpbmc6IDE0cHggMTZweDtcblx0bWFyZ2luOiAxMHB4IDAgMTRweDtcblx0Zm9udC1zaXplOiAxM3B4O1xuXHRjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcpO1xuXG5cdC5pbmJveC1pYS1oZWFkIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0Z2FwOiA2cHg7XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRjb2xvcjogIzRmNDZhNTtcblx0XHQubWRpIHsgY29sb3I6ICM3YzZmZTA7IH1cblx0fVxuXHQuaW5ib3gtaWEtcm93IHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdGdhcDogMTBweDtcblx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRcdHFkbmFwcm8tYnV0dG9uIHsgbWFyZ2luLWxlZnQ6IGF1dG87IH1cblx0fVxuXHQuaW5ib3gtaWEtc3RhdHVzIHsgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7IH1cblx0LmluYm94LWlhLXNyYyB7IGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpOyBmb250LXNpemU6IDEycHg7IH1cblx0LmluYm94LWlhLW9wZW4ge1xuXHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdGNvbG9yOiAjNGY0NmE1O1xuXHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdCY6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXHR9XG5cdC5pbmJveC1pYS1tdXRlZCB7IG1hcmdpbi10b3A6IDhweDsgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7IH1cbn1cblxuLyog4pSA4pSAIENsYXNzaWZpY2F0aWVtYXBwZW4gaW4gZGUgc2lkZWJhci10cmVlIChtZWxkaW5nZW4tY2xhc3NpZmljYXRpZSBGYXNlIDYpIOKUgOKUgFxuICAgU3RhdHVzLXJpaiBtZXQgdWl0a2xhcC1jaGV2cm9uICsgZ2VuZXN0ZSBzdWJsaWpzdDogcGVyIHNldCBlZW4gdmV0dGUga29wLCBkZVxuICAgY2xhc3NpZmljYXRpZXMgZW4gXCJPbmdlY2xhc3NpZmljZWVyZFwiLiBCb3V3dCB2b29ydCBvcCAuc2lkZWJhci1pdGVtLiAqL1xuLmxlZnQtc2lkZWJhciB7XG5cdC5jbHMtc3RhdHVzLXJvdyB7XG5cdFx0Ly8gY2hldnJvbiBuZWVtdCBkZSBlZXJzdGUga29sb207IGdlZW4gMjhweCBpbnNwcmluZyBtZWVyIG5vZGlnXG5cdFx0cGFkZGluZy1sZWZ0OiA4cHg7XG5cdFx0LmNscy1jb2xsYXBzZS1idG4ge1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0dHJhbnNpdGlvbjogY29sb3IgLjEycztcblx0XHRcdCY6aG92ZXIgeyBjb2xvcjogJGNvbG9yOyB9XG5cdFx0fVxuXHRcdC5jbHMtY29sbGFwc2Utc3BhY2VyIHsgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cdH1cblx0LmNscy1zdWItbGlzdCB7XG5cdFx0Ly8gc3VidGllbGUgaW5zcHJpbmdlbmRlIGJvb21zdHJ1Y3R1dXJcblx0XHRtYXJnaW46IDJweCAwIDRweDtcblx0fVxuXHQuY2xzLXNldC1oZWFkZXIge1xuXHRcdHBhZGRpbmc6IDZweCA4cHggM3B4IDMwcHg7XG5cdFx0Zm9udC1zaXplOiAxMXB4O1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRsZXR0ZXItc3BhY2luZzogLjAzZW07XG5cdFx0Y29sb3I6ICRjb2xvcl85O1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0fVxuXHQuY2xzLWl0ZW0ge1xuXHRcdC8vIGRpZXBlciBpbmdlc3Byb25nZW4gZGFuIGVlbiBnZXdvbmUgc2lkZWJhci1pdGVtICh3YXMgMjhweClcblx0XHRwYWRkaW5nLWxlZnQ6IDQycHg7XG5cdFx0Zm9udC1zaXplOiAxMS41cHg7XG5cdFx0Ji5jbHMtaXRlbS11bmNsYXNzaWZpZWQgaSxcblx0XHQmLmNscy1pdGVtLXVuY2xhc3NpZmllZCAuc2lkZWJhci1pdGVtLWxhYmVsIHsgY29sb3I6ICRjb2xvcl85OyB9XG5cdH1cbn1cblxuLyog4pSA4pSAIERlZmluaXRpZWYtdmVyd2lqZGVyZW4gYmV2ZXN0aWdpbmcg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gICBIZXQgYWFudGFsIGtyaWpndCBiZXd1c3QgdmlzdWVlbCBnZXdpY2h0OiBkaXQgaXMgaGV0IGVuaWdlIG1vbWVudCB3YWFyb3AgZWVuXG4gICB0ZSBydWltZSBzZWxlY3RpZSBub2cgb3B2YWx0IHbDs8OzciBkZSBiZXJpY2h0ZW4gd2VnIHppam4uIERlIG1hcCBzdGFhdCBpbiBkZVxuICAgemluIGVyb25kZXIsIHpvZGF0IFwiMTEyIMK3IGJlcmljaHRlbiB1aXQgUHJ1bGxlbmJha1wiIGFscyDDqcOpbiBibG9rIGxlZXN0LiAgICAgKi9cbi5pbmJveC1wdXJnZS1ib2R5LS1tYW55IHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cdGdhcDogNHB4O1xuXG5cdC5pbmJveC1wdXJnZS1jb3VudCB7XG5cdFx0Zm9udC1zaXplOiAzNHB4O1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0bGluZS1oZWlnaHQ6IDEuMTtcblx0XHRjb2xvcjogdmFyKC0tYy13YXJuLXJlZC01MDAsICNkYzI2MjYpO1xuXHRcdGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG5cdH1cblxuXHQuaW5ib3gtcHVyZ2UtbGVhZCB7XG5cdFx0Y29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjMWMxZTJhKTtcblx0fVxuXG5cdC5pbmJveC1wdXJnZS1zdHJheSB7XG5cdFx0bWFyZ2luLXRvcDogOHB4O1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG59XG4iLCJcblxuI3Byb2plY3QtY29udGVudC1pbmZvIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQwNDk5QVxufVxuXG4jcHJvamVjdC1jb250ZW50LWluZm8tbWFuIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbiNwcm9qZWN0LWNvbnRlbnQtaW5mby1kZXRhaWxzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNjIlO1xuICAgIGxlZnQ6IDQ1JTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICB3aWR0aDogNDAlO1xufVxuXG4ubGlnaHRidWxiLWljb24ge1xuICAgIHdpZHRoOiAyNSU7XG59XG5cbi5lc3NlbnRpYWxzLWJ1dHRvbiB7XG4gICAgcGFkZGluZzogNHB4IDEycHggNHB4IDZweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0MDQ5OWEgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2YxZjFmMTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNpcmNsZS1jb3VudCB7XG4gICAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gICAgcGFkZGluZy1yaWdodDogM3B4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxRTIwNUM7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5wcm9qZWN0LWNvbnRlbnQtcm93IHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZ2FwOiAxNnB4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIC5jYXJkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRiAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLnByb2plY3QtY29udGVudC1jb2wge1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG59XG5cbi50eHQtdnctMiB7XG4gICAgZm9udC1zaXplOiAydm1pbjtcbn1cblxuLnR4dC12dy0zIHtcbiAgICBmb250LXNpemU6IDN2bWluO1xufVxuXG4uY3VzdG9tLXRleHQtYmx1ZSB7XG4gICAgY29sb3I6ICM0MDQ5OUE7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uYWJjZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIC50cy1wcmltYXJ5LWJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDA0OTlBICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAjRkZGO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxufVxuLmRlZiB7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuICAgIG1pbi1oZWlnaHQ6IDEyNHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogIzQwNDk5QTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAxO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm1vZGFsLWJhY2tkcm9wIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi52YWxpZGF0ZS1lcnJvciB7XG4gICAgY29sb3I6IHJlZDtcbn1cblxuXG5cbi50cy1zb3J0LXBsYWNlaG9sZGVyIHtcbiAgICBib3JkZXI6IDJweCBkYXNoZWQgI2MxYzFjMTtcbiAgICBoZWlnaHQ6IDc1cHg7XG4gICAgbWFyZ2luOiAxNXB4IDA7XG59IiwiI2hvbWUge1xuICAgIGdhcDogMTJweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdC5ibG9ja3NfYmFja2dyb3VuZCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcblx0XHRib3JkZXItcmFkaXVzOiAxMnB4O1xuXHR9XG4gICAgLmJsb2NrX2hlYWRpbmcge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgIH0gICAgXG5cdC5kZXRhaWxfYmxvY2sge1xuXHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdFx0cGFkZGluZzogMjRweCAzMnB4O1xuXHRcdCYtdGl0bGUge1xuXHRcdFx0Zm9udC1zaXplOiAyNXB4O1xuXHRcdCAgICBmb250LXdlaWdodDogNjAwO1xuXHRcdH1cblx0XHQmLWRlc2NyaXB0aW9uIHtcblx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHR9XG4gICAgICAgICYtdXNlcl9kZXRhaWwge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDhweDsgXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyBcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6IDcycHg7XG4gICAgICAgICAgICAmLWluZm8geyAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBnYXA6IDM2cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA5MHB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuYmxvY2tfaGVhZGluZyB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblx0fVxuICAgIFxuICAgIC5wcm9qZWN0X2NvdW50IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICAmLWNvbHMge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICB9XG4gICAgICAgIC5zdGFyX2Jsb2NrIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDRweCAwcHg7XG4gICAgICAgICAgICAmLWRldGFpbCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiA0OHB4O1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwcHggMjRweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJi1ib2R5IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICYtdGl0bGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICYtc3RhcnMge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLWNvdW50IHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDQ4cHg7IFxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGVuZDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwcHggNDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hc3Nlc21lbnRfYmxvY2sge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDBweCAxNnB4O1xuICAgICAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDYwcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMHB4IDI0cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLWJvZHkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDBweCAyNHB4O1xuICAgICAgICAgICAgICAgICYtdGl0bGUge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDMycHg7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICYtZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICYtY291bnQge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDYwcHg7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmdyYXBoX2NvbnRhaW5lciB7XG4gICAgICAgIGkge1xuICAgICAgICAgICAgZm9udC1zaXplOiA0OHB4O1xuICAgICAgICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgICAgICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgICAgIH1cbiAgICAgICAgJi10aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwcHggOHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vIOKUgOKUgCBPdmVydmlldyBwYWdlIChvdmVydmlldy5odG1sLnR3aWcpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gR2VuZXJpYyBvdmVydmlldyBwb3dlcmVkIGJ5IERhdGFPdmVydmlldyArIHFkbmFwcm8tdGFibGUuXG4vLyBCRU0tYWNodGlnZSBuYWFtZ2V2aW5nOiAub3YtKiAob3ZlcnZpZXcgbmFtZXNwYWNlKS5cblxuJG92LWVhc2luZyA6IGN1YmljLWJlemllciguNCwgMCwgLjIsIDEpO1xuJG92LXNpZGViYXItd2lkdGggOiAyNjBweDtcbiRvdi1zaWRlYmFyLXJhZGl1cyA6IDEycHg7XG4kb3YtdHJhbnNpdGlvbiA6IDIyMG1zICRvdi1lYXNpbmc7XG5cbi8vIFNwbGl0IHNjcmVlbiAoY2FyZCA0KzUrNiwgQk9BUkQtc3RhbWRhdGEtdGFiZWxsZW4tZW4tc3BsaXQtc2NyZWVuLm1kKS5cbiRvdi1zcGxpdC1taW4td2lkdGggOiAyODBweDtcbi8vIE11c3QgbWF0Y2ggT1ZfU1BMSVRfTEVGVF9NSU5fV0lEVEggaW4gb3ZlcnZpZXcuaHRtbC50d2lnLCB3aGljaCBjYXBzIHRoZSBkcmFnLlxuJG92LXNwbGl0LWxlZnQtbWluLXdpZHRoIDogNTYwcHg7XG4kb3Ytc3BsaXQtZGVmYXVsdC13aWR0aCA6IDQyMHB4O1xuLy8gQmVsb3cgdGhpcyB0aGUgcmlnaHQgcGFuZWwgb3ZlcmxheXMgdGhlIHRhYmxlIGluc3RlYWQgb2Ygc2l0dGluZyBiZXNpZGUgaXQg4oCUXG4vLyB0aGUgc2FtZSBcImxhcHRvcFwiIGJyZWFrcG9pbnQgYWxyZWFkeSB1c2VkIGVsc2V3aGVyZSBpbiB0aGUgYmFja29mZmljZSBmb3IgYVxuLy8gc2lkZSBwYW5lbCBuZXh0IHRvIGEgdGFibGUgKHNjc3MvcGFydGlhbHMvX2Jhc2Uuc2NzcywgX2NhcmRzLnNjc3MsIF9ncmlkcy5zY3NzKS5cbiRvdi1zcGxpdC1icmVha3BvaW50IDogMTAyNHB4O1xuXG4vLyDilIDilIAgUm9vdCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLm92LXJvb3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSB2YXIoLS1xZG5hLXRvcGJhci1oKSk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4vLyDilIDilIAgQm9keSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLm92LWJvZHkge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBhZGRpbmc6IDAgOHB4O1xufVxuXG4vLyDilIDilIAgQ3RybCBiYXIg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbi5vdi1jdHJsLWJhciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMDtcbiAgICBwYWRkaW5nOiA4cHggMCA2cHg7XG4gICAgdHJhbnNpdGlvbjogZ2FwICRvdi10cmFuc2l0aW9uO1xufVxuXG4vLyBTaWRlYmFyIGhlYWRlciDigJQgY29sbGFwc2VkIGJ5IGRlZmF1bHQsIHNsaWRlcyBvcGVuXG4ub3YtY3RybC1zaWRlYmFyIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRvdi1zaWRlYmFyLXJhZGl1cztcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgICB3aWR0aCAgICAgICAgICAkb3YtdHJhbnNpdGlvbixcbiAgICAgICAgYm9yZGVyLXJhZGl1cyAgJG92LXRyYW5zaXRpb247XG59XG5cbi5vdi1jdHJsLXNpZGViYXItaW5uZXIge1xuICAgIHdpZHRoOiAkb3Ytc2lkZWJhci13aWR0aDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG4gICAgcGFkZGluZzogMCA2cHggMCAxMnB4O1xuICAgIG1pbi1oZWlnaHQ6IDQ0cHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICMzNzQxNTE7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ub3YtY3RybC1zaWRlYmFyLXRpdGxlIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbn1cblxuLy8gU2VhcmNoIGJhclxuLm92LWN0cmwtc2VhcmNoIHtcbiAgICAvLyBXYXMgYGZsZXg6IDEgMSBhdXRvYCwgd2hpY2ggc3RyZXRjaGVkIHRoZSBmaWVsZCBhY3Jvc3MgdGhlIHdob2xlIGJhci4gQSBzZWFyY2hcbiAgICAvLyBib3ggdGhlIHdpZHRoIG9mIHRoZSBzY3JlZW4gcmVhZHMgYXMgY2x1bXN5IGFuZCBidXlzIG5vdGhpbmc6IHlvdSB0eXBlIGEgZmV3XG4gICAgLy8gY2hhcmFjdGVycywgbm90IGEgc2VudGVuY2UuIEl0IG5vdyB0YWtlcyB3aGF0IGl0IG5lZWRzIHVwIHRvIGEgY2FwIGFuZCBsZWF2ZXNcbiAgICAvLyB0aGUgcmVzdCBvZiB0aGUgYmFyIHRvIHRoZSBidXR0b25zLiBbS2ltIDA5LjA4LjIwMjZdXG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA0MjBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG5cbiAgICBxZG5hcHJvLWlucHV0IHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgfVxufVxuXG4vLyDilIDilIAgV29ya3NwYWNlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4ub3Ytd29ya3NwYWNlIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gICAgLy8gQW5jaG9yIGZvciAub3Ytc3BsaXQtcGFuZWwncyBhYnNvbHV0ZSBwb3NpdGlvbmluZyBvbiBhIG5hcnJvdyBzY3JlZW5cbiAgICAvLyAoc2VlIHRoZSBtZWRpYSBxdWVyeSBhdCB0aGUgYm90dG9tIG9mIHRoaXMgZmlsZSkuIEhhcm1sZXNzIG9uIGV2ZXJ5IG90aGVyXG4gICAgLy8gcGFnZTogY2hpbGRyZW4gc3RheSBpbiBub3JtYWwgZmxvdyB1bmxlc3MgdGhhdCBvcHQtaW4gcnVsZSBhcHBsaWVzLlxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLy8gU2lkZWJhciBwYW5lbFxuLm92LXNpZGViYXItd3JhcCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgYm9yZGVyLXJhZGl1czogJG92LXNpZGViYXItcmFkaXVzO1xuICAgIHRyYW5zaXRpb246XG4gICAgICAgIHdpZHRoICAgICAgICAgICRvdi10cmFuc2l0aW9uLFxuICAgICAgICBib3JkZXItcmFkaXVzICAkb3YtdHJhbnNpdGlvbixcbiAgICAgICAgbWFyZ2luLXJpZ2h0ICAgJG92LXRyYW5zaXRpb24sXG4gICAgICAgIG1hcmdpbi10b3AgICAgICRvdi10cmFuc2l0aW9uO1xuXG4gICAgcWRuYXByby1zaWRlYmFyIHtcbiAgICAgICAgd2lkdGg6ICRvdi1zaWRlYmFyLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxufVxuXG4vLyDilIDilIAgQ29udGVudCBjYXJkIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4ub3YtY29udGVudCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBib3JkZXItcmFkaXVzOiAkb3Ytc2lkZWJhci1yYWRpdXM7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8gV2l0aCBzcGxpdCBzY3JlZW4gb3BlbiB0aGUgbGVmdCB0YWJsZSBtYXkgbm90IGJlIHNxdWVlemVkIHBhc3QgdGhlIHdpZHRoIGl0cyBvd25cbi8vIGhlYWRlciBuZWVkcyAodGl0bGUsIFwiVm9lZyB0b2VcIiwgdGhlIHRocmVlIHZpZXcgYnV0dG9ucyk7IGJlbG93IHRoYXQgdGhleSBjb2xsaWRlLlxuLy8gVGhlIGRyYWcgaXRzZWxmIGlzIGNhcHBlZCBpbiBKUyB0b287IHRoaXMgaXMgdGhlIGJhY2tzdG9wIGZvciBvdGhlciBjYXVzZXMsIHN1Y2ggYXNcbi8vIGEgd2luZG93IHRoYXQgZ2V0cyByZXNpemVkIHdoaWxlIHRoZSBwYW5lbCBpcyBvcGVuLiBbS2ltIDEwLjA4LjIwMjZdXG4ub3Ytcm9vdC5zcGxpdC1vcGVuIC5vdi1jb250ZW50IHsgbWluLXdpZHRoOiAkb3Ytc3BsaXQtbGVmdC1taW4td2lkdGg7IH1cblxuLy8gUGFuZWwgaGVhZGVyXG4vLyBUaGUgc3RyaXAgYWJvdmUgdGhlIHRhYmxlIHVzZWQgdG8gYmUgaGFuZC1yb2xsZWQgaGVyZSAoLm92LXBhbmVsLWhlYWRlciBhbmRcbi8vIGZyaWVuZHM6IGxhYmVsLCBjb3VudCBwaWxsLCB2aWV3IGJ1dHRvbnMpLiBJdCBpcyBxZG5hcHJvLXRhYmxlLXdyYXBwZXIgbm93LFxuLy8gd2hpY2ggYnJpbmdzIGl0cyBvd24gc3R5bGluZyDigJQgaW5jbHVkaW5nIGRhcmsgbW9kZSwgd2hpY2ggdGhlc2UgcnVsZXMgbmV2ZXJcbi8vIGhhZC4gUmVtb3ZlZCAwOS4wOC4yMDI2LlxuXG4vLyBUYWJsZSBhcmVhXG4ub3YtdGFibGUtYXJlYSB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAvLyBUaGUgd3JhcHBlciBpcyB0aGUgZGlyZWN0IGNoaWxkIG5vdzsgaXQgcGFzc2VzIHRoZSBzcGFjZSBvbiB0byB0aGUgdGFibGUuXG4gICAgcWRuYXByby10YWJsZS13cmFwcGVyLFxuICAgIHFkbmFwcm8tdGFibGUge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICB9XG59XG5cbi8vIOKUgOKUgCBBY3RpdmUgYnV0dG9uIHN0YXRlICh2aWV3IHRvZ2dsZSwgZXRjLikg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbi5vdi1idG4tYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS01MCwgI2U2ZTlmZikgIWltcG9ydGFudDtcbiAgICBjb2xvcjogICAgICAgdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKSAhaW1wb3J0YW50O1xufVxuXG4vLyDilIDilIAgRm9vdGVyIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4ub3YtZm9vdGVyIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDZweCA4cHg7XG59XG5cbi8vIOKUgOKUgCBBbiBvdmVydmlldyBJTlNJREUgYSByZWNvcmQgKEtpbSAxMC4wOC4yMDI2KSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFN1Y2ggYSBwYWdlICh0b2RheTogL21hc3Rlcl9kYXRhL3VzZXJzLzppZC90ZWFtcyBhbmQgL3Rhc2tsaXN0cykgc2hvd3MgdGhlIFJFQ09SRCdzXG4vLyBvd24gZmxvYXRpbmcgYmFyIOKAlCB0aGUgZXhhY3QgYmFyIGl0cyBjYXJkIHNob3dzLCBzYW1lIHBhcnRpYWwsIHNhbWUgYnVpbGRlciDigJQgaW5zdGVhZFxuLy8gb2YgdGhpcyBwYWdlJ3MgaW4tZmxvdyBmb290ZXIgYmFyLiBUd28gYmFycyBzdGFja2VkIHJlYWQgYXMgYSByZW5kZXJpbmcgZmF1bHQsIGFuZFxuLy8gdGhlIGJhciBqdW1waW5nIHRvIGFub3RoZXIgc3BvdCBwZXIgcGFnZSB3YXMgdGhlIGNvbXBsYWludCB0aGF0IHN0YXJ0ZWQgdGhpcy5cbi8vXG4vLyBUaGUgZm9vdGVyIGtlZXBzIGV4aXN0aW5nIGJ1dCBnb2VzIGhpZGRlbjogb3ZlcnZpZXcuaHRtbC50d2lnJ3Mgc2NyaXB0IGJpbmRzXG4vLyAjb3YtYnRuLWNlbnRlciBhbmQgI292LWJ0bi1hcmNoaXZlZCB3aXRoIG5vIG51bGwtZ3VhcmRzLCBzbyByZW1vdmluZyB0aGVtIHdvdWxkIHRha2Vcbi8vIHRoZSBwYWdlIHNjcmlwdCBkb3duIHdpdGggdGhlbS4gTmVlZGVkIGV4cGxpY2l0bHkgYmVjYXVzZSBgLm92LWZvb3RlcmAgc2V0c1xuLy8gZGlzcGxheTpmbGV4LCB3aGljaCBiZWF0cyB0aGUgdXNlci1hZ2VudCBydWxlIGZvciBbaGlkZGVuXS5cbi5vdi1mb290ZXJbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8gUm9vbSBmb3IgdGhhdCBmbG9hdGluZyBiYXI6IGl0IGlzIGZpeGVkIHRvIHRoZSBib3R0b20gb2YgdGhlIHZpZXdwb3J0ICg1NnB4IHRhbGwgYXQgYVxuLy8gMTZweCBvZmZzZXQsIHotaW5kZXggOTAwMCksIGFuZCAub3Ytcm9vdCBjbGlwcyBpdHMgb3duIG92ZXJmbG93IOKAlCB3aXRob3V0IHRoaXMgdGhlXG4vLyBsYXN0IHRhYmxlIHJvdyBzaXRzIHVucmVhY2hhYmxlIGJlaGluZCBpdC5cbi8vXG4vLyBbS2ltIDEwLjA4LjIwMjZdIFRoZSByZXNlcnZhdGlvbiBzaXRzIElOU0lERSB0aGUgc2Nyb2xsaW5nIHRhYmxlIG5vdywgbm90IHVuZGVyXG4vLyAub3YtYm9keS4gVW5kZXIgdGhlIGJvZHkgaXQgcHVzaGVkIHRoZSB3aG9sZSB0YWJsZSB1cCBhbmQgbGVmdCBhIGRlYWQgODBweCBiYW5kIG9mXG4vLyBwYWdlIGNvbG91ciBhYm92ZSBhIGJhciB0aGF0IGlzIG1lYW50IHRvIGZsb2F0IE9WRVIgdGhlIGNvbnRlbnQuIEluc2lkZSB0aGUgc2Nyb2xsXG4vLyBhcmVhIHRoZSB0YWJsZSBydW5zIG9uIGJlaGluZCB0aGUgYmFyLCBhbmQgdGhlIGxhc3Qgcm93IGlzIHN0aWxsIHJlYWNoYWJsZSDigJQgeW91XG4vLyBzY3JvbGwgaXQgb3V0IGZyb20gdW5kZXIuIFNhbWUgbW92ZSwgc2FtZSByZWFzb24sIGFzIC51ZHAgaW5cbi8vIHYxL3VzZXJzL3ZpZXdfdXNlci5odG1sLlxuLm92LXJvb3QuaGFzLXJlY29yZC1uYXYgLnFkbmFwcm8tdGFibGUtd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDgwcHg7XG59XG5cbi8vIOKUgOKUgCBTdGF0ZTogc2lkZWJhciBvcGVuIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4ub3Ytcm9vdC5zaWRlYmFyLW9wZW4ge1xuICAgIC5vdi1jdHJsLWJhciAgICAgIHsgZ2FwOiA4cHg7IH1cbiAgICAub3YtY3RybC1zaWRlYmFyICB7IHdpZHRoOiAkb3Ytc2lkZWJhci13aWR0aDsgYm9yZGVyLXJhZGl1czogJG92LXNpZGViYXItcmFkaXVzICRvdi1zaWRlYmFyLXJhZGl1cyAwIDA7IHBhZGRpbmc6IDRweDsgfVxuICAgIC5vdi1zaWRlYmFyLXdyYXAgIHsgd2lkdGg6ICRvdi1zaWRlYmFyLXdpZHRoOyBib3JkZXItcmFkaXVzOiAwIDAgJG92LXNpZGViYXItcmFkaXVzICRvdi1zaWRlYmFyLXJhZGl1czsgbWFyZ2luLXJpZ2h0OiA4cHg7IG1hcmdpbi10b3A6IC02cHg7IH1cbn1cblxuLy8g4pSA4pSAIFN0YXRlOiBzaWRlYmFyIGNvbGxhcHNlZCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLm92LXJvb3Quc2lkZWJhci1jb2xsYXBzZWQge1xuICAgIC5vdi1jdHJsLWJhciAgICAgIHsgZ2FwOiA4cHg7IH1cbiAgICAub3YtY3RybC1zaWRlYmFyICB7IHdpZHRoOiAkb3Ytc2lkZWJhci13aWR0aDsgcGFkZGluZzogNHB4OyB9XG59XG5cbi8vIOKUgOKUgCBQYWdlIHN3aXRjaGVyIChzZWdtZW50ZWQgY29udHJvbCBuZXh0IHRvIHRoZSBzZWFyY2ggZmllbGQpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gT25seSByZW5kZXJlZCB3aGVyZSBhIHNpc3RlciBvdmVydmlldyBleGlzdHMuIFVzZWQgdG8gYmUgdHdvIGJ1dHRvbnMgaW4gdGhlIGZvb3RlclxuLy8gYWN0aW9uIGJhciwgd2hlcmUgdGhleSB3ZXJlIGluZGlzdGluZ3Vpc2hhYmxlIGZyb20gdGhlIGFyY2hpdmUgZmlsdGVyIG5leHQgdG8gdGhlbS5cbi8vIFtLaW0gMTAuMDguMjAyNl1cbi5vdi1jdHJsLXBhZ2Utc3dpdGNoIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luLWxlZnQ6IDEycHg7XG5cbiAgICAvLyBOZWVkZWQgZXhwbGljaXRseTogdGhpcyBydWxlIHNldHMgZGlzcGxheTpmbGV4LCB3aGljaCBiZWF0cyB0aGUgdXNlci1hZ2VudCBydWxlXG4gICAgLy8gZm9yIFtoaWRkZW5dLCBzbyB0aGUgSlMgaGlkaW5nIGl0IGRpZCBub3RoaW5nIGFuZCB0aGUgcGlsbCBzYXQgb24gdGhlIExJVkUgcGFnZVxuICAgIC8vIHRvby4gU2FtZSB0cmFwIGAub3YtZm9vdGVyW2hpZGRlbl1gIGFscmVhZHkgZG9jdW1lbnRzIGZ1cnRoZXIgdXAgdGhpcyBmaWxlLlxuICAgIC8vIFtLaW0gMTEuMDguMjAyNiwgc3BvdHRlZCByaWdodCBhZnRlciBhcmNoaXZpbmcgYSBsaXN0XVxuICAgICZbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuICAgIC8vIFRoZSBzbGlkaW5nLXBpbGxzIHZhcmlhbnQgaGFzIGEgVFJBTlNQQVJFTlQgdHJhY2sgYW5kIGEgbGlnaHQgbGF2ZW5kZXIgcGlsbDogaXRcbiAgICAvLyBpcyBkcmF3biB0byBzaXQgb24gd2hpdGUuIFVwIGhlcmUgaXQgc2l0cyBvbiB0aGUgcGFnZSdzIG93biBsaWdodCBwdXJwbGUsIHNvIHBpbGxcbiAgICAvLyBhbmQgYmFja2dyb3VuZCB3ZXJlIHRoZSBzYW1lIGNvbG91ciBhbmQgb25seSB0aGUgdHdvIHdvcmRzIHNob3dlZC4gQSB3aGl0ZSBiZWRcbiAgICAvLyB1bmRlciBpdCBnaXZlcyB0aGUgdmFyaWFudCB0aGUgY29udHJhc3QgaXQgYXNzdW1lcywgd2l0aG91dCB0b3VjaGluZyB0aGUgc2hhcmVkXG4gICAgLy8gY29tcG9uZW50LiBbS2ltIDEwLjA4LjIwMjZdXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBwYWRkaW5nOiAzcHg7XG59XG5cbi8vIOKUgOKUgCBTcGxpdCBzY3JlZW46IGRyYWdnYWJsZSBkaXZpZGVyIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4vLyBEcmFnIGhhbmRsZSBiZXR3ZWVuIHRoZSB0d28gcGFuZWxzLiBTYW1lIHZpc3VhbCBsYW5ndWFnZSBhcyB0aGUgd2lkZ2V0IHJlc2l6ZVxuLy8gaGFuZGxlcyBvbiB0aGUgaG9tZXBhZ2UgKC53aWRnZXQtcmVzaXplLWhhbmRsZSBpbiBob21lLXYyLmh0bWwpOiBhbiBpbnZpc2libGVcbi8vIHdpZGUgaGl0IGFyZWEgd2l0aCBhIHNtYWxsIHJvdW5kZWQgYmFyIGluIHRoZSBtaWRkbGUsIHdoaWNoIGRhcmtlbnMgYW5kIGdyb3dzXG4vLyBvbiBob3ZlciBzbyBpdCBpcyBvYnZpb3VzIHRoZSBwYW5lbHMgY2FuIGJlIHJlc2l6ZWQuIFtLaW0gMTAuMDguMjAyNl1cbi5vdi1zcGxpdC1yZXNpemVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIGN1cnNvcjogY29sLXJlc2l6ZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiA0cHg7XG4gICAgICAgIGhlaWdodDogMzZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAuMyk7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXMgZWFzZSwgaGVpZ2h0IDIwMG1zIGVhc2U7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIsXG4gICAgJjphY3RpdmU6OmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg2NCwgNzMsIDE1NCwgLjk1KTtcbiAgICAgICAgaGVpZ2h0OiA1NnB4O1xuICAgIH1cbn1cblxuLy8gV2hpbGUgZHJhZ2dpbmcsIGxvY2sgdGhlIGN1cnNvciBhY3Jvc3MgdGhlIHdob2xlIHBhZ2Ugc28gdGhlIGdlc3R1cmUgc3Vydml2ZXNcbi8vIHdoZW4gdGhlIHBvaW50ZXIgcnVucyBwYXN0IHRoZSBoYW5kbGUuIE1pcnJvcnMgaG9tZS12MidzIGBib2R5LmlzLXJlc2l6aW5nYC5cbmJvZHkub3Ytc3BsaXQtcmVzaXppbmcsXG5ib2R5Lm92LXNwbGl0LXJlc2l6aW5nICogeyBjdXJzb3I6IGNvbC1yZXNpemUgIWltcG9ydGFudDsgfVxuXG4vLyDilIDilIAgU3BsaXQgc2NyZWVuOiByaWdodCBwYW5lbCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLm92LXNwbGl0LXBhbmVsIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBtaW4td2lkdGg6ICRvdi1zcGxpdC1taW4td2lkdGg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRvdi1zaWRlYmFyLXJhZGl1cztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLy8gU2xpZGVzIGluIGZyb20gdGhlIHJpZ2h0IGFuZCBiYWNrIG91dCBhZ2Fpbi4gQXBwZWFyaW5nIGFuZCB2YW5pc2hpbmcgaW4gb25lXG4gICAgLy8gZnJhbWUgcmVhZCBhcyBhIGdsaXRjaCByYXRoZXIgdGhhbiBhcyBhIHBhbmVsIG9wZW5pbmcuIFtLaW0gMTAuMDguMjAyNl1cbiAgICAvLyBUcmFuc2Zvcm0gYW5kIG9wYWNpdHkgb25seSwgc28gdGhpcyBydW5zIG9uIHRoZSBjb21wb3NpdG9yOyBgd2lkdGhgIGlzIGxlZnRcbiAgICAvLyBhbG9uZSBiZWNhdXNlIHRoZSBkcmFnLXRvLXJlc2l6ZSBzZXRzIGl0IGlubGluZSBhbmQgYW5pbWF0aW5nIGl0IHdvdWxkIGZpZ2h0XG4gICAgLy8gdGhlIGRyYWcuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgICAgdHJhbnNmb3JtICRvdi10cmFuc2l0aW9uLFxuICAgICAgICBvcGFjaXR5ICAgMTYwbXMgJG92LWVhc2luZztcblxuICAgIC8vIFRoZSBzdGF0ZSB0aGUgcGFuZWwgaXMgaW4gZm9yIG9uZSBmcmFtZSBiZWZvcmUgaXQgc2xpZGVzIGluLCBhbmQgdGhlIHN0YXRlIGl0XG4gICAgLy8gYW5pbWF0ZXMgYmFjayB0byBvbiB0aGUgd2F5IG91dC4gSlMgYWRkcyBhbmQgcmVtb3ZlcyB0aGUgY2xhc3M7IHNlZVxuICAgIC8vIG92U2hvd1NwbGl0U2hlbGwoKSBhbmQgb3ZDbG9zZVNwbGl0KCkgaW4gb3ZlcnZpZXcuaHRtbC50d2lnLlxuICAgICYuaXMtc2xpZGluZyB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDEwMCUgKyA4cHgpKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG59XG5cbi8vIFNvbWVvbmUgd2hvIHNldCBcInJlZHVjZSBtb3Rpb25cIiBnZXRzIHRoZSBwYW5lbCB3aXRob3V0IHRoZSBzbGlkZS5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLm92LXNwbGl0LXBhbmVsIHsgdHJhbnNpdGlvbjogbm9uZTsgfVxufVxuXG4ub3Ytc3BsaXQtdG9vbGJhciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDhweCA4cHggMDtcblxuICAgIHFkbmFwcm8taW5wdXQge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICB9XG59XG5cbi5vdi1zcGxpdC10YWJsZS1hcmVhIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIHFkbmFwcm8tdGFibGUtd3JhcHBlcixcbiAgICBxZG5hcHJvLXRhYmxlIHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgfVxufVxuXG4vLyBQbGFjZWhvbGRlciBpbnNpZGUgdGhlIHNwbGl0IHBhbmVsLCBzaG93biBmcm9tIHRoZSBtb21lbnQgc3BsaXQgc2NyZWVuIGlzXG4vLyBzd2l0Y2hlZCBvbiB1bnRpbCBhIHJvdyBpcyBwaWNrZWQuIFdpdGhvdXQgaXQsIHR1cm5pbmcgdGhlIHRvZ2dsZSBvbiBjaGFuZ2VkXG4vLyBub3RoaW5nIG9uIHNjcmVlbiBhbmQgdGhlIGJ1dHRvbiByZWFkIGFzIGJyb2tlbi4gW0tpbSAxMC4wOC4yMDI2XVxuLy8gSGludCB1bmRlciB0aGUgTEVGVCB0YWJsZTogaXQgaXMgYWJvdXQgdGhlIHJvd3Mgb3ZlciB0aGVyZSwgc28gaXQgYmVsb25ncyB0aGVyZS5cbi8vIFdpdGggdGhlIHBhbmVsIG9wZW4gYSBzaW5nbGUgY2xpY2sgZmlsbHMgdGhlIHBhbmVsIHJhdGhlciB0aGFuIG9wZW5pbmcgdGhlIGxpc3QsXG4vLyBhbmQgdGhpcyBpcyB0aGUgb25seSBwbGFjZSB0aGF0IHNheXMgaG93IHRvIHJlYWNoIHRoZSBsaXN0IGl0c2VsZi4gRGVsaWJlcmF0ZWx5XG4vLyBxdWlldDogaXQgaXMgYSByZW1pbmRlciwgbm90IGFuIGluc3RydWN0aW9uLiBbS2ltIDEwLjA4LjIwMjZdXG4ub3Ytc3BsaXQtaGludCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcGFkZGluZzogNnB4IDE0cHggOHB4O1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LXNvZnQsICM5Mjk5YWQpO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4vLyBTb2Z0ZXIgYXJyaXZhbCBmb3IgdGhlIHBhbmVsJ3Mgcm93cy4gVGhlIGNvbXBvbmVudCdzIG93biBlbnRyYW5jZSBpcyB0dW5lZCBmb3IgYVxuLy8gZnVsbCBwYWdlICgxODBtcyBwZXIgcm93LCAyNW1zIGFwYXJ0KSwgd2hpY2ggaW4gYSBuYXJyb3cgcGFuZWwgcmVhZHMgYXMgYSBmbGlja2VyXG4vLyByYXRoZXIgdGhhbiBhcyBhbiBhbmltYXRpb24uIEhlcmUgdGhlIHJvd3MgdGFrZSBsb25nZXIsIHN0YXJ0IGZ1cnRoZXIgYXBhcnQgYW5kXG4vLyB0cmF2ZWwgYSBsaXR0bGUgZnVydGhlciwgc28gaXQgZWFzZXMgaW4gaW5zdGVhZCBvZiBibGlua2luZy4gU2NvcGVkIHRvIHRoZSBwYW5lbCxcbi8vIHNvIGV2ZXJ5IG90aGVyIHRhYmxlIGtlZXBzIHRoZSBzaGFyZWQgdGltaW5nLiBbS2ltIDEwLjA4LjIwMjZdXG5Aa2V5ZnJhbWVzIG92LXNwbGl0LXJvdy1lbnRlciB7XG4gICAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTsgfVxuICAgIHRvICAgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IG5vbmU7IH1cbn1cblxuLm92LXNwbGl0LXBhbmVsIHtcbiAgICAucWRuYXByby10YWJsZS1saXN0IHRib2R5IHRyLmlzLWVudGVyaW5nLFxuICAgIC5xZG5hcHJvLXRhYmxlLWxpc3QgdGJvZHkgdHIuaXMtZW50ZXJpbmctZmxhdCB7XG4gICAgICAgIGFuaW1hdGlvbi1uYW1lOiBvdi1zcGxpdC1yb3ctZW50ZXI7XG4gICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMzIwbXM7XG4gICAgICAgIC8vIFF1aWNrIG9mZiB0aGUgbWFyaywgbG9uZyBzb2Z0IGxhbmRpbmcuXG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguMTYsIDEsIC4zLCAxKTtcbiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiBjYWxjKHZhcigtLXFkbmFwcm8tdGFibGUtZW50ZXItaSwgMCkgKiA0NW1zKTtcbiAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgICB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLm92LXNwbGl0LXBhbmVsIC5xZG5hcHJvLXRhYmxlLWxpc3QgdGJvZHkgdHIuaXMtZW50ZXJpbmcsXG4gICAgLm92LXNwbGl0LXBhbmVsIC5xZG5hcHJvLXRhYmxlLWxpc3QgdGJvZHkgdHIuaXMtZW50ZXJpbmctZmxhdCB7XG4gICAgICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICB9XG59XG5cbi8vIFVzZXMgdGhlIHNoYXJlZCBxZG5hcHJvLWVtcHR5LXN0YXRlIGNhcmQgaW4gaXRzIGBzdXJmYWNlPVwicGFnZVwiYCB2YXJpYW50LCBzb1xuLy8gdGhpcyByZWFkcyB0aGUgc2FtZSBhcyBldmVyeSBvdGhlciBlbXB0eSBzdGF0ZSBpbiB0aGUgcHJvZHVjdCBpbnN0ZWFkIG9mIGJlaW5nXG4vLyBhIG9uZS1vZmYgbGluZSBvZiBncmV5IHRleHQuIFRoaXMgd3JhcHBlciBvbmx5IGhhbmRsZXMgdGhlIGNlbnRlcmluZy5cbi5vdi1zcGxpdC1lbXB0eSB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLy8g4pSA4pSAIFNwbGl0IHNjcmVlbjogbmFycm93IHNjcmVlbnMga2VlcCBib3RoIHBhbmVscyBzaWRlIGJ5IHNpZGUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBCZWxvdyAkb3Ytc3BsaXQtYnJlYWtwb2ludCB0aGUgcGFuZWwgdXNlZCB0byBmbG9hdCBPVkVSIHRoZSBsZWZ0IHRhYmxlLiBUaGF0XG4vLyB3b3JrZWQgd2hpbGUgc3BsaXQgc2NyZWVuIHdhcyBzb21ldGhpbmcgeW91IHN3aXRjaGVkIG9uIGZvciBhIG1vbWVudDsgbm93IHRoYXRcbi8vIGl0IGlzIGFsd2F5cyBvbiwgYSBwZXJtYW5lbnQgb3ZlcmxheSB3b3VsZCBjb3ZlciB0aGUgdGFibGUgeW91IGNhbWUgZm9yLiBTbyB0aGVcbi8vIHBhbmVsIHN0YXlzIGJlc2lkZSB0aGUgdGFibGUgYXQgZXZlcnkgd2lkdGggYW5kIHNpbXBseSBnZXRzIG5hcnJvdywgd2hpY2ggaXNcbi8vIHdoYXQgS2ltIGFza2VkIGZvciBvbiAxNy4wOC4yMDI2IChcImFsdGlqZCB0b25lbiwgb29rIG9wIHNtYWxcIikuXG4vL1xuLy8gVGhlIGxlZnQgdGFibGUncyBvd24gbWluaW11bSBoYXMgdG8gZ2l2ZSB3YXkgaGVyZTogc2lkZSBieSBzaWRlLCA1NjAgKyAyODAgK1xuLy8gdGhlIGRpdmlkZXIgZG9lcyBub3QgZml0IHVuZGVyIHRoZSBicmVha3BvaW50LCBhbmQga2VlcGluZyBpdCB3b3VsZCBwdXNoIHRoZVxuLy8gcGFuZWwgb2ZmIHNjcmVlbiBpbnN0ZWFkIG9mIG5hcnJvd2luZyBpdC4gVGhlIGhlYWRlciBjb250cm9scyBpbnNpZGUgdGhhdCB0YWJsZVxuLy8gd3JhcCBpbiB0aGlzIHJhbmdlOyB0aGF0IGlzIHRoZSB0cmFkZSBLaW0gY2hvc2Ugb3ZlciBhbiBvdmVybGF5LlxuXG5AbWVkaWEgKG1heC13aWR0aDogJG92LXNwbGl0LWJyZWFrcG9pbnQpIHtcbiAgICAub3Ytcm9vdC5zcGxpdC1vcGVuIHtcbiAgICAgICAgLm92LWNvbnRlbnQgeyBtaW4td2lkdGg6IDA7IH1cblxuICAgICAgICAvLyAhaW1wb3J0YW50OiB0aGUgZHJhZy10by1yZXNpemUgSlMgd3JpdGVzIGFuIGlubGluZSB3aWR0aCBmb3IgdGhlIHdpZGVcbiAgICAgICAgLy8gbGF5b3V0LCBhbmQgdGhhdCBzdG9yZWQgd2lkdGggY2FuIGVhc2lseSBiZSB3aWRlciB0aGFuIGhhbGYgb2YgYSBzbWFsbFxuICAgICAgICAvLyBzY3JlZW4uIFVuZGVyIHRoZSBicmVha3BvaW50IHRoZSBwYW5lbCB0YWtlcyBhIHNoYXJlIG9mIHRoZSB3aWR0aFxuICAgICAgICAvLyBpbnN0ZWFkLCBzbyB0aGUgdGFibGUgYWx3YXlzIGtlZXBzIHRoZSBsYXJnZXIgaGFsZi5cbiAgICAgICAgLm92LXNwbGl0LXBhbmVsIHtcbiAgICAgICAgICAgIHdpZHRoOiBjbGFtcCgjeyRvdi1zcGxpdC1taW4td2lkdGh9LCAzOCUsIDQyMHB4KSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gX3NldHRpbmdzX2h1Yi5zY3NzXG4vL1xuLy8gVGhlIEluc3RlbGxpbmdlbiBodWIgKC92MS9zZXR0aW5ncyk6IGEgc2VhcmNoIGJhciBhYm92ZSBhIGdyaWQgb2Zcbi8vIHFkbmFwcm8taHViLXRpbGUuIFBhZ2UgbGF5b3V0IG9ubHkgLSB0aGUgdGlsZXMgYnJpbmcgdGhlaXIgb3duIGxvb2tzLCBzZWVcbi8vIGNvbXBvbmVudHMvdjIvaHViLXRpbGUuXG4vL1xuLy8gVGhlIHNlYXJjaCBpcyBhIHN0cmFpZ2h0IGNvcHkgb2YgdGhlIG9uZSBvbiBQcm9qZWN0ZW4gKHByb2plY3RzLXYyLmh0bWwnc1xuLy8gLnB2Mi1zZWFyY2gpOiB0aGUgc2FtZSBxZG5hcHJvLWlucHV0IHdpdGggdHlwZT1cImRlZmF1bHRcIiBzaXplPVwic21hbGxcIlxuLy8gaWNvbj1cIm1hZ25pZnlcIiwgYW5kIHRoZSBzYW1lIGZpeGVkIDM0MHB4IHNvIGl0IGRvZXMgbm90IHN0cmV0Y2ggYWNyb3NzIGEgd2lkZVxuLy8gc2NyZWVuLiBLaW0gYXNrZWQgZm9yIFwiYSBzbWFsbCBvbmUgbGlrZSBvbiBwcm9qZWN0c1wiIG9uIDA5LjA4LjIwMjYsIGFuZCB0d29cbi8vIHNlYXJjaCBiYXJzIHRoYXQgbG9vayBkaWZmZXJlbnQgb24gdHdvIGh1YiBwYWdlcyBpcyBleGFjdGx5IHRoZSBkcmlmdCB0aGlzXG4vLyBjb21wb25lbnQgd29yayBpcyBtZWFudCB0byBlbmQuXG5cbi8vIFRoZSBwYWdlIGl0c2VsZiBpcyB0aGUgcG9zaXRpb25pbmcgY29udGV4dCBmb3IgdGhlIHNlYXJjaCwgc2VlIGJlbG93LlxuLnNldHRpbmdzLWh1YiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vLyBUSEUgU0VBUkNIIFNIQVJFUyBBIExJTkUgV0lUSCBUSEUgRklSU1QgSEVBRElORyAoS2ltIDEwLjA4LjIwMjYsIHRvIHNhdmUgaGVpZ2h0KS5cbi8vIEl0IGlzIGxpZnRlZCBvdXQgb2YgdGhlIGZsb3cgcmF0aGVyIHRoYW4gbW92ZWQgaW50byB0aGF0IGhlYWRpbmcncyBtYXJrdXAsIGJlY2F1c2Vcbi8vIHRoZSBmaXJzdCBibG9jayBpcyBleGFjdGx5IHdoYXQgdGhlIGZpbHRlciBoaWRlcyB3aGVuIG5vdGhpbmcgaW4gaXQgbWF0Y2hlcyAtIHRoZVxuLy8gc2VhcmNoIHdvdWxkIGRpc2FwcGVhciB3aXRoIGl0LCBhbmQgeW91IHdvdWxkIGJlIHN0dWNrIHdpdGggYSBmaWx0ZXJlZCBwYWdlIGFuZCBub1xuLy8gd2F5IHRvIGNsZWFyIHRoZSBmaWx0ZXIuIE91dCBvZiB0aGUgZmxvdyBpdCBzdXJ2aXZlcyB3aGF0ZXZlciB0aGUgZmlsdGVyIGRvZXMuXG4vL1xuLy8gVGhlIHRyYWRlLW9mZiBpcyB0aGF0IHRoZSBzZWFyY2ggbm8gbG9uZ2VyIHJlc2VydmVzIGl0cyBvd24gaGVpZ2h0LCBzbyB0aGUgZmlyc3Rcbi8vIGhlYWRpbmcgaGFzIHRvIGxlYXZlIHJvb20gZm9yIGl0OiBzZWUgLnNldHRpbmdzLWh1Yl9fYmxvY2s6Zmlyc3QtY2hpbGQgYmVsb3cuXG4uc2V0dGluZ3MtaHViX190b29sYmFyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi8vIEhlYWRpbmdzLiBUaGUgZmlyc3Qgb25lIGxpbmVzIHVwIHdpdGggdGhlIHNlYXJjaDsgdGhlIHJlc3QganVzdCBzZXBhcmF0ZSBibG9ja3MuXG4vLyBUaGVzZSB1c2VkIHRvIGJlIGJvb3RzdHJhcCdzIHB0LTMgcGItMSBweC0zIHN0cmFpZ2h0IG9uIHRoZSBlbGVtZW50OyBzYW1lIHNwYWNpbmcsXG4vLyBub3cgaW4gb25lIHBsYWNlIHNvIGl0IGNhbiBiZSB0dW5lZCB3aXRob3V0IHRvdWNoaW5nIHRoZSBUd2lnLlxuLnNldHRpbmdzLWh1Yl9faGVhZGluZyB7XG4gICAgcGFkZGluZzogMTZweCAxNnB4IDRweDtcbn1cblxuLy8gVGhlIGZpcnN0IGhlYWRpbmcgaXMgdmVydGljYWxseSBjZW50cmVkIGFnYWluc3QgdGhlIDQwcHggc2VhcmNoIGZpZWxkIG5leHQgdG8gaXQsXG4vLyBhbmQgaXQgbXVzdCBub3QgcnVuIHVuZGVybmVhdGggdGhhdCBmaWVsZCBvbiBhIG5hcnJvdyB3aW5kb3cuXG4uc2V0dGluZ3MtaHViX19ibG9jazpmaXJzdC1vZi10eXBlIC5zZXR0aW5ncy1odWJfX2hlYWRpbmcge1xuICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzNjBweDsgLy8gMzQwcHggc2VhcmNoICsgMjBweCBicmVhdGhpbmcgcm9vbVxufVxuXG4vLyBVbmRlciByb3VnaGx5IGEgdGFibGV0IHRoZSBzZWFyY2ggd291bGQgc2l0IG9uIHRvcCBvZiB0aGUgaGVhZGluZywgc28gdGhlcmUgaXQgZ29lc1xuLy8gYmFjayB0byBpdHMgb3duIGxpbmUgYWJvdmUgdGhlIHRpbGVzLlxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICAgLnNldHRpbmdzLWh1Yl9fdG9vbGJhciB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICB9XG5cbiAgICAuc2V0dGluZ3MtaHViX19ibG9jazpmaXJzdC1vZi10eXBlIC5zZXR0aW5ncy1odWJfX2hlYWRpbmcge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xuICAgIH1cbn1cblxuLnNldHRpbmdzLWh1Yl9fc2VhcmNoIHtcbiAgICAvLyBGaXhlZCwgbm90IGEgcGVyY2VudGFnZTogc2FtZSByZWFzb25pbmcgYW5kIHNhbWUgbnVtYmVyIGFzIFByb2plY3RlbidzXG4gICAgLy8gLnB2Mi1zZWFyY2ggLSBhIHNlYXJjaCB0aGF0IGdyb3dzIHdpdGggdGhlIHZpZXdwb3J0IGxvb2tzIGxpa2UgYSBmb3JtIGZpZWxkXG4gICAgLy8gYnkgdGhlIHRpbWUgeW91IGFyZSBvbiBhIDI3IGluY2ggc2NyZWVuLlxuICAgIHdpZHRoOiAzNDBweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgZmxleDogMCAwIGF1dG87XG59XG5cbi8vIEEgYmxvY2sgaXMgb25lIGhlYWRpbmcgcGx1cyBpdHMgcm93IG9mIHRpbGVzLiBKUyBoaWRlcyB0aGUgd2hvbGUgdGhpbmcgd2hlbiBhXG4vLyBzZWFyY2ggbGVhdmVzIG5vdGhpbmcgaW4gaXQsIHNvIHRoZSBwYWdlIG5ldmVyIHNob3dzIGEgaGVhZGluZyB3aXRoIGFuIGVtcHR5XG4vLyBzcGFjZSB1bmRlciBpdC5cbi8vXG4vLyBCb3RoIHJ1bGVzIGFyZSBzcGVsbGVkIG91dCByYXRoZXIgdGhhbiByZWx5aW5nIG9uIHRoZSBicm93c2VyJ3Mgb3duXG4vLyBbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmUgfTogdGhhdCBpcyBhIHVzZXItYWdlbnQgcnVsZSBhbmQgbG9zZXMgdG8gYW55XG4vLyBzdHlsZXNoZWV0IHJ1bGUgdGhhdCBzZXRzIGRpc3BsYXkgb24gdGhlIHNhbWUgZWxlbWVudCwgd2hpY2ggaXMgZXhhY3RseSB3aGF0XG4vLyBib290c3RyYXAncyBncmlkIGNsYXNzZXMgZG8gdG8gYSBjb2x1bW4uIENoZWFwIGluc3VyYW5jZSBhZ2FpbnN0IGEgZmlsdGVyIHRoYXRcbi8vIHNpbGVudGx5IGRvZXMgbm90aGluZy5cbi5zZXR0aW5ncy1odWJfX2Jsb2NrW2hpZGRlbl0sXG4uc2V0dGluZ3MtaHViX19jZWxsW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zZXR0aW5ncy1odWJfX2VtcHR5IHtcbiAgICBwYWRkaW5nOiA0MHB4IDE2cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLnNldHRpbmdzLWh1Yl9fZW1wdHktdGl0bGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYTFmNGQpO1xufVxuIiwiLmFsZXJ0Lm1kaTo6YmVmb3JlLFxuLmJyZWFkY3J1bWIgLm1kaTo6YmVmb3JlLFxuLmJ0bi5tZGk6OmJlZm9yZSxcbi5jYXJkLXRpdGxlLm1kaTo6YmVmb3JlLFxuLmNhcmQtc3VidGl0bGUubWRpOjpiZWZvcmUsXG4uY2FyZC1saW5rLm1kaTo6YmVmb3JlLFxuLmRyb3Bkb3duLWl0ZW0ubWRpOjpiZWZvcmUsXG4ubGlzdC1ncm91cC1pdGVtLm1kaTo6YmVmb3JlLFxuLm5hdi1saW5rLm1kaTo6YmVmb3JlIHtcbiAgICBmb250LXNpemU6IDEuMjVlbTtcbiAgICBsaW5lLWhlaWdodDogaW5pdGlhbDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjA5cmVtO1xufVxuLmFsZXJ0Lm1kaTo6YmVmb3JlLFxuLmJyZWFkY3J1bWIgLm1kaTpub3QoOmVtcHR5KTo6YmVmb3JlLFxuLmJ0bi5tZGk6bm90KDplbXB0eSk6OmJlZm9yZSxcbi5jYXJkLXRpdGxlLm1kaTpub3QoOmVtcHR5KTo6YmVmb3JlLFxuLmNhcmQtc3VidGl0bGUubWRpOm5vdCg6ZW1wdHkpOjpiZWZvcmUsXG4uY2FyZC1saW5rLm1kaTpub3QoOmVtcHR5KTo6YmVmb3JlLFxuLmRyb3Bkb3duLWl0ZW0ubWRpOm5vdCg6ZW1wdHkpOjpiZWZvcmUsXG4ubmF2LWxpbmsubWRpOm5vdCg6ZW1wdHkpOjpiZWZvcmUge1xuICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbn1cbi5saXN0LWdyb3VwLWl0ZW0ubWRpOm5vdCg6ZW1wdHkpOjpiZWZvcmUge1xuICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xufVxuLmRyb3Bkb3duLWl0ZW0ubWRpOm5vdCg6ZW1wdHkpOjpiZWZvcmUge1xuICAgIG1hcmdpbi1sZWZ0OiAtMC43NXJlbTtcbn1cbi5hbGVydC5tZGk6OmJlZm9yZSxcbi5saXN0LWdyb3VwLWl0ZW0ubWRpOm5vdCg6ZW1wdHkpOjpiZWZvcmUge1xuICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xufVxuLm1vZGFsLXRpdGxlLm1kaTo6YmVmb3JlIHtcbiAgICBmb250LXNpemU6IDEuNWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAwLjU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC4yNnJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbn0iLCJmaWVsZHNldFtkaXNhYmxlZF0gLm11bHRpc2VsZWN0e3BvaW50ZXItZXZlbnRzOm5vbmV9Lm11bHRpc2VsZWN0X19zcGlubmVye3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjFweDt0b3A6MXB4O3dpZHRoOjQ4cHg7aGVpZ2h0OjM1cHg7YmFja2dyb3VuZDojZmZmO2Rpc3BsYXk6YmxvY2t9Lm11bHRpc2VsZWN0X19zcGlubmVyOmFmdGVyLC5tdWx0aXNlbGVjdF9fc3Bpbm5lcjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDpcIlwiO3RvcDo1MCU7bGVmdDo1MCU7bWFyZ2luOi04cHggMCAwIC04cHg7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtib3JkZXItcmFkaXVzOjEwMCU7Ym9yZGVyOjJweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItdG9wLWNvbG9yOiM0MWI4ODM7Ym94LXNoYWRvdzowIDAgMCAxcHggdHJhbnNwYXJlbnR9Lm11bHRpc2VsZWN0X19zcGlubmVyOmJlZm9yZXthbmltYXRpb246c3Bpbm5pbmcgMi40cyBjdWJpYy1iZXppZXIoLjQxLC4yNiwuMiwuNjIpO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGV9Lm11bHRpc2VsZWN0X19zcGlubmVyOmFmdGVye2FuaW1hdGlvbjpzcGlubmluZyAyLjRzIGN1YmljLWJlemllciguNTEsLjA5LC4yMSwuOCk7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZX0ubXVsdGlzZWxlY3RfX2xvYWRpbmctZW50ZXItYWN0aXZlLC5tdWx0aXNlbGVjdF9fbG9hZGluZy1sZWF2ZS1hY3RpdmV7dHJhbnNpdGlvbjpvcGFjaXR5IC40cyBlYXNlLWluLW91dDtvcGFjaXR5OjF9Lm11bHRpc2VsZWN0X19sb2FkaW5nLWVudGVyLC5tdWx0aXNlbGVjdF9fbG9hZGluZy1sZWF2ZS1hY3RpdmV7b3BhY2l0eTowfS5tdWx0aXNlbGVjdCwubXVsdGlzZWxlY3RfX2lucHV0LC5tdWx0aXNlbGVjdF9fc2luZ2xle2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOjE2cHg7LW1zLXRvdWNoLWFjdGlvbjptYW5pcHVsYXRpb247dG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbn0ubXVsdGlzZWxlY3R7Ym94LXNpemluZzpjb250ZW50LWJveDtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7bWluLWhlaWdodDo0MHB4O3RleHQtYWxpZ246bGVmdDtjb2xvcjojMzU0OTVlfS5tdWx0aXNlbGVjdCAqe2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubXVsdGlzZWxlY3Q6Zm9jdXN7b3V0bGluZTpub25lfS5tdWx0aXNlbGVjdC0tZGlzYWJsZWR7YmFja2dyb3VuZDojZWRlZGVkO3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTouNn0ubXVsdGlzZWxlY3QtLWFjdGl2ZXt6LWluZGV4OjUwfS5tdWx0aXNlbGVjdC0tYWN0aXZlOm5vdCgubXVsdGlzZWxlY3QtLWFib3ZlKSAubXVsdGlzZWxlY3RfX2N1cnJlbnQsLm11bHRpc2VsZWN0LS1hY3RpdmU6bm90KC5tdWx0aXNlbGVjdC0tYWJvdmUpIC5tdWx0aXNlbGVjdF9faW5wdXQsLm11bHRpc2VsZWN0LS1hY3RpdmU6bm90KC5tdWx0aXNlbGVjdC0tYWJvdmUpIC5tdWx0aXNlbGVjdF9fdGFnc3tib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MH0ubXVsdGlzZWxlY3QtLWFjdGl2ZSAubXVsdGlzZWxlY3RfX3NlbGVjdHt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9Lm11bHRpc2VsZWN0LS1hYm92ZS5tdWx0aXNlbGVjdC0tYWN0aXZlIC5tdWx0aXNlbGVjdF9fY3VycmVudCwubXVsdGlzZWxlY3QtLWFib3ZlLm11bHRpc2VsZWN0LS1hY3RpdmUgLm11bHRpc2VsZWN0X19pbnB1dCwubXVsdGlzZWxlY3QtLWFib3ZlLm11bHRpc2VsZWN0LS1hY3RpdmUgLm11bHRpc2VsZWN0X190YWdze2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfS5tdWx0aXNlbGVjdF9faW5wdXQsLm11bHRpc2VsZWN0X19zaW5nbGV7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWluLWhlaWdodDoyMHB4O2xpbmUtaGVpZ2h0OjIwcHg7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czo1cHg7YmFja2dyb3VuZDojZmZmO3BhZGRpbmc6MCAwIDAgNXB4O3dpZHRoOjEwMCU7dHJhbnNpdGlvbjpib3JkZXIgLjFzIGVhc2U7Ym94LXNpemluZzpib3JkZXItYm94O21hcmdpbi1ib3R0b206OHB4O3ZlcnRpY2FsLWFsaWduOnRvcH0ubXVsdGlzZWxlY3RfX2lucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcntjb2xvcjojMzU0OTVlfS5tdWx0aXNlbGVjdF9faW5wdXQ6OnBsYWNlaG9sZGVye2NvbG9yOiMzNTQ5NWV9Lm11bHRpc2VsZWN0X190YWd+Lm11bHRpc2VsZWN0X19pbnB1dCwubXVsdGlzZWxlY3RfX3RhZ34ubXVsdGlzZWxlY3RfX3NpbmdsZXt3aWR0aDphdXRvfS5tdWx0aXNlbGVjdF9faW5wdXQ6aG92ZXIsLm11bHRpc2VsZWN0X19zaW5nbGU6aG92ZXJ7Ym9yZGVyLWNvbG9yOiNjZmNmY2Z9Lm11bHRpc2VsZWN0X19pbnB1dDpmb2N1cywubXVsdGlzZWxlY3RfX3NpbmdsZTpmb2N1c3tib3JkZXItY29sb3I6I2E4YThhODtvdXRsaW5lOm5vbmV9Lm11bHRpc2VsZWN0X19zaW5nbGV7cGFkZGluZy1sZWZ0OjVweDttYXJnaW4tYm90dG9tOjhweH0ubXVsdGlzZWxlY3RfX3RhZ3Mtd3JhcHtkaXNwbGF5OmlubGluZX0ubXVsdGlzZWxlY3RfX3RhZ3N7bWluLWhlaWdodDo0MHB4O2Rpc3BsYXk6YmxvY2s7cGFkZGluZzo4cHggNDBweCAwIDhweDtib3JkZXItcmFkaXVzOjVweDtib3JkZXI6MXB4IHNvbGlkICNlOGU4ZTg7YmFja2dyb3VuZDojZmZmO2ZvbnQtc2l6ZToxNHB4fS5tdWx0aXNlbGVjdF9fdGFne3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6NHB4IDI2cHggNHB4IDEwcHg7Ym9yZGVyLXJhZGl1czo1cHg7bWFyZ2luLXJpZ2h0OjEwcHg7Y29sb3I6I2ZmZjtsaW5lLWhlaWdodDoxO2JhY2tncm91bmQ6IzQxYjg4MzttYXJnaW4tYm90dG9tOjVweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO21heC13aWR0aDoxMDAlO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lm11bHRpc2VsZWN0X190YWctaWNvbntjdXJzb3I6cG9pbnRlcjttYXJnaW4tbGVmdDo3cHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDtib3R0b206MDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7d2lkdGg6MjJweDt0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDoyMnB4O3RyYW5zaXRpb246YWxsIC4ycyBlYXNlO2JvcmRlci1yYWRpdXM6NXB4fS5tdWx0aXNlbGVjdF9fdGFnLWljb246YWZ0ZXJ7Y29udGVudDpcIlxcRDdcIjtjb2xvcjojMjY2ZDRkO2ZvbnQtc2l6ZToxNHB4fS5tdWx0aXNlbGVjdF9fdGFnLWljb246Zm9jdXMsLm11bHRpc2VsZWN0X190YWctaWNvbjpob3ZlcntiYWNrZ3JvdW5kOiMzNjlhNmV9Lm11bHRpc2VsZWN0X190YWctaWNvbjpmb2N1czphZnRlciwubXVsdGlzZWxlY3RfX3RhZy1pY29uOmhvdmVyOmFmdGVye2NvbG9yOiNmZmZ9Lm11bHRpc2VsZWN0X19jdXJyZW50e21pbi1oZWlnaHQ6NDBweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzo4cHggMzBweCAwIDEycHg7d2hpdGUtc3BhY2U6bm93cmFwO2JvcmRlci1yYWRpdXM6NXB4O2JvcmRlcjoxcHggc29saWQgI2U4ZThlOH0ubXVsdGlzZWxlY3RfX2N1cnJlbnQsLm11bHRpc2VsZWN0X19zZWxlY3R7bGluZS1oZWlnaHQ6MTZweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpibG9jazttYXJnaW46MDt0ZXh0LWRlY29yYXRpb246bm9uZTtjdXJzb3I6cG9pbnRlcn0ubXVsdGlzZWxlY3RfX3NlbGVjdHtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo0MHB4O2hlaWdodDozOHB4O3JpZ2h0OjFweDt0b3A6MXB4O3BhZGRpbmc6NHB4IDhweDt0ZXh0LWFsaWduOmNlbnRlcjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMgZWFzZX0ubXVsdGlzZWxlY3RfX3NlbGVjdDpiZWZvcmV7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6MDt0b3A6NjUlO2NvbG9yOiM5OTk7bWFyZ2luLXRvcDo0cHg7Ym9yZGVyLWNvbG9yOiM5OTkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDo1cHggNXB4IDA7Y29udGVudDpcIlwifS5tdWx0aXNlbGVjdF9fcGxhY2Vob2xkZXJ7Y29sb3I6I2FkYWRhZDtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tYm90dG9tOjEwcHg7cGFkZGluZy10b3A6MnB4fS5tdWx0aXNlbGVjdC0tYWN0aXZlIC5tdWx0aXNlbGVjdF9fcGxhY2Vob2xkZXJ7ZGlzcGxheTpub25lfS5tdWx0aXNlbGVjdF9fY29udGVudC13cmFwcGVye3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7YmFja2dyb3VuZDojZmZmO3dpZHRoOjEwMCU7bWF4LWhlaWdodDoyNDBweDtvdmVyZmxvdzphdXRvO2JvcmRlcjoxcHggc29saWQgI2U4ZThlODtib3JkZXItdG9wOm5vbmU7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo1cHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NXB4O3otaW5kZXg6NTA7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9Lm11bHRpc2VsZWN0X19jb250ZW50e2xpc3Qtc3R5bGU6bm9uZTtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjA7bWFyZ2luOjA7bWluLXdpZHRoOjEwMCU7dmVydGljYWwtYWxpZ246dG9wfS5tdWx0aXNlbGVjdC0tYWJvdmUgLm11bHRpc2VsZWN0X19jb250ZW50LXdyYXBwZXJ7Ym90dG9tOjEwMCU7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czo1cHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NXB4O2JvcmRlci1ib3R0b206bm9uZTtib3JkZXItdG9wOjFweCBzb2xpZCAjZThlOGU4fS5tdWx0aXNlbGVjdF9fY29udGVudDo6d2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmV9Lm11bHRpc2VsZWN0X19lbGVtZW50e2Rpc3BsYXk6YmxvY2t9Lm11bHRpc2VsZWN0X19vcHRpb257ZGlzcGxheTpibG9jaztwYWRkaW5nOjEycHg7bWluLWhlaWdodDo0MHB4O2xpbmUtaGVpZ2h0OjE2cHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dGV4dC10cmFuc2Zvcm06bm9uZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7cG9zaXRpb246cmVsYXRpdmU7Y3Vyc29yOnBvaW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwfS5tdWx0aXNlbGVjdF9fb3B0aW9uOmFmdGVye3RvcDowO3JpZ2h0OjA7cG9zaXRpb246YWJzb2x1dGU7bGluZS1oZWlnaHQ6NDBweDtwYWRkaW5nLXJpZ2h0OjEycHg7cGFkZGluZy1sZWZ0OjIwcHg7Zm9udC1zaXplOjEzcHh9Lm11bHRpc2VsZWN0X19vcHRpb24tLWhpZ2hsaWdodHtiYWNrZ3JvdW5kOiM0MWI4ODM7b3V0bGluZTpub25lO2NvbG9yOiNmZmZ9Lm11bHRpc2VsZWN0X19vcHRpb24tLWhpZ2hsaWdodDphZnRlcntjb250ZW50OmF0dHIoZGF0YS1zZWxlY3QpO2JhY2tncm91bmQ6IzQxYjg4Mztjb2xvcjojZmZmfS5tdWx0aXNlbGVjdF9fb3B0aW9uLS1zZWxlY3RlZHtiYWNrZ3JvdW5kOiNmM2YzZjM7Y29sb3I6IzM1NDk1ZTtmb250LXdlaWdodDo3MDB9Lm11bHRpc2VsZWN0X19vcHRpb24tLXNlbGVjdGVkOmFmdGVye2NvbnRlbnQ6YXR0cihkYXRhLXNlbGVjdGVkKTtjb2xvcjpzaWx2ZXJ9Lm11bHRpc2VsZWN0X19vcHRpb24tLXNlbGVjdGVkLm11bHRpc2VsZWN0X19vcHRpb24tLWhpZ2hsaWdodHtiYWNrZ3JvdW5kOiNmZjZhNmE7Y29sb3I6I2ZmZn0ubXVsdGlzZWxlY3RfX29wdGlvbi0tc2VsZWN0ZWQubXVsdGlzZWxlY3RfX29wdGlvbi0taGlnaGxpZ2h0OmFmdGVye2JhY2tncm91bmQ6I2ZmNmE2YTtjb250ZW50OmF0dHIoZGF0YS1kZXNlbGVjdCk7Y29sb3I6I2ZmZn0ubXVsdGlzZWxlY3QtLWRpc2FibGVkIC5tdWx0aXNlbGVjdF9fY3VycmVudCwubXVsdGlzZWxlY3QtLWRpc2FibGVkIC5tdWx0aXNlbGVjdF9fc2VsZWN0e2JhY2tncm91bmQ6I2VkZWRlZDtjb2xvcjojYTZhNmE2fS5tdWx0aXNlbGVjdF9fb3B0aW9uLS1kaXNhYmxlZHtiYWNrZ3JvdW5kOiNlZGVkZWQhaW1wb3J0YW50O2NvbG9yOiNhNmE2YTYhaW1wb3J0YW50O2N1cnNvcjp0ZXh0O3BvaW50ZXItZXZlbnRzOm5vbmV9Lm11bHRpc2VsZWN0X19vcHRpb24tLWdyb3Vwe2JhY2tncm91bmQ6I2VkZWRlZDtjb2xvcjojMzU0OTVlfS5tdWx0aXNlbGVjdF9fb3B0aW9uLS1ncm91cC5tdWx0aXNlbGVjdF9fb3B0aW9uLS1oaWdobGlnaHR7YmFja2dyb3VuZDojMzU0OTVlO2NvbG9yOiNmZmZ9Lm11bHRpc2VsZWN0X19vcHRpb24tLWdyb3VwLm11bHRpc2VsZWN0X19vcHRpb24tLWhpZ2hsaWdodDphZnRlcntiYWNrZ3JvdW5kOiMzNTQ5NWV9Lm11bHRpc2VsZWN0X19vcHRpb24tLWRpc2FibGVkLm11bHRpc2VsZWN0X19vcHRpb24tLWhpZ2hsaWdodHtiYWNrZ3JvdW5kOiNkZWRlZGV9Lm11bHRpc2VsZWN0X19vcHRpb24tLWdyb3VwLXNlbGVjdGVkLm11bHRpc2VsZWN0X19vcHRpb24tLWhpZ2hsaWdodHtiYWNrZ3JvdW5kOiNmZjZhNmE7Y29sb3I6I2ZmZn0ubXVsdGlzZWxlY3RfX29wdGlvbi0tZ3JvdXAtc2VsZWN0ZWQubXVsdGlzZWxlY3RfX29wdGlvbi0taGlnaGxpZ2h0OmFmdGVye2JhY2tncm91bmQ6I2ZmNmE2YTtjb250ZW50OmF0dHIoZGF0YS1kZXNlbGVjdCk7Y29sb3I6I2ZmZn0ubXVsdGlzZWxlY3QtZW50ZXItYWN0aXZlLC5tdWx0aXNlbGVjdC1sZWF2ZS1hY3RpdmV7dHJhbnNpdGlvbjphbGwgLjE1cyBlYXNlfS5tdWx0aXNlbGVjdC1lbnRlciwubXVsdGlzZWxlY3QtbGVhdmUtYWN0aXZle29wYWNpdHk6MH0ubXVsdGlzZWxlY3RfX3N0cm9uZ3ttYXJnaW4tYm90dG9tOjhweDtsaW5lLWhlaWdodDoyMHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOnRvcH1bZGlyPXJ0bF0gLm11bHRpc2VsZWN0e3RleHQtYWxpZ246cmlnaHR9W2Rpcj1ydGxdIC5tdWx0aXNlbGVjdF9fc2VsZWN0e3JpZ2h0OmF1dG87bGVmdDoxcHh9W2Rpcj1ydGxdIC5tdWx0aXNlbGVjdF9fdGFnc3twYWRkaW5nOjhweCA4cHggMCA0MHB4fVtkaXI9cnRsXSAubXVsdGlzZWxlY3RfX2NvbnRlbnR7dGV4dC1hbGlnbjpyaWdodH1bZGlyPXJ0bF0gLm11bHRpc2VsZWN0X19vcHRpb246YWZ0ZXJ7cmlnaHQ6YXV0bztsZWZ0OjB9W2Rpcj1ydGxdIC5tdWx0aXNlbGVjdF9fY2xlYXJ7cmlnaHQ6YXV0bztsZWZ0OjEycHh9W2Rpcj1ydGxdIC5tdWx0aXNlbGVjdF9fc3Bpbm5lcntyaWdodDphdXRvO2xlZnQ6MXB4fUBrZXlmcmFtZXMgc3Bpbm5pbmd7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwKX10b3t0cmFuc2Zvcm06cm90YXRlKDJ0dXJuKX19XG5cbi8vIEFkanVzdG1lbnRzXG4ubXVsdGlzZWxlY3RfX3RhZ3Mge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctdG9wOiAuMzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogLjc1cmVtO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBjb2xvcjogIzQ5NTA1NztcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjZWQ0ZGE7XG4gICAgYm9yZGVyLXJhZGl1czogLjI1cmVtO1xuICAgIG1pbi1oZWlnaHQ6IGNhbGMoMi4yNXJlbSArIDJweCk7XG59XG5cbi5tdWx0aXNlbGVjdF9fc2luZ2xlLFxuLm11bHRpc2VsZWN0X19wbGFjZWhvbGRlcixcbi5tdWx0aXNlbGVjdF9faW5wdXQge1xuICAgIGNvbG9yOiAjNDk1MDU3O1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IC4zNzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLmNhcmQtcnVsZXMge1xuICAgIC5tdWx0aXNlbGVjdF9fdGFncyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzVhODNlYztcbiAgICB9XG4gICAgLm11bHRpc2VsZWN0X190YWcge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZThlZWZjO1xuICAgICAgICBjb2xvcjogIzQ5NTA1NztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzVhODNlYztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgfVxuICAgIC5tdWx0aXNlbGVjdF9fdGFnLWljb246YWZ0ZXIge1xuICAgICAgICBjb2xvcjogIzQ5NTA1NztcbiAgICB9XG4gICAgLm11bHRpc2VsZWN0X190YWctaWNvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjNWE4M2VjO1xuICAgICAgICAgICAgY29sb3I6ICM0OTUwNTc7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgIFxuICAgIH1cbiAgICAubXVsdGlzZWxlY3QtLWFib3ZlIFxuICAgIC5tdWx0aXNlbGVjdF9fY29udGVudC13cmFwcGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNWE4M2VjO1xuICAgICAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgfVxuICAgIC5tdWx0aXNlbGVjdF9fb3B0aW9uLS1oaWdobGlnaHQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjNDRiY2FiO1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICM0NGJjYWI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLm11bHRpc2VsZWN0X19vcHRpb24tLXNlbGVjdGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzVhODNlYztcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2Q2M2I0OTtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNkNjNiNDk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjNWE4M2VjO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiJGNyb3BwZXItaW1hZ2UtcGF0aDogJy4uL2ltYWdlcycgIWRlZmF1bHQ7XG5cbi5jcm9wcGVyIHtcbiAgJi1jb250YWluZXIge1xuICAgIGRpcmVjdGlvbjogbHRyO1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG91Y2gtYWN0aW9uOiBub25lO1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgIGltZyB7XG4gICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGltYWdlLW9yaWVudGF0aW9uOiAwZGVnO1xuICAgICAgbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICBtaW4taGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gICYtd3JhcC1ib3gsXG4gICYtY2FudmFzLFxuICAmLWRyYWctYm94LFxuICAmLWNyb3AtYm94LFxuICAmLW1vZGFsIHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwO1xuICB9XG5cbiAgJi13cmFwLWJveCxcbiAgJi1jYW52YXMge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmLWRyYWctYm94IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAmLW1vZGFsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxuXG4gICYtdmlldy1ib3gge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdXRsaW5lOiAxcHggc29saWQgIzM5ZjtcbiAgICBvdXRsaW5lLWNvbG9yOiByZ2JhKDUxLCAxNTMsIDI1NSwgMC43NSk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gICYtZGFzaGVkIHtcbiAgICBib3JkZXI6IDAgZGFzaGVkICNlZWU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICYuZGFzaGVkLWgge1xuICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICAgICAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xuICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLyAzKTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IGNhbGMoMTAwJSAvIDMpO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJi5kYXNoZWQtdiB7XG4gICAgICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiBjYWxjKDEwMCUgLyAzKTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAzKTtcbiAgICB9XG4gIH1cblxuICAmLWNlbnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBvcGFjaXR5OiAwLjc1O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB3aWR0aDogMDtcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICAgICAgY29udGVudDogJyAnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGhlaWdodDogMXB4O1xuICAgICAgbGVmdDogLTNweDtcbiAgICAgIHRvcDogMDtcbiAgICAgIHdpZHRoOiA3cHg7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgaGVpZ2h0OiA3cHg7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdG9wOiAtM3B4O1xuICAgICAgd2lkdGg6IDFweDtcbiAgICB9XG4gIH1cblxuICAmLWZhY2UsXG4gICYtbGluZSxcbiAgJi1wb2ludCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9wYWNpdHk6IDAuMTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAmLWZhY2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gIH1cblxuICAmLWxpbmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzOWY7XG5cbiAgICAmLmxpbmUtZSB7XG4gICAgICBjdXJzb3I6IGV3LXJlc2l6ZTtcbiAgICAgIHJpZ2h0OiAtM3B4O1xuICAgICAgdG9wOiAwO1xuICAgICAgd2lkdGg6IDVweDtcbiAgICB9XG5cbiAgICAmLmxpbmUtbiB7XG4gICAgICBjdXJzb3I6IG5zLXJlc2l6ZTtcbiAgICAgIGhlaWdodDogNXB4O1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRvcDogLTNweDtcbiAgICB9XG5cbiAgICAmLmxpbmUtdyB7XG4gICAgICBjdXJzb3I6IGV3LXJlc2l6ZTtcbiAgICAgIGxlZnQ6IC0zcHg7XG4gICAgICB0b3A6IDA7XG4gICAgICB3aWR0aDogNXB4O1xuICAgIH1cblxuICAgICYubGluZS1zIHtcbiAgICAgIGJvdHRvbTogLTNweDtcbiAgICAgIGN1cnNvcjogbnMtcmVzaXplO1xuICAgICAgaGVpZ2h0OiA1cHg7XG4gICAgICBsZWZ0OiAwO1xuICAgIH1cbiAgfVxuXG4gICYtcG9pbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzOWY7XG4gICAgaGVpZ2h0OiA1cHg7XG4gICAgb3BhY2l0eTogMC43NTtcbiAgICB3aWR0aDogNXB4O1xuXG4gICAgJi5wb2ludC1lIHtcbiAgICAgIGN1cnNvcjogZXctcmVzaXplO1xuICAgICAgbWFyZ2luLXRvcDogLTNweDtcbiAgICAgIHJpZ2h0OiAtM3B4O1xuICAgICAgdG9wOiA1MCU7XG4gICAgfVxuXG4gICAgJi5wb2ludC1uIHtcbiAgICAgIGN1cnNvcjogbnMtcmVzaXplO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0zcHg7XG4gICAgICB0b3A6IC0zcHg7XG4gICAgfVxuXG4gICAgJi5wb2ludC13IHtcbiAgICAgIGN1cnNvcjogZXctcmVzaXplO1xuICAgICAgbGVmdDogLTNweDtcbiAgICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgICB0b3A6IDUwJTtcbiAgICB9XG5cbiAgICAmLnBvaW50LXMge1xuICAgICAgYm90dG9tOiAtM3B4O1xuICAgICAgY3Vyc29yOiBzLXJlc2l6ZTtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtM3B4O1xuICAgIH1cblxuICAgICYucG9pbnQtbmUge1xuICAgICAgY3Vyc29yOiBuZXN3LXJlc2l6ZTtcbiAgICAgIHJpZ2h0OiAtM3B4O1xuICAgICAgdG9wOiAtM3B4O1xuICAgIH1cblxuICAgICYucG9pbnQtbncge1xuICAgICAgY3Vyc29yOiBud3NlLXJlc2l6ZTtcbiAgICAgIGxlZnQ6IC0zcHg7XG4gICAgICB0b3A6IC0zcHg7XG4gICAgfVxuXG4gICAgJi5wb2ludC1zdyB7XG4gICAgICBib3R0b206IC0zcHg7XG4gICAgICBjdXJzb3I6IG5lc3ctcmVzaXplO1xuICAgICAgbGVmdDogLTNweDtcbiAgICB9XG5cbiAgICAmLnBvaW50LXNlIHtcbiAgICAgIGJvdHRvbTogLTNweDtcbiAgICAgIGN1cnNvcjogbndzZS1yZXNpemU7XG4gICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgcmlnaHQ6IC0zcHg7XG4gICAgICB3aWR0aDogMjBweDtcblxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIGhlaWdodDogMTVweDtcbiAgICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgICAgIGhlaWdodDogNXB4O1xuICAgICAgICBvcGFjaXR5OiAwLjc1O1xuICAgICAgICB3aWR0aDogNXB4O1xuICAgICAgfVxuICAgIH1cblxuICAgICYucG9pbnQtc2U6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzlmO1xuICAgICAgYm90dG9tOiAtNTAlO1xuICAgICAgY29udGVudDogJyAnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDIwMCU7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IC01MCU7XG4gICAgICB3aWR0aDogMjAwJTtcbiAgICB9XG4gIH1cblxuICAmLWludmlzaWJsZSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gICYtYmcge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skY3JvcHBlci1pbWFnZS1wYXRofS9iZy5wbmcnKTtcbiAgfVxuXG4gICYtaGlkZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMDtcbiAgfVxuXG4gICYtaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAmLW1vdmUge1xuICAgIGN1cnNvcjogbW92ZTtcbiAgfVxuXG4gICYtY3JvcCB7XG4gICAgY3Vyc29yOiBjcm9zc2hhaXI7XG4gIH1cblxuICAmLWRpc2FibGVkICYtZHJhZy1ib3gsXG4gICYtZGlzYWJsZWQgJi1mYWNlLFxuICAmLWRpc2FibGVkICYtbGluZSxcbiAgJi1kaXNhYmxlZCAmLXBvaW50IHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG59XG4iLCJAdXNlICcuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3JvcHBlcmpzL3NyYy9jc3MvY3JvcHBlci5zY3NzJztcblxuLmNyb3BwZXItbGluZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNmNDk5YTtcbn0iLCI6aG9zdCxcbjpyb290IHtcbiAgICAtLXZzLWNvbG9ycy0tbGlnaHRlc3Q6IHJnYmEoNjAsIDYwLCA2MCwgMC4yNik7XG4gICAgLS12cy1jb2xvcnMtLWxpZ2h0OiByZ2JhKDYwLCA2MCwgNjAsIDAuNSk7XG4gICAgLS12cy1jb2xvcnMtLWRhcms6ICMzMzM7XG4gICAgLS12cy1jb2xvcnMtLWRhcmtlc3Q6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gICAgLS12cy1zZWFyY2gtaW5wdXQtY29sb3I6IGluaGVyaXQ7XG4gICAgLS12cy1zZWFyY2gtaW5wdXQtYmc6ICNmZmY7XG4gICAgLS12cy1zZWFyY2gtaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6IGluaGVyaXQ7XG4gICAgLS12cy1mb250LXNpemU6IDFyZW07XG4gICAgLS12cy1saW5lLWhlaWdodDogMS40O1xuICAgIC0tdnMtc3RhdGUtZGlzYWJsZWQtYmc6ICNmOGY4Zjg7XG4gICAgLS12cy1zdGF0ZS1kaXNhYmxlZC1jb2xvcjogdmFyKC0tdnMtY29sb3JzLS1saWdodCk7XG4gICAgLS12cy1zdGF0ZS1kaXNhYmxlZC1jb250cm9scy1jb2xvcjogdmFyKC0tdnMtY29sb3JzLS1saWdodCk7XG4gICAgLS12cy1zdGF0ZS1kaXNhYmxlZC1jdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIC0tdnMtYm9yZGVyLWNvbG9yOiB2YXIoLS12cy1jb2xvcnMtLWxpZ2h0ZXN0KTtcbiAgICAtLXZzLWJvcmRlci13aWR0aDogMXB4O1xuICAgIC0tdnMtYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAtLXZzLWJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAtLXZzLWFjdGlvbnMtcGFkZGluZzogNHB4IDZweCAwIDNweDtcbiAgICAtLXZzLWNvbnRyb2xzLWNvbG9yOiB2YXIoLS12cy1jb2xvcnMtLWxpZ2h0KTtcbiAgICAtLXZzLWNvbnRyb2xzLXNpemU6IDE7XG4gICAgLS12cy1jb250cm9scy0tZGVzZWxlY3QtdGV4dC1zaGFkb3c6IDAgMXB4IDAgI2ZmZjtcbiAgICAtLXZzLXNlbGVjdGVkLWJnOiAjZjBmMGYwO1xuICAgIC0tdnMtc2VsZWN0ZWQtY29sb3I6IHZhcigtLXZzLWNvbG9ycy0tZGFyayk7XG4gICAgLS12cy1zZWxlY3RlZC1ib3JkZXItY29sb3I6IHZhcigtLXZzLWJvcmRlci1jb2xvcik7XG4gICAgLS12cy1zZWxlY3RlZC1ib3JkZXItc3R5bGU6IHZhcigtLXZzLWJvcmRlci1zdHlsZSk7XG4gICAgLS12cy1zZWxlY3RlZC1ib3JkZXItd2lkdGg6IHZhcigtLXZzLWJvcmRlci13aWR0aCk7XG4gICAgLS12cy1kcm9wZG93bi1iZzogI2ZmZjtcbiAgICAtLXZzLWRyb3Bkb3duLWNvbG9yOiBpbmhlcml0O1xuICAgIC0tdnMtZHJvcGRvd24tei1pbmRleDogMTAwMDtcbiAgICAtLXZzLWRyb3Bkb3duLW1pbi13aWR0aDogMTYwcHg7XG4gICAgLS12cy1kcm9wZG93bi1tYXgtaGVpZ2h0OiAzNTBweDtcbiAgICAtLXZzLWRyb3Bkb3duLWJveC1zaGFkb3c6IDBweCAzcHggNnB4IDBweCB2YXIoLS12cy1jb2xvcnMtLWRhcmtlc3QpO1xuICAgIC0tdnMtZHJvcGRvd24tb3B0aW9uLWJnOiAjMDAwO1xuICAgIC0tdnMtZHJvcGRvd24tb3B0aW9uLWNvbG9yOiB2YXIoLS12cy1kcm9wZG93bi1jb2xvcik7XG4gICAgLS12cy1kcm9wZG93bi1vcHRpb24tcGFkZGluZzogM3B4IDIwcHg7XG4gICAgLS12cy1kcm9wZG93bi1vcHRpb24tLWFjdGl2ZS1iZzogIzU4OTdmYjtcbiAgICAtLXZzLWRyb3Bkb3duLW9wdGlvbi0tYWN0aXZlLWNvbG9yOiAjZmZmO1xuICAgIC0tdnMtZHJvcGRvd24tb3B0aW9uLS1kZXNlbGVjdC1iZzogI2ZiNTg1ODtcbiAgICAtLXZzLWRyb3Bkb3duLW9wdGlvbi0tZGVzZWxlY3QtY29sb3I6ICNmZmY7XG4gICAgLS12cy10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDEsIC0wLjExNSwgMC45NzUsIDAuODU1KTtcbiAgICAtLXZzLXRyYW5zaXRpb24tZHVyYXRpb246IDE1MG1zXG59XG5cbi52LXNlbGVjdCB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlXG59XG5cbi52LXNlbGVjdCxcbi52LXNlbGVjdCAqIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94XG59XG5cbjpyb290IHtcbiAgICAtLXZzLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMSwgMC41LCAwLjgsIDEpO1xuICAgIC0tdnMtdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xNXNcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHZTZWxlY3RTcGlubmVyIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpXG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxdHVybilcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgdlNlbGVjdFNwaW5uZXIge1xuICAgIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZylcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDF0dXJuKVxuICAgIH1cbn1cblxuLnZzX19mYWRlLWVudGVyLWFjdGl2ZSxcbi52c19fZmFkZS1sZWF2ZS1hY3RpdmUge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdnMtdHJhbnNpdGlvbi1kdXJhdGlvbikgdmFyKC0tdnMtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pXG59XG5cbi52c19fZmFkZS1lbnRlcixcbi52c19fZmFkZS1sZWF2ZS10byB7XG4gICAgb3BhY2l0eTogMFxufVxuXG46cm9vdCB7XG4gICAgLS12cy1kaXNhYmxlZC1iZzogdmFyKC0tdnMtc3RhdGUtZGlzYWJsZWQtYmcpO1xuICAgIC0tdnMtZGlzYWJsZWQtY29sb3I6IHZhcigtLXZzLXN0YXRlLWRpc2FibGVkLWNvbG9yKTtcbiAgICAtLXZzLWRpc2FibGVkLWN1cnNvcjogdmFyKC0tdnMtc3RhdGUtZGlzYWJsZWQtY3Vyc29yKVxufVxuXG4udnMtLWRpc2FibGVkIC52c19fY2xlYXIsXG4udnMtLWRpc2FibGVkIC52c19fZHJvcGRvd24tdG9nZ2xlLFxuLnZzLS1kaXNhYmxlZCAudnNfX29wZW4taW5kaWNhdG9yLFxuLnZzLS1kaXNhYmxlZCAudnNfX3NlYXJjaCxcbi52cy0tZGlzYWJsZWQgLnZzX19zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdnMtZGlzYWJsZWQtYmcpO1xuICAgIGN1cnNvcjogdmFyKC0tdnMtZGlzYWJsZWQtY3Vyc29yKVxufVxuXG4udi1zZWxlY3RbZGlyPXJ0bF0gLnZzX19hY3Rpb25zIHtcbiAgICBwYWRkaW5nOiAwIDNweCAwIDZweFxufVxuXG4udi1zZWxlY3RbZGlyPXJ0bF0gLnZzX19jbGVhciB7XG4gICAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDBcbn1cblxuLnYtc2VsZWN0W2Rpcj1ydGxdIC52c19fZGVzZWxlY3Qge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMnB4XG59XG5cbi52LXNlbGVjdFtkaXI9cnRsXSAudnNfX2Ryb3Bkb3duLW1lbnUge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0XG59XG5cbi52c19fZHJvcGRvd24tdG9nZ2xlIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdnMtc2VhcmNoLWlucHV0LWJnKTtcbiAgICBib3JkZXI6IHZhcigtLXZzLWJvcmRlci13aWR0aCkgdmFyKC0tdnMtYm9yZGVyLXN0eWxlKSB2YXIoLS12cy1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXZzLWJvcmRlci1yYWRpdXMpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogMCAwIDRweDtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsXG59XG5cbi52c19fc2VsZWN0ZWQtb3B0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgcGFkZGluZzogMCAycHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlXG59XG5cbi52c19fYWN0aW9ucyB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBhZGRpbmc6IHZhcigtLXZzLWFjdGlvbnMtcGFkZGluZylcbn1cblxuLnZzLS1zZWFyY2hhYmxlIC52c19fZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBjdXJzb3I6IHRleHRcbn1cblxuLnZzLS11bnNlYXJjaGFibGUgLnZzX19kcm9wZG93bi10b2dnbGUge1xuICAgIGN1cnNvcjogcG9pbnRlclxufVxuXG4udnMtLW9wZW4gLnZzX19kcm9wZG93bi10b2dnbGUge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBcbn1cblxuLnZzX19vcGVuLWluZGljYXRvciB7XG4gICAgZmlsbDogdmFyKC0tdnMtY29udHJvbHMtY29sb3IpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tdnMtY29udHJvbHMtc2l6ZSkpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS12cy10cmFuc2l0aW9uLWR1cmF0aW9uKSB2YXIoLS12cy10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXZzLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKVxufVxuXG4udnMtLW9wZW4gLnZzX19vcGVuLWluZGljYXRvciB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSBzY2FsZSh2YXIoLS12cy1jb250cm9scy1zaXplKSlcbn1cblxuLnZzLS1sb2FkaW5nIC52c19fb3Blbi1pbmRpY2F0b3Ige1xuICAgIG9wYWNpdHk6IDBcbn1cblxuLnZzX19jbGVhciB7XG4gICAgZmlsbDogdmFyKC0tdnMtY29udHJvbHMtY29sb3IpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgcGFkZGluZzogMFxufVxuXG4udnNfX2Ryb3Bkb3duLW1lbnUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXZzLWRyb3Bkb3duLWJnKTtcbiAgICBib3JkZXI6IHZhcigtLXZzLWJvcmRlci13aWR0aCkgdmFyKC0tdnMtYm9yZGVyLXN0eWxlKSB2YXIoLS12cy1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCB2YXIoLS12cy1ib3JkZXItcmFkaXVzKSB2YXIoLS12cy1ib3JkZXItcmFkaXVzKTtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBub25lO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXZzLWRyb3Bkb3duLWJveC1zaGFkb3cpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY29sb3I6IHZhcigtLXZzLWRyb3Bkb3duLWNvbG9yKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBsZWZ0OiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC1oZWlnaHQ6IHZhcigtLXZzLWRyb3Bkb3duLW1heC1oZWlnaHQpO1xuICAgIG1pbi13aWR0aDogdmFyKC0tdnMtZHJvcGRvd24tbWluLXdpZHRoKTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBhZGRpbmc6IDVweCAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHRvcDogY2FsYygxMDAlIC0gdmFyKC0tdnMtYm9yZGVyLXdpZHRoKSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogdmFyKC0tdnMtZHJvcGRvd24tei1pbmRleClcbn1cblxuLnZzX19uby1vcHRpb25zIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcbn1cblxuLnZzX19kcm9wZG93bi1vcHRpb24ge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbG9yOiB2YXIoLS12cy1kcm9wZG93bi1vcHRpb24tY29sb3IpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgICBwYWRkaW5nOiB2YXIoLS12cy1kcm9wZG93bi1vcHRpb24tcGFkZGluZyk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcFxufVxuXG4udnNfX2Ryb3Bkb3duLW9wdGlvbi0taGlnaGxpZ2h0IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS12cy1kcm9wZG93bi1vcHRpb24tLWFjdGl2ZS1iZyk7XG4gICAgY29sb3I6IHZhcigtLXZzLWRyb3Bkb3duLW9wdGlvbi0tYWN0aXZlLWNvbG9yKVxufVxuXG4udnNfX2Ryb3Bkb3duLW9wdGlvbi0tZGVzZWxlY3Qge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXZzLWRyb3Bkb3duLW9wdGlvbi0tZGVzZWxlY3QtYmcpO1xuICAgIGNvbG9yOiB2YXIoLS12cy1kcm9wZG93bi1vcHRpb24tLWRlc2VsZWN0LWNvbG9yKVxufVxuXG4udnNfX2Ryb3Bkb3duLW9wdGlvbi0tZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXZzLXN0YXRlLWRpc2FibGVkLWJnKTtcbiAgICBjb2xvcjogdmFyKC0tdnMtc3RhdGUtZGlzYWJsZWQtY29sb3IpO1xuICAgIGN1cnNvcjogdmFyKC0tdnMtc3RhdGUtZGlzYWJsZWQtY3Vyc29yKVxufVxuXG4udnNfX3NlbGVjdGVkIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZzLXNlbGVjdGVkLWJnKTtcbiAgICBib3JkZXI6IHZhcigtLXZzLXNlbGVjdGVkLWJvcmRlci13aWR0aCkgdmFyKC0tdnMtc2VsZWN0ZWQtYm9yZGVyLXN0eWxlKSB2YXIoLS12cy1zZWxlY3RlZC1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXZzLWJvcmRlci1yYWRpdXMpO1xuICAgIGNvbG9yOiB2YXIoLS12cy1zZWxlY3RlZC1jb2xvcik7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tdnMtbGluZS1oZWlnaHQpO1xuICAgIG1hcmdpbjogNHB4IDJweCAwO1xuICAgIHBhZGRpbmc6IDAgLjI1ZW07XG4gICAgei1pbmRleDogMFxufVxuXG4udnNfX2Rlc2VsZWN0IHtcbiAgICBmaWxsOiB2YXIoLS12cy1jb250cm9scy1jb2xvcik7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBtYXJnaW4tbGVmdDogNHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdGV4dC1zaGFkb3c6IHZhcigtLXZzLWNvbnRyb2xzLS1kZXNlbGVjdC10ZXh0LXNoYWRvdylcbn1cblxuLnZzLS1zaW5nbGUgLnZzX19zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudFxufVxuXG4udnMtLXNpbmdsZS52cy0tbG9hZGluZyAudnNfX3NlbGVjdGVkLFxuLnZzLS1zaW5nbGUudnMtLW9wZW4gLnZzX19zZWxlY3RlZCB7XG4gICAgb3BhY2l0eTogLjQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlXG59XG5cbi52cy0tc2luZ2xlLnZzLS1zZWFyY2hpbmcgLnZzX19zZWxlY3RlZCB7XG4gICAgZGlzcGxheTogbm9uZVxufVxuXG4udnNfX3NlYXJjaDo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZVxufVxuXG4udnNfX3NlYXJjaDo6LW1zLWNsZWFyLFxuLnZzX19zZWFyY2g6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXG4udnNfX3NlYXJjaDo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4udnNfX3NlYXJjaDo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICBkaXNwbGF5OiBub25lXG59XG5cbi52c19fc2VhcmNoLFxuLnZzX19zZWFyY2g6Zm9jdXMge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY29sb3I6IHZhcigtLXZzLXNlYXJjaC1pbnB1dC1jb2xvcik7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tdnMtZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tdnMtbGluZS1oZWlnaHQpO1xuICAgIG1hcmdpbjogNHB4IDAgMDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwIDdweDtcbiAgICB3aWR0aDogMDtcbiAgICB6LWluZGV4OiAxXG59XG5cbi52c19fc2VhcmNoOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogdmFyKC0tdnMtc2VhcmNoLWlucHV0LXBsYWNlaG9sZGVyLWNvbG9yKVxufVxuXG4udnNfX3NlYXJjaDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiB2YXIoLS12cy1zZWFyY2gtaW5wdXQtcGxhY2Vob2xkZXItY29sb3IpXG59XG5cbi52c19fc2VhcmNoOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IHZhcigtLXZzLXNlYXJjaC1pbnB1dC1wbGFjZWhvbGRlci1jb2xvcilcbn1cblxuLnZzLS11bnNlYXJjaGFibGUgLnZzX19zZWFyY2gge1xuICAgIG9wYWNpdHk6IDFcbn1cblxuLnZzLS11bnNlYXJjaGFibGU6bm90KC52cy0tZGlzYWJsZWQpIC52c19fc2VhcmNoIHtcbiAgICBjdXJzb3I6IHBvaW50ZXJcbn1cblxuLnZzLS1zaW5nbGUudnMtLXNlYXJjaGluZzpub3QoLnZzLS1vcGVuKTpub3QoLnZzLS1sb2FkaW5nKSAudnNfX3NlYXJjaCB7XG4gICAgb3BhY2l0eTogLjJcbn1cblxuLnZzX19zcGlubmVyIHtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgLXdlYmtpdC1hbmltYXRpb246IHZTZWxlY3RTcGlubmVyIDEuMXMgbGluZWFyIGluZmluaXRlO1xuICAgIGFuaW1hdGlvbjogdlNlbGVjdFNwaW5uZXIgMS4xcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgYm9yZGVyOiAuOWVtIHNvbGlkIGhzbGEoMCwgMCUsIDM5JSwgLjEpO1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2JhKDYwLCA2MCwgNjAsIC40NSk7XG4gICAgZm9udC1zaXplOiA1cHg7XG4gICAgb3BhY2l0eTogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtaW5kZW50OiAtOTk5OWVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKSBzY2FsZSh2YXIoLS12cy1jb250cm9scy0tc3Bpbm5lci1zaXplLCB2YXIoLS12cy1jb250cm9scy1zaXplKSkpO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjFzXG59XG5cbi52c19fc3Bpbm5lcixcbi52c19fc3Bpbm5lcjphZnRlciB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGhlaWdodDogNWVtO1xuICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tdnMtY29udHJvbHMtLXNwaW5uZXItc2l6ZSwgdmFyKC0tdnMtY29udHJvbHMtc2l6ZSkpKTtcbiAgICB3aWR0aDogNWVtXG59XG5cbi52cy0tbG9hZGluZyAudnNfX3NwaW5uZXIge1xuICAgIG9wYWNpdHk6IDFcbn0iXSwiZmlsZSI6InN0eWxlLXYxLmNzcyJ9 */
