1import { createHotContext as __vite__createHotContext } from "/@vite/client";import.meta.hot = __vite__createHotContext("/src/components/layout/Footer.tsx");import __vite__cjsImport0_react_jsxDevRuntime from "/@fs/home/runner/workspace/node_modules/.vite/deps/react_jsx-dev-runtime.js?v=9ce4103e"; const Fragment = __vite__cjsImport0_react_jsxDevRuntime["Fragment"]; const jsxDEV = __vite__cjsImport0_react_jsxDevRuntime["jsxDEV"]; 2import RefreshRuntime from "/@react-refresh"; 3const inWebWorker = typeof WorkerGlobalScope !== "undefined" && self instanceof WorkerGlobalScope; 4let prevRefreshReg; 5let prevRefreshSig; 6if (import.meta.hot && !inWebWorker) { 7 if (!window.__vite_plugin_react_preamble_installed__) { 8 throw new Error("@vitejs/plugin-react can't detect preamble. Something is wrong. See https://github.com/vitejs/vite-plugin-react/pull/11#discussion_r430879201"); 9 } 10 prevRefreshReg = window.$RefreshReg$; 11 prevRefreshSig = window.$RefreshSig$; 12 window.$RefreshReg$ = (type, id) => { 13 RefreshRuntime.register(type, "/home/runner/workspace/client/src/components/layout/Footer.tsx " + id); 14 }; 15 window.$RefreshSig$ = RefreshRuntime.createSignatureFunctionForTransform; 16} 17var _s = $RefreshSig$(), _s2 = $RefreshSig$(); 18import __vite__cjsImport3_react from "/@fs/home/runner/workspace/node_modules/.vite/deps/react.js?v=9ce4103e"; const useState = __vite__cjsImport3_react["useState"]; 19import { Link, useLocation } from "/@fs/home/runner/workspace/node_modules/.vite/deps/wouter.js?v=9ce4103e"; 20import { FaInstagram, FaTiktok, FaLinkedinIn, FaPinterest, FaFacebookF } from "/@fs/home/runner/workspace/node_modules/.vite/deps/react-icons_fa.js?v=9ce4103e"; 21import { useLanguage } from "/src/lib/LanguageContext.tsx"; 22import { useCurrency, currencySymbols } from "/src/lib/CurrencyContext.tsx"; 23import CookieSettingsPanel from "/src/components/CookieSettingsPanel.tsx"; 24import { apiRequest } from "/src/lib/queryClient.ts"; 25import { useToast } from "/src/hooks/use-toast.ts"; 26import { trackWaitlistSignup } from "/src/lib/analytics.ts"; 27const currencyFlags = { 28 XOF: "ð¸ð³", 29 USD: "ðºð¸", 30 EUR: "ðªðº", 31 GBP: "ð¬ð§", 32 CAD: "ð¨ð¦" 33}; 34const CurrencyFooterSelector = () => { 35 _s(); 36 const { currency, setCurrency } = useCurrency(); 37 const currencies = ["XOF", "USD", "EUR", "GBP", "CAD"]; 38 return /* @__PURE__ */ jsxDEV("div", { className: "flex items-center gap-3", children: currencies.map( 39 (curr) => /* @__PURE__ */ jsxDEV( 40 "button", 41 { 42 onClick: () => setCurrency(curr), 43 className: `flex items-center gap-1 text-xs transition-opacity ${currency === curr ? "opacity-100" : "opacity-40 hover:opacity-70"}`, 44 style: { 45 fontFamily: "Helvetica, Arial, sans-serif", 46 fontWeight: currency === curr ? 400 : 300, 47 color: "#1A1A1A" 48 }, 49 "data-testid": `footer-currency-${curr}`, 50 children: [
51 /* @__PURE__ */ jsxDEV("span", { style: { fontSize: "12px" }, children: currencyFlags[curr] }, void 0, false, { 52 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 53 lineNumber: 39, 54 columnNumber: 11 55 }, this), 56 /* @__PURE__ */ jsxDEV("span", { children: [ 57 curr, 58 " ", 59 currencySymbols[curr] 60 ] }, void 0, true, { 61 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 62 lineNumber: 40, 63 columnNumber: 11 64 }, this) 65 ] 66 }, 67 curr, 68 true, 69 { 70 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 71 lineNumber: 26, 72 columnNumber: 7 73 }, 74 this 75 ) 76 ) }, void 0, false, { 77 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 78 lineNumber: 24, 79 columnNumber: 5 80 }, this); 81}; 82_s(CurrencyFooterSelector, "rM2TMuaXlw1XZViGAN/umpnJpe8=", false, function() { 83 return [useCurrency]; 84}); 85_c = CurrencyFooterSelector; 86const Footer = () => { 87 _s2(); 88 const { t, language } = useLanguage(); 89 const [location, setLocation] = useLocation(); 90 const [showCookieSettings, setShowCookieSettings] = useState(false); 91 const [footerEmail, setFooterEmail] = useState(""); 92 const [isSubmitting, setIsSubmitting] = useState(false); 93 const { toast } = useToast(); 94 const isPlaybookPage = location === "/playbook" || location === "/skincare-guide"; 95 const handleFooterEmailSubmit = async (e) => { 96 e.preventDefault(); 97 const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; 98 if (!footerEmail || !emailRegex.test(footerEmail)) { 99 toast({ 100 title: language === "fr" ? "Erreur" : "Error", 101 description: language === "fr" ? "Veuillez entrer une adresse email valide." : "Please enter a valid email address.", 102 variant: "destructive" 103 }); 104 return; 105 } 106 setIsSubmitting(true); 107 try { 108 await apiRequest("/api/waitlist", { 109 method: "POST", 110 data: { email: footerEmail, source: "footer", language } 111 }); 112 trackWaitlistSignup("footer"); 113 toast({ 114 title: language === "fr" ? "Vous êtes sur la liste !" : "You're on the list!", 115 description: language === "fr" ? "Bienvenue chez KYN !" : "Welcome to KYN!" 116 }); 117 setFooterEmail(""); 118 } catch (error) { 119 if (error.message?.includes("already")) { 120 toast({ 121 title: language === "fr" ? "Déjà avec nous" : "Already with us", 122 description: language === "fr" ? "Cet email fait déjà partie de notre communauté." : "This email is already part of our community." 123 }); 124 } else { 125 toast({ 126 title: language === "fr" ? "Erreur" : "Error", 127 description: language === "fr" ? "Une erreur est survenue." : "Something went wrong.", 128 variant: "destructive" 129 }); 130 } 131 } finally { 132 setIsSubmitting(false); 133 } 134 }; 135 const handleLogoClick = (e) => { 136 e.preventDefault(); 137 window.scrollTo({ top: 0, behavior: "smooth" }); 138 }; 139 const handleAboutClick = (e) => { 140 e.preventDefault(); 141 if (location === "/") { 142 const aboutSection = document.getElementById("from-us-to-you"); 143 if (aboutSection) { 144 const navHeight = 118; 145 const elementPosition = aboutSection.getBoundingClientRect().top + window.scrollY; 146 window.scrollTo({ top: elementPosition - navHeight, behavior: "smooth" }); 147 } 148 } else { 149 setLocation("/"); 150 setTimeout(() => { 151 const aboutSection = document.getElementById("from-us-to-you"); 152 if (aboutSection) { 153 const navHeight = 118; 154 const elementPosition = aboutSection.getBoundingClientRect().top + window.scrollY; 155 window.scrollTo({ top: elementPosition - navHeight, behavior: "smooth" }); 156 } 157 }, 100); 158 } 159 }; 160 const handleWaitlistClick = (e) => { 161 e.preventDefault(); 162 if (location === "/") { 163 const section = document.querySelector("[data-subscription-section]"); 164 if (section) { 165 const navHeight = 118; 166 const elementPosition = section.getBoundingClientRect().top + window.scrollY; 167 window.scrollTo({ top: elementPosition - navHeight, behavior: "smooth" }); 168 } 169 } else { 170 setLocation("/"); 171 setTimeout(() => { 172 const section = document.querySelector("[data-subscription-section]"); 173 if (section) { 174 const navHeight = 118; 175 const elementPosition = section.getBoundingClientRect().top + window.scrollY; 176 window.scrollTo({ top: elementPosition - navHeight, behavior: "smooth" }); 177 } 178 }, 100); 179 } 180 }; 181 const handleFAQClick = (e) => { 182 e.preventDefault(); 183 if (location === "/") { 184 const faqSection = document.getElementById("faq"); 185 if (faqSection) { 186 const navHeight = 118; 187 const elementPosition = faqSection.getBoundingClientRect().top + window.scrollY; 188 window.scrollTo({ top: elementPosition - navHeight, behavior: "smooth" }); 189 } 190 } else { 191 setLocation("/"); 192 setTimeout(() => { 193 const faqSection = document.getElementById("faq"); 194 if (faqSection) { 195 const navHeight = 118; 196 const elementPosition = faqSection.getBoundingClientRect().top + window.scrollY; 197 window.scrollTo({ top: elementPosition - navHeight, behavior: "smooth" }); 198 } 199 }, 100); 200 } 201 }; 202 const handleContactClick = (e) => { 203 e.preventDefault();
204 setLocation("/contact"); 205 setTimeout(() => { 206 window.scrollTo({ top: 0, behavior: "smooth" }); 207 }, 100); 208 }; 209 const handleJournalClick = (e) => { 210 window.scrollTo({ top: 0, behavior: "smooth" }); 211 }; 212 const handleTermsClick = (e) => { 213 window.scrollTo({ top: 0, behavior: "smooth" }); 214 }; 215 const handlePrivacyClick = (e) => { 216 window.scrollTo({ top: 0, behavior: "smooth" }); 217 }; 218 return /* @__PURE__ */ jsxDEV("footer", { style: { backgroundColor: "#f5f5f5" }, children: [ 219 /* @__PURE__ */ jsxDEV("div", { className: "max-w-7xl mx-auto px-6 lg:pl-6 lg:pr-12 py-12 lg:py-16", children: [ 220 /* @__PURE__ */ jsxDEV("div", { className: "hidden lg:flex lg:justify-between lg:gap-16", children: [ 221 /* @__PURE__ */ jsxDEV("div", { children: [ 222 /* @__PURE__ */ jsxDEV( 223 "a", 224 { 225 href: "/", 226 onClick: handleLogoClick, 227 className: "inline-block cursor-pointer hover:opacity-70 transition-opacity", 228 children: /* @__PURE__ */ jsxDEV( 229 "h2", 230 { 231 className: "text-4xl md:text-5xl font-normal tracking-wider", 232 style: { fontFamily: "Helvetica, Arial, sans-serif", color: "#1A1A1A" }, 233 children: "KYN" 234 }, 235 void 0, 236 false, 237 { 238 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 239 lineNumber: 203, 240 columnNumber: 15 241 }, 242 this 243 ) 244 }, 245 void 0, 246 false, 247 { 248 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 249 lineNumber: 198, 250 columnNumber: 13 251 }, 252 this 253 ), 254 !isPlaybookPage && /* @__PURE__ */ jsxDEV(Fragment, { children: [
255 /* @__PURE__ */ jsxDEV( 256 "p", 257 { 258 className: "mt-8 text-sm leading-relaxed whitespace-nowrap", 259 style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 300, color: "#1A1A1A" }, 260 children: language === "fr" ? "Rejoignez notre liste pour être les premiers informés de toutes les nouveautés KYN." : "Join our mailing list to be the first to hear about all things KYN." 261 }, 262 void 0, 263 false, 264 { 265 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 266 lineNumber: 213, 267 columnNumber: 17 268 }, 269 this 270 ), 271 /* @__PURE__ */ jsxDEV( 272 "form", 273 { 274 onSubmit: handleFooterEmailSubmit, 275 className: "flex items-stretch mt-6", 276 style: { maxWidth: "400px", border: "1px solid #1A1A1A" }, 277 children: [
278 /* @__PURE__ */ jsxDEV( 279 "input", 280 { 281 type: "email", 282 value: footerEmail, 283 onChange: (e) => setFooterEmail(e.target.value), 284 placeholder: "E-mail", 285 className: "flex-1 px-4 py-3 focus:outline-none", 286 style: { fontFamily: "Helvetica, Arial, sans-serif", fontSize: "13px", fontWeight: 300, backgroundColor: "transparent", border: "none", color: "#1A1A1A" }, 287 "data-testid": "footer-input-email" 288 }, 289 void 0, 290 false, 291 { 292 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 293 lineNumber: 227, 294 columnNumber: 19 295 }, 296 this 297 ), 298 /* @__PURE__ */ jsxDEV( 299 "button", 300 { 301 type: "submit", 302 disabled: isSubmitting, 303 className: "px-5 uppercase transition-opacity hover:opacity-70 disabled:opacity-50", 304 style: { backgroundColor: "transparent", color: "#1A1A1A", fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 300, letterSpacing: "1px", border: "none", borderLeft: "1px solid #1A1A1A", fontSize: "11px" }, 305 "data-testid": "footer-button-submit", 306 children: isSubmitting ? "..." : language === "fr" ? "ENVOYER" : "SUBSCRIBE" 307 }, 308 void 0, 309 false, 310 { 311 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 312 lineNumber: 236, 313 columnNumber: 19 314 }, 315 this 316 ) 317 ] 318 }, 319 void 0, 320 true, 321 { 322 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 323 lineNumber: 222, 324 columnNumber: 17 325 }, 326 this 327 ) 328 ] }, void 0, true, { 329 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 330 lineNumber: 212, 331 columnNumber: 13 332 }, this),
333 /* @__PURE__ */ jsxDEV("div", { className: "flex items-center gap-3 mt-8", children: [ 334 /* @__PURE__ */ jsxDEV("a", { href: "https://www.instagram.com/kyn_care/", target: "_blank", rel: "noopener noreferrer", className: "hover:opacity-60 transition-opacity", "aria-label": "Instagram", children: /* @__PURE__ */ jsxDEV(FaInstagram, { size: 20, color: "#1A1A1A" }, void 0, false, { 335 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 336 lineNumber: 252, 337 columnNumber: 17 338 }, this) }, void 0, false, { 339 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 340 lineNumber: 251, 341 columnNumber: 15 342 }, this), 343 /* @__PURE__ */ jsxDEV("a", { href: "https://www.facebook.com/share/1K5UiuyF6c/?mibextid=wwXIfr", target: "_blank", rel: "noopener noreferrer", className: "hover:opacity-60 transition-opacity", "aria-label": "Facebook", children: /* @__PURE__ */ jsxDEV(FaFacebookF, { size: 20, color: "#1A1A1A" }, void 0, false, { 344 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 345 lineNumber: 255, 346 columnNumber: 17 347 }, this) }, void 0, false, { 348 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 349 lineNumber: 254, 350 columnNumber: 15 351 }, this),
352 /* @__PURE__ */ jsxDEV("a", { href: "https://www.tiktok.com/@kyn_care", target: "_blank", rel: "noopener noreferrer", className: "hover:opacity-60 transition-opacity", "aria-label": "TikTok", children: /* @__PURE__ */ jsxDEV(FaTiktok, { size: 20, color: "#1A1A1A" }, void 0, false, { 353 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 354 lineNumber: 258, 355 columnNumber: 17 356 }, this) }, void 0, false, { 357 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 358 lineNumber: 257, 359 columnNumber: 15 360 }, this), 361 /* @__PURE__ */ jsxDEV("a", { href: "https://www.linkedin.com/company/kyn-care/", target: "_blank", rel: "noopener noreferrer", className: "hover:opacity-60 transition-opacity", "aria-label": "LinkedIn", children: /* @__PURE__ */ jsxDEV(FaLinkedinIn, { size: 20, color: "#1A1A1A" }, void 0, false, { 362 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 363 lineNumber: 261, 364 columnNumber: 17 365 }, this) }, void 0, false, { 366 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 367 lineNumber: 260, 368 columnNumber: 15 369 }, this),
370 /* @__PURE__ */ jsxDEV("a", { href: "https://www.pinterest.com/kyn_care/", target: "_blank", rel: "noopener noreferrer", className: "hover:opacity-60 transition-opacity", "aria-label": "Pinterest", children: /* @__PURE__ */ jsxDEV(FaPinterest, { size: 20, color: "#1A1A1A" }, void 0, false, { 371 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 372 lineNumber: 264, 373 columnNumber: 17 374 }, this) }, void 0, false, { 375 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 376 lineNumber: 263, 377 columnNumber: 15 378 }, this) 379 ] }, void 0, true, { 380 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 381 lineNumber: 250, 382 columnNumber: 13 383 }, this) 384 ] }, void 0, true, { 385 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 386 lineNumber: 197, 387 columnNumber: 11 388 }, this),
389 /* @__PURE__ */ jsxDEV("div", { children: [ 390 /* @__PURE__ */ jsxDEV( 391 "p", 392 { 393 className: "text-sm uppercase tracking-widest mb-10", 394 style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 400, color: "#1A1A1A", letterSpacing: "2px" }, 395 children: language === "fr" ? "L'INNOVATION Ã CHAQUE COUCHE DE LA BEAUTÃ." : "INNOVATION FOR EVERY LAYER OF BEAUTY." 396 }, 397 void 0, 398 false, 399 { 400 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 401 lineNumber: 271, 402 columnNumber: 13 403 }, 404 this 405 ), 406 /* @__PURE__ */ jsxDEV("div", { className: "grid grid-cols-2 gap-12", children: [ 407 /* @__PURE__ */ jsxDEV("div", { children: [ 408 /* @__PURE__ */ jsxDEV("h3", { className: "text-sm uppercase tracking-wider mb-5", style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 500, color: "#1A1A1A", letterSpacing: "1.5px" }, children: t("brand") }, void 0, false, { 409 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 410 lineNumber: 281, 411 columnNumber: 17 412 }, this),
413 /* @__PURE__ */ jsxDEV("ul", { className: "space-y-3", children: [ 414 /* @__PURE__ */ jsxDEV("li", { children: /* @__PURE__ */ jsxDEV("a", { href: "/#subscribe-section", onClick: handleWaitlistClick, className: "text-sm hover:opacity-60 transition-opacity", style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 300, color: "#1A1A1A" }, children: t("waitlistNav") }, void 0, false, { 415 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 416 lineNumber: 285, 417 columnNumber: 23 418 }, this) }, void 0, false, { 419 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 420 lineNumber: 285, 421 columnNumber: 19 422 }, this), 423 /* @__PURE__ */ jsxDEV("li", { children: /* @__PURE__ */ jsxDEV("a", { href: "/#faq", onClick: handleFAQClick, className: "text-sm hover:opacity-60 transition-opacity", style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 300, color: "#1A1A1A" }, children: t("faqNav") }, void 0, false, { 424 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 425 lineNumber: 286, 426 columnNumber: 23 427 }, this) }, void 0, false, { 428 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 429 lineNumber: 286, 430 columnNumber: 19 431 }, this),
432 /* @__PURE__ */ jsxDEV("li", { children: /* @__PURE__ */ jsxDEV("a", { href: "/contact", onClick: handleContactClick, className: "text-sm hover:opacity-60 transition-opacity", style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 300, color: "#1A1A1A" }, children: t("contactUs") }, void 0, false, { 433 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 434 lineNumber: 287, 435 columnNumber: 23 436 }, this) }, void 0, false, { 437 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 438 lineNumber: 287, 439 columnNumber: 19 440 }, this), 441 /* @__PURE__ */ jsxDEV("li", { children: /* @__PURE__ */ jsxDEV(Link, { href: "/supply-chain", onClick: () => window.scrollTo(0, 0), className: "text-sm hover:opacity-60 transition-opacity", style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 300, color: "#1A1A1A" }, "data-testid": "footer-link-supply-chain", children: t("kynSupplyChainAct") }, void 0, false, { 442 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 443 lineNumber: 288, 444 columnNumber: 23 445 }, this) }, void 0, false, { 446 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 447 lineNumber: 288, 448 columnNumber: 19 449 }, this) 450 ] }, void 0, true, { 451 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 452 lineNumber: 284, 453 columnNumber: 17 454 }, this) 455 ] }, void 0, true, { 456 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 457 lineNumber: 280, 458 columnNumber: 15 459 }, this),
460 /* @__PURE__ */ jsxDEV("div", { children: [ 461 /* @__PURE__ */ jsxDEV("h3", { className: "text-sm uppercase tracking-wider mb-5", style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 500, color: "#1A1A1A", letterSpacing: "1.5px" }, children: t("legal") }, void 0, false, { 462 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 463 lineNumber: 294, 464 columnNumber: 17 465 }, this), 466 /* @__PURE__ */ jsxDEV("ul", { className: "space-y-3", children: [ 467 /* @__PURE__ */ jsxDEV("li", { children: /* @__PURE__ */ jsxDEV(Link, { href: "/terms", onClick: handleTermsClick, className: "text-sm hover:opacity-60 transition-opacity", style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 300, color: "#1A1A1A" }, children: t("terms") }, void 0, false, { 468 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 469 lineNumber: 298, 470 columnNumber: 23 471 }, this) }, void 0, false, { 472 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 473 lineNumber: 298, 474 columnNumber: 19 475 }, this),
476 /* @__PURE__ */ jsxDEV("li", { children: /* @__PURE__ */ jsxDEV(Link, { href: "/privacy", onClick: handlePrivacyClick, className: "text-sm hover:opacity-60 transition-opacity", style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 300, color: "#1A1A1A" }, children: t("privacy") }, void 0, false, { 477 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 478 lineNumber: 299, 479 columnNumber: 23 480 }, this) }, void 0, false, { 481 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 482 lineNumber: 299, 483 columnNumber: 19 484 }, this), 485 /* @__PURE__ */ jsxDEV("li", { children: /* @__PURE__ */ jsxDEV("button", { onClick: () => setShowCookieSettings(true), className: "text-sm hover:opacity-60 transition-opacity text-left", style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 300, color: "#1A1A1A", background: "none", border: "none", padding: 0, cursor: "pointer" }, "data-testid": "footer-link-cookies", children: t("cookiePreferences") }, void 0, false, { 486 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 487 lineNumber: 300, 488 columnNumber: 23 489 }, this) }, void 0, false, { 490 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 491 lineNumber: 300, 492 columnNumber: 19 493 }, this) 494 ] }, void 0, true, { 495 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 496 lineNumber: 297, 497 columnNumber: 17 498 }, this) 499 ] }, void 0, true, { 500 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 501 lineNumber: 293, 502 columnNumber: 15 503 }, this) 504 ] }, void 0, true, { 505 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 506 lineNumber: 278, 507 columnNumber: 13 508 }, this) 509 ] }, void 0, true, { 510 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 511 lineNumber: 270, 512 columnNumber: 11 513 }, this) 514 ] }, void 0, true, { 515 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 516 lineNumber: 195, 517 columnNumber: 9 518 }, this),
519 /* @__PURE__ */ jsxDEV("div", { className: "lg:hidden", children: [ 520 /* @__PURE__ */ jsxDEV("a", { href: "/", onClick: handleLogoClick, className: "inline-block cursor-pointer hover:opacity-70 transition-opacity", children: /* @__PURE__ */ jsxDEV("h2", { className: "text-4xl font-normal tracking-wider", style: { fontFamily: "Helvetica, Arial, sans-serif", color: "#1A1A1A" }, children: "KYN" }, void 0, false, { 521 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 522 lineNumber: 311, 523 columnNumber: 13 524 }, this) }, void 0, false, { 525 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 526 lineNumber: 310, 527 columnNumber: 11 528 }, this), 529 !isPlaybookPage && /* @__PURE__ */ jsxDEV(Fragment, { children: [ 530 /* @__PURE__ */ jsxDEV("p", { className: "mt-6 text-sm leading-relaxed", style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 300, color: "#1A1A1A" }, children: language === "fr" ? "Rejoignez notre liste pour être les premiers informés." : "Join our mailing list to be the first to hear about all things KYN." }, void 0, false, { 531 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 532 lineNumber: 317, 533 columnNumber: 15 534 }, this),
535 /* @__PURE__ */ jsxDEV("form", { onSubmit: handleFooterEmailSubmit, className: "flex items-stretch mt-4", style: { border: "1px solid #CCCCCC" }, children: [ 536 /* @__PURE__ */ jsxDEV( 537 "input", 538 { 539 type: "email", 540 value: footerEmail, 541 onChange: (e) => setFooterEmail(e.target.value), 542 placeholder: "E-mail", 543 className: "flex-1 px-3 py-2.5 focus:outline-none text-sm", 544 style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 300, backgroundColor: "transparent", border: "none", color: "#1A1A1A" }, 545 "data-testid": "footer-input-email-mobile" 546 }, 547 void 0, 548 false, 549 { 550 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 551 lineNumber: 323, 552 columnNumber: 17 553 }, 554 this 555 ), 556 /* @__PURE__ */ jsxDEV( 557 "button", 558 { 559 type: "submit", 560 disabled: isSubmitting, 561 className: "px-4 uppercase transition-opacity hover:opacity-70 disabled:opacity-50 text-xs", 562 style: { backgroundColor: "transparent", color: "#1A1A1A", fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 400, letterSpacing: "1px", border: "none", borderLeft: "1px solid #CCCCCC" }, 563 "data-testid": "footer-button-submit-mobile", 564 children: isSubmitting ? "..." : language === "fr" ? "ENVOYER" : "SUBSCRIBE" 565 }, 566 void 0, 567 false, 568 { 569 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 570 lineNumber: 332, 571 columnNumber: 17 572 }, 573 this 574 ) 575 ] }, void 0, true, { 576 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 577 lineNumber: 322, 578 columnNumber: 15 579 }, this) 580 ] }, void 0, true, { 581 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 582 lineNumber: 315, 583 columnNumber: 11 584 }, this),
585 /* @__PURE__ */ jsxDEV("div", { className: "grid grid-cols-3 gap-6 mt-10", children: [ 586 /* @__PURE__ */ jsxDEV("div", { children: [ 587 /* @__PURE__ */ jsxDEV("h3", { className: "text-xs uppercase tracking-wider mb-3", style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 500, color: "#1A1A1A", letterSpacing: "1px" }, children: t("brand") }, void 0, false, { 588 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 589 lineNumber: 349, 590 columnNumber: 15 591 }, this), 592 /* @__PURE__ */ jsxDEV("ul", { className: "space-y-2", children: [ 593 /* @__PURE__ */ jsxDEV("li", { children: /* @__PURE__ */ jsxDEV("a", { href: "/#subscribe-section", onClick: handleWaitlistClick, className: "text-sm hover:opacity-60 transition-opacity", style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 300, color: "#1A1A1A" }, children: t("waitlistNav") }, void 0, false, { 594 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 595 lineNumber: 351, 596 columnNumber: 21 597 }, this) }, void 0, false, { 598 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 599 lineNumber: 351, 600 columnNumber: 17 601 }, this),
602 /* @__PURE__ */ jsxDEV("li", { children: /* @__PURE__ */ jsxDEV("a", { href: "/#faq", onClick: handleFAQClick, className: "text-sm hover:opacity-60 transition-opacity", style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 300, color: "#1A1A1A" }, children: t("faqNav") }, void 0, false, { 603 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 604 lineNumber: 352, 605 columnNumber: 21 606 }, this) }, void 0, false, { 607 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 608 lineNumber: 352, 609 columnNumber: 17 610 }, this), 611 /* @__PURE__ */ jsxDEV("li", { children: /* @__PURE__ */ jsxDEV("a", { href: "/contact", onClick: handleContactClick, className: "text-sm hover:opacity-60 transition-opacity", style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 300, color: "#1A1A1A" }, children: t("contactUs") }, void 0, false, { 612 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 613 lineNumber: 353, 614 columnNumber: 21 615 }, this) }, void 0, false, { 616 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 617 lineNumber: 353, 618 columnNumber: 17 619 }, this),
620 /* @__PURE__ */ jsxDEV("li", { children: /* @__PURE__ */ jsxDEV(Link, { href: "/supply-chain", onClick: () => window.scrollTo(0, 0), className: "text-sm hover:opacity-60 transition-opacity", style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 300, color: "#1A1A1A" }, children: t("kynSupplyChainAct") }, void 0, false, { 621 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 622 lineNumber: 354, 623 columnNumber: 21 624 }, this) }, void 0, false, { 625 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 626 lineNumber: 354, 627 columnNumber: 17 628 }, this) 629 ] }, void 0, true, { 630 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 631 lineNumber: 350, 632 columnNumber: 15 633 }, this) 634 ] }, void 0, true, { 635 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 636 lineNumber: 348, 637 columnNumber: 13 638 }, this),
639 /* @__PURE__ */ jsxDEV("div", { children: [ 640 /* @__PURE__ */ jsxDEV("h3", { className: "text-xs uppercase tracking-wider mb-3", style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 500, color: "#1A1A1A", letterSpacing: "1px" }, children: language === "fr" ? "SUIVRE" : "FOLLOW" }, void 0, false, { 641 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 642 lineNumber: 360, 643 columnNumber: 15 644 }, this), 645 /* @__PURE__ */ jsxDEV("ul", { className: "space-y-2", children: [ 646 /* @__PURE__ */ jsxDEV("li", { children: /* @__PURE__ */ jsxDEV("a", { href: "https://www.instagram.com/kyn_care/", target: "_blank", rel: "noopener noreferrer", className: "text-sm hover:opacity-60 transition-opacity", style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 300, color: "#1A1A1A" }, children: "Instagram" }, void 0, false, { 647 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 648 lineNumber: 362, 649 columnNumber: 21 650 }, this) }, void 0, false, { 651 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 652 lineNumber: 362, 653 columnNumber: 17 654 }, this),
655 /* @__PURE__ */ jsxDEV("li", { children: /* @__PURE__ */ jsxDEV("a", { href: "https://www.tiktok.com/@kyn_care", target: "_blank", rel: "noopener noreferrer", className: "text-sm hover:opacity-60 transition-opacity", style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 300, color: "#1A1A1A" }, children: "TikTok" }, void 0, false, { 656 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 657 lineNumber: 363, 658 columnNumber: 21 659 }, this) }, void 0, false, { 660 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 661 lineNumber: 363, 662 columnNumber: 17 663 }, this), 664 /* @__PURE__ */ jsxDEV("li", { children: /* @__PURE__ */ jsxDEV("a", { href: "https://www.facebook.com/share/1K5UiuyF6c/?mibextid=wwXIfr", target: "_blank", rel: "noopener noreferrer", className: "text-sm hover:opacity-60 transition-opacity", style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 300, color: "#1A1A1A" }, children: "Facebook" }, void 0, false, { 665 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 666 lineNumber: 364, 667 columnNumber: 21 668 }, this) }, void 0, false, { 669 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 670 lineNumber: 364, 671 columnNumber: 17 672 }, this),
673 /* @__PURE__ */ jsxDEV("li", { children: /* @__PURE__ */ jsxDEV("a", { href: "https://www.linkedin.com/company/kyn-care/", target: "_blank", rel: "noopener noreferrer", className: "text-sm hover:opacity-60 transition-opacity", style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 300, color: "#1A1A1A" }, children: "LinkedIn" }, void 0, false, { 674 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 675 lineNumber: 365, 676 columnNumber: 21 677 }, this) }, void 0, false, { 678 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 679 lineNumber: 365, 680 columnNumber: 17 681 }, this) 682 ] }, void 0, true, { 683 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 684 lineNumber: 361, 685 columnNumber: 15 686 }, this) 687 ] }, void 0, true, { 688 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 689 lineNumber: 359, 690 columnNumber: 13 691 }, this),
692 /* @__PURE__ */ jsxDEV("div", { children: [ 693 /* @__PURE__ */ jsxDEV("h3", { className: "text-xs uppercase tracking-wider mb-3", style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 500, color: "#1A1A1A", letterSpacing: "1px" }, children: t("legal") }, void 0, false, { 694 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 695 lineNumber: 371, 696 columnNumber: 15 697 }, this), 698 /* @__PURE__ */ jsxDEV("ul", { className: "space-y-2", children: [ 699 /* @__PURE__ */ jsxDEV("li", { children: /* @__PURE__ */ jsxDEV(Link, { href: "/terms", onClick: handleTermsClick, className: "text-sm hover:opacity-60 transition-opacity", style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 300, color: "#1A1A1A" }, children: t("terms") }, void 0, false, { 700 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 701 lineNumber: 373, 702 columnNumber: 21 703 }, this) }, void 0, false, { 704 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 705 lineNumber: 373, 706 columnNumber: 17 707 }, this),
708 /* @__PURE__ */ jsxDEV("li", { children: /* @__PURE__ */ jsxDEV(Link, { href: "/privacy", onClick: handlePrivacyClick, className: "text-sm hover:opacity-60 transition-opacity", style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 300, color: "#1A1A1A" }, children: t("privacy") }, void 0, false, { 709 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 710 lineNumber: 374, 711 columnNumber: 21 712 }, this) }, void 0, false, { 713 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 714 lineNumber: 374, 715 columnNumber: 17 716 }, this), 717 /* @__PURE__ */ jsxDEV("li", { children: /* @__PURE__ */ jsxDEV("button", { onClick: () => setShowCookieSettings(true), className: "text-sm hover:opacity-60 transition-opacity text-left", style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 300, color: "#1A1A1A", background: "none", border: "none", padding: 0, cursor: "pointer" }, children: t("cookiePreferences") }, void 0, false, { 718 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 719 lineNumber: 375, 720 columnNumber: 21 721 }, this) }, void 0, false, { 722 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 723 lineNumber: 375, 724 columnNumber: 17 725 }, this) 726 ] }, void 0, true, { 727 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 728 lineNumber: 372, 729 columnNumber: 15 730 }, this) 731 ] }, void 0, true, { 732 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 733 lineNumber: 370, 734 columnNumber: 13 735 }, this) 736 ] }, void 0, true, { 737 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 738 lineNumber: 346, 739 columnNumber: 11 740 }, this) 741 ] }, void 0, true, { 742 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 743 lineNumber: 308, 744 columnNumber: 9 745 }, this) 746 ] }, void 0, true, { 747 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 748 lineNumber: 193, 749 columnNumber: 7 750 }, this), 751 /* @__PURE__ */ jsxDEV("div", { className: "border-t", style: { borderColor: "#e0e0e0" }, children: /* @__PURE__ */ jsxDEV("div", { className: "max-w-7xl mx-auto px-6 lg:px-12 py-5", children: /* @__PURE__ */ jsxDEV("p", { className: "text-xs text-center", style: { fontFamily: "Helvetica, Arial, sans-serif", fontWeight: 300, color: "#1A1A1A" }, children: t("copyright") }, void 0, false, { 752 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 753 lineNumber: 385, 754 columnNumber: 11 755 }, this) }, void 0, false, { 756 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 757 lineNumber: 384, 758 columnNumber: 9 759 }, this) }, void 0, false, { 760 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 761 lineNumber: 383, 762 columnNumber: 7 763 }, this), 764 /* @__PURE__ */ jsxDEV(CookieSettingsPanel, { isOpen: showCookieSettings, onClose: () => setShowCookieSettings(false) }, void 0, false, { 765 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 766 lineNumber: 391, 767 columnNumber: 7 768 }, this) 769 ] }, void 0, true, { 770 fileName: "/home/runner/workspace/client/src/components/layout/Footer.tsx", 771 lineNumber: 192, 772 columnNumber: 5 773 }, this); 774}; 775_s2(Footer, "F3supBnhmA1+XRJYtJ8rGbeD8lI=", false, function() { 776 return [useLanguage, useLocation, useToast]; 777}); 778_c2 = Footer; 779export default Footer; 780var _c, _c2; 781$RefreshReg$(_c, "CurrencyFooterSelector"); 782$RefreshReg$(_c2, "Footer"); 783if (import.meta.hot && !inWebWorker) { 784 window.$RefreshReg$ = prevRefreshReg; 785 window.$RefreshSig$ = prevRefreshSig; 786} 787if (import.meta.hot && !inWebWorker) { 788 RefreshRuntime.__hmr_import(import.meta.url).then((currentExports) => { 789 RefreshRuntime.registerExportsForReactRefresh("/home/runner/workspace/client/src/components/layout/Footer.tsx", currentExports); 790 import.meta.hot.accept((nextExports) => { 791 if (!nextExports) return; 792 const invalidateMessage = RefreshRuntime.validateRefreshBoundaryAndEnqueueUpdate("/home/runner/workspace/client/src/components/layout/Footer.tsx", currentExports, nextExports);
793 if (invalidateMessage) import.meta.hot.invalidate(invalidateMessage); 794 }); 795 }); 796} 797 798//# sourceMappingURL=data:application/json;base64,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VFMLFFBQVEsUUFBUU0sU0FBUyxHQUFHQyxRQUFRLFVBQVUsR0FBSTNELFlBQUUsbUJBQW1CLEtBQXpTO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBQTJTLEtBQS9TO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBQXdUO0FBQUEsaUJBSDFUO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBSUE7QUFBQSxlQU5GO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBT0E7QUFBQSxhQS9CRjtBQUFBO0FBQUE7QUFBQTtBQUFBLGVBZ0NBO0FBQUEsV0F0RUY7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQXVFQTtBQUFBLFNBMUxGO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0EyTEE7QUFBQSxJQUdBLHVCQUFDLFNBQUksV0FBVSxZQUFXLE9BQU8sRUFBRTRELGFBQWEsVUFBVSxHQUN4RCxpQ0FBQyxTQUFJLFdBQVUsd0NBQ2IsaUNBQUMsT0FBRSxXQUFVLHVCQUFzQixPQUFPLEVBQUVuRSxZQU
798FZLGdDQUFnQ0MsWUFBWSxLQUFLQyxPQUFPLFVBQVUsR0FDdkhLLFlBQUUsV0FBVyxLQURoQjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBRUEsS0FIRjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBSUEsS0FMRjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBTUE7QUFBQSxJQUVBLHVCQUFDLHVCQUFvQixRQUFRSSxvQkFBb0IsU0FBUyxNQUFNQyxzQkFBc0IsS0FBSyxLQUEzRjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBQTZGO0FBQUEsT0F2TS9GO0FBQUE7QUFBQTtBQUFBO0FBQUEsU0F3TUE7QUFFSjtBQUFDTixJQTNWS0QsUUFBZ0I7QUFBQSxVQUNJekIsYUFDUU4sYUFJZFcsUUFBUTtBQUFBO0FBQUFtRixNQU50Qi9EO0FBNlZOLGVBQWVBO0FBQU8sSUFBQUQsSUFBQWdFO0FBQUFDLGFBQUFqRSxJQUFBO0FBQUFpRSxhQUFBRCxLQUFBIiwibmFtZXMiOlsidXNlU3RhdGUiLCJMaW5rIiwidXNlTG9jYXRpb24iLCJGYUluc3RhZ3JhbSIsIkZhVGlrdG9rIiwiRmFMaW5rZWRpbkluIiwiRmFQaW50ZXJlc3QiLCJGYUZhY2Vib29rRiIsInVzZUxhbmd1YWdlIiwidXNlQ3VycmVuY3kiLCJjdXJyZW5jeVN5bWJvbHMiLCJDb29raWVTZXR0aW5nc1BhbmVsIiwiYXBpUmVxdWVzdCIsInVzZVRvYXN0IiwidHJhY2tXYWl0bGlzdFNpZ251cCIsImN1cnJlbmN5RmxhZ3MiLCJYT0YiLCJVU0QiLCJFVVIiLCJHQlAiLCJDQUQiLCJDdXJyZW5jeUZvb3RlclNlbGVjdG9yIiwiX3MiLCJjdXJyZW5jeSIsInNldEN1cnJlbmN5IiwiY3VycmVuY2llcyIsIm1hcCIsImN1cnIiLCJmb250RmFtaWx5IiwiZm9udFdlaWdodCIsImNvbG9yIiwiZm9udFNpemUiLCJfYyIsIkZvb3RlciIsIl9zMiIsInQiLCJsYW5ndWFnZSIsImxvY2F0aW9uIiwic2V0TG9jYXRpb24iLCJzaG93Q29va2llU2V0dGluZ3MiLCJzZXRTaG93Q29va2llU2V0dGluZ3MiLCJmb290ZXJFbWFpbCIsInNldEZvb3RlckVtYWlsIiwiaXNTdWJtaXR0aW5nIiwic2V0SXNTdWJtaXR0aW5nIiwidG9hc3QiLCJpc1BsYXlib29rUGFnZSIsImhhbmRsZUZvb3RlckVtYWlsU3VibWl0IiwiZSIsInByZXZlbnREZWZhdWx0IiwiZW1haWxSZWdleCIsInRlc3QiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwidmFyaWFudCIsIm1ldGhvZCIsImRhdGEiLCJlbWFpbCIsInNvdXJjZSIsImVycm9yIiwibWVzc2FnZSIsImluY2x1ZGVzIiwiaGFuZGxlTG9nb0NsaWNrIiwid2luZG93Iiwic2Nyb2xsVG8iLCJ0b3AiLCJiZWhhdmlvciIsImhhbmRsZUFib3V0Q2xpY2siLCJhYm91dFNlY3Rpb24iLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwibmF2SGVpZ2h0IiwiZWxlbWVudFBvc2l0aW9uIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0Iiwic2Nyb2xsWSIsInNldFRpbWVvdXQiLCJoYW5kbGVXYWl0bGlzdENsaWNrIiwic2VjdGlvbiIsInF1ZXJ5U2VsZWN0b3IiLCJoYW5kbGVGQVFDbGljayIsImZhcVNlY3Rpb24iLCJoYW5kbGVDb250YWN0Q2xpY2siLCJoYW5kbGVKb3VybmFsQ2xpY2siLCJoYW5kbGVUZXJtc0NsaWNrIiwiaGFuZGxlUHJpdmFjeUNsaWNrIiwiYmFja2dyb3VuZENvbG9yIiwibWF4V2lkdGgiLCJib3JkZXIiLCJ0YXJnZXQiLCJ2YWx1ZSIsImxldHRlclNwYWNpbmciLCJib3JkZXJMZWZ0IiwiYmFja2dyb3VuZCIsInBhZGRpbmciLCJjdXJzb3IiLCJib3JkZXJDb2xvciIsIl9jMiIsIiRSZWZyZXNoUmVnJCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlcyI6WyJGb290ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IExpbmssIHVzZUxvY2F0aW9uIH0gZnJvbSAnd291dGVyJztcbmltcG9ydCB7IEZhSW5zdGFncmFtLCBGYVRpa3RvaywgRmFMaW5rZWRpbkluLCBGYVBpbnRlcmVzdCwgRmFGYWNlYm9va0YgfSBmcm9tICdyZWFjdC1pY29ucy9mYSc7XG5pbXBvcnQgeyB1c2VMYW5ndWFnZSB9IGZyb20gJ0AvbGliL0xhbmd1YWdlQ29udGV4dCc7XG5pbXBvcnQgeyB1c2VDdXJyZW5jeSwgQ3VycmVuY3ksIGN1cnJlbmN5U3ltYm9scyB9IGZyb20gJ0AvbGliL0N1cnJlbmN5Q29udGV4dCc7XG5pbXBvcnQgQ29va2llU2V0dGluZ3NQYW5lbCBmcm9tICdAL2NvbXBvbmVudHMvQ29va2llU2V0dGluZ3NQYW5lbCc7XG5pbXBvcnQgeyBhcGlSZXF1ZXN0IH0gZnJvbSAnQC9saWIvcXVlcnlDbGllbnQnO1xuaW1wb3J0IHsgdXNlVG9hc3QgfSBmcm9tICdAL2hvb2tzL3VzZS10b2FzdCc7XG5pbXBvcnQgeyB0cmFja1dhaXRsaXN0U2lnbnVwIH0gZnJvbSAnQC9saWIvYW5hbHl0aWNzJztcblxuY29uc3QgY3VycmVuY3lGbGFnczogUmVjb3JkPEN1cnJlbmN5LCBzdHJpbmc+ID0ge1xuICBYT0Y6ICfwn4e48J+HsycsXG4gIFVTRDogJ/Cfh7rwn4e4JyxcbiAgRVVSOiAn8J+HqvCfh7onLFxuICBHQlA6ICfwn4es8J+HpycsXG4gIENBRDogJ/Cfh6jwn4emJyxcbn07XG5cbmNvbnN0IEN1cnJlbmN5Rm9vdGVyU2VsZWN0b3I6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCB7IGN1cnJlbmN5LCBzZXRDdXJyZW5jeSB9ID0gdXNlQ3VycmVuY3koKTtcbiAgY29uc3QgY3VycmVuY2llczogQ3VycmVuY3lbXSA9IFsnWE9GJywgJ1VTRCcsICdFVVInLCAnR0JQJywgJ0NBRCddO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAge2N1cnJlbmNpZXMubWFwKChjdXJyKSA9PiAoXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBrZXk9e2N1cnJ9XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0Q3VycmVuY3koY3Vycil9XG4gICAgICAgICAgY2xhc3NOYW1lPXtgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEgdGV4dC14cyB0cmFuc2l0aW9uLW9wYWNpdHkgJHtcbiAgICAgICAgICAgIGN1cnJlbmN5ID09PSBjdXJyID8gJ29wYWNpdHktMTAwJyA6ICdvcGFjaXR5LTQwIGhvdmVyOm9wYWNpdHktNzAnXG4gICAgICAgICAgfWB9XG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIGZvbnRGYW1pbHk6ICdIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmJyxcbiAgICAgICAgICAgIGZvbnRXZWlnaHQ6IGN1cnJlbmN5ID09PSBjdXJyID8gNDAwIDogMzAwLFxuICAgICAgICAgICAgY29sb3I6ICcjMUExQTFBJ1xuICAgICAgICAgI
798H19XG4gICAgICAgICAgZGF0YS10ZXN0aWQ9e2Bmb290ZXItY3VycmVuY3ktJHtjdXJyfWB9XG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiBzdHlsZT17eyBmb250U2l6ZTogJzEycHgnIH19PntjdXJyZW5jeUZsYWdzW2N1cnJdfTwvc3Bhbj5cbiAgICAgICAgICA8c3Bhbj57Y3Vycn0ge2N1cnJlbmN5U3ltYm9sc1tjdXJyXX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgKSl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5jb25zdCBGb290ZXI6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCB7IHQsIGxhbmd1YWdlIH0gPSB1c2VMYW5ndWFnZSgpO1xuICBjb25zdCBbbG9jYXRpb24sIHNldExvY2F0aW9uXSA9IHVzZUxvY2F0aW9uKCk7XG4gIGNvbnN0IFtzaG93Q29va2llU2V0dGluZ3MsIHNldFNob3dDb29raWVTZXR0aW5nc10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtmb290ZXJFbWFpbCwgc2V0Rm9vdGVyRW1haWxdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbaXNTdWJtaXR0aW5nLCBzZXRJc1N1Ym1pdHRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCB7IHRvYXN0IH0gPSB1c2VUb2FzdCgpO1xuICBcbiAgLy8gSGlkZSBtYWlsaW5nIGxpc3QgZm9ybSBvbiBwbGF5Ym9vayBwYWdlc1xuICBjb25zdCBpc1BsYXlib29rUGFnZSA9IGxvY2F0aW9uID09PSAnL3BsYXlib29rJyB8fCBsb2NhdGlvbiA9PT0gJy9za2luY2FyZS1ndWlkZSc7XG5cbiAgY29uc3QgaGFuZGxlRm9vdGVyRW1haWxTdWJtaXQgPSBhc3luYyAoZTogUmVhY3QuRm9ybUV2ZW50KSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IGVtYWlsUmVnZXggPSAvXlteXFxzQF0rQFteXFxzQF0rXFwuW15cXHNAXSskLztcbiAgICBpZiAoIWZvb3RlckVtYWlsIHx8ICFlbWFpbFJlZ2V4LnRlc3QoZm9vdGVyRW1haWwpKSB7XG4gICAgICB0b2FzdCh7XG4gICAgICAgIHRpdGxlOiBsYW5ndWFnZSA9PT0gJ2ZyJyA/ICdFcnJldXInIDogJ0Vycm9yJyxcbiAgICAgICAgZGVzY3JpcHRpb246IGxhbmd1YWdlID09PSAnZnInID8gJ1ZldWlsbGV6IGVudHJlciB1bmUgYWRyZXNzZSBlbWFpbCB2YWxpZGUuJyA6ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzLicsXG4gICAgICAgIHZhcmlhbnQ6ICdkZXN0cnVjdGl2ZScsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRJc1N1Ym1pdHRpbmcodHJ1ZSk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGFwaVJlcXVlc3QoJy9hcGkvd2FpdGxpc3QnLCB7XG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBkYXRhOiB7IGVtYWlsOiBmb290ZXJFbWFpbCwgc291cmNlOiAnZm9vdGVyJywgbGFuZ3VhZ2UgfSxcbiAgICAgIH0pO1xuICAgICAgdHJhY2tXYWl0bGlzdFNpZ251cCgnZm9vdGVyJyk7XG4gICAgICB0b2FzdCh7XG4gICAgICAgIHRpdGxlOiBsYW5ndWFnZSA9PT0gJ2ZyJyA/IFwiVm91cyDDqnRlcyBzdXIgbGEgbGlzdGUgIVwiIDogXCJZb3UncmUgb24gdGhlIGxpc3QhXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBsYW5ndWFnZSA9PT0gJ2ZyJyA/IFwiQmllbnZlbnVlIGNoZXogS1lOICFcIiA6IFwiV2VsY29tZSB0byBLWU4hXCIsXG4gICAgICB9KTtcbiAgICAgIHNldEZvb3RlckVtYWlsKCcnKTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBpZiAoZXJyb3IubWVzc2FnZT8uaW5jbHVkZXMoJ2FscmVhZHknKSkge1xuICAgICAgICB0b2FzdCh7XG4gICAgICAgICAgdGl0bGU6IGxhbmd1YWdlID09PSAnZnInID8gJ0TDqWrDoCBhdmVjIG5vdXMnIDogJ0FscmVhZHkgd2l0aCB1cycsXG4gICAgICAgICAgZGVzY3JpcHRpb246IGxhbmd1YWdlID09PSAnZnInID8gJ0NldCBlbWFpbCBmYWl0IGTDqWrDoCBwYXJ0aWUgZGUgbm90cmUgY29tbXVuYXV0w6kuJyA6ICdUaGlzIGVtYWlsIGlzIGFscmVhZHkgcGFydCBvZiBvdXIgY29tbXVuaXR5LicsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdG9hc3Qoe1xuICAgICAgICAgIHRpdGxlOiBsYW5ndWFnZSA9PT0gJ2ZyJyA/ICdFcnJldXInIDogJ0Vycm9yJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogbGFuZ3VhZ2UgPT09ICdmcicgPyAnVW5lIGVycmV1ciBlc3Qgc3VydmVudWUuJyA6ICdTb21ldGhpbmcgd2VudCB3cm9uZy4nLFxuICAgICAgICAgIHZhcmlhbnQ6ICdkZXN0cnVjdGl2ZScsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRJc1N1Ym1pdHRpbmcoZmFsc2UpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVMb2dvQ2xpY2sgPSAoZTogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IDAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVBYm91dENsaWNrID0gKGU6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKGxvY2F0aW9uID09PSAnLycpIHtcbiAgICAgIGNvbnN0IGFib3V0U2VjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcm9tLXVzLXRvLXlvdScpO1xuICAgICAgaWYgKGFib3V0U2VjdGlvbikge1xuICAgICAgICBjb25zdCBuYXZIZWlnaHQgPSAxMTg7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRQb3NpdGlvbiA9IGFib3V0U2VjdGlvbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyB3aW5kb3cuc2Nyb2xsWTtcbiAgICAgICAgd2luZG93LnNjcm9sbFRvKHsgdG9wOiBlbGVtZW50UG9zaXRpb24gLSBuYXZIZWlnaHQsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc2V0TG9jYXRpb24oJy8nKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBjb25zdCBhYm91dFNlY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZnJvbS11cy10by15b3UnKTtcbiAgICAgICAgaWYgKGFib3V0U2VjdGlvbikge1xuICAgICAgICAgIGNvbnN0IG5hdkhlaWdodCA9IDExODtcbiAgICAgICAgICBjb25zdCBlbGVtZW50UG9zaXRpb24gPSBhYm91dFNlY3Rpb24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnNjcm9sbFk7XG4gICAgICAgICAgd2luZG93LnNjcm9sbFRvKHsgdG9wOiBlbGVtZW50UG9zaXRpb24gLSBuYXZIZWlnaHQsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICAgICAgfVxuICAgICAgfSwgMTAwKTtcbiAgICB9XG4gI
798H07XG5cbiAgY29uc3QgaGFuZGxlV2FpdGxpc3RDbGljayA9IChlOiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmIChsb2NhdGlvbiA9PT0gJy8nKSB7XG4gICAgICBjb25zdCBzZWN0aW9uID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtc3Vic2NyaXB0aW9uLXNlY3Rpb25dJyk7XG4gICAgICBpZiAoc2VjdGlvbikge1xuICAgICAgICBjb25zdCBuYXZIZWlnaHQgPSAxMTg7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRQb3NpdGlvbiA9IHNlY3Rpb24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnNjcm9sbFk7XG4gICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogZWxlbWVudFBvc2l0aW9uIC0gbmF2SGVpZ2h0LCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldExvY2F0aW9uKCcvJyk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3Qgc2VjdGlvbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXN1YnNjcmlwdGlvbi1zZWN0aW9uXScpO1xuICAgICAgICBpZiAoc2VjdGlvbikge1xuICAgICAgICAgIGNvbnN0IG5hdkhlaWdodCA9IDExODtcbiAgICAgICAgICBjb25zdCBlbGVtZW50UG9zaXRpb24gPSBzZWN0aW9uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHdpbmRvdy5zY3JvbGxZO1xuICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogZWxlbWVudFBvc2l0aW9uIC0gbmF2SGVpZ2h0LCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sIDEwMCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUZBUUNsaWNrID0gKGU6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKGxvY2F0aW9uID09PSAnLycpIHtcbiAgICAgIGNvbnN0IGZhcVNlY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmFxJyk7XG4gICAgICBpZiAoZmFxU2VjdGlvbikge1xuICAgICAgICBjb25zdCBuYXZIZWlnaHQgPSAxMTg7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRQb3NpdGlvbiA9IGZhcVNlY3Rpb24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnNjcm9sbFk7XG4gICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogZWxlbWVudFBvc2l0aW9uIC0gbmF2SGVpZ2h0LCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldExvY2F0aW9uKCcvJyk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgZmFxU2VjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmYXEnKTtcbiAgICAgICAgaWYgKGZhcVNlY3Rpb24pIHtcbiAgICAgICAgICBjb25zdCBuYXZIZWlnaHQgPSAxMTg7XG4gICAgICAgICAgY29uc3QgZWxlbWVudFBvc2l0aW9uID0gZmFxU2VjdGlvbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyB3aW5kb3cuc2Nyb2xsWTtcbiAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IGVsZW1lbnRQb3NpdGlvbiAtIG5hdkhlaWdodCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgICAgICB9XG4gICAgICB9LCAxMDApO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVDb250YWN0Q2xpY2sgPSAoZTogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBzZXRMb2NhdGlvbignL2NvbnRhY3QnKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgIH0sIDEwMCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlSm91cm5hbENsaWNrID0gKGU6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IDAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVUZXJtc0NsaWNrID0gKGU6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IDAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVQcml2YWN5Q2xpY2sgPSAoZTogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGZvb3RlciBzdHlsZT17eyBiYWNrZ3JvdW5kQ29sb3I6ICcjZjVmNWY1JyB9fT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWF4LXctN3hsIG14LWF1dG8gcHgtNiBsZzpwbC02IGxnOnByLTEyIHB5LTEyIGxnOnB5LTE2XCI+XG4gICAgICAgIHsvKiBEZXNrdG9wIExheW91dCAqL31cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoaWRkZW4gbGc6ZmxleCBsZzpqdXN0aWZ5LWJldHdlZW4gbGc6Z2FwLTE2XCI+XG4gICAgICAgICAgey8qIExlZnQgU2lkZSAtIExvZ28sIFRleHQsIEVtYWlsLCBTb2NpYWwgSWNvbnMgKi99XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxhIFxuICAgICAgICAgICAgICBocmVmPVwiL1wiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUxvZ29DbGlja31cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW5saW5lLWJsb2NrIGN1cnNvci1wb2ludGVyIGhvdmVyOm9wYWNpdHktNzAgdHJhbnNpdGlvbi1vcGFjaXR5XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGgyIFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtNHhsIG1kOnRleHQtNXhsIGZvbnQtbm9ybWFsIHRyYWNraW5nLXdpZGVyXCJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBmb250RmFtaWx5OiBcIkhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWZcIiwgY29sb3I6ICcjMUExQTFBJyB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgS1lOXG4gICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHshaXNQbGF5Ym9va1BhZ2UgJiYgKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIDxwIFxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXQtOCB0ZXh0LXNtIGxlYWRpbmctcmVsYXhlZCB3aGl0ZXNwYWNlLW5vd3JhcFwiXG4gICAgICAgICAgICAgICAgICBzdHlsZT17eyBmb250RmFtaWx5OiBcIkhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWZcIiwgZm9udFdlaWdodDogMzAwLCBjb2xvcjogJyMxQTFBMUEnIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2xhbmd1YWdlID09PSAnZnInIFxuICAgICAgICAgICAgICAgICAgICA/IFwiUmVqb2lnbmV6IG5vdHJlIGxpc3RlIHBvdXIgw6p0cmUgbGVzIHByZW1pZXJzIGluZm9ybcOpcyBkZSB0b3V0ZXMgbGVzIG5vdXZlYXV0w6lzIEtZTi5cIiBcbiAgICAgICAgICAgICAgICAgICAgOiAnSm9pbiBvdXIgbWFpbGluZyBsaXN0IHRvIGJlIHRoZSBmaXJzdCB0byBoZWFyIGFib3V0IGFsbCB0aGluZ3MgS1lOLid9XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDxmb3JtIFxuICAgICAgICAgICAgICAgICAgb25TdWJtaXQ9e2hhbmRsZUZvb3RlckVtYWlsU3VibWl0fVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1zdHJldGNoIG10LTZcIlxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgbWF4V2lkdGg6ICc0MDBweCcsIGJvcmRlcjogJzFweCBzb2xpZCAjMUExQTFBJyB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eX
798BlPVwiZW1haWxcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Zm9vdGVyRW1haWx9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0Rm9vdGVyRW1haWwoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkUtbWFpbFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXgtMSBweC00IHB5LTMgZm9jdXM6b3V0bGluZS1ub25lXCJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgZm9udEZhbWlseTogXCJIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmXCIsIGZvbnRTaXplOiAnMTNweCcsIGZvbnRXZWlnaHQ6IDMwMCwgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLCBib3JkZXI6ICdub25lJywgY29sb3I6ICcjMUExQTFBJyB9fVxuICAgICAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImZvb3Rlci1pbnB1dC1lbWFpbFwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzU3VibWl0dGluZ31cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicHgtNSB1cHBlcmNhc2UgdHJhbnNpdGlvbi1vcGFjaXR5IGhvdmVyOm9wYWNpdHktNzAgZGlzYWJsZWQ6b3BhY2l0eS01MFwiXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JywgY29sb3I6ICcjMUExQTFBJywgZm9udEZhbWlseTogXCJIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmXCIsIGZvbnRXZWlnaHQ6IDMwMCwgbGV0dGVyU3BhY2luZzogJzFweCcsIGJvcmRlcjogJ25vbmUnLCBib3JkZXJMZWZ0OiAnMXB4IHNvbGlkICMxQTFBMUEnLCBmb250U2l6ZTogJzExcHgnIH19XG4gICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiZm9vdGVyLWJ1dHRvbi1zdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7aXNTdWJtaXR0aW5nID8gJy4uLicgOiAobGFuZ3VhZ2UgPT09ICdmcicgPyAnRU5WT1lFUicgOiAnU1VCU0NSSUJFJyl9XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgey8qIFNvY2lhbCBJY29ucyBSb3cgKi99XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIG10LThcIj5cbiAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vd3d3Lmluc3RhZ3JhbS5jb20va3luX2NhcmUvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiIGNsYXNzTmFtZT1cImhvdmVyOm9wYWNpdHktNjAgdHJhbnNpdGlvbi1vcGFjaXR5XCIgYXJpYS1sYWJlbD1cIkluc3RhZ3JhbVwiPlxuICAgICAgICAgICAgICAgIDxGYUluc3RhZ3JhbSBzaXplPXsyMH0gY29sb3I9XCIjMUExQTFBXCIgLz5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3NoYXJlLzFLNVVpdXlGNmMvP21pYmV4dGlkPXd3WElmclwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiBjbGFzc05hbWU9XCJob3ZlcjpvcGFjaXR5LTYwIHRyYW5zaXRpb24tb3BhY2l0eVwiIGFyaWEtbGFiZWw9XCJGYWNlYm9va1wiPlxuICAgICAgICAgICAgICAgIDxGYUZhY2Vib29rRiBzaXplPXsyMH0gY29sb3I9XCIjMUExQTFBXCIgLz5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly93d3cudGlrdG9rLmNvbS9Aa3luX2NhcmVcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgY2xhc3NOYW1lPVwiaG92ZXI6b3BhY2l0eS02MCB0cmFuc2l0aW9uLW9wYWNpdHlcIiBhcmlhLWxhYmVsPVwiVGlrVG9rXCI+XG4gICAgICAgICAgICAgICAgPEZhVGlrdG9rIHNpemU9ezIwfSBjb2xvcj1cIiMxQTFBMUFcIiAvPlxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3d3dy5saW5rZWRpbi5jb20vY29tcGFueS9reW4tY2FyZS9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgY2xhc3NOYW1lPVwiaG92ZXI6b3BhY2l0eS02MCB0cmFuc2l0aW9uLW9wYWNpdHlcIiBhcmlhLWxhYmVsPVwiTGlua2VkSW5cIj5cbiAgICAgICAgICAgICAgICA8RmFMaW5rZWRpbkluIHNpemU9ezIwfSBjb2xvcj1cIiMxQTFBMUFcIiAvPlxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3d3dy5waW50ZXJlc3QuY29tL2t5bl9jYXJlL1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiBjbGFzc05hbWU9XCJob3ZlcjpvcGFjaXR5LTYwIHRyYW5zaXRpb24tb3BhY2l0eVwiIGFyaWEtbGFiZWw9XCJQaW50ZXJlc3RcIj5cbiAgICAgICAgICAgICAgICA8RmFQaW50ZXJlc3Qgc2l6ZT17MjB9IGNvbG9yPVwiIzFBMUExQVwiIC8+XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIHsvKiBSaWdodCBTaWRlIC0gU2xvZ2FuICsgMiBDb2x1bW5zICovfVxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8cCBcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1zbSB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXN0IG1iLTEwXCJcbiAgICAgICAgICAgICAgc3R5bGU9e3sgZm9udEZhbWlseTogXCJIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmXCIsIGZvbnRXZWlnaHQ6IDQwMCwgY29sb3I6ICcjMUExQTFBJywgbGV0dGVyU3BhY2luZzogJzJweCcgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2xhbmd1YWdlID09PSAnZnInID8gXCJMJ0lOTk9WQVRJT04gw4AgQ0hBUVVFIENPVUNIRSBERSBMQSBCRUFVVMOJLlwiIDogJ0lOTk9WQVRJT04gRk9SIEVWRVJZIExBWUVSIE9GIEJFQVVUWS4nfVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTIgZ2FwLTEyXCI+XG4gICAgICAgICAgICAgI
798HsvKiBCUkFORCAqL31cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC1zbSB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXIgbWItNVwiIHN0eWxlPXt7IGZvbnRGYW1pbHk6IFwiSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZlwiLCBmb250V2VpZ2h0OiA1MDAsIGNvbG9yOiAnIzFBMUExQScsIGxldHRlclNwYWNpbmc6ICcxLjVweCcgfX0+XG4gICAgICAgICAgICAgICAgICB7dCgnYnJhbmQnKX1cbiAgICAgICAgICAgICAgICA8L2gzPlxuICAgICAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJzcGFjZS15LTNcIj5cbiAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPVwiLyNzdWJzY3JpYmUtc2VjdGlvblwiIG9uQ2xpY2s9e2hhbmRsZVdhaXRsaXN0Q2xpY2t9IGNsYXNzTmFtZT1cInRleHQtc20gaG92ZXI6b3BhY2l0eS02MCB0cmFuc2l0aW9uLW9wYWNpdHlcIiBzdHlsZT17eyBmb250RmFtaWx5OiBcIkhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWZcIiwgZm9udFdlaWdodDogMzAwLCBjb2xvcjogJyMxQTFBMUEnIH19Pnt0KCd3YWl0bGlzdE5hdicpfTwvYT48L2xpPlxuICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9XCIvI2ZhcVwiIG9uQ2xpY2s9e2hhbmRsZUZBUUNsaWNrfSBjbGFzc05hbWU9XCJ0ZXh0LXNtIGhvdmVyOm9wYWNpdHktNjAgdHJhbnNpdGlvbi1vcGFjaXR5XCIgc3R5bGU9e3sgZm9udEZhbWlseTogXCJIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmXCIsIGZvbnRXZWlnaHQ6IDMwMCwgY29sb3I6ICcjMUExQTFBJyB9fT57dCgnZmFxTmF2Jyl9PC9hPjwvbGk+XG4gICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj1cIi9jb250YWN0XCIgb25DbGljaz17aGFuZGxlQ29udGFjdENsaWNrfSBjbGFzc05hbWU9XCJ0ZXh0LXNtIGhvdmVyOm9wYWNpdHktNjAgdHJhbnNpdGlvbi1vcGFjaXR5XCIgc3R5bGU9e3sgZm9udEZhbWlseTogXCJIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmXCIsIGZvbnRXZWlnaHQ6IDMwMCwgY29sb3I6ICcjMUExQTFBJyB9fT57dCgnY29udGFjdFVzJyl9PC9hPjwvbGk+XG4gICAgICAgICAgICAgICAgICA8bGk+PExpbmsgaHJlZj1cIi9zdXBwbHktY2hhaW5cIiBvbkNsaWNrPXsoKSA9PiB3aW5kb3cuc2Nyb2xsVG8oMCwgMCl9IGNsYXNzTmFtZT1cInRleHQtc20gaG92ZXI6b3BhY2l0eS02MCB0cmFuc2l0aW9uLW9wYWNpdHlcIiBzdHlsZT17eyBmb250RmFtaWx5OiBcIkhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWZcIiwgZm9udFdlaWdodDogMzAwLCBjb2xvcjogJyMxQTFBMUEnIH19IGRhdGEtdGVzdGlkPVwiZm9vdGVyLWxpbmstc3VwcGx5LWNoYWluXCI+e3QoJ2t5blN1cHBseUNoYWluQWN0Jyl9PC9MaW5rPjwvbGk+XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICB7LyogTEVHQUwgKi99XG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtc20gdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVyIG1iLTVcIiBzdHlsZT17eyBmb250RmFtaWx5OiBcIkhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWZcIiwgZm9udFdlaWdodDogNTAwLCBjb2xvcjogJyMxQTFBMUEnLCBsZXR0ZXJTcGFjaW5nOiAnMS41cHgnIH19PlxuICAgICAgICAgICAgICAgICAge3QoJ2xlZ2FsJyl9XG4gICAgICAgICAgICAgICAgPC9oMz5cbiAgICAgICAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwic3BhY2UteS0zXCI+XG4gICAgICAgICAgICAgICAgICA8bGk+PExpbmsgaHJlZj1cIi90ZXJtc1wiIG9uQ2xpY2s9e2hhbmRsZVRlcm1zQ2xpY2t9IGNsYXNzTmFtZT1cInRleHQtc20gaG92ZXI6b3BhY2l0eS02MCB0cmFuc2l0aW9uLW9wYWNpdHlcIiBzdHlsZT17eyBmb250RmFtaWx5OiBcIkhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWZcIiwgZm9udFdlaWdodDogMzAwLCBjb2xvcjogJyMxQTFBMUEnIH19Pnt0KCd0ZXJtcycpfTwvTGluaz48L2xpPlxuICAgICAgICAgICAgICAgICAgPGxpPjxMaW5rIGhyZWY9XCIvcHJpdmFjeVwiIG9uQ2xpY2s9e2hhbmRsZVByaXZhY3lDbGlja30gY2xhc3NOYW1lPVwidGV4dC1zbSBob3ZlcjpvcGFjaXR5LTYwIHRyYW5zaXRpb24tb3BhY2l0eVwiIHN0eWxlPXt7IGZvbnRGYW1pbHk6IFwiSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZlwiLCBmb250V2VpZ2h0OiAzMDAsIGNvbG9yOiAnIzFBMUExQScgfX0+e3QoJ3ByaXZhY3knKX08L0xpbms+PC9saT5cbiAgICAgICAgICAgICAgICAgIDxsaT48YnV0dG9uIG9uQ2xpY2s9eygpID0+IHNldFNob3dDb29raWVTZXR0aW5ncyh0cnVlKX0gY2xhc3NOYW1lPVwidGV4dC1zbSBob3ZlcjpvcGFjaXR5LTYwIHRyYW5zaXRpb24tb3BhY2l0eSB0ZXh0LWxlZnRcIiBzdHlsZT17eyBmb250RmFtaWx5OiBcIkhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWZcIiwgZm9udFdlaWdodDogMzAwLCBjb2xvcjogJyMxQTFBMUEnLCBiYWNrZ3JvdW5kOiAnbm9uZScsIGJvcmRlcjogJ25vbmUnLCBwYWRkaW5nOiAwLCBjdXJzb3I6ICdwb2ludGVyJyB9fSBkYXRhLXRlc3RpZD1cImZvb3Rlci1saW5rLWNvb2tpZXNcIj57dCgnY29va2llUHJlZmVyZW5jZXMnKX08L2J1dHRvbj48L2xpPlxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBcbiAgICAgICAgey8qIE1vYmlsZSBMYXlvdXQgKi99XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGc6aGlkZGVuXCI+XG4gICAgICAgICAgey8qIExvZ28gKi99XG4gICAgICAgICAgPGEgaHJlZj1cIi9cIiBvbkNsaWNrPXtoYW5kbGVMb2dvQ2xpY2t9IGNsYXNzTmFtZT1cImlubGluZS1ibG9jayBjdXJzb3ItcG9pbnRlciBob3ZlcjpvcGFjaXR5LTcwIHRyYW5zaXRpb24tb3BhY2l0eVwiPlxuICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQtNHhsIGZvbnQtbm9ybWFsIHRyYWNraW5nLXdpZGVyXCIgc3R5bGU9e3sgZm9udEZhbWlseTogXCJIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmXCIsIGNvbG9yOiAnIzFBMUExQScgfX0+S1lOPC9oMj5cbiAgICAgICAgICA8L2E+XG4gICAgICAgICAgXG4gICAgICAgICAgeyFpc1BsYXlib29rUGFnZSAmJiAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7LyogTWFpbGluZyBsaXN0IHRleHQgKi99XG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cIm10LTYgdGV4dC1zbSBsZWFkaW5nLXJlbGF4ZWRcIiBzdHlsZT17eyBmb250RmFtaWx5OiBcIkhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWZcIiwgZm9udFdlaWdodDogMzAwLCBjb2xvcjogJyMxQTFBMUEnIH19PlxuICAgICAgICAgICAgICAgI
798HtsYW5ndWFnZSA9PT0gJ2ZyJyA/IFwiUmVqb2lnbmV6IG5vdHJlIGxpc3RlIHBvdXIgw6p0cmUgbGVzIHByZW1pZXJzIGluZm9ybcOpcy5cIiA6ICdKb2luIG91ciBtYWlsaW5nIGxpc3QgdG8gYmUgdGhlIGZpcnN0IHRvIGhlYXIgYWJvdXQgYWxsIHRoaW5ncyBLWU4uJ31cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgey8qIEVtYWlsIGZvcm0gKi99XG4gICAgICAgICAgICAgIDxmb3JtIG9uU3VibWl0PXtoYW5kbGVGb290ZXJFbWFpbFN1Ym1pdH0gY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1zdHJldGNoIG10LTRcIiBzdHlsZT17eyBib3JkZXI6ICcxcHggc29saWQgI0NDQ0NDQycgfX0+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICB0eXBlPVwiZW1haWxcIlxuICAgICAgICAgICAgICAgICAgdmFsdWU9e2Zvb3RlckVtYWlsfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRGb290ZXJFbWFpbChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkUtbWFpbFwiXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmbGV4LTEgcHgtMyBweS0yLjUgZm9jdXM6b3V0bGluZS1ub25lIHRleHQtc21cIlxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgZm9udEZhbWlseTogXCJIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmXCIsIGZvbnRXZWlnaHQ6IDMwMCwgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLCBib3JkZXI6ICdub25lJywgY29sb3I6ICcjMUExQTFBJyB9fVxuICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJmb290ZXItaW5wdXQtZW1haWwtbW9iaWxlXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzU3VibWl0dGluZ31cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInB4LTQgdXBwZXJjYXNlIHRyYW5zaXRpb24tb3BhY2l0eSBob3ZlcjpvcGFjaXR5LTcwIGRpc2FibGVkOm9wYWNpdHktNTAgdGV4dC14c1wiXG4gICAgICAgICAgICAgICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsIGNvbG9yOiAnIzFBMUExQScsIGZvbnRGYW1pbHk6IFwiSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZlwiLCBmb250V2VpZ2h0OiA0MDAsIGxldHRlclNwYWNpbmc6ICcxcHgnLCBib3JkZXI6ICdub25lJywgYm9yZGVyTGVmdDogJzFweCBzb2xpZCAjQ0NDQ0NDJyB9fVxuICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJmb290ZXItYnV0dG9uLXN1Ym1pdC1tb2JpbGVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtpc1N1Ym1pdHRpbmcgPyAnLi4uJyA6IChsYW5ndWFnZSA9PT0gJ2ZyJyA/ICdFTlZPWUVSJyA6ICdTVUJTQ1JJQkUnKX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICBcbiAgICAgICAgICB7LyogMyBDb2x1bW5zICovfVxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMyBnYXAtNiBtdC0xMFwiPlxuICAgICAgICAgICAgey8qIEJSQU5EICovfVxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQteHMgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVyIG1iLTNcIiBzdHlsZT17eyBmb250RmFtaWx5OiBcIkhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWZcIiwgZm9udFdlaWdodDogNTAwLCBjb2xvcjogJyMxQTFBMUEnLCBsZXR0ZXJTcGFjaW5nOiAnMXB4JyB9fT57dCgnYnJhbmQnKX08L2gzPlxuICAgICAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwic3BhY2UteS0yXCI+XG4gICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9XCIvI3N1YnNjcmliZS1zZWN0aW9uXCIgb25DbGljaz17aGFuZGxlV2FpdGxpc3RDbGlja30gY2xhc3NOYW1lPVwidGV4dC1zbSBob3ZlcjpvcGFjaXR5LTYwIHRyYW5zaXRpb24tb3BhY2l0eVwiIHN0eWxlPXt7IGZvbnRGYW1pbHk6IFwiSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZlwiLCBmb250V2VpZ2h0OiAzMDAsIGNvbG9yOiAnIzFBMUExQScgfX0+e3QoJ3dhaXRsaXN0TmF2Jyl9PC9hPjwvbGk+XG4gICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9XCIvI2ZhcVwiIG9uQ2xpY2s9e2hhbmRsZUZBUUNsaWNrfSBjbGFzc05hbWU9XCJ0ZXh0LXNtIGhvdmVyOm9wYWNpdHktNjAgdHJhbnNpdGlvbi1vcGFjaXR5XCIgc3R5bGU9e3sgZm9udEZhbWlseTogXCJIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmXCIsIGZvbnRXZWlnaHQ6IDMwMCwgY29sb3I6ICcjMUExQTFBJyB9fT57dCgnZmFxTmF2Jyl9PC9hPjwvbGk+XG4gICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9XCIvY29udGFjdFwiIG9uQ2xpY2s9e2hhbmRsZUNvbnRhY3RDbGlja30gY2xhc3NOYW1lPVwidGV4dC1zbSBob3ZlcjpvcGFjaXR5LTYwIHRyYW5zaXRpb24tb3BhY2l0eVwiIHN0eWxlPXt7IGZvbnRGYW1pbHk6IFwiSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZlwiLCBmb250V2VpZ2h0OiAzMDAsIGNvbG9yOiAnIzFBMUExQScgfX0+e3QoJ2NvbnRhY3RVcycpfTwvYT48L2xpPlxuICAgICAgICAgICAgICAgIDxsaT48TGluayBocmVmPVwiL3N1cHBseS1jaGFpblwiIG9uQ2xpY2s9eygpID0+IHdpbmRvdy5zY3JvbGxUbygwLCAwKX0gY2xhc3NOYW1lPVwidGV4dC1zbSBob3ZlcjpvcGFjaXR5LTYwIHRyYW5zaXRpb24tb3BhY2l0eVwiIHN0eWxlPXt7IGZvbnRGYW1pbHk6IFwiSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZlwiLCBmb250V2VpZ2h0OiAzMDAsIGNvbG9yOiAnIzFBMUExQScgfX0+e3QoJ2t5blN1cHBseUNoYWluQWN0Jyl9PC9MaW5rPjwvbGk+XG4gICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgey8qIEZPTExPVyAqL31cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LXhzIHVwcGVyY2FzZSB0cmFja2luZy13aWRlciBtYi0zXCIgc3R5bGU9e3sgZm9udEZhbWlseTogXCJIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmXCIsIGZvbnRXZWlnaHQ6IDUwMCwgY29sb3I6ICcjMUExQTFBJywgbGV0dGVyU3BhY2luZzogJzFweCcgfX0+e2xhbmd1YWdlID09PSAnZnInID8gJ1NVSVZSRScgOiAnRk9MTE9XJ308L2gzPlxuICAgICAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwic3BhY2UteS0yXCI+XG4gICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9XCJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL2t5bl9jYXJlL1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiBjbGFzc05hbWU9XCJ0ZXh0LXNtIGhvdmVyOm9wYWNpdHktNjAgdHJhbnNpdGlvbi1vcGFjaXR5XCIgc3R5bGU9e3sgZm9udEZhbWlseTogXCJIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmXCIsIGZvbnRXZWlnaHQ6IDMwMCwgY29sb3I6ICcjMUExQTFBJyB9fT5JbnN0YWdyYW08L2E+PC9saT5cbiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj1cImh0dHBzOi8vd3d3LnRpa3Rvay5jb20vQGt5bl9jYXJlXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiIGNsYXNzTmFtZT1cInRleHQtc20gaG92ZXI6b3BhY2l0eS02MCB0cmFuc2l0aW9uLW9wYWNpdHlcIiBzdHlsZT17eyBmb250RmFtaWx5OiBcIkhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWZcIiwgZm9udFdlaWdodDogMzAwLCBjb2xvcjogJyMxQTFBMUEnIH19PlRpa1RvazwvYT48L2xpPlxuICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPVwiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3NoYXJlLzFLNVVpdXlGNmMvP21pYmV4dGlkPXd3WElmclwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiBjbGFzc05hbWU9XCJ0ZXh0LXNtIGhvdmVyOm9wYWNpdHktNjAgdHJhbnNpdGlvbi1vcGFjaXR5XCIgc3R5bGU9e3sgZm9udEZhbWlseTogXCJIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmXCIsIGZvbnRXZWlnaHQ6IDMwMCwgY29sb3I6ICcjMUExQTFBJyB9fT5GYWNlYm9vazwvYT48L2xpPlxuICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPVwiaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2NvbXBhbnkva3luLWNhcmUvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiIGNsYXNzTmFtZT1cInRleHQtc20gaG92ZXI6b3BhY2l0eS02MCB0cmFuc2l0aW9uLW9wYWNpdHlcIiBzdHlsZT17eyBmb250RmFtaWx5OiBcIkhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWZcIiwgZm9udFdlaWdodDogMzAwLCBjb2xvcjogJyMxQTFBMUEnIH19PkxpbmtlZEluPC9hPjwvbGk+XG4gICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgey8qIExFR0FMICovfVxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQteHMgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVyIG1iLTNcIiBzdHlsZT17eyBmb250RmFtaWx5OiBcIkhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWZcIiwgZm9udFdlaWdodDogNTAwLCBjb2xvcjogJyMxQTFBMUEnLCBsZXR0ZXJTcGFjaW5nOiAnMXB4JyB9fT57dCgnbGVnYWwnKX08L2gzPlxuICAgICAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwic3BhY2UteS0yXCI+XG4gICAgICAgICAgICAgICAgPGxpPjxMaW5rIGhyZWY9XCIvdGVybXNcIiBvbkNsaWNrPXtoYW5kbGVUZXJtc0NsaWNrfSBjbGFzc05hbWU9XCJ0ZXh0LXNtIGhvdmVyOm9wYWNpdHktNjAgdHJhbnNpdGlvbi1vcGFjaXR5XCIgc3R5bGU9e3sgZm9udEZhbWlseTogXCJIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmXCIsIGZvbnRXZWlnaHQ6IDMwMCwgY29sb3I6ICcjMUExQTFBJyB9fT57dCgndGVybXMnKX08L0xpbms+PC9saT5cbiAgICAgICAgICAgICAgICA8bGk+PExpbmsgaHJlZj1cIi9wcml2YWN5XCIgb25DbGljaz17aGFuZGxlUHJpdmFjeUNsaWNrfSBjbGFzc05hbWU9XCJ0ZXh0LXNtIGhvdmVyOm9wYWNpdHktNjAgdHJhbnNpdGlvbi1vcGFjaXR5XCIgc3R5bGU9e3sgZm9udEZhbWlseTogXCJIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmXCIsIGZvbnRXZWlnaHQ6IDMwMCwgY29sb3I6ICcjMUExQTFBJyB9fT57dCgncHJpdmFjeScpfTwvTGluaz48L2xpPlxuICAgICAgICAgICAgICAgIDxsaT48YnV0dG9uIG9uQ2xpY2s9eygpID0+IHNldFNob3dDb29raWVTZXR0aW5ncy
798h0cnVlKX0gY2xhc3NOYW1lPVwidGV4dC1zbSBob3ZlcjpvcGFjaXR5LTYwIHRyYW5zaXRpb24tb3BhY2l0eSB0ZXh0LWxlZnRcIiBzdHlsZT17eyBmb250RmFtaWx5OiBcIkhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWZcIiwgZm9udFdlaWdodDogMzAwLCBjb2xvcjogJyMxQTFBMUEnLCBiYWNrZ3JvdW5kOiAnbm9uZScsIGJvcmRlcjogJ25vbmUnLCBwYWRkaW5nOiAwLCBjdXJzb3I6ICdwb2ludGVyJyB9fT57dCgnY29va2llUHJlZmVyZW5jZXMnKX08L2J1dHRvbj48L2xpPlxuICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgIHsvKiBDb3B5cmlnaHQgKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImJvcmRlci10XCIgc3R5bGU9e3sgYm9yZGVyQ29sb3I6ICcjZTBlMGUwJyB9fT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXgtdy03eGwgbXgtYXV0byBweC02IGxnOnB4LTEyIHB5LTVcIj5cbiAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtY2VudGVyXCIgc3R5bGU9e3sgZm9udEZhbWlseTogXCJIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmXCIsIGZvbnRXZWlnaHQ6IDMwMCwgY29sb3I6ICcjMUExQTFBJyB9fT5cbiAgICAgICAgICAgIHt0KCdjb3B5cmlnaHQnKX1cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxDb29raWVTZXR0aW5nc1BhbmVsIGlzT3Blbj17c2hvd0Nvb2tpZVNldHRpbmdzfSBvbkNsb3NlPXsoKSA9PiBzZXRTaG93Q29va2llU2V0dGluZ3MoZmFsc2UpfSAvPlxuICAgIDwvZm9vdGVyPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBGb290ZXI7XG4iXSwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3Jrc3BhY2UvY2xpZW50L3NyYy9jb21wb25lbnRzL2xheW91dC9Gb290ZXIudHN4In0=
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.