From bab751fbf69e3ce14e70987489c8f835f3acccd1 Mon Sep 17 00:00:00 2001 From: Liliana Sanfilippo <liliana.sanfilippo@uni-bielefeld.de> Date: Sun, 15 Sep 2024 18:07:43 +0200 Subject: [PATCH] fixed pages.ts --- src/pages.ts | 11 +- ....timestamp-1723131218228-6c8a7f56f6db2.mjs | 407 ------------------ yarn.lock | 317 +++++++++++--- 3 files changed, 252 insertions(+), 483 deletions(-) delete mode 100644 vite.config.js.timestamp-1723131218228-6c8a7f56f6db2.mjs diff --git a/src/pages.ts b/src/pages.ts index 73d4d071..f5929e4c 100644 --- a/src/pages.ts +++ b/src/pages.ts @@ -10,7 +10,6 @@ Parts, Judging, Partners, - Measurement, Notebook, Results, Safety, @@ -21,7 +20,7 @@ } from "./contents"; import { DescSidebar, SafetySidebar, NoSidebar, EngSide } from "./contents"; -import { COLLH, JUDGEH, SUPH, PARTH, MESH, ENGH, HOMEH, HPH, SPONH, RESH, ATTH, CONTH, DESCH, EXPH, IMPH, NOTEH, SAFEH, TEAMH } from "./contents"; +import { COLLH, JUDGEH, SUPH, PARTH, ENGH, HOMEH, HPH, SPONH, RESH, ATTH, CONTH, DESCH, EXPH, IMPH, NOTEH, SAFEH, TEAMH } from "./contents"; interface Base { name: string | undefined; @@ -140,14 +139,6 @@ const Pages: (Page | Folder)[] = [ header: JUDGEH, navlist: NoSidebar, }, - { - name: "Measurement", - title: "Measurement", - path: "/measurement", - component: Measurement, - header: MESH, - navlist: NoSidebar, - }, { name: "Notebook", title: "Notebook", diff --git a/vite.config.js.timestamp-1723131218228-6c8a7f56f6db2.mjs b/vite.config.js.timestamp-1723131218228-6c8a7f56f6db2.mjs deleted file mode 100644 index 0c04a9e6..00000000 --- a/vite.config.js.timestamp-1723131218228-6c8a7f56f6db2.mjs +++ /dev/null @@ -1,407 +0,0 @@ -// vite.config.js -import { defineConfig, loadEnv } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/vite/dist/node/index.js"; -import react from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/@vitejs/plugin-react/dist/index.mjs"; - -// src/contents/Home.tsx -import { Fragment, jsx, jsxs } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/team.tsx -import { Fragment as Fragment2, jsx as jsx2, jsxs as jsxs2 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/attributions.tsx -import { useEffect } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/index.js"; -import { Fragment as Fragment3, jsx as jsx3, jsxs as jsxs3 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/contribution.tsx -import { Fragment as Fragment4, jsx as jsx4 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/components/headings.tsx -import { jsx as jsx5, jsxs as jsxs4 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/components/Shapes.tsx -import { jsx as jsx6 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/components/svgs.tsx -import { Link } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react-router-dom/dist/main.js"; -import { Fragment as Fragment5, jsx as jsx7, jsxs as jsxs5 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/Graph.tsx -import { Pie } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react-chartjs-2/dist/index.js"; -import { Chart as ChartJS, ArcElement, Tooltip, Legend } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/chart.js/dist/chart.js"; -import { jsx as jsx8 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; -ChartJS.register(ArcElement, Tooltip, Legend); - -// src/contents/description.tsx -import { jsx as jsx9, jsxs as jsxs6 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/components/Sidebar.tsx -import { useEffect as useEffect2 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/index.js"; -import { Fragment as Fragment6, jsx as jsx10, jsxs as jsxs7 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/sidebars/descS.tsx -import { jsx as jsx11 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/components/Buttons.tsx -import { Link as Link2 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react-router-dom/dist/main.js"; - -// src/components/HorizontalTimeline.tsx -import { jsx as jsx12, jsxs as jsxs8 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/components/Buttons.tsx -import { Fragment as Fragment7, jsx as jsx13, jsxs as jsxs9 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/engineering.tsx -import { Fragment as Fragment8, jsx as jsx14, jsxs as jsxs10 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/experiments.tsx -import { Fragment as Fragment9, jsx as jsx15 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/notebook.tsx -import { Fragment as Fragment10, jsx as jsx16 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/results.tsx -import { Fragment as Fragment11, jsx as jsx17, jsxs as jsxs11 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/safety.tsx -import { Fragment as Fragment12, jsx as jsx18, jsxs as jsxs12 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/components/Tabs.tsx -import { jsx as jsx19 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/components/Quotes.tsx -import { jsx as jsx20, jsxs as jsxs13 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/human-practices.tsx -import { Box, Tab } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/@mui/material/node/index.js"; -import { TabContext, TabList, TabPanel } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/@mui/lab/node/index.js"; -import React from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/index.js"; -import { Fragment as Fragment13, jsx as jsx21, jsxs as jsxs14 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; -{ -} - -// src/sidebars/hpS.tsx -import { jsx as jsx22 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/components/My-Timeline.tsx -import { Fragment as Fragment14, jsx as jsx23, jsxs as jsxs15 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/components/photo-grid.tsx -import { jsx as jsx24 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/components/pdfs.tsx -import { jsx as jsx25, jsxs as jsxs16 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/Bfh.tsx -import { Fragment as Fragment15, jsx as jsx26, jsxs as jsxs17 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/wiki.tsx -import { Box as Box2, Tab as Tab2 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/@mui/material/node/index.js"; -import { TabContext as TabContext2, TabList as TabList2, TabPanel as TabPanel2 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/@mui/lab/node/index.js"; -import React3 from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/index.js"; - -// src/components/Collapsible.tsx -import { useState } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/index.js"; -import { Fragment as Fragment16, jsx as jsx27, jsxs as jsxs18 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/components/Filter.tsx -import Select from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react-select/dist/react-select.cjs.mjs"; -import React2 from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/index.js"; -import { jsx as jsx28 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; -var wikioptions = [ - { value: "all", label: "Show all" }, - { value: "react", label: "React" }, - { value: "type", label: "Types" }, - { value: "property", label: "Properties" }, - { value: "pipeline", label: "GitLab Pipeline" }, - { value: "html", label: "HTML" }, - { value: "css", label: "CSS" } -]; -function filterMultiSelection(arr) { - let nono = document.getElementById("nono"); - nono.className = "noshow"; - var x, i; - x = document.getElementsByClassName("filterable"); - for (i = 0; i < x.length; i++) { - let el = x[i]; - w3RemoveClass(el, "show"); - } - let shownum = 0; - let boo = true; - for (i = 0; i < x.length; i++) { - arr.forEach((entry) => { - if (x[i].className.indexOf(entry.value) <= -1) { - boo = false; - } else { - if (!x[i].classList.contains(entry.value)) { - boo = false; - } - } - }); - if (boo) { - w3AddClass(x[i], "show"); - shownum++; - } - } - let y = document.getElementsByClassName("show").length; - if (y < 1) { - console.log(y); - nono.className = "show"; - } -} -function w3AddClass(element, name) { - var i, arr1, arr2; - arr1 = element.className.split(" "); - arr2 = name.split(" "); - for (i = 0; i < arr2.length; i++) { - if (arr1.indexOf(arr2[i]) == -1) { - element.className += " " + arr2[i]; - } - } -} -function w3RemoveClass(element, name) { - var i, arr1, arr2; - arr1 = element.className.split(" "); - arr2 = name.split(" "); - for (i = 0; i < arr2.length; i++) { - while (arr1.indexOf(arr2[i]) > -1) { - arr1.splice(arr1.indexOf(arr2[i]), 1); - } - } - element.className = arr1.join(" "); -} -var WikiAction = class extends React2.Component { - state = { - selectedOption: null - }; - handleChange = (selectedOption) => { - this.setState( - { selectedOption }, - () => console.log(`Option selected:`, this.state.selectedOption) - ); - filterMultiSelection(selectedOption); - }; - render() { - const { selectedOption } = this.state; - return /* @__PURE__ */ jsx28( - Select, - { - value: selectedOption, - onChange: this.handleChange, - isMulti: true, - options: wikioptions, - defaultValue: [wikioptions[0]], - className: "basic-multi-select", - classNamePrefix: "select" - } - ); - } -}; - -// src/contents/code.tsx -import { jsx as jsx29 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/wiki.tsx -import { Fragment as Fragment17, jsx as jsx30, jsxs as jsxs19 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/drylab.tsx -import { Fragment as Fragment18, jsx as jsx31, jsxs as jsxs20 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/impressum.tsx -import { Fragment as Fragment19, jsx as jsx32, jsxs as jsxs21 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/measurement.tsx -import { Fragment as Fragment20, jsx as jsx33, jsxs as jsxs22 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/partners.tsx -import { Fragment as Fragment21, jsx as jsx34, jsxs as jsxs23 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/supplementary-material.tsx -import { Fragment as Fragment22, jsx as jsx35, jsxs as jsxs24 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/interviews.tsx -import { Fragment as Fragment23, jsx as jsx36 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/bhf-h.tsx -import { Fragment as Fragment24, jsx as jsx37, jsxs as jsxs25 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/components/header-box.tsx -import { Fragment as Fragment25, jsx as jsx38, jsxs as jsxs26 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/attribution-h.tsx -import { jsx as jsx39 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/cont-h.tsx -import { jsx as jsx40 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/desc-h.tsx -import { jsx as jsx41 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/home-h.tsx -import { jsx as jsx42 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/exp-h.tsx -import { jsx as jsx43 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/hp-h.tsx -import { jsx as jsx44 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/imp-h.tsx -import { jsx as jsx45 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/note-h.tsx -import { jsx as jsx46 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/res-h.tsx -import { jsx as jsx47 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/safe-h.tsx -import { jsx as jsx48 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/team-h.tsx -import { jsx as jsx49 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/wiki-h.tsx -import { jsx as jsx50 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/ints-h.tsx -import { jsx as jsx51 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/spons-h.tsx -import { jsx as jsx52 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/dry-h.tsx -import { jsx as jsx53 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/eng-h.tsx -import { jsx as jsx54 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/sup-h.tsx -import { jsx as jsx55 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/mes-h.tsx -import { jsx as jsx56 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/parts.tsx -import { Fragment as Fragment26, jsx as jsx57, jsxs as jsxs27 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/part-h.tsx -import { jsx as jsx58 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/proof.tsx -import { Fragment as Fragment27, jsx as jsx59 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/proof-h.tsx -import { jsx as jsx60 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/design.tsx -import { Fragment as Fragment28, jsx as jsx61 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/des-h.tsx -import { jsx as jsx62 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/judging.tsx -import { Fragment as Fragment29, jsx as jsx63, jsxs as jsxs28 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/judge-h.tsx -import { jsx as jsx64 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/ethics.tsx -import { Fragment as Fragment30, jsx as jsx65 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/eth-h.tsx -import { jsx as jsx66 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/components/slider.tsx -import Slider from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react-slick/lib/index.js"; -import { Fragment as Fragment31, jsx as jsx67 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/components/testsvganimation.tsx -import gsap from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/gsap/dist/gsap.js"; -import { useGSAP } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/@gsap/react/dist/index.js"; -import { ScrollTrigger } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/gsap/dist/ScrollTrigger.js"; -import { useRef } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/index.js"; -import { MotionPathPlugin } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/gsap/dist/MotionPathPlugin.js"; -import { jsx as jsx68, jsxs as jsxs29 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/example.tsx -import { Fragment as Fragment32, jsx as jsx69, jsxs as jsxs30 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/education.tsx -import { Fragment as Fragment33, jsx as jsx70, jsxs as jsxs31 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/edu-h.tsx -import { jsx as jsx71 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/sidebars/engS.tsx -import { jsx as jsx72 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/sidebars/none.tsx -import { jsx as jsx73 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/survey.tsx -import { Fragment as Fragment34, jsx as jsx74 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/sur-h.tsx -import { jsx as jsx75 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/contents/collaborations.tsx -import { Fragment as Fragment35, jsx as jsx76 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/headers/coll-h.tsx -import { jsx as jsx77 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/jsx-runtime.js"; - -// src/utils/stringToSlug.ts -function stringToSlug(string) { - let slug = String(string).toLowerCase(); - slug = slug.replace(/[^a-z0-9-]/g, "-"); - slug = slug.replace(/-+/g, "-"); - const start = slug.search(/[^-]/); - const end = slug.search(/-+$/); - return slug.substring(start, end === -1 ? void 0 : end); -} - -// src/utils/useScript.ts -import { useEffect as useEffect3 } from "file:///Users/sahamiasad/wiki.css/bielefeld-cebitec/node_modules/react/index.js"; - -// vite.config.js -import path from "path"; -var __vite_injected_original_dirname = "/Users/sahamiasad/wiki.css/bielefeld-cebitec"; -var vite_config_default = () => { - const env = loadEnv("dev", process.cwd()); - if (!env.VITE_TEAM_NAME) { - throw new Error("VITE_TEAM_NAME environment variable is not defined"); - } - const baseSlug = stringToSlug(env.VITE_TEAM_NAME); - console.log(`Base URL: /${baseSlug}/`); - console.log(`Output directory: ${path.resolve(__vite_injected_original_dirname, "dist")}`); - return defineConfig({ - base: `/`, - plugins: [react()], - resolve: { - alias: { - "@": path.resolve(__vite_injected_original_dirname, "./src") - // Simplifies imports - } - }, - css: { - preprocessorOptions: { - css: { - //javascriptEnabled: true, // Enable JavaScript in CSS (useful for certain CSS preprocessor plugins) - } - } - }, - build: { - outDir: "dist", - rollupOptions: { - output: { - assetFileNames: `assets/[ext]/[name]-[hash].[ext]` - } - } - }, - publicDir: "pubpub" - }); -}; -export { - vite_config_default as default -}; -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcuanMiLCAic3JjL2NvbnRlbnRzL0hvbWUudHN4IiwgInNyYy9jb250ZW50cy90ZWFtLnRzeCIsICJzcmMvY29udGVudHMvYXR0cmlidXRpb25zLnRzeCIsICJzcmMvY29udGVudHMvY29udHJpYnV0aW9uLnRzeCIsICJzcmMvY29tcG9uZW50cy9oZWFkaW5ncy50c3giLCAic3JjL2NvbXBvbmVudHMvU2hhcGVzLnRzeCIsICJzcmMvY29tcG9uZW50cy9zdmdzLnRzeCIsICJzcmMvY29udGVudHMvR3JhcGgudHN4IiwgInNyYy9jb250ZW50cy9kZXNjcmlwdGlvbi50c3giLCAic3JjL2NvbXBvbmVudHMvU2lkZWJhci50c3giLCAic3JjL3NpZGViYXJzL2Rlc2NTLnRzeCIsICJzcmMvY29tcG9uZW50cy9CdXR0b25zLnRzeCIsICJzcmMvY29tcG9uZW50cy9Ib3Jpem9udGFsVGltZWxpbmUudHN4IiwgInNyYy9jb250ZW50cy9lbmdpbmVlcmluZy50c3giLCAic3JjL2NvbnRlbnRzL2V4cGVyaW1lbnRzLnRzeCIsICJzcmMvY29udGVudHMvbm90ZWJvb2sudHN4IiwgInNyYy9jb250ZW50cy9yZXN1bHRzLnRzeCIsICJzcmMvY29udGVudHMvc2FmZXR5LnRzeCIsICJzcmMvY29tcG9uZW50cy9UYWJzLnRzeCIsICJzcmMvY29tcG9uZW50cy9RdW90ZXMudHN4IiwgInNyYy9jb250ZW50cy9odW1hbi1wcmFjdGljZXMudHN4IiwgInNyYy9zaWRlYmFycy9ocFMudHN4IiwgInNyYy9jb21wb25lbnRzL015LVRpbWVsaW5lLnRzeCIsICJzcmMvY29tcG9uZW50cy9waG90by1ncmlkLnRzeCIsICJzcmMvY29tcG9uZW50cy9wZGZzLnRzeCIsICJzcmMvY29udGVudHMvQmZoLnRzeCIsICJzcmMvY29udGVudHMvd2lraS50c3giLCAic3JjL2NvbXBvbmVudHMvQ29sbGFwc2libGUudHN4IiwgInNyYy9jb21wb25lbnRzL0ZpbHRlci50c3giLCAic3JjL2NvbnRlbnRzL2NvZGUudHN4IiwgInNyYy9jb250ZW50cy9kcnlsYWIudHN4IiwgInNyYy9jb250ZW50cy9pbXByZXNzdW0udHN4IiwgInNyYy9jb250ZW50cy9tZWFzdXJlbWVudC50c3giLCAic3JjL2NvbnRlbnRzL3BhcnRuZXJzLnRzeCIsICJzcmMvY29udGVudHMvc3VwcGxlbWVudGFyeS1tYXRlcmlhbC50c3giLCAic3JjL2NvbnRlbnRzL2ludGVydmlld3MudHN4IiwgInNyYy9oZWFkZXJzL2JoZi1oLnRzeCIsICJzcmMvY29tcG9uZW50cy9oZWFkZXItYm94LnRzeCIsICJzcmMvaGVhZGVycy9hdHRyaWJ1dGlvbi1oLnRzeCIsICJzcmMvaGVhZGVycy9jb250LWgudHN4IiwgInNyYy9oZWFkZXJzL2Rlc2MtaC50c3giLCAic3JjL2hlYWRlcnMvaG9tZS1oLnRzeCIsICJzcmMvaGVhZGVycy9leHAtaC50c3giLCAic3JjL2hlYWRlcnMvaHAtaC50c3giLCAic3JjL2hlYWRlcnMvaW1wLWgudHN4IiwgInNyYy9oZWFkZXJzL25vdGUtaC50c3giLCAic3JjL2hlYWRlcnMvcmVzLWgudHN4IiwgInNyYy9oZWFkZXJzL3NhZmUtaC50c3giLCAic3JjL2hlYWRlcnMvdGVhbS1oLnRzeCIsICJzcmMvaGVhZGVycy93aWtpLWgudHN4IiwgInNyYy9oZWFkZXJzL2ludHMtaC50c3giLCAic3JjL2hlYWRlcnMvc3BvbnMtaC50c3giLCAic3JjL2hlYWRlcnMvZHJ5LWgudHN4IiwgInNyYy9oZWFkZXJzL2VuZy1oLnRzeCIsICJzcmMvaGVhZGVycy9zdXAtaC50c3giLCAic3JjL2hlYWRlcnMvbWVzLWgudHN4IiwgInNyYy9jb250ZW50cy9wYXJ0cy50c3giLCAic3JjL2hlYWRlcnMvcGFydC1oLnRzeCIsICJzcmMvY29udGVudHMvcHJvb2YudHN4IiwgInNyYy9oZWFkZXJzL3Byb29mLWgudHN4IiwgInNyYy9jb250ZW50cy9kZXNpZ24udHN4IiwgInNyYy9oZWFkZXJzL2Rlcy1oLnRzeCIsICJzcmMvY29udGVudHMvanVkZ2luZy50c3giLCAic3JjL2hlYWRlcnMvanVkZ2UtaC50c3giLCAic3JjL2NvbnRlbnRzL2V0aGljcy50c3giLCAic3JjL2hlYWRlcnMvZXRoLWgudHN4IiwgInNyYy9jb21wb25lbnRzL3NsaWRlci50c3giLCAic3JjL2NvbXBvbmVudHMvdGVzdHN2Z2FuaW1hdGlvbi50c3giLCAic3JjL2NvbnRlbnRzL2V4YW1wbGUudHN4IiwgInNyYy9jb250ZW50cy9lZHVjYXRpb24udHN4IiwgInNyYy9oZWFkZXJzL2VkdS1oLnRzeCIsICJzcmMvc2lkZWJhcnMvZW5nUy50c3giLCAic3JjL3NpZGViYXJzL25vbmUudHN4IiwgInNyYy9jb250ZW50cy9zdXJ2ZXkudHN4IiwgInNyYy9oZWFkZXJzL3N1ci1oLnRzeCIsICJzcmMvY29udGVudHMvY29sbGFib3JhdGlvbnMudHN4IiwgInNyYy9oZWFkZXJzL2NvbGwtaC50c3giLCAic3JjL3V0aWxzL3N0cmluZ1RvU2x1Zy50cyIsICJzcmMvdXRpbHMvdXNlU2NyaXB0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3NhaGFtaWFzYWQvd2lraS5jc3MvYmllbGVmZWxkLWNlYml0ZWNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9Vc2Vycy9zYWhhbWlhc2FkL3dpa2kuY3NzL2JpZWxlZmVsZC1jZWJpdGVjL3ZpdGUuY29uZmlnLmpzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9zYWhhbWlhc2FkL3dpa2kuY3NzL2JpZWxlZmVsZC1jZWJpdGVjL3ZpdGUuY29uZmlnLmpzXCI7aW1wb3J0IHsgZGVmaW5lQ29uZmlnLCBsb2FkRW52IH0gZnJvbSBcInZpdGVcIjtcbmltcG9ydCByZWFjdCBmcm9tIFwiQHZpdGVqcy9wbHVnaW4tcmVhY3RcIjtcbmltcG9ydCB7IHN0cmluZ1RvU2x1ZyB9IGZyb20gXCIuL3NyYy91dGlsc1wiO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5cbi8vIGh0dHBzOi8vdml0ZWpzLmRldi9jb25maWcvXG5leHBvcnQgZGVmYXVsdCAoKSA9PiB7XG4gIGNvbnN0IGVudiA9IGxvYWRFbnYoXCJkZXZcIiwgcHJvY2Vzcy5jd2QoKSk7XG4gIGlmICghZW52LlZJVEVfVEVBTV9OQU1FKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiVklURV9URUFNX05BTUUgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90IGRlZmluZWRcIik7XG4gIH1cblxuICBjb25zdCBiYXNlU2x1ZyA9IHN0cmluZ1RvU2x1ZyhlbnYuVklURV9URUFNX05BTUUpO1xuICBjb25zb2xlLmxvZyhgQmFzZSBVUkw6IC8ke2Jhc2VTbHVnfS9gKTtcbiAgY29uc29sZS5sb2coYE91dHB1dCBkaXJlY3Rvcnk6ICR7cGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ2Rpc3QnKX1gKTtcblxuICBcblxuICByZXR1cm4gZGVmaW5lQ29uZmlnKHtcbiAgICBiYXNlOiBgL2AsXG4gICAgcGx1Z2luczogW3JlYWN0KCldLFxuICAgIHJlc29sdmU6IHtcbiAgICAgIGFsaWFzOiB7XG4gICAgICAgICdAJzogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4vc3JjJyksIC8vIFNpbXBsaWZpZXMgaW1wb3J0c1xuICAgICAgfVxuICAgIH0sXG4gICAgY3NzOiB7XG4gICAgICBwcmVwcm9jZXNzb3JPcHRpb25zOiB7XG4gICAgICAgIGNzczoge1xuICAgICAgICAgIC8vamF2YXNjcmlwdEVuYWJsZWQ6IHRydWUsIC8vIEVuYWJsZSBKYXZhU2NyaXB0IGluIENTUyAodXNlZnVsIGZvciBjZXJ0YWluIENTUyBwcmVwcm9jZXNzb3IgcGx1Z2lucylcbiAgICAgICAgfVxuICAgICAgfSAgICB9LFxuICAgIGJ1aWxkOiB7XG4gICAgICBvdXREaXI6IFwiZGlzdFwiLFxuICAgICAgcm9sbHVwT3B0aW9uczoge1xuICAgICAgICBvdXRwdXQ6IHtcbiAgICAgICAgICBhc3NldEZpbGVOYW1lczogYGFzc2V0cy9bZXh0XS9bbmFtZV0tW2hhc2hdLltleHRdYFxuICAgICAgICAgIH0gICAgICBcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICBwdWJsaWNEaXI6ICdwdWJwdWInLFxuICB9KTtcbn07XG4iLCAiXG5leHBvcnQgZnVuY3Rpb24gSG9tZSgpIHtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgIDxoMj5XaWtpIHVuZGVyIGNvbnN0cnVjdGlvbiE8L2gyPlxuICAgICAgICAgIDxoci8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgIFxuICAgICAgPC9kaXY+XG4gICAgPC8+XG4gICk7XG59XG4iLCAiXG5cbmV4cG9ydCBmdW5jdGlvbiBUZWFtKCkge1xuICBcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8YnIvPlxuICAgICAgPGJyLz5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGNlbnRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgIDxTdGVja2JyaWVmIFxuICAgICAgICAgIHVybD1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3BsYWNlaG9sZGVycy9wbGFjZWhpbGRlcnBlcnNvbi5qcGVnXCJcbiAgICAgICAgICBcbiAgICAgICAgICA+IFxuICAgICAgICAgICAgLlxuICAgICAgICAgIDwvU3RlY2ticmllZj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgPFN0ZWNrYnJpZWYgdXJsPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvcGxhY2Vob2xkZXJzL3BsYWNlaGlsZGVycGVyc29uLmpwZWdcIj5cbiAgICAgICAgICAgIC5cbiAgICAgICAgICA8L1N0ZWNrYnJpZWY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICA8U3RlY2ticmllZiB1cmw9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9wbGFjZWhvbGRlcnMvcGxhY2VoaWxkZXJwZXJzb24uanBlZ1wiPiBcbiAgICAgICAgICAuXG4gICAgICAgIDwvU3RlY2ticmllZj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGNlbnRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgIDxTdGVja2JyaWVmIHVybD1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3BsYWNlaG9sZGVycy9wbGFjZWhpbGRlcnBlcnNvbi5qcGVnXCI+IFxuICAgICAgICAgICAgLiBcbiAgICAgICAgICA8L1N0ZWNrYnJpZWY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgIDxTdGVja2JyaWVmIHVybD1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3BsYWNlaG9sZGVycy9wbGFjZWhpbGRlcnBlcnNvbi5qcGVnXCI+IFxuICAgICAgICAgICAgLiBcbiAgICAgICAgICA8L1N0ZWNrYnJpZWY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICA8U3RlY2ticmllZiB1cmw9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9wbGFjZWhvbGRlcnMvcGxhY2VoaWxkZXJwZXJzb24uanBlZ1wiPiBcbiAgICAgICAgICAuXG4gICAgICAgIDwvU3RlY2ticmllZj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8Lz5cbiAgKTtcbn1cblxuXG5pbnRlcmZhY2UgU3RlY2tQcm9wc3tcbiAgbmFtZT86IHN0cmluZzsgXG4gIHVybDogc3RyaW5nOyBcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTsgXG5cbn1cblxuZnVuY3Rpb24gU3RlY2ticmllZih7Y2hpbGRyZW4sIHVybCwgbmFtZX06IFN0ZWNrUHJvcHMpe1xuICByZXR1cm4oXG4gICAgPD5cbiAgICA8ZGl2IGNsYXNzTmFtZT1cImxucCBjZW50ZXJcIj5cbiAgICA8aW1nIHNyYz17dXJsfSBjbGFzc05hbWU9XCJpbWctcm91bmRcIj48L2ltZz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzTmFtZT1cImNlbnRlclwiPlxuICAgICAgPHA+e25hbWV9PC9wPlxuICAgIDwvZGl2PlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvPlxuICApXG59XG4iLCAiaW1wb3J0IHsgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBBdHRyaWJ1dGlvbnMoKSB7XG4gIGNvbnN0IHRlYW1JRCA9IGltcG9ydC5tZXRhLmVudi5WSVRFX1RFQU1fSUQ7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBmdW5jdGlvbiBsaXN0ZW5Ub0lmcmFtZUhlaWdodChlOiBNZXNzYWdlRXZlbnQpIHtcbiAgICAgIGlmIChlLm9yaWdpbiA9PT0gXCJodHRwczovL3RlYW1zLmlnZW0ub3JnXCIpIHtcbiAgICAgICAgY29uc3QgeyB0eXBlLCBkYXRhIH0gPSBKU09OLnBhcnNlKGUuZGF0YSk7XG4gICAgICAgIGlmICh0eXBlID09PSBcImlnZW0tYXR0cmlidXRpb24tZm9ybVwiKSB7XG4gICAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiaWdlbS1hdHRyaWJ1dGlvbi1mb3JtXCIpO1xuICAgICAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgICAgICBlbGVtZW50LnN0eWxlLmhlaWdodCA9IGAke2RhdGEgKyAxMDB9cHhgO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgbGlzdGVuVG9JZnJhbWVIZWlnaHQpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgbGlzdGVuVG9JZnJhbWVIZWlnaHQpO1xuICAgIH07XG4gIH0sIFtdKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBtdC00XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICBcbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxpZnJhbWVcbiAgICAgICAgc3R5bGU9e3sgd2lkdGg6IFwiMTAwJVwiIH19XG4gICAgICAgIGlkPVwiaWdlbS1hdHRyaWJ1dGlvbi1mb3JtXCJcbiAgICAgICAgc3JjPXtgaHR0cHM6Ly90ZWFtcy5pZ2VtLm9yZy93aWtpLyR7dGVhbUlEfS9hdHRyaWJ1dGlvbnNgfVxuICAgICAgLz5cbiAgICA8Lz5cbiAgKTtcbn1cbiIsICJleHBvcnQgZnVuY3Rpb24gQ29udHJpYnV0aW9uKCkge1xuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBtdC00XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC8+XG4gICk7XG59XG4iLCAiXG5leHBvcnQgZnVuY3Rpb24gSGhvcHAoe3RleHR9Ont0ZXh0OiBzdHJpbmd9KXtcbiAgICBjb25zdCBhcnIgPSBbXTsgXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHggPSB0ZXh0LmNoYXJBdChpKTsgXG4gICAgICAgIGFyci5wdXNoKDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPnt4fTwvc3Bhbj4pXG4gICAgfVxuICAgIHJldHVybihcbiAgICAgICAgPGgxIGNsYXNzTmFtZT1cInBsYXlmdWxcIiBhcmlhLWxhYmVsPVwiV2FzaCB5b3VyIGhhbmRzXCI+XG4gICAgICAgICAgICB7YXJyfSAgICAgICAgXG4gICAgICAgIDwvaDE+XG4gICAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gSHNtb2tlKHt0ZXh0fTp7dGV4dDogc3RyaW5nfSl7XG4gICAgY29uc3QgYXJyID0gW107IFxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCB4ID0gdGV4dC5jaGFyQXQoaSk7IFxuICAgICAgICBhcnIucHVzaCg8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj57eH08L3NwYW4+KVxuICAgIH1cbiAgICByZXR1cm4oXG4gICAgICAgIDxoMSBjbGFzc05hbWU9XCJzbW9rZVwiIGFyaWEtbGFiZWw9XCJXYXNoIHlvdXIgaGFuZHNcIj5cbiAgICAgICAgICAgIHthcnJ9ICAgICAgICBcbiAgICAgICAgPC9oMT5cbiAgICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBIMSh7dGV4dH06e3RleHQ6IHN0cmluZ30pe1xuICAgIHJldHVybihcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBob25lXCI+XG4gICAgICAgIDxzdmcgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiPlxuICAgICAgICA8dGV4dCB4PVwiMCVcIiB5PVwiNjAlXCI+XG4gICAgICAgIHt0ZXh0fVxuICAgICAgICA8L3RleHQ+XG4gICAgPC9zdmc+XG4gICAgPC9kaXY+XG4gICAgKVxufVxuXG4vKiBleHBvcnQgZnVuY3Rpb24gSHByb21wdCh7dGV4dH06e3RleHQ6IHN0cmluZ30pe1xuICAgIHJldHVybihcbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxoMj57dGV4dH08L2gyPlxuICAgICAgICAgICAgPGhyLz5cbiAgICAgICAgPC9kaXY+XG4gICAgKVxufSAqL1xuZXhwb3J0IGZ1bmN0aW9uIEgyKHt0ZXh0fTp7dGV4dDogc3RyaW5nfSl7XG4gICAgcmV0dXJuKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGgyPnt0ZXh0fTwvaDI+XG4gICAgICAgICAgICA8aHIvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgXG4gICAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gSGhpZ2hsaWdodCh7Y2hpbGRyZW59OntjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlfSl7XG4gICAgcmV0dXJuKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGVudCB2MlwiPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgPC9kaXY+XG4gICAgKVxufVxuZXhwb3J0IGZ1bmN0aW9uIEhzcG9pbGVyKHtjaGlsZHJlbn06e2NoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGV9KXtcbiAgICByZXR1cm4oXG4gICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50IHYzXCI+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBId2F2ZSh7dGV4dH06e3RleHQ6IHN0cmluZ30pe1xuICAgIHJldHVybihcbiAgICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDEwMCAyMFwiPlxuICAgICAgICA8ZGVmcz5cbiAgICAgICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD1cImdyYWRpZW50XCIgeDE9XCIwXCIgeDI9XCIwXCIgeTE9XCIwXCIgeTI9XCIxXCI+XG4gICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCI1JVwiIHN0b3AtY29sb3I9XCIjODUwRjc4XCIvPlxuICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiOTUlXCIgc3RvcC1jb2xvcj1cIiNBMEE3RjNcIi8+XG4gICAgICAgICAgICA8L2xpbmVhckdyYWRpZW50PlxuICAgICAgICAgICAgPHBhdHRlcm4gaWQ9XCJ3YXZlXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMTIwXCIgaGVpZ2h0PVwiMjBcIiBwYXR0ZXJuVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiPlxuICAgICAgICAgICAgPHBhdGggaWQ9XCJ3YXZlUGF0aFwiIGQ9XCJNLTQwIDkgUS0zMCA3IC0yMCA5IFQwIDkgVDIwIDkgVDQwIDkgVDYwIDkgVDgwIDkgVDEwMCA5IFQxMjAgOSBWMjAgSC00MHpcIiBtYXNrPVwidXJsKCNtYXNrKVwiIGZpbGw9XCJ1cmwoI2dyYWRpZW50KVwiPiBcbiAgICAgICAgICAgICAgICA8YW5pbWF0ZVRyYW5zZm9ybVxuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVOYW1lPVwidHJhbnNmb3JtXCJcbiAgICAgICAgICAgICAgICAgICAgYmVnaW49XCIwc1wiXG4gICAgICAgICAgICAgICAgICAgIGR1cj1cIjEuNXNcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwidHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgZnJvbT1cIjAsMFwiXG4gICAgICAgICAgICAgICAgICAgIHRvPVwiNDAsMFwiXG4gICAgICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PVwiaW5kZWZpbml0ZVwiIC8+XG4gICAgICAgICAgICA8L3BhdGg+XG4gICAgICAgICAgICA8L3BhdHRlcm4+XG4gICAgICAgIDwvZGVmcz5cbiAgICAgICAgPHRleHQgdGV4dC1hbmNob3I9XCJtaWRkbGVcIiB4PVwiNTBcIiB5PVwiMTVcIiBmb250LXNpemU9XCIxN1wiIGZpbGw9XCJ1cmwoI3dhdmUpXCIgIGZpbGwtb3BhY2l0eT1cIjAuNlwiPnt0ZXh0fTwvdGV4dD5cbiAgICAgICAgPHRleHQgdGV4dC1hbmNob3I9XCJtaWRkbGVcIiB4PVwiNTBcIiB5PVwiMTVcIiBmb250LXNpemU9XCIxN1wiIGZpbGw9XCJ1cmwoI2dyYWRpZW50KVwiIGZpbGwtb3BhY2l0eT1cIjAuMVwiPnt0ZXh0fTwvdGV4dD5cbiAgICAgICAgPC9zdmc+XG4gICAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gSHBvcGFydCh7dGV4dH06e3RleHQ6IHN0cmluZ30pe1xucmV0dXJuKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmVcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBwb3BhcnRcIj5cbiAgICAgICAgICAgIHt0ZXh0fVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbilcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEhzaGFkb25lKHt0ZXh0fTp7dGV4dDogc3RyaW5nfSl7XG4gICAgcmV0dXJuKFxuICAgIDxkaXY+XG4gICAgICAgIDxwIGNsYXNzTmFtZT1cInN0cm9rZSBzaGFkb3ctc3Ryb2tlXCI+e3RleHR9PC9wPlxuICAgIDwvZGl2PlxuICAgIClcbn1cbmV4cG9ydCBkZWZhdWx0IEgxOyIsICJcblxuZXhwb3J0IGZ1bmN0aW9uIENpcmNsZSh7dGV4dH06e3RleHQ6IHN0cmluZ30pe1xuICAgIHJldHVybihcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wgY2lyY2xlXCI+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJzaGFwZS10ZXh0XCI+e3RleHR9PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICApXG59IiwgImltcG9ydCB7IExpbmsgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiXG5leHBvcnQgZnVuY3Rpb24gQ29tcGxleCgpe1xuICAgIHJldHVybihcbiAgICAgIDw+XG4gICA8c3ZnXG4gICB2ZXJzaW9uPVwiMS4xXCJcbiAgIGlkPVwic3ZnMVwiXG4gICB3aWR0aD1cIjE2ODAuNTM0N1wiXG4gICBoZWlnaHQ9XCIxMDAlXCJcbiAgIHZpZXdCb3g9XCIwIDAgMTY4MC41MzQ3IDg5NC4yMjY3NVwiXG4gICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxkZWZzXG4gICAgIGlkPVwiZGVmczFcIiAvPlxuICA8cGF0aFxuICAgICBzdHlsZT17e2Rpc3BsYXk6XCJpbmxpbmVcIixmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNiODViZDFcIixzdHJva2VXaWR0aDpcIjExXCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgIGQ9XCJtIDUzNi4yNTU5MiwxNDAuNjYyMjUgYyAwLDAgMzYuNjg3NTUsLTQxLjQ2OTUwNSAxNTYuMTgzMTcsLTMzLjQyNjE4IDExOS40OTU2Miw4LjA0MzMzIDE2OC4yNTU4MSwxNS4zNDE5MyAyMjguNzQzNywzMS42NDg2MiA2MC40ODc4OSwxNi4zMDY2OSA3My4xMTEwNSw1OC44NjE2IDczLjExMTA1LDU4Ljg2MTZcIlxuICAgICBpZD1cInBhdGg0XCIgLz5cbiAgPHBhdGhcbiAgICAgc3R5bGU9e3tkaXNwbGF5OlwiaW5saW5lXCIsZmlsbDpcIiNmNTdkMjJcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCJub25lXCIsc3Ryb2tlV2lkdGg6XCI5LjgyNjc3XCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgIGQ9XCJtIDM0OS43MDkyLDExNS45MDkxMiBjIC0yMS41ODE2NCw0My4yOTUxMSAtMjIuMDY4NzEsNDMuMzI3OTIgLTE5LjczODE2LDk1LjU4MTY1IDEuMDA1MjYsMjIuNTM5MjggMjcuODU2Niw2MS43OTc5MyA0MC44NDIzMyw3MC4zNDIzMiAxMi45ODU3Myw4LjU0NDM4IDM2LjkyNzY5LDExLjE5NDA1IDgxLjAwNjk4LDIuMTgwMjIgNDQuMDc5MjksLTkuMDEzODMgNzguMDQ4NzcsLTEyLjkzMTQ0IDk4LjI5MTM3LC00Mi4zMzg5NCAyMC4yNDI2LC0yOS40MDc1IDE5LjY0MzM2LC04MC4yOTA2OCA5LjI4MTk0LC0xMDUuMjQ2NzcgQyA1NDAuNDc1OSw5MC44NjMwMDkgNDI1Ljk0NzcyLDUyLjMyNjYgMzgxLjkyNDkzLDg4LjMxOTY0IDM1MS4yNzI4MywxMTMuMzgwOCAzNDkuNzA5MiwxMTUuOTA5MTIgMzQ5LjcwOTIsMTE1LjkwOTEyIFpcIlxuICAgICBpZD1cInJuYWJpbmRpbmdcIiAvPlxuICA8cGF0aFxuICAgICBzdHlsZT17e2Rpc3BsYXk6XCJpbmxpbmVcIixmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNiODViZDFcIixzdHJva2VXaWR0aDpcIjExXCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgIGQ9XCJtIDExOTkuNzk5MSwyNzMuMzkwMTcgYyAwLDAgNjcuOTUxMywyLjIwODY2IDEwMC40NjQ3LDIwLjgwOTU0IDMyLjUxMzMsMTguNjAwODggNjQuOTI4Nyw1MC45NjkgNzIuOTQ3LDczLjg4MDQ2IDguMDE4MiwyMi45MTE0NiA5Ljk5NjMsOTQuODAwNzIgLTEuMTYxNSwxMzUuMDU3MDkgLTExLjE1NzksNDAuMjU2MzcgLTI2LjUyODksMTA1LjAwOTMyIC00MC4zMzc4LDEyMS44NTEwNSAtMTMuODA4OSwxNi44NDE3MyAtMjQuOTQ2NCwyOS43OTQ4MyAtNjAuMTQ5LDMzLjc4MjE5IC0zNS4yMDI2LDMuOTg3MzYgLTE0NS45MTQ4LC0yNC40MTc0NCAtMTQ1LjkxNDgsLTI0LjQxNzQ0XCJcbiAgICAgaWQ9XCJwYXRoNVwiIC8+XG4gIDxwYXRoXG4gICAgICBjbGFzc05hbWU9XCJybmFiaW5kaW5nbG9jaFwiXG4gICAgIHN0eWxlPXt7ZGlzcGxheTpcImlubGluZVwiLGZpbGw6XCIjZDE1ZjA5XCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwibm9uZVwiLHN0cm9rZVdpZHRoOlwiOS44MjY3N1wiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgIGQ9XCJtIDQzMy4zNTM0MywyODguMDQyMDcgYyAwLDAgLTMuMDQwMjMsLTIzLjA4MjU3IC00LjcxODQ2LC00OS41MDczNCAtMS42NzgyMywtMjYuNDI0NzggLTcuNjczMjYsLTM5LjIyMjAxIC0xNC41ODk3NywtNjcuNTQ2OTcgLTYuOTE2NTIsLTI4LjMyNDk2IDQuMTQwMTYsLTMyLjA0MjkyIDE1Ljk3ODI3LC0zNy4wNTAzNCAxMS44MzgxMSwtNS4wMDc0MyAyOC43MzA5NCwtMTQuOTE1MDggNDMuMzUyLDguNzUwNjEgMTQuNjIxMDcsMjMuNjY1NjkgMTQuOTk5ODksNTEuMDI1IDI3LjkyLDc2Ljc3ODUgMTIuOTIwMTEsMjUuNzUzNSAyNC44ODAwNiw0NC40MTUwMyAyNC44ODAwNiw0NC40MTUwMyAwLDAgLTI4LjI4NjEzLDE2Ljc2ODM3IC00Ny4wNTQxNCwxOS44NTcwMSAtMTguNzY4LDMuMDg4NjMgLTQ1Ljc2Nzk2LDQuMzAzNSAtNDUuNzY3OTYsNC4zMDM1IHpcIlxuICAgICBpZD1cInJuYWJpbmRpbmdsb2NoXCIgLz5cbiAgPHBhdGhcbiAgICAgc3R5bGU9e3tkaXNwbGF5OlwiaW5saW5lXCIsZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjZjU3ZDIyXCIsc3Ryb2tlV2lkdGg6XCI3XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgIGQ9XCJtIDU0MC45NzQyMSw1NDMuNjg0NzkgYyAtMTAuMTE0MDMsNC4zMDA4OSAtMjMuODQ4MzcsMTAuODE3NTEgLTE1LjUzMjc3LDI5LjI0NDk2IDguMzE1NiwxOC40Mjc0NSAxMy43NDQxOCwyNy4wNDE1OCAyNS4yNjY1NSwzNi4xMjE4IDEwLjQ1NTYxLDguMjM5NTYgMTIuMjA5MzEsLTAuNzc5NDIgMjguMDMyMTEsOS4zNjEzOCAxNy4xMDg2NSwxMC45NjQ4OSAxNi4zOTMyNiwzOC43NDU1MyAzLjM0MjIxLDQ2Ljc1MjggLTEzLjA1MTA1LDguMDA3MjcgLTM4LjA3OTI4LDEyLjU0MDg0IC00Ny43MDgxMiwxLjcwNzMxIC04LjQzMjY4LC05LjQ4NzcyIC0xMS41MjkwNCwtMzAuNTMzMTcgLTYuMTY4MzcsLTM4LjY1ODY3IDUuMzYwNjcsLTguMTI1NDkgLTEyLjk3OTcsLTIzLjE3NjMxIC0yMS42OTU2MywtNDYuNTU4MiAtOC43MTU5NCwtMjMuMzgxOSAtMi42NDg1NSwtMzIuMTM3ODcgLTI2LjM2MjA4LC0zMC42NTUxNyAtMTQuMTMzMjIsMC44ODM2OSAtMzcuMTEyNTcsMjUuMTA0ODQgLTM3LjExMjU3LDI1LjEwNDg0IGwgLTM0LjY5MDQ4LDIyLjM2ODcxXCJcbiAgICAgaWQ9XCJwYXRoOC0xXCJcbiAgICAgIC8+XG4gIDxwYXRoXG4gICAgIHN0eWxlPXt7ZGlzcGxheTpcImlubGluZVwiLGZpbGw6XCIjZjU3ZDIyXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwibm9uZVwiLHN0cm9rZVdpZHRoOlwiOS44MjY3N1wiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICBkPVwibSA5MzcuNTM2NzEsMjIzLjk2Nzc2IGMgLTIxLjQwMDg5LDY1LjY0NzI4IDQzLjU0ODI1LDEwMC44NDM0OSA2MC41ODA0MiwxMDguOTc0MjMgMTcuMDMyMTcsOC4xMzA3NCA0MC45ODQ5NywxNy42MDcwOSA2NS40MjQxNywyMC42Mjc5NSAyNC40MzkyLDMuMDIwODcgOTIuMzM4OCw0Ljc0MDMgMTE5LjI0MzQsLTExLjYzOTggMTkuMTk4NywtMTEuNjg4NiA2My42MDkyLC0zMy43NTk2MyA0MC40MDA2LC05OC4zMzQ3NSAtMjMuMjA4NSwtNjQuNTc1MTIgLTQyLjk0OTcsLTg1LjkyMTY0IC05OC44NTg5LC05Ny4zNzQ4IC01NS45MDkyLC0xMS40NTMxNiAtNjcuNTk4NCwtMTUuNjEyMzEgLTEyMS4xNjU4LDEyLjM2NzQxIC01My41Njc0LDI3Ljk3OTczIC02NS42MjM4OSw2NS4zNzk3NiAtNjUuNjIzODksNjUuMzc5NzYgelwiXG4gICAgIGlkPVwibWluaXJ0XCJcbiAgICAgIC8+XG4gIDxwYXRoXG4gICAgIHN0eWxlPXt7ZGlzcGxheTpcImlubGluZVwiLGZpbGw6XCIjZjU3ZDIyXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwibm9uZVwiLHN0cm9rZVdpZHRoOlwiOS44MjY3N1wiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICBkPVwibSA4MzcuNDAzOTgsNDU5LjYyMzg2IGMgNTMuNjE0OSwtMTguNzEyMjggNzEuMDE5MjIsLTI1Ljk5ODExIDEyMy40OTA3NCwtMTYuNzIzNTkgNTIuNDcxNDgsOS4yNzQ1MiAxMjYuODI4NDgsMjYuOTY5NTUgMTUwLjAzMTk4LDYyLjA4MTkyIDIzLjIwMzUsMzUuMTEyMzYgNDQuOTg0NCw5Ny42MjcwMyAzNS43ODI5LDEzMC4yMzcyNCAtOS4yMDE1LDMyLjYxMDIxIC0yMi42NTY0LDQzLjcyNDkxIC02NC41ODQ0LDYwLjM3MjkzIC00MS45MjgxLDE2LjY0ODAxIC0xMDEuNjc5MDMsMzYuMzk2MjQgLTE1NS4yMjE4MiwzNy41Mzk1MiAtNTMuNTQyNzgsMS4xNDMyOSAtOTQuMTQwMzMsLTAuMzgzMzcgLTE0NC4yNDI4MSwtMzUuNzU5OTkgLTUwLjEwMjQ4LC0zNS4zNzY2MiAtMTA1LjYwNDI3LC01My4zODM1IC0xMTMuMjE3NjMsLTkxLjY5NDYyIC0xNS45NzE4NywtODAuMzcxODcgNDUuNTk3NTksLTEwMy4zNDcgMTY3Ljk2MTA0LC0xNDYuMDUzNDEgelwiXG4gICAgIGlkPVwicGF0aDNcIlxuICAgICAgLz5cbiAgPHBhdGhcbiAgICAgc3R5bGU9e3tkaXNwbGF5OlwiaW5saW5lXCIsZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjZjU3ZDIyXCIsc3Ryb2tlV2lkdGg6XCI3XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgIGQ9XCJtIDQzMS43NTIwMiwyODguMTY3NDIgYyAwLDAgMjAuODI3OTUsLTE0LjcxNjI3IDIwLjQ4MDE1LC0zMC4xNTI1OCAtMC4zNDc4MSwtMTUuNDM2MzEgLTE1LjgzNTIyLC02Ny43NjMzOSAtMTguMjIyMzQsLTgzLjQwNDM5IC0yLjM4NzEyLC0xNS42NDEwMSAyMS41Njc4NiwtMzEuODcyNTEgMzAuODQ2ODMsLTcuMTM3OTggOS4yNzg5NywyNC43MzQ1MiAxMy42NzEwNyw2NC40NDc0NCAyNi40NzE5Miw4MS4yMTAwNyAxMi44MDA4NCwxNi43NjI2MyA0Mi4xMTYxNiwxOS4xMTEzOSA2NC41NzI2MiwxNC40ODQ3NlwiXG4gICAgIGlkPVwicGF0aDgtM1wiXG4gICAgICAvPlxuICA8cGF0aFxuICAgICBzdHlsZT17e2Rpc3BsYXk6XCJpbmxpbmVcIixmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjdcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgZD1cIm0gNTUzLjE3NDEyLDI2NC4yNTcwMyBjIDI0LjA0ODY2LDAuNTMxODcgMTcyLjg4NzIzLDMuMjMzMTIgMjA1LjI0Mzc4LC0wLjY0NzE0IDMyLjM1NjU0LC0zLjg4MDI2IDY1LjQ4NjAxLC0wLjc3ODUxIDEwMy4xMjUxMiwxMS4yMjE0MSAzNy42MzkxLDExLjk5OTkyIDEyMS41NTI3MSw1Mi41MTMzMiAxNDQuNTcyNzgsNTcuNDg2NDEgMjMuMDIwMSw0Ljk3MzA5IDEzMi44NzI1LDI2LjE0NzgxIDE1MC44MTExLDMyLjIyODY3IDE3LjkzODYsNi4wODA4NiAzMi45MDI5LDMwLjM0OTM5IDI5LjE0MDcsMzguNDQ3MTEgLTUuNDIxMywxMS42Njg1OCAtMjcuODg3OSwyMS42NDEwOCAtNDcuNzgxNywxNS44MDE2NyAtMTkuODkzOSwtNS44Mzk0MSAtNjkuMTY5NywtMjYuNDY1NzggLTk0LjE1NzUsLTI4LjIzOTEzIC0yNC45ODc4LC0xLjc3MzM2IC02OC40MzU5NCw1LjUzNTgzIC05MC44NjAwNSwxMy44ODYyIC0yMi40MjQxMSw4LjM1MDM3IC02MC43NDkxNywyMC4wMDAyMyAtNjIuNjIxMjEsMjkuOTY5MDYgLTQuMzg1ODcsMjMuMzU1MjcgMTMuMDAzODcsMzMuOTY1NzMgMjMuNzk0OTksNTIuNTQxNzYgMTQuMjY3NjUsMjQuNTYwNiAzMy43NzQ1LDQ5LjA1OTU5IDM5LjUxMjA0LDY0LjUyOTE3IDYuMzIwNDMsMTcuMDQxMTggMy4yOTM2MywzOC4wOTQ0NSAtMTIuNDQxMzIsNDIuODE2NjkgLTE1LjczNDk1LDQuNzIyMjUgLTI5LjE4ODA3LC03LjIwNjM5IC00MS45MTE0NSwtMzQuMzU2OCAtMTIuNzIzMzcsLTI3LjE1MDQxIC0yOS40MjA1NiwtNzAuNTY3MDQgLTM2LjcyNDk5LC04MS43MjY5NiAtNy4zMDQ0NCwtMTEuMTU5OTIgLTIyLjUxMTM3LC0zOC4xODMgLTM4LjU5Njk0LC00MC4zODY4NiAtMTYuMDg1NTcsLTIuMjAzODcgLTQwLjc5MTE2LDEyLjMwMDQzIC01NS45NjYyOSwyMi44MTEyNCAtMTUuMTc1MTIsMTAuNTEwOCAtMjEwLjM3NDcyLDc5LjMwMTA5IC0yMjkuNzM5MjMsODQuMzMyNFwiXG4gICAgIGlkPVwicGF0aDhcIlxuICAgICAvPlxuICA8Z1xuICAgICBpZD1cInBlZ3JuYXBhdGhcIlxuICAgICBzdHlsZT17e3N0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIn19XG4gICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgzMjIuNDY3OTEsNzQuOTg3MjIxKVwiPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSA1MzAuODU5OTgsMzg5Ljc3OTQ2IGMgMzcuNjM0OCwtMTcuMTg4NTkgMzcuNjM0OCwtMTcuMTg4NTkgMzcuNjM0OCwtMTcuMTg4NTlcIlxuICAgICAgIGlkPVwicGF0aDE5XCIgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gNTY1LjEzNjg0LDQ1OS43MDM1MyBjIDQ2LjE3NTA4LC0xOS43NDE2IDQ2LjE3NTA4LC0xOS43NDE2IDQ2LjE3NTA4LC0xOS43NDE2XCJcbiAgICAgICBpZD1cInBhdGgyNlwiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDczMy45OTE0NSwyNjQuMDU2NTUgLTEyLjE2MTYzLDUwLjEwNzUzXCJcbiAgICAgICBpZD1cInBhdGg5XCIgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gNzQ2Ljk2NDY0LDI3NS4zODIxNCBjIC01LjU4MzkzLDIwLjkxNTUzIC04LjYyMjE3LDMwLjg5Nzk0IC0xMi4xOTE2MSw0My4xNjE3M1wiXG4gICAgICAgaWQ9XCJwYXRoMTBcIlxuICAgICAgICAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSA3NjMuMDA3ODcsMjczLjg5NDk2IGMgLTEzLjEzMzc2LDQ3LjgzNTU5IC0xMy4xMzM3Niw0Ny44MzU1OSAtMTMuMTMzNzYsNDcuODM1NTlcIlxuICAgICAgIGlkPVwicGF0aDExXCIgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gNzc2LjAxMzcxLDI3OC4xMDgzMyBjIC0xMS41NTMzOCw0OS42MDk5OCAtMTEuNTUzMzgsNDkuNjA5OTggLTExLjU1MzM4LDQ5LjYwOTk4XCJcbiAgICAgICBpZD1cInBhdGgxMlwiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDc5MC4yMzc0MSwyODAuNzg3NzMgYyAtMTEuNTUzMzgsNDkuNjA5OTggLTExLjU1MzM4LDQ5LjYwOTk4IC0xMS41NTMzOCw0OS42MDk5OFwiXG4gICAgICAgaWQ9XCJwYXRoMTItM1wiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDgwNS40NTQyNSwyODIuMzI1MzYgYyAtMTMuNzcxNjksNTMuMTAzOTEgLTEzLjc3MTY5LDUzLjEwMzkxIC0xMy43NzE2OSw1My4xMDM5MVwiXG4gICAgICAgaWQ9XCJwYXRoMTNcIiAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSA4MTkuNDAwNTYsMjg2LjEyODU1IGMgLTUuNTIyMjMsMjIuOTI0NDggLTUuNTIyMjMsMjIuOTI0NDggLTUuNTIyMjMsMjIuOTI0NDhcIlxuICAgICAgIGlkPVwicGF0aDI3XCIgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gODAzLjE4OTczLDMzOS4xNzUwOCBjIDcuNjgzODYsLTE4LjUxMjY4IDcuNjgzODYsLTE4LjUxMjY4IDcuNjgzODYsLTE4LjUxMjY4XCJcbiAgICAgICBpZD1cInBhdGgyOFwiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDgzNy4zMTczMSwyOTIuNDQ0OTMgYyAtMTAuNzkyMzgsMTQuMjU4NSAtMTAuNzkyMzgsMTQuMjU4NSAtMTAuNzkyMzgsMTQuMjU4NVwiXG4gICAgICAgaWQ9XCJwYXRoMjlcIiAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSA4MTguMTc5OCwzNDIuMDkxNDMgYyA0LjY1OTAzLC0xNy4yMTE1IDQuNjU5MDMsLTE3LjIxMTUgNC42NTkwMywtMTcuMjExNVwiXG4gICAgICAgaWQ9XCJwYXRoMzBcIiAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSA4NDAuNTgxNTUsMzQyLjQwOTMgYyAtNi42ODM2MiwtMTcuNjEyMDggLTYuNjgzNjIsLTE3LjYxMjA4IC02LjY4MzYyLC0xNy42MTIwOFwiXG4gICAgICAgaWQ9XCJwYXRoMzFcIiAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSA4NDkuNTM1NzIsMzAyLjQwOTU3IGMgLTEzLjQ5NTI2LDEzLjIxMTkyIC0xMy40OTUyNiwxMy4yMTE5MiAtMTMuNDk1MjYsMTMuMjExOTJcIlxuICAgICAgIGlkPVwicGF0aDMyXCIgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6NC4zNSxzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSA4NjMuMzcxODIsMzI0Ljk4MTE0IGMgLTE1LjgzMzI5LDAgLTE1LjgzMzI5LDAgLTE1LjgzMzI5LDBcIlxuICAgICAgIGlkPVwicGF0aDMzXCIgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIk0gNTgzLjExNzIyLDM0NS4xMDE5OCA1NzIuOTkzMDEsMzI5LjgwODA0XCJcbiAgICAgICBpZD1cInBhdGg0MS04LTMtOC00XCJcbiAgICAgICAgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIk0gNTk0Ljc3OTE2LDMzOS4yOTM0NCA1ODQuNjU0OTUsMzIzLjk5OTVcIlxuICAgICAgIGlkPVwicGF0aDQxLTgtMy04LTQtNlwiXG4gICAgICAgIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJNIDYwOC42ODg3OCwzMzIuMzE0MTEgNTk4LjU2NDU3LDMxNy4wMjAxN1wiXG4gICAgICAgaWQ9XCJwYXRoNDEtOC0zLTgtNC05XCJcbiAgICAgICAgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIk0gNjIxLjE4MzA5LDMyOC42MDMwNCA2MTEuMDU4ODgsMzEzLjMwOTFcIlxuICAgICAgIGlkPVwicGF0aDQxLTgtMy04LTQtOFwiXG4gICAgICAgIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJNIDYzNS41NTcwNCwzMjQuNjUyMzEgNjI1LjQzMjgzLDMwOS4zNTgzN1wiXG4gICAgICAgaWQ9XCJwYXRoNDEtOC0zLTgtNC04NVwiXG4gICAgICAgIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDY0OC44NDgzNSwzMjAuMDUwODYgLTQuMzc3NSwtMTYuNDQxMTlcIlxuICAgICAgIGlkPVwicGF0aDQxLTgtMy04LTQtODhcIlxuICAgICAgICAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSA2NjMuNjUwMjMsMzE3Ljk2NzMgLTEuNzM5MTYsLTE3LjkzMzkxXCJcbiAgICAgICBpZD1cInBhdGg0MS04LTMtOC00LTY0XCJcbiAgICAgICAgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gNjc2LjkwOTcyLDMxNS4xMzYzOCAtMS43MzkxNiwtMTcuOTMzOTFcIlxuICAgICAgIGlkPVwicGF0aDQxLTgtMy04LTQtNjQtNlwiXG4gICAgICAgIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDY5MC4yMjExMSwzMTMuOTczNjIgLTEuNzM5MTYsLTE3LjkzMzkxXCJcbiAgICAgICBpZD1cInBhdGg0MS04LTMtOC00LTY0LThcIlxuICAgICAgICAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwiTSA3MDUuOTc5NjQsMzEzLjI1OTQxIDcwNC4yNDA0OCwyOTUuMzI1NVwiXG4gICAgICAgaWQ9XCJwYXRoNDEtOC0zLTgtNC02NC00XCJcbiAgICAgICAgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gNTM5LjI5MjA4LDM5OC42ODUzNSAzMy44OTAwMywtMTQuOTk5NTZcIlxuICAgICAgIGlkPVwicGF0aDIxXCJcbiAgICAgICAgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gNTQ0LjQ3OTk5LDQxMS40MzQxNSBjIDM4Ljc2OTA5LC0xNy4zNTQ1IDM4Ljc2OTA5LC0xNy4zNTQ1IDM4Ljc2OTA5LC0xNy4zNTQ1XCJcbiAgICAgICBpZD1cInBhdGgyMlwiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDU0OS45OTg3Niw0MjMuMDU2NiA0MC41OTMsLTE1LjIzMDI5XCJcbiAgICAgICBpZD1cInBhdGgyM1wiXG4gICAgICAgIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJNIDU1NC40NDQxNCw0MzQuNTY2MTQgQyA1OTQuMDY1NCw0MTguODk1OCA1OTQuMDY1NCw0MTguODk1OCA1OTQuMDY1NCw0MTguODk1OFwiXG4gICAgICAgaWQ9XCJwYXRoMjRcIiAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSA1NjAuNjQ0NzcsNDQ2LjQxMjY2IGMgNDIuOTczMDYsLTE3LjM3NjA3IDQyLjk3MzA2LC0xNy4zNzYwNyA0Mi45NzMwNiwtMTcuMzc2MDdcIlxuICAgICAgIGlkPVwicGF0aDI1XCIgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gNTcyLjY3ODg3LDQ3Mi42ODUxNCBjIDQ2LjE3NTA4LC0xOS43NDE2IDQ2LjE3NTA4LC0xOS43NDE2IDQ2LjE3NTA4LC0xOS43NDE2XCJcbiAgICAgICBpZD1cInBhdGgyNi02XCIgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gNTc4LjA1MzA1LDQ4NS41ODA0NCBjIDQ2LjE3NTA4LC0xOS43NDE2IDQ2LjE3NTA4LC0xOS43NDE2IDQ2LjE3NTA4LC0xOS43NDE2XCJcbiAgICAgICBpZD1cInBhdGgyNi02LTJcIiAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSA1ODIuODkzODEsNDk2LjY1MDY0IGMgMjEuMjY0MSwtNy44ODE5MiAyMS4yNjQxLC03Ljg4MTkyIDIxLjI2NDEsLTcuODgxOTJcIlxuICAgICAgIGlkPVwicGF0aDM0XCIgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gNjI5LjIwNTMyLDQ3NS41MzUxMyBjIC0xNS43MTE0LDkuMjcxMzYgLTE1LjcxMTQsOS4yNzEzNiAtMTUuNzExNCw5LjI3MTM2XCJcbiAgICAgICBpZD1cInBhdGgzNVwiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDU5My4yMjQ3LDUwOS4yNTM4MSBjIDEyLjY5NDk5LC0xMC4xNzEzNiAxMi42OTQ5OSwtMTAuMTcxMzYgMTIuNjk0OTksLTEwLjE3MTM2XCJcbiAgICAgICBpZD1cInBhdGgzNlwiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDYzOC4wNzk1NSw0OTAuMzU3NTEgYyAtMTkuMzgyNjYsNS4yODEyMiAtMTkuMzgyNjYsNS4yODEyMiAtMTkuMzgyNjYsNS4yODEyMlwiXG4gICAgICAgaWQ9XCJwYXRoMzdcIiAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSA2MTAuOTkxNDcsNTE4LjM5NzY0IGMgMi4zMTczNCwtMTEuNTE1ODkgMi4zMTczNCwtMTEuNTE1ODkgMi4zMTczNCwtMTEuNTE1ODlcIlxuICAgICAgIGlkPVwicGF0aDM4XCIgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gNTIyLjU1Mjc0LDM3Ni4wODc1MSBjIDE0LjQwMDQyLC04LjczMTY2IDE4LjI4ODIsLTEwLjgyODQ4IDE4LjI4ODIsLTEwLjgyODQ4XCJcbiAgICAgICBpZD1cInBhdGgzOVwiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDUxNi43NjExMSwzNjguNjU1MTYgMTMuODk0MjIsLTE4LjU3MzE5XCJcbiAgICAgICBpZD1cInBhdGg0MFwiXG4gICAgICAgIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDU3MS44ODkzOCwzNjAuODAwMSAtMTcuODk0MzcsMC4xMjE5XCJcbiAgICAgICBpZD1cInBhdGg0MS04LTMtMVwiXG4gICAgICAgIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDQ5OC45MjcyMiwzNjEuMzc3NTMgMC4wMTQ5LC0xOS40MjA3NVwiXG4gICAgICAgaWQ9XCJwYXRoNDFcIlxuICAgICAgICAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSA0NzMuMDQwOSwzNTEuMzkxMTggYyA3LjI1NDgyLDE1LjA3NzEzIDcuMjU0ODIsMTUuMDc3MTMgNy4yNTQ4MiwxNS4wNzcxM1wiXG4gICAgICAgaWQ9XCJwYXRoNTAtMjlcIiAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSA0ODcuNjMwNjcsMzYxLjg3ODE5IC0yLjY1OTI1LC0xOC40MDY3MlwiXG4gICAgICAgaWQ9XCJwYXRoNDEtOFwiXG4gICAgICAgIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDMxMC44MzY4MSw0MTguNTI1OTMgYyA3LjI1NDgyLDE1LjA3NzEzIDcuMjU0ODIsMTUuMDc3MTMgNy4yNTQ4MiwxNS4wNzcxM1wiXG4gICAgICAgaWQ9XCJwYXRoNTAtNVwiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDMzNS44MTIzNSw0MDkuNDIxNjMgYyA2LjcxODk0LDE4LjYxODc5IDYuNzE4OTQsMTguNjE4NzkgNi43MTg5NCwxOC42MTg3OVwiXG4gICAgICAgaWQ9XCJwYXRoNTFcIiAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSAzMjMuMTk4NDksNDEyLjc2Nzc5IGMgNy4zNjQ4NCwxOC4wMDYwOSA3LjM2NDg0LDE4LjAwNjA5IDcuMzY0ODQsMTguMDA2MDkgdiAwXCJcbiAgICAgICBpZD1cInBhdGg1MlwiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDI5OC42OTA1Miw0MjIuNTg0ODMgYyA3LjI1NDgyLDE1LjA3NzEzIDcuMjU0ODIsMTUuMDc3MTMgNy4yNTQ4MiwxNS4wNzcxM1wiXG4gICAgICAgaWQ9XCJwYXRoNTBcIiAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSAyODYuMTAyMzEsNDI2Ljc1MjcyIGMgNy4yNTQ4MiwxNS4wNzcxMyA3LjI1NDgyLDE1LjA3NzEzIDcuMjU0ODIsMTUuMDc3MTNcIlxuICAgICAgIGlkPVwicGF0aDUwLTFcIiAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSAyNzMuNTAwMDUsNDMxLjMyNjA4IGMgNy4yNTQ4MiwxNS4wNzcxMyA3LjI1NDgyLDE1LjA3NzEzIDcuMjU0ODIsMTUuMDc3MTNcIlxuICAgICAgIGlkPVwicGF0aDUwLTlcIiAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSAyNTkuODkzNjgsNDM0Ljk3NjU3IGMgNy4yNTQ4MiwxNS4wNzcxMyA3LjI1NDgyLDE1LjA3NzEzIDcuMjU0ODIsMTUuMDc3MTNcIlxuICAgICAgIGlkPVwicGF0aDUwLTUwXCIgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gMjQ2LjU1NDkzLDQ0MC41MjgzOSBjIDcuMjU0ODIsMTUuMDc3MTMgNy4yNTQ4MiwxNS4wNzcxMyA3LjI1NDgyLDE1LjA3NzEzXCJcbiAgICAgICBpZD1cInBhdGg1MC02XCIgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gMjMxLjk3NjM4LDQ0NS45NTEwNCBjIDcuMjU0ODIsMTUuMDc3MTMgNy4yNTQ4MiwxNS4wNzcxMyA3LjI1NDgyLDE1LjA3NzEzXCJcbiAgICAgICBpZD1cInBhdGg1MC0xNVwiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDIxOC4xNjkwMiw0NTEuMTQ1MDIgYyA3LjI1NDgyLDE1LjA3NzEzIDcuMjU0ODIsMTUuMDc3MTMgNy4yNTQ4MiwxNS4wNzcxM1wiXG4gICAgICAgaWQ9XCJwYXRoNTAtNTZcIiAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSAzNDguMzAxNSw0MDQuMjcxNTkgYyA3LjI1NDgyLDE1LjA3NzEzIDcuMjU0ODIsMTUuMDc3MTMgNy4yNTQ4MiwxNS4wNzcxM1wiXG4gICAgICAgaWQ9XCJwYXRoNTAtNFwiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDM2MC40NDQwMywzOTkuODA2MTIgYyA3LjI1NDgyLDE1LjA3NzEzIDcuMjU0ODIsMTUuMDc3MTMgNy4yNTQ4MiwxNS4wNzcxM1wiXG4gICAgICAgaWQ9XCJwYXRoNTAtNjhcIiAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSAzNzMuODkxNTYsMzk1Ljc2OTE2IGMgNy4yNTQ4MiwxNS4wNzcxMyA3LjI1NDgyLDE1LjA3NzEzIDcuMjU0ODIsMTUuMDc3MTNcIlxuICAgICAgIGlkPVwicGF0aDUwLTQ5XCIgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gMzg2LjI1NzEzLDM5MS42MjY0MyBjIDcuMjU0ODIsMTUuMDc3MTMgNy4yNTQ4MiwxNS4wNzcxMyA3LjI1NDgyLDE1LjA3NzEzXCJcbiAgICAgICBpZD1cInBhdGg1MC05MlwiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDM5OS44MzU0NiwzODQuMjk2MzUgYyA3LjI1NDgyLDE1LjA3NzEzIDcuMjU0ODIsMTUuMDc3MTMgNy4yNTQ4MiwxNS4wNzcxM1wiXG4gICAgICAgaWQ9XCJwYXRoNTAtMlwiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDQxNC4yNjgwNywzNzkuNDg2ODQgYyA3LjI1NDgyLDE1LjA3NzEzIDcuMjU0ODIsMTUuMDc3MTMgNy4yNTQ4MiwxNS4wNzcxM1wiXG4gICAgICAgaWQ9XCJwYXRoNTAtMTBcIiAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSA0MjUuMjQzMzksMzczLjk3OTI1IGMgNy4yNTQ4MiwxNS4wNzcxMyA3LjI1NDgyLDE1LjA3NzEzIDcuMjU0ODIsMTUuMDc3MTNcIlxuICAgICAgIGlkPVwicGF0aDUwLTQ5MFwiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDQzNi43Nzc1MiwzNjguNDk3IGMgNy4yNTQ4MiwxNS4wNzcxMyA3LjI1NDgyLDE1LjA3NzEzIDcuMjU0ODIsMTUuMDc3MTNcIlxuICAgICAgIGlkPVwicGF0aDUwLTExXCIgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gNDQ4LjI3ODA0LDM2MS44OTM2NSBjIDcuMjU0ODIsMTUuMDc3MTMgNy4yNTQ4MiwxNS4wNzcxMyA3LjI1NDgyLDE1LjA3NzEzXCJcbiAgICAgICBpZD1cInBhdGg1MC02N1wiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDQ2MS43MTE2MSwzNTUuMTA4MzkgYyA3LjI1NDgyLDE1LjA3NzEzIDcuMjU0ODIsMTUuMDc3MTMgNy4yNTQ4MiwxNS4wNzcxM1wiXG4gICAgICAgaWQ9XCJwYXRoNTAtM1wiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDUwNy4xNzc4LDM2NC41Nzk0MiA4LjA5OTk4LC0yMS44ODU3NVwiXG4gICAgICAgaWQ9XCJwYXRoNDEtOC0zXCJcbiAgICAgICAgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gNTczLjgwMzM2LDM1MS4wMzUyNyAtMTUuNDM3NTksLTEwLjA4ODRcIlxuICAgICAgIGlkPVwicGF0aDQxLTgtMy04XCJcbiAgICAgICAgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gNDk5LjI5NTY2LDE5MS45MDcyIC0yLjk4NDYsMTkuNzc3MzZcIlxuICAgICAgIGlkPVwicGF0aDUwLTY3LTktNS0yLTgtMDYtODdcIlxuICAgICAgICAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSA0ODYuNTIwOTYsMTkwLjcwNjU3IC0yLjk4NDYsMTkuNzc3MzZcIlxuICAgICAgIGlkPVwicGF0aDUwLTY3LTktNS0yLTgtMDYtOVwiXG4gICAgICAgIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDQxNy43ODIzMiwxOTEuNjc4MzUgLTEuMTM2NCwxOS40NzQ3MlwiXG4gICAgICAgaWQ9XCJwYXRoNTAtNjctOS01LTItOC0wNi04XCJcbiAgICAgICAgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gNTU0LjMyOTA3LDIwNy45MDcwOCAtNi40NjQ4MiwxOS42NTU1N1wiXG4gICAgICAgaWQ9XCJwYXRoNTAtNjctOS01LTItOC0wNi04LTE5XCJcbiAgICAgICAgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gNTQxLjAwMzMsMjAyLjQ1MjE3IC02LjQ2NDgyLDE5LjY1NTU3XCJcbiAgICAgICBpZD1cInBhdGg1MC02Ny05LTUtMi04LTA2LTgtOFwiXG4gICAgICAgIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDUyNy43NzkzLDE5Ni40NDI2NCAtNi40NjQ4MiwxOS42NTU1N1wiXG4gICAgICAgaWQ9XCJwYXRoNTAtNjctOS01LTItOC0wNi04LTRcIlxuICAgICAgICAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSA1MTUuNTIyOTgsMTk0Ljc4NjAxIC02LjQ2NDgyLDE5LjY1NTU3XCJcbiAgICAgICBpZD1cInBhdGg1MC02Ny05LTUtMi04LTA2LTgtMjZcIlxuICAgICAgICAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSA0NzQuNzU3NCwxOTAuMTU0NDggLTIuOTg0NiwxOS43NzczNlwiXG4gICAgICAgaWQ9XCJwYXRoNTAtNjctOS01LTItOC0wNi02XCJcbiAgICAgICAgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gNDU5LjM4MTkyLDE4OC45NDgxIC0yLjk4NDYsMTkuNzc3MzZcIlxuICAgICAgIGlkPVwicGF0aDUwLTY3LTktNS0yLTgtMDYtNVwiXG4gICAgICAgIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDQ0NS43MDYzMywxOTAuNjM2NzIgLTIuOTg0NiwxOS43NzczNlwiXG4gICAgICAgaWQ9XCJwYXRoNTAtNjctOS01LTItOC0wNi05MVwiXG4gICAgICAgIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDQzMi43MTI3NywxOTAuMDgxNzUgLTIuOTg0NiwxOS43NzczNlwiXG4gICAgICAgaWQ9XCJwYXRoNTAtNjctOS01LTItOC0xLTdcIlxuICAgICAgICAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSA0MDQuNzM4NTYsMTkyLjgxMjcxIC0xLjEzNjQsMTkuNDc0NzJcIlxuICAgICAgIGlkPVwicGF0aDUwLTY3LTktNS0yLTgtMDYtOC0wXCJcbiAgICAgICAgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gMzkyLjc4MDMsMTkzLjEyNTkxIC0xLjEzNjQsMTkuNDc0NzJcIlxuICAgICAgIGlkPVwicGF0aDUwLTY3LTktNS0yLTgtMDYtOC0wNVwiXG4gICAgICAgIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDM4MC42MTY5NCwxOTIuMzY0NyAtMS4xMzY0LDE5LjQ3NDcyXCJcbiAgICAgICBpZD1cInBhdGg1MC02Ny05LTUtMi04LTA2LTgtMjhcIlxuICAgICAgICAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSAzNjcuMDY2NjQsMTkyLjkxMDgzIC0xLjEzNjQsMTkuNDc0NzJcIlxuICAgICAgIGlkPVwicGF0aDUwLTY3LTktNS0yLTgtMDYtOC0wOVwiXG4gICAgICAgIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDM1NC4xMjYxMiwxOTIuODMyNDIgLTEuMTM2NCwxOS40NzQ3MlwiXG4gICAgICAgaWQ9XCJwYXRoNTAtNjctOS01LTItOC0wNi04LTVcIlxuICAgICAgICAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSAzNDEuMzg3MzMsMTk0Ljk5Njk5IC0xLjEzNjQsMTkuNDc0NzJcIlxuICAgICAgIGlkPVwicGF0aDUwLTY3LTktNS0yLTgtMDYtOC0zNlwiXG4gICAgICAgIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDMyOC45MDY5NSwxOTAuODEwNDIgLTEuMTM2NCwxOS40NzQ3MlwiXG4gICAgICAgaWQ9XCJwYXRoNTAtNjctOS01LTItOC0wNi04LTlcIlxuICAgICAgICAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSAzMTQuNTY0OSwxOTEuMjAwOTkgLTEuMTM2NCwxOS40NzQ3MlwiXG4gICAgICAgaWQ9XCJwYXRoNTAtNjctOS01LTItOC0wNi04LTc0XCJcbiAgICAgICAgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gMzAwLjgxNzE0LDE5Mi42NzEwNSAtMS4xMzY0LDE5LjQ3NDcyXCJcbiAgICAgICBpZD1cInBhdGg1MC02Ny05LTUtMi04LTA2LTgtOTRcIlxuICAgICAgICAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSAyODcuNjM5MzIsMTkzLjA0NDE5IC0xLjEzNjQsMTkuNDc0NzJcIlxuICAgICAgIGlkPVwicGF0aDUwLTY3LTktNS0yLTgtMDYtOC0xMlwiXG4gICAgICAgIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDI3NC4xNDEzMiwxODguOTQwNjggLTEuMTM2NCwxOS40NzQ3MlwiXG4gICAgICAgaWQ9XCJwYXRoNTAtNjctOS01LTItOC0wNi04LTg4XCJcbiAgICAgICAgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gMjU5LjEwOTE2LDE5Mi41MTkyNyAtMS4xMzY0LDE5LjQ3NDcyXCJcbiAgICAgICBpZD1cInBhdGg1MC02Ny05LTUtMi04LTA2LTgtODNcIlxuICAgICAgICAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSAyNDYuMTA4OTgsMTg5LjQ3MjM1IC0xLjEzNjQsMTkuNDc0NzJcIlxuICAgICAgIGlkPVwicGF0aDUwLTY3LTktNS0yLTgtMDYtOC00N1wiXG4gICAgICAgIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDcxOS41Njc5OSwyNjUuMTAzMTkgLTcuNzEzNzcsMjAuMDg1MVwiXG4gICAgICAgaWQ9XCJwYXRoNTAtNjctOVwiXG4gICAgICAgIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDU5OC44ODEyNywyMjQuNzQxNDcgLTYuNDY0ODIsMTkuNjU1NTdcIlxuICAgICAgIGlkPVwicGF0aDUwLTY3LTktNS0yLTgtMDYtOC03XCJcbiAgICAgICAgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gNTg4LjYxODg1LDIyMC4zNDA2NyAtNi40NjQ4MiwxOS42NTU1N1wiXG4gICAgICAgaWQ9XCJwYXRoNTAtNjctOS01LTItOC0wNi04LTJcIlxuICAgICAgICAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSA3MDUuMzU2MTUsMjYxLjk5NzA0IC03LjcxMzc3LDIwLjA4NTFcIlxuICAgICAgIGlkPVwicGF0aDUwLTY3LTktNVwiXG4gICAgICAgIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDY4OS42OTU5NywyNTYuMTQ5MDkgLTMuODg5MDYsMjEuNzYwMjZcIlxuICAgICAgIGlkPVwicGF0aDUwLTY3LTktNS0yXCJcbiAgICAgICAgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gNjc3LjYxODk1LDI1My4wMTAyOSAtNi44MzM1NSwyMS45NDU5NVwiXG4gICAgICAgaWQ9XCJwYXRoNTAtNjctOS01LTItNVwiXG4gICAgICAgIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDY2MC4wNDY3MiwyNTIuNDQyNzcgLTIuOTg0NiwxOS43NzczNlwiXG4gICAgICAgaWQ9XCJwYXRoNTAtNjctOS01LTItOFwiXG4gICAgICAgIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDY0Ni4xNzA0NywyNDUuMjY1OSAtMi45ODQ2LDE5Ljc3NzM2XCJcbiAgICAgICBpZD1cInBhdGg1MC02Ny05LTUtMi04LTBcIlxuICAgICAgICAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSA2MzQuMjQxMDEsMjQxLjEzNDI0IC0yLjk4NDYsMTkuNzc3MzZcIlxuICAgICAgIGlkPVwicGF0aDUwLTY3LTktNS0yLTgtMVwiXG4gICAgICAgIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDYyMi42NjQ1NSwyMzUuNDQ1NDcgLTIuOTg0NiwxOS43NzczNlwiXG4gICAgICAgaWQ9XCJwYXRoNTAtNjctOS01LTItOC0wNlwiXG4gICAgICAgIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2MwMDAwMFwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDYwOS43MTM4MiwyMzEuMzQ1NDIgLTIuOTg0NiwxOS43NzczNlwiXG4gICAgICAgaWQ9XCJwYXRoNTAtNjctOS01LTItOC0wNi00XCJcbiAgICAgICAgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjYzAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gNTY1LjcyMDg0LDIxMS40Mjk2MyAtNi40NjQ4MiwxOS42NTU1N1wiXG4gICAgICAgaWQ9XCJwYXRoNTAtNjctOS01LTItOC0wNi04LTNcIlxuICAgICAgICAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNjMDAwMDBcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwiTSA1NzcuMDY0MDgsMjE2LjEwNDQzIDU3MC41OTkyNiwyMzUuNzZcIlxuICAgICAgIGlkPVwicGF0aDUwLTY3LTktNS0yLTgtMDYtOC0xXCJcbiAgICAgICAgLz5cbiAgPC9nPlxuICBcbiAgPGdcbiAgICAgaWQ9XCJnNTRcIlxuICAgICBzdHlsZT17e3N0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIn19XG4gICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgzMjIuNDY3OTEsNzQuOTg3MjIxKVwiPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNmNTdkMjJcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwiTSAyMDAuMzI2MDUsMTg5LjI0NDMzIDE5NC4xMzgsMjA2LjMzMDYyXCJcbiAgICAgICBpZD1cInBhdGg1MC02Ny05LTUtMi04LTA2LTgtNi04XCJcbiAgICAgICAgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjZjU3ZDIyXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gMjEzLjUwNDg5LDE5MC4zMTcwOSAtMS4xMzY0LDE5LjQ3NDcyXCJcbiAgICAgICBpZD1cInBhdGg1MC02Ny05LTUtMi04LTA2LTgtNi02XCJcbiAgICAgICAgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjZjU3ZDIyXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gMjI2Ljc4MjY4LDE5MS44NDk4NSAtMS4xMzY0LDE5LjQ3NDcyXCJcbiAgICAgICBpZD1cInBhdGg1MC02Ny05LTUtMi04LTA2LTgtNlwiXG4gICAgICAgIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2Y1N2QyMlwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDE3OS4xNDk1OSwxOTkuNjc0OSBjIDExLjYxNTE2LC0xMi4zNDgxNyAxMS42MTUxNiwtMTIuMzQ4MTcgMTEuNjE1MTYsLTEyLjM0ODE3IHYgMFwiXG4gICAgICAgaWQ9XCJwYXRoNTRcIiAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNmNTdkMjJcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSAxNjEuNzM4LDE5MC43ODU4MyBjIDExLjMzNzA2LC03LjY2MzY3IDExLjMzNzA2LC03LjY2MzY3IDExLjMzNzA2LC03LjY2MzY3XCJcbiAgICAgICBpZD1cInBhdGg1NVwiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2Y1N2QyMlwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDE0OS45NTM0NiwxODAuNjc0NjIgYyAxNC4zMzI4NSwtOS42NjcxIDE0LjMzMjg1LC05LjY2NzEgMTQuMzMyODUsLTkuNjY3MVwiXG4gICAgICAgaWQ9XCJwYXRoNTZcIiAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNmNTdkMjJcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSAxMjMuODkwNzQsMTY2LjUzODU1IGMgMzQuMjE2MzEsLTEwLjA2MzgyIDM0LjIxNjMxLC0xMC4wNjM4MiAzNC4yMTYzMSwtMTAuMDYzODJcIlxuICAgICAgIGlkPVwicGF0aDU3XCIgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjZjU3ZDIyXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gMTE4LjU4NDksMTUxLjIwMDUzIGMgMzcuNjUxOTQsLTkuMjE0NTYgMzcuNjUxOTQsLTkuMjE0NTYgMzcuNjUxOTQsLTkuMjE0NTZcIlxuICAgICAgIGlkPVwicGF0aDU4XCIgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjZjU3ZDIyXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gMTE2LjEyMDE1LDEzNS43ODcyNyBjIDM3LjM2MjExLC05LjMzMjI1IDM3LjM2MjExLC05LjMzMjI1IDM3LjM2MjExLC05LjMzMjI1XCJcbiAgICAgICBpZD1cInBhdGg1OVwiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2Y1N2QyMlwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDExMC44NDcxNiwxMTkuNzYwMDIgYyAzNi45MTY1OCwtNi44Mzk0NCAzNi45MTY1OCwtNi44Mzk0NCAzNi45MTY1OCwtNi44Mzk0NFwiXG4gICAgICAgaWQ9XCJwYXRoNjBcIiAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNmNTdkMjJcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSAxMTIuODcxMTEsMTA0LjIyNDYzIGMgMzAuMzMzMTEsLTYuMjgyODk0IDMwLjMzMzExLC02LjI4Mjg5NCAzMC4zMzMxMSwtNi4yODI4OTRcIlxuICAgICAgIGlkPVwicGF0aDYxXCIgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjZjU3ZDIyXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gMTI2LjU5Mzg4LDE4Mi40NTI3MiBjIDE0LjA4MDQ2LC0xLjc4NjMxIDE0LjA4MDQ2LC0xLjc4NjMxIDE0LjA4MDQ2LC0xLjc4NjMxXCJcbiAgICAgICBpZD1cInBhdGg2MlwiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2Y1N2QyMlwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDEyNi42NDIyMSwxOTMuMTA1MiBjIDE5Ljc5NjMsMi4xMTMyNCAxOS43OTYzLDIuMTEzMjQgMTkuNzk2MywyLjExMzI0XCJcbiAgICAgICBpZD1cInBhdGg2M1wiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2Y1N2QyMlwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDExOS42Mzk2OSwyMDEuMTAxOTggYyAyMC45NTY0NCw4LjAxODg0IDIwLjk1NjQ0LDguMDE4ODQgMjAuOTU2NDQsOC4wMTg4NFwiXG4gICAgICAgaWQ9XCJwYXRoNjRcIiAvPlxuICA8L2c+XG4gIDxnXG4gICAgIGlkPVwiZzc5XCJcbiAgICAgc3R5bGU9e3tzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCJ9fVxuICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMzIyLjQ2NzkxLDc0Ljk4NzIyMSlcIj5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjZjU3ZDIyXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gODYuMDc2NDY5LDUwMy42MTg2IGMgOS44ODU0NjYsMTAuMzQ0ODkgOS44ODU0NjYsMTAuMzQ0ODkgOS44ODU0NjYsMTAuMzQ0ODlcIlxuICAgICAgIGlkPVwicGF0aDc5XCIgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjZjU3ZDIyXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gMTUwLjI5OTc4LDQ1Ny45MDQ0IGMgMS45NDI0MywxNy44NjYgMS45NDI0MywxNy44NjYgMS45NDI0MywxNy44NjZcIlxuICAgICAgIGlkPVwicGF0aDc0XCIgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjZjU3ZDIyXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gMTk5LjI4NDksNDg5LjA5MjUzIGMgLTIwLjE2Mjk2LDYuMjU1NzMgLTIwLjE2Mjk2LDYuMjU1NzMgLTIwLjE2Mjk2LDYuMjU1NzNcIlxuICAgICAgIGlkPVwicGF0aDY1XCIgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjZjU3ZDIyXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gMTg1LjY0NjQzLDUwNy4yMTI4OSAxOC45MTA2OSwtOC4xMjUxXCJcbiAgICAgICBpZD1cInBhdGg2NlwiXG4gICAgICAgIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2Y1N2QyMlwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDIwMC4wNjk0LDUzNS4zMjAyOSAxOC40NDE3NCwtMTEuMjIzNTNcIlxuICAgICAgIGlkPVwicGF0aDY4XCJcbiAgICAgICAgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjZjU3ZDIyXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gMTkwLjM3Mjc3LDQ2OC42MzQ3NSBjIDEyLjAzNjA4LDExLjY1Njg2IDEyLjAzNjA4LDExLjY1Njg2IDEyLjAzNjA4LDExLjY1Njg2XCJcbiAgICAgICBpZD1cInBhdGg3MFwiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2Y1N2QyMlwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDE4OC4wMTQ1Miw1MjAuNjA2NjUgYyAyMS45NTU1MSwtNy43NzYyNiAyMS45NTU1MSwtNy43NzYyNiAyMS45NTU1MSwtNy43NzYyNlwiXG4gICAgICAgaWQ9XCJwYXRoNjdcIiAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNmNTdkMjJcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSAyMDMuOTkyODUsNDU4LjQ1MzY5IGMgNi4wMjM4MiwxMi42NTkwNyA2LjAyMzgyLDEyLjY1OTA3IDYuMDIzODIsMTIuNjU5MDdcIlxuICAgICAgIGlkPVwicGF0aDcxXCIgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjZjU3ZDIyXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gMTY4LjA0MDI4LDQ1OS44ODUwNyBjIC0zLjczOTU4LDE0LjkxODI1IC0zLjczOTU4LDE0LjkxODI1IC0zLjczOTU4LDE0LjkxODI1XCJcbiAgICAgICBpZD1cInBhdGg3M1wiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2Y1N2QyMlwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDE4Mi4wNzczNiw0NjguOTQxMTUgLTcuMTE2MDcsOC45NDIyOVwiXG4gICAgICAgaWQ9XCJwYXRoNzJcIlxuICAgICAgICAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNmNTdkMjJcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSAxMzQuMzgyMTUsNDY2LjcwMjM2IGMgNy45NjIxNiwxMi4zMzc2MyA3Ljk2MjE2LDEyLjMzNzYzIDcuOTYyMTYsMTIuMzM3NjNcIlxuICAgICAgIGlkPVwicGF0aDc1XCIgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjZjU3ZDIyXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gMTA4Ljk0MTUsNDg1LjY4NDUzIGMgMTQuOTM4NDgsMTEuODk5NzUgMTQuOTM4NDgsMTEuODk5NzUgMTQuOTM4NDgsMTEuODk5NzVcIlxuICAgICAgIGlkPVwicGF0aDc3XCIgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjZjU3ZDIyXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIm0gOTguODk3MzczLDQ5NC43MzAwMiBjIDEwLjc4ODM4NywxMS44MTU2NSAxMC43ODgzODcsMTEuODE1NjUgMTAuNzg4Mzg3LDExLjgxNTY1XCJcbiAgICAgICBpZD1cInBhdGg3OFwiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2Y1N2QyMlwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDEyMi40NDk0OCw0NzUuNjg5OTcgYyAxMS4zMzk4MSwxMS45Mzk5MSAxMS4zMzk4MSwxMS45Mzk5MSAxMS4zMzk4MSwxMS45Mzk5MVwiXG4gICAgICAgaWQ9XCJwYXRoNzZcIiAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNmNTdkMjJcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwibSAyMDcuNTEzNDgsNTQ2LjcyNzk0IGMgMTkuNzY1MzQsMTYuNDk1MzYgMTkuNzY1MzQsMTYuNDk1MzYgMTkuNzY1MzQsMTYuNDk1MzZcIlxuICAgICAgIGlkPVwicGF0aDgxXCIgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjZjU3ZDIyXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIk0gMjQ3Ljg2NzM1LDU0MC4yNDIxOSBDIDIzNS43OTY4NCw1NjQuMTYxMSAyMzUuNzk2ODQsNTY0LjE2MTEgMjM1Ljc5Njg0LDU2NC4xNjExXCJcbiAgICAgICBpZD1cInBhdGg4M1wiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2Y1N2QyMlwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDI2Ni4zNzM4LDU1MC4yNzI2NyBjIC0yOS41MzQ2MywxNS43NDgzIC0yOS41MzQ2MywxNS43NDgzIC0yOS41MzQ2MywxNS43NDgzXCJcbiAgICAgICBpZD1cInBhdGg4NFwiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2Y1N2QyMlwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDIyNS4yMDI2Myw1MzQuNzkwNSBjIDguMjExMzcsMjQuODkyNTIgOC4yMTEzNywyNC44OTI1MiA4LjIxMTM3LDI0Ljg5MjUyXCJcbiAgICAgICBpZD1cInBhdGg4MlwiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2Y1N2QyMlwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJNIDI3MS4wODg0OCw1NzkuODkzNjcgQyAyMzQuODI4MDcsNTY2LjU1NDgyIDIzNC44MjgwNyw1NjYuNTU0ODIgMjM0LjgyODA3LDU2Ni41NTQ4MlwiXG4gICAgICAgaWQ9XCJwYXRoODVcIiAvPlxuICAgIDxwYXRoXG4gICAgICAgc3R5bGU9e3tmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiNmNTdkMjJcIixzdHJva2VXaWR0aDpcIjVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICBkPVwiTSAyNTEuODQ3NzMsNTkyLjc0NjE2IEMgMjM1LjI4OTYsNTY1LjE1NTg4IDIzNS4yODk2LDU2NS4xNTU4OCAyMzUuMjg5Niw1NjUuMTU1ODhcIlxuICAgICAgIGlkPVwicGF0aDg2XCIgLz5cbiAgICA8cGF0aFxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIm5vbmVcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjZjU3ZDIyXCIsc3Ryb2tlV2lkdGg6XCI1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgZD1cIk0gMjI0Ljk2MzU2LDU5OC4wNTg1NSBDIDIzNS4zMzI0NCw1NjMuNzQzMSAyMzUuMzMyNDQsNTYzLjc0MzEgMjM1LjMzMjQ0LDU2My43NDMxXCJcbiAgICAgICBpZD1cInBhdGg4N1wiIC8+XG4gICAgPHBhdGhcbiAgICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiI2Y1N2QyMlwiLHN0cm9rZVdpZHRoOlwiNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIGQ9XCJtIDIwNC41Nzc5OSw1ODUuNTg0OTggYyAyOC40ODY0MywtMjAuMTk0NTIgMjguNDg2NDMsLTIwLjE5NDUyIDI4LjQ4NjQzLC0yMC4xOTQ1MiBsIC0yOS45NTQ2MSwyLjA1MTAxXCJcbiAgICAgICBpZD1cInBhdGg4OFwiIC8+XG4gIDwvZz5cbiAgPGNpcmNsZVxuICAgICBzdHlsZT17e2Rpc3BsYXk6XCJpbmxpbmVcIixmaWxsOlwiIzg4MTI3NlwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIm5vbmVcIixzdHJva2VXaWR0aDpcIjkuODI2NzdcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICBpZD1cInBhdGg2XCJcbiAgICAgY3g9XCI1NTcuNzAzMjVcIlxuICAgICBjeT1cIjY0MS42NDUyXCJcbiAgICAgcj1cIjlcIiAvPlxuICA8cGF0aFxuICAgICBzdHlsZT17e2ZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiIzAwMDAwMFwiLHN0cm9rZVdpZHRoOlwiN1wiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICBkPVwiTSA1MjUuMDk0OTIsNjYyLjA4MDc1IEMgMzc1LjY2MTYxLDcxNC40Mjc1MSAzNzUuNjYxNjEsNzE0LjQyNzUxIDM3NS42NjE2MSw3MTQuNDI3NTFcIlxuICAgICBpZD1cInBhdGg4OVwiIC8+XG4gIDx0ZXh0XG4gICAgIFxuICAgICBzdHlsZT17e2ZvbnRTdHlsZTpcIm5vcm1hbFwiLGZvbnRWYXJpYW50Olwibm9ybWFsXCIsZm9udFdlaWdodDpcIm5vcm1hbFwiLGZvbnRTdHJldGNoOlwibm9ybWFsXCIsZm9udFNpemU6XCIxNS42NjU0cHhcIixmb250RmFtaWx5OlwiQXJpYWxcIix3aGl0ZVNwYWNlOlwicHJlXCIsaW5saW5lU2l6ZTpcIjEyMy45MTFcIixmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiMwMDAwMDBcIixzdHJva2VXaWR0aDpcIjAuMzI2MzYzXCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgIHg9XCIyNC44MzgyMzZcIlxuICAgICB5PVwiNjUwLjIzMzY0XCJcbiAgICAgaWQ9XCJyaWJvdGV4dFwiXG4gICAgIHRyYW5zZm9ybT1cIm1hdHJpeCgzLjA1MjY2OTcsMCwwLDMuMDc1NTEzMiwxODcuOTU1MDgsLTEyNDMuOTUzOSlcIj48dHNwYW5cbiAgICAgICB4PVwiMjQuODM4MjM2XCJcbiAgICAgICB5PVwiNjUwLjIzMzY0XCJcbiAgICAgICBpZD1cInJpYm90ZXh0XCI+PHRzcGFuXG4gICAgICAgICBzdHlsZT17e2ZpbGw6XCIjMDAwMDAwXCJ9fVxuICAgICAgICAgaWQ9XCJyaWJvdGV4dFwiPlJpYm9zd2l0Y2g8L3RzcGFuPjwvdHNwYW4+PC90ZXh0PlxuICA8cGF0aFxuICAgICBzdHlsZT17e2ZpbGw6XCIjMDAwMDAwXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiIzAwMDAwMFwiLHN0cm9rZVdpZHRoOlwiN1wiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICBkPVwiTSA3MTQuNTc2NTQsMjg2LjczNzgyIEMgNjAzLjA4ODUzLDM3My45NTI2MyA2MDMuMDg4NTMsMzczLjk1MjYzIDYwMy4wODg1MywzNzMuOTUyNjNcIlxuICAgICBpZD1cInBhdGg5MFwiIC8+XG4gIDxwYXRoXG4gICAgIHN0eWxlPXt7ZmlsbDpcIiMwMDAwMDBcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjMDAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI3XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgIGQ9XCJNIDExMDMuNzM1OCwxOTYuNTY2NCBDIDEyNzMuNjk4NSw0NS41OTAyNTUgMTI3My42OTg1LDQ1LjU5MDI1NSAxMjczLjY5ODUsNDUuNTkwMjU1XCJcbiAgICAgaWQ9XCJwYXRoOTFcIiAvPlxuICA8cGF0aFxuICAgICBzdHlsZT17e2ZpbGw6XCIjMDAwMDAwXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiIzAwMDAwMFwiLHN0cm9rZVdpZHRoOlwiN1wiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICBkPVwibSAxMzc5LjY4OTksNDA1LjE3OTY5IGMgMTU1LjQwNjMsLTguMTY4NDMgMTU1LjQwNjMsLTguMTY4NDMgMTU1LjQwNjMsLTguMTY4NDNcIlxuICAgICBpZD1cInBhdGg5MlwiIC8+XG4gIDxwYXRoXG4gICAgIHN0eWxlPXt7ZmlsbDpcIiMwMDAwMDBcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjMDAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI3XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgIGQ9XCJtIDEwNDcuMzA2MSw2OTAuNjkwNTUgYyAxMDguMTA3LDE1NS4zNzc4OSAxMDguMTA3LDE1NS4zNzc4OSAxMDguMTA3LDE1NS4zNzc4OVwiXG4gICAgIGlkPVwicGF0aDkzXCIgLz5cbiAgPHBhdGhcbiAgICAgc3R5bGU9e3tmaWxsOlwiIzAwMDAwMFwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiMwMDAwMDBcIixzdHJva2VXaWR0aDpcIjdcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgZD1cIm0gNDQwLjk2NTg3LDIyNS4xOTQ1IGMgLTIwMy40Mzk0LDM3LjgyNjE0IC0yMDMuNDM5NCwzNy44MjYxNCAtMjAzLjQzOTQsMzcuODI2MTRcIlxuICAgICBpZD1cInBhdGg5NFwiIC8+XG4gIDxwYXRoXG4gICAgIHN0eWxlPXt7ZmlsbDpcIiMwMDAwMDBcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjMDAwMDAwXCIsc3Ryb2tlV2lkdGg6XCI3XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgIGQ9XCJNIDM3Mi43MzI2NSwxMTguODg3MDUgQyAyMzQuMjU5MjYsODEuNzk2Nzg3IDIzNC4yNTkyNiw4MS43OTY3ODcgMjM0LjI1OTI2LDgxLjc5Njc4N1wiXG4gICAgIGlkPVwicGF0aDk1XCIgLz5cbiAgPHRleHRcbiAgICAgXG4gICAgIHN0eWxlPXt7Zm9udFN0eWxlOlwibm9ybWFsXCIsZm9udFZhcmlhbnQ6XCJub3JtYWxcIixmb250V2VpZ2h0Olwibm9ybWFsXCIsZm9udFN0cmV0Y2g6XCJub3JtYWxcIixmb250U2l6ZTpcIjE1LjY2NTRweFwiLGZvbnRGYW1pbHk6XCJBcmlhbFwiLHdoaXRlU3BhY2U6XCJwcmVcIixpbmxpbmVTaXplOlwiMTIzLjkxMVwiLGRpc3BsYXk6XCJpbmxpbmVcIixmaWxsOlwibm9uZVwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIiMwMDAwMDBcIixzdHJva2VXaWR0aDpcIjAuMzI2MzYzXCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgIHg9XCIyNC44MzgyMzZcIlxuICAgICB5PVwiNjUwLjIzMzY0XCJcbiAgICAgaWQ9XCJzdGVtbG9vcHRleHRcIlxuICAgICB0cmFuc2Zvcm09XCJtYXRyaXgoMy4wNTI2Njk3LDAsMCwzLjA3NTUxMzIsLTc3LjQ3MDExNiwtMTcxOC45NTUzKVwiPjx0c3BhblxuICAgICAgIHg9XCIyNC44MzgyMzZcIlxuICAgICAgIHk9XCI2NTAuMjMzNjRcIlxuICAgICAgIGlkPVwic3RlbWxvb3B0ZXh0XCI+PHRzcGFuXG4gICAgICAgICBzdHlsZT17e2ZpbGw6XCIjMDAwMDAwXCJ9fVxuICAgICAgICAgaWQ9XCJzdGVtbG9vcHRleHRcIj5TdGVtIExvb3A8L3RzcGFuPjwvdHNwYW4+PC90ZXh0PlxuICAgICAgPExpbmsgY2xhc3NOYW1lPVwiYnRuIHZpbGxhZ2Utc3R5bGUtYnV0dG9uXCIgcm9sZT1cImJ1dHRvblwiIHRvPVwiL2VuZ2luZWVyaW5nLyNSTkFiaW5kaW5ncHJvdGVpblwiPlxuICAgICAgICAgICAgPHRleHQgIFxuICAgICAgICAgc3R5bGU9e3tmb250U3R5bGU6XCJub3JtYWxcIixmb250VmFyaWFudDpcIm5vcm1hbFwiLGZvbnRXZWlnaHQ6XCJub3JtYWxcIixmb250U3RyZXRjaDpcIm5vcm1hbFwiLGZvbnRTaXplOlwiMTUuNjY1NHB4XCIsZm9udEZhbWlseTpcIkFyaWFsXCIsd2hpdGVTcGFjZTpcInByZVwiLGlubGluZVNpemU6XCIxMjMuOTExXCIsZGlzcGxheTpcImlubGluZVwiLGZpbGw6XCIjMDAwMDAwXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiIzAwMDAwMFwiLHN0cm9rZVdpZHRoOlwiMC4zMjYzNjNcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICAgIHg9XCIyNC44MzgyMzZcIlxuICAgICAgICAgeT1cIjY1MC4yMzM2NFwiXG4gICAgICAgICBpZD1cInJuYWJpbmRpbmd0ZXh0XCJcbiAgICAgICAgIHRyYW5zZm9ybT1cIm1hdHJpeCgzLjA1MjY2OTcsMCwwLDMuMDc1NTEzMiwtMzMuNjQ5Njk2LC0xOTQ3LjA3MDgpXCI+PHRzcGFuXG4gICAgICAgICAgICB4PVwiMjQuODM4MjM2XCJcbiAgICAgICAgICAgIHk9XCI2NTAuMjMzNjRcIlxuICAgICAgICAgICAgaWQ9XCJ0c3BhbjdcIj5STkEgYmluZGluZyA8L3RzcGFuPjx0c3BhblxuICAgICAgICAgICAgeD1cIjI0LjgzODIzNlwiXG4gICAgICAgICAgICB5PVwiNjY5LjgxNTM5XCJcbiAgICAgICAgICAgIGlkPVwidHNwYW44XCI+cHJvdGVpbjwvdHNwYW4+PC90ZXh0PlxuICAgIDwvTGluaz5cblxuICAgey8qIHBlZ1JOQSBUZXh0ICovfVxuICA8dGV4dFxuICAgICBzdHlsZT17e2ZvbnRTdHlsZTpcIm5vcm1hbFwiLGZvbnRWYXJpYW50Olwibm9ybWFsXCIsZm9udFdlaWdodDpcIm5vcm1hbFwiLGZvbnRTdHJldGNoOlwibm9ybWFsXCIsZm9udFNpemU6XCIxNS42NjU0cHhcIixmb250RmFtaWx5OlwiQXJpYWxcIiwgd2hpdGVTcGFjZTpcInByZVwiLGlubGluZVNpemU6XCIxMjMuOTExXCIsZGlzcGxheTpcImlubGluZVwiLGZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiIzAwMDAwMFwiLHN0cm9rZVdpZHRoOlwiMC4zMjYzNjNcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgeD1cIjI0LjgzODIzNlwiXG4gICAgIHk9XCI2NTAuMjMzNjRcIlxuICAgICBpZD1cInBlZ3JuYXRleHRcIlxuICAgICB0cmFuc2Zvcm09XCJtYXRyaXgoMy4wNTI2Njk3LDAsMCwzLjA3NTUxMzIsMzI3LjE1NTYsLTE1ODguMzMpXCI+PHRzcGFuXG4gICAgICAgeD1cIjI0LjgzODIzNlwiXG4gICAgICAgeT1cIjY1MC4yMzM2NFwiXG4gICAgICAgaWQ9XCJwZWdybmF0ZXh0XCI+PHRzcGFuXG4gICAgICAgICBzdHlsZT17e2ZpbGw6XCIjMDAwMDAwXCJ9fVxuICAgICAgICAgaWQ9XCJwZWdybmF0ZXh0XCI+cGVnUk5BPC90c3Bhbj48L3RzcGFuPjwvdGV4dD5cbiAgPGdcbiAgICAgaWQ9XCJnMVwiXG4gICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSg4NDUuODk5NDcsMTE0LjExMzc4KVwiPlxuICAgIDx0ZXh0XG4gICAgICAgXG4gICAgICAgc3R5bGU9e3tmb250U3R5bGU6XCJub3JtYWxcIixmb250VmFyaWFudDpcIm5vcm1hbFwiLGZvbnRXZWlnaHQ6XCJub3JtYWxcIixmb250U3RyZXRjaDpcIm5vcm1hbFwiLGZvbnRTaXplOlwiMTUuNjY1NHB4XCIsZm9udEZhbWlseTpcIkFyaWFsXCIsd2hpdGVTcGFjZTpcInByZVwiLGlubGluZVNpemU6XCIxMjMuOTExXCIsZGlzcGxheTpcImlubGluZVwiLGZpbGw6XCIjMDAwMDAwXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiIzAwMDAwMFwiLHN0cm9rZVdpZHRoOjAuMzI2MzYzLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgIHg9XCIyNC44MzgyMzZcIlxuICAgICAgIHk9XCI2NTAuMjMzNjRcIlxuICAgICAgIGlkPVwibmlrYXNldGV4dFwiXG4gICAgICAgdHJhbnNmb3JtPVwibWF0cml4KDMuMDUyNjY5NywwLDAsMy4wNzU1MTMyLDIyNS4yNDAyNCwtMTIyMC43NTM4KVwiPjx0c3BhblxuICAgICAgICAgeD1cIjI0LjgzODIzNlwiXG4gICAgICAgICB5PVwiNjUwLjIzMzY0XCJcbiAgICAgICAgIGlkPVwidHNwYW4xMVwiPk5pa2FzZTwvdHNwYW4+PC90ZXh0PlxuICA8L2c+XG4gIDx0ZXh0XG4gICAgIFxuICAgICBzdHlsZT17e2ZvbnRTdHlsZTpcIm5vcm1hbFwiLGZvbnRWYXJpYW50Olwibm9ybWFsXCIsZm9udFdlaWdodDpcIm5vcm1hbFwiLGZvbnRTdHJldGNoOlwibm9ybWFsXCIsZm9udFNpemU6XCIxNS42NjU0cHhcIixmb250RmFtaWx5OlwiQXJpYWxcIix3aGl0ZVNwYWNlOlwicHJlXCIsaW5saW5lU2l6ZTpcIjEyMy45MTFcIixkaXNwbGF5OlwiaW5saW5lXCIsZmlsbDpcIiMwMDAwMDBcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCIjMDAwMDAwXCIsc3Ryb2tlV2lkdGg6MC4zMjYzNjMsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgIHg9XCIyNC44MzgyMzZcIlxuICAgICB5PVwiNjUwLjIzMzY0XCJcbiAgICAgaWQ9XCJsaW5rZXJ0ZXh0XCJcbiAgICAgdHJhbnNmb3JtPVwibWF0cml4KDMuMDUyNjY5NywwLDAsMy4wNzU1MTMyLDE0NzMuMzExMywtMTU5My4zMDU2KVwiPjx0c3BhblxuICAgICAgIHg9XCIyNC44MzgyMzZcIlxuICAgICAgIHk9XCI2NTAuMjMzNjRcIlxuICAgICAgIGlkPVwidHNwYW4xMlwiPkxpbmtlcjwvdHNwYW4+PC90ZXh0PlxuICA8dGV4dFxuICAgICBcbiAgICAgc3R5bGU9e3tmb250U3R5bGU6XCJub3JtYWxcIixmb250VmFyaWFudDpcIm5vcm1hbFwiLGZvbnRXZWlnaHQ6XCJub3JtYWxcIixmb250U3RyZXRjaDpcIm5vcm1hbFwiLGZvbnRTaXplOlwiMTUuNjY1NHB4XCIsZm9udEZhbWlseTpcIkFyaWFsXCIsd2hpdGVTcGFjZTpcInByZVwiLGlubGluZVNpemU6XCIxMjMuOTExXCIsZGlzcGxheTpcImlubGluZVwiLGZpbGw6XCJub25lXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwiIzAwMDAwMFwiLHN0cm9rZVdpZHRoOlwiMC4zMjYzNjNcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgeD1cIjI0LjgzODIzNlwiXG4gICAgIHk9XCI2NTAuMjMzNjRcIlxuICAgICBpZD1cInRleHQ4OS00OVwiXG4gICAgIHRyYW5zZm9ybT1cIm1hdHJpeCgzLjA1MjY2OTcsMCwwLDMuMDc1NTEzMiwxMTk5LjAyOTgsLTE5NTcuMjE2KVwiPjx0c3BhblxuICAgICAgIHg9XCIyNC44MzgyMzZcIlxuICAgICAgIHk9XCI2NTAuMjMzNjRcIlxuICAgICAgIGlkPVwiUEV0ZXh0XCI+PHRzcGFuXG4gICAgICAgICBzdHlsZT17e2ZpbGw6XCIjMDAwMDAwXCJ9fVxuICAgICAgICAgaWQ9XCJQRXRleHRcIj5QRTwvdHNwYW4+PHRzcGFuXG4gICAgICAgICBzdHlsZT17e2ZvbnRTaXplOlwiNjUlXCIsYmFzZWxpbmVTaGlmdDpcInN1cGVyXCJ9fVxuICAgICAgICAgaWQ9XCJQRXRleHRsb3dcIj5DTzwvdHNwYW4+PHRzcGFuXG4gICAgICAgICBzdHlsZT17e2ZpbGw6XCIjMDAwMDAwXCJ9fVxuICAgICAgICAgaWQ9XCJQRXRleHRcIj4tTWluaSBSVDwvdHNwYW4+PC90c3Bhbj48L3RleHQ+XG48L3N2Zz5cbiAgICAgIDwvPlxuXG4gICAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gRW5naW5lZXJpbmdDeWNsZSgpe1xuICAgcmV0dXJuKFxuPHN2Z1xuICAgd2lkdGg9XCI3MCVcIlxuICAgaGVpZ2h0PVwiNzAlXCJcbiAgIHZpZXdCb3g9XCIwIDAgMTMzIDEzM1wiXG4gICBpZD1cInN2ZzI1XCJcbiAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgPGRlZnNcbiAgICAgaWQ9XCJkZWZzMVwiPlxuICAgIDwvZGVmcz5cbiAgPGdcbiAgICAgaWQ9XCJMYXllcl8yXCJcbiAgICAgZGF0YS1uYW1lPVwiTGF5ZXIgMlwiXG4gICAgIHN0eWxlPXt7c3Ryb2tlV2lkdGg6XCI2XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwifX0+XG4gICAgPGdcbiAgICAgICBpZD1cIlBsYXNtaWRcIlxuICAgICAgIHN0eWxlPXt7c3Ryb2tlV2lkdGg6XCI2XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwifX0+XG4gICAgICA8Z1xuICAgICAgICAgaWQ9XCJnMjVcIlxuICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDcuNTAwOTc4LDMuMDUwNDg5OClcIj5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICAgY2xhc3NOYW1lPVwiY2xzLTdcIlxuICAgICAgICAgICBkPVwibSA0Mi4wNSwxMTUuNTkgYyAyNy43Nyw5LjE5IDU3LjgzLC00Ljc5IDY5Ljc2LC0zMi4yM1wiXG4gICAgICAgICAgICBpZD1cInBhdGgyMlwiXG4gICAgICAgICAgIHN0eWxlPXt7c3Ryb2tlOlwiI2Y0Y2MxZVwiLHN0cm9rZVdpZHRoOlwiMTVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIn19IC8+XG4gICAgICA8L2c+XG4gICAgICA8Z1xuICAgICAgICAgaWQ9XCJnMjZcIlxuICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDguMDAxOTY5OSwyLjg0MTgyMjMpXCJcbiAgICAgICAgIHN0eWxlPXt7c3Ryb2tlV2lkdGg6XCI2XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwifX0+ICBcbiAgICAgICAgPHBvbHlnb25cbiAgICAgICAgICAgY2xhc3NOYW1lPVwiY2xzLTEzXCJcbiAgICAgICAgICAgcG9pbnRzPVwiMTEyLjA3LDgzLjM2IDExMC45NCw3Ni4yNyAxMTcuNjUsNzguODQgXCJcbiAgICAgICAgICAgIGlkPVwicG9seWdvbjI1XCJcbiAgICAgICAgICAgc3R5bGU9e3tmaWxsOlwiIzg1MGY3OFwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZVdpZHRoOlwiNlwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIn19XG4gICAgICAgICAgIHRyYW5zZm9ybT1cIm1hdHJpeCgyLjk4MDYyNTksMCwwLDIuOTgwNjI1OSwtMjI1LjQzNzIyLC0xNTYuNDUxMjMpXCIgLz5cbiAgICAgICAgIDxwYXRoXG4gICAgICAgICAgIGNsYXNzTmFtZT1cImNscy0xMlwiXG4gICAgICAgICAgIGQ9XCJNIDExNCw3OC41NSBDIDEyMy40NSw1MC44NiAxMTAsMjAuNzUgODIuNjYsOC42XCJcbiAgICAgICAgICAgIGlkPVwicGF0aDI1XCJcbiAgICAgICAgICAgc3R5bGU9e3tzdHJva2VXaWR0aDpcIjE1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZTpcIiM4NTBmNzhcIixzdHJva2VPcGFjaXR5OlwiMVwifX0gLz5cbiAgICAgICAgPHRleHRcbiAgICAgICAgICAgc3R5bGU9e3tmb250U2l6ZTpcIjE3LjMzMzNweFwiLGxpbmVIZWlnaHQ6XCIwXCIsZm9udEZhbWlseTpcIkFyaWFsXCIsZmlsbDpcIiMwMDAwMDBcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCJub25lXCIsc3Ryb2tlV2lkdGg6XCIxNVwiLHN0cm9rZUxpbmVjYXA6XCJyb3VuZFwiLHN0cm9rZUxpbmVqb2luOlwicm91bmRcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICAgICAgaWQ9XCJ0ZXh0MzFcIlxuICAgICAgICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoNS42OTAyMTk0LC0wLjExNTUxODgzKVwiPjx0ZXh0UGF0aFxuICAgICAgICAgICAgeGxpbmtIcmVmPVwiI3BhdGgyNVwiXG4gICAgICAgICAgICAgaWQ9XCJ0ZXh0UGF0aDMzXCI+TGVhcm48dHNwYW5cbiAgICAgICAgIGlkPVwidHNwYW4zMVwiIC8+PC90ZXh0UGF0aD48L3RleHQ+XG4gICAgICA8L2c+XG4gICAgICA8Z1xuICAgICAgICAgaWQ9XCJnMjdcIlxuICAgICAgICAgc3R5bGU9e3tzdHJva2VXaWR0aDpcIjZcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCJ9fVxuICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDguMDAxOTY5OSwyLjg0MTgyMjMpXCI+XG4gICAgICAgIDxwb2x5Z29uXG4gICAgICAgICAgIGNsYXNzTmFtZT1cImNscy0xMFwiXG4gICAgICAgICAgICBwb2ludHM9XCI2Mi41Myw3LjEyIDYzLjQ3LDAgNjkuMTcsNC4zNyBcIlxuICAgICAgICAgICBpZD1cInBvbHlnb24yM1wiXG4gICAgICAgICAgICB0cmFuc2Zvcm09XCJtYXRyaXgoMi43NzEyMjYzLDAuNTgxNDc1NDgsLTAuNTgxNDc1NDgsMi43NzEyMjYzLC05Ni41ODc4MjgsLTM5Ljc0ODA3MSlcIlxuICAgICAgICAgICBzdHlsZT17e2ZpbGw6XCIjYTBhN2YzXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlV2lkdGg6XCI2XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwifX1cbiAgICAgICAgICAgaW5rc2NhcGU6dHJhbnNmb3JtLWNlbnRlci14PVwiMy42MTczNzUxXCJcbiAgICAgICAgICAgaW5rc2NhcGU6dHJhbnNmb3JtLWNlbnRlci15PVwiNS4xOTc4ODUyXCIgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICAgY2xhc3NOYW1lPVwiY2xzLTlcIlxuICAgICAgICAgICBkPVwiTSA3OC41OTkxMTEsNy41NDY4MjY0IEMgNDMuODIwMzQ2LC0yLjYxNzc1ODggMTMuOTU2NzQ2LDE0LjI4NjA0NiA0LjIxMDYyODEsNDYuMzY4NzQ5XCJcbiAgICAgICAgICAgaWQ9XCJwYXRoMjNcIlxuICAgICAgICAgICBzdHlsZT17e3N0cm9rZTpcIiNhMGE3ZjNcIixzdHJva2VXaWR0aDpcIjE1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCJ9fSAvPlxuICAgICAgICA8dGV4dFxuICAgICAgICAgICBcbiAgICAgICAgICAgc3R5bGU9e3tmb250U2l6ZTpcIjE3LjMzMzNweFwiLGxpbmVIZWlnaHQ6XCIwXCIsZm9udEZhbWlseTpcIkFyaWFsXCIsZmlsbDpcIiMwMDAwMDBcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCJub25lXCIsc3Ryb2tlV2lkdGg6XCI2XCIsc3Ryb2tlTGluZWNhcDpcInJvdW5kXCIsc3Ryb2tlTGluZWpvaW46XCJyb3VuZFwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgICAgICBpZD1cInRleHQyOFwiXG4gICAgICAgICAgIFxuICAgICAgICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoLTAuMDMwMjM1MDYsLTUuOTYwMjMzNilcIj48dGV4dFBhdGhcbiAgICAgICAgICAgeGxpbmtIcmVmPVwiI3BhdGgyM1wiXG4gICAgICAgICAgICBpZD1cInRleHRQYXRoMjhcIj5UZXN0PC90ZXh0UGF0aD48L3RleHQ+XG4gICAgICA8L2c+XG4gICAgICA8Z1xuICAgICAgICAgaWQ9XCJnMjhcIlxuICAgICAgICAgc3R5bGU9e3tzdHJva2VXaWR0aDpcIjZcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCJ9fVxuICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDguMDAxOTY5OSwyLjg0MTgyMjMpXCI+XG4gICAgICAgIDxwb2x5Z29uXG4gICAgICAgICAgIGNsYXNzTmFtZT1cImNscy0xM1wiXG4gICAgICAgICAgIHBvaW50cz1cIjExNy42NSw3OC44NCAxMTIuMDcsODMuMzYgMTEwLjk0LDc2LjI3IFwiXG4gICAgICAgICAgICBpZD1cInBvbHlnb24yNS02XCJcbiAgICAgICAgICAgc3R5bGU9e3tmaWxsOlwiI2Y1N2QyMlwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZVdpZHRoOlwiNlwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIn19XG4gICAgICAgICAgIHRyYW5zZm9ybT1cIm1hdHJpeCgtMi45NjUwMzE0LDAuMzA0NDk4OTMsLTAuMzA0NDk4OTMsLTIuOTY1MDMxNCwzNjQuODQwNjcsMjQ5LjI4MjQ5KVwiIC8+XG4gICAgICAgICA8cGF0aFxuICAgICAgICAgICBjbGFzc05hbWU9XCJjbHMtMTFcIlxuICAgICAgICAgICBkPVwiTSAyLjY2NTk3NTMsNTAuOTUzNTA1IEMgLTIuMDk1NjY5NCw3Mi43Mjc5MTUgMTAuOTM2ODY2LDEwMi45NDI3MyAzNi42NTYyMzQsMTEzLjYyODM0XCJcbiAgICAgICAgICAgIGlkPVwicGF0aDI0XCJcbiAgICAgICAgICAgc3R5bGU9e3tzdHJva2VXaWR0aDpcIjE1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZTpcIiNmNTdkMjJcIixzdHJva2VPcGFjaXR5OlwiMVwifX0gLz5cbiAgICAgICAgPHRleHRcbiAgICAgICAgICAgXG4gICAgICAgICAgIHN0eWxlPXt7Zm9udFNpemU6XCIxNy4zMzMzcHhcIixsaW5lSGVpZ2h0OlwiMFwiLGZvbnRGYW1pbHk6XCJBcmlhbFwiLGZpbGw6XCIjMDAwMDAwXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwibm9uZVwiLHN0cm9rZVdpZHRoOlwiMTVcIixzdHJva2VMaW5lY2FwOlwicm91bmRcIixzdHJva2VMaW5lam9pbjpcInJvdW5kXCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgICAgIGlkPVwidGV4dDMyXCJcbiAgICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKC01LjcxMTAzMTUsMS43NDUzMjQzKVwiPjx0ZXh0UGF0aFxuICAgICAgICAgICAgeGxpbmtIcmVmPVwiI3BhdGgyNFwiXG4gICAgICAgICAgICAgaWQ9XCJ0ZXh0UGF0aDMyXCI+QnVpbGQ8dHNwYW5cbiAgIGlkPVwidHNwYW4zMlwiIC8+PC90ZXh0UGF0aD48L3RleHQ+XG4gICAgICA8L2c+XG4gICAgICA8cG9seWdvblxuICAgICAgICAgY2xhc3NOYW1lPVwiY2xzLThcIlxuICAgICAgICAgcG9pbnRzPVwiMzcuMjIsMTEzLjc0IDQ0LjMsMTEyLjU2IDQxLjc4LDExOS4yOCBcIlxuICAgICAgICAgaWQ9XCJwb2x5Z29uMjJcIlxuICAgICAgICAgc3R5bGU9e3tzdHJva2VXaWR0aDpcIjZcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsZmlsbDpcIiNmNGNjMWVcIixmaWxsT3BhY2l0eTpcIjFcIn19XG4gICAgICAgICB0cmFuc2Zvcm09XCJtYXRyaXgoMi44MjQ4NTg4LDAsMCwyLjgyNDg1ODgsLTY3Ljc5Nzc4MSwtMjA3Ljk2OTc3KVwiIC8+XG4gICAgICA8dGV4dFxuICAgICAgICAgXG4gICAgICAgICBzdHlsZT17e2ZvbnRTaXplOlwiMTcuMzMzM3B4XCIsbGluZUhlaWdodDpcIjBcIixmb250RmFtaWx5OlwiQXJpYWxcIixmaWxsOlwiIzAwMDAwMFwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIm5vbmVcIixzdHJva2VXaWR0aDpcIjE1XCIsc3Ryb2tlTGluZWNhcDpcInJvdW5kXCIsc3Ryb2tlTGluZWpvaW46XCJyb3VuZFwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgICAgaWQ9XCJ0ZXh0MjlcIlxuICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDguNDA1MjkyMSw4Ljg1NTMzMzQpXCI+PHRleHRQYXRoXG4gICAgICAgICB4bGlua0hyZWY9XCIjcGF0aDIyXCJcbiAgICAgICAgIGlkPVwidGV4dFBhdGgzNFwiPkRlc2lnbjx0c3BhblxuICAgICAgICAgaWQ9XCJ0c3BhbjI5XCIgLz48L3RleHRQYXRoPjwvdGV4dD5cbiAgICA8L2c+XG4gIDwvZz5cbjwvc3ZnPlxuXG4gICApXG59XG5cblxuXG5leHBvcnQgZnVuY3Rpb24gRW5naW5lZXJpbmdDeWNsZVp3ZWkoKXtcbiAgIHJldHVybihcbjxzdmdcbiAgIHZpZXdCb3g9XCIwIDAgMTU4NTEuMDE0IDE1NTI5LjExOFwiXG4gICB2ZXJzaW9uPVwiMS4xXCJcbiAgIGlkPVwic3ZnMjVcIlxuICAgd2lkdGg9XCIxNTg1MS4wMTRcIlxuICAgaGVpZ2h0PVwiMTU1MjkuMTE4XCJcbiAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgPGRlZnNcbiAgICAgaWQ9XCJkZWZzMVwiPlxuICAgPC9kZWZzPlxuICA8Z1xuICAgICBpZD1cImcyNVwiXG4gICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSg5NTEuNDkzNCwzNDIuMzY0MSlcIlxuICAgICBzdHlsZT17e3N0cm9rZVdpZHRoOlwiNlwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIn19PlxuICAgIDxwYXRoXG4gICAgICAgY2xhc3NOYW1lPVwiY2xzLTdcIlxuICAgICAgIGQ9XCJtIDQyLjA1LDExNS41OSBjIDI3Ljc3LDkuMTkgNTcuODMsLTQuNzkgNjkuNzYsLTMyLjIzXCJcbiAgICAgICBpZD1cInBhdGgyMlwiXG4gICAgICAgc3R5bGU9e3tzdHJva2U6XCIjZjRjYzFlXCIsc3Ryb2tlV2lkdGg6XCIxNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwifX0gXG4gICAgICAgLz5cbiAgPC9nPlxuICA8Z1xuICAgICBpZD1cImcyNlwiXG4gICAgIHN0eWxlPXt7c3Ryb2tlV2lkdGg6XCI2XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwifX1cbiAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDk1MS45OTQzOSwzNDIuMTU1NDMpXCI+XG4gICAgPHBvbHlnb25cbiAgICAgICBjbGFzc05hbWU9XCJjbHMtMTNcIlxuICAgICAgIHBvaW50cz1cIjExMi4wNyw4My4zNiAxMTAuOTQsNzYuMjcgMTE3LjY1LDc4Ljg0IFwiXG4gICAgICAgaWQ9XCJwb2x5Z29uMjVcIlxuICAgICAgIHN0eWxlPXt7ZmlsbDpcIiM4NTBmNzhcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2VXaWR0aDpcIjZcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCJ9fVxuICAgICAgIHRyYW5zZm9ybT1cIm1hdHJpeCgyLjk4MDYyNTksMCwwLDIuOTgwNjI1OSwtMjI1LjQzNzIyLC0xNTYuNDUxMjMpXCIgLz5cbiAgICA8cGF0aFxuICAgICAgIGNsYXNzTmFtZT1cImNscy0xMlwiXG4gICAgICAgZD1cIk0gMTE0LDc4LjU1IEMgMTIzLjQ1LDUwLjg2IDExMCwyMC43NSA4Mi42Niw4LjZcIlxuICAgICAgIGlkPVwicGF0aDI1XCJcbiAgICAgICBzdHlsZT17e3N0cm9rZVdpZHRoOlwiMTVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlOlwiIzg1MGY3OFwiLHN0cm9rZU9wYWNpdHk6XCIxXCJ9fSAvPlxuICAgIDx0ZXh0XG4gICAgICBcbiAgICAgIHN0eWxlPXt7Zm9udFNpemU6XCIxNy4zMzMzcHhcIixsaW5lSGVpZ2h0OlwiMFwiLGZvbnRGYW1pbHk6XCJBcmlhbFwiLGZpbGw6XCIjMDAwMDAwXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwibm9uZVwiLHN0cm9rZVdpZHRoOlwiMTVcIixzdHJva2VMaW5lY2FwOlwicm91bmRcIixzdHJva2VMaW5lam9pbjpcInJvdW5kXCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICBpZD1cInRleHQzMVwiXG4gICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDUuNjkwMjE5NCwtMC4xMTU1MTg4MylcIj48dGV4dFBhdGhcbiAgICAgICAgIGlkPVwidGV4dFBhdGgzM1wiPkxlYXJuPHRzcGFuXG4gICBpZD1cInRzcGFuMzFcIiAvPjwvdGV4dFBhdGg+PC90ZXh0PlxuICA8L2c+XG4gIDxnXG4gICAgIGlkPVwiZzI3XCJcbiAgICAgc3R5bGU9e3tzdHJva2VXaWR0aDpcIjZcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCJ9fVxuICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoOTUxLjk5NDM5LDM0Mi4xNTU0MylcIj5cbiAgICA8cG9seWdvblxuICAgICAgIGNsYXNzTmFtZT1cImNscy0xMFwiXG4gICAgICAgcG9pbnRzPVwiNjIuNTMsNy4xMiA2My40NywwIDY5LjE3LDQuMzcgXCJcbiAgICAgICBpZD1cInBvbHlnb24yM1wiXG4gICAgICAgdHJhbnNmb3JtPVwibWF0cml4KDIuNzcxMjI2MywwLjU4MTQ3NTQ4LC0wLjU4MTQ3NTQ4LDIuNzcxMjI2MywtOTYuNTg3ODI4LC0zOS43NDgwNzEpXCJcbiAgICAgICBzdHlsZT17e2ZpbGw6XCIjYTBhN2YzXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlV2lkdGg6XCI2XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwifX1cbiAgICAgICBpbmtzY2FwZTp0cmFuc2Zvcm0tY2VudGVyLXg9XCIzLjYxNzM3NTFcIlxuICAgICAgIGlua3NjYXBlOnRyYW5zZm9ybS1jZW50ZXIteT1cIjUuMTk3ODg1MlwiIC8+XG4gICAgPHBhdGhcbiAgICAgICBjbGFzc05hbWU9XCJjbHMtOVwiXG4gICAgICAgZD1cIk0gNzguNTk5MTExLDcuNTQ2ODI2NCBDIDQzLjgyMDM0NiwtMi42MTc3NTg4IDEzLjk1Njc0NiwxNC4yODYwNDYgNC4yMTA2MjgxLDQ2LjM2ODc0OVwiXG4gICAgICAgaWQ9XCJwYXRoMjNcIlxuICAgICAgIHN0eWxlPXt7c3Ryb2tlOlwiI2EwYTdmM1wiLHN0cm9rZVdpZHRoOlwiMTVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIn19IC8+XG4gICAgPHRleHRcbiAgICAgIFxuICAgICAgc3R5bGU9e3tmb250U2l6ZTpcIjE3LjMzMzNweFwiLGxpbmVIZWlnaHQ6XCIwXCIsZm9udEZhbWlseTpcIkFyaWFsXCIsZmlsbDpcIiMwMDAwMDBcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCJub25lXCIsc3Ryb2tlV2lkdGg6XCI2XCIsc3Ryb2tlTGluZWNhcDpcInJvdW5kXCIsc3Ryb2tlTGluZWpvaW46XCJyb3VuZFwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgaWQ9XCJ0ZXh0MjhcIlxuICAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgtMC4wMzAyMzUwNiwtNS45NjAyMzM2KVwiPjx0ZXh0UGF0aFxuICAgICAgICAgaWQ9XCJ0ZXh0UGF0aDI4XCI+VGVzdDwvdGV4dFBhdGg+PC90ZXh0PlxuICA8L2c+XG4gIDxnXG4gICAgIGlkPVwiZzI4XCJcbiAgICAgc3R5bGU9e3tzdHJva2VXaWR0aDpcIjZcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCJ9fVxuICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoOTUxLjk5NDM5LDM0Mi4xNTU0MylcIj5cbiAgICA8cG9seWdvblxuICAgICAgIGNsYXNzTmFtZT1cImNscy0xM1wiXG4gICAgICAgcG9pbnRzPVwiMTE3LjY1LDc4Ljg0IDExMi4wNyw4My4zNiAxMTAuOTQsNzYuMjcgXCJcbiAgICAgICBpZD1cInBvbHlnb24yNS02XCJcbiAgICAgICBzdHlsZT17e2ZpbGw6XCIjZjU3ZDIyXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlV2lkdGg6XCI2XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwifX1cbiAgICAgICB0cmFuc2Zvcm09XCJtYXRyaXgoLTIuOTY1MDMxNCwwLjMwNDQ5ODkzLC0wLjMwNDQ5ODkzLC0yLjk2NTAzMTQsMzY0Ljg0MDY3LDI0OS4yODI0OSlcIiAvPlxuICAgIDxwYXRoXG4gICAgICAgY2xhc3NOYW1lPVwiY2xzLTExXCJcbiAgICAgICBkPVwiTSAyLjY2NTk3NTMsNTAuOTUzNTA1IEMgLTIuMDk1NjY5NCw3Mi43Mjc5MTUgMTAuOTM2ODY2LDEwMi45NDI3MyAzNi42NTYyMzQsMTEzLjYyODM0XCJcbiAgICAgICBpZD1cInBhdGgyNFwiXG4gICAgICAgc3R5bGU9e3tzdHJva2VXaWR0aDpcIjE1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZTpcIiNmNTdkMjJcIixzdHJva2VPcGFjaXR5OlwiMVwifX0gLz5cbiAgICA8dGV4dFxuICAgICAgXG4gICAgICBzdHlsZT17e2ZvbnRTaXplOlwiMTcuMzMzM3B4XCIsbGluZUhlaWdodDpcIjBcIixmb250RmFtaWx5OlwiQXJpYWxcIixmaWxsOlwiIzAwMDAwMFwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZTpcIm5vbmVcIixzdHJva2VXaWR0aDpcIjE1XCIsc3Ryb2tlTGluZWNhcDpcInJvdW5kXCIsc3Ryb2tlTGluZWpvaW46XCJyb3VuZFwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICAgaWQ9XCJ0ZXh0MzJcIlxuICAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgtNS43MTEwMzE1LDEuNzQ1MzI0MylcIj48dGV4dFBhdGhcbiAgICAgICAgIGlkPVwidGV4dFBhdGgzMlwiPkJ1aWxkPHRzcGFuXG4gICBpZD1cInRzcGFuMzJcIiAvPjwvdGV4dFBhdGg+PC90ZXh0PlxuICA8L2c+XG4gIDxwb2x5Z29uXG4gICAgIGNsYXNzTmFtZT1cImNscy04XCJcbiAgICAgcG9pbnRzPVwiMzcuMjIsMTEzLjc0IDQ0LjMsMTEyLjU2IDQxLjc4LDExOS4yOCBcIlxuICAgICBpZD1cInBvbHlnb24yMlwiXG4gICAgIHN0eWxlPXt7c3Ryb2tlV2lkdGg6XCI2XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLGZpbGw6XCIjZjRjYzFlXCIsZmlsbE9wYWNpdHk6XCIxXCJ9fVxuICAgICB0cmFuc2Zvcm09XCJtYXRyaXgoMi44MjQ4NTg4LDAsMCwyLjgyNDg1ODgsODc2LjE5NDY0LDEzMS4zNDM4NClcIiAvPlxuICA8dGV4dFxuICAgIFxuICAgIHN0eWxlPXt7Zm9udFNpemU6XCIxNy4zMzMzcHhcIixsaW5lSGVpZ2h0OlwiMFwiLGZvbnRGYW1pbHk6XCJBcmlhbFwiLGZpbGw6XCIjMDAwMDAwXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwibm9uZVwiLHN0cm9rZVdpZHRoOlwiMTVcIixzdHJva2VMaW5lY2FwOlwicm91bmRcIixzdHJva2VMaW5lam9pbjpcInJvdW5kXCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgaWQ9XCJ0ZXh0MjlcIlxuICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoOTUyLjM5NzcyLDM0OC4xNjg5NClcIj48dGV4dFBhdGhcbiAgICAgICBpZD1cInRleHRQYXRoMzRcIj5EZXNpZ248dHNwYW5cbiAgIGlkPVwidHNwYW4yOVwiIC8+PC90ZXh0UGF0aD48L3RleHQ+XG48L3N2Zz5cblxuICAgKVxufSIsICJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUGllIH0gZnJvbSAncmVhY3QtY2hhcnRqcy0yJztcbmltcG9ydCB7IENoYXJ0IGFzIENoYXJ0SlMsIEFyY0VsZW1lbnQsIFRvb2x0aXAsIExlZ2VuZCB9IGZyb20gJ2NoYXJ0LmpzJztcbmltcG9ydCBcIi4uL2NvbnRlbnRzL0dyYXBoLnRzeFwiXG5cbkNoYXJ0SlMucmVnaXN0ZXIoQXJjRWxlbWVudCwgVG9vbHRpcCwgTGVnZW5kKTtcblxuY29uc3QgUGllQ2hhcnQ6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBkYXRhID0ge1xuICAgIGxhYmVsczogWydpbmRlbCcsICdpbnNlcnRpb24nLCAnZGVsZXRpb24nLCAnc3Vic3RpdHV0aW9uJywgJ290aGVyJ10sXG4gICAgZGF0YXNldHM6IFtcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6ICdQZXJjZW50YWdlJyxcbiAgICAgICAgZGF0YTogW1xuICAgICAgICAgIDAuMDA0ODU4MDAwMDAwMDAwMDAxLFxuICAgICAgICAgIDAuMDAwODg1OTk5OTk5OTk5OTk5NyxcbiAgICAgICAgICAwLjcyNjQxNzk5OTk5OTk5NzIsXG4gICAgICAgICAgMC4yMzg0MTU5OTk5OTk5OTk1LFxuICAgICAgICAgIDAuMDAzNzAzXG4gICAgICAgIF0sXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogW1xuICAgICAgICAgICdyZ2JhKDI1NSwgOTksIDEzMiwgMC4yKScsXG4gICAgICAgICAgJ3JnYmEoNTQsIDE2MiwgMjM1LCAwLjIpJyxcbiAgICAgICAgICAncmdiYSgyNTUsIDIwNiwgODYsIDAuMiknLFxuICAgICAgICAgICdyZ2JhKDc1LCAxOTIsIDE5MiwgMC4yKScsXG4gICAgICAgICAgJ3JnYmEoMTUzLCAxMDIsIDI1NSwgMC4yKScsXG4gICAgICAgICAgJ3JnYmEoMjU1LCAxNTksIDY0LCAwLjIpJyxcbiAgICAgICAgXSxcbiAgICAgICAgYm9yZGVyQ29sb3I6IFtcbiAgICAgICAgICAncmdiYSgyNTUsIDk5LCAxMzIsIDEpJyxcbiAgICAgICAgICAncmdiYSg1NCwgMTYyLCAyMzUsIDEpJyxcbiAgICAgICAgICAncmdiYSgyNTUsIDIwNiwgODYsIDEpJyxcbiAgICAgICAgICAncmdiYSg3NSwgMTkyLCAxOTIsIDEpJyxcbiAgICAgICAgICAncmdiYSgxNTMsIDEwMiwgMjU1LCAxKScsXG4gICAgICAgICAgJ3JnYmEoMjU1LCAxNTksIDY0LCAxKScsXG4gICAgICAgIF0sXG4gICAgICAgIGJvcmRlcldpZHRoOiAxLFxuICAgICAgfSxcbiAgICBdLFxuICB9O1xuICBjb25zdCBvcHRpb25zID0ge1xuICAgIHJlc3BvbnNpdmU6IHRydWUsXG4gICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2VcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwicGllLWNoYXJ0LWNvbnRhaW5lclwiPlxuICAgICAgPFBpZSBkYXRhPXtkYXRhfSBvcHRpb25zPXtvcHRpb25zfSAvPlxuICAgICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBQaWVDaGFydDtcbiIsICJpbXBvcnQgeyBIMiB9IGZyb20gXCIuLi9jb21wb25lbnRzL2hlYWRpbmdzXCI7XG5pbXBvcnQgeyBDaXJjbGUgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9TaGFwZXNcIjtcbi8qIGltcG9ydCAge0xpbmVDaGFydH0gZnJvbSAnQG11aS94LWNoYXJ0cy9MaW5lQ2hhcnQnOyAqL1xuLyogaW1wb3J0IFwiLi4vdXRpbHMvdGV4dC5qc1wiOyAqL1xuLyogaW1wb3J0IHsgQ29sbGFwc2libGUgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9Db2xsYXBzaWJsZVwiO1xuaW1wb3J0IHsgQnV0dG9uUm93VGFicyB9IGZyb20gXCIuLi9jb21wb25lbnRzL1RhYnNcIjtcbmltcG9ydCB7VGFiQnV0dG9uUm93fSBmcm9tIFwiLi4vY29tcG9uZW50cy9CdXR0b25zXCI7ICovXG4vKiBpbXBvcnQgeyBJbmZvQm94IH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvQm94ZXNcIjsgICovXG5pbXBvcnQgeyBDb21wbGV4IH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvc3Znc1wiO1xuaW1wb3J0IFBpZUNoYXJ0IGZyb20gJy4vR3JhcGgudHN4JztcblxuZXhwb3J0IGZ1bmN0aW9uIERlc2NyaXB0aW9uKCkgeyBcbiAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IG10LTRcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgICA8ZGl2ICBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgICAgIDxzZWN0aW9uIGlkPVwiQWJzdHJhY3RcIiBjbGFzc05hbWU9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgPEgyIHRleHQ9XCJBYnN0cmFjdFwiLz5cbiAgICAgICAgICAgICAgICA8cD5XZSBhcmUgcHJvdWQgdG8gaW50cm9kdWNlIG91ciBuZXh0LWdlbmVyYXRpb24gcHJpbWUgZWRpdGluZyB0ZWNobm9sb2d5IDxhIGhyZWY9XCIjXCIgY2xhc3NOYW1lPVwidW5kZXJsaW5lLS1tYWdpY2FsXCI+UHJlQ3lzZTwvYT4uIFdlIGFpbSB0byBkZXZlbG9wIGFuIGlubm92YXRpdmUgZ2VuZSB0aGVyYXB5IGFnYWluc3QgY3lzdGljIGZpYnJvc2lzLCB0YWNrbGluZyB0aGUgbW9zdCBjb21tb24gbXV0YXRpb24gXHUwMzk0RjUwOCBvZiB0aGUgQ0ZUUiAoQ3lzdGljIEZpYnJvc2lzIFRyYW5zbWVtYnJhbmUgQ29uZHVjdGFuY2UgUmVndWxhdG9yKSBnZW5lLiBXZSBvcHRpbWl6ZSBsaXBpZCBuYW5vcGFydGljbGVzIGZvciB0aGUgZWZmaWNpZW50IGFuZCBjZWxsLXNwZWNpZmljIGRlbGl2ZXJ5IG9mIG91ciB0aGVyYXBldXRpYyBtUk5BLiBDdXJyZW50IHRyZWF0bWVudCBzdHJhdGVnaWVzIGFyZSBsaW1pdGVkIGluIHRlcm1zIG9mIHNwZWVkLCBwcmVjaXNpb24gYW5kIGVmZmVjdGl2ZW5lc3MsIG9mdGVuIGZhaWxpbmcgdG8gYWNoaWV2ZSBsb25nLWxhc3RpbmcgaW1wcm92ZW1lbnRzLiBJbiBhZGRpdGlvbiwgaGlnaCBjb3N0cyBhbmQgbGltaXRlZCBhY2Nlc3NpYmlsaXR5IG9mIHBoYXJtYWNldXRpY2FscyBjb250cmlidXRlIHRvIGFkdmVyc2UgcHJvZ25vc2lzIG9mIG1hbnkgcGF0aWVudHMuIFdlIHdhbnQgdG8gZGV2ZWxvcCBhIG1vbnRobHkgYXBwbGllZCB3aGljaCByZXByZXNlbnRzIGEgY3VyZSB0aGF0IGlzIG1vcmUgYWR2YW5jZWQgYW5kIHVzZXItZnJpZW5kbHkgY29tcGFyZWQgdG8gb3RoZXIgbWVkaWNhdGlvbnMgZHVlIHRvIGl0cyBsb25nZXIgbGFzdGluZyB0aW1lLCBsb3dlcmluZyB0aGUgZnJlcXVlbmN5IG9mIHVzZS4gPC9wPlxuICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICA8L2Rpdj4gXG5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgICAgPHNlY3Rpb24gaWQ9XCJDeXN0aWMgRmlicm9zaXNcIiBjbGFzc05hbWU9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgPEgyIHRleHQ9XCJDeXN0aWMgRmlicm9zaXNcIi8+XG4gICAgICAgICAgICAgICAgey8qIDxoMz5HZW5lcmFsPC9oMz4gKi99XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBkYXRhLWFvcz1cInpvb20teS1vdXRcIiA+Q3lzdGljIGZpYnJvc2lzIChDRikgaXMgdGhlIG1vc3QgY29tbW9uIGxpZmUtbGltaXRpbmcgZ2VuZXRpYyBkaXNvcmRlciBpbiB0aGUgQ2F1Y2FzaWFuIHBvcHVsYXRpb24uIEluIEV1cm9wZSwgQ0YgYWZmZWN0aW5nIGFib3V0IDEgaW4gMywwMDAgbmV3Ym9ybnM8YSBocmVmPVwiI2Rlc2Mtb25lXCI+PHN1cD4xPC9zdXA+PC9hPi48L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cD4gSXQgaXMgY2F1c2VkIGJ5IG11dGF0aW9ucyBpbiB0aGUgQ0ZUUiBnZW5lLCB3aGljaCBjb250cm9scyBpb25zIGFuZCB3YXRlciBtb3ZlbWVudCBpbiBjZWxscy4gVGhpcyBsZWFkcyB0byB0aGljayBtdWN1cywgY2xvZ2dpbmcgYWlyd2F5cywgYW5kIGZyZXF1ZW50IGluZmVjdGlvbnMuIFRoZSBkZWZlY3RpdmUgQ0ZUUiBwcm90ZWluIGltcGFjdHMgdGhlIHJlc3BpcmF0b3J5IGFuZCBkaWdlc3RpdmUgc3lzdGVtcywgY2F1c2luZyBjaHJvbmljIGx1bmcgaW5mZWN0aW9ucywgYnJlYXRoaW5nIGRpZmZpY3VsdGllcywgYW5kIG1hbG51dHJpdGlvbi4gQ0YncyBzZXZlcml0eSB2YXJpZXMsIGJ1dCBpdCByZWR1Y2VzIGxpZmUgcXVhbGl0eSBhbmQgZXhwZWN0YW5jeS4gVGhlcmUgYXJlIG92ZXIgMSw3MDAgQ0ZUUiBtdXRhdGlvbnM7IHRoZSBcdTAzOTRGNTA4IG11dGF0aW9uIGlzIG1vc3QgY29tbW9uLCBwcmVzZW50IGluIDcwJSBvZiBjYXNlcy4gSXQgcHJldmVudHMgcHJvcGVyIHByb3RlaW4gZm9sZGluZywgYWZmZWN0aW5nIGl0cyBmdW5jdGlvbi4gPC9wPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMiBcIj4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPENpcmNsZSB0ZXh0PVwiMTozMDAwIG5ld2Jvcm5zIHdvcmxkd2lkZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2lyY2xlIHRleHQ9XCJ4OnkgbmV3Ym9ybnMgaW4gR2VybWFueVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2lyY2xlIHRleHQ9XCJrb3N0ZW5cIi8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB7LyogPExpbmVDaGFydFxuICAgICAgICAgICAgICAgICAgICB4QXhpcz17W3sgZGF0YTogWzEsIDIsIDMsIDUsIDgsIDEwXSB9XX1cbiAgICAgICAgICAgICAgICAgICAgc2VyaWVzPXtbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBbMiwgNS41LCAyLCA4LjUsIDEuNSwgNV0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgICAgICAgICB3aWR0aD17NTAwfVxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezMwMH1cbiAgICAgICAgICAgICAgICAgICAgLz4gKi99XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICB7LyogIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvY2hhcnRzLW1hcHMvY2ZwZXIxMC0wMDAucG5nXCI+PC9pbWc+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGgzPkNGVFI8L2gzPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0yIFwiPiBcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvcGxhY2Vob2xkZXJzL3BsYWNlaGlsZGVycGVyc29uLmpwZWdcIi8+IFxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9wbGFjZWhvbGRlcnMvcGxhY2VoaWxkZXJwZXJzb24uanBlZ1wiLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgIDxwPlRleHQgYWJvdXQgQ0ZUUjwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9jaGFydHMtbWFwcy9jZnBlcjEwLTAwMC5wbmdcIi8+XG4gICAgICAgICAgICAgICAgPGgzPlN5bXB0b21zPC9oMz5cbiAgICAgICAgICAgICAgICA8cD5UZXh0IGFib3V0IHN5bXB0b21zPC9wPlxuICAgICAgICAgICAgICAgIDxDb2xsYXBzaWJsZSB0aXRsZT1cIkhvdyB0aGUgc3ltcHRvbXMgYWZmZWN0IGRpZmZlcmVudCBwYXJ0cyBvZiB0aGUgYm9keVwiID48L0NvbGxhcHNpYmxlPlxuICAgICAgICAgICAgICAgIDxoMz5EaWFnbm9zaXM8L2gzPlxuICAgICAgICAgICAgICAgIDxwPkFib3V0IHRoZSB3YXlzIG9uZSBjYW4gYmUgZGlhZ25vc2VkPC9wPiBcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIiA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3BsYWNlaG9sZGVycy9wbGFjZWhpbGRlcnBlcnNvbi5qcGVnXCIvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIiA+XG4gICAgICAgICAgICAgICAgICAgICAgICBIb3cgbmV3Ym9ybnNjcmVlbmluZyBhZmZlY3RlZCB0aGUgbnVtYmVycy5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+Ki99IFxuICAgICAgICAgICAgICAgey8qICA8aDM+VHJlYXRtZW50PC9oMz4gICovfSBcbiAgICAgICAgICAgICAgICB7Lyo8aW1nIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3BsYWNlaG9sZGVycy9wbGFjZWhpbGRlcnBlcnNvbi5qcGVnXCIvPiAqL30gXG4gICAgICAgICAgICAgICB7LyogIDxDb2xsYXBzaWJsZSB0aXRsZT1cIkRpZmZlcmVudCB0eXBlcyBvZiBkcnVnc1wiID5cbiAgICAgICAgICAgICAgICA8VGFiQnV0dG9uUm93IGRhdGE9e21lZGlidXR0b25yb3dkYXRhfSBvcGVudHlwZT1cIm1lZGl0YWJzXCIgY2xvc2luZz1cIlwiLz5cbiAgICAgICAgICAgICAgICA8QnV0dG9uUm93VGFicyBkYXRhPXttZWRpYnV0dG9ucm93ZGF0YX0gY2xhPVwibWVkaXRhYnNcIi8+XG4gICAgICAgICAgICAgICAgPC9Db2xsYXBzaWJsZT4gKi99XG4gICAgICAgICAgICAgICAgey8qIDxwPldoeSB3ZSBzdGlsbCBuZWVkIG90aGVyIG9wdGlvbnM8L3A+ICAqL30gXG4gICAgICAgICAgICAgICB7LyogPGltZyBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9jaGFydHMtbWFwcy9jZnBlcjEwLTAwMC5wbmdcIi8+ICovfSBcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgICA8c2VjdGlvbiBpZD1cIk91ciBtb3RpdmF0aW9uXCIgY2xhc3NOYW1lPVwic2VjdGlvblwiPlxuICAgICAgICAgICAgICAgIDxIMiB0ZXh0PVwiT3VyIG1vdGl2YXRpb25cIj48L0gyPlxuICAgICAgICAgICAgICAgIDxwPldlIGNob3NlIHRvIGZvY3VzIG9uIENGIGFuZCBzcGVjaWZpY2FsbHkgdGhlIFx1MDM5NEY1MDggbXV0YXRpb24gZHVlIHRvIGl0cyBwcmV2YWxlbmNlIGFuZCB0aGUgc2V2ZXJlIGltcGFjdCBpdCBoYXMgb24gcGF0aWVudHMnIGxpdmVzLiBBZGRpdGlvbmFsbHksIG91ciB0ZWFtIGluY2x1ZGVzIG1lbWJlcnMgd2hvIGhhdmUgY2xvc2UgZnJpZW5kcyBhZmZlY3RlZCBieSB0aGlzIGNvbmRpdGlvbiwgZ2l2aW5nIHVzIGEgcGVyc29uYWwgY29ubmVjdGlvbiBhbmQgYSBzdHJvbmcgbW90aXZhdGlvbiB0byBmaW5kIGEgc29sdXRpb24uIEJ5IHRhcmdldGluZyB0aGUgXHUwMzk0RjUwOCBtdXRhdGlvbiwgd2UgYWltIHRvIGRldmVsb3AgYSB0aGVyYXB5IHRoYXQgY291bGQgcG90ZW50aWFsbHksIG5vdCBvbmx5IGJlbmVmaXQgbWFueSBDRiBwYXRpZW50cyBhbmQgbWFrZSBhIHNpZ25pZmljYW50IGltcHJvdmVtZW50IGluIHRoZWlyIGxpdmVzLCBidXQgYWxzbyBjYW4gc2VydmUgYXMgYSB0ZW1wbGF0ZSwgd2hpY2ggcmVzZWFyY2ggZ3JvdXBzIGNhbiB1c2UgdG8gdGFyZ2V0IG90aGVyIGdlbmV0aWMgZGlzZWFzZXMuIDwvcD5cbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCIgPlxuICAgICAgICAgICAgICAgICAgICAgICAgQWJvdXQgZGVsNTA4XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvcGxhY2Vob2xkZXJzL3BsYWNlaGlsZGVycGVyc29uLmpwZWdcIi8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICBcbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8cD5NYXg8L3A+ICovfVxuICAgICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgICAgIDxzZWN0aW9uIGlkPVwiQXBwcm9hY2hcIiBjbGFzc05hbWU9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgPEgyIHRleHQ9XCJBcHByb2FjaFwiPjwvSDI+XG4gICAgICAgICAgICAgICAgPHA+VG8gY29ycmVjdCB0aGUgbXV0YXRpb24sIHdlIGFyZSB1dGlsaXppbmcgUHJpbWUgRWRpdGluZyB0ZWNobm9sb2dpZXMuIFByaW1lIEVkaXRpbmcgaXMgYSBnZW5vbWUgZWRpdGluZyB0ZWNobmlxdWUgdGhhdCBhbGxvd3MgcHJlY2lzZSBETkEgbW9kaWZpY2F0aW9ucyB3aXRob3V0IGNhdXNpbmcgZG91YmxlLXN0cmFuZCBicmVha3M8YSBocmVmPVwiI2Rlc2MtdHdvXCI+PHN1cD4yPC9zdXA+PC9hPi4gU3RydWN0dXJhbGx5LCB0aGUgUHJpbWUgRWRpdGluZyBjb21wbGV4IGNvbnNpc3RzIG9mIGEgQ2FzOSBlbmRvbnVjbGVhc2UgZnVzZWQgdG8gYSByZXZlcnNlIHRyYW5zY3JpcHRhc2UgKFJUKSBhbmQgZ3VpZGVkIGJ5IGEgcGVnUk5BLCB3aGljaCBkaXJlY3RzIHRoZSBjb21wbGV4IHRvIHRoZSB0YXJnZXQgc2l0ZSBpbiB0aGUgZ2Vub21lLiAgPC9wPlxuey8qICAgICAgICAgICAgICAgICA8SW5mb0JveCB0aXRsZT1cIlByaW1lIEVkaXRpbmdcIj5cbiAgICAgICAgICAgICAgICAgICAgQWJvdXQgcHJpbWUgZWRpdGluZ1xuICAgICAgICAgICAgICAgIDwvSW5mb0JveD4gKi99XG57LyogICAgICAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaW1nLXJpZ2h0IGltZy1oYWxmXCIgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvc2NpZW50aWZpYy1maWd1cmVzL2tvbXBsZXgta29tcGxldHQtYmVzY2hyaWZ0ZXQuc3ZnXCIvPiAgICBcbiAgICAgICAgICAgICAgICAqL30gPGRpdiBjbGFzc05hbWU9XCJpbWctcmlnaHQgaW1nLWhhbGZcIj48Q29tcGxleD48L0NvbXBsZXg+PC9kaXY+XG4gICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxwPkhvd2V2ZXIsIHRoZSBQcmltZSBFZGl0aW5nIGNvbXBsZXggaXMgcmVsYXRpdmVseSBsYXJnZSwgcG9zaW5nIGNoYWxsZW5nZXMgZm9yIHRoZXJhcGV1dGljIGRlbGl2ZXJ5PGEgaHJlZj1cIiNkZXNjLXRocmVlXCI+PHN1cD4zPC9zdXA+PC9hPi4gQWRkaXRpb25hbGx5LCBQcmltZSBFZGl0aW5nIGhhcyBiZWVuIHNob3duIHRvIGJlIHJlbGF0aXZlbHkgaW5lZmZpY2llbnQgaW4gdGVybXMgb2YgZ2VuZSBlZGl0aW5nIHJhdGVzLCB3aGljaCBjb3VsZCBsaW1pdCBpdHMgdGhlcmFwZXV0aWMgdXRpbGl0eTxhIGhyZWY9XCIjZGVzYy1mb3VyXCI+PHN1cD40PC9zdXA+PC9hPi4gT3VyIHByb2plY3QgYWltcyB0byBlbmhhbmNlIHRoZSBQcmltZSBFZGl0aW5nIGFwcHJvYWNoIGJ5IG1pbmlhdHVyaXppbmcgaXRzIGNvbXBvbmVudHMuIEZhbnpvciwgYSByZWNlbnRseSBkaXNjb3ZlcmVkIGV1a2FyeW90aWMgZW5kb251Y2xlYXNlLCBwZXJmb3JtcyBmdW5jdGlvbnMgc2ltaWxhciB0byBDYXM5LCBhIGNydWNpYWwgcGFydCBvZiB0aGUgUHJpbWUgRWRpdGluZyBjb21wbGV4LCBidXQgaXMgc2lnbmlmaWNhbnRseSBzbWFsbGVyLiBXZSBhaW0gdG8gc3Vic3RpdHV0ZSBDYXM5IHdpdGggRmFuem9yLiA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDxwPkFkZGl0aW9uYWxseSwgd2UgcGxhbiB0byByZXBsYWNlIHRoZSByZXZlcnNlIHRyYW5zY3JpcHRhc2UgaW4gdGhlIFByaW1lIEVkaXRpbmcgY29tcGxleCB3aXRoIGEgc21hbGxlciBSVCB2YXJpYW50LiBGdXJ0aGVybW9yZSwgTUNQIHByb3RlaW5zIHdpbGwgYmUgYWRkZWQgdG8gdGhlIFByaW1lIEVkaXRpbmcgY29tcGxleCB0byBpbmNyZWFzZSBpdHMgc3RhYmlsaXR5PGEgaHJlZj1cIiNkZXNjLWZpdmVcIj48c3VwPjU8L3N1cD48L2E+LiAgPC9wPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIHsvKiA8Q29sbGFwc2libGUgdGl0bGU9XCJDYXMgdnMuIEZhbnpvclwiID48L0NvbGxhcHNpYmxlPiAqL31cbiAgICAgICAgICAgICAgICA8cD5UaGUgcGVnUk5BIGlzIG9wdGltaXplZCB2aWEgYW4gZXh0ZW5zaW9uIGJ5IGEgc3RlbSBsb29wLCB3aGljaCBzdGFiaWxpemVzIHRoZSBSTkEgYnkgcHJvdGVjdGluZyBpdCBmcm9tIFJOYXNlcyBhbmQgc2VydmVzIGFzIGEgYmluZGluZyBzaXRlIGZvciB0aGUgTUNQLCB3aGljaCBhbHNvIHN1cHBvcnRzIHRoZSBzZWNvbmRhcnkgUk5BIHN0cnVjdHVyZS4gQWRkaXRpb25hbGx5LCB0aGUgcGVnUk5BIGNvbnRhaW5zIGEgcmlib3N3aXRjaCwgYSBzb2RpdW0gaW9uLWNvbnRyb2xsZWQgcmVndWxhdG9yIHRoYXQgc3dpdGNoZXMgb2ZmIHRoZSBjb21wbGV4LiBUaGlzIHJlcHJlc2VudHMgYSBtYWpvciBiaW9zYWZldHkgZmVhdHVyZSBpbiB0aGF0IHRoZSBjb21wbGV4IGlzIHN3aXRjaGVkIG9mZiBhZnRlciBzdWNjZXNzZnVsIEROQSBlZGl0aW5nIGFuZCB0aGUgc3Vic2VxdWVudCBpbmNyZWFzZWQgaW5mbHV4IG9mIGNobG9yaWRlIGlvbnMgaW50byB0aGUgY2VsbC4gVGhlIHBlZ1JOQSBpcyBjb21iaW5lZCB3aXRoIGFuIG9wdGltaXplZCBzZ1JOQSByZXN1bHRpbmcgaW4gaGlnaGVyIG9uLXRhcmdldCBlZmZlY3QuIE92ZXJhbGwsIGl0cyBvcHRpbWl6YXRpb24gbGVhZHMgdG8gYSBsb25nZXIgc2hlbGYgbGlmZSBhbmQgYW4gaW5jcmVhc2UgaW4gdGhlIGJpb3NhZmV0eSBvZiB0aGUgY29tcGxleC4gPC9wPlxuey8qICAgICAgICAgICAgICAgICA8SW5mb0JveCB0aXRsZT1cIlJpYm9zd2l0Y2hcIj5cbiAgICAgICAgICAgICAgICAgICAgQWJvdXQgdGhlIFJpYm9zd2l0Y2hcbiAgICAgICAgICAgICAgICA8L0luZm9Cb3g+ICovfVxuICAgICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgICAgIDxzZWN0aW9uIGlkPVwiRGVsaXZlcnlcIiBjbGFzc05hbWU9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgPEgyIHRleHQ9XCJEZWxpdmVyeVwiPjwvSDI+XG4gICAgICAgICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJpbWctbGVmdCBpbWctaGFsZiBzcGluXCIgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvc2NpZW50aWZpYy1maWd1cmVzL2xucC5wbmdcIiBoZWlnaHQ9e1wiMjAwdndcIn0vPiAgXG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPHA+V2UgY2hvc2UgTE5QcyBhcyB0aGUgZGVsaXZlcnkgc3lzdGVtIG9mIG91ciBOZXh0LUdlbmVyYXRpb24gUHJpbWUgRWRpdGluZyBUZWNobm9sb2d5LiBCZWNhdXNlIG9mIHRoZWlyIGxhcmdlIGNhcGFjaXR5IGFuZCBsZXNzIGltbXVub2dlbmljIHNpZGUgZWZmZWN0cyBjb21wYXJlZCB0byBvdGhlciBkZWxpdmVyeSBzeXN0ZW1zIGxpa2UgQWRlbm8tYXNzb2NpYXRlZCBWaXJ1c2VzIChBVlYpPGEgaHJlZj1cIiNkZXNjLXNpeFwiPjxzdXA+Njwvc3VwPjwvYT4uIE91ciBhaW0gaXMgdG8gb3B0aW1pemUgdGhlIExOUCBmb3JtdWxhdGlvbiB0byBpbXByb3ZlIGRlbGl2ZXJ5IHRvIGx1bmcgdGlzc3VlIHZpYSBpbmhhbGF0aW9uLiBCZWNhdXNlIG9mIG91ciBjb2xsYWJvcmF0aW9ucywgd2UgYXJlIGFibGUgdG8gdGVzdCBhbmQgb3B0aW1pemUgZGlmZmVyZW50IGRlbGl2ZXJ5IHN5c3RlbXMgdG8gaW1wcm92ZSBvdXIgb3JnYW4gc3BlY2lmaWMgdGhlcmFwZXV0aWMgYXBwcm9hY2guIFRoZXJlZm9yZSwgb3VyIExOUCBkZXNpZ24gZm9jdXNzZXMgb24gc3RhYmlsaXR5IGFuZCB0YXJnZXRpbmcuIFN0YWJpbGl0eSBpcyBhY2hpZXZlZCBieSBhIHBvbHlldGh5bGVuZSBnbHljb2wgKFBFRykgY29hdGluZyB0aGF0IHByb3RlY3RzIHRoZSBMTlBzIGZyb20gZGVncmFkYXRpb24gYnkgdGhlIGltbXVuZSBzeXN0ZW08YSBocmVmPVwiI2Rlc2Mtc2V2ZW5cIj48c3VwPjc8L3N1cD48L2E+LiBNb3Jlb3Zlciwgd2UgdXNlIGNhcHNhaWNpbiBpbiBjb21iaW5hdGlvbiB3aXRoIGNoaXRvc2FuIHRvIGltcHJvdmUgdGhlIHVwdGFrZSBvZiBvdXIgY29uc3RydWN0IHRocm91Z2ggdGhlaXIgbXVjdXMtYWRoZXNpdmUgcHJvcGVydGllczxhIGhyZWY9XCIjZGVzYy1laWdodFwiPjxzdXA+ODwvc3VwPjwvYT4uIDwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbnsvKiAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBMQWdlcnRlbXBlcmF0dXIgZGVyIFBhcnRzXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgVHJvY2tudW5nXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAqL31cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8cD5XZSBhcmUgZnVydGhlcm1vcmUgb3B0aW1pc2luZyB0aGUgTE5QcyBmb3IgcHVsbW9uYXJ5IHRoZXJhcHkgYW5kIGludmVzdGlnYXRpbmcgZGVsaXZlcnkgYnkgbmVidWxpc2F0aW9uIGFzIGEgbm9uLWludmFzaXZlIG1ldGhvZCBjb21wYXJlZCB0byBzeXN0ZW1pYyBhcHByb2FjaGVzIHRvIG1ha2UgdGhlIHRoZXJhcHkgbW9yZSBjb252ZW5pZW50IGZvciBwYXRpZW50cy4gRm9yIHNwZWNpZmljIHRhcmdldGluZywgd2UgYXJlIGZvY3Vzc2luZyBvbiBtYXJrZXIgcHJvdGVpbnMgb2YgYmFzYWwgY2VsbHMgYW5kIGlvbm9jeXRlcyB0aGF0IHByb2R1Y2UgcGFydGljdWxhcmx5IGhpZ2ggbGV2ZWxzIG9mIENGVFIgcHJvdGVpbiBhbmQgd2hpY2ggd2Ugd2FudCB0byB0YXJnZXQgd2l0aCBhcHByb3ByaWF0ZSBhbnRpYm9kaWVzPGEgaHJlZj1cIiNkZXNjLW5pbmVcIj48c3VwPjk8L3N1cD48L2E+LiBPdXIgd29ya2Zsb3cgaW5jbHVkZXMgdGVzdGluZyBvdXIgbmV4dCBnZW5lcmF0aW9uIFByaW1lIEVkaXRpbmcgVGVjaG5vbG9neSBkZWxpdmVyZWQgYnkgb3VyIG9wdGltaXplZCBMTlBzIGluIGNlbGwgY3VsdHVyZSBsaW5lcyBidXQgYWxzbyBpbiBwcmltYXJ5IG5hc2FsIGVwaXRoZWxpYWwgY2VsbHMgb2YgQ0YgcGF0aWVudHMgdG8gZXZhbHVhdGUgb3VyIG9wdGltaXphdGlvbnMgYW5kIGZ1cnRoZXIgaW1wcm92ZW1lbnRzIGluIHZpdHJvLiBXZSBjYW4gYWxzbyBwcm92aWRlIHRoZSBvdXRsb29rIG9uIHRoZSBhZGFwdGF0aW9uIG9mIHRoZSBkZWxpdmVyeSBzeXN0ZW0gZW5hYmxpbmcgc3lzdGVtaWMgYXBwbGljYXRpb25zIGFzIHdlbGwuIDwvcD5cbiAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgICA8c2VjdGlvbiBpZD1cIk91ciB2aXNpb25cIiBjbGFzc05hbWU9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgPEgyIHRleHQ9XCJPdXIgdmlzaW9uXCI+PC9IMj4gICBcblxuICAgICAgICAgICAgICAgIDxwPldlIGFyZSBlbnZpc2lvbmluZyBhIHBvdGVudGlhbCBpbnRlZ3JhdGlvbiBpbnRvIGEgYnJvYWRlciB0aGVyYXBldXRpYyBmcmFtZXdvcmsgaW52b2x2aW5nIGN1c3RvbWl6ZWQgZ2VuZSBlZGl0aW5nIHRvb2xzIGZvciB2YXJpb3VzIGdlbmV0aWMgZGlzb3JkZXJzLCB0aGF0IHByZXNlbnQgc2ltaWxhciBwcm9ibGVtcy9kaWZmaWN1bHRpZXMgdG8gdGhlIEY1MDhkZWwgbXV0YXRpb24sIGFzIHdlbGwgYXMgb3RoZXIgZ2VuZXRpYyBkaXNlYXNlcyBvZiBkaWZmZXJlbnQgY2F1c2VzLiBUaGlzIGNvdWxkIGluY2x1ZGUgY29sbGFib3JhdGlvbnMgd2l0aCBwaGFybWFjZXV0aWNhbCBjb21wYW5pZXMgdG8gZGV2ZWxvcCBuZXcgdHJlYXRtZW50IG1vZGFsaXRpZXMgZm9yIGdlbmV0aWMgZGlzZWFzZXMgYmV5b25kIGN5c3RpYyBmaWJyb3NpcywgdXRpbGl6aW5nIGFkdmFuY2VkIGRlbGl2ZXJ5IHN5c3RlbXMgYW5kIHBlcnNvbmFsaXplZCBtZWRpY2luZSBhcHByb2FjaGVzLiA8L3A+XG4gICAgICAgICAgICAgICAgPEgyIHRleHQ9XCJFZGl0aW5nIFN0YXRpc3RpY3NcIi8+XG4gICAgICAgICAgICAgICAgPFBpZUNoYXJ0IC8+IHsvKiBSZW5kZXIgdGhlIFBpZUNoYXJ0IGNvbXBvbmVudCAqL31cbiAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICBcbiAgICAgICAgey8qIFNvdXJjZXMgKi99XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgIDxzZWN0aW9uIGlkPVwiUmVmZXJlbmNlc1wiPlxuICAgICAgICAgICAgPEgyIHRleHQ9XCJSZWZlcmVuY2VzXCI+PC9IMj4gICAgXG4gICAgICAgICAgICA8b2w+XG4gICAgICAgICAgICAgICAgey8qIDwhLS0gQ2l0YXRpb24gbnVtIDEtLT4gKi99XG4gICAgICAgICAgICAgICAgPGxpIHR5cGVvZj1cInNjaGVtYTpTY29sYXJseUFydGljbGVcIiByb2xlPVwiZG9jLWJpYmxpb2VudHJ5XCIgcHJvcGVydHk9XCJzY2hlbWE6Y2l0YXRpb25cIiBpZD1cImRlc2Mtb25lXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIHByb3BlcnR5PVwic2NoZW1hOmF1dGhvclwiIHR5cGVvZj1cInNjaGVtYTpQZXJzb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHByb3BlcnR5PVwic2NoZW1hOk5hbWVcIj5TY290ZXQsIFYuPC9zcGFuPixcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHByb3BlcnR5PVwic2NoZW1hOk5hbWVcIj5HdXRpZXJyZXosIEguPC9zcGFuPixcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHByb3BlcnR5PVwic2NoZW1hOk5hbWVcIj5GYXJyZWxsLCBQLiA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gcHJvcGVydHk9XCJzY2hlbWE6bmFtZVwiPk5ld2Jvcm4gU2NyZWVuaW5nIGZvciBDRiBhY3Jvc3MgdGhlIEdsb2JlXHUyMDE0V2hlcmUgSXMgSXQgV29ydGh3aGlsZT8gPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8aSBwcm9wZXJ0eT1cInNjaGVtYTpwdWJsaXNoZXJcIiB0eXBlb2Y9XCJzY2hlbWE6T3JnYW5pemF0aW9uXCI+SW50IEogTmVvbmF0YWwgU2NyZWVuIDwvaT5cbiAgICAgICAgICAgICAgICAgICAgPGIgcHJvcGVydHk9XCJpc3N1ZU51bWJlclwiIHR5cGVvZj1cIlB1YmxpY2F0aW9uSXNzdWVcIj42PC9iPixcbiAgICAgICAgICAgICAgICAgICAgKDx0aW1lIHByb3BlcnR5PVwic2NoZW1hOmRhdGVQdWJsaXNoZWRcIiBkYXRhdHlwZT1cInhzZDpnWWVhclwiIGRhdGVUaW1lPVwiMjAyMFwiPjIwMjA8L3RpbWU+KS4gXG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cImRvaVwiIGhyZWY9XCJodHRwczovL2RvaS5vcmcvMTAuMzM5MC9pam42MDEwMDE4XCI+IGRvaTogMTAuMzM5MC9pam42MDEwMDE4PC9hPlxuICAgICAgICAgICAgICAgIDwvbGk+XG5cbiAgICAgICAgICAgICAgICB7LyogPCEtLSBDaXRhdGlvbiBudW0gMi0tPiAqL31cbiAgICAgICAgICAgICAgICA8bGkgdHlwZW9mPVwic2NoZW1hOlNjb2xhcmx5QXJ0aWNsZVwiIHJvbGU9XCJkb2MtYmlibGlvZW50cnlcIiBwcm9wZXJ0eT1cInNjaGVtYTpjaXRhdGlvblwiIGlkPVwiZGVzYy10d29cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gcHJvcGVydHk9XCJzY2hlbWE6YXV0aG9yXCIgdHlwZW9mPVwic2NoZW1hOlBlcnNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gcHJvcGVydHk9XCJzY2hlbWE6TmFtZVwiPkFuemFsb25lLCBBLlYuPC9zcGFuPixcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHByb3BlcnR5PVwic2NoZW1hOk5hbWVcIj5SYW5kb2xwaCwgUC5CLjwvc3Bhbj4sXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBwcm9wZXJ0eT1cInNjaGVtYTpOYW1lXCI+RGF2aXMsIEouUi48L3NwYW4+LFxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gcHJvcGVydHk9XCJzY2hlbWE6TmFtZVwiPlNvdXNhLCBBLkEuPC9zcGFuPixcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHByb3BlcnR5PVwic2NoZW1hOk5hbWVcIj5Lb2JsYW4sIEwuVy48L3NwYW4+LFxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gcHJvcGVydHk9XCJzY2hlbWE6TmFtZVwiPkxldnksIEouTS48L3NwYW4+LFxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gcHJvcGVydHk9XCJzY2hlbWE6TmFtZVwiPk5ld2J5LCBHLkEuPC9zcGFuPixcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHByb3BlcnR5PVwic2NoZW1hOk5hbWVcIj5SYWd1cmFtLCBBLjwvc3Bhbj4sXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBwcm9wZXJ0eT1cInNjaGVtYTpOYW1lXCI+TGl1LCBELlIuIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBwcm9wZXJ0eT1cInNjaGVtYTpuYW1lXCI+U2VhcmNoLWFuZC1yZXBsYWNlIGdlbm9tZSBlZGl0aW5nIHdpdGhvdXQgZG91YmxlLXN0cmFuZCBicmVha3Mgb3IgZG9ub3IgRE5BLiA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxpIHByb3BlcnR5PVwic2NoZW1hOnB1Ymxpc2hlclwiIHR5cGVvZj1cInNjaGVtYTpPcmdhbml6YXRpb25cIj5OYXR1cmUgPC9pPlxuICAgICAgICAgICAgICAgICAgICA8YiBwcm9wZXJ0eT1cImlzc3VlTnVtYmVyXCIgdHlwZW9mPVwiUHVibGljYXRpb25Jc3N1ZVwiPjU3NDwvYj4sXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIHByb3BlcnR5PVwic2NoZW1hOnBhZ2VCZWdpblwiPiA1ODk8L3NwYW4+LTxzcGFuIHByb3BlcnR5PVwic2NoZW1hOnBhZ2VFbmRcIj41OTQgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgKDx0aW1lIHByb3BlcnR5PVwic2NoZW1hOmRhdGVQdWJsaXNoZWRcIiBkYXRhdHlwZT1cInhzZDpnWWVhclwiIGRhdGVUaW1lPVwiMjAxOVwiPjIwMTk8L3RpbWU+KS5cbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwiZG9pXCIgaHJlZj1cImh0dHBzOi8vZG9pLm9yZy8xMC4xMDM4L3M0MTU4Ni0wMTktMTcxMS00XCI+IGRvaTogMTAuMTAzOC9zNDE1ODYtMDE5LTE3MTEtNDwvYT5cbiAgICAgICAgICAgICAgICA8L2xpPlxuXG4gICAgICAgICAgICAgICAgey8qIDwhLS0gQ2l0YXRpb24gbnVtIDMtLT4gKi99XG4gICAgICAgICAgICAgICAgPGxpIHR5cGVvZj1cInNjaGVtYTpTY29sYXJseUFydGljbGVcIiByb2xlPVwiZG9jLWJpYmxpb2VudHJ5XCIgcHJvcGVydHk9XCJzY2hlbWE6Y2l0YXRpb25cIiBpZD1cImRlc2MtdGhyZWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gcHJvcGVydHk9XCJzY2hlbWE6YXV0aG9yXCIgdHlwZW9mPVwic2NoZW1hOlBlcnNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gcHJvcGVydHk9XCJzY2hlbWE6TmFtZVwiPkJyb2FkIEluc3RpdHV0ZSBvZiBNSVQgYW5kIEhhcnZhcmQuIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBwcm9wZXJ0eT1cInNjaGVtYTpuYW1lXCI+UmVzZWFyY2hlcnMgZW5naW5lZXIgaW4gdml2byBkZWxpdmVyeSBzeXN0ZW0gZm9yIHByaW1lIGVkaXRpbmcsIHBhcnRpYWxseSByZXN0b3JpbmcgdmlzaW9uIGluIG1pY2UuIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGkgcHJvcGVydHk9XCJzY2hlbWE6cHVibGlzaGVyXCIgdHlwZW9mPVwic2NoZW1hOk9yZ2FuaXphdGlvblwiPlBoeXMub3JnIDwvaT5cbiAgICAgICAgICAgICAgICAgICAgKDx0aW1lIHByb3BlcnR5PVwic2NoZW1hOmRhdGVQdWJsaXNoZWRcIiBkYXRhdHlwZT1cInhzZDpnWWVhclwiIGRhdGVUaW1lPVwiMjAyNFwiPjIwMjQ8L3RpbWU+KS5cbiAgICAgICAgICAgICAgICA8L2xpPlxuXG4gICAgICAgICAgICAgICAgey8qIDwhLS0gQ2l0YXRpb24gbnVtIDQtLT4gKi99XG4gICAgICAgICAgICAgICAgPGxpIHR5cGVvZj1cInNjaGVtYTpTY29sYXJseUFydGljbGVcIiByb2xlPVwiZG9jLWJpYmxpb2VudHJ5XCIgcHJvcGVydHk9XCJzY2hlbWE6Y2l0YXRpb25cIiBpZD1cImRlc2MtZm91clwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBwcm9wZXJ0eT1cInNjaGVtYTphdXRob3JcIiB0eXBlb2Y9XCJzY2hlbWE6UGVyc29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBwcm9wZXJ0eT1cInNjaGVtYTpOYW1lXCI+R2F1ZGVsbGksIE4uPC9zcGFuPixcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHByb3BlcnR5PVwic2NoZW1hOk5hbWVcIj5Lb21vciwgQS48L3NwYW4+LFxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gcHJvcGVydHk9XCJzY2hlbWE6TmFtZVwiPlJlZXMsIEguPC9zcGFuPixcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHByb3BlcnR5PVwic2NoZW1hOk5hbWVcIj5QYWNrZXIsIE0uPC9zcGFuPixcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHByb3BlcnR5PVwic2NoZW1hOk5hbWVcIj5CYWRyYW4sIEEuPC9zcGFuPixcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHByb3BlcnR5PVwic2NoZW1hOk5hbWVcIj5Ccnlzb24sIEQuPC9zcGFuPixcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHByb3BlcnR5PVwic2NoZW1hOk5hbWVcIj5MaXUsIEQuIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBwcm9wZXJ0eT1cInNjaGVtYTpuYW1lXCI+UHJvZ3JhbW1hYmxlIGVkaXRpbmcgb2YgYSB0YXJnZXQgYmFzZSBpbiBnZW5vbWljIEROQSB3aXRob3V0IGRvdWJsZS1zdHJhbmRlZCBETkEgY2xlYXZhZ2UuIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGkgcHJvcGVydHk9XCJzY2hlbWE6cHVibGlzaGVyXCIgdHlwZW9mPVwic2NoZW1hOk9yZ2FuaXphdGlvblwiPk5hdHVyZSA8L2k+XG4gICAgICAgICAgICAgICAgICAgIDxiIHByb3BlcnR5PVwiaXNzdWVOdW1iZXJcIiB0eXBlb2Y9XCJQdWJsaWNhdGlvbklzc3VlXCI+NTMzPC9iPixcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gcHJvcGVydHk9XCJzY2hlbWE6cGFnZUJlZ2luXCI+IDQyMDwvc3Bhbj4tPHNwYW4gcHJvcGVydHk9XCJzY2hlbWE6cGFnZUVuZFwiPjQyNCA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICg8dGltZSBwcm9wZXJ0eT1cInNjaGVtYTpkYXRlUHVibGlzaGVkXCIgZGF0YXR5cGU9XCJ4c2Q6Z1llYXJcIiBkYXRlVGltZT1cIjIwMTZcIj4yMDE2PC90aW1lPikuIFxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJkb2lcIiBocmVmPVwiaHR0cHM6Ly9kb2kub3JnLzEwLjEwMzgvbmF0dXJlMTc5NDZcIj4gZG9pOiAxMC4xMDM4L25hdHVyZTE3OTQ2PC9hPlxuICAgICAgICAgICAgICAgIDwvbGk+XG5cbiAgICAgICAgICAgICAgICB7LyogPCEtLSBDaXRhdGlvbiBudW0gNS0tPiAqL31cbiAgICAgICAgICAgICAgICA8bGkgdHlwZW9mPVwic2NoZW1hOlNjb2xhcmx5QXJ0aWNsZVwiIHJvbGU9XCJkb2MtYmlibGlvZW50cnlcIiBwcm9wZXJ0eT1cInNjaGVtYTpjaXRhdGlvblwiIGlkPVwiZGVzYy1maXZlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIHByb3BlcnR5PVwic2NoZW1hOmF1dGhvclwiIHR5cGVvZj1cInNjaGVtYTpQZXJzb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHByb3BlcnR5PVwic2NoZW1hOk5hbWVcIj5PcGVuRWQgQ1VOWS4gPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIHByb3BlcnR5PVwic2NoZW1hOm5hbWVcIj5STkEgU3RhYmlsaXR5IGFuZCB0aGUgUm9sZSBvZiBSTkEtQmluZGluZyBQcm90ZWlucy4gPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8aSBwcm9wZXJ0eT1cInNjaGVtYTpwdWJsaXNoZXJcIiB0eXBlb2Y9XCJzY2hlbWE6T3JnYW5pemF0aW9uXCI+T3BlbkVkIENVTlkgPC9pPlxuICAgICAgICAgICAgICAgICAgICAoPHRpbWUgcHJvcGVydHk9XCJzY2hlbWE6ZGF0ZVB1Ymxpc2hlZFwiIGRhdGF0eXBlPVwieHNkOmdZZWFyXCIgZGF0ZVRpbWU9XCIyMDI0XCI+MjAyNDwvdGltZT4pLlxuICAgICAgICAgICAgICAgIDwvbGk+XG5cbiAgICAgICAgICAgICAgICB7LyogPCEtLSBDaXRhdGlvbiBudW0gNi0tPiAqL31cbiAgICAgICAgICAgICAgICA8bGkgdHlwZW9mPVwic2NoZW1hOlNjb2xhcmx5QXJ0aWNsZVwiIHJvbGU9XCJkb2MtYmlibGlvZW50cnlcIiBwcm9wZXJ0eT1cInNjaGVtYTpjaXRhdGlvblwiIGlkPVwiZGVzYy1zaXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gcHJvcGVydHk9XCJzY2hlbWE6YXV0aG9yXCIgdHlwZW9mPVwic2NoZW1hOlBlcnNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gcHJvcGVydHk9XCJzY2hlbWE6TmFtZVwiPlNhaGF5LCBHLjwvc3Bhbj4sXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBwcm9wZXJ0eT1cInNjaGVtYTpOYW1lXCI+QWxha2hvdmEsIEQuWS48L3NwYW4+LFxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gcHJvcGVydHk9XCJzY2hlbWE6TmFtZVwiPkthYmFub3YsIEEuVi4gPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIHByb3BlcnR5PVwic2NoZW1hOm5hbWVcIj5FbmRvY3l0b3NpcyBvZiBuYW5vbWVkaWNpbmVzLiA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxpIHByb3BlcnR5PVwic2NoZW1hOnB1Ymxpc2hlclwiIHR5cGVvZj1cInNjaGVtYTpPcmdhbml6YXRpb25cIj5Kb3VybmFsIG9mIENvbnRyb2xsZWQgUmVsZWFzZSA8L2k+XG4gICAgICAgICAgICAgICAgICAgIDxiIHByb3BlcnR5PVwiaXNzdWVOdW1iZXJcIiB0eXBlb2Y9XCJQdWJsaWNhdGlvbklzc3VlXCI+MTQ1PC9iPixcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gcHJvcGVydHk9XCJzY2hlbWE6cGFnZUJlZ2luXCI+IDE4Mjwvc3Bhbj4tPHNwYW4gcHJvcGVydHk9XCJzY2hlbWE6cGFnZUVuZFwiPjE5NSA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICg8dGltZSBwcm9wZXJ0eT1cInNjaGVtYTpkYXRlUHVibGlzaGVkXCIgZGF0YXR5cGU9XCJ4c2Q6Z1llYXJcIiBkYXRlVGltZT1cIjIwMTBcIj4yMDEwPC90aW1lPikuXG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cImRvaVwiIGhyZWY9XCJodHRwczovL2RvaS5vcmcvMTAuMTAxNi9qLmpjb25yZWwuMjAxMC4wMS4wMzZcIj4gZG9pOiAxMC4xMDE2L2ouamNvbnJlbC4yMDEwLjAxLjAzNjwvYT5cbiAgICAgICAgICAgICAgICA8L2xpPlxuXG4gICAgICAgICAgICAgICAgey8qIDwhLS0gQ2l0YXRpb24gbnVtIDctLT4gKi99XG4gICAgICAgICAgICAgICAgPGxpIHR5cGVvZj1cInNjaGVtYTpTY29sYXJseUFydGljbGVcIiByb2xlPVwiZG9jLWJpYmxpb2VudHJ5XCIgcHJvcGVydHk9XCJzY2hlbWE6Y2l0YXRpb25cIiBpZD1cImRlc2Mtc2V2ZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gcHJvcGVydHk9XCJzY2hlbWE6YXV0aG9yXCIgdHlwZW9mPVwic2NoZW1hOlBlcnNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gcHJvcGVydHk9XCJzY2hlbWE6TmFtZVwiPlJhbWFjaGFuZHJhbiwgUy48L3NwYW4+LFxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gcHJvcGVydHk9XCJzY2hlbWE6TmFtZVwiPlNhdGFwYXRoeSwgUy5SLjwvc3Bhbj4sXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBwcm9wZXJ0eT1cInNjaGVtYTpOYW1lXCI+RHV0dGEsIFQuIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBwcm9wZXJ0eT1cInNjaGVtYTpuYW1lXCI+RGVsaXZlcnkgU3RyYXRlZ2llcyBmb3IgbVJOQSBWYWNjaW5lcy4gPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8aSBwcm9wZXJ0eT1cInNjaGVtYTpwdWJsaXNoZXJcIiB0eXBlb2Y9XCJzY2hlbWE6T3JnYW5pemF0aW9uXCI+UGhhcm1hY2V1dGljYWwgTWVkaWNpbmUgPC9pPlxuICAgICAgICAgICAgICAgICAgICA8YiBwcm9wZXJ0eT1cImlzc3VlTnVtYmVyXCIgdHlwZW9mPVwiUHVibGljYXRpb25Jc3N1ZVwiPjM2PC9iPixcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gcHJvcGVydHk9XCJzY2hlbWE6cGFnZUJlZ2luXCI+IDExPC9zcGFuPi08c3BhbiBwcm9wZXJ0eT1cInNjaGVtYTpwYWdlRW5kXCI+MjAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAoPHRpbWUgcHJvcGVydHk9XCJzY2hlbWE6ZGF0ZVB1Ymxpc2hlZFwiIGRhdGF0eXBlPVwieHNkOmdZZWFyXCIgZGF0ZVRpbWU9XCIyMDIyXCI+MjAyMjwvdGltZT4pLlxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJkb2lcIiBocmVmPVwiaHR0cHM6Ly9kb2kub3JnLzEwLjEwMDcvczQwMjkwLTAyMS0wMDQxNy01XCI+IGRvaTogMTAuMTAwNy9zNDAyOTAtMDIxLTAwNDE3LTU8L2E+XG4gICAgICAgICAgICAgICAgPC9saT5cblxuICAgICAgICAgICAgICAgIHsvKiA8IS0tIENpdGF0aW9uIG51bSA4LS0+ICovfVxuICAgICAgICAgICAgICAgIDxsaSB0eXBlb2Y9XCJzY2hlbWE6U2NvbGFybHlBcnRpY2xlXCIgcm9sZT1cImRvYy1iaWJsaW9lbnRyeVwiIHByb3BlcnR5PVwic2NoZW1hOmNpdGF0aW9uXCIgaWQ9XCJkZXNjLWVpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIHByb3BlcnR5PVwic2NoZW1hOmF1dGhvclwiIHR5cGVvZj1cInNjaGVtYTpQZXJzb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHByb3BlcnR5PVwic2NoZW1hOk5hbWVcIj5CYW5kaSwgUy5QLjwvc3Bhbj4sXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBwcm9wZXJ0eT1cInNjaGVtYTpOYW1lXCI+QmhhdG5hZ2FyLCBTLjwvc3Bhbj4sXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBwcm9wZXJ0eT1cInNjaGVtYTpOYW1lXCI+VmVudWdhbnRpLCBWLlYuSy4gPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIHByb3BlcnR5PVwic2NoZW1hOm5hbWVcIj5BZHZhbmNlZCBtYXRlcmlhbHMgZm9yIGRydWcgZGVsaXZlcnkgYWNyb3NzIG11Y29zYWwgYmFycmllcnMuIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGkgcHJvcGVydHk9XCJzY2hlbWE6cHVibGlzaGVyXCIgdHlwZW9mPVwic2NoZW1hOk9yZ2FuaXphdGlvblwiPkFjdGEgQmlvbWF0ZXJpYWxpYSA8L2k+XG4gICAgICAgICAgICAgICAgICAgIDxiIHByb3BlcnR5PVwiaXNzdWVOdW1iZXJcIiB0eXBlb2Y9XCJQdWJsaWNhdGlvbklzc3VlXCI+MTE5PC9iPixcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gcHJvcGVydHk9XCJzY2hlbWE6cGFnZUJlZ2luXCI+IDEzPC9zcGFuPi08c3BhbiBwcm9wZXJ0eT1cInNjaGVtYTpwYWdlRW5kXCI+MjkgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAoPHRpbWUgcHJvcGVydHk9XCJzY2hlbWE6ZGF0ZVB1Ymxpc2hlZFwiIGRhdGF0eXBlPVwieHNkOmdZZWFyXCIgZGF0ZVRpbWU9XCIyMDIxXCI+MjAyMTwvdGltZT4pLlxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJkb2lcIiBocmVmPVwiaHR0cHM6Ly9kb2kub3JnLzEwLjEwMTYvai5hY3RiaW8uMjAyMC4xMC4wMzFcIj4gZG9pOiAxMC4xMDE2L2ouYWN0YmlvLjIwMjAuMTAuMDMxPC9hPlxuICAgICAgICAgICAgICAgIDwvbGk+XG5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICA8L29sPlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgPC9kaXY+XG5cblxuICAgICAgICA8L2Rpdj4gIFxuICAgICAgPC9kaXY+ICAgIFxuICApO1xufVxuXG4vKiBsZXQgbWVkaWJ1dHRvbnJvd2RhdGEgPVtcbiAgICB7XG4gICAgICAgIG5vZGU6IDxkaXY+QWJvdXQ8L2Rpdj4sIFxuICAgICAgICBidXR0b25uYW1lOiBcIkFib3V0XCIsIFxuICAgICAgICBjc3NuYW1lOiBcIkZpcnN0XCJcbiAgICAgICAgXG4gICAgfSxcbiAgICB7ICAgXG4gICAgICAgIG5vZGU6IDxoMj5Nb2R1bGF0b3JzPC9oMj4sXG4gICAgICAgIGJ1dHRvbm5hbWU6IFwiTW9kdWxhdG9yc1wiLCBcbiAgICAgICAgY3NzbmFtZTogXCJtb2R1bGF0b3JzXCJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgbm9kZTogPGgyPkluaGFsYXRpb25zPC9oMj4sIFxuICAgICAgICBidXR0b25uYW1lOiBcIkluaGFsYXRpb25zXCIsIFxuICAgICAgICBjc3NuYW1lOiBcImluaGFsYXRpb25zXCJcbiAgICB9LFxuXVxuICovIiwgIlxuXG5pbXBvcnQgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5cbmZ1bmN0aW9uIFNpZGVJdGVtKHtoZXNoLCBudW19OntoZXNoOiBzdHJpbmc7IG51bTogbnVtYmVyfSl7XG4gICAgbGV0IGxpbmsgPSBcIiNcIiArIGhlc2hcbiAgICBsZXQgc3ViZGkgPSBcInN1YnRpdGxlXCIgKyBudW1cbiAgICByZXR1cm4oXG4gICAgICAgIDxkaXY+ICAgXG4gICAgICAgICAgICA8YSBocmVmPXtsaW5rfT5cbiAgICAgICAgICAgICAgICA8c3BhbiBpZD17c3ViZGl9PlxuICAgICAgICAgICAgICAgICAgICB7aGVzaH1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PiAgIFxuICAgIClcbn1cblxuXG5cbi8qIExPYWRpbmcgdG9vIHNsb3cuLi5cbmZ1bmN0aW9uIFNpZGViYXIoKXtcbiAgICBjb25zdCBhbGxXaXRoQ2xhc3MgPSBBcnJheS5mcm9tKFxuICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdzZWN0aW9uJylcbiAgICAgICk7XG4gICAgICBjb25zb2xlLmxvZyhhbGxXaXRoQ2xhc3MpO1xuICAgIGxldCBjb250ZW50ID0gW107XG4gICAgZm9yKGxldCBpZHggaW4gYWxsV2l0aENsYXNzKXtcbiAgICAgICAgY29uc3QgaXRlbSA9IGFsbFdpdGhDbGFzc1tpZHhdO1xuICAgICAgICBjb25zdCBpZCA9IGl0ZW0uaWQ7IFxuICAgICAgICBjb25zb2xlLmxvZyhcImlkeDogXCIgKyBpZHgpO1xuICAgICAgICBjb25zb2xlLmxvZyhcIml0ZW06IFwiICsgaXRlbSk7IFxuICAgICAgICBjb25zb2xlLmxvZyhcImlkOiBcIiArIGlkKTtcbiAgICAgICAgY29udGVudC5wdXNoKDxTaWRlSXRlbSBrZXk9e2lkfSBoZXNoPXtpZH0+PC9TaWRlSXRlbT4pO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgICA8bmF2IGNsYXNzTmFtZT1cInNpZGViYXJcIj5cbiAgICAgICAgICAgIHtjb250ZW50fVxuICAgICAgICA8L25hdj4gICAgICAgIFxuICAgIClcbiAgICBcbn0gKi9cblxuXG4gICAgZnVuY3Rpb24gU2lkZWJhcih7bnVtc306e251bXM6IEFycmF5PHN0cmluZz59KXtcblxuICAgICAgXG4gICAgICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbCk7XG4gICAgICAgICAgcmV0dXJuICgpID0+IHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpO1xuICAgICAgICB9LCBbXSk7XG5cbiAgICAgICAgY29uc3QgaGFuZGxlU2Nyb2xsID0gKCkgPT4ge1xuICAgICAgICAgICAgZm9yKGxldCBpZHggaW4gbnVtcyl7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IG51bXNbaWR4XTtcbiAgICAgICAgICAgICAgICBsZXQgaW5kID0gbnVtcy5maW5kSW5kZXgoKGUpID0+IGUgPT0gaXRlbSlcbiAgICAgICAgICAgICAgICBsZXQgc3ViZGkgPSBcInN1YnRpdGxlXCIgKyBpbmQgXG4gICAgICAgICAgICAgICAgSGlnaGxpZ2h0KHtlbDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaXRlbSkhfSwge3N1YnRpdGxlOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzdWJkaSkhfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZnVuY3Rpb24gSGlnaGxpZ2h0Q2hlY2tcIilcbiAgICAgICAgfVxuICAgICAgXG5cbiAgICAgICAgY29uc29sZS5sb2cobnVtcylcbiAgICAgICAgbGV0IGNvbnRlbnQgPSBbXTsgXG4gICAgICAgIGZvcihsZXQgaWR4IGluIG51bXMpe1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IG51bXNbaWR4XTtcbiAgICAgICAgICAgIC8qIGNvbnNvbGUubG9nKFwiaWR4OiBcIiArIGlkeCk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIml0ZW06IFwiICsgaXRlbSk7ICAqL1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJUeXBlOiBcIiArIHR5cGVvZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpdGVtKSkpXG4gICAgICAgICAgICBsZXQgaW5kID0gbnVtcy5maW5kSW5kZXgoKGUpID0+IGUgPT0gaXRlbSlcbiAgICAgICAgICAgIGNvbnRlbnQucHVzaCg8U2lkZUl0ZW0ga2V5PXtpdGVtfSBoZXNoPXtpdGVtfSBudW09e2luZH0+PC9TaWRlSXRlbT4pO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpZihudW1zLmxlbmd0aCA+IDEpXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgIDxuYXYgY2xhc3NOYW1lPVwic2lkZWJhclwiPlxuICAgICAgICAgICAgICAgICAgICB7Y29udGVudH1cbiAgICAgICAgICAgIDwvbmF2PiAgIFxuICAgICAgICAgICAgPGJyLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCIgc3R5bGU9e3tkaXNwbGF5OiBcImZsZXhcIiwgYWxpZ25JdGVtczogXCJyaWdodCAgICBcIn19PlxuICAgICAgICAgICAgICAgIDxhIGhyZWY9eycjJyArIG51bXNbMF19IGNsYXNzTmFtZT1cImJhY2t0b3RvcFwiPlxuICAgICAgICAgICAgICAgICAgICBCYWNrIHRvIFRvcCAmIzg1OTM7XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+ICAgXG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICBcbiAgICAgICAgKVxuICAgICAgICByZXR1cm4oXG4gICAgICAgICAgICA8ZGl2PjwvZGl2PlxuICAgICAgICApXG4gICAgfVxuICAgIFxuXG5cbiAgICAgIGZ1bmN0aW9uIEhpZ2hsaWdodCh7ZWx9OiB7ZWw6IEhUTUxFbGVtZW50IHwgbnVsbH0sIHtzdWJ0aXRsZX06e3N1YnRpdGxlOiBIVE1MRWxlbWVudCB8IG51bGx9KXtcbiAgICAgICAgbGV0IFRvcERpc3RhbmNlID0gMTAwOyBcbiAgICAgICAgaWYgKGVsICE9IG51bGwgJiYgc3VidGl0bGUgIT0gbnVsbCl7XG4gICAgICAgICAgICBpZiAoZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIDwgVG9wRGlzdGFuY2UgKyAxICYmIGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSA+IFRvcERpc3RhbmNlKXtcbiAgICAgICAgICAgICAgICBzdWJ0aXRsZS5zdHlsZS5jb2xvciA9IFwiI0ZGRjZGMlwiO1xuICAgICAgICAgICAgICAgIHN1YnRpdGxlLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IFwiIzg1MEY3OFwiO1xuICAgICAgICAgICAgICAgIHN1YnRpdGxlLnN0eWxlLmJvcmRlclJhZGl1cyA9IFwiMTVweFwiO1xuICAgICAgICAgICAgICAgIHN1YnRpdGxlLnN0eWxlLmJvcmRlcldpZHRoID0gXCIxNXB4XCI7IFxuICAgICAgICAgICAgICAgIHN1YnRpdGxlLnN0eWxlLmJvcmRlckNvbG9yID0gXCIjODUwRjc4XCI7IFxuLyogICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwic3VidGl0bGU6IFwiLHN1YnRpdGxlKVxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwic3R5bGU6IFwiLCBzdWJ0aXRsZS5zdHlsZSlcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNvbG9yOiBcIixzdWJ0aXRsZS5zdHlsZS5jb2xvcilcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImJhY2tjb2xvcjogXCIsc3VidGl0bGUuc3R5bGUuYmFja2dyb3VuZENvbG9yKSAgICAqLyAgICAgXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNle1xuICAgICAgICAgICAgICAgIHN1YnRpdGxlLnN0eWxlLmNvbG9yID0gXCIjODUwRjc4XCI7XG4gICAgICAgICAgICAgICAgc3VidGl0bGUuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gXCJcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgIH1cbiAgICBcblxuZXhwb3J0IGRlZmF1bHQgU2lkZWJhcjsiLCAiaW1wb3J0IFNpZGViYXIgZnJvbSBcIi4uL2NvbXBvbmVudHMvU2lkZWJhclwiO1xuXG5leHBvcnQgZnVuY3Rpb24gRGVzY1NpZGViYXIoKXtcbiAgICByZXR1cm4oXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTIgZC1ub25lIGQtbGctYmxvY2tcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3RpY2t5LXRvcFwiPlxuICAgICAgICAgICAgICAgIDxTaWRlYmFyIG51bXM9e1tcIkFic3RyYWN0XCIsIFwiQ3lzdGljIEZpYnJvc2lzXCIsIFwiT3VyIG1vdGl2YXRpb25cIiwgXG4gICAgICAgICAgICAgICAgXCJBcHByb2FjaFwiLCBcIkRlbGl2ZXJ5XCIsIFwiT3VyIHZpc2lvblwiLCBcIlJlZmVyZW5jZXNcIl19PjwvU2lkZWJhcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICApXG59IiwgImltcG9ydCB7IExpbmsgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xuaW1wb3J0IHsgb3BlbkNpdHkgfSBmcm9tIFwiLi9Ib3Jpem9udGFsVGltZWxpbmVcIjtcblxuaW50ZXJmYWNlIFVybEJ1dHRvblByb3Bze1xuICAgIGhyZWY6IHN0cmluZyxcbiAgICBjaGlsZHJlbjogc3RyaW5nLFxuICB9O1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBWaWxsYWdlYnV0dG9uKHsgdGl0bGUsIHNvdXJjZSwgcGFnZSB9OiB7IHRpdGxlOiBzdHJpbmc7IHNvdXJjZTogc3RyaW5nOyBwYWdlOnN0cmluZ30pIHtcbiAgcmV0dXJuIChcbiAgICA8TGluayBjbGFzc05hbWU9XCJidG4gdmlsbGFnZS1zdHlsZS1idXR0b25cIiByb2xlPVwiYnV0dG9uXCIgdG89e3BhZ2V9PlxuICAgICAgPGltZyBzcmM9e3NvdXJjZX0gY2xhc3NOYW1lPVwiZC1ibG9jayBteC1hdXRvIG1iLTJcIiBhbHQ9XCJcIj48L2ltZz5cbiAgICAgIDxoMz57dGl0bGV9PC9oMz5cbiAgICA8L0xpbms+XG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFZpbGxidXR0b25yb3coKXtcbiAgcmV0dXJuKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyIGJvdHRvbS1idXR0b25zXCI+XG4gICAgICAgIDxWaWxsYWdlYnV0dG9uIHBhZ2U9XCIvaHVtYW4tcHJhY3RpY2VzXCIgc291cmNlPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvZGVzaWduL2ljb25zL2h1bWFucHJhY3RpY2VzLnBuZ1wiIHRpdGxlPVwiSHVtYW4gUHJhY3RpY2VcIj48L1ZpbGxhZ2VidXR0b24+XG4gICAgICAgIDxWaWxsYWdlYnV0dG9uIHBhZ2U9XCIvdGVhbVwiIHNvdXJjZT1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L2Rlc2lnbi9pY29ucy90ZWFtLnBuZ1wiIHRpdGxlPVwiVGVhbVwiPjwvVmlsbGFnZWJ1dHRvbj5cbiAgICAgICAgPFZpbGxhZ2VidXR0b24gcGFnZT1cIi9leHBlcmltZW50c1wiIHNvdXJjZT1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L2Rlc2lnbi9pY29ucy9sYWIucG5nXCIgdGl0bGU9XCJFeHBlcmltZW50c1wiPjwvVmlsbGFnZWJ1dHRvbj5cbiAgICAgICAgPFZpbGxhZ2VidXR0b24gcGFnZT1cIi9kZXNjcmlwdGlvblwiIHNvdXJjZT1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L2Rlc2lnbi9pY29ucy9kbmEucG5nXCIgdGl0bGU9XCJEZXNjcmlwdGlvblwiPjwvVmlsbGFnZWJ1dHRvbj5cbiAgICAgICAgPFZpbGxhZ2VidXR0b24gcGFnZT1cIi9lbmdpbmVlcmluZ1wiIHNvdXJjZT1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L2Rlc2lnbi9pY29ucy9nZW5ldGljLWVuZ2luZWVyaW5nLnBuZ1wiIHRpdGxlPVwiRW5naW5lZXJpbmdcIj48L1ZpbGxhZ2VidXR0b24+XG4gICAgICAgIDxWaWxsYWdlYnV0dG9uIHBhZ2U9XCIvc2FmZXR5XCIgc291cmNlPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvZGVzaWduL2ljb25zL3NhZmV0eS5wbmdcIiB0aXRsZT1cIlNhZmV0eVwiPjwvVmlsbGFnZWJ1dHRvbj5cbiAgICAgICAgPFZpbGxhZ2VidXR0b24gcGFnZT1cIi9yZXN1bHRzXCIgc291cmNlPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvZGVzaWduL2ljb25zL3Jlc3VsdHMucG5nXCIgdGl0bGU9XCJSZXN1bHRzXCI+PC9WaWxsYWdlYnV0dG9uPlxuICAgICAgPC9kaXY+ICBcbiAgKVxufVxuXG5cbmV4cG9ydCBjb25zdCBVcmxCdXR0b24gPSAoeyBocmVmLCBjaGlsZHJlbiB9OlVybEJ1dHRvblByb3BzKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxhIGhyZWY9e2hyZWZ9IGNsYXNzTmFtZT1cInVybC1idXR0b25cIj5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9hPlxuICAgICk7XG4gIH1cblxuXG5cblxuZXhwb3J0IGNvbnN0IERvd25sb2FkTGluayA9ICh7IHVybCwgZmlsZU5hbWUgfToge3VybDogc3RyaW5nLCBmaWxlTmFtZTogc3RyaW5nfSkgPT4ge1xuY29uc3QgaGFuZGxlRG93bmxvYWQgPSAoKSA9PiB7XG4gICAgZmV0Y2godXJsKVxuICAgIC50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuYmxvYigpKVxuICAgIC50aGVuKChibG9iKSA9PiB7XG4gICAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKFtibG9iXSkpO1xuICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XG4gICAgICAgIGxpbmsuaHJlZiA9IHVybDtcbiAgICAgICAgbGluay5kb3dubG9hZCA9IGZpbGVOYW1lIHx8IFwiZG93bmxvYWRlZC1maWxlXCI7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XG5cbiAgICAgICAgbGluay5jbGljaygpO1xuXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluayk7XG4gICAgICAgIHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKHVybCk7XG4gICAgfSlcbiAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvciBmZXRjaGluZyB0aGUgZmlsZTpcIiwgZXJyb3IpO1xuICAgIH0pO1xufTtcbiAgXG5yZXR1cm4gKFxuXG4gICAgPGEgdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e2hhbmRsZURvd25sb2FkfSBjbGFzc05hbWU9XCJkb3dubG9hZC1idXR0XCI+XG4gICAgICAgIERvd25sb2FkXG4gICAgPC9hPlxuXG4pO1xufTtcblxuXG5leHBvcnQgZnVuY3Rpb24gVGFiQnV0dG9uUm93KHtkYXRhLCBjbGFzc3ksIG9wZW50eXBlLCBjbG9zaW5nfToge2RhdGE6IEFycmF5PFRhYkRhdGVuc2F0ej4sIGNsYXNzeT86IHN0cmluZywgb3BlbnR5cGU6IHN0cmluZywgY2xvc2luZzogc3RyaW5nfSl7XG4gIGxldCByb3dzID0gW11cbiAgZm9yICggbGV0IGkgPSAwOyAgaSA8IGRhdGEubGVuZ3RoOyBpKysgKXtcbiAgICBpZihjbGFzc3kpe1xuICAgICAgcm93cy5wdXNoKDxUYWJCdXR0b24gY2xhc3N5PXtjbGFzc3l9IHR5cGU9e2RhdGFbaV0uY3NzbmFtZX0gbmFtZT17ZGF0YVtpXS5idXR0b25uYW1lfSBvcGVudHlwZT17b3BlbnR5cGV9IGNsb3Npbmc9e2Nsb3Npbmd9Lz4pXG4gICAgfVxuICAgIGVsc2V7XG4gICAgICByb3dzLnB1c2goPFRhYkJ1dHRvbiB0eXBlPXtkYXRhW2ldLmNzc25hbWV9IG5hbWU9e2RhdGFbaV0uYnV0dG9ubmFtZX0gb3BlbnR5cGU9e29wZW50eXBlfSBjbG9zaW5nPXtjbG9zaW5nfS8+KVxuICAgIH1cbiAgfVxuICByZXR1cm4gPGRpdiBjbGFzc05hbWU9XCJhbGlnbi1pdGVtcy1jZW50ZXIgbm9ybWFsLWJ1dHRvbnNcIj5cbiAgICB7cm93c31cbiAgPC9kaXY+OyBcbn1cblxuXG5cbmludGVyZmFjZSBUYWJCdXR0b25Qcm9wc3tcbiAgY2xhc3N5Pzogc3RyaW5nLCBcbiAgY2xvc2luZzogc3RyaW5nLCBcbiAgb3BlbnR5cGU6IHN0cmluZ1xuICAvKiBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZSwgICovXG4gIC8qIG9uQ2xpY2s6IChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MQnV0dG9uRWxlbWVudCwgTW91c2VFdmVudD4pID0+IHZvaWQsICAqL1xuICBuYW1lOiBzdHJpbmcsXG4gIHR5cGU6IHN0cmluZ1xufVxuLy8gbmV1ZXIgXG5leHBvcnQgZnVuY3Rpb24gVGFiQnV0dG9uKHtjbGFzc3ksIG5hbWUsIGNsb3NpbmcsIG9wZW50eXBlLCB0eXBlfTpUYWJCdXR0b25Qcm9wcyl7XG4gIGlmICghY2xhc3N5KXtcbiAgICBjbGFzc3kgPSBcIlwiXG4gIH1cbiAgbGV0IGNsYXNzbmFtZSA9IFwidGFiYnV0dG9uIFwiICsgdHlwZSArIFwiIFwiICsgY2xhc3N5OyBcbiAgcmV0dXJuKFxuICAgIDw+XG4gICAgPGJ1dHRvbiBjbGFzc05hbWU9e2NsYXNzbmFtZX0gb25DbGljaz17b3BlblRhYih7Y2l0eU5hbWU6IHR5cGUsIGNsYTogb3BlbnR5cGUsIHdlZzogY2xvc2luZyB9KX0+IHtuYW1lfTwvYnV0dG9uPlxuICAgIDwvPlxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBIUE1vcmVCdXR0b24oe25hbWV9OiB7bmFtZTogc3RyaW5nfSl7XG4gIGxldCBjID0gXCJ0aW1lbGluZXBlcnNvbnRhYnNcIlxuICByZXR1cm4oXG4gICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJ0YWJsaW5rcyBocC1tb3JlLWJ1dHRvblwiIG9uQ2xpY2s9e29wZW5UYWIoe2NpdHlOYW1lOiBuYW1lLCBjbGE6IGN9KX0+IE1vcmU8L2J1dHRvbj5cbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gQkZITW9yZUJ1dHRvbih7aXR9OiB7aXQ6IHN0cmluZ30pe1xuICByZXR1cm4oXG4gICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJ0YWJsaW5rcyBiZmgtbW9yZS1idXR0b25cIiBvbkNsaWNrPXtleHBhbmRJdCh7aXR9KX0+IE1vcmU8L2J1dHRvbj5cbiAgKVxufVxuXG5mdW5jdGlvbiBleHBhbmRJdCh7aXR9OiB7aXQ6IHN0cmluZ30pe1xuICBjb25zdCBvcGVuaXQgPSAgKF9ldmVudCA6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQsIE1vdXNlRXZlbnQ+KSA9PntcbiAgICBjb25zb2xlLmxvZyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpdCkpXG4gICAgY29uc29sZS5sb2coZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaXQpIS5zdHlsZS5kaXNwbGF5KVxuICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpdCkhLnN0eWxlLmRpc3BsYXkgPT09IFwiYmxvY2tcIil7XG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpdCkhLnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcbiAgICB9XG4gICAgZWxzZSBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpdCkhLnN0eWxlLmRpc3BsYXkgPT09IFwibm9uZVwiKXtcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGl0KSEuc3R5bGUuZGlzcGxheSA9IFwiYmxvY2tcIjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9wZW5pdDsgXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvcGVuVGFiKHtjaXR5TmFtZSwgY2xhLCB3ZWd9OntjaXR5TmFtZTogc3RyaW5nLCBjbGE6IHN0cmluZywgd2VnPzogc3RyaW5nfSkge1xuICBjb25zdCBvcGVuY2l0eSA9ICAoZXZlbnQgOiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50LCBNb3VzZUV2ZW50PikgPT57XG4gICAgdmFyIGksIHRhYmNvbnRlbnQsIHRhYmxpbmtzLCB3ZWdjb250ZW50O1xuICB0YWJjb250ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShjbGEpO1xuICBmb3IgKGkgPSAwOyBpIDwgdGFiY29udGVudC5sZW5ndGg7IGkrKykge1xuICAgICh0YWJjb250ZW50W2ldIGFzIEhUTUxFbGVtZW50KS5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XG4gIH1cbiAgdGFibGlua3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwidGFiYnV0dG9uXCIpO1xuICBmb3IgKGkgPSAwOyBpIDwgdGFibGlua3MubGVuZ3RoOyBpKyspIHtcbiAgICB0YWJsaW5rc1tpXS5jbGFzc05hbWUgPSB0YWJsaW5rc1tpXS5jbGFzc05hbWUucmVwbGFjZShcIiBhY3RpdmVcIiwgXCJcIik7XG4gIH1cbiAgaWYgKHdlZyl7XG4gICAgd2VnY29udGVudCAgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKHdlZyk7XG4gICAgZm9yIChpID0gMDsgaSA8IHdlZ2NvbnRlbnQubGVuZ3RoOyBpKyspIHtcbiAgICAgICh3ZWdjb250ZW50W2ldIGFzIEhUTUxFbGVtZW50KS5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XG4gICAgfVxuICB9XG4gIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNpdHlOYW1lKSEuc3R5bGUuZGlzcGxheSA9IFwiYmxvY2tcIjtcbiAgZXZlbnQuY3VycmVudFRhcmdldC5jbGFzc05hbWUgKz0gXCIgYWN0aXZlXCI7XG4gIH1cbiAgcmV0dXJuIG9wZW5jaXR5OyBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEJ1dHRvblRocmVlKCl7XG4gIHJldHVybihcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImJveHktM1wiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJidG4tbmV3IGJ0bi10aHJlZVwiPlxuICAgICAgICA8c3BhbiB0eXBlb2Y9XCJidXR0b25cIiBvbkNsaWNrPXtvcGVuQ2l0eSh7Y2l0eU5hbWU6IFwiYWJvdXRcIn0pfT5IT1ZFUiBNRTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBCdXR0b25Ud28oKXtcbiAgcmV0dXJuKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiYm94eS0yXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImJ0bi1uZXcgYnRuLXR3b1wiPlxuICAgICAgICA8c3BhbiB0eXBlb2Y9XCJidXR0b25cIiBvbkNsaWNrPXtvcGVuQ2l0eSh7Y2l0eU5hbWU6IFwiYWJvdXRcIn0pfT5IT1ZFUiBNRTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBCdXR0b25PbmUoe3RleHQsIG9wZW59OiB7dGV4dDpzdHJpbmcsIG9wZW46c3RyaW5nfSl7XG4gIHJldHVybihcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImJveHktMVwiPlxuICAgICAgPHNwYW4gdHlwZW9mPVwiYnV0dG9uXCIgb25DbGljaz17b3Blbkl0KHtpdDogb3Blbn0pfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnRuLW5ldyBidG4tb25lXCI+XG4gICAgICB7dGV4dH1cbiAgICAgIDwvZGl2Pjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBCdXR0b25Gb3VyRmlsbCgpe1xuICByZXR1cm4oXG4gICAgPGEgdHlwZT1cImJ1dHRvblwiIGNsYXNzTmFtZT1cImljb24gaWNvbi1maWxsXCI+PGkgY2xhc3NOYW1lPVwiZmEgZmEtaG9tZVwiPjwvaT48L2E+XG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEJ1dHRvbkZvdXJFbnRlcigpe1xuICByZXR1cm4oXG4gICAgPGEgdHlwZT1cImJ1dHRvblwiIGNsYXNzTmFtZT1cImljb24gaWNvbi1lbnRlclwiPjxpIGNsYXNzTmFtZT1cImZhIGZhLWhvbWVcIj48L2k+PC9hPlxuICApXG59XG5leHBvcnQgZnVuY3Rpb24gQnV0dG9uRm91ckV4cGFuZCgpe1xuICByZXR1cm4oXG4gICAgPGEgdHlwZT1cImJ1dHRvblwiIGNsYXNzTmFtZT1cImljb24gaWNvbi1leHBhbmRcIj48aSBjbGFzc05hbWU9XCJmYSBmYS1ob21lXCI+PC9pPjwvYT5cbiAgKVxufVxuZXhwb3J0IGZ1bmN0aW9uIEJ1dHRvbkZvdXJDb2xsYXBzZSgpe1xuICByZXR1cm4oXG4gICAgPGEgdHlwZT1cImJ1dHRvblwiICBjbGFzc05hbWU9XCJpY29uIGljb24tY29sbGFwc2VcIj48aSBjbGFzc05hbWU9XCJmYSBmYS1ob21lXCI+PC9pPjwvYT5cbiAgKVxufVxuZXhwb3J0IGZ1bmN0aW9uIEJ1dHRvbkZvdXJSb3RhdGUoKXtcbiAgcmV0dXJuKFxuICAgIDxhIHR5cGU9XCJidXR0b25cIiBjbGFzc05hbWU9XCJpY29uIGljb24tcm90YXRlXCI+PGkgY2xhc3NOYW1lPVwiZmEgZmEtaG9tZVwiPjwvaT48L2E+XG4gIClcbn1cblxuXG5cblxuZXhwb3J0IGZ1bmN0aW9uIG9wZW5JdCh7aXR9OiB7aXQ6IHN0cmluZ30pe1xuICBjb25zdCBvcGVuaXQgPSAgKGV2ZW50IDogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudCwgTW91c2VFdmVudD4pID0+IHtcbiAgIC8qICBjb25zb2xlLmxvZyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpdCkpICovXG4gICAgY29uc29sZS5sb2coZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaXQpPy5jbGFzc05hbWUpXG4gICAgbGV0IHRhYmNvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwiY3ljbGV0YWJcIik7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0YWJjb250ZW50Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgKHRhYmNvbnRlbnRbaV0gYXMgSFRNTEVsZW1lbnQpLnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcbiAgICAgfVxuICAgIC8qIGNvbnNvbGUubG9nKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGl0KSEuc3R5bGUuZGlzcGxheSkgKi9cbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGl0KSEuc3R5bGUuZGlzcGxheSA9IFwiYmxvY2tcIjtcbiAgICBcbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LmNsYXNzTmFtZSArPSBcIiBhY3RpdmVcIjtcbiAgfVxuICByZXR1cm4gb3Blbml0OyBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9wZW5JdFR3byh7aXR9OiB7aXQ6IHN0cmluZ30pe1xuICBjb25zdCBvcGVuaXQgPSAgKGV2ZW50IDogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudCwgTW91c2VFdmVudD4pID0+IHtcbiAgIC8qICBjb25zb2xlLmxvZyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpdCkpICovXG4gICAgY29uc29sZS5sb2coZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaXQpPy5jbGFzc05hbWUpXG4gICAgbGV0IHRhYmNvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwiY29sIG91dHJlYWNoXCIpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFiY29udGVudC5sZW5ndGg7IGkrKykge1xuICAgICAgICh0YWJjb250ZW50W2ldIGFzIEhUTUxFbGVtZW50KS5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XG4gICAgIH1cbiAgICAvKiBjb25zb2xlLmxvZyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpdCkhLnN0eWxlLmRpc3BsYXkpICovXG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpdCkhLnN0eWxlLmRpc3BsYXkgPSBcImJsb2NrXCI7XG4gICAgXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5jbGFzc05hbWUgKz0gXCIgYWN0aXZlXCI7XG4gIH1cbiAgcmV0dXJuIG9wZW5pdDsgXG59IiwgImltcG9ydCB7IEhQTW9yZUJ1dHRvbiB9IGZyb20gXCIuL0J1dHRvbnNcIjtcblxuZnVuY3Rpb24gVGltZUl0ZW0oe3RhZywgdGl0bGUsIHBpYywgYXV0aG9yLCB0YWJpZH06IEl0ZW1Qcm9wcyl7XG4gICAgbGV0IGNsID0gXCJ0LXRhZyBcIiArIHRhZztcbiAgICByZXR1cm4oXG4gICAgPGxpIGNsYXNzTmFtZT1cInRpbWVsaW5lb2xsaVwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aW1lbGluZS1pdGVtIG1vcmV0b3BcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbH0+XG4gICAgICAgICAgICAgICAge3RhZ31cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIiA+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRsLWJ1dHRcIiBvbkNsaWNrPXtPcGVuKHtwZXJzb246IGF1dGhvcn0pfT4gPGltZyBjbGFzc05hbWU9XCJpbWctcm91bmRcIiBzcmM9e3BpY30gLz48L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiID5cbiAgICAgICAgICAgICAgICAgIHt0aXRsZX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgICAgICAgIDxwIHN0eWxlPXt7bWFyZ2luVG9wOiBcIjEwcHhcIn19PnthdXRob3J9PC9wPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtNFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGFiXCI+XG4gICAgICAgICAgICAgICAgPEhQTW9yZUJ1dHRvbiBuYW1lPXt0YWJpZH0vPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgXG4gICAgICAgICAgICBcbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xpPlxuICAgIClcbiAgfVxuICBcbiAgXG4gIFxuICBcbiAgZXhwb3J0IGZ1bmN0aW9uIEFsbFBvcHVzKCl7XG4gICAgbGV0IHJvd3MgPSBbXVxuICAgIGZvciAoIGxldCBpID0gMDsgIGkgPCBkYXRhLmxlbmd0aDsgaSsrICl7XG4gICAgICByb3dzLnB1c2goPFBvcHVwIHBlcnNvbj17ZGF0YVtpXS5hdXRob3J9PlxuICAgICAgICBIaVxuICAgICAgPC9Qb3B1cD4pXG4gICAgfVxuICAgIHJldHVybiByb3dzOyBcbiAgfVxuICBcbiAgZXhwb3J0IGZ1bmN0aW9uIFRpbWVIb3JpKHt0YWJ9Ont0YWI6IHN0cmluZ30pe1xuICAgIGxldCBub2Q7IFxuICAgIC8qIGNvbnNvbGUubG9nKFwiVGltZUhvcmlcIikgKi9cbiAgICBpZiAodGFiID09PSBcIlwiKXsgIFxuICAgICAgbm9kID0gPEFsbEl0ZW1zPjwvQWxsSXRlbXM+XG4gICAgICAvKiBjb25zb2xlLmxvZyhcIlRhYiA9ICcnXCIpICovXG4gICAgfVxuICAgIGVsc2V7XG4gICAgICAvKiBjb25zb2xlLmxvZyhcIlRhYlwiKSAqL1xuICAgICAgbm9kID0gZ2V0SXRlbXNCeVR5cGUodGFiKTtcbiAgICB9XG4gICAgcmV0dXJuKFxuICAgIDxkaXY+XG4gIDxzZWN0aW9uIGNsYXNzTmFtZT1cInRpbWVsaW5lIHJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgPG9sIGNsYXNzTmFtZT1cInRpbWVsaW5lb2xcIj5cbiAgICAgIHtub2R9XG4gICAgPGxpIGNsYXNzTmFtZT1cInRpbWVsaW5lb2xsaVwiPjwvbGk+XG4gIDwvb2w+XG4gIFxuICBcbiAgPC9zZWN0aW9uPlxuICA8L2Rpdj5cbiAgXG4gICAgKVxuICB9XG4gIFxuICBmdW5jdGlvbiBPcGVuKHtwZXJzb259OntwZXJzb246IHN0cmluZ30pe1xuICAgIGNvbnN0IG9wZW5Qb3AgPSAgKF9ldmVudCA6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQsIE1vdXNlRXZlbnQ+KSA9PiB7XG4gICAgICB2YXIgcG9wdXAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwZXJzb24pO1xuICAgICAgcG9wdXAhLmNsYXNzTGlzdC50b2dnbGUoXCJzaG93XCIpO1xuICAgIH1cbiAgICByZXR1cm4gb3BlblBvcDsgXG4gICAgfVxuICBcbiAgaW50ZXJmYWNlIFBvcFByb3BzIHtcbiAgICBwZXJzb246IHN0cmluZywgXG4gICAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxuICAgIH1cbiAgICBcbiAgXG4gIGZ1bmN0aW9uIFBvcHVwKHtwZXJzb24sIGNoaWxkcmVufTogUG9wUHJvcHMpe1xuICAgIHJldHVybihcbiAgICAgIDxkaXYgaWQ9XCJteVBvcHVwXCIgY2xhc3NOYW1lPVwicG9wdXBcIj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicG9wdXB0ZXh0XCIgaWQ9e3BlcnNvbn0+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGJ1dHRvbiBvbkNsaWNrPXtPcGVuKHtwZXJzb259KX0gPkNsb3NlPC9idXR0b24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgXG4gICAgICA8L2Rpdj5cbiAgICApXG4gICAgfVxuICBcbiAgXG4gICAgIGV4cG9ydCBmdW5jdGlvbiBvcGVuQ2l0eSh7Y2l0eU5hbWV9OntjaXR5TmFtZTogc3RyaW5nfSkge1xuICAgICAgICBjb25zdCBvcGVuY2l0eSA9ICAoZXZlbnQgOiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50LCBNb3VzZUV2ZW50PikgPT57XG4gICAgICAgICAgdmFyIGksIHRhYmNvbnRlbnQsIHRhYmxpbmtzO1xuICAgICAgICB0YWJjb250ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcInRhYmNvbnRlbnRcIik7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB0YWJjb250ZW50Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgKHRhYmNvbnRlbnRbaV0gYXMgSFRNTEVsZW1lbnQpLnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcbiAgICAgICAgfVxuICAgICAgICB0YWJsaW5rcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXCJ0YWJsaW5rc1wiKTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IHRhYmxpbmtzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdGFibGlua3NbaV0uY2xhc3NOYW1lID0gdGFibGlua3NbaV0uY2xhc3NOYW1lLnJlcGxhY2UoXCIgYWN0aXZlXCIsIFwiXCIpO1xuICAgICAgICB9XG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNpdHlOYW1lKSEuc3R5bGUuZGlzcGxheSA9IFwiYmxvY2tcIjtcbiAgICAgICAgZXZlbnQuY3VycmVudFRhcmdldC5jbGFzc05hbWUgKz0gXCIgYWN0aXZlXCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9wZW5jaXR5OyBcbiAgICAgIH1cbiAgICAgIFxuICAgICAgaW50ZXJmYWNlIEl0ZW1Qcm9wcyB7XG4gICAgICAgIHRpdGxlOiBzdHJpbmcgLFxuICAgICAgICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xuICAgICAgICB0YWc6IHN0cmluZywgXG4gICAgICAgIHBpYzogc3RyaW5nLFxuICAgICAgICBhdXRob3I6IHN0cmluZywgXG4gICAgICAgIHRhYmlkOiBzdHJpbmdcbiAgICAgICAgfVxuICAgIFxuICAgICAgICBcblxuXG4gICAgICBmdW5jdGlvbiBBbGxJdGVtcygpe1xuICAgICAgICBsZXQgcm93cyA9IFtdXG4gICAgICAgIGZvciAoIGxldCBpID0gMDsgIGkgPCBkYXRhLmxlbmd0aDsgaSsrICl7XG4gICAgICAgICAgcm93cy5wdXNoKDxUaW1lSXRlbSBcbiAgICAgICAgICAgIHRpdGxlPXtkYXRhW2ldLnRpdGxlfVxuICAgICAgICAgICAgcGljPXtkYXRhW2ldLnBpY31cbiAgICAgICAgICAgIHRhZz17ZGF0YVtpXS50YWd9XG4gICAgICAgICAgICBhdXRob3I9e2RhdGFbaV0uYXV0aG9yfVxuICAgICAgICAgICAgdGFiaWQ9e2RhdGFbaV0udGFiaWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtkYXRhW2ldLnRleHR9XG4gICAgICAgICAgICA8L1RpbWVJdGVtPilcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcm93czsgXG4gICAgICB9XG5cbiAgICAgIFxuICAgICAgZXhwb3J0IGZ1bmN0aW9uIGdldEl0ZW1zQnlUeXBlKHRhYmlkOiBzdHJpbmcpIHtcbiAgICAgICAgbGV0IHJvd3MgPSBbXVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmICh0YWJpZCA9PT0gZGF0YVtpXS50YWcpIHtcbiAgICAgICAgICAgICAgICByb3dzLnB1c2goPFRpbWVJdGVtXG4gICAgICAgICAgICAgICAgICAgIGtleT17aX1cbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9e2RhdGFbaV0udGl0bGV9XG4gICAgICAgICAgICAgICAgICAgIHBpYz17ZGF0YVtpXS5waWN9XG4gICAgICAgICAgICAgICAgICAgIHRhZz17ZGF0YVtpXS50YWd9XG4gICAgICAgICAgICAgICAgICAgIGF1dGhvcj17ZGF0YVtpXS5hdXRob3J9XG4gICAgICAgICAgICAgICAgICAgIHRhYmlkPXtkYXRhW2ldLnRhYmlkfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2RhdGFbaV0udGV4dH1cbiAgICAgICAgICAgICAgICA8L1RpbWVJdGVtPilcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcm93czsgXG4gICAgfVxuICAgIFxuICAgICAgXG4gICAgICBsZXQgZGF0YSA9IFtcbiAgICAgICAge1xuICAgICAgICB0aXRsZTogXCJGaXJzdCBJbXByZXNzaW9uXCIsXG4gICAgICAgIHBpYzogXCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9wbGFjZWhvbGRlcnMvcGxhY2VoaWxkZXJwZXJzb24uanBlZ1wiLFxuICAgICAgICB0YWc6IFwiUGF0aWVudFwiLFxuICAgICAgICBhdXRob3I6IFwiTWF4IEJlY2ttYW5uXCIsXG4gICAgICAgIHRhYmlkOiBcIkludk1heDFcIixcbiAgICAgICAgdGV4dDogXCIgXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICB0aXRsZTogXCJQaHlzaW90aGVyYXBpZVwiICxcbiAgICAgICAgcGljOiBcImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3BsYWNlaG9sZGVycy9wbGFjZWhpbGRlcnBlcnNvbi5qcGVnXCIsXG4gICAgICAgIHRhZzogIFwiTWVkaWNhbCBQcm9mZXNzaW9uYWxcIixcbiAgICAgICAgYXV0aG9yOiBcIkthdHJpbiBXZXN0aG9mZlwiLFxuICAgICAgICB0YWJpZDogXCJJbnZXZXN0aG9mZlwiLFxuICAgICAgICB0ZXh0OiBcIlRleHRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRpdGxlOiBcIlwiICxcbiAgICAgICAgICBwaWM6IFwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvcGxhY2Vob2xkZXJzL3BsYWNlaGlsZGVycGVyc29uLmpwZWdcIixcbiAgICAgICAgICB0YWc6ICBcIk1lZGljYWwgUHJvZmVzc2lvbmFsXCIsXG4gICAgICAgICAgYXV0aG9yOiBcIkNyaXN0aWFuLUdhYnJpZWwgT2xhcml1XCIsXG4gICAgICAgICAgdGFiaWQ6IFwiSW52T2xhcml1XCIsXG4gICAgICAgICAgdGV4dDogXCJUZXh0XCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0aXRsZTogXCJcIiAsXG4gICAgICAgICAgcGljOiBcImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3BsYWNlaG9sZGVycy9wbGFjZWhpbGRlcnBlcnNvbi5qcGVnXCIsXG4gICAgICAgICAgdGFnOiAgXCJQYXRpZW50XCIsXG4gICAgICAgICAgYXV0aG9yOiBcIkp1bGlhXCIsXG4gICAgICAgICAgdGFiaWQ6IFwiSW52SnVsaWFcIixcbiAgICAgICAgICB0ZXh0OiBcIlRleHRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRpdGxlOiBcIlwiICxcbiAgICAgICAgICBwaWM6IFwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvcGxhY2Vob2xkZXJzL3BsYWNlaGlsZGVycGVyc29uLmpwZWdcIixcbiAgICAgICAgICB0YWc6ICBcIkFjYWRlbWlhXCIsXG4gICAgICAgICAgYXV0aG9yOiBcIk5pY29sZSBGcmllZGxlaW5cIixcbiAgICAgICAgICB0YWJpZDogXCJJbnZGcmllZGxlaW5cIixcbiAgICAgICAgICB0ZXh0OiBcIlRleHRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRpdGxlOiBcIkFwcHJvYWNoPz9cIiAsXG4gICAgICAgICAgcGljOiBcImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3BsYWNlaG9sZGVycy9wbGFjZWhpbGRlcnBlcnNvbi5qcGVnXCIsXG4gICAgICAgICAgdGFnOiAgXCJBY2FkZW1pYVwiLFxuICAgICAgICAgIGF1dGhvcjogXCJQcm9mLiBEci4gU3RlZmFuIEhhbW1lclwiLFxuICAgICAgICAgIHRhYmlkOiBcIkludkhhbW1lclwiLFxuICAgICAgICAgIHRleHQ6IFwiVGV4dFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0aXRsZTogXCJBcHByb2FjaD8/XCIgLFxuICAgICAgICAgICAgcGljOiBcImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3BsYWNlaG9sZGVycy9wbGFjZWhpbGRlcnBlcnNvbi5qcGVnXCIsXG4gICAgICAgICAgICB0YWc6ICBcIkFjYWRlbWlhXCIsXG4gICAgICAgICAgICBhdXRob3I6IFwiUHJvZi4gRHIuIENocmlzdG9waCBXZWJlclwiLFxuICAgICAgICAgICAgdGFiaWQ6IFwiSW52V2ViZXJcIixcbiAgICAgICAgICAgIHRleHQ6IFwiVGV4dFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6IFwiXCIgLFxuICAgICAgICAgICAgICBwaWM6IFwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvcGxhY2Vob2xkZXJzL3BsYWNlaGlsZGVycGVyc29uLmpwZWdcIixcbiAgICAgICAgICAgICAgdGFnOiAgXCJBY2FkZW1pYVwiLFxuICAgICAgICAgICAgICBhdXRob3I6IFwiTWF0dGlqcyBCdWxjYWVuXCIsXG4gICAgICAgICAgICAgIHRhYmlkOiBcIkludkJ1bGNhZW4xXCIsXG4gICAgICAgICAgICAgIHRleHQ6IFwiVGV4dFwiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGl0bGU6IFwiRmlyc3QgU3RlcHMgaW4gTE5QXCIgLFxuICAgICAgICAgIHBpYzogXCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9wbGFjZWhvbGRlcnMvcGxhY2VoaWxkZXJwZXJzb24uanBlZ1wiLFxuICAgICAgICAgIHRhZzogIFwiQWNhZGVtaWFcIixcbiAgICAgICAgICBhdXRob3I6IFwiRHIuIEthdGhhcmluYSBLb2xvbmtvXCIsXG4gICAgICAgICAgdGFiaWQ6IFwiSW52S29sb25rb1wiLFxuICAgICAgICAgIHRleHQ6IFwiVGV4dFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGl0bGU6IFwiUGh5c2lvdGhlcmFwaWUgbGl2ZVwiICxcbiAgICAgICAgICBwaWM6IFwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvcGxhY2Vob2xkZXJzL3BsYWNlaGlsZGVycGVyc29uLmpwZWdcIixcbiAgICAgICAgICB0YWc6ICBcIk1lZGljYWwgUHJvZmVzc2lvbmFsXCIsXG4gICAgICAgICAgYXV0aG9yOiBcIkthdHJpbiBXZXN0aG9mZlwiLFxuICAgICAgICAgIHRhYmlkOiBcIkJlc1dlc3Rob2ZmXCIsXG4gICAgICAgICAgdGV4dDogXCJUZXh0XCIsXG4gICAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRpdGxlOiBcIkh5Z2llbmUgQ29uY2VwdFwiLFxuICAgICAgICAgIHBpYzogXCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9wbGFjZWhvbGRlcnMvcGxhY2VoaWxkZXJwZXJzb24uanBlZ1wiLFxuICAgICAgICAgIHRhZzogXCJQYXRpZW50XCIsXG4gICAgICAgICAgYXV0aG9yOiBcIk1heCBCZWNrbWFublwiLFxuICAgICAgICAgIHRhYmlkOiBcIkludk1heDJcIixcbiAgICAgICAgICB0ZXh0OiBcIiBcIlxuICAgICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0aXRsZTogXCJcIiAsXG4gICAgICAgICAgcGljOiBcImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3BsYWNlaG9sZGVycy9wbGFjZWhpbGRlcnBlcnNvbi5qcGVnXCIsXG4gICAgICAgICAgdGFnOiAgXCJQYXRpZW50XCIsXG4gICAgICAgICAgYXV0aG9yOiBcIkpvc2h1YVwiLFxuICAgICAgICAgIHRhYmlkOiBcIkludkpvc2h1YVwiLFxuICAgICAgICAgIHRleHQ6IFwiVGV4dFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGl0bGU6IFwiXCIgLFxuICAgICAgICAgIHBpYzogXCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9wbGFjZWhvbGRlcnMvcGxhY2VoaWxkZXJwZXJzb24uanBlZ1wiLFxuICAgICAgICAgIHRhZzogIFwiSW5kdXN0cnlcIixcbiAgICAgICAgICBhdXRob3I6IFwiUk5hbGVcIixcbiAgICAgICAgICB0YWJpZDogXCJJbnZSTmFsZVwiLFxuICAgICAgICAgIHRleHQ6IFwiVGV4dFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGl0bGU6IFwiXCIgLFxuICAgICAgICAgIHBpYzogXCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9wbGFjZWhvbGRlcnMvcGxhY2VoaWxkZXJwZXJzb24uanBlZ1wiLFxuICAgICAgICAgIHRhZzogIFwiQWNhZGVtaWFcIixcbiAgICAgICAgICBhdXRob3I6IFwiTWF0dGlqcyBCdWxjYWVuXCIsXG4gICAgICAgICAgdGFiaWQ6IFwiSW52QnVsY2FlbjJcIixcbiAgICAgICAgICB0ZXh0OiBcIlRleHRcIixcbiAgICAgICAgICB9XG4gICAgICAgIF0iLCAiXG5pbXBvcnQgeyBvcGVuSXQgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9CdXR0b25zXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBFbmdpbmVlcmluZygpIHtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBtdC00XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgICAgIDxici8+XG4gICAgICAgICAgICA8YnIvPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtM1wiPlxuICAgICAgICAgICAgICA8RW5naW5lZXJpbmdDeWNsZVRhYi8+XG4gICAgICAgICAgICAgXG4gICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImN5Y2xldGFiXCIgaWQ9XCJvdmVydmlld1wiIHN0eWxlPXt7ZGlzcGxheTogXCJibG9ja1wifX0+XG4gICAgICAgICAgICAgPGgzPk92ZXJ2aWV3PC9oMz5cbiAgICAgICAgICAgICA8aHIvPlxuICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY3ljbGV0YWJcIiBpZD1cImxlYXJuaW5nXCIgc3R5bGU9e3tkaXNwbGF5OiBcIm5vbmVcIn19PlxuICAgICAgICAgICAgIDxoMz5MZWFybmluZzwvaDM+XG4gICAgICAgICAgICAgPGhyLz5cbiAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImN5Y2xldGFiXCIgaWQ9XCJ0ZXN0aW5nXCIgc3R5bGU9e3tkaXNwbGF5OiBcIm5vbmVcIn19PlxuICAgICAgICAgICAgIDxoMz5UZXN0aW5nPC9oMz5cbiAgICAgICAgICAgICA8aHIvPlxuICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY3ljbGV0YWJcIiBpZD1cImJ1aWxkaW5nXCIgc3R5bGU9e3tkaXNwbGF5OiBcIm5vbmVcIn19PlxuICAgICAgICAgICAgIDxoMz5CdWlsZGluZzwvaDM+XG4gICAgICAgICAgICAgPGhyLz5cbiAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImN5Y2xldGFiXCIgaWQ9XCJkZXNpZ25pbmdcIiBzdHlsZT17e2Rpc3BsYXk6IFwibm9uZVwifX0+XG4gICAgICAgICAgICAgPGgzPkRlc2lnbmluZzwvaDM+XG4gICAgICAgICAgICAgPGhyLz5cbiAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8c2VjdGlvbiBpZD1cIlJOQWJpbmRpbmdwcm90ZWluXCI+XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgICAgPHNlY3Rpb24gaWQ9XCJSTkFiaW5kaW5ncHJvdGVpblwiPlxuICAgICAgICAgICAgICBcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICAgIDxzZWN0aW9uIGlkPVwiUk5BYmluZGluZ3Byb3RlaW5cIj5cbiAgICAgICAgICAgICAgXG4gICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgICA8c2VjdGlvbiBpZD1cIlJOQWJpbmRpbmdwcm90ZWluXCI+XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgIDwvZGl2PlxuICBcbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9IFxuXG4gIFxuXG5mdW5jdGlvbiBFbmdpbmVlcmluZ0N5Y2xlVGFiKCl7XG4gICAgcmV0dXJuKFxuIDxzdmcgY2xhc3NOYW1lPVwicm90YXRlLWxpbmVhci1pbmZpbml0ZVwiXG4gICAgd2lkdGg9XCIxMDAlXCJcbiAgICBoZWlnaHQ9XCIxMDAlXCJcbiAgICB2aWV3Qm94PVwiMCAwIDEzMyAxMzNcIlxuICAgIGlkPVwic3ZnMjVcIlxuICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgIDxkZWZzXG4gICAgICBpZD1cImRlZnMxXCI+XG4gICAgIDwvZGVmcz5cbiAgIDxnXG4gICAgICBpZD1cIkxheWVyXzJcIlxuICAgICAgZGF0YS1uYW1lPVwiTGF5ZXIgMlwiXG4gICAgICBzdHlsZT17e3N0cm9rZVdpZHRoOlwiNlwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIn19PlxuICAgICA8Z1xuICAgICAgICBpZD1cIlBsYXNtaWRcIlxuICAgICAgICBzdHlsZT17e3N0cm9rZVdpZHRoOlwiNlwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIn19PlxuICAgICAgIDxnXG4gICAgICAgICAgaWQ9XCJnMjVcIlxuICAgICAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSg3LjUwMDk3OCwzLjA1MDQ4OTgpXCI+XG4gICAgICAgICAgICA8YSAgdHlwZW9mPVwiYnV0dG9uXCIgY2xhc3NOYW1lPVwic3ZnLWJ1dHRvblwiIG9uQ2xpY2s9e29wZW5JdCh7aXQ6IFwiZGVzaWduaW5nXCJ9KX0+XG4gICAgICAgICA8cGF0aFxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiY2xzLTdcIlxuICAgICAgICAgICAgZD1cIm0gNDIuMDUsMTE1LjU5IGMgMjcuNzcsOS4xOSA1Ny44MywtNC43OSA2OS43NiwtMzIuMjNcIlxuICAgICAgICAgICAgIGlkPVwicGF0aDIyXCJcbiAgICAgICAgICAgIHN0eWxlPXt7c3Ryb2tlOlwiI2Y0Y2MxZVwiLHN0cm9rZVdpZHRoOlwiMTVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIn19IC8+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgPC9nPlxuICAgICAgIDxnXG4gICAgICAgICAgaWQ9XCJnMjZcIlxuICAgICAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSg4LjAwMTk2OTksMi44NDE4MjIzKVwiXG4gICAgICAgICAgc3R5bGU9e3tzdHJva2VXaWR0aDpcIjZcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCJ9fT4gIFxuICAgICAgICAgPHBvbHlnb25cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImNscy0xM1wiXG4gICAgICAgICAgICBwb2ludHM9XCIxMTIuMDcsODMuMzYgMTEwLjk0LDc2LjI3IDExNy42NSw3OC44NCBcIlxuICAgICAgICAgICAgIGlkPVwicG9seWdvbjI1XCJcbiAgICAgICAgICAgIHN0eWxlPXt7ZmlsbDpcIiM4NTBmNzhcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2VXaWR0aDpcIjZcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCJ9fVxuICAgICAgICAgICAgdHJhbnNmb3JtPVwibWF0cml4KDIuOTgwNjI1OSwwLDAsMi45ODA2MjU5LC0yMjUuNDM3MjIsLTE1Ni40NTEyMylcIiAvPlxuICAgICAgICAgICAgPGEgIHR5cGVvZj1cImJ1dHRvblwiIGNsYXNzTmFtZT1cInN2Zy1idXR0b25cIiBvbkNsaWNrPXtvcGVuSXQoe2l0OiBcImxlYXJuaW5nXCJ9KX0+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjbHMtMTJcIlxuICAgICAgICAgICAgICBkPVwiTSAxMTQsNzguNTUgQyAxMjMuNDUsNTAuODYgMTEwLDIwLjc1IDgyLjY2LDguNlwiXG4gICAgICAgICAgICAgIGlkPVwicGF0aDI1XCJcbiAgICAgICAgICAgICAgc3R5bGU9e3tzdHJva2VXaWR0aDpcIjE1XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZTpcIiM4NTBmNzhcIixzdHJva2VPcGFjaXR5OlwiMVwifX0gLz4gXG4gICAgICAgICAgIFxuICAgICAgICAgPHRleHRcbiAgICAgICAgICAgIHN0eWxlPXt7Zm9udFNpemU6XCIxNy4zMzMzcHhcIixsaW5lSGVpZ2h0OlwiMFwiLGZvbnRGYW1pbHk6XCJBcmlhbFwiLGZpbGw6XCIjMDAwMDAwXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwibm9uZVwiLHN0cm9rZVdpZHRoOlwiMTVcIixzdHJva2VMaW5lY2FwOlwicm91bmRcIixzdHJva2VMaW5lam9pbjpcInJvdW5kXCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgICAgICBpZD1cInRleHQzMVwiXG4gICAgICAgICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoNS42OTAyMTk0LC0wLjExNTUxODgzKVwiPjx0ZXh0UGF0aFxuICAgICAgICAgICAgIHhsaW5rSHJlZj1cIiNwYXRoMjVcIlxuICAgICAgICAgICAgICBpZD1cInRleHRQYXRoMzNcIj5MZWFybjx0c3BhblxuICAgICAgICAgIGlkPVwidHNwYW4zMVwiIC8+PC90ZXh0UGF0aD48L3RleHQ+ICA8L2E+XG4gICAgICAgPC9nPlxuICAgICAgIDxnXG4gICAgICAgICAgaWQ9XCJnMjdcIlxuICAgICAgICAgIHN0eWxlPXt7c3Ryb2tlV2lkdGg6XCI2XCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwifX1cbiAgICAgICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoOC4wMDE5Njk5LDIuODQxODIyMylcIj5cbiAgICAgICAgIDxwb2x5Z29uXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJjbHMtMTBcIlxuICAgICAgICAgICAgIHBvaW50cz1cIjYyLjUzLDcuMTIgNjMuNDcsMCA2OS4xNyw0LjM3IFwiXG4gICAgICAgICAgICBpZD1cInBvbHlnb24yM1wiXG4gICAgICAgICAgICAgdHJhbnNmb3JtPVwibWF0cml4KDIuNzcxMjI2MywwLjU4MTQ3NTQ4LC0wLjU4MTQ3NTQ4LDIuNzcxMjI2MywtOTYuNTg3ODI4LC0zOS43NDgwNzEpXCJcbiAgICAgICAgICAgIHN0eWxlPXt7ZmlsbDpcIiNhMGE3ZjNcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2VXaWR0aDpcIjZcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCJ9fVxuICAgICAgICAgICAgaW5rc2NhcGU6dHJhbnNmb3JtLWNlbnRlci14PVwiMy42MTczNzUxXCJcbiAgICAgICAgICAgIGlua3NjYXBlOnRyYW5zZm9ybS1jZW50ZXIteT1cIjUuMTk3ODg1MlwiIC8+XG4gICAgICAgICAgICA8YSAgdHlwZW9mPVwiYnV0dG9uXCIgY2xhc3NOYW1lPVwic3ZnLWJ1dHRvblwiIG9uQ2xpY2s9e29wZW5JdCh7aXQ6IFwidGVzdGluZ1wifSl9PlxuICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImNscy05XCJcbiAgICAgICAgICAgIGQ9XCJNIDc4LjU5OTExMSw3LjU0NjgyNjQgQyA0My44MjAzNDYsLTIuNjE3NzU4OCAxMy45NTY3NDYsMTQuMjg2MDQ2IDQuMjEwNjI4MSw0Ni4zNjg3NDlcIlxuICAgICAgICAgICAgaWQ9XCJwYXRoMjNcIlxuICAgICAgICAgICAgc3R5bGU9e3tzdHJva2U6XCIjYTBhN2YzXCIsc3Ryb2tlV2lkdGg6XCIxNVwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIixzdHJva2VPcGFjaXR5OlwiMVwifX0gLz5cbiAgICAgICAgIDx0ZXh0XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHN0eWxlPXt7Zm9udFNpemU6XCIxNy4zMzMzcHhcIixsaW5lSGVpZ2h0OlwiMFwiLGZvbnRGYW1pbHk6XCJBcmlhbFwiLGZpbGw6XCIjMDAwMDAwXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwibm9uZVwiLHN0cm9rZVdpZHRoOlwiNlwiLHN0cm9rZUxpbmVjYXA6XCJyb3VuZFwiLHN0cm9rZUxpbmVqb2luOlwicm91bmRcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICAgICAgIGlkPVwidGV4dDI4XCJcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKC0wLjAzMDIzNTA2LC01Ljk2MDIzMzYpXCI+PHRleHRQYXRoXG4gICAgICAgICAgICB4bGlua0hyZWY9XCIjcGF0aDIzXCJcbiAgICAgICAgICAgICBpZD1cInRleHRQYXRoMjhcIj5UZXN0PC90ZXh0UGF0aD48L3RleHQ+IDwvYT5cbiAgICAgICA8L2c+XG4gICAgICAgPGdcbiAgICAgICAgICBpZD1cImcyOFwiXG4gICAgICAgICAgc3R5bGU9e3tzdHJva2VXaWR0aDpcIjZcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCJ9fVxuICAgICAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSg4LjAwMTk2OTksMi44NDE4MjIzKVwiPlxuICAgICAgICAgPHBvbHlnb25cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImNscy0xM1wiXG4gICAgICAgICAgICBwb2ludHM9XCIxMTcuNjUsNzguODQgMTEyLjA3LDgzLjM2IDExMC45NCw3Ni4yNyBcIlxuICAgICAgICAgICAgIGlkPVwicG9seWdvbjI1LTZcIlxuICAgICAgICAgICAgc3R5bGU9e3tmaWxsOlwiI2Y1N2QyMlwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZVdpZHRoOlwiNlwiLHN0cm9rZURhc2hhcnJheTpcIm5vbmVcIn19XG4gICAgICAgICAgICB0cmFuc2Zvcm09XCJtYXRyaXgoLTIuOTY1MDMxNCwwLjMwNDQ5ODkzLC0wLjMwNDQ5ODkzLC0yLjk2NTAzMTQsMzY0Ljg0MDY3LDI0OS4yODI0OSlcIiAvPlxuICAgICAgICAgICAgPGEgIHR5cGVvZj1cImJ1dHRvblwiIGNsYXNzTmFtZT1cInN2Zy1idXR0b25cIiBvbkNsaWNrPXtvcGVuSXQoe2l0OiBcImJ1aWxkaW5nXCJ9KX0+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImNscy0xMVwiXG4gICAgICAgICAgICBkPVwiTSAyLjY2NTk3NTMsNTAuOTUzNTA1IEMgLTIuMDk1NjY5NCw3Mi43Mjc5MTUgMTAuOTM2ODY2LDEwMi45NDI3MyAzNi42NTYyMzQsMTEzLjYyODM0XCJcbiAgICAgICAgICAgICBpZD1cInBhdGgyNFwiXG4gICAgICAgICAgICBzdHlsZT17e3N0cm9rZVdpZHRoOlwiMTVcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlOlwiI2Y1N2QyMlwiLHN0cm9rZU9wYWNpdHk6XCIxXCJ9fSAvPlxuICAgICAgICAgPHRleHRcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgc3R5bGU9e3tmb250U2l6ZTpcIjE3LjMzMzNweFwiLGxpbmVIZWlnaHQ6XCIwXCIsZm9udEZhbWlseTpcIkFyaWFsXCIsZmlsbDpcIiMwMDAwMDBcIixmaWxsT3BhY2l0eTpcIjFcIixzdHJva2U6XCJub25lXCIsc3Ryb2tlV2lkdGg6XCIxNVwiLHN0cm9rZUxpbmVjYXA6XCJyb3VuZFwiLHN0cm9rZUxpbmVqb2luOlwicm91bmRcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsc3Ryb2tlT3BhY2l0eTpcIjFcIixwYWludE9yZGVyOlwiZmlsbCBtYXJrZXJzIHN0cm9rZVwifX1cbiAgICAgICAgICAgIGlkPVwidGV4dDMyXCJcbiAgICAgICAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgtNS43MTEwMzE1LDEuNzQ1MzI0MylcIj48dGV4dFBhdGhcbiAgICAgICAgICAgICB4bGlua0hyZWY9XCIjcGF0aDI0XCJcbiAgICAgICAgICAgICAgaWQ9XCJ0ZXh0UGF0aDMyXCI+QnVpbGQ8dHNwYW5cbiAgICBpZD1cInRzcGFuMzJcIiAvPjwvdGV4dFBhdGg+PC90ZXh0PiA8L2E+XG4gICAgICAgPC9nPlxuICAgICAgIDxwb2x5Z29uXG4gICAgICAgICAgY2xhc3NOYW1lPVwiY2xzLThcIlxuICAgICAgICAgIHBvaW50cz1cIjM3LjIyLDExMy43NCA0NC4zLDExMi41NiA0MS43OCwxMTkuMjggXCJcbiAgICAgICAgICBpZD1cInBvbHlnb24yMlwiXG4gICAgICAgICAgc3R5bGU9e3tzdHJva2VXaWR0aDpcIjZcIixzdHJva2VEYXNoYXJyYXk6XCJub25lXCIsZmlsbDpcIiNmNGNjMWVcIixmaWxsT3BhY2l0eTpcIjFcIn19XG4gICAgICAgICAgdHJhbnNmb3JtPVwibWF0cml4KDIuODI0ODU4OCwwLDAsMi44MjQ4NTg4LC02Ny43OTc3ODEsLTIwNy45Njk3NylcIiAvPlxuICAgICAgICAgIDxhICB0eXBlb2Y9XCJidXR0b25cIiBjbGFzc05hbWU9XCJzdmctYnV0dG9uXCIgb25DbGljaz17b3Blbkl0KHtpdDogXCJkZXNpZ25pbmdcIn0pfT5cbiAgICAgICA8dGV4dFxuICAgICAgICAgIFxuICAgICAgICAgIHN0eWxlPXt7Zm9udFNpemU6XCIxNy4zMzMzcHhcIixsaW5lSGVpZ2h0OlwiMFwiLGZvbnRGYW1pbHk6XCJBcmlhbFwiLGZpbGw6XCIjMDAwMDAwXCIsZmlsbE9wYWNpdHk6XCIxXCIsc3Ryb2tlOlwibm9uZVwiLHN0cm9rZVdpZHRoOlwiMTVcIixzdHJva2VMaW5lY2FwOlwicm91bmRcIixzdHJva2VMaW5lam9pbjpcInJvdW5kXCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHN0cm9rZU9wYWNpdHk6XCIxXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgICAgICAgaWQ9XCJ0ZXh0MjlcIlxuICAgICAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSg4LjQwNTI5MjEsOC44NTUzMzM0KVwiPjx0ZXh0UGF0aFxuICAgICAgICAgIHhsaW5rSHJlZj1cIiNwYXRoMjJcIlxuICAgICAgICAgIGlkPVwidGV4dFBhdGgzNFwiPkRlc2lnbjx0c3BhblxuICAgICAgICAgIGlkPVwidHNwYW4yOVwiIC8+PC90ZXh0UGF0aD48L3RleHQ+IDwvYT5cbiAgICAgPC9nPlxuICAgPC9nPlxuICAgPGEgIHR5cGVvZj1cImJ1dHRvblwiIGNsYXNzTmFtZT1cInN2Zy1idXR0b25cIiBvbkNsaWNrPXtvcGVuSXQoe2l0OiBcIm92ZXJ2aWV3XCJ9KX0+XG4gICA8Y2lyY2xlXG4gICAgIHN0eWxlPXt7b3BhY2l0eTpcIjAuODVcIixmaWxsOlwiI2UyZGFkN1wiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZVdpZHRoOlwiMTVcIixzdHJva2VMaW5lY2FwOlwicm91bmRcIixzdHJva2VMaW5lam9pbjpcInJvdW5kXCIscGFpbnRPcmRlcjpcImZpbGwgbWFya2VycyBzdHJva2VcIn19XG4gICAgIGlkPVwicGF0aDFcIlxuICAgICBjeD1cIjY3LjkxNjIxNFwiXG4gICAgIGN5PVwiNjMuMjE0MDA1XCJcbiAgICAgcj1cIjIwXCIgLz5cbiAgPHRleHRcbiAgICAgc3R5bGU9e3tmb250U2l6ZTpcIjhweFwiLGxpbmVIZWlnaHQ6XCIwXCIsZm9udEZhbWlseTpcIkFyaWFsXCIsb3BhY2l0eTpcIjAuODVcIixmaWxsOlwiIzAwMDAwMFwiLGZpbGxPcGFjaXR5OlwiMVwiLHN0cm9rZVdpZHRoOlwiMTVcIixzdHJva2VMaW5lY2FwOlwicm91bmRcIixzdHJva2VMaW5lam9pbjpcInJvdW5kXCIsc3Ryb2tlRGFzaGFycmF5Olwibm9uZVwiLHBhaW50T3JkZXI6XCJmaWxsIG1hcmtlcnMgc3Ryb2tlXCJ9fVxuICAgICB4PVwiNTAuOTI5ODI1XCJcbiAgICAgeT1cIjY2LjY3NjY3NFwiXG4gICAgIGlkPVwidGV4dDFcIj5cbiAgICAgIDx0c3BhblxuICAgICAgIGlkPVwidHNwYW4xXCJcbiAgICAgICB4PVwiNTAuOTI5ODI1XCJcbiAgICAgICB5PVwiNjYuNjc2Njc0XCJcbiAgICAgICBzdHlsZT17e2ZvbnRTaXplOlwiOHB4XCJ9fT5PdmVydmlldzwvdHNwYW4+PC90ZXh0PiBcbiAgICAgICA8L2E+XG5cbiA8L3N2Zz5cbiBcbiAgICApXG4gfVxuIiwgIlxuXG5leHBvcnQgZnVuY3Rpb24gRXhwZXJpbWVudHMoKSB7XG4gIFxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBtdC00XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLThcIj5cbiAgICAgICAgICBcbiAgICAgICAgPC9kaXY+XG5cbiAgICAgIDwvZGl2PlxuICAgIDwvPlxuICApO1xufVxuIiwgIlxuXG5leHBvcnQgZnVuY3Rpb24gTm90ZWJvb2soKSB7XG4gXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IG10LTRcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOFwiPlxuICAgICAgICAgIFxuICAgICAgICA8L2Rpdj5cblxuICAgICAgPC9kaXY+XG4gICAgPC8+XG4gICk7XG59XG4iLCAiXG5cbmV4cG9ydCBmdW5jdGlvbiBSZXN1bHRzKCkge1xuXG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgbXQtNFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy01XCI+XG4gICAgICAgICAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IG10LTRcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOFwiPlxuICAgICAgICAgIFxuICAgICAgICA8L2Rpdj5cblxuICAgICAgPC9kaXY+XG4gICAgPC8+XG4gICk7XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIFNhZmV0eSgpIHtcbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgbXQtNFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IG10LTRcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgIFxuXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IG10LTRcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOFwiPlxuICAgICAgICAgIFxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNFwiPlxuICAgICAgICAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC8+XG4gICk7XG59XG4iLCAiLy8gVGhlIG1haW4gdGFiIGhhcyB0byBiZSBnaXZlbiBkaXNwbGF5OiBibG9jazsgdmlhIGlkIGNzcyBvciBiZSBnaXZlbiB0aGUgaWQgXCJGaXJzdFwiXG5leHBvcnQgZnVuY3Rpb24gQnV0dG9uUm93VGFicyh7ZGF0YSwgY2xhfToge2RhdGE6IEFycmF5PFRhYkRhdGVuc2F0ej4sIGNsYTogc3RyaW5nfSkge1xuICAgIGxldCByb3dzID0gW11cbiAgICBmb3IgKCBsZXQgaSA9IDA7ICBpIDwgZGF0YS5sZW5ndGg7IGkrKyApe1xuICAgICAgcm93cy5wdXNoKFxuICAgICAgICA8ZGl2IGlkPXtkYXRhW2ldLmNzc25hbWV9IGNsYXNzTmFtZT17Y2xhfT5cbiAgICAgICAgICAgIHtkYXRhW2ldLm5vZGV9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gcm93czsgXG4gIH1cbiAgZXhwb3J0IGZ1bmN0aW9uIEJGSFN0eWxlVGFicyh7ZGF0YSwgY2xhfToge2RhdGE6IEFycmF5PE5vZGVEYXRlbnNhdHo+LCBjbGE6IHN0cmluZ30pIHtcbiAgICBsZXQgcm93cyA9IFtdXG4gICAgZm9yICggbGV0IGkgPSAwOyAgaSA8IGRhdGEubGVuZ3RoOyBpKysgKXtcbiAgICAgIGlmIChkYXRhW2ldLmNzc25hbWUgPT09IFwidGltZWxpbmVcIil7XG4gICAgICAgIHJvd3MucHVzaChcbiAgICAgICAgICA8ZGl2IGlkPXtkYXRhW2ldLmNzc25hbWV9IGNsYXNzTmFtZT17Y2xhfSBzdHlsZT17e2Rpc3BsYXk6IFwiYmxvY2tcIn19PlxuICAgICAgICAgICAgICB7ZGF0YVtpXS5ub2RlfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApXG4gICAgICB9XG4gICAgICBlbHNle1xuICAgICAgcm93cy5wdXNoKFxuICAgICAgICA8ZGl2IGlkPXtkYXRhW2ldLmNzc25hbWV9IGNsYXNzTmFtZT17Y2xhfT5cbiAgICAgICAgICAgIHtkYXRhW2ldLm5vZGV9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcm93czsgXG4gIH0iLCAiXG5cbmV4cG9ydCBmdW5jdGlvbiBCbG9ja1F1b3RlKHt0ZXh0LCBjaXRlfToge3RleHQ6IHN0cmluZzsgY2l0ZTogc3RyaW5nfSl7XG4gICAgcmV0dXJuKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJsb2NrcXVvdGUtd3JhcHBlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJibG9ja3F1b3RlXCI+XG4gICAgICAgICAgICAgICAgPGgyPlxuICAgICAgICAgICAgICAgICAgICB7dGV4dH1cbiAgICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgICAgIDxoND48ZW0+e2NpdGV9PC9lbT48L2g0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBCbG9ja1F1b3RlQih7dGV4dCwgY2l0ZSwgaWR9OiB7dGV4dDogc3RyaW5nOyBjaXRlOiBzdHJpbmcsIGlkPzogc3RyaW5nfSl7XG4gICAgaWYgKGlkKXtcbiAgICAgICAgbGV0IGggPSBcIiNcIiArIHtpZH1cbiAgICAgICAgcmV0dXJuKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJibG9ja3F1b3RlLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJsb2NrcXVvdGV4XCI+XG4gICAgICAgICAgICAgICAgICAgIDxoMj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt0ZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgICAgICAgICA8aDQ+PGVtPntjaXRlfTwvZW0+IDxhIGhyZWY9e2h9PjxzdXA+e2lkfTwvc3VwPjwvYT48L2g0PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICkgIFxuICAgIH1cbiAgICBlbHNle1xuICAgICAgICByZXR1cm4oXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJsb2NrcXVvdGUtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmxvY2txdW90ZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGgyPlxuICAgICAgICAgICAgICAgICAgICAgICAge3RleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICAgICAgICAgIDxoND48ZW0+e2NpdGV9PC9lbT48L2g0PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApXG4gICAgfVxuICAgIFxufVxuXG5cbi8qIDxzcGFuPldpbnN0b24gQ2h1cmNoaWxsPC9zcGFuPlxuICA8YmxvY2txdW90ZT5cbiAgICA8cD48aT4mbGRxdW87U3VjY2VzcyBjb25zaXN0cyBvZiBnb2luZyBmcm9tIGZhaWx1cmUgdG8gZmFpbHVyZSB3aXRob3V0IGxvc3Mgb2YgZW50aHVzaWFzbS4mcmRxdW87IDwvaT48L3A+XG4gIDwvYmxvY2txdW90ZT4gKi8iLCAiLyogXG4tIHNlaXR3XHUwMEU0cnRzIFxuLSBtaXQgRmFyYmVuIHVuZCBUZXh0IGFuemVpZ2VuIHdvenUgZGllIGdlaFx1MDBGNnJlbiBcbi0gYmVpIHNob3cgbW9yZSB1bnRlbiBkcnVudGVyIFRhYnMgXHUwMEY2ZmZuZW5cbi0gd2VubiBtYW4gYXVmIGRpZSBQZXJzb24ga2xpY2t0IHNvbGwgZXMgSW5mb3MgXHUwMEZDYmVyIGRpZSBQZXJzb24gYW56ZWlnZW4gXG4tIGthbm4gbW4gZGllIEthcnRlbiBuYWNoIExpbmtzIHVuZCBuYWNoIHJlY2h0cyBhdXN3ZWl0ZW4gemIgZlx1MDBGQ3IgTWVociBpbmZvcyBmXHUwMEZDciBkaWUgUGVyc29uPyBcbi0gTWVpbGVuc3RlaW5lIGFscyBQb3B1cFxuLSBGaWx0ZXIgbWl0IEhhbGJrcmVpc0RpbmcgYWxzIFRhYnN0ZXVlcnVuZyB8IEVpbnRlaWx1bmcgbmFjaCBCZXJlaWNoIChBY2FkZW1pYSwgSW5zdXN0cnksIC4uLiwgdW5kIGF1Y2ggbmFjaCBEZWxpdmVyeSB1bmQgTWVjaGFuaXNtKSBcbi0gRE5BIFN0cmFuZyBhbHMgVGltZWxpbmU/IFxuKi9cblxuXG4vKiAgICAgICAgICA8YnIvPlxuICAgICAgICAgICAgPGgzPk5hbWU8L2gzPlxuICAgICAgICAgICAgPGhyLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0yXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInQtdGFnIFRhZ1wiPlxuICAgICAgICAgICAgICAgIEJlcnVmXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5PcmlnaW5hbCBsYW5ndWFnZTogR2VybWFuPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgPEJsb2NrUXVvdGVCIHRleHQ9XCJRdW90ZVwiIGNpdGU9XCIuXCI+PC9CbG9ja1F1b3RlQj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTNcIj5cbiAgICAgICAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cIm1pZGRsZSBzZWNocHJvXCIgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvcGxhY2Vob2xkZXJzL3BsYWNlaGlsZGVycGVyc29uLmpwZWdcIi8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aDQ+QWltIG9mIGNvbnRhY3Q8L2g0PlxuICAgICAgICAgICAgPHA+PC9wPlxuICAgICAgICAgICAgPGg0Pkluc2lnaHRzPC9oND5cbiAgICAgICAgICAgIDxwPjwvcD5cbiAgICAgICAgICAgIDxoND5DbGFyaWZpY2F0aW9uPC9oND5cbiAgICAgICAgICAgIDxwPjwvcD5cbiAgICAgICAgICAgIDxoND5JbXBsZW1lbnRhdGlvbjwvaDQ+XG4gICAgICAgICAgICA8cD48L3A+ICovXG5cblxuLypcbiAgPGg0PkFpbSBvZiBjb250YWN0PC9oND5cbiAgPHA+PC9wPlxuICA8aDQ+SW5zaWdodHM8L2g0PlxuICA8cD48L3A+XG4gIDxoND5DbGFyaWZpY2F0aW9uPC9oND5cbiAgPHA+PC9wPlxuICA8aDQ+SW1wbGVtZW50YXRpb248L2g0PlxuICA8cD48L3A+IFxuICAgICAgICAgICAgKi9cbmltcG9ydCB7IFRpbWVIb3JpIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvSG9yaXpvbnRhbFRpbWVsaW5lXCI7XG5pbXBvcnQgeyBBbGxQb3B1cyB9IGZyb20gXCIuLi9jb21wb25lbnRzL0hvcml6b250YWxUaW1lbGluZVwiO1xuaW1wb3J0IHsgQkZIU3R5bGVUYWJzLCBCdXR0b25Sb3dUYWJzIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvVGFic1wiO1xuaW1wb3J0IHsgIEJ1dHRvbk9uZSwgVGFiQnV0dG9uUm93LCBvcGVuVGFiIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvQnV0dG9uc1wiO1xuaW1wb3J0IHsgQmxvY2tRdW90ZUIgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9RdW90ZXNcIjtcbmltcG9ydCB7IEJveCwgVGFiIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWxcIjtcbmltcG9ydCB7VGFiQ29udGV4dCwgVGFiTGlzdCwgVGFiUGFuZWx9IGZyb20gJ0BtdWkvbGFiJztcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuXG5sZXQgdGltZWxpbmVidXR0b25yb3dkYXRhID0gW1xuICB7XG4gICAgYnV0dG9ubmFtZTogXCJBbGxcIiwgXG4gICAgbm9kZTogPFRpbWVIb3JpIHRhYj1cIlwiID48L1RpbWVIb3JpPiwgXG4gICAgY3NzbmFtZTogXCJGaXJzdFwiXG4gIH0sXG4gIHsgXG4gICAgbm9kZTogPFRpbWVIb3JpIHRhYj1cIlBhdGllbnRcIiA+PC9UaW1lSG9yaT4sXG4gICAgYnV0dG9ubmFtZTogXCJQYXRpZW50c1wiLCBcbiAgICBjc3NuYW1lOiBcIlBhdGllbnRcIlxuICB9LFxuICB7XG4gICAgbm9kZTogPFRpbWVIb3JpIHRhYj1cIk1lZGljYWwgUHJvZmVzc2lvbmFsXCIgPjwvVGltZUhvcmk+LFxuICAgIGJ1dHRvbm5hbWU6IFwiTWVkaWNhbCBQcm9mZXNzaW9uYWxzXCIsIFxuICAgIGNzc25hbWU6IFwiTWVkaWNhbFwiXG4gIH0sXG4gIHtcbiAgICBub2RlOiA8VGltZUhvcmkgdGFiPVwiQWNhZGVtaWFcIiA+PC9UaW1lSG9yaT4sXG4gICAgYnV0dG9ubmFtZTogXCJBY2FkZW1pYVwiLCBcbiAgICBjc3NuYW1lOiBcIkFjYWRlbWlhXCJcbiAgfSxcbiAgeyBcbiAgICBub2RlOiA8VGltZUhvcmkgdGFiPVwiSW5kdXN0cnlcIiA+PC9UaW1lSG9yaT4sXG4gICAgYnV0dG9ubmFtZTogXCJJbmR1c3RyeVwiLCBcbiAgICBjc3NuYW1lOiBcIkluZHVzdHJ5XCJcbiAgfVxuXVxuXG5sZXQgdGltZWxpbmVwZXJzb250YWJzID1bXG4gIHtcbiAgICBub2RlOiA8PlxuICAgICAgICAgIDxici8+XG4gICAgICAgICAgICA8aDM+TWF4IEJlY2ttYW5uPC9oMz5cbiAgICAgICAgICAgIDxoNT5GaXJzdCBvZmZpY2lhbCBpbnRlcnZpZXc8L2g1PlxuICAgICAgICAgICAgPGhyLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0yXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInQtdGFnIFBhdGllbnRcIj5cbiAgICAgICAgICAgICAgICBQYXRpZW50XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5PcmlnaW5hbCBsYW5ndWFnZTogR2VybWFuPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgPEJsb2NrUXVvdGVCIHRleHQ9XCJRdW90ZVwiIGNpdGU9XCIuXCI+PC9CbG9ja1F1b3RlQj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTNcIj5cbiAgICAgICAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cIm1pZGRsZSBzZWNocHJvXCIgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvcGxhY2Vob2xkZXJzL3BsYWNlaGlsZGVycGVyc29uLmpwZWdcIi8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aDQ+QWltIG9mIGNvbnRhY3Q8L2g0PlxuICAgICAgICAgICAgPHA+PC9wPlxuICAgICAgICAgICAgPGg0Pkluc2lnaHRzPC9oND5cbiAgICAgICAgICAgIDxwPjwvcD5cbiAgICAgICAgICAgIDxoND5DbGFyaWZpY2F0aW9uPC9oND5cbiAgICAgICAgICAgIDxwPjwvcD5cbiAgICAgICAgICAgIDxoND5JbXBsZW1lbnRhdGlvbjwvaDQ+XG4gICAgICAgICAgICA8cD48L3A+XG4gICAgICAgICAgPC8+LCBcbiAgICBjc3NuYW1lOiBcIkludk1heDFcIlxuICB9LFxuICB7XG4gICAgbm9kZTogPD5cbiAgICAgICAgICA8YnIvPlxuICAgICAgICAgICAgPGgzPk1heCBCZWNrbWFubjwvaDM+XG4gICAgICAgICAgICA8aDU+RmVlZGJhY2sgSW50ZXJ2aWV3PC9oNT5cbiAgICAgICAgICAgIDxoci8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0LXRhZyBQYXRpZW50XCI+XG4gICAgICAgICAgICAgICAgUGF0aWVudFxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+T3JpZ2luYWwgbGFuZ3VhZ2U6IEdlcm1hbjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgICAgICAgIDxCbG9ja1F1b3RlQiB0ZXh0PVwiUXVvdGVcIiBjaXRlPVwiLlwiPjwvQmxvY2tRdW90ZUI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0zXCI+XG4gICAgICAgICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJtaWRkbGUgc2VjaHByb1wiIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3BsYWNlaG9sZGVycy9wbGFjZWhpbGRlcnBlcnNvbi5qcGVnXCIvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGg0PkFpbSBvZiBjb250YWN0PC9oND5cbiAgICAgICAgICAgIDxwPjwvcD5cbiAgICAgICAgICAgIDxoND5JbnNpZ2h0czwvaDQ+XG4gICAgICAgICAgICA8cD48L3A+XG4gICAgICAgICAgICA8aDQ+Q2xhcmlmaWNhdGlvbjwvaDQ+XG4gICAgICAgICAgICA8cD48L3A+XG4gICAgICAgICAgICA8aDQ+SW1wbGVtZW50YXRpb248L2g0PlxuICAgICAgICAgICAgPHA+PC9wPlxuICAgICAgICAgIDwvPiwgXG4gICAgY3NzbmFtZTogXCJJbnZNYXgyXCJcbiAgfSxcbiAge1xuICAgIG5vZGU6IDw+XG4gICAgPGJyLz5cbiAgIDxoMz5CZXJlbnM8L2gzPlxuICAgPGhyLz5cbiAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0yXCI+XG4gICA8ZGl2IGNsYXNzTmFtZT1cInQtdGFnIEFjYWRlbWlhXCI+XG4gICAgICAgQmVydWZcbiAgIDwvZGl2PlxuICAgPC9kaXY+XG4gICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPk9yaWdpbmFsIGxhbmd1YWdlOiBHZXJtYW48L2Rpdj5cbiAgIDwvZGl2PlxuICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICA8QmxvY2tRdW90ZUIgdGV4dD1cIlF1b3RlXCIgY2l0ZT1cIi5cIj48L0Jsb2NrUXVvdGVCPlxuICAgICA8L2Rpdj5cbiAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtM1wiPlxuICAgICAgIDxpbWcgY2xhc3NOYW1lPVwibWlkZGxlIHNlY2hwcm9cIiBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9wbGFjZWhvbGRlcnMvcGxhY2VoaWxkZXJwZXJzb24uanBlZ1wiLz5cbiAgICAgPC9kaXY+XG4gICA8L2Rpdj5cbiAgIDxoND5BaW0gb2YgY29udGFjdDwvaDQ+XG4gICA8cD48L3A+XG4gICA8aDQ+SW5zaWdodHM8L2g0PlxuICAgPHA+PC9wPlxuICAgPGg0PkNsYXJpZmljYXRpb248L2g0PlxuICAgPHA+PC9wPlxuICAgPGg0PkltcGxlbWVudGF0aW9uPC9oND5cbiAgIDxwPjwvcD5cbiAgICA8Lz4sXG4gICAgY3NzbmFtZTogXCJCZXJlbnNcIlxuICB9LFxuICB7XG4gICAgbm9kZTogPD5cbiAgICA8YnIvPlxuICAgPGgzPldpc2NobWV5ZXI8L2gzPlxuICAgPGhyLz5cbiAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0yXCI+XG4gICA8ZGl2IGNsYXNzTmFtZT1cInQtdGFnIEFjYWRlbWlhXCI+XG4gICAgICAgQmVydWZcbiAgIDwvZGl2PlxuICAgPC9kaXY+XG4gICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPk9yaWdpbmFsIGxhbmd1YWdlOiBHZXJtYW48L2Rpdj5cbiAgIDwvZGl2PlxuICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICA8QmxvY2tRdW90ZUIgdGV4dD1cIlF1b3RlXCIgY2l0ZT1cIi5cIj48L0Jsb2NrUXVvdGVCPlxuICAgICA8L2Rpdj5cbiAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtM1wiPlxuICAgICAgIDxpbWcgY2xhc3NOYW1lPVwibWlkZGxlIHNlY2hwcm9cIiBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9wbGFjZWhvbGRlcnMvcGxhY2VoaWxkZXJwZXJzb24uanBlZ1wiLz5cbiAgICAgPC9kaXY+XG4gICA8L2Rpdj5cbiAgIDxoND5BaW0gb2YgY29udGFjdDwvaDQ+XG4gICA8cD48L3A+XG4gICA8aDQ+SW5zaWdodHM8L2g0PlxuICAgPHA+PC9wPlxuICAgPGg0PkNsYXJpZmljYXRpb248L2g0PlxuICAgPHA+PC9wPlxuICAgPGg0PkltcGxlbWVudGF0aW9uPC9oND5cbiAgIDxwPjwvcD5cbiAgICA8Lz4sXG4gICAgY3NzbmFtZTogXCJXaXNjaG1leWVyXCJcbiAgfSxcbiAge1xuICAgIG5vZGU6IDw+XG4gICAgICAgICAgICAgPGJyLz5cbiAgICAgICAgICAgIDxoMz5OaWNvbGUgRnJpZWRsZWluPC9oMz5cbiAgICAgICAgICAgIDxoci8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0LXRhZyBFdGhpY3NcIj5cbiAgICAgICAgICAgICAgICBQaGQgXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5PcmlnaW5hbCBsYW5ndWFnZTogR2VybWFuPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgPEJsb2NrUXVvdGVCIHRleHQ9XCJRdW90ZVwiIGNpdGU9XCIuXCI+PC9CbG9ja1F1b3RlQj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTNcIj5cbiAgICAgICAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cIm1pZGRsZSBzZWNocHJvXCIgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvcGxhY2Vob2xkZXJzL3BsYWNlaGlsZGVycGVyc29uLmpwZWdcIi8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aDQ+QWltIG9mIGNvbnRhY3Q8L2g0PlxuICAgICAgICAgICAgPHA+PC9wPlxuICAgICAgICAgICAgPGg0Pkluc2lnaHRzPC9oND5cbiAgICAgICAgICAgIDxwPjwvcD5cbiAgICAgICAgICAgIDxoND5DbGFyaWZpY2F0aW9uPC9oND5cbiAgICAgICAgICAgIDxwPjwvcD5cbiAgICAgICAgICAgIDxoND5JbXBsZW1lbnRhdGlvbjwvaDQ+XG4gICAgICAgICAgICA8cD48L3A+XG4gICAgICAgICAgPC8+LFxuICAgIGNzc25hbWU6IFwiSW52RnJpZWRsZWluXCJcbiAgfSxcbiAge1xuICAgIG5vZGU6IDw+XG4gICAgPGJyLz5cbiAgIDxoMz5SbmFoYWxlPC9oMz5cbiAgIDxoci8+XG4gICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMlwiPlxuICAgPGRpdiBjbGFzc05hbWU9XCJ0LXRhZyBJbmR1c3RyeVwiPlxuICAgICAgIEJlcnVmXG4gICA8L2Rpdj5cbiAgIDwvZGl2PlxuICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5PcmlnaW5hbCBsYW5ndWFnZTogR2VybWFuPC9kaXY+XG4gICA8L2Rpdj5cbiAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgPEJsb2NrUXVvdGVCIHRleHQ9XCJRdW90ZVwiIGNpdGU9XCIuXCI+PC9CbG9ja1F1b3RlQj5cbiAgICAgPC9kaXY+XG4gICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTNcIj5cbiAgICAgICA8aW1nIGNsYXNzTmFtZT1cIm1pZGRsZSBzZWNocHJvXCIgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvcGxhY2Vob2xkZXJzL3BsYWNlaGlsZGVycGVyc29uLmpwZWdcIi8+XG4gICAgIDwvZGl2PlxuICAgPC9kaXY+XG4gICA8aDQ+QWltIG9mIGNvbnRhY3Q8L2g0PlxuICAgPHA+PC9wPlxuICAgPGg0Pkluc2lnaHRzPC9oND5cbiAgIDxwPjwvcD5cbiAgIDxoND5DbGFyaWZpY2F0aW9uPC9oND5cbiAgIDxwPjwvcD5cbiAgIDxoND5JbXBsZW1lbnRhdGlvbjwvaDQ+XG4gICA8cD48L3A+XG4gICAgPC8+LFxuICAgIGNzc25hbWU6IFwiSW52Uk5hbGVcIlxuICB9LFxuICB7XG4gICAgbm9kZTogPD5cbiAgICAgICAgICAgIDxici8+XG4gICAgICAgICAgICA8aDM+TWF0dGlqcyBCdWxjYWVuPC9oMz5cbiAgICAgICAgICAgIDxoci8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtNVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0LXRhZyBBY2FkZW1pYVwiPlxuICAgICAgICAgICAgICAgIFBoZC4gU3R1ZGVudCAoTW9sZWN1bGFyIFZpcm9sb2d5IGFuZCBHZW5lIFRoZXJhcHkpXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5PcmlnaW5hbCBsYW5ndWFnZTogRW5nbGlzaDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgICAgICAgIDxCbG9ja1F1b3RlQiB0ZXh0PVwiUXVvdGVcIiBjaXRlPVwiLlwiPjwvQmxvY2tRdW90ZUI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0zXCI+XG4gICAgICAgICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJtaWRkbGUgc2VjaHByb1wiIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3BsYWNlaG9sZGVycy9wbGFjZWhpbGRlcnBlcnNvbi5qcGVnXCIvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGg0PkFpbSBvZiBjb250YWN0PC9oND5cbiAgICAgICAgICAgIDxwPjwvcD5cbiAgICAgICAgICAgIDxoND5JbnNpZ2h0czwvaDQ+XG4gICAgICAgICAgICA8cD48L3A+XG4gICAgICAgICAgICA8aDQ+Q2xhcmlmaWNhdGlvbjwvaDQ+XG4gICAgICAgICAgICA8cD48L3A+XG4gICAgICAgICAgICA8aDQ+SW1wbGVtZW50YXRpb248L2g0PlxuICAgICAgICAgICAgPHA+PC9wPlxuICAgICAgICAgIDwvPixcbiAgICBjc3NuYW1lOiBcIkludkJ1bGNhZW4xXCJcbiAgfSxcbiAge1xuICAgIG5vZGU6IDw+XG4gICAgICAgICAgICA8YnIvPlxuICAgICAgICAgICAgPGgzPk1hdHRpanMgQnVsY2FlbjwvaDM+XG4gICAgICAgICAgICA8aDU+RmVlZGJhY2sgSW50ZXJ2aWV3PC9oNT5cbiAgICAgICAgICAgIDxoci8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtNVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0LXRhZyBBY2FkZW1pYVwiPlxuICAgICAgICAgICAgICAgIFBoZC4gU3R1ZGVudCAoTW9sZWN1bGFyIFZpcm9sb2d5IGFuZCBHZW5lIFRoZXJhcHkpXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5PcmlnaW5hbCBsYW5ndWFnZTogRW5nbGlzaDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgICAgICAgIDxCbG9ja1F1b3RlQiB0ZXh0PVwiUXVvdGVcIiBjaXRlPVwiLlwiPjwvQmxvY2tRdW90ZUI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0zXCI+XG4gICAgICAgICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJtaWRkbGUgc2VjaHByb1wiIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3BsYWNlaG9sZGVycy9wbGFjZWhpbGRlcnBlcnNvbi5qcGVnXCIvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGg0PkFpbSBvZiBjb250YWN0PC9oND5cbiAgICAgICAgICAgIDxwPjwvcD5cbiAgICAgICAgICAgIDxoND5JbnNpZ2h0czwvaDQ+XG4gICAgICAgICAgICA8cD48L3A+XG4gICAgICAgICAgICA8aDQ+Q2xhcmlmaWNhdGlvbjwvaDQ+XG4gICAgICAgICAgICA8cD48L3A+XG4gICAgICAgICAgICA8aDQ+SW1wbGVtZW50YXRpb248L2g0PlxuICAgICAgICAgICAgPHA+PC9wPlxuICAgICAgICAgIDwvPixcbiAgICBjc3NuYW1lOiBcIkludkJ1bGNhZW4yXCJcbiAgfSxcbiAge1xuICAgIG5vZGU6IDw+XG4gICAgICAgICAgICA8YnIvPlxuICAgICAgICAgICAgPGgzPkp1bGlhPC9oMz5cbiAgICAgICAgICAgIDxoci8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0LXRhZyBQYXRpZW50XCI+XG4gICAgICAgICAgICAgICAgUGFyZW50XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5PcmlnaW5hbCBsYW5ndWFnZTogR2VybWFuPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgPEJsb2NrUXVvdGVCIHRleHQ9XCJRdW90ZVwiIGNpdGU9XCIuXCI+PC9CbG9ja1F1b3RlQj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTNcIj5cbiAgICAgICAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cIm1pZGRsZSBzZWNocHJvXCIgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvcGxhY2Vob2xkZXJzL3BsYWNlaGlsZGVycGVyc29uLmpwZWdcIi8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aDQ+QWltIG9mIGNvbnRhY3Q8L2g0PlxuICAgICAgICAgICAgPHA+PC9wPlxuICAgICAgICAgICAgPGg0Pkluc2lnaHRzPC9oND5cbiAgICAgICAgICAgIDxwPjwvcD5cbiAgICAgICAgICAgIDxoND5DbGFyaWZpY2F0aW9uPC9oND5cbiAgICAgICAgICAgIDxwPjwvcD5cbiAgICAgICAgICAgIDxoND5JbXBsZW1lbnRhdGlvbjwvaDQ+XG4gICAgICAgICAgICA8cD48L3A+XG4gICAgICAgICAgPC8+LFxuICAgIGNzc25hbWU6IFwiSW52SnVsaWFcIlxuICB9LFxuICB7XG4gICAgbm9kZTogPD5cbiAgICAgICAgICAgIDxici8+XG4gICAgICAgICAgICA8aDM+Sm9zaHVhIEJhdWRlcjwvaDM+XG4gICAgICAgICAgICA8aHIvPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTFcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidC10YWcgUGF0aWVudFwiPlxuICAgICAgICAgICAgICAgIFBhcmVudFxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+T3JpZ2luYWwgbGFuZ3VhZ2U6IEVuZ2xpc2g8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICA8QmxvY2tRdW90ZUIgdGV4dD1cIlF1b3RlXCIgY2l0ZT1cIi5cIj48L0Jsb2NrUXVvdGVCPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtM1wiPlxuICAgICAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwibWlkZGxlIHNlY2hwcm9cIiBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9wbGFjZWhvbGRlcnMvcGxhY2VoaWxkZXJwZXJzb24uanBlZ1wiLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxoND5BaW0gb2YgY29udGFjdDwvaDQ+XG4gICAgICAgICAgICA8cD48L3A+XG4gICAgICAgICAgICA8aDQ+SW5zaWdodHM8L2g0PlxuICAgICAgICAgICAgPHA+PC9wPlxuICAgICAgICAgICAgPGg0PkNsYXJpZmljYXRpb248L2g0PlxuICAgICAgICAgICAgPHA+PC9wPlxuICAgICAgICAgICAgPGg0PkltcGxlbWVudGF0aW9uPC9oND5cbiAgICAgICAgICAgIDxwPjwvcD5cbiAgICAgICAgICA8Lz4sXG4gICAgY3NzbmFtZTogXCJJbnZKb3NodWFcIlxuICB9LFxuICB7XG4gICAgbm9kZTogPD5cbiAgICAgICAgICAgIDxici8+XG4gICAgICAgICAgICA8aDM+S2F0cmluIFdlc3Rob2ZmPC9oMz5cbiAgICAgICAgICAgIDxoNT5Jbml0aWFsIEludGVydmlldzwvaDU+XG4gICAgICAgICAgICA8aHIvPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidC10YWcgTWVkaWNhbFwiPlxuICAgICAgICAgICAgICAgIFBoeXNpb3RoZXJhcGlzdFxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+T3JpZ2luYWwgbGFuZ3VhZ2U6IEdlcm1hbjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgICAgICAgIDxCbG9ja1F1b3RlQiB0ZXh0PVwiVGhlIG1vcmUgd2Uga25vdywgdGhlIG1vcmUgb3Bwb3J0dW5pdGllcyB3ZSBoYXZlLlwiIGNpdGU9XCJLYXRyaW4gV2VzdGhvZmZcIj48L0Jsb2NrUXVvdGVCPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtM1wiPlxuICAgICAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwibWlkZGxlIHNlY2hwcm9cIiBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9wbGFjZWhvbGRlcnMvcGxhY2VoaWxkZXJwZXJzb24uanBlZ1wiLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxoND5BaW0gb2YgY29udGFjdDwvaDQ+XG4gICAgICAgICAgICA8cD5UaGUgb2JqZWN0aXZlIG9mIHRoZSBjb250YWN0IHdhcyB0byBnYWluIGluLWRlcHRoIGluc2lnaHRzIGludG8gdGhlIHRyZWF0bWVudCBhbmQgY2FyZSBvZiBjaGlsZHJlbiB3aXRoIGN5c3RpYyBmaWJyb3Npcy4gVGhlIHRoZXJhcGlzdCdzIGV4cGVydGlzZSB3YXMgaW50ZW5kZWQgdG8gaGVscCBkZXZlbG9wIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGNoYWxsZW5nZXMgYW5kIG5lY2Vzc2FyeSBtZWFzdXJlcyBpbiB0aGUgdHJlYXRtZW50IG9mIHRoaXMgY2hyb25pYyBkaXNlYXNlLiBJbiBhZGRpdGlvbiwgdGhlIGFpbSB3YXMgdG8gYXNjZXJ0YWluIGhvdyB0aGUgdGhlcmFweSBpcyBpbXBsZW1lbnRlZCBpbiBldmVyeWRheSBsaWZlIGFuZCB3aGljaCBzcGVjaWZpYyBhcHByb2FjaGVzIGFuZCBtZXRob2RzIGFyZSBwYXJ0aWN1bGFybHkgZWZmZWN0aXZlLiA8L3A+XG4gICAgICAgICAgICA8aDQ+SW5zaWdodHM8L2g0PlxuICAgICAgICAgICAgPHA+VGhlIGludGVydmlldyB5aWVsZGVkIHZhbHVhYmxlIGluc2lnaHRzIGludG8gdGhlIHJlZ3VsYXIgaW1wbGVtZW50YXRpb24gb2YgdGhlIHRoZXJhcHksIHRoZSB1c2Ugb2YgYWlkcywgYW5kIHRoZSBhZGFwdGF0aW9uIFxuICAgICAgICAgICAgICBvZiBleGVyY2lzZXMgdG8gdGhlIGluZGl2aWR1YWwgbmVlZHMgb2YgdGhlIHBhdGllbnRzLiBJdCB3YXMgbm90YWJsZSB0aGF0IHRoZSB0aGVyYXB5IGhhcyBpbXByb3ZlZCBcbiAgICAgICAgICAgICAgY29uc2lkZXJhYmx5IHRoYW5rcyB0byBiZXR0ZXIgbWVkaWNhdGlvbiBhbmQgYWRhcHRlZCBleGVyY2lzZXMsIHdpdGggYSBjb25jb21pdGFudCBpbmNyZWFzZSBpbiBsaWZlIFxuICAgICAgICAgICAgICBleHBlY3RhbmN5IGZvciBjaGlsZHJlbiBhZmZlY3RlZCBieSBjeXN0aWMgZmlicm9zaXMuIE9mIHBhcnRpY3VsYXIgaW50ZXJlc3Qgd2FzIHRoZSBlbXBoYXNpcyBcbiAgICAgICAgICAgICAgb24gdGhlIGltcG9ydGFuY2Ugb2Ygc3BvcnQgYW5kIGV4ZXJjaXNlLCB3aGljaCBzaG91bGQgbm90IG9ubHkgYmUgdGhlcmFwZXV0aWNhbGx5IGVmZmVjdGl2ZSwgYnV0IGFsc28gaW5jcmVhc2UgcXVhbGl0eSBvZiBsaWZlLiA8L3A+XG4gICAgICAgICAgICA8aDQ+Q2xhcmlmaWNhdGlvbjwvaDQ+XG4gICAgICAgICAgICA8cD48L3A+XG4gICAgICAgICAgICA8aDQ+SW1wbGVtZW50YXRpb248L2g0PlxuICAgICAgICAgICAgPHA+VGhlIGZvbGxvd2luZyBzdGF0ZW1lbnQgYnkgS2F0cmluIFdlc3Rob2ZmIGhhZCBhIHBhcnRpY3VsYXJseSBwcm9mb3VuZCBpbXBhY3Qgb24gb3VyIHByb2plY3Q6IFwiVGhlIG1vcmUgd2Uga25vdywgdGhlIG1vcmUgb3Bwb3J0dW5pdGllcyB3ZSBoYXZlLlwiIFxuICAgICAgICAgICAgICBXZSBsZWFybmVkIGZyb20gdGhlIGludGVydmlldyB0aGF0IHRoZSBjdXJyZW50IG1lZGljYXRpb24gaXMgYWxyZWFkeSBoZWxwaW5nIG1hbnkgcGF0aWVudHMgdG8gYSBodWdlIFxuICAgICAgICAgICAgICBleHRlbnQsIGJ1dCB0aGF0IHRoZXJlIGlzIHN0aWxsIGEgc2lnbmlmaWNhbnQgb3Bwb3J0dW5pdHkgZm9yIGltcHJvdmVtZW50LiBBZnRlciBhbGwsIHN1Y2Nlc3NmdWwgZ2VuZSBcbiAgICAgICAgICAgICAgdGhlcmFweSB3b3VsZCBtYXJrZWRseSBlbmhhbmNlIHRoZSBxdWFsaXR5IG9mIGxpZmUgZm9yIHRob3NlIGFmZmVjdGVkLiBUaGUgZmluZGluZ3Mgb2YgdGhpcyBwcm9qZWN0IHdpbGwgXG4gICAgICAgICAgICAgIGJlIGRpc3NlbWluYXRlZCB0byB0aGUgcmVsZXZhbnQgcmVzZWFyY2hlcnMgaW4gb3JkZXIgdG8gZmFjaWxpdGF0ZSB0aGUgcmFwaWQgaW1wcm92ZW1lbnQgb2YgdGhlIHF1YWxpdHkgb2YgXG4gICAgICAgICAgICAgIGxpZmUgb2YgYWxsIGN5c3RpYyBmaWJyb3NpcyBwYXRpZW50cywgcmVnYXJkbGVzcyBvZiB0aGVpciBtdXRhdGlvbi4gPC9wPlxuICAgICAgICAgIDwvPixcbiAgICBjc3NuYW1lOiBcIkludldlc3Rob2ZmXCJcbiAgfSxcbiAge1xuICAgIG5vZGU6IDw+XG4gICAgICAgICAgICA8YnIvPlxuICAgICAgICAgICAgPGgzPkthdHJpbiBXZXN0aG9mZjwvaDM+XG4gICAgICAgICAgICA8aDU+VmlzaXQ8L2g1PlxuICAgICAgICAgICAgPGhyLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0yXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInQtdGFnIE1lZGljYWxcIj5cbiAgICAgICAgICAgICAgICBQaHlzaW90aGVyYXBpc3RcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPk9yaWdpbmFsIGxhbmd1YWdlOiBHZXJtYW48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICA8QmxvY2tRdW90ZUIgdGV4dD1cIlF1b3RlXCIgY2l0ZT1cIi5cIj48L0Jsb2NrUXVvdGVCPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtM1wiPlxuICAgICAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwibWlkZGxlIHNlY2hwcm9cIiBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9wbGFjZWhvbGRlcnMvcGxhY2VoaWxkZXJwZXJzb24uanBlZ1wiLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxoND5BaW0gb2YgY29udGFjdDwvaDQ+XG4gICAgICAgICAgICA8cD48L3A+XG4gICAgICAgICAgICA8aDQ+SW5zaWdodHM8L2g0PlxuICAgICAgICAgICAgPHA+PC9wPlxuICAgICAgICAgICAgPGg0PkNsYXJpZmljYXRpb248L2g0PlxuICAgICAgICAgICAgPHA+PC9wPlxuICAgICAgICAgICAgPGg0PkltcGxlbWVudGF0aW9uPC9oND5cbiAgICAgICAgICAgIDxwPjwvcD5cbiAgICAgICAgICA8Lz4sXG4gICAgY3NzbmFtZTogXCJCZXNXZXN0aG9mZlwiXG4gIH0sXG4gIHtcbiAgICBub2RlOiA8PlxuICAgICAgICAgICAgPGJyLz5cbiAgICAgICAgICAgIDxoMz5DcmlzdGlhbi1HYWJyaWVsIE9sYXJpdTwvaDM+XG4gICAgICAgICAgICA8aHIvPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidC10YWcgTWVkaWNhbFwiPlxuICAgICAgICAgICAgICAgIFBlZGlhdHJpY2lhblxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+T3JpZ2luYWwgbGFuZ3VhZ2U6IEdlcm1hbjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgICAgICAgIDxCbG9ja1F1b3RlQiB0ZXh0PVwiUXVvdGVcIiBjaXRlPVwiLlwiPjwvQmxvY2tRdW90ZUI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0zXCI+XG4gICAgICAgICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJtaWRkbGUgc2VjaHByb1wiIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3BsYWNlaG9sZGVycy9wbGFjZWhpbGRlcnBlcnNvbi5qcGVnXCIvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGg0PkFpbSBvZiBjb250YWN0PC9oND5cbiAgICAgICAgICAgIDxwPjwvcD5cbiAgICAgICAgICAgIDxoND5JbnNpZ2h0czwvaDQ+XG4gICAgICAgICAgICA8cD48L3A+XG4gICAgICAgICAgICA8aDQ+Q2xhcmlmaWNhdGlvbjwvaDQ+XG4gICAgICAgICAgICA8cD48L3A+XG4gICAgICAgICAgICA8aDQ+SW1wbGVtZW50YXRpb248L2g0PlxuICAgICAgICAgICAgPHA+PC9wPlxuICAgICAgICAgIDwvPixcbiAgICBjc3NuYW1lOiBcIkludk9sYXJpdVwiXG4gIH0sXG4gIHtcbiAgICBub2RlOiA8PlxuICAgIDxici8+XG4gICA8aDM+RHIuIEthdGhhcmluYSBLb2xvbmtvPC9oMz5cbiAgIDxoci8+XG4gICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMlwiPlxuICAgPGRpdiBjbGFzc05hbWU9XCJ0LXRhZyBBY2FkZW1pYVwiPlxuICAgICAgIEJlcnVmXG4gICA8L2Rpdj5cbiAgIDwvZGl2PlxuICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5PcmlnaW5hbCBsYW5ndWFnZTogR2VybWFuPC9kaXY+XG4gICA8L2Rpdj5cbiAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgPEJsb2NrUXVvdGVCIHRleHQ9XCJRdW90ZVwiIGNpdGU9XCIuXCI+PC9CbG9ja1F1b3RlQj5cbiAgICAgPC9kaXY+XG4gICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTNcIj5cbiAgICAgICA8aW1nIGNsYXNzTmFtZT1cIm1pZGRsZSBzZWNocHJvXCIgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvcGxhY2Vob2xkZXJzL3BsYWNlaGlsZGVycGVyc29uLmpwZWdcIi8+XG4gICAgIDwvZGl2PlxuICAgPC9kaXY+XG4gICA8aDQ+QWltIG9mIGNvbnRhY3Q8L2g0PlxuICAgPHA+PC9wPlxuICAgPGg0Pkluc2lnaHRzPC9oND5cbiAgIDxwPjwvcD5cbiAgIDxoND5DbGFyaWZpY2F0aW9uPC9oND5cbiAgIDxwPjwvcD5cbiAgIDxoND5JbXBsZW1lbnRhdGlvbjwvaDQ+XG4gICA8cD48L3A+XG4gICAgPC8+LFxuICAgIGNzc25hbWU6IFwiSW52S29sb25rb1wiXG4gIH0sXG4gIHtcbiAgICBub2RlOiA8PlxuICAgIDxici8+XG4gICA8aDM+UHJvZi4gRHIuIENocmlzdG9waCBXZWJlcjwvaDM+XG4gICA8aHIvPlxuICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTJcIj5cbiAgIDxkaXYgY2xhc3NOYW1lPVwidC10YWcgQWNhZGVtaWFcIj5cbiAgICAgICBCZXJ1ZlxuICAgPC9kaXY+XG4gICA8L2Rpdj5cbiAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+T3JpZ2luYWwgbGFuZ3VhZ2U6IEdlcm1hbjwvZGl2PlxuICAgPC9kaXY+XG4gICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgIDxCbG9ja1F1b3RlQiB0ZXh0PVwiUXVvdGVcIiBjaXRlPVwiLlwiPjwvQmxvY2tRdW90ZUI+XG4gICAgIDwvZGl2PlxuICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0zXCI+XG4gICAgICAgPGltZyBjbGFzc05hbWU9XCJtaWRkbGUgc2VjaHByb1wiIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3BsYWNlaG9sZGVycy9wbGFjZWhpbGRlcnBlcnNvbi5qcGVnXCIvPlxuICAgICA8L2Rpdj5cbiAgIDwvZGl2PlxuICAgPGg0PkFpbSBvZiBjb250YWN0PC9oND5cbiAgIDxwPjwvcD5cbiAgIDxoND5JbnNpZ2h0czwvaDQ+XG4gICA8cD48L3A+XG4gICA8aDQ+Q2xhcmlmaWNhdGlvbjwvaDQ+XG4gICA8cD48L3A+XG4gICA8aDQ+SW1wbGVtZW50YXRpb248L2g0PlxuICAgPHA+PC9wPlxuICAgIDwvPixcbiAgICBjc3NuYW1lOiBcIkludldlYmVyXCJcbiAgfSxcbiAge1xuICAgIG5vZGU6IDw+XG4gICAgICAgICAgICAgPGJyLz5cbiAgICAgICAgICAgIDxoMz5Qcm9mLiBEci4gU3RlZmFuIEhhbW1lcjwvaDM+XG4gICAgICAgICAgICA8aHIvPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidC10YWcgQWNhZGVtaWFcIj5cbiAgICAgICAgICAgICAgICBCZXJ1ZlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+T3JpZ2luYWwgbGFuZ3VhZ2U6IEdlcm1hbjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgICAgICAgIDxCbG9ja1F1b3RlQiB0ZXh0PVwiUXVvdGVcIiBjaXRlPVwiLlwiPjwvQmxvY2tRdW90ZUI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0zXCI+XG4gICAgICAgICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJtaWRkbGUgc2VjaHByb1wiIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3BsYWNlaG9sZGVycy9wbGFjZWhpbGRlcnBlcnNvbi5qcGVnXCIvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGg0PkFpbSBvZiBjb250YWN0PC9oND5cbiAgICAgICAgICAgIDxwPjwvcD5cbiAgICAgICAgICAgIDxoND5JbnNpZ2h0czwvaDQ+XG4gICAgICAgICAgICA8cD48L3A+XG4gICAgICAgICAgICA8aDQ+Q2xhcmlmaWNhdGlvbjwvaDQ+XG4gICAgICAgICAgICA8cD48L3A+XG4gICAgICAgICAgICA8aDQ+SW1wbGVtZW50YXRpb248L2g0PlxuICAgICAgICAgICAgPHA+PC9wPlxuICAgICAgICAgIDwvPixcbiAgICBjc3NuYW1lOiBcIkludkhhbW1lclwiXG4gIH0sXG5cbl1cbi8vIGRpZSBoZWlnaHQgZlx1MDBGQ3IgY2xhc3NOYW1lPVwidGltZWxpbmUgcm93IGFsaWduLWl0ZW1zLWNlbnRlclwiIG11c3MgYW5nZXBhc3N0IHdlcmRlbiwgZGFtaXQgZGllIEJveGVuIGhcdTAwRjZoZXIgc2VpbiBrXHUwMEY2bm5lblxuXG5cbmV4cG9ydCBmdW5jdGlvbiBIdW1hblByYWN0aWNlcygpIHtcbiAgb3BlblRhYih7Y2l0eU5hbWU6IFwiQWxsXCIsIGNsYTogXCJ0aW1lbGluZWNhcmR0YWJzXCJ9KTsgXG4gIHJldHVybiAoICBcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBtdC00XCI+XG4gICAgICBcbiAgICA8QmxvY2tRdW90ZUJcbiAgICAgIHRleHQ9XCJIdW1hbiBQcmFjdGljZXMgaXMgdGhlIHN0dWR5IG9mIGhvdyB5b3VyIHdvcmsgYWZmZWN0cyB0aGUgd29ybGQsIGFuZCBob3cgdGhlIHdvcmxkIGFmZmVjdHMgeW91ciB3b3JrLlwiXG4gICAgICBjaXRlPVwiLSBQZXRlciBDYXJyLCBEaXJlY3RvciBvZiBKdWRnaW5nXCJcbiAgICAgIC8+IFxuICAgIDxIUE92ZXJ2aWV3Lz4gXG4gICAgPEhQVGltZWxpbmUvPlxuXG4gICAgICB7LyogPEhQVGFic1R3by8+ICovfVxuXG4gICAgPHNlY3Rpb24gaWQ9XCJBbmFseXNpc1wiPlxuICAgICAgPGRpdiAgY2xhc3NOYW1lPVwiY2VudGVyXCIgPlxuICAgICAgICA8aDMgIGNsYXNzTmFtZT1cImNvbCBwZXJzb25hbHN0eWxlb25lXCI+QW5hbHlzaXM8L2gzPlxuICAgICAgPC9kaXY+IFxuICAgICAgPEhQVGFicy8+XG4gICAgPC9zZWN0aW9uPlxuICAgIFxuICAgIFxuXG5cbiAgICA8c2VjdGlvbiBpZD1cIlJlZmxlY3Rpb25cIiA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNlbnRlclwiPlxuICAgICAgICA8aDMgIGNsYXNzTmFtZT1cImNvbCBwZXJzb25hbHN0eWxlb25lXCI+UmVmbGVjdGlvbiBGcmFtZXdvcms8L2gzPlxuICAgICAgPC9kaXY+IFxuICAgICAgICAgIFxuICAgIDwvc2VjdGlvbj5cbiAgICBcbnsvKiBcbiAgICA8c2VjdGlvbiBpZD1cIkltcGxlbWVudGF0aW9uXCIgY2xhc3NOYW1lPVwic2VjdGlvblwiPlxuICAgIDxkaXYgY2xhc3NOYW1lPVwiY2VudGVyXCI+XG4gICAgICA8aDMgY2xhc3NOYW1lPVwiY29sIHBlcnNvbmFsc3R5bGVvbmVcIj5JbXBsZW1lbnRhdGlvbjwvaDM+XG4gICAgPC9kaXY+XG4gICAgPC9zZWN0aW9uPiAqL31cblxuICAgIDwvZGl2PlxuICAgIFxuICApOyAgXG59XG5cblxuZnVuY3Rpb24gSFBUYWJzKCl7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gUmVhY3QudXNlU3RhdGUoJzEnKTtcblxuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSAoX2V2ZW50OiBSZWFjdC5TeW50aGV0aWNFdmVudCwgbmV3VmFsdWU6IHN0cmluZykgPT4ge1xuICAgIHNldFZhbHVlKG5ld1ZhbHVlKTtcbiAgfTtcbiAgcmV0dXJuKFxuICAgIDxCb3ggc3g9e3sgd2lkdGg6ICcxMDAlJywgdHlwb2dyYXBoeTogJ2JvZHkxJyB9fT5cbiAgICA8VGFiQ29udGV4dCB2YWx1ZT17dmFsdWV9PlxuICAgICAgPEJveCBzeD17eyBib3JkZXJCb3R0b206IDEsIGJvcmRlckNvbG9yOiAnZGl2aWRlcicgfX0+XG4gICAgICAgIDxUYWJMaXN0IG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9IGFyaWEtbGFiZWw9XCJsYWIgQVBJIHRhYnMgZXhhbXBsZVwiPlxuICAgICAgICAgIDxUYWIgbGFiZWw9XCJQYXRpZW50IE5lZWRzXCIgdmFsdWU9XCIxXCIgLz5cbiAgICAgICAgICA8VGFiIGxhYmVsPVwiU2NpZW50aWZpYyBDaGFsbGVuZ2VzXCIgdmFsdWU9XCIyXCIgLz5cbiAgICAgICAgICA8VGFiIGxhYmVsPVwiQWNhZGVtaWMgY29uc2lkZXJhdGlvblwiIHZhbHVlPVwiM1wiIC8+XG4gICAgICAgICAgPFRhYiBsYWJlbD1cIkV0aGljYWwgcXVlc3Rpb25zXCIgdmFsdWU9XCI0XCIgLz5cbiAgICAgICAgICA8VGFiIGxhYmVsPVwiTWVkaWNhbCBwZXJzcGVjdGl2ZXNcIiB2YWx1ZT1cIjVcIiAvPlxuICAgICAgICAgIFxuICAgICAgICAgIFxuICAgICAgICA8L1RhYkxpc3Q+XG4gICAgICA8L0JveD5cbiAgICAgIDxUYWJQYW5lbCB2YWx1ZT1cIjFcIj4gIDwvVGFiUGFuZWw+XG4gICAgICA8VGFiUGFuZWwgdmFsdWU9XCIyXCI+ICAgPC9UYWJQYW5lbD5cbiAgICAgIDxUYWJQYW5lbCB2YWx1ZT1cIjNcIj4gICA8L1RhYlBhbmVsPlxuICAgICAgPFRhYlBhbmVsIHZhbHVlPVwiNFwiPiAgIDwvVGFiUGFuZWw+XG4gICAgICA8VGFiUGFuZWwgdmFsdWU9XCI1XCI+ICAgPC9UYWJQYW5lbD5cbiAgICA8L1RhYkNvbnRleHQ+XG4gIDwvQm94PlxuICApXG59XG5cblxuLyogPGRpdiBjbGFzc05hbWU9XCJtZXRob2RzLW5vZGVcIj5cbiAgICAgICAgICAgICAgPGRpdj5SPHN1cD4zPC9zdXA+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWV0aG9kcy1ub2RlXCI+XG4gICAgICAgICAgICAgIDxkaXY+SHVtYW4gUHJhY3RpY2VzIEN5Y2xlPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWV0aG9kcy1ub2RlXCI+XG4gICAgICAgICAgICAgIDxkaXY+U3Rha2Vob2xkZXIgRnJhbWV3b3JrPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWV0aG9kcy1ub2RlXCI+XG4gICAgICAgICAgICAgIDxkaXY+RmVlZGJhY2sgQ3ljbGU8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtZXRob2RzLW5vZGVcIj5cbiAgICAgICAgICAgICAgPGRpdj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gSFBUYWJzVHdvKCl7XG5cbiAgcmV0dXJuKFxuICAgIDw+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtOFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtZXRob2RzLW5vZGVcIj5cbiAgICAgICAgICAgICAgPGRpdj5Qcm9qZWN0IHNlbGVjdGlvbjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1ldGhvZHMtbm9kZVwiPlxuICAgICAgICAgICAgICA8ZGl2PkZvdW5kYXRpb248L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtZXRob2RzLW5vZGVcIj5cbiAgICAgICAgICAgICAgPGRpdj5EaXZlcnNpZmljYXRpb248L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtZXRob2RzLW5vZGVcIj5cbiAgICAgICAgICAgICAgPGRpdj5GaW5lLXR1bmluZzwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1ldGhvZHMtbm9kZVwiPlxuICAgICAgICAgICAgICA8ZGl2PkZpbmFsaXphdGlvbjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtM1wiPlxuICAgICAgICAgXG4gICAgICAgIHsvKiA8Qm94IHN4PXt7IGJvcmRlckJvdHRvbTogMSwgYm9yZGVyQ29sb3I6ICdkaXZpZGVyJyB9fT5cbiAgICAgICAgPFRhYkxpc3Qgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX0gYXJpYS1sYWJlbD1cImxhYiBBUEkgdGFicyBleGFtcGxlXCI+XG4gICAgICAgICAgPFRhYiBsYWJlbD1cIlBhdGllbnQgTmVlZHNcIiB2YWx1ZT1cIjFcIiAvPlxuICAgICAgICAgIDxUYWIgbGFiZWw9XCJTY2llbnRpZmljIENoYWxsZW5nZXNcIiB2YWx1ZT1cIjJcIiAvPlxuICAgICAgICAgIDxUYWIgbGFiZWw9XCJBY2FkZW1pYyBjb25zaWRlcmF0aW9uXCIgdmFsdWU9XCIzXCIgLz5cbiAgICAgICAgICA8VGFiIGxhYmVsPVwiRXRoaWNhbCBxdWVzdGlvbnNcIiB2YWx1ZT1cIjRcIiAvPlxuICAgICAgICAgIDxUYWIgbGFiZWw9XCJNZWRpY2FsIHBlcnNwZWN0aXZlc1wiIHZhbHVlPVwiNVwiIC8+XG4gICAgICAgIDwvVGFiTGlzdD5cbiAgICAgICAgPC9Cb3g+ICovfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgey8qIDxUYWJQYW5lbCB2YWx1ZT1cIjFcIj4gMSA8L1RhYlBhbmVsPlxuICAgICAgPFRhYlBhbmVsIHZhbHVlPVwiMlwiPiAgMiA8L1RhYlBhbmVsPlxuICAgICAgPFRhYlBhbmVsIHZhbHVlPVwiM1wiPiAzICA8L1RhYlBhbmVsPlxuICAgICAgPFRhYlBhbmVsIHZhbHVlPVwiNFwiPiAgNCA8L1RhYlBhbmVsPlxuICAgICAgPFRhYlBhbmVsIHZhbHVlPVwiNVwiPiA1ICA8L1RhYlBhbmVsPiAqL31cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvPlxuICApXG59XG57LyogXG4gICBcbiAgICAgIFxuICAgICAgICBcbiAgICAgIFxuXG4gICAgXG4gICovfVxuXG4vKiAgPFRhYiBsYWJlbD1cIlByb2JsZW1cIiB2YWx1ZT1cIjFcIiAvPlxuICAgICAgICAgIDxUYWIgbGFiZWw9XCJJbmZsdWVuY2VcIiB2YWx1ZT1cIjVcIiAvPlxuICAgICAgICAgIDxUYWIgbGFiZWw9XCJQYXRpZW50IE5lZWRzXCIgdmFsdWU9XCIyXCIgLz5cbiAgICAgICAgICA8VGFiIGxhYmVsPVwiU2NpZW50aWZpYyBDaGFsbGVuZ2VzXCIgdmFsdWU9XCIzXCIgLz5cbiAgICAgICAgICA8VGFiIGxhYmVsPVwiU3VydmV5c1wiIHZhbHVlPVwiNFwiIC8+ICovXG5cbmZ1bmN0aW9uIEhQT3ZlcnZpZXcoKXtcbiAgcmV0dXJuKFxuICAgIDxzZWN0aW9uIGlkPVwiT3ZlcnZpZXdcIiBjbGFzc05hbWU9XCJzZWN0aW9uXCI+XG4gICAgPGRpdiAgY2xhc3NOYW1lPVwiY2VudGVyXCIgPlxuICAgICAgPGgzICBjbGFzc05hbWU9XCJjb2wgcGVyc29uYWxzdHlsZW9uZVwiPk92ZXJ2aWV3PC9oMz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIiBzdHlsZT17e21hcmdpblRvcDogXCI1dmhcIiwgbWFyZ2luQm90dG9tOiBcIjV2aFwifX0+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgICA8QnV0dG9uT25lIHRleHQ9XCJJbnNwaXJhdGlvblwiIG9wZW49XCJpbnNwaXJhdGlvblwiPjwvQnV0dG9uT25lPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgICA8QnV0dG9uT25lIHRleHQ9XCJNZXRob2RzXCIgb3Blbj1cIm1ldGhvZHNcIj48L0J1dHRvbk9uZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgICAgPEJ1dHRvbk9uZSB0ZXh0PVwiVmFsdWVzIGFuZCBnb2Fsc1wiIG9wZW49XCJ2YWx1ZXNcIj48L0J1dHRvbk9uZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgICAgPEJ1dHRvbk9uZSB0ZXh0PVwiU3Rha2Vob2xkZXJzXCIgb3Blbj1cInN0YWtlaG9sZGVyc1wiPjwvQnV0dG9uT25lPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj4gXG4gICAgPGRpdiBjbGFzc05hbWU9XCJjb2wgY3ljbGV0YWJcIiBpZD1cImluc3BpcmF0aW9uXCIgc3R5bGU9e3tkaXNwbGF5OiBcImJsb2NrXCJ9fT5IYWxsbyA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbCBjeWNsZXRhYlwiIGlkPVwidmFsdWVzXCIgc3R5bGU9e3tkaXNwbGF5OiBcIm5vbmVcIn19PkhhbGxvIDwvZGl2PlxuICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sIGN5Y2xldGFiXCIgaWQ9XCJtZXRob2RzXCIgc3R5bGU9e3tkaXNwbGF5OiBcIm5vbmVcIn19PkhhbGxvIDwvZGl2PlxuICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sIGN5Y2xldGFiXCIgaWQ9XCJzdGFrZWhvbGRlcnNcIiBzdHlsZT17e3Bvc2l0aW9uOiBcInJlbGF0aXZlXCIsIGhlaWdodDogXCJmaXQtY29udGVudFwiLCBkaXNwbGF5OiBcIm5vbmVcIn19PlxuICAgICAgPE1pbmRNYXBUd28+PC9NaW5kTWFwVHdvPlxuICAgIDwvZGl2PiBcbiAgPC9zZWN0aW9uPlxuICApXG59XG5cbmZ1bmN0aW9uIEhQVGltZWxpbmUoKXtcbiAgcmV0dXJuKFxuICAgIDxzZWN0aW9uIGlkPVwiVGltZWxpbmVcIiBjbGFzc05hbWU9XCJzZWN0aW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNlbnRlclwiPlxuICAgICAgICA8aDMgIGNsYXNzTmFtZT1cImNvbCBwZXJzb25hbHN0eWxlb25lXCI+VGltZWxpbmU8L2gzPlxuICAgICAgPC9kaXY+IFxuICAgICAgPFRhYkJ1dHRvblJvdyBkYXRhPXt0aW1lbGluZWJ1dHRvbnJvd2RhdGF9IGNsYXNzeT1cIlwiIG9wZW50eXBlPVwidGltZWxpbmVjYXJkdGFic1wiIGNsb3Npbmc9XCJ0aW1lbGluZXBlcnNvbnRhYnNcIiAvPlxuICAgICAgPEFsbFBvcHVzPjwvQWxsUG9wdXM+XG4gICAgICA8QnV0dG9uUm93VGFicyBjbGE9XCJ0aW1lbGluZWNhcmR0YWJzXCIgZGF0YT17dGltZWxpbmVidXR0b25yb3dkYXRhfS8+IFxuICAgICAgPEJGSFN0eWxlVGFicyBjbGE9XCJ0aW1lbGluZXBlcnNvbnRhYnNcIiBkYXRhPXt0aW1lbGluZXBlcnNvbnRhYnN9PjwvQkZIU3R5bGVUYWJzPiBcbiAgICA8L3NlY3Rpb24+XG4gIClcbn1cblxuZnVuY3Rpb24gTWluZE1hcFR3bygpe1xuICByZXR1cm4oXG4gICAgPGRpdiBjbGFzc05hbWU9XCJtaW5kbWFwXCI+XG5cbiAgey8qIDwhLS1MRUZULS0+ICovfVxuICA8b2wgY2xhc3NOYW1lPVwiY2hpbGRyZW4gY2hpbGRyZW5fbGVmdGJyYW5jaFwiPlxuICAgIDxsaSBjbGFzc05hbWU9XCJjaGlsZHJlbl9pdGVtXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5vZGVcIiA+XG4gICAgICAgIDxkaXYgaWQ9XCJMMVwiIGNsYXNzTmFtZT1cIm5vZGVfdGV4dFwiPiBNZWRpY2FsIDxici8+IFByb2Zlc3Npb25hbHM8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG9sIGNsYXNzTmFtZT1cImNoaWxkcmVuXCI+XG4gICAgICAgIDxsaSBjbGFzc05hbWU9XCJjaGlsZHJlbl9pdGVtXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJub2RlXCI+XG4gICAgICAgICAgICA8ZGl2IGlkPVwiTDEuMVwiIGNsYXNzTmFtZT1cIm5vZGVfdGV4dFwiPkthdHJpbjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2xpPlxuICAgICAgICA8bGkgY2xhc3NOYW1lPVwiY2hpbGRyZW5faXRlbVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibm9kZVwiPlxuICAgICAgICAgICAgPGRpdiBpZD1cIkwxLjJcIiBjbGFzc05hbWU9XCJub2RlX3RleHRcIj5DcmlzdGlhbjwvZGl2PiBcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvb2w+XG4gICAgPC9saT5cbiAgICA8bGkgY2xhc3NOYW1lPVwiY2hpbGRyZW5faXRlbVwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJub2RlXCI+XG4gICAgICAgIDxkaXYgaWQ9XCJMMlwiIGNsYXNzTmFtZT1cIm5vZGVfdGV4dFwiPkluZHVzdHJ5PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxvbCBjbGFzc05hbWU9XCJjaGlsZHJlblwiPlxuICAgICAgICA8bGkgY2xhc3NOYW1lPVwiY2hpbGRyZW5faXRlbVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibm9kZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJub2RlX3RleHRcIj5MMi4xPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzc05hbWU9XCJjaGlsZHJlbl9pdGVtXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJub2RlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5vZGVfdGV4dFwiPkwyLjI8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPGxpIGNsYXNzTmFtZT1cImNoaWxkcmVuX2l0ZW1cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5vZGVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibm9kZV90ZXh0XCI+TDIuMzwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2xpPlxuICAgICAgPC9vbD5cbiAgICA8L2xpPlxuICAgIDxsaSBjbGFzc05hbWU9XCJjaGlsZHJlbl9pdGVtXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5vZGVcIj5cbiAgICAgICAgPGRpdiBpZD1cIkwzXCIgY2xhc3NOYW1lPVwibm9kZV90ZXh0XCI+aUdlbTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8b2wgY2xhc3NOYW1lPVwiY2hpbGRyZW5cIj5cbiAgICAgICAgPGxpIGNsYXNzTmFtZT1cImNoaWxkcmVuX2l0ZW1cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5vZGVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibm9kZV90ZXh0XCI+TDIuMTwvZGl2PiBcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPGxpIGNsYXNzTmFtZT1cImNoaWxkcmVuX2l0ZW1cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5vZGVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibm9kZV90ZXh0XCI+TDIuMjwvZGl2PlxuICAgICAgICAgICAgXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzc05hbWU9XCJjaGlsZHJlbl9pdGVtXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJub2RlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5vZGVfdGV4dFwiPkwyLjM8L2Rpdj5cbiAgICAgICAgICAgIFxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2xpPlxuICAgICAgPC9vbD5cbiAgICA8L2xpPlxuICA8L29sPlxuXG4gey8qICA8IS0tQ0VOVEVSLS0+ICovfVxuICA8ZGl2IGNsYXNzTmFtZT1cIm5vZGUgbm9kZV9yb290XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibm9kZV90ZXh0XCI+U3Rha2Vob2xkZXJzPC9kaXY+XG4gIDwvZGl2PlxuXG4gIHsvKiA8IS0tUklHSFQtLT4gKi99XG4gIDxvbCBjbGFzc05hbWU9XCJjaGlsZHJlbiBjaGlsZHJlbl9yaWdodGJyYW5jaFwiPlxuICAgIDxsaSBjbGFzc05hbWU9XCJjaGlsZHJlbl9pdGVtXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5vZGVcIj5cbiAgICAgICAgPGRpdiBpZD1cIlIxXCIgY2xhc3NOYW1lPVwibm9kZV90ZXh0XCI+UGF0aWVudHMgJiA8YnIvPiBuZXh0IG9mIGtpbiA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG9sIGNsYXNzTmFtZT1cImNoaWxkcmVuXCI+XG4gICAgICAgIDxsaSBjbGFzc05hbWU9XCJjaGlsZHJlbl9pdGVtXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJub2RlXCI+XG4gICAgICAgICAgICA8ZGl2IGlkPVwiUjEuMVwiIGNsYXNzTmFtZT1cIm5vZGVfdGV4dFwiPk1heDwvZGl2PlxuICAgICAgICAgICAgXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzc05hbWU9XCJjaGlsZHJlbl9pdGVtXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJub2RlXCI+XG4gICAgICAgICAgICA8ZGl2IGlkPVwiUjEuMlwiIGNsYXNzTmFtZT1cIm5vZGVfdGV4dFwiPkp1bGlhPC9kaXY+XG4gICAgICAgICAgICBcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPGxpIGNsYXNzTmFtZT1cImNoaWxkcmVuX2l0ZW1cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5vZGVcIj5cbiAgICAgICAgICAgIDxkaXYgaWQ9XCJSMS4zXCIgY2xhc3NOYW1lPVwibm9kZV90ZXh0XCI+Sm9zaHVhPC9kaXY+XG4gICAgICAgICAgICBcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvb2w+XG4gICAgPC9saT5cbiAgICA8bGkgY2xhc3NOYW1lPVwiY2hpbGRyZW5faXRlbVwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJub2RlXCI+XG4gICAgICAgIDxkaXYgaWQ9XCJSMlwiIGNsYXNzTmFtZT1cIm5vZGVfdGV4dFwiPkFjYWRlbWlhPC9kaXY+XG4gICAgICAgIFxuICAgICAgPC9kaXY+XG4gICAgICA8b2wgY2xhc3NOYW1lPVwiY2hpbGRyZW5cIj5cbiAgICAgICAgPGxpIGNsYXNzTmFtZT1cImNoaWxkcmVuX2l0ZW1cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5vZGVcIj5cbiAgICAgICAgICAgIDxkaXYgaWQ9XCJSMi4xXCIgY2xhc3NOYW1lPVwibm9kZV90ZXh0XCI+TWF0dGlqczwvZGl2PlxuICAgICAgICAgICAgXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzc05hbWU9XCJjaGlsZHJlbl9pdGVtXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJub2RlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5vZGVfdGV4dFwiPlIyLjI8L2Rpdj5cbiAgICAgICAgICAgIFxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2xpPlxuICAgICAgICA8bGkgY2xhc3NOYW1lPVwiY2hpbGRyZW5faXRlbVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibm9kZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJub2RlX3RleHRcIj5SMi4zPC9kaXY+XG4gICAgICAgICAgICBcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPGxpIGNsYXNzTmFtZT1cImNoaWxkcmVuX2l0ZW1cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5vZGVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibm9kZV90ZXh0XCI+UjIuNDwvZGl2PlxuICAgICAgICAgICAgXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L29sPlxuICAgIDwvbGk+XG4gICAgPGxpIGNsYXNzTmFtZT1cImNoaWxkcmVuX2l0ZW1cIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibm9kZVwiPlxuICAgICAgICA8ZGl2IGlkPVwiUjNcIiBjbGFzc05hbWU9XCJub2RlX3RleHRcIj5Tb2NpZXR5PC9kaXY+XG4gICAgICAgIFxuICAgICAgPC9kaXY+XG4gICAgICA8b2wgY2xhc3NOYW1lPVwiY2hpbGRyZW5cIj5cbiAgICAgICAgPGxpIGNsYXNzTmFtZT1cImNoaWxkcmVuX2l0ZW1cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5vZGVcIj5cbiAgICAgICAgICAgIDxkaXYgaWQ9XCJSMy4xXCIgY2xhc3NOYW1lPVwibm9kZV90ZXh0XCI+S3JhbmtrLjwvZGl2PlxuICAgICAgICAgICAgXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzc05hbWU9XCJjaGlsZHJlbl9pdGVtXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJub2RlXCI+XG4gICAgICAgICAgICA8ZGl2IGlkPVwiUjMuMlwiIGNsYXNzTmFtZT1cIm5vZGVfdGV4dFwiPkV0aGlrPC9kaXY+XG4gICAgICAgICAgICBcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPGxpIGNsYXNzTmFtZT1cImNoaWxkcmVuX2l0ZW1cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5vZGVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibm9kZV90ZXh0XCI+UjMuMzwvZGl2PlxuICAgICAgICAgICAgXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L29sPlxuICAgIDwvbGk+XG4gIDwvb2w+XG4gICAgPC9kaXY+XG5cblxuXG5cblxuICApXG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGlkVGFiTGluZSh7YmVydWYsIHRhZ2VuZCwgbGFuZ306e2JlcnVmOiBzdHJpbmcsIHRhZ2VuZDogc3RyaW5nLCBsYW5nOiBzdHJpbmd9KXtcbiAgbGV0IGNsID0gXCJ0LXRhZyBcIiArIHRhZ2VuZFxuICByZXR1cm4oXG4gICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbH0+XG4gICAgICAgICAgICAgICAge2JlcnVmfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+IE9yaWdpbmFsIGxhbmd1YWdlOiB7bGFuZ308L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKVxufSIsICJpbXBvcnQgU2lkZWJhciBmcm9tIFwiLi4vY29tcG9uZW50cy9TaWRlYmFyXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBIcFNpZGViYXIoKXtcbiAgICByZXR1cm4oXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTIgZC1ub25lIGQtbGctYmxvY2tcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3RpY2t5LXRvcFwiPlxuICAgICAgICAgICAgICAgIDxTaWRlYmFyIG51bXM9e1tcIk92ZXJ2aWV3XCIsIFwiVGltZWxpbmVcIiwgXCJJbnNwaXJhdGlvblwiLCBcIk1ldGhvZHNcIiwgXCJBbmFseXNpc1wiLCBcIlJlZmxlY3Rpb25cIiwgXCJJbXBsZW1lbnRhdGlvblwiXX0+PC9TaWRlYmFyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIClcbn0iLCAiaW1wb3J0IHsgQkZITW9yZUJ1dHRvbiB9IGZyb20gXCIuL0J1dHRvbnNcIjtcblxuXG5cblxuaW50ZXJmYWNlIEl0ZW1Qcm9wcyB7XG4gICAgZGF0ZTogc3RyaW5nICxcbiAgICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xuICAgIHRhZzogc3RyaW5nLCBcbiAgICBjb2xvcjogc3RyaW5nLFxuICAgIGNzc3RhZzogc3RyaW5nXG59XG5cbi8qIGltcG9ydCBJbWFnZUV2ZW50IGZyb20gJy4vSW1hZ2VFdmVudC50c3gnO1xuaW1wb3J0IFVybEJ1dHRvbiBmcm9tICcuL1VybEJ1dHRvbi50c3gnOyAqL1xuXG5cbmV4cG9ydCBjb25zdCBUaW1lbGluZUl0ZW0gID0gKHsgZGF0ZSwgdGFnLCBjb2xvciwgY2hpbGRyZW4sIGNzc3RhZyB9Okl0ZW1Qcm9wcykgPT4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwidGltZWxpbmUtaXRlbVwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpbWVsaW5lLWl0ZW0tY29udGVudFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGFnXCIgc3R5bGU9e3sgYmFja2dyb3VuZDogY29sb3IgfX0+XG4gICAgICAgICAgICAgICAge3RhZ31cbiAgICAgICAgICAgIDwvc3Bhbj4gXG4gICAgICAgICAgICA8dGltZT57ZGF0ZX08L3RpbWU+XG4gICAgICAgICAgICA8aHIvPlxuICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPEJGSE1vcmVCdXR0b24gaXQ9e2Nzc3RhZ30+PC9CRkhNb3JlQnV0dG9uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiY2lyY2xlXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4pO1xuXG5cblxuZXhwb3J0IGZ1bmN0aW9uIE15VGltZWxpbmUgKCkge1xuICAgIHJldHVybihcbiAgICAgICAgPD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGltZWxpbmUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J3RpbWVsaW5lLWJlZ2luJz5cbiAgICAgICAgICAgICAgICBPcGVuaW5nXG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8VGltZWxpbmVJdGVtXG4gICAgICAgICAgICAgICAgZGF0ZT0nU2NpZW50aWZpYyBUYWxrIEkuJ1xuICAgICAgICAgICAgICAgIHRhZz0gJ1RhbGtzJ1xuICAgICAgICAgICAgICAgIGNvbG9yPSd2YXIoLS1saWdodGJsdWUpJ1xuICAgICAgICAgICAgICAgIGNzc3RhZz1cInRhbGtvbmVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+U2NpZW50aWZpYyBUYWxrIDEgYnkgS3Jpc3RpYW4gTVx1MDBGQ2xsZXIgYW5kIFJhbSBTaGFrYXI8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJ0YWxrb25lXCIgc3R5bGU9e3tkaXNwbGF5OiBcIm5vbmVcIn19PlxuICAgICAgICAgICAgICAgICAgICAgICAgU28gbXVjaCBtb3JlXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgey8qIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbWFnZUV2ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRlPVwiNC8xMy8xOVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0PVwiWW91IGNhbiBlbWJlZCBpbWFnZXMuLi5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9yZXMuY2xvdWRpbmFyeS5jb20vZG92b3E4am91L2ltYWdlL3VwbG9hZC92MTU2NDc3MjE5NC9qZWxseWZpc2guanBnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cImplbGx5ZmlzaCBzd2ltbWluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBjcmVkaXQ9XCJQaG90byBieSBbQHRhdmkwMDRdKGh0dHBzOi8vdW5zcGxhc2guY29tL0B0YXZpMDA0KVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9J1NjaWVudGlmaWMgVGFsayBJLic+XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VXJsQnV0dG9uIGhyZWY9XCJodHRwczovL3Vuc3BsYXNoLmNvbS9zZWFyY2gvcGhvdG9zL3VuZGVyc2VhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpZXcgbW9yZSB1bmRlcnNlYSBwaG90b3NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9VcmxCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbWFnZUV2ZW50PiAqL31cblxuICAgICAgICAgICAgICAgIDwvVGltZWxpbmVJdGVtPlxuICAgICAgICAgICAgICAgIDxUaW1lbGluZUl0ZW1cbiAgICAgICAgICAgICAgICBkYXRlPSdIb3cgdG8gV2lraSdcbiAgICAgICAgICAgICAgICB0YWc9J1dvcmtzaG9wIFNlc3Npb24gSS4nXG4gICAgICAgICAgICAgICAgY29sb3I9J3ZhcigtLXRleHQtcHJpbWFyeSknXG4gICAgICAgICAgICAgICAgY3NzdGFnPVwid2lraXdvcmtzaG9wXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4+TGVhcm5pbmcgdGhlIGJhc2ljcyBvZiBXaWtpIGNvZGluZyBhbmQgZGVzaWduLiBJbiB0aGlzIHdvcmtzaG9wLCB0aGUgcGFydGljaXBhbnRzIGdlaW5lZCBleHBlcnRpc2UgdG8gZWxldmF0ZSB0aGVpciB0ZWFtcyB3aWtpLlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwid2lraXdvcmtzaG9wXCIgc3R5bGU9e3tkaXNwbGF5OiBcIm5vbmVcIn19PlxuICAgICAgICAgICAgICAgICAgICAgICAgU28gbXVjaCBtb3JlXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9UaW1lbGluZUl0ZW0+XG4gICAgICAgICAgICAgICAgPFRpbWVsaW5lSXRlbVxuICAgICAgICAgICAgICAgIGRhdGU9J0hvdyB0byBTeW5CaW8nXG4gICAgICAgICAgICAgICAgdGFnPSdXb3Jrc2hvcCBTZXNzaW9uIEkuJ1xuICAgICAgICAgICAgICAgIGNvbG9yPSd2YXIoLS10ZXh0LXByaW1hcnkpJ1xuICAgICAgICAgICAgICAgIGNzc3RhZz1cInN5bndvcmtzaG9wXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4+RGVzaWduIGdlbmV0aWMgY29uc3RydWN0cyBhbmQgcmUtd3JpdGUgdGhlIGdlbm9taWMgY29kZSwgYW5kIHBsYW4gZXhwZXJpbWVudHMgdXNpbmcgQUkuIExlYXJuIGhvdyB0byBlZmZlY3RpdmVseSBidWlsZCBnZW5ldGljIGNpcmN1aXQgc3lzdGVtcyBmb3IgaW1wbGVtZW50YXRpb24gaW4geW91ciBpR0VNIHByb2plY3QuXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJzeW53b3Jrc2hvcFwiIHN0eWxlPXt7ZGlzcGxheTogXCJub25lXCJ9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFNvIG11Y2ggbW9yZVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvVGltZWxpbmVJdGVtPlxuICAgICAgICAgICAgICAgIDxUaW1lbGluZUl0ZW1cbiAgICAgICAgICAgICAgICBkYXRlPSdIb3cgdG8gdXNlIEFJIGFzIGEgc2NpZW50aXN0J1xuICAgICAgICAgICAgICAgIHRhZz0nV29ya3Nob3AgU2Vzc2lvbiBJLidcbiAgICAgICAgICAgICAgICBjb2xvcj0ndmFyKC0tdGV4dC1wcmltYXJ5KSdcbiAgICAgICAgICAgICAgICBjc3N0YWc9XCJhaXdvcmtzaG9wXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxoNT5Nb2Rlcm4gcHJvYmxlbXMgcmVxdWlyZSBtb2Rlcm4gc29sdXRpb25zPC9oNT5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+Q29tcHV0YXRpb25hbCB0ZWNobm9sb2dpZXMgYXJlIGdldHRpbmcgbW9yZSBpbiB0aGUgZm9jdXMgb2Ygc2NpZW50aWZpYyByZXNlYXJjaC4gSW50ZWdyYXRpb24gb2YgZ2VuZXJhdGl2ZSBLSSBsaWtlIEdlbkFJIGJ5cGFzcyBsaW1pdGF0aW9ucyBhbmQgb2ZmZXJzIHBvdGVudGlhbCByaXNrcyAtIGxlYXJuIGhvdyB0byBpbXBsZW1lbnQgQXJ0aWZpY2lhbCBJbnRlbGxpZ2VuY2UuXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cImFpd29ya3Nob3BcIiBzdHlsZT17e2Rpc3BsYXk6IFwibm9uZVwifX0+XG4gICAgICAgICAgICAgICAgICAgICAgICBTbyBtdWNoIG1vcmVcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IFxuICAgICAgICAgICAgICAgIDwvVGltZWxpbmVJdGVtPlxuICAgICAgICAgICAgICAgIDxUaW1lbGluZUl0ZW1cbiAgICAgICAgICAgICAgICBkYXRlPSdTY2llbnRpZmljIFRhbGsgSUkuJ1xuICAgICAgICAgICAgICAgIHRhZz0gJ1RhbGtzJ1xuICAgICAgICAgICAgICAgIGNvbG9yPSd2YXIoLS1saWdodGJsdWUpJ1xuICAgICAgICAgICAgICAgIGNzc3RhZz1cInRhbGt0d29cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+U2NpZW50aWZpYyBUYWxrIDIgYnkgS2FybGEgV2FnbmVyPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwidGFsa3R3b1wiIHN0eWxlPXt7ZGlzcGxheTogXCJub25lXCJ9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFNvIG11Y2ggbW9yZVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gXG4gICAgICAgICAgICAgICAgPC9UaW1lbGluZUl0ZW0+XG4gICAgICAgICAgICAgICAgPFRpbWVsaW5lSXRlbVxuICAgICAgICAgICAgICAgIGRhdGU9J1RlYW0gcHJvamVjdCBwcmVzZW50YXRpb25zJ1xuICAgICAgICAgICAgICAgIHRhZz0gJ1RlYW0gcHJlc2VudGF0aW9ucydcbiAgICAgICAgICAgICAgICBjb2xvcj0ndmFyKC0tYWNjZW50LXByaW1hcnknXG4gICAgICAgICAgICAgICAgY3NzdGFnPVwidGVhbXByZXNcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGg1PlRlYW0gcHJvamVjdCBwcmVzZW50YXRpb25zPC9oNT5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+XG5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwidGVhbXByZXNcIiBzdHlsZT17e2Rpc3BsYXk6IFwibm9uZVwifX0+XG4gICAgICAgICAgICAgICAgICAgICAgICBTbyBtdWNoIG1vcmVcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IFxuICAgICAgICAgICAgICAgIDwvVGltZWxpbmVJdGVtPlxuICAgICAgICAgICAgICAgIDxUaW1lbGluZUl0ZW1cbiAgICAgICAgICAgICAgICBkYXRlPSdQb3N0ZXIgRXhoaWJpdGlvbiBCb290aCdcbiAgICAgICAgICAgICAgICB0YWc9ICdUZWFtIHByZXNlbnRhdGlvbnMnXG4gICAgICAgICAgICAgICAgY29sb3I9J3ZhcigtLWFjY2VudC1wcmltYXJ5KSdcbiAgICAgICAgICAgICAgICBjc3N0YWc9XCJ0ZWFtYm9vdGhcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGg1PlBvc3RlciBFeGhpYml0aW9uIEJvb3RoIDwvaDU+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPlxuXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cInRlYW1ib290aFwiIHN0eWxlPXt7ZGlzcGxheTogXCJub25lXCJ9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFNvIG11Y2ggbW9yZVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gXG4gICAgICAgICAgICAgICAgPC9UaW1lbGluZUl0ZW0+XG4gICAgICAgICAgICAgICAgPFRpbWVsaW5lSXRlbVxuICAgICAgICAgICAgICAgIGRhdGU9J0hvdyB0byB3b3JrIHNhZmUnXG4gICAgICAgICAgICAgICAgdGFnPSdXb3Jrc2hvcCBTZXNzaW9uIElJLidcbiAgICAgICAgICAgICAgICBjb2xvcj0ndmFyKC0tdGV4dC1wcmltYXJ5KSdcbiAgICAgICAgICAgICAgICBjc3N0YWc9XCJzYWZld29ya3Nob3BcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGg1PkFib3V0IER1YWwtdXNlIGFuZCBCaW9zYWZldHk8L2g1PlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj5Ob3ZlbCB0ZWNobm9sb2dpZXMgb3BlbmVkIHBvc3NpYmlsaXRpZXMgYW5kIHJpc2tzLiBMZWFybiBob3cgeW91IGltcGxlbWVudCBTYWZldHkgYW5kIFNlY3VyaXR5IFN0cmF0ZWdpZXMgd2l0aGluIHlvdXIgcHJvamVjdCBhbmQgdGhpbmsgbW9yZSByZXNwb25zaWJsZSBpbiB0ZXJtcyBvZiBEdWFsIFVzZS5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwic2FmZXdvcmtzaG9wXCIgc3R5bGU9e3tkaXNwbGF5OiBcIm5vbmVcIn19PlxuICAgICAgICAgICAgICAgICAgICAgICAgU28gbXVjaCBtb3JlXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiBcbiAgICAgICAgICAgICAgICA8L1RpbWVsaW5lSXRlbT5cbiAgICAgICAgICAgICAgICA8VGltZWxpbmVJdGVtXG4gICAgICAgICAgICAgICAgZGF0ZT0nSG93IHRvIENvbW11bmljYXRlIFNjaWVuY2UnXG4gICAgICAgICAgICAgICAgdGFnPSdXb3Jrc2hvcCBTZXNzaW9uIElJLidcbiAgICAgICAgICAgICAgICBjb2xvcj0ndmFyKC0tdGV4dC1wcmltYXJ5KSdcbiAgICAgICAgICAgICAgICBjc3N0YWc9XCJjb21td29ya3Nob3BcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgIEV4cGVyaWVuY2UgaG93IHNjaWVuY2UgY29tbXVuaWNhdGlvbiBjb3VsZCBiZS4gTGVhcm4gY3JlYXRpdmUgYW5kIGZ1bm55IHdheXMgdG8gY29tbXVuaWNhdGUgZGlmZmljdWx0IHRvcGljcy4gXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGJyPjwvYnI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPlRoaW5rIG91dHNpZGUgdGhlIGJveCBhbmQgdHJhaW4geW91ciBza2lsbHMuIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjb21td29ya3Nob3BcIiBzdHlsZT17e2Rpc3BsYXk6IFwibm9uZVwifX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnI+PC9icj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5TZXR0aW5nPC9oNj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyB3b3Jrc2hvcCB3YXMgb2ZmZXJlZCB0byB1cyBieSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuc3R1ZC1zY2ljb20uZGUvXCI+U3R1ZFNjaUNvbTwvYT4uXG4gICAgICAgICAgICAgICAgICAgICAgICBTdHVkU2NpQ29tIGlzIGFuIGluaXRpYXRpdmUgZm9yIHNjaWVuY2UgY29tbXVuaWNhdGlvbiBieSBzdHVkZW50cyBmb3Igc3R1ZGVudHMgaW4gR2VybWFueS4gXG4gICAgICAgICAgICAgICAgICAgICAgICBUaGV5IGhlbGQgdGhpcyB3b3Jrc2hvcCBmb3IgdXMgZm9yIHRoZSB2ZXJ5IGZpcnN0IHRpbWUgYW5kIHdlIGFyZSBnbGFkIHRoYXQgd2Ugd2VyZSBhYmxlIHRvIG9mZmVyIHRoZSBcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwcmlzaW5nIFN0dWRTY2lDb20gdGVhbSBhIHBsYXRmb3JtIHRvIHRyeSBvdXQgdGhpcyBraW5kIG9mIG91dHJlYWNoLiBJbiBhZGRpdGlvbiwgd2Ugd2VyZSBhYmxlIHRvIGdhaW4gXG4gICAgICAgICAgICAgICAgICAgICAgICBrbm93bGVkZ2UgYWJvdXQgcHJvcGVyIHNjaWVuY2UgY29tbXVuaWNhdGlvbiBcdTIwMTMgIGEgY2xlYXIgd2luLXdpbiBzaXR1YXRpb24gZm9yIGFsbCBvZiB1cyFcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5XaGF0IGRpZCB3ZSBsZWFybj88L2g2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICBKdWxpYSBLYWxpbm93c2tpLCBQaEQgYXQgQmllbGVmZWxkIFVuaXZlcnNpdHkgYW5kIEZvcmVpZ24gTWluaXN0ZXIgb2YgU3R1ZFNjaUNvbSwgdG9nZXRoZXIgd2l0aCBDYXJvbGluIE1hbG1lbmRpZXIsIFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWVyIHBoeXNpY3Mgc3R1ZGVudCBhbmQgbm93IG9yZ2FuaXplciBpbiB0aGUgU3R1ZFNjaUNvbSB0ZWFtLCBpbnRyb2R1Y2VkIHVzIHRvIHRoZSB0aGVvcmllcyBhbmQgIHByYWN0aWNlIFxuICAgICAgICAgICAgICAgICAgICAgICAgb2YgZGlmZmVyZW50IHR5cGVzIG9mIHNjaWVuY2UgY29tbXVuaWNhdGlvbiBhbmQgaG93IHRvIGRldmVsb3AgYSBjb21tdW5pY2F0aW9uIHN0cmF0ZWd5LiBcbiAgICAgICAgICAgICAgICAgICAgICAgIEluIGRldGFpbCwgd2Ugd2VyZSB0YXVnaHQgdG8gYXNrIG91cnNlbHZlcyBzZXZlcmFsIHF1ZXN0aW9ucyB0byBkZWZpbmUgb3VyIHRvcGljLCB0aGUgbWVkaXVtIG9mIFxuICAgICAgICAgICAgICAgICAgICAgICAgY29tbXVuaWNhdGlvbiwgYXMgd2VsbCBhcyB0aGUgY2hhcmFjdGVyaXphdGlvbiBvZiBvdXIgdGFyZ2V0IGdyb3VwIGFuZCB0aGUgcGxhbm5lZCBhY2hpZXZlbWVudCB3aXRoIG91ciBcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjaWVuY2UgY29tbXVuaWNhdGlvbi4gXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3Bob3Rvcy9vdGhlci92b3J0cmFnLXNjaWNvbS1iZmgtc2NyZWVuc2hvdC5qcGdcIj48L2ltZz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPlRoZSBrZXkgbWVzc2FnZSBmb3IgdXMgd2FzIHRvIHBsYW4gdGhlIHNjaWVuY2UgY29tbXVuaWNhdGlvbiBiZWZvcmUgd2UgZGl2ZSBpbiBhbmQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldCBhdWRpZW5jZSBnZXRzIHRoZSBtZXNzYWdlIHdlIHdhbnQgdG8gc2VuZC4gIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5JbXBsZW1lbnRhdGlvbjwvaDY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgIEFmdGVyd2FyZHMsIHRoZSBhdHRlbmRpbmcgaUdFTSB0ZWFtcyB0YWxrZWQgYWJvdXQgdGhlaXIgc2NpZW5jZSBjb21tdW5pY2F0aW9uIHBsYW5zIGFuZCBob3cgdGhleSBjb3VsZCBpbXByb3ZlIHRoZW0gXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2luZyB0aGUgc2tpbGxzIGxlYXJuZWQgaW4gdGhpcyB3b3Jrc2hvcC4gT3VyIHRlYW0gcmV2aXNlZCB0aGVpciBwbGFucyBmb3IgZXhwbGFpbmluZyBnZW5lIGVkaXRpbmcgdG8gXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbiBhbmQgc3RhcnRlZCBkZXZlbG9waW5nIGV4cGVyaW1lbnRzIHRvIGhlbHAgdGhlbSBiZXR0ZXIgdW5kZXJzdGFuZCBjeXN0aWMgZmlicm9zaXMsIHdoaWNoIHdlIFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJlc2VudGVkIGxhdGVyIG9udG8gdGhlIHB1YmxpYyBhdCBcdTIwMUNEZXIgVGV1dG8gcnVmdCFcdTIwMUQgW0xpbmtdLCBhbiBldmVudCBpbiBCaWVsZWZlbGQgdG8gY29ubmVjdCB0aGUgbG9jYWwgXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3B1bGF0aW9uIHdpdGggcmVnaW9uYWwgY29tcGFuaWVzIGFuZCBpbnN0aXR1dGVzIHRvIGluZm9ybSB0aGVtIGFib3V0IHRoZWlyIHdvcmsgLSBpbmNsdWRpbmcgb3VyIGlHRU0gdGVhbSEgXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgXG4gICAgICAgICAgICAgICAgPC9UaW1lbGluZUl0ZW0+XG4gICAgICAgICAgICAgICAgPFRpbWVsaW5lSXRlbVxuICAgICAgICAgICAgICAgIGRhdGU9J0hvdyB0byBQaXRjaCBZb3VyIFByb2plY3QnXG4gICAgICAgICAgICAgICAgdGFnPSdXb3Jrc2hvcCBTZXNzaW9uIElJLidcbiAgICAgICAgICAgICAgICBjb2xvcj0ndmFyKC0tdGV4dC1wcmltYXJ5KSdcbiAgICAgICAgICAgICAgICBjc3N0YWc9XCJwaXRjaFwiXG4gICAgICAgICAgICAgICAgPiBcbiAgICAgICAgICAgICAgICA8c3Bhbj5JbWFnZSB5b3UgaGF2ZSBvbmx5IHRocmVlIG1pbnV0ZXMgd2l0aCB5b3VyIGJvc3MgdG8gc2VsbCB5b3VyIGlkZWEuLi4gXG4gICAgICAgICAgICAgICAgQWZ0ZXIgb3VyIHdvcmtzaG9wIHlvdSBsZWFybmVkIHRlY2huaXF1ZXMgdG8gc2VsbCBldmVyeSBwZW4gYW5kIGV2ZW4gbW9yZSB0byBldmVyeSBib3NzIG9uIHRoZSBwbGFuZXQuICAgICAgIFxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwicGl0Y2hcIiBzdHlsZT17e2Rpc3BsYXk6IFwibm9uZVwifX0+XG4gICAgICAgICAgICAgICAgICAgICAgICBTbyBtdWNoIG1vcmVcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICBcbiAgICAgICAgICAgICAgICA8L1RpbWVsaW5lSXRlbT5cbiAgICAgICAgICAgICAgICA8VGltZWxpbmVJdGVtXG4gICAgICAgICAgICAgICAgZGF0ZT0nSG93IHRvIE11bHRpIE1lZGlhJ1xuICAgICAgICAgICAgICAgIHRhZz0nV29ya3Nob3AgU2Vzc2lvbiBJSS4nXG4gICAgICAgICAgICAgICAgY29sb3I9J3ZhcigtLXRleHQtcHJpbWFyeSknXG4gICAgICAgICAgICAgICAgY3NzdGFnPVwibXVsdGltZWRpYVwiXG4gICAgICAgICAgICAgICAgPiBcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICA8c3Bhbj5MZWFybiB0aGUgYmFzaWNzIG9mIGZpbG1tYWtpbmcgYW5kIHZpZGVvIHByb2R1Y3Rpb24uIFxuICAgICAgICAgICAgICAgIExvb2sgYmVoaW5kIHRoZSBzY2VuZXMgYW5kIGdldCBpbiB0b3VjaCB3aXRoIHByb2Zlc3Npb25hbHMuIFxuICAgICAgICAgICAgICAgIFRyYWluIHlvdXIgc2tpbGxzIHRvIGRpcmVjdCBpR0VNLXJlbGF0ZWQgdmlkZW9zIGFuZCBtb3ZpZXMuPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJtdWx0aW1lZGlhXCIgc3R5bGU9e3tkaXNwbGF5OiBcIm5vbmVcIn19PlxuICAgICAgICAgICAgICAgICAgICAgICAgU28gbXVjaCBtb3JlXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgXG4gICAgICAgICAgICAgICAgPC9UaW1lbGluZUl0ZW0+XG4gICAgICAgICAgICAgICAgPFRpbWVsaW5lSXRlbVxuICAgICAgICAgICAgICAgIGRhdGU9J1BhbmVsIERpc2N1c3Npb24nXG4gICAgICAgICAgICAgICAgdGFnPSAnVGFsa3MnXG4gICAgICAgICAgICAgICAgY29sb3I9J3ZhcigtLWxpZ2h0Ymx1ZSknXG4gICAgICAgICAgICAgICAgY3NzdGFnPVwicGFuZWxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+UGFuZWwgRGlzY3Vzc2lvbjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cInBhbmVsXCIgc3R5bGU9e3tkaXNwbGF5OiBcIm5vbmVcIn19PlxuICAgICAgICAgICAgICAgICAgICAgICAgU28gbXVjaCBtb3JlXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgXG4gICAgICAgICAgICAgICAgPC9UaW1lbGluZUl0ZW0+XG4gICAgICAgICAgICAgICAgPFRpbWVsaW5lSXRlbVxuICAgICAgICAgICAgICAgIGRhdGU9J2lHRU1lciBUZWQgVGFsa3MnXG4gICAgICAgICAgICAgICAgdGFnPSAnVGFsa3MnXG4gICAgICAgICAgICAgICAgY29sb3I9J3ZhcigtLWxpZ2h0Ymx1ZSknXG4gICAgICAgICAgICAgICAgY3NzdGFnPVwidGVkdGFsa1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj5pR0VNZXIgVGVkIFRhbGtzPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwidGVkdGFsa1wiIHN0eWxlPXt7ZGlzcGxheTogXCJub25lXCJ9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFNvIG11Y2ggbW9yZVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gIFxuICAgICAgICAgICAgICAgIDwvVGltZWxpbmVJdGVtPlxuICAgICAgICAgICAgICAgIDxUaW1lbGluZUl0ZW1cbiAgICAgICAgICAgICAgICBkYXRlPSdTY2llbmNlIFNsYW0gU2Vzc2lvbidcbiAgICAgICAgICAgICAgICB0YWc9ICdUYWxrcydcbiAgICAgICAgICAgICAgICBjb2xvcj0ndmFyKC0tbGlnaHRibHVlKSdcbiAgICAgICAgICAgICAgICBjc3N0YWc9XCJzbGFtXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPlNjaWVuY2UgU2xhbSBTZXNzaW9uPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwic2xhbVwiIHN0eWxlPXt7ZGlzcGxheTogXCJub25lXCJ9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFNvIG11Y2ggbW9yZVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gIFxuICAgICAgICAgICAgICAgIDwvVGltZWxpbmVJdGVtPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSd0aW1lbGluZS1lbmQnPlxuICAgICAgICAgICAgICAgICAgICBBd2FyZCBDZXJlbW9ueVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDwvPlxuICAgICAgICApXG4gICAgXG59XG4iLCAiLyogICovXG5cbmNvbnN0IGltYWdlcyA9IFtcbiAge3NyYzpcImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3Bob3Rvcy9tZWV0dXAvYmFkZ2VzLmpwZWdcIiwgd2lkdGg6IDMyMCwgaGVpZ2h0OiAyMTIsIHRhYnM6IFwiXCJ9LFxuICB7c3JjOlwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvcGhvdG9zL21lZXR1cC9qb2Vybi5qcGVnXCIsICB3aWR0aDogMzIwLCBoZWlnaHQ6IDIxMiwgdGFiczogXCJcIn0sXG4gIHtzcmM6XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9waG90b3MvbWVldHVwL2NoZWtpbi5qcGVnXCIsIHdpZHRoOiAzMjAsIGhlaWdodDogMjEyLCB0YWJzOiBcIlwifSxcbiAge3NyYzpcImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3Bob3Rvcy9tZWV0dXAvc2luYW4uanBlZ1wiLCAgd2lkdGg6IDMyMCwgaGVpZ2h0OiAyMTIsIHRhYnM6IFwiXCJ9LFxuICB7c3JjOlwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvcGhvdG9zL21lZXR1cC9wYXJ0eS5qcGVnXCIsIHdpZHRoOiAzMjAsIGhlaWdodDogMjEyLCB0YWJzOiBcIlwifSxcbiAge3NyYzpcImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3Bob3Rvcy9tZWV0dXAvb3JnYXRlYW0uanBlZ1wiLCB3aWR0aDogMzIwLCBoZWlnaHQ6IDIxMiwgdGFiczogXCJcIn0sXG4gIHtzcmM6XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9waG90b3MvbWVldHVwL2hhbGwuanBlZ1wiLCB3aWR0aDogMzIwLCBoZWlnaHQ6IDIxMiwgdGFiczogXCJcIn0sXG4gIHtzcmM6XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9waG90b3MvbWVldHVwL2J5ZTEuanBlZ1wiLCB3aWR0aDogMzIwLCBoZWlnaHQ6IDIxMiwgdGFiczogXCJcIn0sXG4gIHtzcmM6XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9waG90b3MvbWVldHVwL3VuaS5qcGVnXCIsIHdpZHRoOiAzMjAsIGhlaWdodDogMjEyLCB0YWJzOiBcIlwifSxcbiAge3NyYzpcImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3Bob3Rvcy9tZWV0dXAvdGFsa2luZy5qcGVnXCIsIHdpZHRoOiAzMjAsIGhlaWdodDogMjEyLCB0YWJzOiBcIlwifSxcbiAge3NyYzpcImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3Bob3Rvcy9tZWV0dXAva3Jpc3RpYW4uanBlZ1wiLCAgd2lkdGg6IDMyMCwgaGVpZ2h0OiAyMTIsIHRhYnM6IFwiXCJ9LFxuICB7c3JjOlwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvcGhvdG9zL21lZXR1cC9hZmZlLmpwZWdcIiwgd2lkdGg6IDMyMCwgaGVpZ2h0OiAyMTIsIHRhYnM6IFwiXCJ9LFxuICB7c3JjOlwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvcGhvdG9zL21lZXR1cC9tYXJnYnVyZy5qcGVnXCIsICB3aWR0aDogMzIwLCBoZWlnaHQ6IDIxMiwgdGFiczogXCJcIn0sXG4gIHtzcmM6XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9waG90b3MvbWVldHVwL2RpZXR6LmpwZWdcIiwgd2lkdGg6IDMyMCwgaGVpZ2h0OiAyMTIsIHRhYnM6IFwiXCJ9LFxuICB7c3JjOlwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvcGhvdG9zL21lZXR1cC93YWdlbmluZ2VuLmpwZWdcIiwgd2lkdGg6IDMyMCwgaGVpZ2h0OiAyMTIsIHRhYnM6IFwiXCJ9LFxuICB7c3JjOlwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvcGhvdG9zL21lZXR1cC9hYWNoZW4uanBlZ1wiLCB3aWR0aDogMzIwLCBoZWlnaHQ6IDIxMiwgdGFiczogXCJcIn0sXG4gIHtzcmM6XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9waG90b3MvbWVldHVwL29yZ2F0ZWFtLmpwZWdcIiwgd2lkdGg6IDMyMCwgaGVpZ2h0OiAyMTIsIHRhYnM6IFwiXCJ9LFxuICB7c3JjOlwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvcGhvdG9zL21lZXR1cC9vcmdhdGVhbS5qcGVnXCIsIHdpZHRoOiAzMjAsIGhlaWdodDogMjEyLCB0YWJzOiBcIlwifSxcbiAge3NyYzpcImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3Bob3Rvcy9tZWV0dXAvYmFkZ2VzLmpwZWdcIiwgd2lkdGg6IDMyMCwgaGVpZ2h0OiAyMTIsIHRhYnM6IFwiXCJ9LFxuICB7c3JjOlwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvcGhvdG9zL21lZXR1cC9qb2Vybi5qcGVnXCIsICB3aWR0aDogMzIwLCBoZWlnaHQ6IDIxMiwgdGFiczogXCJcIn0sXG4gIHtzcmM6XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9waG90b3MvbWVldHVwL2NoZWtpbi5qcGVnXCIsIHdpZHRoOiAzMjAsIGhlaWdodDogMjEyLCB0YWJzOiBcIlwifSxcbiAge3NyYzpcImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3Bob3Rvcy9tZWV0dXAvc2luYW4uanBlZ1wiLCAgd2lkdGg6IDMyMCwgaGVpZ2h0OiAyMTIsIHRhYnM6IFwiXCJ9LFxuICB7c3JjOlwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvcGhvdG9zL21lZXR1cC9wYXJ0eS5qcGVnXCIsIHdpZHRoOiAzMjAsIGhlaWdodDogMjEyfSxcbiAge3NyYzpcImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3Bob3Rvcy9tZWV0dXAvb3JnYXRlYW0uanBlZ1wiLCB3aWR0aDogMzIwLCBoZWlnaHQ6IDIxMn0sXG4gIHtzcmM6XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9waG90b3MvbWVldHVwL29yZ2F0ZWFtLmpwZWdcIiwgd2lkdGg6IDMyMCwgaGVpZ2h0OiAyMTJ9LFxuICB7c3JjOlwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvcGhvdG9zL21lZXR1cC9vcmdhdGVhbS5qcGVnXCIsIHdpZHRoOiAzMjAsIGhlaWdodDogMjEyfSxcbiAge3NyYzpcImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3Bob3Rvcy9tZWV0dXAvb3JnYXRlYW0uanBlZ1wiLCB3aWR0aDogMzIwLCBoZWlnaHQ6IDIxMn0sXG4gIHtzcmM6XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9waG90b3MvbWVldHVwL29yZ2F0ZWFtLmpwZWdcIiwgd2lkdGg6IDMyMCwgaGVpZ2h0OiAyMTJ9LFxuXVxuXG5cblxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBCRkhHYWxsZXJ5KCl7XG4gIGxldCByb3dzID0gW11cbiAgZm9yICggbGV0IGkgPSAwOyAgaSA8IGltYWdlcy5sZW5ndGg7IGkrKyApe1xuICAgIHJvd3MucHVzaCg8ZGl2PjxpbWcgc3JjPXtpbWFnZXNbaV0uc3JjfS8+PC9kaXY+KSBcbiAgfVxuICAgIHJldHVybiggXG4gICAgICAgIDxkaXYgaWQ9XCJnYWxsZXJ5XCI+XG4gICAgICAgICAge3Jvd3N9XG4gICAgICAgIDwvZGl2PlxuICAgIClcbn1cblxuIiwgImltcG9ydCB7IERvd25sb2FkTGluayB9IGZyb20gXCIuL0J1dHRvbnNcIlxuXG5cbmV4cG9ydCBmdW5jdGlvbiBQREYoe2xpbmssIG5hbWV9OiB7bGluazogc3RyaW5nLCBuYW1lOnN0cmluZ30pe1xuICAgIHJldHVybihcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JvdyBhbGlnbi1pdGVtcy1jZW50ZXInPlxuICAgICAgICAgICAgICAgIDxpZnJhbWUgc3JjPXtsaW5rfSB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCI1MzB2d1wiIHRpdGxlPVwidGl0bGVcIiBjbGFzc05hbWU9J3NtYWxsLWknPlxuICAgICAgICAgICAgICAgIDwvaWZyYW1lPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdyb3cgZG93bmxvYWQtY29sJz5cbiAgICAgICAgICAgICAgICA8RG93bmxvYWRMaW5rIHVybD17bGlua30gZmlsZU5hbWU9e25hbWV9ID48L0Rvd25sb2FkTGluaz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgIClcbn1cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEJGSHBkZigpe1xuICAgIHJldHVybihcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JvdyBhbGlnbi1pdGVtcy1jZW50ZXInPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2NvbCc+XG4gICAgICAgICAgICA8UERGIGxpbms9J2h0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3BkZnMvYmZoLWZseWVyLWV1cm9wZWFuLW1lZXR1cC5wZGYnIG5hbWU9XCJiZmgtZmx5ZXItZXVyb3BlYW4tbWVldHVwLnBkZlwiLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2NvbC0yJz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2NvbCc+XG4gICAgICAgICAgICA8UERGIGxpbms9J2h0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3BkZnMvYmZoLW1lZXQtdXAtZ3VpZGVsaW5lLnBkZicgbmFtZT1cImJmaC1tZWV0LXVwLWd1aWRlbGluZS5wZGZcIi8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgIClcbn0iLCAiaW1wb3J0IHsgTXlUaW1lbGluZSB9IGZyb20gXCIuLi9jb21wb25lbnRzL015LVRpbWVsaW5lXCI7XG5pbXBvcnQgQkZIR2FsbGVyeSBmcm9tIFwiLi4vY29tcG9uZW50cy9waG90by1ncmlkXCI7XG5pbXBvcnQgQkZIcGRmIGZyb20gXCIuLi9jb21wb25lbnRzL3BkZnNcIjtcbmltcG9ydCB7IEgyfSBmcm9tIFwiLi4vY29tcG9uZW50cy9oZWFkaW5nc1wiO1xuaW1wb3J0IHsgQkZIU3R5bGVUYWJzIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvVGFic1wiO1xubGV0IHRhYmJ5cyA9IFtcbiAge1xuICAgIG5vZGU6IDxCRkhwZGY+PC9CRkhwZGY+LCBcbiAgICBjc3NuYW1lOiBcInBkZlwiLFxuICAgIGJ1dHRvbm5hbWU6IFwiUERGc1wiXG4gIH0sXG4gIHtcbiAgICBub2RlOiA8TXlUaW1lbGluZT48L015VGltZWxpbmU+LCBcbiAgICBjc3NuYW1lOiBcInRpbWVsaW5lXCIsXG4gICAgYnV0dG9ubmFtZTogXCJUaW1lbGluZVwiXG4gIH0sXG4gIHtcbiAgICBub2RlOiA8QkZIR2FsbGVyeS8+LFxuICAgIGNzc25hbWU6IFwiZ2FsbFwiLFxuICAgIGJ1dHRvbm5hbWU6IFwiR2FsbGVyeVwiXG4gIH0sXG4gIHtcbiAgICBub2RlOiA8QWJvdXQvPiwgXG4gICAgY3NzbmFtZTogXCJhYm91dFwiLFxuICAgIGJ1dHRvbm5hbWU6IFwiQWJvdXRcIlxuICB9XG5dXG5leHBvcnQgZnVuY3Rpb24gQmZoKCkge1xuICBcbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJcIiAvKiBzdHlsZT17eyBwYWRkaW5nVG9wOiBcIjV2d1wifX0gKi8+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiID5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiIHN0eWxlPXt7cG9zaXRpb246IFwicmVsYXRpdmVcIn19PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJleHBsb3JlXCI+XG4gICAgICAgICAgICA8YiBjbGFzc05hbWU9XCJmYW5jeVwiPkV4cGxvcmUhPC9iPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ2FsbC1hXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJnYWxsLWJcIiB0eXBlb2Y9XCJidXR0b25cIiBvbkNsaWNrPXtvcGVuQ2l0eSh7Y2l0eU5hbWU6IFwiYWJvdXRcIn0pfT5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9kZXNpZ24vaWNvbnMvdW5pdGVkLnBuZ1wiIGFsdD1cImEgaG91c2Ugb24gYSBtb3VudGFpblwiLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJnYWxsLWJcIiB0eXBlb2Y9XCJidXR0b25cIiAgb25DbGljaz17b3BlbkNpdHkoe2NpdHlOYW1lOiBcImdhbGxcIn0pfT5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9kZXNpZ24vaWNvbnMvZ2FsbGVyeS5wbmdcIiBhbHQ9XCJhIGhvdXNlIG9uIGEgbW91bnRhaW5cIi8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZ2FsbC1iXCIgdHlwZW9mPVwiYnV0dG9uXCIgb25DbGljaz17b3BlbkNpdHkoe2NpdHlOYW1lOiBcInRpbWVsaW5lXCJ9KX0gPlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L2Rlc2lnbi9pY29ucy90aW1lbGluZS5wbmdcIiBhbHQ9XCJhIGhvdXNlIG9uIGEgbW91bnRhaW5cIi8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZ2FsbC1iXCIgdHlwZW9mPVwiYnV0dG9uXCIgb25DbGljaz17b3BlbkNpdHkoe2NpdHlOYW1lOiBcInBkZlwifSl9PlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9kZXNpZ24vaWNvbnMvZmlsZS5wbmdcIiBhbHQ9XCJhIGhvdXNlIG9uIGEgbW91bnRhaW5cIi8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgICBcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnVmZmVyXCI+XG5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgPEJGSFN0eWxlVGFicyBkYXRhPXt0YWJieXN9IGNsYT1cInRhYmNvbnRlbnRcIj48L0JGSFN0eWxlVGFicz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC8+XG4gICk7XG59XG5cblxuXG5leHBvcnQgZnVuY3Rpb24gQWJvdXQoKXtcbiAgcmV0dXJuKFxuICAgIDxkaXY+XG4gICAgICA8SDIgdGV4dD1cIkFib3V0IE91ciBDb29wZXJhdGlvblwiLz5cbiAgICAgIDxwPk92ZXIgdGhlIHBhc3QgeWVhcnMsIHdlIGhhdmUgYWxsIG1hZGUgbWFueSBmcmllbmRzIGFuZCBleHBhbmRlZCBvdXIgc2NpZW50aWZpYyBuZXR3b3JrIGR1cmluZyB0aGUgaUdFTSBjb21wZXRpdGlvbiBhbmQgYWZ0ZXJ3YXJkcy4gVGhlIGlkZWEgYmVoaW5kIHRoZSBjb29wZXJhdGlvbiBiZXR3ZWVuIEJpZWxlZmVsZCwgRnJhbmtmdXJ0IGFuZCBIYW1idXJnIGlzIGJhc2VkIG9uIHRoZSBmcmllbmRzaGlwIHRoYXQgZm9ybWVyIHBhcnRpY2lwYW50cyBoYXZlIGdhaW5lZCBhbG9uZ3NpZGUgdGhlIGlHRU0gY29tcGV0aXRpb24uIE91ciBtaXNzaW9uIGlzIHRvIHByb21vdGUgZnV0dXJlIHByb2plY3RzIGFuZCBicmluZyB0ZWFtcyB0b2dldGhlci4gVGhlIGxvY2F0aW9uIG9mIHRoZSBCRkggRXVyb3BlYW4gTWVldC1VcCAyMDI0IHdpbGwgYWx0ZXJuYXRlIGJldHdlZW4gdGhlIHVuaXZlcnNpdGllcyBvZiBCaWVsZWZlbGQsIEZyYW5rZnVydCwgYW5kIEhhbWJ1cmcuIFdlIHdpc2ggeW91IGxvdHMgb2YgZnVuIGFuZCBob3BlIHRoYXQgdGhlIGlHRU0gY29tcGV0aXRpb24gZnVsZmlsbHMgeW91IGFzIG11Y2ggYXMgaXQgaGFzIGZ1bGZpbGxlZCB1cy48L3A+XG4gICAgICA8SDIgdGV4dD1cIkFib3V0IE5ldHdvcmtpbmdcIi8+IFxuICAgICAgPHA+V2Ugd2FudCB0byBjb25uZWN0IHdpdGggZWFjaCBvdGhlciEgQW5kIGluIHRoZSBsYXN0IHllYXJzLCBpR0VNIHRlYW1zIGFsbCBhcm91bmQgdGhlIHdvcmxkIGFyZSBnZXR0aW5nIHRvZ2V0aGVyIGFuZCBleGNoYW5nZSBmdW5ueSBtZW1lcyBvciBjb250YWN0IGRhdGEgdmlhIHN0aWNrZXJzLiBUaGVyZWZvcmUgd2UgZXN0YWJsaXNoIHRoZSBmaXJzdCBpR0VNIFRlYW1zIFN0aWNrZXIgQWxidW0gZXZlciBjcmVhdGVkLiBZb3Ugd2FudCB0byBwYXJ0aWNpcGF0ZSBpbnRvIHRoZSBiaWdnZXN0IHNvY2lhbCBuZXR3b3JraW5nIGV2ZW50LCBjb2xsZWN0IGFsbCBzdGlja2VycyBhbmQgd2luIHNwZWNpYWwgcHJpemVzPyBTaWduIHVwIGFuZCBnb3R0YSBjYXRjaCAnZW0gYWxsIVxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICApXG59XG5cblxuZnVuY3Rpb24gb3BlbkNpdHkoe2NpdHlOYW1lfTp7Y2l0eU5hbWU6IHN0cmluZ30pIHtcbiAgY29uc3Qgb3BlbmNpdHkgPSAgKGV2ZW50IDogUmVhY3QuTW91c2VFdmVudDxIVE1MQnV0dG9uRWxlbWVudCwgTW91c2VFdmVudD4pID0+e1xuICAgIHZhciBpLCB0YWJjb250ZW50LCB0YWJsaW5rcztcbiAgdGFiY29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXCJ0YWJjb250ZW50XCIpO1xuICBmb3IgKGkgPSAwOyBpIDwgdGFiY29udGVudC5sZW5ndGg7IGkrKykge1xuICAgICh0YWJjb250ZW50W2ldIGFzIEhUTUxFbGVtZW50KS5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XG4gIH1cbiAgdGFibGlua3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwiZ2FsbC1iXCIpO1xuICBmb3IgKGkgPSAwOyBpIDwgdGFibGlua3MubGVuZ3RoOyBpKyspIHtcbiAgICB0YWJsaW5rc1tpXS5jbGFzc05hbWUgPSB0YWJsaW5rc1tpXS5jbGFzc05hbWUucmVwbGFjZShcIiBiZy1hY3RcIiwgXCJcIik7XG4gIH1cblxuICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChjaXR5TmFtZSkhLnN0eWxlLmRpc3BsYXkgPSBcImJsb2NrXCI7XG4gIGV2ZW50LmN1cnJlbnRUYXJnZXQuY2xhc3NOYW1lICs9IFwiIGJnLWFjdFwiO1xuICB9XG4gIHJldHVybiBvcGVuY2l0eTsgXG59XG5cblxuXG4gICAgIiwgImltcG9ydCB7IEJveCwgVGFiIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWxcIjtcbmltcG9ydCB7VGFiQ29udGV4dCwgVGFiTGlzdCwgVGFiUGFuZWx9IGZyb20gJ0BtdWkvbGFiJztcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBDb2xsYXBzaWJsZSBmcm9tIFwiLi4vY29tcG9uZW50cy9Db2xsYXBzaWJsZVwiOyBcblxuZXhwb3J0IGZ1bmN0aW9uIFdpa2kgICgpIHtcblxuICByZXR1cm4gKFxuICAgICAgIDw+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgICA8V2lraVRhYnM+PC9XaWtpVGFicz4gXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvPlxuICApO1xufVxuXG5cbiBleHBvcnQgZnVuY3Rpb24gV2lraVRhYnMoKSB7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gUmVhY3QudXNlU3RhdGUoJzEnKTtcblxuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSAoX2V2ZW50OiBSZWFjdC5TeW50aGV0aWNFdmVudCwgbmV3VmFsdWU6IHN0cmluZykgPT4ge1xuICAgIHNldFZhbHVlKG5ld1ZhbHVlKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxCb3ggc3g9e3sgd2lkdGg6ICcxMDAlJywgdHlwb2dyYXBoeTogJ2JvZHkxJyB9fT5cbiAgICAgIDxUYWJDb250ZXh0IHZhbHVlPXt2YWx1ZX0+XG4gICAgICAgIDxCb3ggc3g9e3sgYm9yZGVyQm90dG9tOiAxLCBib3JkZXJDb2xvcjogJ2RpdmlkZXInIH19PlxuICAgICAgICAgIDxUYWJMaXN0IG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9IGFyaWEtbGFiZWw9XCJsYWIgQVBJIHRhYnMgZXhhbXBsZVwiPlxuICAgICAgICAgICAgPFRhYiBsYWJlbD1cIkFib3V0XCIgdmFsdWU9XCIxXCIgLz5cbiAgICAgICAgICAgIDxUYWIgbGFiZWw9XCJHZXR0aW5nIHN0YXJ0ZWRcIiB2YWx1ZT1cIjZcIiAvPlxuICAgICAgICAgICAgPFRhYiBsYWJlbD1cIlRyb3VibGVzaG9vdGluZ1wiIHZhbHVlPVwiMlwiIC8+XG4gICAgICAgICAgICA8VGFiIGxhYmVsPVwiQ29tcG9uZW50c1wiIHZhbHVlPVwiM1wiIC8+XG4gICAgICAgICAgICA8VGFiIGxhYmVsPVwiRG93bmxvYWRzXCIgdmFsdWU9XCI0XCIgLz5cbiAgICAgICAgICAgIDxUYWIgbGFiZWw9XCJSZXNvdXJjZXNcIiB2YWx1ZT1cIjVcIiAvPlxuICAgICAgICAgICAgXG4gICAgICAgICAgPC9UYWJMaXN0PlxuICAgICAgICA8L0JveD5cbiAgICAgICAgPFRhYlBhbmVsIHZhbHVlPVwiMVwiPiAgIDwvVGFiUGFuZWw+XG4gICAgICAgIDxUYWJQYW5lbCB2YWx1ZT1cIjZcIj4gPFN0YXJ0ZWQvPiAgPC9UYWJQYW5lbD5cbiAgICAgICAgPFRhYlBhbmVsIHZhbHVlPVwiMlwiPiA8VHJvdWJsZXNob290aW5nLz4gPC9UYWJQYW5lbD5cbiAgICAgICAgPFRhYlBhbmVsIHZhbHVlPVwiM1wiPiAgPC9UYWJQYW5lbD5cbiAgICAgICAgPFRhYlBhbmVsIHZhbHVlPVwiNFwiPiAgIDwvVGFiUGFuZWw+XG4gICAgICAgIDxUYWJQYW5lbCB2YWx1ZT1cIjVcIj4gIDxTb3VyY2VzLz4gPC9UYWJQYW5lbD5cbiAgICAgIDwvVGFiQ29udGV4dD5cbiAgICA8L0JveD5cbiAgKTtcbn1cblxuZnVuY3Rpb24gU3RhcnRlZCgpe1xuXG4gIHJldHVybihcbiAgICA8PlxuICAgIDxoMz5EaWZmZXJlbmNlcyBiZXR3ZWVuIFJlYWN0IGFuZCBwbGFpbiBIVE1MPC9oMz5cbiAgICA8cD5UaGVyZSBhcmUgc29tZSBkaWZmZXJlbmNlcyBpbiB0aGUgc3ludGF4IHRoYXQgY2FuIGxlYWQgdG8gZXJyb3JzLjwvcD5cbiAgICA8dGFibGU+XG4gICAgICA8dHI+XG4gICAgICAgIDx0aD48L3RoPlxuICAgICAgICA8dGg+UGxhaW4gSFRNTDwvdGg+XG4gICAgICAgIDx0aD5Vc2luZyBSZWFjdDwvdGg+XG4gICAgICA8L3RyPlxuICAgICAgPHRyPlxuICAgICAgICA8dGg+IDxjb2RlPiZsdDt0YWdzJmd0OyA8L2NvZGU+IDwvdGg+XG4gICAgICAgIDx0aD4gXG4gICAgICAgICAgPHA+IE1vc3QgdGFncyBoYXZlIHRvIGJlIG9wZW5lZCBhbmQgY2xvc2VkLCBidXQgc29tZSBjYW4gYmUgb25seSBvcGVuZWQuIDwvcD4gXG4gICAgICAgICAgPHA+IGUuZy4gaW1nLCBiciwgLi4uIDxjb2RlPiAmbHQ7aW1nIHNyYzpcInNvbWVzb3VyY2VcIiBhbHQ9XCJhbHRcIiZndDsgIDwvY29kZT4gPC9wPlxuICAgICAgICA8L3RoPlxuICAgICAgICA8dGg+XG4gICAgICAgICAgPHA+IEV2ZXJ5IHRhZyBoYXMgdG8gYmUgY2xvc2VkLiAgPC9wPlxuICAgICAgICAgIDxwPiBlLmcuIGltZywgYnIsIC4uLiBcbiAgICAgICAgICAgIDxjb2RlPiAmbHQ7aW1nIHNyYzpcInNvbWVzb3VyY2VcIiBhbHQ9XCJhbHRcIi8mZ3Q7PC9jb2RlPiBvciBcbiAgICAgICAgICAgIDxjb2RlPiAmbHQ7aW1nIHNyYzpcInNvbWVzb3VyY2VcIiBhbHQ9XCJhbHRcIiZndDsgJmx0Oy9pbWcmZ3Q7IDwvY29kZT4gIDwvcD5cbiAgICAgICAgPC90aD5cbiAgICAgIDwvdHI+XG4gICAgICA8dHI+XG4gICAgICAgIDx0aD5BdHRyaWJ1dGUgTmFtZXM8L3RoPlxuICAgICAgICA8dGg+XG4gICAgICAgICAgPHA+IEdsb2JhbCBhdHRyaWJ1dGUgbmFtZXMgYXJlIGFsd2F5cyB3cml0dGVuIGluIGxvd2VyY2FzZSBhbmQgdHdvIHdvcmRzIGFyZSBmdXNlZCBpbnRvIG9uZSBieSBcIi1cIi4gPC9wPlxuICAgICAgICAgIDxwPiBFLmcuIFwiY2xhc3NcIiwgXCJjaGFyc2V0XCIsIC4uLjwvcD5cbiAgICAgICAgICA8cD4gVGhpcyBpcyBhbHNvIHRoZSBjYXNlIHdoZW4gdXNpbmcgdGhlIHN5bGUtYXR0cmlidXRlLiA8L3A+XG4gICAgICAgICAgPHA+IEUuZy4gPGNvZGU+c3R5bGU9XCJjb2xvcjpibHVlOyB0ZXh0LWFsaWduOmNlbnRlclwiPC9jb2RlPjwvcD5cbiAgICAgICAgPC90aD5cbiAgICAgICAgPHRoPiBcbiAgICAgICAgICA8cD5HbG9iYWwgYXR0cmlidXRlIG5hbWVzIGFyZSBnZW5lcmFsbHkgd3JpdHRlbiBpbiBsb3dlcmNhc2UgYnV0IHVzZSB0aGUgY2FtZWwgY2FzZSBpZiB0d28gd29yZHMgaGF2ZSB0byBiZSBmdXNlZC4gU29tZSBhdHRydWJ1dGVzIGhhdmUgc2xpZ2h0bHkgZGlmZmVyZW50IG5hbWVzLjwvcD5cbiAgICAgICAgICA8cD5FLmcuIFwiY2xhc3NOYW1lXCIsIFwiY2hhclNldFwiLCAuLi48L3A+XG4gICAgICAgICAgPHA+IFRoaXMgaXMgYWxzbyB0aGUgY2FzZSB3aGVuIHVzaW5nIHRoZSBzdHlsZS1hdHRyaWJ1dGUuPC9wPlxuICAgICAgICAgIDxwPiBFLmcuIDxjb2RlPnN0eWxlPSYjMTIzOyYjMTIzO3ZlY3RvckVmZmVjdDogJnF1b3Q7bm9uLXNjYWxpbmctc3Ryb2tlJnF1b3Q7JiMxMjU7JiMxMjU7PC9jb2RlPjwvcD5cbiAgICAgICAgICA8cD5UaGlzIGRvZXMgbm90IGFwcGx5IHRvIHRoZSBjc3MgZmlsZSE8L3A+XG4gICAgICAgIDwvdGg+XG4gICAgICA8L3RyPlxuICAgICAgPHRyPlxuICAgICAgICA8dGg+U3R5bGUgYXR0cmlidXRlPC90aD5cbiAgICAgICAgPHRoPlxuICAgICAgICAgIDxwPiBzdHlsZT1cIjx2YXI+YXR0cmlidXRlPC92YXI+OiA8dmFyPnZhbHVlPC92YXI+OyA8dmFyPmF0dHJpYnV0ZTwvdmFyPjogPHZhcj52YWx1ZTwvdmFyPlwiIDwvcD5cbiAgICAgICAgPC90aD5cbiAgICAgICAgPHRoPlxuICAgICAgICAgIDxwPiBzdHlsZT0mIzEyMzsmIzEyMzs8dmFyPmF0dHJpYnV0ZTwvdmFyPjogXCI8dmFyPnZhbHVlPC92YXI+XCIsIDx2YXI+YXR0cmlidXRlPC92YXI+OiBcIjx2YXI+dmFsdWU8L3Zhcj5cIiAmIzEyNTsmIzEyNTs8L3A+XG4gICAgICAgIDwvdGg+XG4gICAgICA8L3RyPlxuICAgIDwvdGFibGU+XG4gICAgPC8+XG4gIClcbn1cblxuXG4gZnVuY3Rpb24gU291cmNlcygpe1xuICByZXR1cm4oXG4gICAgPGRpdj5cbiAgICAgIDxDb2xsYXBzaWJsZSB0aXRsZT1cIkltYWdlcyBhbmQgSWNvbnNcIiA+XG4gICAgICBNb3N0IHRlYW1zIG5lZWQgYSBsb3Qgb2YgcGljdHVyZXMsIGNvbXBvbmVudHMsIGljb25zIGFuZCBhbGlrZS4gVGhleSBjYW4gYmUgZGlmZmljdWx0IHRvIGZpbmQsIGVzcGVjaWFsbHkgZnJlZSBhbmQgb3BlbiBzb3VyY2Ugb25lcy5cbiAgICAgIFxuICAgICAgICA8dWw+XG4gICAgICAgICAgPGxpPiA8YSBocmVmPVwiaHR0cHM6Ly9iaW9pY29ucy5jb20vXCI+IGh0dHBzOi8vYmlvaWNvbnMuY29tLzwvYT4gPC9saT5cbiAgICAgICAgICA8bGk+IDxhIGhyZWY9XCJodHRwczovL3RvZ290di5kYmNscy5qcC9lbi9waWNzLmh0bWxcIiA+IGh0dHBzOi8vdG9nb3R2LmRiY2xzLmpwL2VuL3BpY3MuaHRtbCA8L2E+IDwvbGk+XG4gICAgICAgICAgPGxpPiA8YSBocmVmPVwiaHR0cHM6Ly9zbWFydC5zZXJ2aWVyLmNvbS9cIiA+aHR0cHM6Ly9zbWFydC5zZXJ2aWVyLmNvbS88L2E+IDwvbGk+XG4gICAgICAgICAgPGxpPiA8YSBocmVmPVwiaHR0cHM6Ly9vcGVuY2xpcGFydC5vcmcvXCIgPiBodHRwczovL29wZW5jbGlwYXJ0Lm9yZy88L2E+IDwvbGk+XG4gICAgICAgICAgPGxpPiA8YSBocmVmPVwiaHR0cHM6Ly9jb21tb25zLndpa2ltZWRpYS5vcmcvd2lraS9DYXRlZ29yeTpTVkdfZmlsZXNcIiA+aHR0cHM6Ly9jb21tb25zLndpa2ltZWRpYS5vcmcvd2lraS9DYXRlZ29yeTpTVkdfZmlsZXM8L2E+IDwvbGk+XG4gICAgICAgICAgPGxpPiA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZmxhdGljb24uY29tL1wiPmh0dHBzOi8vd3d3LmZsYXRpY29uLmNvbS88L2E+IDwvbGk+XG4gICAgICAgICAgPGxpPiA8YSBocmVmPVwiaHR0cHM6Ly9iaW9sb2dpY2FsaWNvbnMuY29tL2VuXCI+aHR0cHM6Ly9iaW9sb2dpY2FsaWNvbnMuY29tL2VuPC9hPiA8L2xpPlxuICAgICAgICAgIDxsaT4gPGEgaHJlZj1cImh0dHBzOi8vd3d3LnN2Z3JlcG8uY29tL1wiPmh0dHBzOi8vd3d3LnN2Z3JlcG8uY29tLzwvYT4gPC9saT5cbiAgICAgICAgICA8bGk+IDxhIGhyZWY9XCJodHRwczovL3d3dy5odW1hbmJpb21lZGlhLm9yZy9cIj5odHRwczovL3d3dy5odW1hbmJpb21lZGlhLm9yZy88L2E+IDwvbGk+XG4gICAgICAgIDwvdWw+XG5cbiAgICAgIDwvQ29sbGFwc2libGU+XG4gICAgICA8Q29sbGFwc2libGUgdGl0bGU9XCJDb2xvdXJzXCIgPlxuICAgICAgICBOZWVkIGEgc2xpZ2h0bHkgbGlnaHRlciB2ZXJzaW9uIG9mIG9uZSBvZiB5b3VyIGNvbG91cnMgb3IgYSBtaXggb2YgdHdvIGNvbG91cnM/IFxuICAgICAgICA8dWw+XG4gICAgICAgICAgPGxpPjxhIGhyZWY9XCJodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2NvbG9ycy9jb2xvcnNfbWl4ZXIuYXNwXCI+IGh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vY29sb3JzL2NvbG9yc19taXhlci5hc3A8L2E+PC9saT5cbiAgICAgICAgPC91bD5cbiAgICAgIDwvQ29sbGFwc2libGU+XG4gICAgICA8Q29sbGFwc2libGUgdGl0bGU9XCJDb2RpbmcgVG9vbHNcIj5cbiAgICAgICAgR2VuZXJhdG9yc1xuICAgICAgICA8dWw+XG4gICAgICAgICAgPGxpPjxhIGhyZWY9XCJodHRwczovL3d3dy5jc3Nwb3J0YWwuY29tL1wiPmh0dHBzOi8vd3d3LmNzc3BvcnRhbC5jb20vPC9hPjwvbGk+XG4gICAgICAgICAgPGxpPjxhIGhyZWY9XCJodHRwczovL2h0bWxjc3MudG9vbHMvXCI+aHR0cHM6Ly9odG1sY3NzLnRvb2xzLzwvYT48L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9Db2xsYXBzaWJsZT5cblxuICAgICAgPENvbGxhcHNpYmxlIHRpdGxlPVwiUGxhY2Vob2xkZXJzXCI+XG4gICAgICAgIDx1bD5cbiAgICAgICAgICA8bGk+PGEgaHJlZj1cImh0dHBzOi8vd3d3LmxvcmVtaXBzdW0uZGUvXCI+aHR0cHM6Ly93d3cubG9yZW1pcHN1bS5kZS88L2E+PC9saT5cbiAgICAgICAgPC91bD5cbiAgICAgIDwvQ29sbGFwc2libGU+XG5cbiAgICAgIDxDb2xsYXBzaWJsZSB0aXRsZT1cIlNWR3NcIj5cbiAgICAgICAgPHVsPlxuICAgICAgICAgIDxsaT48YSBocmVmPVwiaHR0cHM6Ly9zdXBlcmRlc2lnbmVyLmNvL3Rvb2xzL3N2Zy1iYWNrZ3JvdW5kc1wiPmh0dHBzOi8vc3VwZXJkZXNpZ25lci5jby90b29scy9zdmctYmFja2dyb3VuZHM8L2E+PC9saT5cbiAgICAgICAgPC91bD5cbiAgICAgIDwvQ29sbGFwc2libGU+XG5cbiAgICAgIDxDb2xsYXBzaWJsZSB0aXRsZT1cIkFjY2Vzc2liaWxpdHlcIj5cbiAgICAgIDx1bD5cbiAgICAgICAgPGxpPjxhIGhyZWY9XCJodHRwczovL3NjaGVtYS5vcmdcIj5odHRwczovL3NjaGVtYS5vcmc8L2E+PC9saT5cbiAgICAgIDwvdWw+XG4gICAgICA8L0NvbGxhcHNpYmxlPlxuICAgIDwvZGl2PlxuXG4gIClcbn0gXG5cblxuXG5pbXBvcnQgeyBXaWtpU2VsZWN0b3IgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9GaWx0ZXJcIjtcbmltcG9ydCB7IENvZGUgfSBmcm9tIFwiLi9jb2RlXCI7XG5mdW5jdGlvbiBUcm91Ymxlc2hvb3RpbmcoKXtcbiAgXG4gIHJldHVybihcbiAgICA8ZGl2PlxuICAgICAgUGxlYXNlIHNlbGVjdCB3aGF0IHlvdSB3YW50IHRvIHRyb3VibGVzaG9vdCBmb3IuIFxuICAgICAgPFdpa2lTZWxlY3Rvcj48L1dpa2lTZWxlY3Rvcj5cbiAgICAgIDxkaXYgaWQ9XCJub25vXCIgY2xhc3NOYW1lPVwibm9zaG93XCI+XG4gICAgICAgIFRoaXMgY29tYmluYXRpb24gcmV0dXJucyBubyBpbnN0YW5jZXMuIFxuICAgICAgPC9kaXY+XG4gICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJmaWx0ZXJhYmxlIGFsbCByZWFjdCB0eXBlIHByb3BlcnR5XCI+XG4gICAgICAgIDxDb2xsYXBzaWJsZSB0aXRsZT1cIkFyZ3VtZW50IG9mIHR5cGUgWCBpcyBub3QgYXNzaWduYWJsZSB0byBwYXJhbWV0ZXIgb2YgdHlwZSBZLlwiPlxuICAgICAgICA8aDY+RXhhbXBsZTwvaDY+XG4gICAgICAgIDxoNj5Tb2x1dGlvbnM8L2g2PlxuICAgICAgICA8L0NvbGxhcHNpYmxlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbHRlcmFibGUgYWxsIHJlYWN0IHR5cGVcIj4gXG4gICAgICAgIDxDb2xsYXBzaWJsZSB0aXRsZT1cIlR5cGUgWCBpcyBub3QgYXNzaWduYWJsZSB0byB0eXBlIFkuXCI+XG4gICAgICAgIDxoNj5FeGFtcGxlPC9oNj5cbiAgICAgICAgPGg2PlNvbHV0aW9uczwvaDY+XG4gICAgICAgIDwvQ29sbGFwc2libGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsdGVyYWJsZSBhbGwgIHJlYWN0IHR5cGUgcHJvcGVydHlcIj5cbiAgICAgICAgPENvbGxhcHNpYmxlIHRpdGxlPVwiUHJvcGVydHkgeCBpcyBtaXNzaW5nIGluIHR5cGUgeSBidXQgcmVxdWlyZWQgaW4gdHlwZSB6LlwiPlxuICAgICAgICA8aDY+RXhhbXBsZTwvaDY+XG4gICAgICAgIDxoNj5Tb2x1dGlvbnM8L2g2PlxuICAgICAgICA8L0NvbGxhcHNpYmxlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbHRlcmFibGUgYWxsIHJlYWN0IHR5cGUgcHJvcGVydHlcIj5cbiAgICAgICAgPENvbGxhcHNpYmxlIHRpdGxlPVwiUHJvcGVydHkgeCBkb2VzIG5vdCBleGlzdCBvbiB0eXBlIFkuXCI+XG4gICAgICAgIDxoNj5FeGFtcGxlPC9oNj5cbiAgICAgICAgPGg2PlNvbHV0aW9uczwvaDY+XG4gICAgICAgIDwvQ29sbGFwc2libGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsdGVyYWJsZSBhbGwgcmVhY3QgdHlwZSBwcm9wZXJ0eVwiPlxuICAgICAgICA8Q29sbGFwc2libGUgdGl0bGU9XCJUeXBlIFggaXMgbWlzc2luZyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgZnJvbSB0eXBlIFk6IGEsIGIsIGNcIj5cbiAgICAgICAgPGg2PkV4YW1wbGU8L2g2PlxuICAgICAgICA8aDY+U29sdXRpb25zPC9oNj5cbiAgICAgICAgPC9Db2xsYXBzaWJsZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWx0ZXJhYmxlIGFsbCByZWFjdCB0eXBlXCI+XG4gICAgICAgIDxDb2xsYXBzaWJsZSB0aXRsZT1cIlR5cGUgJ3ggfCB1bmRlZmluZWQnIGlzIG5vdCBhc3NpZ25hYmxlIHRvIHR5cGUgJ3gnLlwiPlxuICAgICAgICA8aDY+RXhhbXBsZTwvaDY+XG4gICAgICAgIDxoNj5Tb2x1dGlvbnM8L2g2PlxuICAgICAgICA8L0NvbGxhcHNpYmxlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbHRlcmFibGUgYWxsIHJlYWN0IHR5cGVcIj5cbiAgICAgICAgPENvbGxhcHNpYmxlIHRpdGxlPVwiVHlwZSAndW5kZWZpbmVkJyBjYW5ub3QgYmUgdXNlZCBhcyBhbiBpbmRleCB0eXBlXCI+XG4gICAgICAgIDxoNj5FeGFtcGxlPC9oNj5cbiAgICAgICAgPGg2PlNvbHV0aW9uczwvaDY+XG4gICAgICAgIDwvQ29sbGFwc2libGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsdGVyYWJsZSBhbGwgcmVhY3Qgb3ZlcmxvYWRcIj5cbiAgICAgICAgPENvbGxhcHNpYmxlIHRpdGxlPVwiTm8gb3ZlcmxvYWQgbWF0Y2hlcyB0aGlzIGNhbGwuXCI+XG4gICAgICAgIDxoNj5FeGFtcGxlPC9oNj5cbiAgICAgICAgPGg2PlNvbHV0aW9uczwvaDY+XG4gICAgICAgIDwvQ29sbGFwc2libGU+XG4gICAgICA8L2Rpdj4gKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbHRlcmFibGUgYWxsIHJlYWN0IG1vZHVsZVwiPlxuICAgICAgICA8Q29sbGFwc2libGUgdGl0bGU9XCJNb2R1bGUgWiBoYXMgYWxyZWFkeSBleHBvcnRlZCBhIG1lbWJlciBuYW1lZCBBLiBDb25zaWRlciBleHBsaWNpdGx5IHJlLWV4cG9ydGluZyB0byByZXNvbHZlIHRoZSBhbWJpZ3VpdHkuXCI+XG4gICAgICAgIDxoNj5FeGFtcGxlPC9oNj5cbiAgICAgICAgaW5kZXgudHN4OiBcbiAgICAgICAgPHAgY2xhc3NOYW1lPVwicHJvYmxlbS1lcnJvclwiPiBNb2R1bGUgXCIuL0JmaC50c3hcIiBoYXMgYWxyZWFkeSBleHBvcnRlZCBhIG1lbWJlciBuYW1lZCAnTGFiVGFicycuIENvbnNpZGVyIGV4cGxpY2l0bHkgcmUtZXhwb3J0aW5nIHRvIHJlc29sdmUgdGhlIGFtYmlndWl0eS48L3A+XG4gICAgICAgIDxoNj5Tb2x1dGlvbnM8L2g2PlxuICAgICAgICBTaW1wbHkgcmVuYW1lIHRoZSBmdW5jdGlvbiBpbiBvbmUgb2YgdGhlIG1vZHVsZXMgb3IgY29uc2lkZXIgbWFraW5nIGl0IGEgY29tcG9uZW50IGlmIHlvdSBwbGFuIG9uIHVzaW5nIGl0IGZyZXF1ZW50bHkuICBcbiAgICAgICAgPC9Db2xsYXBzaWJsZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWx0ZXJhYmxlIGFsbCBwaXBlbGluZVwiPlxuICAgICAgICA8Q29sbGFwc2libGUgdGl0bGU9XCJlcnJvciBUUzYxMzM6ICdldmVudCcgaXMgZGVjbGFyZWQgYnV0IGl0cyB2YWx1ZSBpcyBuZXZlciByZWFkLlwiPlxuICAgICAgICAgIDxoNj5FeGFtcGxlPC9oNj5cbiAgICAgICAgICBIb3Jpem9udGFsVGltZWxpbmUudHN4OiBcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRlcm1pbmFsLWJveFwiPlxuICAgICAgICAgICAgJCB5YXJuIGJ1aWxkXG4gICAgICAgICAgICA8cD55YXJuIHJ1biB2MS4yMi4xOTwvcD5cbiAgICAgICAgICAgIDxwPiQgdHNjICYmIHZpdGUgYnVpbGQ8L3A+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXJtaW5hbC1lcnJvclwiPnNyYy9jb21wb25lbnRzL0hvcml6b250YWxUaW1lbGluZS50c3goNjcsMjMpOiBlcnJvciBUUzYxMzM6ICdldmVudCcgaXMgZGVjbGFyZWQgYnV0IGl0cyB2YWx1ZSBpcyBuZXZlciByZWFkLlxuICAgICAgICAgICAgZXJyb3IgQ29tbWFuZCBmYWlsZWQgd2l0aCBleGl0IGNvZGUgMi48L3A+XG4gICAgICAgICAgICA8cD5pbmZvIFZpc2l0IGh0dHBzOi8veWFybnBrZy5jb20vZW4vZG9jcy9jbGkvcnVuIGZvciBkb2N1bWVudGF0aW9uIGFib3V0IHRoaXMgY29tbWFuZC48L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8cD5pbjwvcD5cbiAgICAgICAgICA8Q29kZT5cbiAgICAgICAgICBjb25zdCBvcGVuUG9wID0gIChldmVudCA6IFJlYWN0Lk1vdXNlRXZlbnQmbHQ7SFRNTEJ1dHRvbkVsZW1lbnQsIE1vdXNlRXZlbnQmZ3Q7KSA9Jmd0OyB7fVxuICAgICAgICAgIDwvQ29kZT5cbiAgICAgICAgICA8aDY+U29sdXRpb25zPC9oNj5cbiAgICAgICAgICA8cD5DaGFuZ2UgdG86IDwvcD5cbiAgICAgICAgICA8Q29kZT5cbiAgICAgICAgICBjb25zdCBvcGVuUG9wID0gIChfZXZlbnQgOiBSZWFjdC5Nb3VzZUV2ZW50Jmx0O0hUTUxCdXR0b25FbGVtZW50LCBNb3VzZUV2ZW50Jmd0OykgPSZndDsge31cbiAgICAgICAgICA8L0NvZGU+XG4gICAgICAgIDwvQ29sbGFwc2libGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKVxufSBcblxuXG4iLCAiaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmludGVyZmFjZSBJUHJvcHMge1xuICAgIG9wZW4/OiBib29sZWFuO1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlOyBcbiAgfVxuXG5cbiAgXG4gIGV4cG9ydCBjb25zdCBDb2xsYXBzaWJsZTogUmVhY3QuRkM8SVByb3BzPiA9ICh7IG9wZW4sIGNoaWxkcmVuLCB0aXRsZSB9KSA9PiB7XG4gICAgY29uc3QgW2lzT3Blbiwgc2V0SXNPcGVuXSA9IHVzZVN0YXRlKG9wZW4pO1xuICBcbiAgICBjb25zdCBoYW5kbGVGaWx0ZXJPcGVuaW5nID0gKCkgPT4ge1xuICAgICAgc2V0SXNPcGVuKChwcmV2KSA9PiAhcHJldik7XG4gICAgfTtcbiAgXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sbGFwc2UtY2FyZFwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInAtMyBib3JkZXItYm90dG9tIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwiZm9udC13ZWlnaHQtYm9sZFwiPnt0aXRsZX08L2g2PlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzc05hbWU9XCJidG5cIiBvbkNsaWNrPXtoYW5kbGVGaWx0ZXJPcGVuaW5nfT5cbiAgICAgICAgICAgICAgICB7IWlzT3BlbiA/IChcbiAgICAgICAgICAgICAgICA8aW1nIGNsYXNzTmFtZT0ndXBkb3duJyBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9kZXNpZ24vaWNvbnMvYW5nbGUtc21hbGwtZG93bi5wbmdcIiAvPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPGltZyBjbGFzc05hbWU9J3VwZG93bicgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvZGVzaWduL2ljb25zL2FuZ2xlLXNtYWxsLXVwMzJweC5wbmdcIiAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gIFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYm9yZGVyLWJvdHRvbVwiPlxuICAgICAgICAgICAgPGRpdj57aXNPcGVuICYmIDxkaXYgY2xhc3NOYW1lPVwicC0zXCI+e2NoaWxkcmVufTwvZGl2Pn08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuICBcbiAgXG4gIGV4cG9ydCBkZWZhdWx0IENvbGxhcHNpYmxlOyIsICJcbmltcG9ydCBTZWxlY3QgZnJvbSAncmVhY3Qtc2VsZWN0JztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cblxuXG5pbnRlcmZhY2UgUHJvcHMge1xuICB2YWx1ZTogc3RyaW5nLFxuICBsYWJlbDogc3RyaW5nXG59XG5jb25zdCB3aWtpb3B0aW9ucyA9W1xuICB7dmFsdWU6IFwiYWxsXCIsIGxhYmVsOiBcIlNob3cgYWxsXCJ9LFxuICB7dmFsdWU6IFwicmVhY3RcIiwgbGFiZWw6IFwiUmVhY3RcIn0sXG4gIHt2YWx1ZTogXCJ0eXBlXCIsIGxhYmVsOiBcIlR5cGVzXCJ9LFxuICB7dmFsdWU6IFwicHJvcGVydHlcIiwgbGFiZWw6IFwiUHJvcGVydGllc1wifSxcbiAge3ZhbHVlOiBcInBpcGVsaW5lXCIsIGxhYmVsOiBcIkdpdExhYiBQaXBlbGluZVwifSxcbiAge3ZhbHVlOiBcImh0bWxcIiwgbGFiZWw6IFwiSFRNTFwifSxcbiAge3ZhbHVlOiBcImNzc1wiLCBsYWJlbDogXCJDU1NcIn0sXG4gIFxuXVxuXG5cbiAgICAgIGZ1bmN0aW9uIGZpbHRlck11bHRpU2VsZWN0aW9uKGFycjogQXJyYXk8UHJvcHM+KXtcbiAgICAgICAgbGV0IG5vbm8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcIm5vbm9cIik7XG4gICAgICAgIG5vbm8hLmNsYXNzTmFtZSA9IFwibm9zaG93XCI7IFxuICAgICAgICB2YXIgeDogc3RyaW5nIHwgYW55W10gfCBIVE1MQ29sbGVjdGlvbk9mPEVsZW1lbnQ+LCBpOiBudW1iZXI7XG4gICAgICAgIHggPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwiZmlsdGVyYWJsZVwiKTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IHgubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBsZXQgZWwgPSB4W2ldOyBcbiAgICAgICAgICB3M1JlbW92ZUNsYXNzKGVsLCBcInNob3dcIik7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHNob3dudW0gPSAwOyBcbiAgICAgICAgbGV0IGJvbyA9IHRydWU7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB4Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgXG4gICAgICAgICAgYXJyLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICAgICAgICAgaWYgKHhbaV0uY2xhc3NOYW1lLmluZGV4T2YoZW50cnkudmFsdWUpIDw9IC0xKXtcbiAgICAgICAgICAgICAgYm9vID0gZmFsc2U7IFxuICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICBlbHNle1xuICAgICAgICAgICAgICAgIGlmICgheFtpXS5jbGFzc0xpc3QuY29udGFpbnMoZW50cnkudmFsdWUpKXtcbiAgICAgICAgICAgICAgICAgIGJvbyA9IGZhbHNlOyBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgfVxuICAgICAgICAgIH0pIFxuICAgICAgICAgIGlmIChib28pe1xuICAgICAgICAgICAgdzNBZGRDbGFzcyh4W2ldLCBcInNob3dcIik7XG4gICAgICAgICAgICBzaG93bnVtKys7IFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsZXQgeSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXCJzaG93XCIpLmxlbmd0aDtcbiAgICAgICAgaWYgKHkgPCAxKXtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHkpXG4gICAgICAgICAgICBub25vIS5jbGFzc05hbWUgPSBcInNob3dcIjsgXG4gICAgICAgIH1cbiAgICAgIH1cblxuLyogZnVuY3Rpb24gZmlsdGVyU2VsZWN0aW9uKGxhYmVsOiBzdHJpbmcpIHtcbiAgdmFyIHgsIGk7XG4gIHggPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwiZmlsdGVyYWJsZVwiKTtcbiAgaWYgKGxhYmVsID09IFwiYWxsXCIpIGxhYmVsID0gXCJcIjtcbiAgZm9yIChpID0gMDsgaSA8IHgubGVuZ3RoOyBpKyspIHtcbiAgICBsZXQgZWwgPSB4W2ldOyBcbiAgICB3M1JlbW92ZUNsYXNzKGVsLCBcInNob3dcIik7XG4gICAgaWYgKHhbaV0uY2xhc3NOYW1lLmluZGV4T2YobGFiZWwpID4gLTEpIHczQWRkQ2xhc3MoeFtpXSwgXCJzaG93XCIpO1xuICB9XG59ICovXG4gIFxuZnVuY3Rpb24gdzNBZGRDbGFzcyhlbGVtZW50OiBFbGVtZW50LCBuYW1lOiBzdHJpbmcpIHtcbiAgdmFyIGksIGFycjEsIGFycjI7XG4gIGFycjEgPSBlbGVtZW50LmNsYXNzTmFtZS5zcGxpdChcIiBcIik7XG4gIGFycjIgPSBuYW1lLnNwbGl0KFwiIFwiKTtcbiAgZm9yIChpID0gMDsgaSA8IGFycjIubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoYXJyMS5pbmRleE9mKGFycjJbaV0pID09IC0xKSB7ZWxlbWVudC5jbGFzc05hbWUgKz0gXCIgXCIgKyBhcnIyW2ldO31cbiAgfVxufVxuXG5mdW5jdGlvbiB3M1JlbW92ZUNsYXNzKGVsZW1lbnQ6IEVsZW1lbnQsIG5hbWU6IHN0cmluZykge1xuICB2YXIgaSwgYXJyMSwgYXJyMjtcbiAgYXJyMSA9IGVsZW1lbnQuY2xhc3NOYW1lLnNwbGl0KFwiIFwiKTtcbiAgYXJyMiA9IG5hbWUuc3BsaXQoXCIgXCIpO1xuICBmb3IgKGkgPSAwOyBpIDwgYXJyMi5sZW5ndGg7IGkrKykge1xuICAgIHdoaWxlIChhcnIxLmluZGV4T2YoYXJyMltpXSkgPiAtMSkge1xuICAgICAgYXJyMS5zcGxpY2UoYXJyMS5pbmRleE9mKGFycjJbaV0pLCAxKTsgICAgIFxuICAgIH1cbiAgfVxuICBlbGVtZW50LmNsYXNzTmFtZSA9IGFycjEuam9pbihcIiBcIik7XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIFdpa2lTZWxlY3Rvcigpe1xuICByZXR1cm4oXG4gICAgPGRpdj5cbiAgICAgIDxXaWtpQWN0aW9uPjwvV2lraUFjdGlvbj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5jbGFzcyBXaWtpQWN0aW9uIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGUgPSB7XG4gICAgc2VsZWN0ZWRPcHRpb246IG51bGwsXG4gIH07XG4gIGhhbmRsZUNoYW5nZSA9IChzZWxlY3RlZE9wdGlvbjogYW55KSA9PiB7XG4gIFx0XG4gIFx0dGhpcy5zZXRTdGF0ZSh7IHNlbGVjdGVkT3B0aW9uIH0sICgpID0+XG4gIFx0Y29uc29sZS5sb2coYE9wdGlvbiBzZWxlY3RlZDpgLCB0aGlzLnN0YXRlLnNlbGVjdGVkT3B0aW9uKVxuICAgXHRcbiAgICApO1xuICAgIFx0ZmlsdGVyTXVsdGlTZWxlY3Rpb24oc2VsZWN0ZWRPcHRpb24pXG4gIH07XG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IHNlbGVjdGVkT3B0aW9uIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTZWxlY3RcbiAgICAgICAgdmFsdWU9e3NlbGVjdGVkT3B0aW9ufVxuICAgICAgICBvbkNoYW5nZT17dGhpcy5oYW5kbGVDaGFuZ2V9XG4gICAgICAgIGlzTXVsdGlcbiAgICAgICAgb3B0aW9ucz17d2lraW9wdGlvbnN9XG4gICAgICAgIGRlZmF1bHRWYWx1ZT17W3dpa2lvcHRpb25zWzBdXX1cbiAgICAgICAgY2xhc3NOYW1lPVwiYmFzaWMtbXVsdGktc2VsZWN0XCJcbiAgICAgICAgY2xhc3NOYW1lUHJlZml4PVwic2VsZWN0XCJcbiAgICAgIC8+XG4gICAgKTtcbiAgfVxufVxuXG4vKiBUeXBlICcoc2VsZWN0ZWRPcHRpb246IFByb3BzIHwgbnVsbCkgPT4gdm9pZCcgaXMgbm90IGFzc2lnbmFibGUgdG8gdHlwZSAnKG5ld1ZhbHVlOiBNdWx0aVZhbHVlPHsgdmFsdWU6IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgfSB8IG51bGw+LCBhY3Rpb25NZXRhOiBBY3Rpb25NZXRhPHsgdmFsdWU6IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgfSB8IG51bGw+KSA9PiB2b2lkJy5cbiAgVHlwZXMgb2YgcGFyYW1ldGVycyAnc2VsZWN0ZWRPcHRpb24nIGFuZCAnbmV3VmFsdWUnIGFyZSBpbmNvbXBhdGlibGUuXG4gICAgVHlwZSAncmVhZG9ubHkgKHsgdmFsdWU6IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgfSB8IG51bGwpW10nIGlzIG1pc3NpbmcgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGZyb20gdHlwZSAnUHJvcHMnOiB2YWx1ZSwgbGFiZWwgKi9cbiAgICAvKiBjb25zdCBocG9wdGlvbnMgPVtcbiAgICAgIHt2YWx1ZTogXCJhbGxcIiwgbGFiZWw6IFwiQWxsXCJ9LFxuICAgICAge3ZhbHVlOiBcIkFjYWRlbWlhXCIsIGxhYmVsOiBcIkFjYWRlbWlhXCJ9LFxuICAgICAge3ZhbHVlOiBcIlBhdGllbnRQYXRpZW50XCIsIGxhYmVsOiBcIlBhdGllbnRcIn0sXG4gICAgICB7dmFsdWU6IFwiTWVkaWNhbFwiLCBsYWJlbDogXCJNZWRpY2FsIFByb2Zlc3Npb25hbFwifSxcbiAgICAgIHt2YWx1ZTogXCJwcm9wZXJ0eVwiLCBsYWJlbDogXCJQcm9wZXJ0aWVzXCJ9LFxuICAgICAge3ZhbHVlOiBcInBpcGVsaW5lXCIsIGxhYmVsOiBcIkdpdExhYiBQaXBlbGluZVwifSxcbiAgICAgIHt2YWx1ZTogXCJodG1sXCIsIGxhYmVsOiBcIkhUTUxcIn0sXG4gICAgICB7dmFsdWU6IFwiY3NzXCIsIGxhYmVsOiBcIkNTU1wifSxcbiAgICAgIFxuICAgIF1cblxuICAgIGV4cG9ydCBmdW5jdGlvbiBIUFNlbGVjdG9yKCl7XG4gICAgICByZXR1cm4oXG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPEhQQWN0aW9uPjwvSFBBY3Rpb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKVxuICAgIH1cblxuXG5cbiAgICBjbGFzcyBIUEFjdGlvbiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gICAgICBzdGF0ZSA9IHtcbiAgICAgICAgc2VsZWN0ZWRPcHRpb246IG51bGwsXG4gICAgICB9O1xuICAgICAgaGFuZGxlQ2hhbmdlID0gKHNlbGVjdGVkT3B0aW9uOiBhbnkpID0+IHtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBzZWxlY3RlZE9wdGlvbiB9LCAoKSA9PlxuICAgICAgICBjb25zb2xlLmxvZyhgT3B0aW9uIHNlbGVjdGVkOmAsIHRoaXMuc3RhdGUuc2VsZWN0ZWRPcHRpb24pXG4gICAgICAgICBcbiAgICAgICAgKTtcbiAgICAgICAgICBmaWx0ZXJNdWx0aVNlbGVjdGlvbihzZWxlY3RlZE9wdGlvbilcbiAgICAgIH07XG4gICAgICByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IHsgc2VsZWN0ZWRPcHRpb24gfSA9IHRoaXMuc3RhdGU7XG4gICAgXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgdmFsdWU9e3NlbGVjdGVkT3B0aW9ufVxuICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuaGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgaXNNdWx0aVxuICAgICAgICAgICAgb3B0aW9ucz17aHBvcHRpb25zfVxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtbaHBvcHRpb25zWzBdXX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImJhc2ljLW11bHRpLXNlbGVjdFwiXG4gICAgICAgICAgICBjbGFzc05hbWVQcmVmaXg9XCJzZWxlY3RcIlxuICAgICAgICAgIC8+XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSAqLyIsICJleHBvcnQgZnVuY3Rpb24gQ29kZSh7Y2hpbGRyZW59OntjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlfSApe1xuXG4gICAgcmV0dXJuKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvZGVzbmlwcGV0XCI+XG4gICAgICAgICAgICA8Y29kZT5cbiAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICA8L2NvZGU+XG4gICAgICAgIDwvZGl2PlxuICAgIClcbn0iLCAiXG5leHBvcnQgZnVuY3Rpb24gRHJ5bGFiKCkge1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgICAgIDxoMj5XaWtpIHVuZGVyIGNvbnN0cnVjdGlvbiE8L2gyPlxuICAgICAgICAgICAgPGhyLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICBcbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4gICIsICIvL2ltcG9ydCB7IEluc3BpcmF0aW9ucywgSW5zcGlyYXRpb25MaW5rIH0gZnJvbSBcIi4uL2NvbXBvbmVudHNcIjtcbi8qIGltcG9ydCB7IFNpZGViYXIgfSBmcm9tIFwicmVhY3QtcHJvLXNpZGViYXJcIjsgKi9cblxuZXhwb3J0IGZ1bmN0aW9uIEltcHJlc3N1bSgpIHtcbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgICA8aDI+SW1wcmVzc3VtPC9oMj5cbiAgICAgICAgICA8aHIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgPHA+XG4gICAgICAgICAgICA8aDM+PGI+aUdFTSBUZWFtIEJpZWxlZmVsZCBDZUJpVGVjIDIwMjQ8L2I+PC9oMz5cbiAgICAgICAgICAgIDxiPlJlc3BvbnNpYmxlIGZvciB0aGUgY29udGVudCBhY2NvcmRpbmcgdG8gXHUwMEE3IDUgVE1HIGFuZCBhY2NvcmRpbmcgdG8gXHUwMEE3IDU1IEFicy4gMiBSU3RWIEdlcm1hbnk6PC9iPjxiciAvPlxuICAgICAgICAgICAgSlx1MDBGNnJuIEthbGlub3dza2k8YnIgLz5cbiAgICAgICAgICAgIFVuaXZlcnNpdFx1MDBFNHRzc3RyYVx1MDBERmUgMjU8YnIgLz5cbiAgICAgICAgICAgIDMzNjE1IEJpZWxlZmVsZDxiciAvPlxuICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICA8Yj5Db250YWN0PC9iPjxiciAvPlxuICAgICAgICAgICAgRS1tYWlsOiB0ZWFtMjAyNEBpZ2VtLWJpZWxlZmVsZC5kZTxiciAvPlxuICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICA8Yj5TdXBlcnZpc29yeSBBdXRob3JpdHk8L2I+PGJyIC8+XG4gICAgICAgICAgICBCaWVsZWZlbGQgVW5pdmVyc2l0eSAtIENlbnRlciBmb3IgQmlvdGVjaG5vbG9neSAoQ2VCaVRlYylcbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvZGl2PiAgXG4gICAgICA8L2Rpdj5cbiAgICA8Lz5cbiAgKTtcbn1cbiAgIiwgIlxuZXhwb3J0IGZ1bmN0aW9uIE1lYXN1cmVtZW50KCkge1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgICAgIDxoMj5XaWtpIHVuZGVyIGNvbnN0cnVjdGlvbiE8L2gyPlxuICAgICAgICAgICAgPGhyLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICBcbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4gICIsICJcbmV4cG9ydCBmdW5jdGlvbiBQYXJ0bmVycygpIHtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgPGRpdiBpZD1cInNpZGViYXJib3hcIiBjbGFzc05hbWU9XCJjb2wtMSBkLW5vbmUgZC1sZy1ibG9ja1wiPiA8L2Rpdj5cbiAgICAgICAgPGJyLz4gXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxkaXYgaWQ9XCJ6ZWlzcy1wb3J0cmFpdFwiIGNsYXNzTmFtZT1cImNvbC01IHNwb25zb3ItcG9ydHJhaXRcIj5cbiAgICAgICAgICA8YSBocmVmPVwiaHR0cDovL3d3dy56ZWlzcy5kZS9uYXR1cndpc3NlbnNjaGFmdGVuXCI+XG4gICAgICAgICAgICA8aW1nIGlkPVwiemVpc3MtcG9ydHJhaXQtbG9nb1wiIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3Nwb25zb3JzL3plaXNzLnBuZ1wiPjwvaW1nPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGlkPVwiemVpc3MtdGV4dFwiIGNsYXNzTmFtZT1cImNvbCBzcG9uc29yLXRleHQtcmlnaHRcIj5cbiAgICAgICAgICAgIDxoND5aRUlTUyBpc3QgVGVjaG5vbG9naWUuIFpFSVNTIGlzdCBPcHRpayB1bmQgSW5ub3ZhdGlvbi48L2g0PlxuICAgICAgICAgICAgPGJyLz5cbiAgICAgICAgICAgIDxwPiBXaXIgZW50d2lja2VsbiwgZmVydGlnZW4gdW5kIHZlcnRyZWliZW4gZlx1MDBGQ3IgdW5zZXJlIEt1bmRlbiBpbiBlaW5lciBWaWVsemFobCB2b24gR2VzY2hcdTAwRTRmdHNmZWxkZXJuIGhvY2hpbm5vdmF0aXZlIFByb2R1a3RlIHVuZCBMXHUwMEY2c3VuZ2VuIFx1MjAxMyB1bmQgbG90ZW4gZGFiZWkgZGllIEdyZW56ZW4gZGVzIE1hY2hiYXJlbiBhdXMuIEFscyB3ZWx0d2VpdCBmXHUwMEZDaHJlbmRlcyBUZWNobm9sb2dpZXVudGVybmVobWVuLCBtaXQgZWluZXIgc3RhcmtlbiBNYXJrZSB1bmQgbWl0IGVpbmVtIFBvcnRmb2xpbywgZGFzIGF1ZiBXYWNoc3R1bXNmZWxkZXIgZGVyIFp1a3VuZnQgd2llIERpZ2l0YWxpc2llcnVuZywgR2VzdW5kaGVpdCB1bmQgSW5kdXN0cmllIDQuMCBhdXNnZXJpY2h0ZXQgaXN0LCBnZXN0YWx0ZW4gd2lyIGRpZSBadWt1bmZ0IHdlaXQgXHUwMEZDYmVyIGRpZSBvcHRpc2NoZSB1bmQgb3B0b2VsZWt0cm9uaXNjaGUgQnJhbmNoZSBoaW5hdXMuIEdydW5kbGFnZSBmXHUwMEZDciBkZW4gRXJmb2xnIHVuZCBkZW4gd2VpdGVyZW4ga29udGludWllcmxpY2hlbiBBdXNiYXUgZGVyIFRlY2hub2xvZ2llIHVuZCBNYXJrdGZcdTAwRkNocmVyc2NoYWZ0IHZvbiBaRUlTUyBzaW5kIGRpZSBuYWNoaGFsdGlnIGhvaGVuIEF1ZndlbmR1bmdlbiBmXHUwMEZDciBGb3JzY2h1bmcgdW5kIEVudHdpY2tsdW5nLiBIYXVwdHN0YW5kb3J0IGRlcyAxODQ2IGluIEplbmEgZ2Vnclx1MDBGQ25kZXRlbiBVbnRlcm5laG1lbnMgaXN0IE9iZXJrb2NoZW4sIERldXRzY2hsYW5kLiBBbGxlaW5pZ2UgRWlnZW50XHUwMEZDbWVyaW4gZGVyIERhY2hnZXNlbGxzY2hhZnQsIGRlciBDYXJsIFplaXNzIEFHLCBpc3QgZGllIENhcmwtWmVpc3MtU3RpZnR1bmcsIGVpbmUgZGVyIGdyXHUwMEY2XHUwMERGdGVuIGRldXRzY2hlbiBTdGlmdHVuZ2VuIHp1ciBGXHUwMEY2cmRlcnVuZyBkZXIgV2lzc2Vuc2NoYWZ0LjwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxici8+IDxici8+IFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8ZGl2IGlkPVwiaWR0LXRleHRcIiBjbGFzc05hbWU9XCJjb2wgc3BvbnNvci10ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgPGg0PkFjY2VsZXJhdGUgdGhlIHBhY2Ugb2YgZ2Vub21pY3MuIFdlJ2xsIGhlbHAuPC9oND5cbiAgICAgICAgICAgICAgPGJyLz5cbiAgICAgICAgICAgICAgPHA+IEZvciBtb3JlIHRoYW4gMzUgeWVhcnMsIEludGVncmF0ZWQgRE5BIFRlY2hub2xvZ2llcyAoSURUKSAgaGFzIGVtcG93ZXJlZCBnZW5vbWljcyBsYWJvcmF0b3JpZXMgd2l0aCBhbiBvbGlnb251Y2xlb3RpZGUgbWFudWZhY3R1cmluZyBwcm9jZXNzIHVubGlrZSBhbnlvbmUgZWxzZSBpbiB0aGUgaW5kdXN0cnksIGZlYXR1cmluZyB0aGUgbW9zdCBhZHZhbmNlZCBzeW50aGVzaXMsIG1vZGlmaWNhdGlvbiwgcHVyaWZpY2F0aW9uLCBhbmQgcXVhbGl0eSBjb250cm9sIGNhcGFiaWxpdGllcyBhdmFpbGFibGUuIElEVCBoYXMgc3VwcG9ydGVkIGlHRU0gdGVhbSBmb3Igb3ZlciBhIGRlY2FkZSB3aXRoIDIwa2Igb2YgZnJlZSBETkEgdG8gaGVscCBhY2NlbGVyYXRlIHRoZWlyIGluc3BpcmluZyBwcm9qZWN0cyBmb3IgdGhlIEdyYW5kIEphbWJvcmVlLiBTaW5jZSBpdHMgZm91bmRpbmcgaW4gMTk4NywgSURUIGhhcyBwcm9ncmVzc2VkIGZyb20gYSBsZWFkaW5nIG9saWdvIG1hbnVmYWN0dXJlciB0byBhIGdlbm9taWNzIHNvbHV0aW9ucyBwcm92aWRlciBzdXBwb3J0aW5nIGtleSBhcHBsaWNhdGlvbiBhcmVhcyBzdWNoIGFzIG5leHQgZ2VuZXJhdGlvbiBzZXF1ZW5jaW5nLCBDUklTUFIgZ2Vub21lIGVkaXRpbmcsIHN5bnRoZXRpYyBiaW9sb2d5LCBkaWdpdGFsIFBDUiwgYW5kIFJOQSBpbnRlcmZlcmVuY2UuIElEVCBtYW51ZmFjdHVyZXMgcHJvZHVjdHMgdXNlZCBieSBzY2llbnRpc3RzIHJlc2VhcmNoaW5nIHRoZSB0b3VnaGVzdCBjaGFsbGVuZ2VzIGZhY2luZyBvdXIgcGxhbmV0IHRvZGF5IGFzIHdlbGwgYXMgbWFueSBmb3JtcyBvZiBjYW5jZXIgYW5kIG1vc3QgaW5oZXJpdGVkIGFuZCBpbmZlY3Rpb3VzIGRpc2Vhc2VzLiA8L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBpZD1cImlkdC1wb3J0cmFpdFwiIGNsYXNzTmFtZT1cImNvbC01IHNwb25zb3ItcG9ydHJhaXRcIj5cbiAgICAgICAgICAgIDxhIGhyZWY9XCJ3d3cuaWR0ZG5hLmNvbVwiPlxuICAgICAgICAgICAgICA8aW1nIGlkPVwiaWR0LXBvcnRyYWl0LWxvZ29cIiBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9zcG9uc29ycy9pZHQtbG9nby5wbmdcIj48L2ltZz5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxici8+IDxici8+IFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8ZGl2IGlkPVwiaW50ZWdyYS1wb3J0cmFpdFwiIGNsYXNzTmFtZT1cImNvbC01IHNwb25zb3ItcG9ydHJhaXRcIj5cbiAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly93d3cuaW50ZWdyYS1iaW9zY2llbmNlcy5jb21cIj5cbiAgICAgICAgICAgIDxpbWcgaWQ9XCJpbnRlZ3JhLXBvcnRyYWl0LWxvZ29cIiBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9zcG9uc29ycy9pbnRlZ3JhLWhpbnRlcmxlZ3QuanBlZ1wiPjwvaW1nPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGlkPVwiaW50ZWdyYS10ZXh0XCIgY2xhc3NOYW1lPVwiY29sIHNwb25zb3ItdGV4dC1yaWdodFwiPlxuICAgICAgICAgICAgPGg0PiBZb3VyIFJlbGlhYmxlIFBhcnRuZXIgRm9yIFByb2R1Y3RpdmUgUGlwZXR0ZXMgPC9oND5cbiAgICAgICAgICAgIDxici8+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgIElOVEVHUkEgQmlvc2NpZW5jZXMgaXMgYVxuICAgICAgICAgICAgbGVhZGluZyBwcm92aWRlciBvZiBoaWdoLXF1YWxpdHkgbGFib3JhdG9yeSB0b29scyBhbmQgY29uc3VtYWJsZXMgZm9yXG4gICAgICAgICAgICBsaXF1aWQgaGFuZGxpbmcuIFRoZSBjb21wYW55IGlzIGNvbW1pdHRlZCB0byBjcmVhdGluZyBpbm5vdmF0aXZlXG4gICAgICAgICAgICBzb2x1dGlvbnMgd2hpY2ggZnVsZmlsIHRoZSBuZWVkcyBvZiBpdHMgY3VzdG9tZXJzIGluIHJlc2VhcmNoLCBkaWFnbm9zdGljc1xuICAgICAgICAgICAgYW5kIHF1YWxpdHkgY29udHJvbCB3aXRoaW4gdGhlIGxpZmUgc2NpZW5jZXMgbWFya2V0cyBhbmQgbWVkaWNhbCBzZWN0b3IuXG4gICAgICAgICAgICBJTlRFR1JBXHUyMDE5cyBlbmdpbmVlcmluZyBhbmQgcHJvZHVjdGlvbiB0ZWFtcyBpbiBaaXplcnMsIFN3aXR6ZXJsYW5kIGFuZFxuICAgICAgICAgICAgSHVkc29uLCBOSCwgVVNBLCBzdHJpdmUgdG8gZGV2ZWxvcCBhbmQgbWFudWZhY3R1cmUgaW5zdHJ1bWVudHMgYW5kXG4gICAgICAgICAgICBjb25zdW1hYmxlcyBvZiBvdXRzdGFuZGluZyBxdWFsaXR5LiBUb2RheSwgSU5URUdSQVx1MjAxOXMgaW5ub3ZhdGl2ZVxuICAgICAgICAgICAgbGFib3JhdG9yeSBwcm9kdWN0cyBhcmUgd2lkZWx5IHVzZWQgYWxsIGFyb3VuZCB0aGUgd29ybGQgd2hlcmUgdGhleSBoZWxwXG4gICAgICAgICAgICBzY2llbnRpc3RzIGFjY2VsZXJhdGUgc2NpZW50aWZpYyBkaXNjb3ZlcnkuIE91ciByZXZvbHV0aW9uYXJ5IGNvbmNlcHRcbiAgICAgICAgICAgIGNvbWJpbmVzIGlubm92YXRpdmUgcGlwZXR0aW5nIHdpdGggdGhlIG1vc3QgbW9kZXJuIHJvYm90aWNzLlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJyLz4gPGJyLz4gXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCIgc3R5bGU9e3t0ZXh0QWxpZ246IFwiY2VudGVyXCJ9fT5cbiAgICAgICAgICA8aDQ+QW5kIGEgYmlnIHRoYW5rIHlvdSB0byAuLi48L2g0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJyLz4gPGJyLz5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPGRpdiBpZD1cInByb2plY3QtdGV4dFwiIGNsYXNzTmFtZT1cImNvbCBzcG9uc29yLXRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICA8aDQ+Li4uIG91ciBvdGhlciBwcm9qZWN0IHNwb25zb3JzITwvaDQ+XG4gICAgICAgICAgICAgIDxici8+XG4gICAgICAgICAgICAgIDxwPjwvcD4gXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBpZD1cInByb2plY3QtcG9ydHJhaXRcIiBjbGFzc05hbWU9XCJjb2wtNiBzcG9uc29yLXBvcnRyYWl0XCIgc3R5bGU9e3twYWRkaW5nOiBcIjIwcHhcIn19PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cInNwb25zb3ItY29udGFpbmVyXCIgaHJlZj1cImh0dHBzOi8vd3d3LmNhcmxyb3RoLmRlL1wiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImltZy1zcG9uc29yLXBhcnRuZXItcGFnZVwiIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3Nwb25zb3JzL3JvdGguanBnXCIvPlxuICAgICAgICAgICAgICAgIDwvYT4gXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cbiAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwic3BvbnNvci1jb250YWluZXJcIiBocmVmPVwiaHR0cHM6Ly93d3cudW5pLWJpZWxlZmVsZC5kZS9mYWt1bHRhZXRlbi90ZWNobmlzY2hlLWZha3VsdGFldC9cIj5cbiAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaW1nLXNwb25zb3ItcGFydG5lci1wYWdlXCIgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvc3BvbnNvcnMvdGVjaGZhay5qcGdcIi8+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8L2Rpdj4gICAqL31cbiAgICAgICAgICAgICAgXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cInNwb25zb3ItY29udGFpbmVyXCIgaHJlZj1cInd3dy5zbmFwZ2VuZS5jb21cIj5cbiAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaW1nLXNwb25zb3ItcGFydG5lci1wYWdlXCIgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvc3BvbnNvcnMvc25hcGdlbmUucG5nXCIvPlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwic3BvbnNvci1jb250YWluZXJcIiBocmVmPVwiaHR0cHM6Ly93d3cuamVuYWJpb3NjaWVuY2UuY29tL1wiPlxuICAgICAgICAgICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJpbWctc3BvbnNvci1wYXJ0bmVyLXBhZ2VcIiBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9zcG9uc29ycy9qYnMtZHVua2VsZ3J1ZW4tdGV4dC5wbmdcIi8+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwic3BvbnNvci1jb250YWluZXJcIiBocmVmPVwiaHR0cHM6Ly93d3cudW5pLWJpZWxlZmVsZC5kZS9cIj5cbiAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaW1nLXNwb25zb3ItcGFydG5lci1wYWdlXCIgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvbG9nb3MtdGVhbS91bmktYmllbGVmZWxkLWR1bmtlbC5wbmdcIi8+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJzcG9uc29yLWNvbnRhaW5lclwiIGhyZWY9XCJodHRwczovL3d3dy5jZWJpdGVjLnVuaS1iaWVsZWZlbGQuZGUvXCI+XG4gICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImltZy1zcG9uc29yLXBhcnRuZXItcGFnZVwiIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3Nwb25zb3JzL2NlYml0ZWMtZmFyYmUucG5nXCIvPlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxici8+IDxici8+IFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8ZGl2IGlkPVwibWVldHVwLXBvcnRyYWl0XCIgY2xhc3NOYW1lPVwiY29sLTUgc3BvbnNvci1wb3J0cmFpdFwiIHN0eWxlPXt7cGFkZGluZzogXCIyMHB4XCJ9fT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJzcG9uc29yLWNvbnRhaW5lclwiIGhyZWY9XCJcIj5cbiAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaW1nLXNwb25zb3ItcGFydG5lci1wYWdlXCIgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvc3BvbnNvcnMvYXNpbW92LWNvbG9yZnVsLnBuZ1wiLz5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJzcG9uc29yLWNvbnRhaW5lclwiIGhyZWY9XCJodHRwczovL3d3dy51bmktYmllbGVmZWxkLmRlL2Zha3VsdGFldGVuL3RlY2huaXNjaGUtZmFrdWx0YWV0L2FyYmVpdHNncnVwcGVuL211bHRpc2NhbGUtYmlvZW5naW5lZXJpbmcvY2FtcHVzYnJhdWVyZWkvXCI+XG4gICAgICAgICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJpbWctc3BvbnNvci1wYXJ0bmVyLXBhZ2VcIiBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9zcG9uc29ycy9jYW1wdXMtYnJhdWVyZWktaGludGVybGVndC5qcGVnXCIvPlxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cInNwb25zb3ItY29udGFpbmVyXCIgaHJlZj1cIlwiPlxuICAgICAgICAgICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJpbWctc3BvbnNvci1wYXJ0bmVyLXBhZ2VcIiBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9zcG9uc29ycy9hbGdlbml1bS5wbmdcIi8+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwic3BvbnNvci1jb250YWluZXJcIiBocmVmPVwid3d3LnByb21lZ2EuY29tXCI+XG4gICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImltZy1zcG9uc29yLXBhcnRuZXItcGFnZVwiIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3Nwb25zb3JzL3Byb21lZ2EtZ2VsYi5wbmdcIi8+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJzcG9uc29yLWNvbnRhaW5lclwiIGhyZWY9XCJodHRwczovL3d3dy5wbGFzbWlkZmFjdG9yeS5jb20vXCI+XG4gICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImltZy1zcG9uc29yLXBhcnRuZXItcGFnZVwiIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3Nwb25zb3JzL3BsYXNtaWRmYWN0b3J5LnBuZ1wiLz5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cInNwb25zb3ItY29udGFpbmVyXCIgaHJlZj1cImh0dHBzOi8vd3d3LmdpcC5jb20vaG9tZS9cIj5cbiAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaW1nLXNwb25zb3ItcGFydG5lci1wYWdlXCIgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvc3BvbnNvcnMvZ2lwLnBuZ1wiIC8+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIDxkaXYgaWQ9XCJtZWV0dXAtdGV4dFwiIGNsYXNzTmFtZT1cImNvbCBzcG9uc29yLXRleHQtcmlnaHRcIiBzdHlsZT17e3RleHRBbGlnbjogXCJyaWdodFwifX0+XG4gICAgICAgICAgICA8aDQ+IC4uLiBvdXIgTWVldFVwIHNwb25zb3JzISA8L2g0PlxuICAgICAgICAgICAgPGJyLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxici8+IDxici8+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxkaXYgaWQ9XCJwYXJ0bmVyLXRleHRcIiBjbGFzc05hbWU9XCJjb2wgc3BvbnNvci10ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgICAgPGg0Pi4uLiBvdXIgcGFydG5lcnMhPC9oND5cbiAgICAgICAgICAgICAgPGJyLz5cbiAgICAgICAgICAgICAgPHA+PC9wPiBcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGlkPVwicGFydG5lci1wb3J0cmFpdFwiIGNsYXNzTmFtZT1cImNvbC02IHNwb25zb3ItcG9ydHJhaXRcIiBzdHlsZT17e3BhZGRpbmc6IFwiMjBweFwifX0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJzcG9uc29yLWNvbnRhaW5lclwiIGhyZWY9XCJcIj5cbiAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaW1nLXNwb25zb3ItcGFydG5lci1wYWdlXCIgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvbG9nb3MtdGVhbS9vdGhlci10ZWFtcy9ndS1mcmFua2Z1cnQtbG9nby5wbmdcIi8+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJzcG9uc29yLWNvbnRhaW5lclwiIGhyZWY9XCJodHRwczovL2J0cy1ldi5kZS9cIj5cbiAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaW1nLXNwb25zb3JcIiBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9zcG9uc29ycy9idHMucG5nXCIvPlxuICAgICAgICAgICAgICAgIDwvYT4gXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cInNwb25zb3ItY29udGFpbmVyXCIgaHJlZj1cIlwiPlxuICAgICAgICAgICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJpbWctc3BvbnNvci1wYXJ0bmVyLXBhZ2VcIiBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9sb2dvcy10ZWFtL290aGVyLXRlYW1zL2lnZW0taGFtYnVyZy1sb2dvLnBuZ1wiLz5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJzcG9uc29yLWNvbnRhaW5lclwiIGhyZWY9XCJcIj5cbiAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaW1nLXNwb25zb3ItcGFydG5lci1wYWdlXCIgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvc3BvbnNvcnMvc3R1ZHNjaWNvbS1sb2dvLnBuZ1wiLz5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBcbiAgICAgICAgXG4gICAgICAgIFxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuICAiLCAiXG5leHBvcnQgZnVuY3Rpb24gU3VwcGxlbWVudGFyeSgpIHtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgICA8aDI+V2lraSB1bmRlciBjb25zdHJ1Y3Rpb24hPC9oMj5cbiAgICAgICAgICAgIDxoci8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuICAiLCAiXG5leHBvcnQgZnVuY3Rpb24gSW50cygpIHtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICBcbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbiAgICAiLCAiXG5leHBvcnQgZnVuY3Rpb24gQkZISCgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctdmlkZW8tY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8aWZyYW1lIHRpdGxlPVwiQmllbGVmZWxkLUNlQmlUZWM6IE1lZXRVcCAoMjAyNCkgW0VuZ2xpc2hdXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiNzAwXCIgc3JjPVwiaHR0cHM6Ly92aWRlby5pZ2VtLm9yZy92aWRlb3MvZW1iZWQvMzBiOGE2ZTAtMmI0YS00NjE4LTg4NjctNGViOGU2YTUyOTM2P3N0YXJ0PTI3cyZhbXA7bG9vcD0xJmFtcDthdXRvcGxheT0xJmFtcDttdXRlZD0xJmFtcDt0aXRsZT0wJmFtcDt3YXJuaW5nVGl0bGU9MCZhbXA7Y29udHJvbEJhcj0wJmFtcDtwZWVydHViZUxpbms9MCZhbXA7cDJwPTBcIiBmcmFtZUJvcmRlcj1cIjBcIiBzYW5kYm94PVwiYWxsb3ctc2FtZS1vcmlnaW4gYWxsb3ctc2NyaXB0cyBhbGxvdy1wb3B1cHMgYWxsb3ctZm9ybXNcIj48L2lmcmFtZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBcblxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGVcIj5cblxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgICAgIFxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbiAgIiwgImludGVyZmFjZSBQcm9wc3tcbiAgICB0aXRsZT86IHN0cmluZyxcbiAgICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZSxcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gSGVhZGVyQm94KHtjaGlsZHJlbiwgdGl0bGV9OiBQcm9wcyApe1xuICAgIHJldHVybihcbiAgICAgICAgPD5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbCBoZWFkZXItY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhlYWRlci10aXRsZVwiPlxuICAgICAgICAgICAgICB7dGl0bGV9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJhc2VcIj5cbiAgICAgICAgICAgIFxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgICAgIFxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgIClcbn0iLCAiaW1wb3J0IEhlYWRlckJveCBmcm9tIFwiLi4vY29tcG9uZW50cy9oZWFkZXItYm94XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBBVFRIKCkge1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxIZWFkZXJCb3ggdGl0bGU9XCJBdHRyaWJ1dGlvbnNcIj5cbiAgICAgIDwvSGVhZGVyQm94PlxuICAgICk7XG4gIH0iLCAiaW1wb3J0IEhlYWRlckJveCBmcm9tIFwiLi4vY29tcG9uZW50cy9oZWFkZXItYm94XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBDT05USCgpIHtcblxuICAgIHJldHVybiAoXG4gICAgICA8SGVhZGVyQm94IHRpdGxlPVwiQ29udHJpYnV0aW9uXCI+XG4gICAgICAgIFxuICAgICAgPC9IZWFkZXJCb3g+XG4gICAgKTtcbiAgfSIsICJleHBvcnQgZnVuY3Rpb24gREVTQ0goKSB7XG5cbiAgcmV0dXJuIChcbiAgICA8SGVhZGVyQm94IHRpdGxlPVwiRGVzY3JpcHRpb25cIj5cbiAgICAgIFxuICAgIDwvSGVhZGVyQm94PlxuICApO1xufVxuXG5pbXBvcnQgSGVhZGVyQm94IGZyb20gXCIuLi9jb21wb25lbnRzL2hlYWRlci1ib3hcIjsiLCAiZXhwb3J0IGZ1bmN0aW9uIEhPTUVIKCkge1xuICByZXR1cm4gKFxuICAgIDxIZWFkZXJCb3g+XG4gICAgICBcbiAgICA8L0hlYWRlckJveD5cbiAgKTtcbn1cblxuaW1wb3J0IEhlYWRlckJveCBmcm9tIFwiLi4vY29tcG9uZW50cy9oZWFkZXItYm94XCI7IiwgImV4cG9ydCBmdW5jdGlvbiBFWFBIKCkge1xuXG4gIHJldHVybiAoXG4gICAgPEhlYWRlckJveCB0aXRsZT1cIkV4cGVyaW1lbnRzXCI+XG4gICAgICBcbiAgICA8L0hlYWRlckJveD5cbiAgKTtcbn1cblxuaW1wb3J0IEhlYWRlckJveCBmcm9tIFwiLi4vY29tcG9uZW50cy9oZWFkZXItYm94XCI7IiwgImV4cG9ydCBmdW5jdGlvbiBIUEgoKSB7XG5cbiAgcmV0dXJuIChcbiAgICA8SGVhZGVyQm94IHRpdGxlPVwiSHVtYW4gUHJhY3RpY2VzXCI+XG4gICAgICBcbiAgICA8L0hlYWRlckJveD5cbiAgKTtcbn1cblxuaW1wb3J0IEhlYWRlckJveCBmcm9tIFwiLi4vY29tcG9uZW50cy9oZWFkZXItYm94XCI7IiwgImV4cG9ydCBmdW5jdGlvbiBJTVBIKCkge1xuXG4gIHJldHVybiAoXG4gICAgPEhlYWRlckJveD5cbiAgICAgIFxuICAgIDwvSGVhZGVyQm94PlxuICApO1xufVxuXG5pbXBvcnQgSGVhZGVyQm94IGZyb20gXCIuLi9jb21wb25lbnRzL2hlYWRlci1ib3hcIjsiLCAiZXhwb3J0IGZ1bmN0aW9uIE5PVEVIKCkge1xuXG4gIHJldHVybiAoXG4gICAgPEhlYWRlckJveCB0aXRsZT1cIk5vdGVib29rXCI+XG4gICAgICBcbiAgICA8L0hlYWRlckJveD5cbiAgKTtcbn1cblxuaW1wb3J0IEhlYWRlckJveCBmcm9tIFwiLi4vY29tcG9uZW50cy9oZWFkZXItYm94XCI7IiwgImV4cG9ydCBmdW5jdGlvbiBSRVNIKCkge1xuXG4gIHJldHVybiAoXG4gICAgPEhlYWRlckJveCB0aXRsZT1cIlJlc3VsdHNcIj5cbiAgICAgIFxuICAgIDwvSGVhZGVyQm94PlxuICApO1xufVxuXG5pbXBvcnQgSGVhZGVyQm94IGZyb20gXCIuLi9jb21wb25lbnRzL2hlYWRlci1ib3hcIjsiLCAiZXhwb3J0IGZ1bmN0aW9uIFNBRkVIKCkge1xuXG4gIHJldHVybiAoXG4gICAgPEhlYWRlckJveCB0aXRsZT1cIlNhZmV0eVwiPlxuICAgICAgXG4gICAgPC9IZWFkZXJCb3g+XG4gICk7XG59XG5cbmltcG9ydCBIZWFkZXJCb3ggZnJvbSBcIi4uL2NvbXBvbmVudHMvaGVhZGVyLWJveFwiOyIsICJleHBvcnQgZnVuY3Rpb24gVEVBTUgoKSB7XG5cbiAgcmV0dXJuIChcbiAgICA8SGVhZGVyQm94IHRpdGxlPVwiT3VyIFRlYW1cIj5cbiAgICAgIFxuICAgIDwvSGVhZGVyQm94PlxuICApO1xufVxuXG5pbXBvcnQgSGVhZGVyQm94IGZyb20gXCIuLi9jb21wb25lbnRzL2hlYWRlci1ib3hcIjsiLCAiZXhwb3J0IGZ1bmN0aW9uIFdJS0lIKCkge1xuXG4gIHJldHVybiAoXG4gICAgPEhlYWRlckJveCB0aXRsZT1cIldpa2kgRG9jdW1lbnRhdGlvblwiPlxuICAgICAgXG4gICAgPC9IZWFkZXJCb3g+XG4gICk7XG59XG5cbmltcG9ydCBIZWFkZXJCb3ggZnJvbSBcIi4uL2NvbXBvbmVudHMvaGVhZGVyLWJveFwiOyIsICJleHBvcnQgZnVuY3Rpb24gSU5UU0goKSB7XG5cbiAgcmV0dXJuIChcbiAgICA8SGVhZGVyQm94IHRpdGxlPVwiSW50ZXJ2aWV3c1wiPlxuICAgICAgXG4gICAgPC9IZWFkZXJCb3g+XG4gICk7XG59XG5cbmltcG9ydCBIZWFkZXJCb3ggZnJvbSBcIi4uL2NvbXBvbmVudHMvaGVhZGVyLWJveFwiOyIsICJleHBvcnQgZnVuY3Rpb24gU1BPTkgoKSB7XG5cbiAgcmV0dXJuIChcbiAgICA8SGVhZGVyQm94IHRpdGxlPVwiU3BvbnNvcnMgYW5kIFBhcnRuZXJzXCI+XG4gICAgICBcbiAgICA8L0hlYWRlckJveD5cbiAgKTtcbn1cblxuaW1wb3J0IEhlYWRlckJveCBmcm9tIFwiLi4vY29tcG9uZW50cy9oZWFkZXItYm94XCI7IiwgImV4cG9ydCBmdW5jdGlvbiBEUllIKCkge1xuICByZXR1cm4gKFxuICAgIDxIZWFkZXJCb3g+XG4gICAgICBcbiAgICA8L0hlYWRlckJveD5cbiAgKTtcbn1cblxuaW1wb3J0IEhlYWRlckJveCBmcm9tIFwiLi4vY29tcG9uZW50cy9oZWFkZXItYm94XCI7IiwgImV4cG9ydCBmdW5jdGlvbiBFTkdIKCkge1xuXG4gIHJldHVybiAoXG4gICAgPEhlYWRlckJveCB0aXRsZT1cIkVuZ2luZWVyaW5nXCI+XG4gICAgICBcbiAgICA8L0hlYWRlckJveD5cbiAgKTtcbn1cblxuaW1wb3J0IEhlYWRlckJveCBmcm9tIFwiLi4vY29tcG9uZW50cy9oZWFkZXItYm94XCI7IiwgImV4cG9ydCBmdW5jdGlvbiBTVVBIKCkge1xuXG4gIHJldHVybiAoXG4gICAgPEhlYWRlckJveCB0aXRsZT1cIlN1cHBsZW1lbnRhcnkgRGF0YVwiPlxuICAgICAgXG4gICAgPC9IZWFkZXJCb3g+XG4gICk7XG59XG5cbmltcG9ydCBIZWFkZXJCb3ggZnJvbSBcIi4uL2NvbXBvbmVudHMvaGVhZGVyLWJveFwiOyIsICJleHBvcnQgZnVuY3Rpb24gTUVTSCgpIHtcblxuICByZXR1cm4gKFxuICAgIDxIZWFkZXJCb3ggdGl0bGU9XCJNZWFzdXJlbWVudFwiPlxuICAgICAgXG4gICAgPC9IZWFkZXJCb3g+XG4gICk7XG59XG5cbmltcG9ydCBIZWFkZXJCb3ggZnJvbSBcIi4uL2NvbXBvbmVudHMvaGVhZGVyLWJveFwiOyIsICJcbmV4cG9ydCBmdW5jdGlvbiBQYXJ0cygpIHtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgICA8aDI+V2lraSB1bmRlciBjb25zdHJ1Y3Rpb24hPC9oMj5cbiAgICAgICAgICAgIDxoci8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuICAiLCAiZXhwb3J0IGZ1bmN0aW9uIFBBUlRIKCkge1xuXG4gIHJldHVybiAoXG4gICAgPEhlYWRlckJveCB0aXRsZT1cIlBhcnRzXCI+XG4gICAgICBcbiAgICA8L0hlYWRlckJveD5cbiAgKTtcbn1cblxuaW1wb3J0IEhlYWRlckJveCBmcm9tIFwiLi4vY29tcG9uZW50cy9oZWFkZXItYm94XCI7IiwgImV4cG9ydCBmdW5jdGlvbiBQcm9vZigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgbXQtNFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgICBcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4gICIsICJleHBvcnQgZnVuY3Rpb24gUFJPT0ZIKCkge1xuXG4gIHJldHVybiAoXG4gICAgPEhlYWRlckJveCB0aXRsZT1cIlByb29mIG9mIENvbmNlcHRcIj5cbiAgICAgIFxuICAgIDwvSGVhZGVyQm94PlxuICApO1xufVxuXG5pbXBvcnQgSGVhZGVyQm94IGZyb20gXCIuLi9jb21wb25lbnRzL2hlYWRlci1ib3hcIjsiLCAiXG5cbmV4cG9ydCBmdW5jdGlvbiBEZXNpZ24oKSB7XG4gXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IG10LTRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy04XCI+XG4gICAgICAgICAgICBcbiAgICAgICAgICA8L2Rpdj5cbiAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuICAiLCAiZXhwb3J0IGZ1bmN0aW9uIERFU0goKSB7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPEhlYWRlckJveCB0aXRsZT1cIkRlc2lnblwiPlxuICAgICAgICBcbiAgICAgIDwvSGVhZGVyQm94PlxuICAgICk7XG4gIH1cblxuICBpbXBvcnQgSGVhZGVyQm94IGZyb20gXCIuLi9jb21wb25lbnRzL2hlYWRlci1ib3hcIjsiLCAiXG5leHBvcnQgZnVuY3Rpb24gSnVkZ2luZygpIHtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgICA8aDI+V2lraSB1bmRlciBjb25zdHJ1Y3Rpb24hPC9oMj5cbiAgICAgICAgICAgIDxoci8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuICAiLCAiaW1wb3J0IEhlYWRlckJveCBmcm9tIFwiLi4vY29tcG9uZW50cy9oZWFkZXItYm94XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBKVURHRUgoKSB7XG5cbiAgICByZXR1cm4gKFxuICAgICAgXG4gICAgICA8SGVhZGVyQm94IHRpdGxlPVwiSnVkZ2luZ1wiPlxuICAgICAgICBcbiAgICAgIDwvSGVhZGVyQm94PlxuICAgICk7XG4gIH0iLCAiXG5cbmV4cG9ydCBmdW5jdGlvbiBFdGhpY3MoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IG10LTRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy04XCI+XG4gICAgICAgICAgICBcbiAgICAgICAgICA8L2Rpdj5cbiAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuICAiLCAiZXhwb3J0IGZ1bmN0aW9uIEVUSEgoKSB7XG5cbiAgcmV0dXJuIChcbiAgICA8SGVhZGVyQm94IHRpdGxlPVwiRXRoaWNzXCI+XG4gICAgICBcbiAgICA8L0hlYWRlckJveD5cbiAgKTtcbn1cblxuaW1wb3J0IEhlYWRlckJveCBmcm9tIFwiLi4vY29tcG9uZW50cy9oZWFkZXItYm94XCI7IiwgImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBTbGlkZXIgZnJvbSBcInJlYWN0LXNsaWNrXCI7XG5cbmludGVyZmFjZSBTbGlkZXJQcm9wcyB7XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7IFxufVxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2ltcGxlU2xpZGVyKHtjaGlsZHJlbn06IFNsaWRlclByb3BzKSB7XG4gIHZhciBzZXR0aW5ncyA9IHtcbiAgICBkb3RzOiB0cnVlLFxuICAgIGluZmluaXRlOiB0cnVlLFxuICAgIHNsaWRlc1RvU2hvdzogMSxcbiAgICBzbGlkZXNUb1Njcm9sbDogMSxcbiAgICBhdXRvcGxheTogdHJ1ZSxcbiAgICBzcGVlZDogMjAwMCxcbiAgICBhdXRvcGxheVNwZWVkOiAyMDAwLFxuICAgIGNzc0Vhc2U6IFwibGluZWFyXCIsXG4gICAgcGF1c2VPbkhvdmVyOiB0cnVlLFxuICAgIG5leHRBcnJvdzogPD48Lz4sXG4gICAgcHJldkFycm93OiA8PjwvPlxuICB9O1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwic2xpZGVyLWNvbnRhaW5lclwiPlxuICAgICAgIDxTbGlkZXIgey4uLnNldHRpbmdzfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TbGlkZXI+XG4gICAgPC9kaXY+XG4gICBcbiAgKTtcbn0iLCAiaW1wb3J0IGdzYXAgZnJvbSBcImdzYXBcIjsgXG5pbXBvcnQgeyB1c2VHU0FQIH0gZnJvbSBcIkBnc2FwL3JlYWN0XCI7XG5pbXBvcnQgeyBTY3JvbGxUcmlnZ2VyIH0gZnJvbSBcImdzYXAvZGlzdC9TY3JvbGxUcmlnZ2VyXCI7XG5pbXBvcnQgeyB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBNb3Rpb25QYXRoUGx1Z2luIH0gZnJvbSBcImdzYXAvZGlzdC9Nb3Rpb25QYXRoUGx1Z2luXCI7XG5cblxuXG5mdW5jdGlvbiBUZXN0U1ZHKCkge1xuICBnc2FwLnJlZ2lzdGVyUGx1Z2luKHVzZUdTQVApO1xuICBnc2FwLnJlZ2lzdGVyUGx1Z2luKE1vdGlvblBhdGhQbHVnaW4pO1xuICBnc2FwLnJlZ2lzdGVyUGx1Z2luKFNjcm9sbFRyaWdnZXIpO1xuICBcbmNvbnNvbGUubG9nKFwiU3RhcnRlZCBUZXN0U1ZHXCIpXG4gIGNvbnN0IHZlY3RvclJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgcGF5bG9hZFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgaW5oYWxhdG9yUmVmID0gdXNlUmVmKG51bGwpO1xuXG4gIHVzZUdTQVAoXG4gICAgKCkgPT4ge1xuICAgIGdzYXAucmVnaXN0ZXJQbHVnaW4oU2Nyb2xsVHJpZ2dlcik7XG4gICAgZ3NhcC5yZWdpc3RlclBsdWdpbih1c2VHU0FQKTtcbiAgICBnc2FwLnJlZ2lzdGVyUGx1Z2luKE1vdGlvblBhdGhQbHVnaW4pO1xuICAgIFxuICAgIGdzYXAuZGVmYXVsdHMoe2Vhc2U6IFwibm9uZVwifSk7XG5cbiAgICBjb25zdCBtYWluID0gZ3NhcC50aW1lbGluZSh7XG4gICAgICBzY3JvbGxUcmlnZ2VyOiB7XG4gICAgICAgIHRyaWdnZXI6IFwic3ZnXCIsXG4gICAgICAgIHNjcnViOiB0cnVlLFxuICAgICAgICBzdGFydDpcInRvcCBtaWRkbGVcIixcbiAgICAgICAgZW5kOiBcImJvdHRvbSBtaWRkbGVcIlxuICAgICAgfVxuICAgIH0pXG4gICAgXG4gICAgLmZyb20oXCIudGhlTGluZVwiLCB7ZHJhd1NWRzogMH0sIDApXG4gICAgLnRvKHBheWxvYWRSZWYuY3VycmVudCwge21vdGlvblBhdGg6e1xuICAgICAgcGF0aDpcIi50aGVMaW5lXCIsXG4gICAgICBhbGlnbjpcIi50aGVMaW5lXCIsXG4gICAgICBhbGlnbk9yaWdpbjpbMC41LCAwLjVdLFxuICAgIH19LCAwKVxuICAgIC5mcm9tKFwiLnRoZUxpbmUyXCIsIHtkcmF3U1ZHOiAwfSwgMClcbiAgICAudG8odmVjdG9yUmVmLmN1cnJlbnQsIHttb3Rpb25QYXRoOntcbiAgICAgIHBhdGg6XCIudGhlTGluZTJcIixcbiAgICAgIGFsaWduOlwiLnRoZUxpbmUyXCIsXG4gICAgICBhbGlnbk9yaWdpbjpbMC41LCAwLjVdLFxuICAgIH19LCAwKS5mcm9tKFwiLnRoZUxpbmUzXCIsIHtkcmF3U1ZHOiAwfSwgMClcbiAgICAudG8oaW5oYWxhdG9yUmVmLmN1cnJlbnQsIHttb3Rpb25QYXRoOntcbiAgICAgIHBhdGg6XCIudGhlTGluZTNcIixcbiAgICAgIGFsaWduOlwiLnRoZUxpbmUzXCIsXG4gICAgICBhbGlnbk9yaWdpbjpbMC41LCAwLjVdLFxuICAgIH19LCAwKVxuICAgIGNvbnNvbGUubG9nKG1haW4pXG4gIH0sXG4gICk7XG5cbiBcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC04XCI+XG4gICAgICBcbiAgICAgIDxzdmcgaWQ9XCJzdmdcIiB4bWxucz1cIlwiIHZpZXdCb3g9XCIwIDAgMTk4MCA0NDAwXCI+XG4gICAgICAgIFxuICAgICAgICA8cGF0aCBjbGFzc05hbWU9XCJ0aGVMaW5lXCIgZD1cIlxuICAgICAgICBNIDUwIDUwIFMgNTQwIDIwMCA1NDAgMTAwMCBTIC0zMDAgMTIwMCA1NDAgMjAwMCBTIC02MDAgMjIwMCA1NDAgMzAwMCBTIDAgNDAwMCA1NDAgNDAwMCBMIDU0MCA0NTAwXCJcbiAgICAgICAgLyogZmlsZT1cIm5vbmVcIiAqLyBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZVdpZHRoPVwiMTBweFwiPjwvcGF0aD5cblxuICAgICAgICBcblxuICAgICAgICA8cGF0aCBjbGFzc05hbWU9XCJ0aGVMaW5lMlwiIGQ9XCJcbiAgICAgICAgTSAxMDMwIDUwIFMgNTQwIDIwMCA1NDAgMTAwMCBTIC0zMDAgMTIwMCA1NDAgMjAwMCBTIC02MDAgMjIwMCA1NDAgMzAwMCBTIDU0MCA0MDAwIDU0MCA0MDAwIEwgNTQwIDM1MDBcIlxuICAgICAgICAvKiBmaWxlPVwibm9uZVwiICovIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlV2lkdGg9XCIxMHB4XCI+PC9wYXRoPlxuXG5cblxuICAgICAgICA8cGF0aCBjbGFzc05hbWU9XCJ0aGVMaW5lM1wiIGQ9XCJcbiAgICAgICAgTSAyMDAwIDYwMCBTIC0zMDAgMTIwMCA1NDAgMjAwMCBTIC02MDAgMjIwMCA1NDAgMzAwMCBTIDU0MCA0MDAwIC0xMDAgNDAwMCBMIC0xMDAgNDIwMFwiXG4gICAgICAgIC8qIGZpbGU9XCJub25lXCIgKi8gc3Ryb2tlPVwid2hpdGVcIiBzdHJva2VXaWR0aD1cIjEwcHhcIj48L3BhdGg+XG5cbiAgICAgIDwvc3ZnPlxuICAgICAgPGltZyByZWY9e3ZlY3RvclJlZn0gc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvc2NpZW50aWZpYy1maWd1cmVzL2FudGliaW90aWNzLWNhcHN1bGUuc3ZnXCIgYWx0PVwidmVjdG9ySW1nXCIvPlxuICAgICAgPGltZyByZWY9e3BheWxvYWRSZWZ9IHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3NjaWVudGlmaWMtZmlndXJlcy9hbnRpYmlvdGljcy1pbmhhbGVyLnN2Z1wiIGFsdD1cInBheWxvYWRJbWdcIi8+XG4gICAgICA8aW1nIHJlZj17aW5oYWxhdG9yUmVmfSBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9zY2llbnRpZmljLWZpZ3VyZXMvYWxidXRlcm9sLnN2Z1wiIGFsdD1cImluaGFsYXRvckltZ1wiLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgVGVzdFNWRztcblxuIiwgImltcG9ydCB7IFRpbWVsaW5lSXRlbSB9IGZyb20gXCIuLi9jb21wb25lbnRzL015LVRpbWVsaW5lXCI7XG5pbXBvcnQgU2ltcGxlU2xpZGVyIGZyb20gXCIuLi9jb21wb25lbnRzL3NsaWRlclwiO1xuaW1wb3J0IFRlc3RTVkcgZnJvbSBcIi4uL2NvbXBvbmVudHMvdGVzdHN2Z2FuaW1hdGlvblwiO1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBFeGFtcGxlKCkge1xuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgPFRlc3RTVkc+PC9UZXN0U1ZHPlxuICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cImV4YW1wbGVcIj5FeGVyY2lzZXM8L2gzPlxuICAgICAgICAgICAgPGk+PGg2PkJ5IFlvdXIgbmFtZTwvaDY+PC9pPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJleGFtcGxlLWV4ZXJjaXNlXCI+XG4gICAgICAgICAgICAgICAgPHA+IEFsbCBjb21wb25lbnRzIHNob3VsZCBiZSBpbiB0aGlzIGZpbGUuIFRoZSBleHRyYSBjc3MgaGFzIHRvIGJlIHB1dCBpbnRvIGV4YXBtbGUuY3NzLiBUdXJuIHRvIExpbGlhbmEgaWYgeW91IG5lZWQgb3Igd2FudCBhIHNjc3MgZmlsZSwgdG9vLjwvcD5cbiAgICAgICAgICAgICAgICA8cD5UaGUgY29kZSB5b3UgY3JlYXRlIHNob3VsZCBiZSBpbiB0aGUgcmVzcGVjdGl2ZSBjb2x1bW5zIHdoZXJlIHRoZSBhc3NpZ25tZW50cyBhcmUsIGlmIG5vdCBzdGF0ZWQgb3RoZXJ3aXNlLiA8L3A+XG4gICAgICAgICAgICAgICAgPHA+V3JpdGUgZG93biBob3cgeW91IGRpZCBpdCBpbiB0aGUgZG9jdW1lbnRhdGlvbi1ib3ggYXMgYSBkb2N1bWVudGF0aW9uIGZvciB0aGUgb3RoZXJzLiBVc2UgdGhlIERvY3UtQm9jIGNvbXBvbmVudCBmb3IgdGhhdC5Zb3UgaGF2ZSB0byBhZGQgaXQgdG8geW91ciBheGVyY2lzZSBibG9jayBtYW51YWxseS4gPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8RG9jdUJveD5cbiAgICAgICAgICAgICAgICA8cD5JIHdyb3RlIGEgdGV4dC48L3A+XG4gICAgICAgICAgICA8L0RvY3VCb3g+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8aHIvPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPjxoND5MaXN0czwvaDQ+PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMVwiPiA8ZGl2IGNsYXNzTmFtZT1cImV4YW1wbGUtZWFzeS10YWdcIj5FYXN5PC9kaXY+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxpPjxoNj5CeSA8L2g2PjwvaT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXhhbXBsZS1leGVyY2lzZVwiPlxuICAgICAgICAgICAgICAgIDxwPmEuIENyZWF0ZSBhIG51bWJlcmVkIGxpc3Qgb2YgZnJ1aXRzLiBGaXZlIGl0ZW1zIGFyZSBlbm91Z2guIFVzZSB0aGUgSFRNTCBsaXN0IGVsZW1lbnQuPC9wPiBcbiAgICAgICAgICAgICAgICA8cD5iLiBDcmVhdGUgYSBzZWNvbmQgY29sdW1uIG5leHQgdG8gdGhlIG9uZSB3aXRoIHRoZSBmcnVpdCBsaXN0IHRoYXQgY29udGFpbnMgYSBidXR0b24uIDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGhyLz5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj48aDQ+UGljdHVyZTwvaDQ+PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMVwiPjxkaXYgY2xhc3NOYW1lPVwiZXhhbXBsZS1lYXN5LXRhZ1wiPkVhc3k8L2Rpdj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGk+PGg2PkJ5IDwvaDY+PC9pPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJleGFtcGxlLWV4ZXJjaXNlXCI+XG4gICAgICAgICAgICAgICAgPHA+YS4gSW5zZXJ0IGEgY2VudGVyZWQgcGljdHVyZSBvZiBTaW5hbiBoZXJlLiBJdCBzaG91bGQgYmUgaGFsZiBhcyB3aWRlIGFzIHRoZSBjb2x1bW4gYW5kIGhhdmUgYSBkb3R0ZXQgZnJhbWUgaW4gb3VyIHB1cnBsZS48L3A+XG4gICAgICAgICAgICAgICAgPHA+Yi4gV2hlbiBob3ZlcmluZyBvdmVyIHRoZSBwaWN0dXJlLCBpdCBzaG91bGQgdHVybiBibGFjayBhbmQgd2hpdGUuIDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGhyLz5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wgZXhlcmNpc2VcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+PGg0PlRpbWVsaW5lIEJGSDwvaDQ+PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMSBcIj48ZGl2IGNsYXNzTmFtZT1cImV4YW1wbGUtZWFzeS10YWdcIj5FYXN5PC9kaXY+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxpPjxoNj5CeSA8L2g2PjwvaT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXhhbXBsZS1leGVyY2lzZVwiPlxuICAgICAgICAgICAgPHA+IEFkZCBhIGR1bW15IHRpbWVsaW5lIGl0ZW08L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGltZWxpbmUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPFRpbWVsaW5lSXRlbVxuICAgICAgICAgICAgICAgIGRhdGU9J0hvdyB0byBTeW5CaW8nXG4gICAgICAgICAgICAgICAgdGFnPSdXb3Jrc2hvcCBTZXNzaW9uIEkuJ1xuICAgICAgICAgICAgICAgIGNvbG9yPSd2YXIoLS10ZXh0LXByaW1hcnkpJ1xuICAgICAgICAgICAgICAgIGNzc3RhZz1cIldvcmtzaG9wXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgRGVzaWduIGdlbmV0aWMgY29uc3RydWN0cyBhbmQgcmUtd3JpdGUgdGhlIGdlbm9taWMgY29kZSwgYW5kIHBsYW4gZXhwZXJpbWVudHMgdXNpbmcgQUkuIExlYXJuIGhvdyB0byBlZmZlY3RpdmVseSBidWlsZCBnZW5ldGljIGNpcmN1aXQgc3lzdGVtcyBmb3IgaW1wbGVtZW50YXRpb24gaW4geW91ciBpR0VNIHByb2plY3QuXG4gICAgICAgICAgICAgICAgPC9UaW1lbGluZUl0ZW0+XG4gICAgICAgICAgICAgICBcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGhyLz5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj48aDQ+UGljdHVyZSBTbGlkZXI8L2g0PjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTFcIj48ZGl2IGNsYXNzTmFtZT1cImV4YW1wbGUtZWFzeS10YWdcIj5FYXN5PC9kaXY+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxpPjxoNj5CeSA8L2g2PjwvaT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXhhbXBsZS1leGVyY2lzZVwiPjwvZGl2PlxuICAgICAgICAgICAgPHA+IEFkZCBhIGR1bW15IHNwb25zb3IgdG8gdGhpcyBzbGlkZXIuPC9wPlxuICAgICAgICAgICAgPFNpbXBsZVNsaWRlcj5cbiAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cInNwb25zb3ItY29udGFpbmVyXCIgaHJlZj1cImh0dHBzOi8vYnRzLWV2LmRlL1wiPlxuICAgICAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImltZy1zcG9uc29yXCIgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuaWdlbS53aWtpL3RlYW1zLzUyNDcvc3BvbnNvcnMvYnRzLnBuZ1wiLz5cbiAgICAgICAgICAgIDwvYT4gXG4gICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJzcG9uc29yLWNvbnRhaW5lclwiIGhyZWY9XCJodHRwczovL3d3dy51bmktYmllbGVmZWxkLmRlL2Zha3VsdGFldGVuL3RlY2huaXNjaGUtZmFrdWx0YWV0L2FyYmVpdHNncnVwcGVuL211bHRpc2NhbGUtYmlvZW5naW5lZXJpbmcvY2FtcHVzYnJhdWVyZWkvXCI+XG4gICAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaW1nLXNwb25zb3JcIiBzcmM9XCJodHRwczovL3N0YXRpYy5pZ2VtLndpa2kvdGVhbXMvNTI0Ny9zcG9uc29ycy9jYW1wdXMtYnJhdWVyZWktaGludGVybGVndC5qcGVnXCIvPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwic3BvbnNvci1jb250YWluZXJcIiBocmVmPVwid3d3LmlkdGRuYS5jb21cIj5cbiAgICAgICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJpbWctc3BvbnNvclwiIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3Nwb25zb3JzL2lkdC1sb2dvLnBuZ1wiPjwvaW1nPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwic3BvbnNvci1jb250YWluZXJcIiBocmVmPVwiaHR0cHM6Ly93d3cuY2ViaXRlYy51bmktYmllbGVmZWxkLmRlL1wiPlxuICAgICAgICAgICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJpbWctc3BvbnNvclwiIHNyYz1cImh0dHBzOi8vc3RhdGljLmlnZW0ud2lraS90ZWFtcy81MjQ3L3Nwb25zb3JzL2NlYml0ZWMtZmFyYmUucG5nXCIvPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIDwvU2ltcGxlU2xpZGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGhyLz5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj48aDQ+RXhlcmNpc2UgYm94PC9oND48L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0xXCI+PGRpdiBjbGFzc05hbWU9XCJleGFtcGxlLW1lZGl1bS10YWdcIj5NZWRpdW08L2Rpdj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGk+PGg2PkJ5IDwvaDY+PC9pPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJleGFtcGxlLWV4ZXJjaXNlXCI+XG4gICAgICAgICAgICAgICAgPHA+Q3JlYXRlIGEgYm94IHRoYXQgZGlmZmVycyBpbiBsb29rcyBmcm9tIHRoZSByZXN0IG9mIHRoZSBzaXRlIGFuZCBlbXBoYXppc2VzIGl0IGNvbnRhaW5zIGFuIGFzc2lnbm1lbnQuIDwvcD5cbiAgICAgICAgICAgICAgICA8cD5BcmNoaWV2ZSB0aGlzIGVmZmVjdCBieSB1c2luZyBiYWNrZ3JvdW5kLCBzaGFkb3csIGJvcmRlciBhbmQvb3Igb3RoZXIgY3NzIGVmZmVjdHMgb24gdGhlIGNsYXNzIFwiZXhhbXBsZS1leGVyY2lzZVwiLiBUaGUgYm94IHNob3VsZCBiZSBhZXN0ZXRpY2FsbHkgcGxlYXNpbmcgdW5saWtlIHRoZSBkb2N1bWVudGF0aW9uIGJveC4gPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8aHIvPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPjxoND5QREY8L2g0PjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTFcIj48ZGl2IGNsYXNzTmFtZT1cImV4YW1wbGUtbWVkaXVtLXRhZ1wiPk1lZGl1bTwvZGl2PjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aT48aDY+QnkgPC9oNj48L2k+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImV4YW1wbGUtZXhlcmNpc2VcIj48L2Rpdj5cbiAgICAgICAgICAgIDxwPmEuIEluc2VydCBhIHBkZiB1c2luZyBvdXIgUERGIGNvbXBvbmVudC48L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8aHIvPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbCBleGVyY2lzZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj48aDQ+IFNtYXJ0cGhvbmUgY29tcGF0aWJpbGl0eTwvaDQ+PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMSBcIj48ZGl2IGNsYXNzTmFtZT1cImV4YW1wbGUtbWVkaXVtLXRhZ1wiPk1lZGl1bTwvZGl2PjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aT48aDY+QnkgPC9oNj48L2k+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImV4YW1wbGUtZXhlcmNpc2VcIj5cbiAgICAgICAgICAgIDxwPiBDcmVhdGUgYSBzaW1wbGUgYm94IHRoYXQgaGFzIGEgZGlmZmVyZW50IGJhY2tncm91bmQgY29sb3Igd2hlbiB0aGUgd2Vic2l0ZSBpcyB1c2VkIG9uIGEgc21hcnRwaG9uZSAoc2NyZWVuIHdpZHRoIDc2OHB4IG9yIHNtYWxsZXIpLiAgPC9wPlxuICAgICAgICAgICAgPHA+IFVzZSBAbWVkaWEgcnVsZXMgZm9yIHRoYXQuPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8aHIvPiBcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wgZXhlcmNpc2VcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+PGg0PkNvbGxhcHNpYmxlPC9oND48L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0xIFwiPjxkaXYgY2xhc3NOYW1lPVwiZXhhbXBsZS1tZWRpdW0tdGFnXCI+TWVkaXVtPC9kaXY+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxpPjxoNj5CeSA8L2g2PjwvaT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXhhbXBsZS1leGVyY2lzZVwiPlxuICAgICAgICAgICAgPHA+IGEuIFVzZSBvdXIgQ29sbGFwc2libGUgY29tcG9uZW50IHRvIGNyZWF0ZSBhIGNvbGxhcHNpYmxlLjwvcD5cbiAgICAgICAgICAgIDxwPiBiLiBUaGUgY29sbGFwc2libGUgc2hvdWxkIGNvbnRhaW4gdGhyZWUgY2lyY2xlcyB3aXRoIGEgZmV3IHdvcmRzIGluIGEgcm93IChvdXIgQ2lyY2xlIGNvbXBvbmVudCkgPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8aHIvPiBcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+PGg0PkhlYWRlcjwvaDQ+PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMVwiPjxkaXYgY2xhc3NOYW1lPVwiZXhhbXBsZS1hZHZhbmNlZC10YWdcIj5BZHZhbmNlZDwvZGl2PjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aT48aDY+QnkgPC9oNj48L2k+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImV4YW1wbGUtZXhlcmNpc2VcIj5cbiAgICAgICAgICAgIDxwPmEuIENyZWF0ZSBhIGhlYWRlciBmaWxlIGZvciB0aGlzIHBhZ2UuIEl0IGhhcyB0byBiZSB2aXNpYmxlIGFuZCB0aGVyZWZvcmUgYmUgYWRkZWQgdG8gcGFnZXMudHM8L3A+XG4gICAgICAgICAgICA8cD5iLiBBZGQgdGhpcyBwYWdlIHRvIHRoZSBuYXZiYXIgdW5kZXIgXCJDb250cnVidXRpb25cIi4gPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8aHIvPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbCBleGVyY2lzZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj48aDQ+Q2hhcnQgd2l0aCBWaWN0b3J5PC9oND48L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0xIFwiPjxkaXYgY2xhc3NOYW1lPVwiZXhhbXBsZS1hZHZhbmNlZC10YWdcIj5BZHZhbmNlZDwvZGl2PjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aT48aDY+QnkgPC9oNj48L2k+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImV4YW1wbGUtZXhlcmNpc2VcIj5cbiAgICAgICAgICAgIDxwPkNyZWF0ZSBhIHNpbXBsZSBiYXIgQ2hhcnQgd2l0aCBSZWFjdC1DaGFydHMsIHVzaW5nIHRoZWlyIDxhIGhyZWY9XCJodHRwczovL211aS5jb20veC9yZWFjdC1jaGFydHMvXCI+IGRvY3VtZW50YXRpb248L2E+ICBhbmQgZHVtbXkgZGF0YSBvZiB5b3VyIGNob2ljZS4gPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8aHIvPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbCBleGVyY2lzZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj48aDQ+IFNpbXBsZSBSZWFjdCBDb21wb25lbnQ8L2g0PjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTEgXCI+PGRpdiBjbGFzc05hbWU9XCJleGFtcGxlLWFkdmFuY2VkLXRhZ1wiPkFkdmFuY2VkPC9kaXY+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxpPjxoNj5CeSA8L2g2PjwvaT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXhhbXBsZS1leGVyY2lzZVwiPlxuICAgICAgICAgICAgPHA+IENyZWF0ZSBhIHJlYWN0IGNvbXBvbmVudCB0aGF0IHRha2VzIEhUTUwsIGEgbGluayB0byBhIHBpY3R1cmUsIGEgbnVtYmVyIGFuZCBhIHdvcmQgYXMgaW5wdXQgYW5kIHJldHVybiB0aGUgY29kZSBpbiBhIGJveCB3aXRoIHRoZSB3b3JkIGFzIGEgaGVhZGVyLiBUaGUgcGljdHVyZSBhbmQgb3RoZXIgY29kZSBzaG91bGQgYmUgaW4gdHdvIGNvbHVtbnMgbmV4dCB0byBlYWNoIG90aGVyLCB1bmRlciB0aGUgaGVhZGVyLiBUaGUgbnVtYmVyIHNob3VsZCBiZSBtdWx0aXBsaWVkIGJ5IDIgYW5kIHRoZW4gc2hvd24gc29tZXdoZXJlIHdpdGggdGhlIG90aGVyIHBhcnRzLjwvcD5cbiAgICAgICAgICAgIDxwPiBTZWUgRG9jdUJveCBjb21wb25lbnQuICA8L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxoci8+IFxuey8qICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wgZXhlcmNpc2VcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+PGg0PiA8L2g0PjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTEgXCI+PGRpdiBjbGFzc05hbWU9XCJleGFtcGxlLWVhc3ktdGFnXCI+PC9kaXY+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxpPjxoNj5CeSA8L2g2PjwvaT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXhhbXBsZS1leGVyY2lzZVwiPlxuICAgICAgICAgICAgPHA+IDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGhyLz4gKi99XG5cbiAgICAgICAgXG5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG5cblxuICBmdW5jdGlvbiBEb2N1Qm94KHtjaGlsZHJlbn06IHtjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlfSl7XG4gICAgcmV0dXJuKFxuICAgICAgICA8PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJleGFtcGxlLWRvY3VcIj5cbiAgICAgICAgICAgIDxoNT5Eb2N1bWVudGF0aW9uOiA8L2g1PlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8Lz5cbiAgICApXG4gIH1cbiAgIiwgImltcG9ydCB7IEJ1dHRvbk9uZX0gZnJvbSBcIi4uL2NvbXBvbmVudHMvQnV0dG9uc1wiO1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBFZHVjYXRpb24oKSB7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCIgc3R5bGU9e3ttYXJnaW5Ub3A6IFwiNXZoXCIsIG1hcmdpbkJvdHRvbTogXCI1dmhcIn19PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgICAgPEJ1dHRvbk9uZSB0ZXh0PVwiT3ZlcnZpZXdcIiBvcGVuPVwib3ZlcnZpZXdcIj48L0J1dHRvbk9uZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgICAgPEJ1dHRvbk9uZSB0ZXh0PVwiTXVrb01vdmVcIiBvcGVuPVwibXVrb21vdmVcIj48L0J1dHRvbk9uZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbFwiPlxuICAgICAgICAgICAgPEJ1dHRvbk9uZSB0ZXh0PVwiVGV1dG8gcnVmdCFcIiBvcGVuPVwidGV1dG9ydWZ0XCI+PC9CdXR0b25PbmU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xcIj5cbiAgICAgICAgICAgIDxCdXR0b25PbmUgdGV4dD1cIlNjaFx1MDBGQ2xlcippbm5lbiBBa2FkZW1pZVwiIG9wZW49XCJha2FkZW1pZVwiPjwvQnV0dG9uT25lPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBpZD1cIm92ZXJ2aWV3XCIgY2xhc3NOYW1lPVwiY3ljbGV0YWJcIiBzdHlsZT17e2Rpc3BsYXk6IFwiYmxvY2tcIn19PlxuICAgICAgICAgIDxoMj5PdXIgZWR1Y2F0aW9uIGFuZCBvdXRyZWFjaDwvaDI+XG5cbiAgICAgICAgICA8aDI+SWYgbm90IGFzIGEgc3BlY2lhbCBwcml6ZSAtIHRoZW4gd2h5PzwvaDI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGlkPVwiYWthZGVtaWVcIiBjbGFzc05hbWU9XCJjeWNsZXRhYlwiIHN0eWxlPXt7ZGlzcGxheTogXCJub25lXCJ9fT5cbiAgICAgICAgICA8aDI+U3R1ZGVudCBhY2FkZW15IG9uIHRoZSB0b3BpYyBvZiBzeW50aGV0aWMgYmlvbG9neTwvaDI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGlkPVwidGV1dG9ydWZ0XCIgY2xhc3NOYW1lPVwiY3ljbGV0YWJcIiBzdHlsZT17e2Rpc3BsYXk6IFwibm9uZVwifX0+XG4gICAgICAgICAgPGgyPkVkdWNhdGlvbmFsIGNpdHkgdG91ciBmb3IgeW91bmcgYW5kIG9sZDwvaDI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGlkPVwibXVrb21vdmVcIiBjbGFzc05hbWU9XCJjeWNsZXRhYlwiIHN0eWxlPXt7ZGlzcGxheTogXCJub25lXCJ9fT5cbiAgICAgICAgICA8aDI+Q3lzdGljIGZpYnJvc2lzIGF3YXJlbmVzcyBtb250aDwvaDI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICBcbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4gICIsICJleHBvcnQgZnVuY3Rpb24gRURVSCgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPEhlYWRlckJveCB0aXRsZT1cIkVkdWNhdGlvbiBhbmQgT3V0cmVhY2hcIj5cbiAgICAgICAgXG4gICAgICA8L0hlYWRlckJveD5cbiAgICApO1xuICB9XG4gIFxuICBpbXBvcnQgSGVhZGVyQm94IGZyb20gXCIuLi9jb21wb25lbnRzL2hlYWRlci1ib3hcIjsiLCAiZXhwb3J0IGZ1bmN0aW9uIEVuZ1NpZGUoKXtcbiAgICByZXR1cm4oXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTEgZC1ub25lIGQtbGctYmxvY2tcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgKVxufSIsICJleHBvcnQgZnVuY3Rpb24gTm9TaWRlYmFyKCl7XG4gICAgcmV0dXJuKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0xIGQtbm9uZSBkLWxnLWJsb2NrXCI+XG4gICAgICAgIDwvZGl2PlxuICAgIClcbn0iLCAiZXhwb3J0IGZ1bmN0aW9uIFN1cnZleSgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgbXQtNFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgICBcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4gICIsICJleHBvcnQgZnVuY3Rpb24gU1VSSCgpIHtcblxuICAgIHJldHVybiAoXG4gICAgICA8SGVhZGVyQm94IHRpdGxlPVwiU3VydmV5XCI+XG4gICAgICAgIFxuICAgICAgPC9IZWFkZXJCb3g+XG4gICAgKTtcbiAgfVxuICBcbiAgaW1wb3J0IEhlYWRlckJveCBmcm9tIFwiLi4vY29tcG9uZW50cy9oZWFkZXItYm94XCI7IiwgImV4cG9ydCBmdW5jdGlvbiBDb2xsYWJvcmF0aW9ucygpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgbXQtNFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sXCI+XG4gICAgICAgICAgICBcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4gICIsICJleHBvcnQgZnVuY3Rpb24gQ09MTEgoKSB7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPEhlYWRlckJveCB0aXRsZT1cIkNvbGxhYm9yYXRpb25zXCI+XG4gICAgICAgIFxuICAgICAgPC9IZWFkZXJCb3g+XG4gICAgKTtcbiAgfVxuICBcbiAgaW1wb3J0IEhlYWRlckJveCBmcm9tIFwiLi4vY29tcG9uZW50cy9oZWFkZXItYm94XCI7IiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvc2FoYW1pYXNhZC93aWtpLmNzcy9iaWVsZWZlbGQtY2ViaXRlYy9zcmMvdXRpbHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9Vc2Vycy9zYWhhbWlhc2FkL3dpa2kuY3NzL2JpZWxlZmVsZC1jZWJpdGVjL3NyYy91dGlscy9zdHJpbmdUb1NsdWcudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL1VzZXJzL3NhaGFtaWFzYWQvd2lraS5jc3MvYmllbGVmZWxkLWNlYml0ZWMvc3JjL3V0aWxzL3N0cmluZ1RvU2x1Zy50c1wiO2V4cG9ydCBmdW5jdGlvbiBzdHJpbmdUb1NsdWcoc3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICBsZXQgc2x1ZyA9IFN0cmluZyhzdHJpbmcpLnRvTG93ZXJDYXNlKCk7XG4gIHNsdWcgPSBzbHVnLnJlcGxhY2UoL1teYS16MC05LV0vZywgXCItXCIpO1xuICBzbHVnID0gc2x1Zy5yZXBsYWNlKC8tKy9nLCBcIi1cIik7XG4gIC8vIHJlbW92ZSBkYXNoZXMgYXQgc3RhcnQgYW5kIGVuZFxuICBjb25zdCBzdGFydCA9IHNsdWcuc2VhcmNoKC9bXi1dLyk7IC8vIGZpbmQgaW5kZXggb2YgZmlyc3Qgbm9uLWRhc2hcbiAgY29uc3QgZW5kID0gc2x1Zy5zZWFyY2goLy0rJC8pOyAvLyBmaW5kIGluZGV4IG9mIGZpcnN0IGVuZCBkYXNoXG4gIHJldHVybiBzbHVnLnN1YnN0cmluZyhzdGFydCwgZW5kID09PSAtMSA/IHVuZGVmaW5lZCA6IGVuZCk7XG59XG4iLCAiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIi9Vc2Vycy9zYWhhbWlhc2FkL3dpa2kuY3NzL2JpZWxlZmVsZC1jZWJpdGVjL3NyYy91dGlsc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3NhaGFtaWFzYWQvd2lraS5jc3MvYmllbGVmZWxkLWNlYml0ZWMvc3JjL3V0aWxzL3VzZVNjcmlwdC50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vVXNlcnMvc2FoYW1pYXNhZC93aWtpLmNzcy9iaWVsZWZlbGQtY2ViaXRlYy9zcmMvdXRpbHMvdXNlU2NyaXB0LnRzXCI7aW1wb3J0IHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlU2NyaXB0KHt1cmx9Ont1cmw6IHN0cmluZ30pIHtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcblxuICAgIHNjcmlwdC5zcmMgPSB1cmw7XG4gICAgc2NyaXB0LmFzeW5jID0gdHJ1ZTtcblxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHNjcmlwdCk7XG4gICAgfVxuICB9LCBbdXJsXSk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCB1c2VTY3JpcHQ7XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQXNULFNBQVMsY0FBYyxlQUFlO0FBQzVWLE9BQU8sV0FBVzs7O0FDR2QsbUJBR00sS0FERixZQUZKOzs7QUNFQSxxQkFBQUEsV0FDRSxPQUFBQyxNQUVBLFFBQUFDLGFBSEY7OztBQ05KLFNBQVMsaUJBQWlCO0FBd0J0QixxQkFBQUMsV0FFSSxPQUFBQyxNQUZKLFFBQUFDLGFBQUE7OztBQ3RCQSxxQkFBQUMsV0FFSSxPQUFBQyxZQUZKOzs7QUNHYSxnQkFBQUMsTUE0Q1QsUUFBQUMsYUE1Q1M7OztBQ0FMLGdCQUFBQyxZQUFBOzs7QUNMWixTQUFTLFlBQVk7QUFHZixxQkFBQUMsV0FRSixPQUFBQyxNQTRDQSxRQUFBQyxhQXBESTs7O0FDRk4sU0FBUyxXQUFXO0FBQ3BCLFNBQVMsU0FBUyxTQUFTLFlBQVksU0FBUyxjQUFjO0FBNkN4RCxnQkFBQUMsWUFBQTtBQTFDTixRQUFRLFNBQVMsWUFBWSxTQUFTLE1BQU07OztBQ1k1QixnQkFBQUMsTUFDQSxRQUFBQyxhQURBOzs7QUNmaEIsU0FBUyxhQUFBQyxrQkFBaUI7QUFRVixTQW1FSixZQUFBQyxXQW5FSSxPQUFBQyxPQW1FSixRQUFBQyxhQW5FSTs7O0FDSkEsZ0JBQUFDLGFBQUE7OztBQ05oQixTQUFTLFFBQUFDLGFBQVk7OztBQ1FULGdCQUFBQyxPQU1FLFFBQUFDLGFBTkY7OztBREdSLFNBaUdBLFlBQUFDLFdBaEdFLE9BQUFDLE9BREYsUUFBQUMsYUFBQTs7O0FFTEUscUJBQUFDLFdBR00sT0FBQUMsT0FRQyxRQUFBQyxjQVhQOzs7QUNERixxQkFBQUMsV0FFSSxPQUFBQyxhQUZKOzs7QUNBQSxxQkFBQUMsWUFFSSxPQUFBQyxhQUZKOzs7QUNDQSxxQkFBQUMsWUFFSSxPQUFBQyxPQUZKLFFBQUFDLGNBQUE7OztBQ0pBLHFCQUFBQyxZQUVJLE9BQUFDLE9BWUYsUUFBQUMsY0FkRjs7O0FDR0ksZ0JBQUFDLGFBQUE7OztBQ0FJLFNBQ0ksT0FBQUMsT0FESixRQUFBQyxjQUFBOzs7QUNtRFosU0FBUyxLQUFLLFdBQVc7QUFDekIsU0FBUSxZQUFZLFNBQVMsZ0JBQWU7QUFDNUMsT0FBTyxXQUFXO0FBTVIsU0EyQkEsWUFBQUMsWUEzQkEsT0FBQUMsT0FnQ0UsUUFBQUMsY0FoQ0Y7QUEwckJWO0FBT0k7OztBQzN2QlksZ0JBQUFDLGFBQUE7OztBQ2FSLFNBaUJBLFlBQUFDLFlBaEJJLE9BQUFDLE9BREosUUFBQUMsY0FBQTs7O0FDb0JXLGdCQUFBQyxhQUFBOzs7QUNsQ1gsU0FDUSxPQUFBQyxPQURSLFFBQUFDLGNBQUE7OztBQ0VFLFNBdUJOLFlBQUFDLFlBdkJNLE9BQUFDLE9BZ0NFLFFBQUFDLGNBaENGOzs7QUNQVixTQUFTLE9BQUFDLE1BQUssT0FBQUMsWUFBVztBQUN6QixTQUFRLGNBQUFDLGFBQVksV0FBQUMsVUFBUyxZQUFBQyxpQkFBZTtBQUM1QyxPQUFPQyxZQUFXOzs7QUNGbEIsU0FBUyxnQkFBZ0I7QUFrQm5CLHFCQUFBQyxZQUlRLE9BQUFDLE9BREYsUUFBQUMsY0FITjs7O0FDakJOLE9BQU8sWUFBWTtBQUNuQixPQUFPQyxZQUFXO0FBMkZaLGdCQUFBQyxhQUFBO0FBbkZOLElBQU0sY0FBYTtBQUFBLEVBQ2pCLEVBQUMsT0FBTyxPQUFPLE9BQU8sV0FBVTtBQUFBLEVBQ2hDLEVBQUMsT0FBTyxTQUFTLE9BQU8sUUFBTztBQUFBLEVBQy9CLEVBQUMsT0FBTyxRQUFRLE9BQU8sUUFBTztBQUFBLEVBQzlCLEVBQUMsT0FBTyxZQUFZLE9BQU8sYUFBWTtBQUFBLEVBQ3ZDLEVBQUMsT0FBTyxZQUFZLE9BQU8sa0JBQWlCO0FBQUEsRUFDNUMsRUFBQyxPQUFPLFFBQVEsT0FBTyxPQUFNO0FBQUEsRUFDN0IsRUFBQyxPQUFPLE9BQU8sT0FBTyxNQUFLO0FBRTdCO0FBR00sU0FBUyxxQkFBcUIsS0FBa0I7QUFDOUMsTUFBSSxPQUFPLFNBQVMsZUFBZSxNQUFNO0FBQ3pDLE9BQU0sWUFBWTtBQUNsQixNQUFJLEdBQStDO0FBQ25ELE1BQUksU0FBUyx1QkFBdUIsWUFBWTtBQUNoRCxPQUFLLElBQUksR0FBRyxJQUFJLEVBQUUsUUFBUSxLQUFLO0FBQzdCLFFBQUksS0FBSyxFQUFFLENBQUM7QUFDWixrQkFBYyxJQUFJLE1BQU07QUFBQSxFQUMxQjtBQUNBLE1BQUksVUFBVTtBQUNkLE1BQUksTUFBTTtBQUNWLE9BQUssSUFBSSxHQUFHLElBQUksRUFBRSxRQUFRLEtBQUs7QUFFN0IsUUFBSSxRQUFRLENBQUMsVUFBVTtBQUNwQixVQUFJLEVBQUUsQ0FBQyxFQUFFLFVBQVUsUUFBUSxNQUFNLEtBQUssS0FBSyxJQUFHO0FBQzdDLGNBQU07QUFBQSxNQUNQLE9BQ0k7QUFDRCxZQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxTQUFTLE1BQU0sS0FBSyxHQUFFO0FBQ3hDLGdCQUFNO0FBQUEsUUFDUjtBQUFBLE1BQ0g7QUFBQSxJQUNILENBQUM7QUFDRCxRQUFJLEtBQUk7QUFDTixpQkFBVyxFQUFFLENBQUMsR0FBRyxNQUFNO0FBQ3ZCO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDQSxNQUFJLElBQUksU0FBUyx1QkFBdUIsTUFBTSxFQUFFO0FBQ2hELE1BQUksSUFBSSxHQUFFO0FBQ04sWUFBUSxJQUFJLENBQUM7QUFDYixTQUFNLFlBQVk7QUFBQSxFQUN0QjtBQUNGO0FBYU4sU0FBUyxXQUFXLFNBQWtCLE1BQWM7QUFDbEQsTUFBSSxHQUFHLE1BQU07QUFDYixTQUFPLFFBQVEsVUFBVSxNQUFNLEdBQUc7QUFDbEMsU0FBTyxLQUFLLE1BQU0sR0FBRztBQUNyQixPQUFLLElBQUksR0FBRyxJQUFJLEtBQUssUUFBUSxLQUFLO0FBQ2hDLFFBQUksS0FBSyxRQUFRLEtBQUssQ0FBQyxDQUFDLEtBQUssSUFBSTtBQUFDLGNBQVEsYUFBYSxNQUFNLEtBQUssQ0FBQztBQUFBLElBQUU7QUFBQSxFQUN2RTtBQUNGO0FBRUEsU0FBUyxjQUFjLFNBQWtCLE1BQWM7QUFDckQsTUFBSSxHQUFHLE1BQU07QUFDYixTQUFPLFFBQVEsVUFBVSxNQUFNLEdBQUc7QUFDbEMsU0FBTyxLQUFLLE1BQU0sR0FBRztBQUNyQixPQUFLLElBQUksR0FBRyxJQUFJLEtBQUssUUFBUSxLQUFLO0FBQ2hDLFdBQU8sS0FBSyxRQUFRLEtBQUssQ0FBQyxDQUFDLElBQUksSUFBSTtBQUNqQyxXQUFLLE9BQU8sS0FBSyxRQUFRLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUFBLElBQ3RDO0FBQUEsRUFDRjtBQUNBLFVBQVEsWUFBWSxLQUFLLEtBQUssR0FBRztBQUNuQztBQVdBLElBQU0sYUFBTixjQUF5QkMsT0FBTSxVQUFVO0FBQUEsRUFDdkMsUUFBUTtBQUFBLElBQ04sZ0JBQWdCO0FBQUEsRUFDbEI7QUFBQSxFQUNBLGVBQWUsQ0FBQyxtQkFBd0I7QUFFdkMsU0FBSztBQUFBLE1BQVMsRUFBRSxlQUFlO0FBQUEsTUFBRyxNQUNsQyxRQUFRLElBQUksb0JBQW9CLEtBQUssTUFBTSxjQUFjO0FBQUEsSUFFeEQ7QUFDQyx5QkFBcUIsY0FBYztBQUFBLEVBQ3RDO0FBQUEsRUFDQSxTQUFTO0FBQ1AsVUFBTSxFQUFFLGVBQWUsSUFBSSxLQUFLO0FBRWhDLFdBQ0UsZ0JBQUFDO0FBQUEsTUFBQztBQUFBO0FBQUEsUUFDQyxPQUFPO0FBQUEsUUFDUCxVQUFVLEtBQUs7QUFBQSxRQUNmLFNBQU87QUFBQSxRQUNQLFNBQVM7QUFBQSxRQUNULGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUFBLFFBQzdCLFdBQVU7QUFBQSxRQUNWLGlCQUFnQjtBQUFBO0FBQUEsSUFDbEI7QUFBQSxFQUVKO0FBQ0Y7OztBQ3pIWSxnQkFBQUMsYUFBQTs7O0FISUwscUJBQUFDLFlBR0ksT0FBQUMsT0FISixRQUFBQyxjQUFBOzs7QUlKRCxxQkFBQUMsWUFHTSxPQUFBQyxPQURGLFFBQUFDLGNBRko7OztBQ0NGLHFCQUFBQyxZQUdNLE9BQUFDLE9BREYsUUFBQUMsY0FGSjs7O0FDREUscUJBQUFDLFlBR00sT0FBQUMsT0FERixRQUFBQyxjQUZKOzs7QUNBQSxxQkFBQUMsWUFDQSxPQUFBQyxPQVFJLFFBQUFDLGNBVEo7OztBQ0FBLHFCQUFBQyxZQUdNLE9BQUFDLE9BREYsUUFBQUMsY0FGSjs7O0FDQUEscUJBQUFDLFlBQUEsT0FBQUMsYUFBQTs7O0FDREEscUJBQUFDLFlBSU0sT0FBQUMsT0FGRixRQUFBQyxjQUZKOzs7QUNJRSxxQkFBQUMsWUFHSSxPQUFBQyxPQURGLFFBQUFDLGNBRkY7OztBQ0ZGLGdCQUFBQyxhQUFBOzs7QUNBQSxnQkFBQUMsYUFBQTs7O0FDRkYsZ0JBQUFDLGFBQUE7OztBQ0RBLGdCQUFBQyxhQUFBOzs7QUNDQSxnQkFBQUMsYUFBQTs7O0FDQUEsZ0JBQUFDLGFBQUE7OztBQ0FBLGdCQUFBQyxhQUFBOzs7QUNBQSxnQkFBQUMsYUFBQTs7O0FDQUEsZ0JBQUFDLGFBQUE7OztBQ0FBLGdCQUFBQyxhQUFBOzs7QUNBQSxnQkFBQUMsYUFBQTs7O0FDQUEsZ0JBQUFDLGFBQUE7OztBQ0FBLGdCQUFBQyxhQUFBOzs7QUNBQSxnQkFBQUMsYUFBQTs7O0FDREEsZ0JBQUFDLGFBQUE7OztBQ0NBLGdCQUFBQyxhQUFBOzs7QUNBQSxnQkFBQUMsYUFBQTs7O0FDQUEsZ0JBQUFDLGFBQUE7OztBQ0NFLHFCQUFBQyxZQUdNLE9BQUFDLE9BREYsUUFBQUMsY0FGSjs7O0FDREYsZ0JBQUFDLGFBQUE7OztBQ0RFLHFCQUFBQyxZQUVJLE9BQUFDLGFBRko7OztBQ0NGLGdCQUFBQyxhQUFBOzs7QUNFRSxxQkFBQUMsWUFFSSxPQUFBQyxhQUZKOzs7QUNGQSxnQkFBQUMsYUFBQTs7O0FDQ0EscUJBQUFDLFlBR00sT0FBQUMsT0FERixRQUFBQyxjQUZKOzs7QUNFQSxnQkFBQUMsYUFBQTs7O0FDRkEscUJBQUFDLFlBRUksT0FBQUMsYUFGSjs7O0FDREYsZ0JBQUFDLGFBQUE7OztBQ0ZKLE9BQU8sWUFBWTtBQWdCSixxQkFBQUMsWUFBQSxPQUFBQyxhQUFBOzs7QUNqQmYsT0FBTyxVQUFVO0FBQ2pCLFNBQVMsZUFBZTtBQUN4QixTQUFTLHFCQUFxQjtBQUM5QixTQUFTLGNBQWM7QUFDdkIsU0FBUyx3QkFBd0I7QUF3RDNCLFNBRUUsT0FBQUMsT0FGRixRQUFBQyxjQUFBOzs7QUNyREEscUJBQUFDLFlBR0UsT0FBQUMsT0FHSSxRQUFBQyxjQU5OOzs7QUNEQSxxQkFBQUMsWUFHTSxPQUFBQyxPQUZKLFFBQUFDLGNBREY7OztBQ0pBLGdCQUFBQyxhQUFBOzs7QUNBRSxnQkFBQUMsYUFBQTs7O0FDQUEsZ0JBQUFDLGFBQUE7OztBQ0FGLHFCQUFBQyxZQUVJLE9BQUFDLGFBRko7OztBQ0NBLGdCQUFBQyxhQUFBOzs7QUNEQSxxQkFBQUMsWUFFSSxPQUFBQyxhQUZKOzs7QUNDQSxnQkFBQUMsYUFBQTs7O0FDSHVWLFNBQVMsYUFBYSxRQUF3QjtBQUN6WSxNQUFJLE9BQU8sT0FBTyxNQUFNLEVBQUUsWUFBWTtBQUN0QyxTQUFPLEtBQUssUUFBUSxlQUFlLEdBQUc7QUFDdEMsU0FBTyxLQUFLLFFBQVEsT0FBTyxHQUFHO0FBRTlCLFFBQU0sUUFBUSxLQUFLLE9BQU8sTUFBTTtBQUNoQyxRQUFNLE1BQU0sS0FBSyxPQUFPLEtBQUs7QUFDN0IsU0FBTyxLQUFLLFVBQVUsT0FBTyxRQUFRLEtBQUssU0FBWSxHQUFHO0FBQzNEOzs7QUNSZ1YsU0FBUyxhQUFBQyxrQkFBaUI7OztBL0VHMVcsT0FBTyxVQUFVO0FBSGpCLElBQU0sbUNBQW1DO0FBTXpDLElBQU8sc0JBQVEsTUFBTTtBQUNuQixRQUFNLE1BQU0sUUFBUSxPQUFPLFFBQVEsSUFBSSxDQUFDO0FBQ3hDLE1BQUksQ0FBQyxJQUFJLGdCQUFnQjtBQUN2QixVQUFNLElBQUksTUFBTSxvREFBb0Q7QUFBQSxFQUN0RTtBQUVBLFFBQU0sV0FBVyxhQUFhLElBQUksY0FBYztBQUNoRCxVQUFRLElBQUksY0FBYyxRQUFRLEdBQUc7QUFDckMsVUFBUSxJQUFJLHFCQUFxQixLQUFLLFFBQVEsa0NBQVcsTUFBTSxDQUFDLEVBQUU7QUFJbEUsU0FBTyxhQUFhO0FBQUEsSUFDbEIsTUFBTTtBQUFBLElBQ04sU0FBUyxDQUFDLE1BQU0sQ0FBQztBQUFBLElBQ2pCLFNBQVM7QUFBQSxNQUNQLE9BQU87QUFBQSxRQUNMLEtBQUssS0FBSyxRQUFRLGtDQUFXLE9BQU87QUFBQTtBQUFBLE1BQ3RDO0FBQUEsSUFDRjtBQUFBLElBQ0EsS0FBSztBQUFBLE1BQ0gscUJBQXFCO0FBQUEsUUFDbkIsS0FBSztBQUFBO0FBQUEsUUFFTDtBQUFBLE1BQ0Y7QUFBQSxJQUFLO0FBQUEsSUFDUCxPQUFPO0FBQUEsTUFDTCxRQUFRO0FBQUEsTUFDUixlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsVUFDTixnQkFBZ0I7QUFBQSxRQUNoQjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsSUFDRixXQUFXO0FBQUEsRUFDYixDQUFDO0FBQ0g7IiwKICAibmFtZXMiOiBbIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3giLCAianN4cyIsICJqc3giLCAiRnJhZ21lbnQiLCAianN4IiwgImpzeHMiLCAianN4IiwgImpzeCIsICJqc3hzIiwgInVzZUVmZmVjdCIsICJGcmFnbWVudCIsICJqc3giLCAianN4cyIsICJqc3giLCAiTGluayIsICJqc3giLCAianN4cyIsICJGcmFnbWVudCIsICJqc3giLCAianN4cyIsICJGcmFnbWVudCIsICJqc3giLCAianN4cyIsICJGcmFnbWVudCIsICJqc3giLCAiRnJhZ21lbnQiLCAianN4IiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgImpzeCIsICJqc3giLCAianN4cyIsICJGcmFnbWVudCIsICJqc3giLCAianN4cyIsICJqc3giLCAiRnJhZ21lbnQiLCAianN4IiwgImpzeHMiLCAianN4IiwgImpzeCIsICJqc3hzIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIkJveCIsICJUYWIiLCAiVGFiQ29udGV4dCIsICJUYWJMaXN0IiwgIlRhYlBhbmVsIiwgIlJlYWN0IiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIlJlYWN0IiwgImpzeCIsICJSZWFjdCIsICJqc3giLCAianN4IiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgIkZyYWdtZW50IiwgImpzeCIsICJGcmFnbWVudCIsICJqc3giLCAianN4cyIsICJGcmFnbWVudCIsICJqc3giLCAianN4cyIsICJqc3giLCAianN4IiwgImpzeCIsICJqc3giLCAianN4IiwgImpzeCIsICJqc3giLCAianN4IiwgImpzeCIsICJqc3giLCAianN4IiwgImpzeCIsICJqc3giLCAianN4IiwgImpzeCIsICJqc3giLCAianN4IiwgImpzeCIsICJGcmFnbWVudCIsICJqc3giLCAianN4cyIsICJqc3giLCAiRnJhZ21lbnQiLCAianN4IiwgImpzeCIsICJGcmFnbWVudCIsICJqc3giLCAianN4IiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgImpzeCIsICJGcmFnbWVudCIsICJqc3giLCAianN4IiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3giLCAianN4cyIsICJGcmFnbWVudCIsICJqc3giLCAianN4cyIsICJGcmFnbWVudCIsICJqc3giLCAianN4cyIsICJqc3giLCAianN4IiwgImpzeCIsICJGcmFnbWVudCIsICJqc3giLCAianN4IiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3giLCAidXNlRWZmZWN0Il0KfQo= diff --git a/yarn.lock b/yarn.lock index c5fd608e..3238bd36 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23,7 +23,7 @@ resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz" integrity sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ== -"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.24.5": +"@babel/core@^7.24.5": version "7.25.2" resolved "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz" integrity sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA== @@ -221,7 +221,7 @@ resolved "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz" integrity sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g== -"@emotion/is-prop-valid@*", "@emotion/is-prop-valid@^1.3.0": +"@emotion/is-prop-valid@^1.3.0": version "1.3.0" resolved "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.3.0.tgz" integrity sha512-SHetuSLvJDzuNbOdtPVbq6yMMMlLoW5Q94uDqJZqy50gcmAjxFkVqmzqSGEFq9gT2iMuIeKV1PXVWmvUhuZLlQ== @@ -233,7 +233,7 @@ resolved "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz" integrity sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ== -"@emotion/react@^11.0.0-rc.0", "@emotion/react@^11.13.0", "@emotion/react@^11.4.1", "@emotion/react@^11.5.0", "@emotion/react@^11.8.1", "@emotion/react@^11.9.0": +"@emotion/react@^11.13.0", "@emotion/react@^11.8.1": version "11.13.0" resolved "https://registry.npmjs.org/@emotion/react/-/react-11.13.0.tgz" integrity sha512-WkL+bw1REC2VNV1goQyfxjx1GYJkcc23CRQkXX+vZNLINyfI7o+uUn/rTGPt/xJ3bJHd5GcljgnxHf4wRw5VWQ== @@ -263,7 +263,7 @@ resolved "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz" integrity sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg== -"@emotion/styled@^11.13.0", "@emotion/styled@^11.3.0", "@emotion/styled@^11.8.1": +"@emotion/styled@^11.13.0": version "11.13.0" resolved "https://registry.npmjs.org/@emotion/styled/-/styled-11.13.0.tgz" integrity sha512-tkzkY7nQhW/zC4hztlwucpT8QEZ6eUzpXDRhww/Eej4tFfO0FxQYWRyg/c5CCXa4d/f174kqeXYjuQRnhzf6dA== @@ -295,11 +295,121 @@ resolved "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz" integrity sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg== +"@esbuild/aix-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" + integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== + +"@esbuild/android-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" + integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== + +"@esbuild/android-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" + integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== + +"@esbuild/android-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" + integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== + +"@esbuild/darwin-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" + integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== + +"@esbuild/darwin-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" + integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== + +"@esbuild/freebsd-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" + integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== + +"@esbuild/freebsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" + integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== + +"@esbuild/linux-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" + integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== + +"@esbuild/linux-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" + integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== + +"@esbuild/linux-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" + integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== + +"@esbuild/linux-loong64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" + integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== + +"@esbuild/linux-mips64el@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" + integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== + +"@esbuild/linux-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" + integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== + +"@esbuild/linux-riscv64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" + integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== + +"@esbuild/linux-s390x@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" + integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== + "@esbuild/linux-x64@0.21.5": version "0.21.5" resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz" integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== +"@esbuild/netbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" + integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== + +"@esbuild/openbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" + integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== + +"@esbuild/sunos-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" + integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== + +"@esbuild/win32-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" + integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== + +"@esbuild/win32-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" + integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== + +"@esbuild/win32-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" + integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== + "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" @@ -475,7 +585,7 @@ clsx "^2.1.0" prop-types "^15.8.1" -"@mui/material@^5.0.0", "@mui/material@^5.15.14", "@mui/material@^5.16.5", "@mui/material@>=5.15.0": +"@mui/material@^5.16.5": version "5.16.7" resolved "https://registry.npmjs.org/@mui/material/-/material-5.16.7.tgz" integrity sha512-cwwVQxBhK60OIOqZOVLFt55t01zmarKJiJUWbk0+8s/Ix5IaUzAShqlJchxsIQ4mSrWqgcKCCXKtIlG5H+/Jmg== @@ -586,7 +696,7 @@ "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== @@ -683,6 +793,61 @@ uncontrollable "^8.0.1" warning "^4.0.3" +"@rollup/rollup-android-arm-eabi@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.20.0.tgz#c3f5660f67030c493a981ac1d34ee9dfe1d8ec0f" + integrity sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA== + +"@rollup/rollup-android-arm64@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.20.0.tgz#64161f0b67050023a3859e723570af54a82cff5c" + integrity sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ== + +"@rollup/rollup-darwin-arm64@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.20.0.tgz#25f3d57b1da433097cfebc89341b355901615763" + integrity sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q== + +"@rollup/rollup-darwin-x64@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.20.0.tgz#d8ddaffb636cc2f59222c50316e27771e48966df" + integrity sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ== + +"@rollup/rollup-linux-arm-gnueabihf@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.20.0.tgz#41bd4fcffa20fb84f3dbac6c5071638f46151885" + integrity sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA== + +"@rollup/rollup-linux-arm-musleabihf@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.20.0.tgz#842077c5113a747eb5686f19f2f18c33ecc0acc8" + integrity sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw== + +"@rollup/rollup-linux-arm64-gnu@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.20.0.tgz#65d1d5b6778848f55b7823958044bf3e8737e5b7" + integrity sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ== + +"@rollup/rollup-linux-arm64-musl@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.20.0.tgz#50eef7d6e24d0fe3332200bb666cad2be8afcf86" + integrity sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q== + +"@rollup/rollup-linux-powerpc64le-gnu@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.20.0.tgz#8837e858f53c84607f05ad0602943e96d104c6b4" + integrity sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw== + +"@rollup/rollup-linux-riscv64-gnu@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.20.0.tgz#c894ade2300caa447757ddf45787cca246e816a4" + integrity sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA== + +"@rollup/rollup-linux-s390x-gnu@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.20.0.tgz#5841e5390d4c82dd5cdf7b2c95a830e3c2f47dd3" + integrity sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg== + "@rollup/rollup-linux-x64-gnu@4.20.0": version "4.20.0" resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.20.0.tgz" @@ -693,6 +858,21 @@ resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.20.0.tgz" integrity sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg== +"@rollup/rollup-win32-arm64-msvc@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.20.0.tgz#86a221f01a2c248104dd0defb4da119f2a73642e" + integrity sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA== + +"@rollup/rollup-win32-ia32-msvc@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.20.0.tgz#8bc8f77e02760aa664694b4286d6fbea7f1331c5" + integrity sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A== + +"@rollup/rollup-win32-x64-msvc@4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.20.0.tgz#601fffee719a1e8447f908aca97864eec23b2784" + integrity sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg== + "@swc/helpers@^0.5.0": version "0.5.12" resolved "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.12.tgz" @@ -972,7 +1152,7 @@ dependencies: "@types/sizzle" "*" -"@types/node@^18.0.0 || >=20.0.0", "@types/node@^20.12.10": +"@types/node@^20.12.10": version "20.14.15" resolved "https://registry.npmjs.org/@types/node/-/node-20.14.15.tgz" integrity sha512-Fz1xDMCF/B00/tYSVMlmK7hVeLh7jE5f3B7X1/hmV0MJBwE27KlS7EvD/Yp+z1lm8mVhwV5w+n8jOZG8AfTlKw== @@ -1017,7 +1197,7 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^17.0.0 || ^18.0.0", "@types/react@^18.2.66", "@types/react@>=16.14.8", "@types/react@>=16.9.11": +"@types/react@*", "@types/react@>=16.9.11", "@types/react@^18.2.66": version "18.3.3" resolved "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz" integrity sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw== @@ -1055,7 +1235,7 @@ natural-compare "^1.4.0" ts-api-utils "^1.3.0" -"@typescript-eslint/parser@^7.0.0", "@typescript-eslint/parser@^7.2.0": +"@typescript-eslint/parser@^7.2.0": version "7.18.0" resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz" integrity sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg== @@ -1142,7 +1322,7 @@ acorn-jsx@^5.3.2: resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.9.0: +acorn@^8.9.0: version "8.12.1" resolved "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz" integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== @@ -1288,7 +1468,7 @@ braces@^3.0.3, braces@~3.0.2: dependencies: fill-range "^7.1.1" -browserslist@^4.23.1, "browserslist@>= 4.21.0": +browserslist@^4.23.1: version "4.23.3" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz" integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA== @@ -1325,7 +1505,7 @@ chalk@^4.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chart.js@^4.1.1, chart.js@^4.4.4: +chart.js@^4.4.4: version "4.4.4" resolved "https://registry.npmjs.org/chart.js/-/chart.js-4.4.4.tgz" integrity sha512-emICKGBABnxhMjUjlYRR12PmOXhJ2eJjEHL2/dZlWjxRAZT1D8xplLFq5M0tMQK8ja+wBS/tuVEJB5C6r7VxJA== @@ -1401,15 +1581,20 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + color-name@~1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== +commander@7: + version "7.2.0" + resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== commander@^2.19.0: version "2.20.3" @@ -1421,11 +1606,6 @@ commander@^8.3.0: resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== -commander@7: - version "7.2.0" - resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - concat-map@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" @@ -1494,7 +1674,7 @@ csstype@^3.0.2, csstype@^3.1.3: resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz" integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== -d3-array@^3.1.6, d3-array@^3.2.0, "d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3: +"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3, d3-array@^3.1.6, d3-array@^3.2.0: version "3.2.4" resolved "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz" integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg== @@ -1524,7 +1704,7 @@ d3-chord@3: dependencies: d3-path "1 - 3" -d3-color@^3.1.0, "d3-color@1 - 3", d3-color@3: +"d3-color@1 - 3", d3-color@3, d3-color@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz" integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== @@ -1536,7 +1716,7 @@ d3-contour@4: dependencies: d3-array "^3.2.0" -d3-delaunay@^6.0.4, d3-delaunay@6: +d3-delaunay@6, d3-delaunay@^6.0.4: version "6.0.4" resolved "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz" integrity sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A== @@ -1565,7 +1745,7 @@ d3-delaunay@^6.0.4, d3-delaunay@6: iconv-lite "0.6" rw "1" -d3-ease@^3.0.1, "d3-ease@1 - 3", d3-ease@3: +"d3-ease@1 - 3", d3-ease@3, d3-ease@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz" integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== @@ -1605,24 +1785,24 @@ d3-geo@3: dependencies: d3-array "2.5.0 - 3" -d3-hierarchy@^1.1.5: - version "1.1.9" - resolved "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz" - integrity sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ== - d3-hierarchy@3: version "3.1.2" resolved "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz" integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== -d3-interpolate@^3.0.1, "d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: +d3-hierarchy@^1.1.5: + version "1.1.9" + resolved "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz" + integrity sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ== + +"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3, d3-interpolate@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz" integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== dependencies: d3-color "1 - 3" -d3-path@^3.1.0, "d3-path@1 - 3", d3-path@3: +"d3-path@1 - 3", d3-path@3, d3-path@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz" integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== @@ -1650,7 +1830,7 @@ d3-scale-chromatic@3: d3-color "1 - 3" d3-interpolate "1 - 3" -d3-scale@^4.0.2, d3-scale@4: +d3-scale@4, d3-scale@^4.0.2: version "4.0.2" resolved "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz" integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== @@ -1666,7 +1846,7 @@ d3-scale@^4.0.2, d3-scale@4: resolved "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz" integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== -d3-shape@^3.1.0, d3-shape@^3.2.0, d3-shape@3: +d3-shape@3, d3-shape@^3.1.0, d3-shape@^3.2.0: version "3.2.0" resolved "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz" integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA== @@ -1680,14 +1860,14 @@ d3-shape@^3.1.0, d3-shape@^3.2.0, d3-shape@3: dependencies: d3-time "1 - 3" -d3-time@^3.0.0, d3-time@^3.1.0, "d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3: +"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3, d3-time@^3.0.0, d3-time@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz" integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== dependencies: d3-array "2 - 3" -d3-timer@^3.0.1, "d3-timer@1 - 3", d3-timer@3: +"d3-timer@1 - 3", d3-timer@3, d3-timer@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz" integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== @@ -1719,6 +1899,11 @@ d3-zoom@3: d3-selection "2 - 3" d3-transition "2 - 3" +d3@3.5.6: + version "3.5.6" + resolved "https://registry.npmjs.org/d3/-/d3-3.5.6.tgz" + integrity sha512-i1x8Q3lGerBazuvWsImnUKrjfCdBnRnk8aq7hqOK/5+CAWJTt/zr9CaR1mlJf17oH8l/v4mOaDLU+F/l2dq1Vg== + d3@^7.8.5: version "7.9.0" resolved "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz" @@ -1755,11 +1940,6 @@ d3@^7.8.5: d3-transition "3" d3-zoom "3" -d3@3.5.6: - version "3.5.6" - resolved "https://registry.npmjs.org/d3/-/d3-3.5.6.tgz" - integrity sha512-i1x8Q3lGerBazuvWsImnUKrjfCdBnRnk8aq7hqOK/5+CAWJTt/zr9CaR1mlJf17oH8l/v4mOaDLU+F/l2dq1Vg== - dangerously-set-html-content@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/dangerously-set-html-content/-/dangerously-set-html-content-1.1.0.tgz" @@ -1777,18 +1957,18 @@ deep-is@^0.1.3: resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -delaunator@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz" - integrity sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag== - -delaunator@^5.0.1, delaunator@5: +delaunator@5, delaunator@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz" integrity sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw== dependencies: robust-predicates "^3.0.2" +delaunator@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz" + integrity sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag== + delaunay-find@0.0.6: version "0.0.6" resolved "https://registry.npmjs.org/delaunay-find/-/delaunay-find-0.0.6.tgz" @@ -1947,7 +2127,7 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -"eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", eslint@^8.56.0, eslint@^8.57.0, eslint@>=7: +eslint@^8.57.0: version "8.57.0" resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz" integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== @@ -2110,6 +2290,11 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== +fsevents@~2.3.2, fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + function-bind@^1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" @@ -2266,7 +2451,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@~2.0.3, inherits@2: +inherits@2, inherits@~2.0.3: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -2481,16 +2666,16 @@ lodash.throttle@^4.0.1, lodash.throttle@^4.1.1: resolved "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz" integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ== -lodash@^4.17.19, lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - lodash@4.17.4: version "4.17.4" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" integrity sha512-6X37Sq9KCpLSXEh8uM12AKYlviHPNNk4RxiGBn4cmKGJinbXBneWIV7iE/nXkM928O7ytHcHb6+X6Svl0f4hXg== +lodash@^4.17.19, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" @@ -2537,7 +2722,7 @@ markdown-it@^14.1.0: punycode.js "^2.3.1" uc.micro "^2.1.0" -markmap-common@*, markmap-common@^0.17.0: +markmap-common@^0.17.0: version "0.17.0" resolved "https://registry.npmjs.org/markmap-common/-/markmap-common-0.17.0.tgz" integrity sha512-3tuU6PxjrQxivZD18czJKcGKTTRJKMNne1bBflcHqu7yASznJRBM80CC4DzIVGiAb74hTuX8tTfkEQUMu0yKMg== @@ -2870,7 +3055,7 @@ react-collapsed@^4.1.2: dependencies: tiny-warning "^1.0.3" -"react-dom@^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0", "react-dom@^16.8.0 || ^17.0.0 || ^18.0.0", "react-dom@^16.9.0 || ^17 || ^18", "react-dom@^17.0.0 || ^18.0.0", react-dom@^18.0.0, react-dom@^18.2.0, react-dom@>=16.12.0, react-dom@>=16.14.0, react-dom@>=16.6.0, react-dom@>=16.8, react-dom@>=16.8.0, react-dom@>=17.0.1: +react-dom@^18.2.0: version "18.3.1" resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz" integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== @@ -2966,7 +3151,7 @@ react-transition-group@^4.3.0, react-transition-group@^4.4.5: loose-envify "^1.4.0" prop-types "^15.6.2" -"react@^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0", "react@^16.9.0 || ^17 || ^18", "react@^17.0.0 || ^18.0.0", react@^18.0.0, react@^18.2.0, react@^18.3.1, react@>=0.14.0, react@>=15.0.0, react@>=16, react@>=16.14.0, react@>=16.6.0, react@>=16.8, react@>=16.8.0, react@>=17.0.1: +react@>=16, react@^18.2.0: version "18.3.1" resolved "https://registry.npmjs.org/react/-/react-18.3.1.tgz" integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== @@ -3089,7 +3274,7 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass@*, sass@^1.77.6: +sass@^1.77.6: version "1.77.8" resolved "https://registry.npmjs.org/sass/-/sass-1.77.8.tgz" integrity sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ== @@ -3132,7 +3317,7 @@ slash@^3.0.0: resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -source-map-js@^1.2.0, "source-map-js@>=0.6.2 <2.0.0": +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz" integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== @@ -3152,6 +3337,11 @@ sprintf-js@~1.0.2: resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== +string-convert@^0.2.0: + version "0.2.1" + resolved "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz" + integrity sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A== + string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" @@ -3159,11 +3349,6 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -string-convert@^0.2.0: - version "0.2.1" - resolved "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz" - integrity sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A== - strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" @@ -3252,7 +3437,7 @@ type-fest@^0.20.2: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -typescript@^5.2.2, typescript@>=4.2.0: +typescript@^5.2.2: version "5.5.4" resolved "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz" integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== @@ -3607,7 +3792,7 @@ victory@^37.0.2: victory-voronoi-container "^37.0.2" victory-zoom-container "^37.0.2" -"vite@^4.2.0 || ^5.0.0", vite@^5.2.0: +vite@^5.2.0: version "5.4.0" resolved "https://registry.npmjs.org/vite/-/vite-5.4.0.tgz" integrity sha512-5xokfMX0PIiwCMCMb9ZJcMyh5wbBun0zUzKib+L65vAZ8GY9ePZMXxFrHbr/Kyll2+LSCY7xtERPpxkBDKngwg== -- GitLab